Added wayland, hyprland and eww

This commit is contained in:
marc
2024-03-02 17:38:35 +01:00
parent 95944b2486
commit 466ddf2cd9
27 changed files with 591 additions and 13 deletions

View File

@@ -1,7 +1,7 @@
window: window:
opacity: 0.85 opacity: 0.85
font: font:
size: 8 size: 12
normal: normal:
family: Iosevka Nerd Font family: Iosevka Nerd Font
style: Regular style: Regular

View File

@@ -0,0 +1,134 @@
@import './colour-scheme.scss'
*{
all: unset;
font-family: Iosevka;
font-size: 16px;
}
/** Top bar **/
.top-bar {
padding-left: 16px;
padding-right: 24px;
}
tooltip.background {
background-color: $base00;
border-radius: 10px;
color: $base07;
}
tooltip label {
margin: 6px;
}
.module {
margin: 0px 0px 0px 0px;
border-radius: 0px 0px 0px 0px;
padding-left: 8px;
padding-right: 8px;
}
.icon {
font-size: 24px;
padding-right: 8px;
}
.separator {
padding-left: 4px;
padding-right: 4px;
color: $base02;
}
/** Wifi **/
.wifi {
color: $base0C;
}
.wifi-text {
padding-left: 8px;
}
/** Volume **/
.volume {
color: $base0A;
}
.volume-mute {
color: $base04;
}
.volume-bar {
padding-left: 8px;
highlight {
background-color: $base0A;
border-radius: 10px;
}
trough {
background-color: $base04;
min-height: 10px;
border-radius: 10px;
}
}
/** Battery **/
.battery.charging {
color: $base0B;
}
.battery.discharging {
padding-right: 0px;
color: $base04;
}
.battery-bar {
padding-left: 8px;
progress {
background-color: $base0B;
border-radius: 10px;
min-height: 10px;
}
trough {
background-color: $base04;
border-radius: 10px;
min-height: 10px;
min-width: 60px;
}
}
/** Clock **/
.clock {
color: $base05;
}
.clock-time {
padding-left: 4px;
padding-right: 4px;
}
.clock-date {
padding-left: 4px;
}
.clock-year {
padding-bottom: 8px;
font-size: 75%;
}
/** Workspaces **/
.workspace-entry {
padding-left: 8px;
padding-right: 8px;
}
.workspace-entry.occupied {
color: $base06;
}
.workspace-entry.empty {
color: $base02;
}
.workspace-entry.current {
color: $base0C;
}

View File

@@ -0,0 +1,44 @@
(include "./widgets/common.yuck")
(include "./widgets/battery.yuck")
(include "./widgets/clock.yuck")
(include "./widgets/volume.yuck")
(include "./widgets/workspaces.yuck")
(include "./widgets/wifi.yuck")
(defwindow top-bar
:monitor 0
:geometry (geometry :x "0%"
:y "8px"
:width "100%"
:height "40px"
:anchor "top center")
:stacking "fg"
:exclusive "true"
(box :class "top-bar"
:orientation "h"
:space-evenly "true"
(bar-left)
(bar-center)
(bar-right)))
(defwidget bar-left []
(box :halign "start"
:orientation "h"
(workspaces-module)))
(defwidget bar-center []
(box :halign "center"
:orientation "h"))
(defwidget bar-right []
(box :halign "end"
:orientation "h"
:space-evenly "false"
(wifi-module)
(battery-module)
(volume-module)
(sep)
(clock-module)))

View File

@@ -0,0 +1,16 @@
$base00: #1c2735;
$base01: #3e4856;
$base02: #616a76;
$base03: #838c97;
$base04: #a5adb7;
$base05: #c7cfd7;
$base06: #cfd6dd;
$base07: #d8dde3;
$base08: #ec5b5c;
$base09: #667b87;
$base0A: #547f87;
$base0B: #7c7399;
$base0C: #b25b8e;
$base0D: #b75a80;
$base0E: #d4445b;
$base0F: #5d7aa2;

1
config/eww/eww.scss Normal file
View File

@@ -0,0 +1 @@
@import './bars/top-bar.scss'

1
config/eww/eww.yuck Normal file
View File

@@ -0,0 +1 @@
(include "./bars/top-bar.yuck")

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'

View File

@@ -0,0 +1,7 @@
#!/bin/env bash
amixer sget Master | \
grep 'Left:' | \
sed -e 's/[^[]*\[\([0-9]*\)%\][^[]\[\(\w*\)\]/{"volume": \1, "muted": \2}/' \
-e 's/on/false/' \
-e 's/off/true/'

View File

@@ -0,0 +1,8 @@
#!/bin/env bash
CONN_INFO=$(nmcli -g in-use,ssid,signal dev wifi list | \
grep "^*" | \
sed -e 's/\*:\([^:]*\):\([0-9]*\)/ ,"ssid": "\1", "signal": \2/')
CONNECTED=$([[ -z $CONN_INFO ]] && echo "false" || echo "true")
echo "{\"connected\": \"$CONNECTED\"$CONN_INFO}"

View File

@@ -0,0 +1,11 @@
#!/bin/env bash
spaces (){
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
seq 1 6 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
}
spaces
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
spaces
done

View File

@@ -0,0 +1,21 @@
(defvar battery-reveal false)
(defwidget battery-module []
(eventbox :onhover "${EWW_CMD} update battery-reveal=true"
:onhoverlost "${EWW_CMD} update battery-reveal=false"
(box :class "module battery ${EWW_BATTERY.BAT0.status == "Discharging" ? "discharging" : "charging"}"
:orientation "h"
:space-evenly "false"
:tooltip "Battery: ${EWW_BATTERY.BAT0.capacity}%"
(label :text {EWW_BATTERY.BAT0.status == "Discharging" ?
EWW_BATTERY.BAT0.capacity < 10 ? "󰂎" : EWW_BATTERY.BAT0.capacity < 30 ? "󱊡" : EWW_BATTERY.BAT0.capacity < 70 ? "󱊢" : "󱊣" :
EWW_BATTERY.BAT0.capacity < 10 ? "󰢟" : EWW_BATTERY.BAT0.capacity < 30 ? "󱊤" : EWW_BATTERY.BAT0.capacity < 70 ? "󱊥" : "󱊦"}
:class "battery icon")
(revealer :transition "slideleft"
:duration "750ms"
:reveal {battery-reveal}
(progress :class "battery-bar"
:orientation "h"
:valign "center"
:width 60
:value {EWW_BATTERY.BAT0.capacity})))))

View File

@@ -0,0 +1,26 @@
(defpoll clock-time :interval "1s" "date +\"%H:%M:%S\"")
(defpoll clock-date :interval "1m" "date +\"%d/%m\"")
(defpoll clock-year :interval "1h" "date +\"%Y\"")
(defvar date-reveal false)
(defwidget clock-module []
(eventbox
:onhover "${EWW_CMD} update date-reveal=true"
:onhoverlost "${EWW_CMD} update date-reveal=false"
(box
:class "module clock"
:orientation "h"
:space-evenly "false"
(label
:text clock-time
:class "clock-time")
(revealer
:transition "slideleft"
:duration "750ms"
:reveal {date-reveal}
(box
:orientation "h"
(label :text clock-date
:class "clock-date")
(label :text clock-year
:class "clock-year"))))))

View File

@@ -0,0 +1,3 @@
(defwidget sep []
(label :text "|"
:class "separator"))

View File

@@ -0,0 +1,26 @@
(defpoll vinfo
:initial "{\"volume\": 0, \"muted\": false}"
:interval "1s"
"bash ~/.config/eww/scripts/get-volume-info.sh")
(defvar volume-reveal false)
(defwidget volume-module []
(eventbox :onhover "${EWW_CMD} update volume-reveal=true"
:onhoverlost "${EWW_CMD} update volume-reveal=false"
(box :class "module volume"
:orientation "h"
:space-evenly false
:tooltip {vinfo.muted? "muted" : "Volume: ${vinfo.volume}%"}
(label :text {vinfo.muted ? "󰝟" : vinfo.volume < 10 ? "󰕿" : vinfo.volume < 70 ? "󰖀" : "󰕾"}
:class "volume icon ${vinfo.muted ? "volume-mute" : ""}")
(revealer :transition "slideleft"
:duration "750ms"
:reveal {volume-reveal && !vinfo.muted}
(scale :class "volume-bar"
:orientation "h"
:valign "center"
:width 60
:min 0
:max 101
:value {vinfo.volume}
:onchange "amixer sset Master {}% > /dev/null")))))

View File

@@ -0,0 +1,25 @@
(defvar wifi-reveal false)
(defpoll winfo
:initial "{\"connected\": \"false\"}"
:interval "10s"
"bash ~/.config/eww/scripts/get-wifi-info.sh")
(defwidget wifi-module []
(eventbox :onhover "${EWW_CMD} update wifi-reveal=true"
:onhoverlost "${EWW_CMD} update wifi-reveal=false"
:onclick "$HOME/.config/rofi/menus/wifi/wifi.sh"
(box :class "module wifi"
:orientation "h"
:space-evenly "false"
:tooltip {winfo.connected ? "Signal: ${winfo.signal}%" : "Disconnected"}
(label :text { !winfo.connected ? "󰤭" :
winfo.signal < 25 ? "󰤟" :
winfo.signal < 50 ? "󰤢" :
winfo.signal < 75 ? "󰤥" : "󰤨"}
:class "wifi icon")
(revealer :transition "slideleft"
:duration "750ms"
:reveal {wifi-reveal && winfo.connected}
(label :class "wifi-text"
:text {winfo.connected ? winfo.ssid : "Disconnected"})))))

View File

@@ -0,0 +1,10 @@
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces.sh")
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get-active-workspace.sh")
(defwidget workspaces-module []
(box :space-evenly true
(label :text "${workspaces}${current_workspace}"
:visible false)
(for workspace in workspaces
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
(box :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
(label :text "${workspace.id == current_workspace ? "" : ""}"))))))

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 KiB

View File

@@ -3,7 +3,7 @@
with lib; with lib;
let let
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; }; nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
wallpaper = ../../data/wallpapers/simple/tarmac.png; wallpaper = ../../data/wallpapers/globus.jpg;
in in
{ {
imports = [ imports = [
@@ -70,6 +70,7 @@ in
inherit wallpaper; inherit wallpaper;
enable = true; enable = true;
laptop = true; laptop = true;
hyprland.enable = true;
}; };
# - Editors and development ------------------ # - Editors and development ------------------

View File

@@ -3,6 +3,7 @@
let let
cfg = config.samfelag.modules.app.alacritty; cfg = config.samfelag.modules.app.alacritty;
i3Cfg = config.samfelag.modules.desktop.i3; i3Cfg = config.samfelag.modules.desktop.i3;
hyprCfg = config.samfelag.modules.desktop.hyprland;
in in
{ {
options.samfelag.modules.app.alacritty = { options.samfelag.modules.app.alacritty = {
@@ -56,5 +57,11 @@ in
"${i3Cfg.mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty"; "${i3Cfg.mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty";
"${i3Cfg.mod}+Shift+Return" = "exec ${pkgs.alacritty}/bin/alacritty -t floating-term"; "${i3Cfg.mod}+Shift+Return" = "exec ${pkgs.alacritty}/bin/alacritty -t floating-term";
}; };
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod}, Return, exec, ${pkgs.alacritty}/bin/alacritty"
"${hyprCfg.mod} SHIFT, Return, exec, [float] ${pkgs.alacritty}/bin/alacritty"
];
}; };
} }

View File

@@ -3,6 +3,7 @@
let let
cfg = config.samfelag.modules.app.firefox; cfg = config.samfelag.modules.app.firefox;
i3Cfg = config.samfelag.modules.desktop.i3; i3Cfg = config.samfelag.modules.desktop.i3;
hyprCfg = config.samfelag.modules.desktop.hyprland;
in in
{ {
options.samfelag.modules.app.firefox = { options.samfelag.modules.app.firefox = {
@@ -13,10 +14,6 @@ in
firefox firefox
]; ];
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Shift+i" = "exec ${pkgs.firefox}/bin/firefox";
};
hm.programs.firefox = { hm.programs.firefox = {
enable = true; enable = true;
# extensions = with pkgs.nur.repos.rycee.firefox-addons; [ # extensions = with pkgs.nur.repos.rycee.firefox-addons; [
@@ -30,5 +27,12 @@ in
}; };
}; };
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Shift+i" = "exec ${pkgs.firefox}/bin/firefox";
};
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod} SHIFT, i, exec, ${pkgs.firefox}/bin/firefox"
];
}; };
} }

View File

@@ -3,6 +3,7 @@
let let
cfg = config.samfelag.modules.app.spotify; cfg = config.samfelag.modules.app.spotify;
i3Cfg = config.samfelag.modules.desktop.i3; i3Cfg = config.samfelag.modules.desktop.i3;
hyprCfg = config.samfelag.modules.desktop.hyprland;
in in
{ {
options.samfelag.modules.app.spotify = { options.samfelag.modules.app.spotify = {
@@ -16,5 +17,9 @@ in
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable { samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Shift+m" = "exec ${pkgs.spotify}/bin/spotify"; "${i3Cfg.mod}+Shift+m" = "exec ${pkgs.spotify}/bin/spotify";
}; };
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod} SHIFT, m, exec, ${pkgs.spotify}/bin/spotify"
];
}; };
} }

View File

@@ -53,12 +53,12 @@ in
samfelag.modules = { samfelag.modules = {
app.alacritty.enable = true; app.alacritty.enable = true;
desktop.rofi.enable = true;
desktop.polybar.enable = true;
app.firefox.enable = true; app.firefox.enable = true;
desktop.rofi.enable = true;
desktop.polybar.enable = true;
desktop.i3 = { desktop.i3 = {
enable = true;
laptop = cfg.laptop; laptop = cfg.laptop;
extraStartup = [ extraStartup = [
@@ -71,7 +71,7 @@ in
"${cfg.i3.mod}+End" = "exec $HOME/.config/rofi/menus/powermenu/powermenu.sh"; "${cfg.i3.mod}+End" = "exec $HOME/.config/rofi/menus/powermenu/powermenu.sh";
}; };
}; };
};
}; };
};
} }

56
modules/desktop/eww.nix Normal file
View File

@@ -0,0 +1,56 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.desktop.eww;
hyprCfg = config.samfelag.modules.desktop.hyprland;
# Paths
paths = {
};
in {
options.samfelag.modules.desktop.eww = {
enable = lib.mkEnableOption "eww";
};
config = lib.mkIf cfg.enable {
# - Configuration ----------------------------
environment.systemPackages = with pkgs; [
eww-wayland
# Scripts' dependencies
jq
socat
];
hm.xdg.configFile."eww/eww.yuck".source = ../../config/eww/eww.yuck;
hm.xdg.configFile."eww/eww.scss".source = ../../config/eww/eww.scss;
hm.xdg.configFile."eww/bars".source = ../../config/eww/bars;
hm.xdg.configFile."eww/widgets".source = ../../config/eww/widgets;
hm.xdg.configFile."eww/scripts".source = ../../config/eww/scripts;
# - Themeing ---------------------------------
hm.xdg.configFile."eww/colour-scheme.scss".text = ''
$base00: #${config.colorScheme.palette.base00};
$base01: #${config.colorScheme.palette.base01};
$base02: #${config.colorScheme.palette.base02};
$base03: #${config.colorScheme.palette.base03};
$base04: #${config.colorScheme.palette.base04};
$base05: #${config.colorScheme.palette.base05};
$base06: #${config.colorScheme.palette.base06};
$base07: #${config.colorScheme.palette.base07};
$base08: #${config.colorScheme.palette.base08};
$base09: #${config.colorScheme.palette.base09};
$base0A: #${config.colorScheme.palette.base0A};
$base0B: #${config.colorScheme.palette.base0B};
$base0C: #${config.colorScheme.palette.base0C};
$base0D: #${config.colorScheme.palette.base0D};
$base0E: #${config.colorScheme.palette.base0E};
$base0F: #${config.colorScheme.palette.base0F};
'';
# - Dependencies -----------------------------
samfelag.modules.desktop.rofi.enable = true;
};
}

View File

@@ -0,0 +1,148 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.desktop.hyprland;
mod = "Mod4";
in {
options.samfelag.modules.desktop.hyprland = with lib; {
enable = mkEnableOption "hyprland window manager";
mod = my.mkOpt' types.str "Mod4" "Main modifier key for hyprland";
laptop = mkEnableOption "Enable features for a laptop (trackpad, battery, etc...)";
extraKeybindings = my.mkOpt (types.listOf types.str) [ ];
extraStartup = my.mkOpt (types.listOf types.attrs) [ ];
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
# Wallpaper
hyprpaper
];
# - Dependencies -----------------------------
samfelag.modules.desktop.rofi.enable = true;
samfelag.modules.desktop.eww.enable = true;
# - Configuration -----------------------------
# Hyprpaper
hm.xdg.configFile."hypr/hyprpaper.conf".text = ''
preload = ${config.samfelag.modules.desktop.wallpaper}
wallpaper = ,${config.samfelag.modules.desktop.wallpaper}
'';
programs.hyprland = {
enable = true;
xwayland.enable = true;
enableNvidiaPatches = true;
};
hm.wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
enableNvidiaPatches = true;
package = pkgs.hyprland;
# Optional
# Whether to enable hyprland-session.target on hyprland startup
systemd.enable = true;
settings = {
input = {
kb_layout = "es";
};
monitor = ",highres,auto,1";
exec-once = [
"hyprpaper"
"eww open top-bar"
];
decoration = {
rounding = 10;
};
gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = false;
};
bind = [
"${cfg.mod}, Q, killactive,"
"${cfg.mod}, F, fullscreen, 1"
"${cfg.mod} SHIFT, F, fullscreen, 0"
"${cfg.mod} SHIFT, SPACE, togglefloating"
# Move focus
"${cfg.mod}, left, movefocus, l"
"${cfg.mod}, right, movefocus, r"
"${cfg.mod}, up, movefocus, u"
"${cfg.mod}, down, movefocus, d"
"${cfg.mod}, h, movefocus, l"
"${cfg.mod}, l, movefocus, r"
"${cfg.mod}, k, movefocus, u"
"${cfg.mod}, j, movefocus, d"
# Move focus
"${cfg.mod} SHIFT, left, movewindow, l"
"${cfg.mod} SHIFT, right, movewindow, r"
"${cfg.mod} SHIFT, up, movewindow, u"
"${cfg.mod} SHIFT, down, movewindow, d"
"${cfg.mod} SHIFT, h, movewindow, l"
"${cfg.mod} SHIFT, l, movewindow, r"
"${cfg.mod} SHIFT, k, movewindow, u"
"${cfg.mod} SHIFT, j, movewindow, d"
# Switch workspace
"${cfg.mod}, 1, workspace, 1"
"${cfg.mod}, 2, workspace, 2"
"${cfg.mod}, 3, workspace, 3"
"${cfg.mod}, 4, workspace, 4"
"${cfg.mod}, 5, workspace, 5"
"${cfg.mod}, 0, workspace, 6"
# Move to workspace
"${cfg.mod} SHIFT, 1, movetoworkspace, 1"
"${cfg.mod} SHIFT, 2, movetoworkspace, 2"
"${cfg.mod} SHIFT, 3, movetoworkspace, 3"
"${cfg.mod} SHIFT, 4, movetoworkspace, 4"
"${cfg.mod} SHIFT, 5, movetoworkspace, 5"
"${cfg.mod} SHIFT, 0, movetoworkspace, 6"
# - Media ------------------------------
# Pulse Audio controls (mute)
", XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle"
# Media player controls
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioStop, exec, playerctl stop"
] ++ cfg.extraKeybindings;
binde = [
# Pulse Audio controls (volume)
", XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%"
", XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%"
];
bindm = [
"${cfg.mod}, mouse:272, movewindow"
];
};
};
};
}

View File

@@ -2,6 +2,7 @@
let let
cfg = config.samfelag.modules.desktop.rofi; cfg = config.samfelag.modules.desktop.rofi;
hyprCfg = config.samfelag.modules.desktop.hyprland;
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; }; nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
in in
{ {
@@ -34,5 +35,11 @@ in
} }
''; '';
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod}, SPACE, exec, $HOME/.config/rofi/menus/launcher/launcher.sh"
"${hyprCfg.mod}, END, exec, $HOME/.config/rofi/menus/powermenu/powermenu.sh"
"${hyprCfg.mod} SHIFT, W, exec, $HOME/.config/rofi/menus/wifi/wifi.sh"
];
}; };
} }

View File

@@ -4,6 +4,7 @@ with lib;
let let
cfg = config.samfelag.modules.editors.emacs; cfg = config.samfelag.modules.editors.emacs;
i3Cfg = config.samfelag.modules.desktop.i3; i3Cfg = config.samfelag.modules.desktop.i3;
hyprCfg = config.samfelag.modules.desktop.hyprland;
emacsPackages = epkgs: [ emacsPackages = epkgs: [
epkgs.vterm epkgs.vterm
]; ];
@@ -106,5 +107,9 @@ in {
"${i3Cfg.mod}+Shift+e" = "exec ${emacsWithPackages}/bin/emacs"; "${i3Cfg.mod}+Shift+e" = "exec ${emacsWithPackages}/bin/emacs";
}; };
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod} SHIFT, e, exec, ${emacsWithPackages}/bin/emacs"
];
}; };
} }

View File

@@ -2,7 +2,8 @@
let let
cfg = config.samfelag.modules.system.pass; cfg = config.samfelag.modules.system.pass;
desktopCfg = config.samfelag.modules.desktop; i3Cfg = config.samfelag.modules.desktop.i3;
hyprCfg = config.samfelag.modules.desktop.hyprland;
in in
{ {
options.samfelag.modules.system.pass = { options.samfelag.modules.system.pass = {
@@ -16,6 +17,7 @@ in
hm.programs.rofi.pass = { hm.programs.rofi.pass = {
enable = true; enable = true;
package = if hyprCfg.enable then pkgs.rofi-pass-wayland else pkgs.rofi-pass;
extraConfig = '' extraConfig = ''
default_user="sastrey@gmail.com" default_user="sastrey@gmail.com"
default_user2="marc" default_user2="marc"
@@ -34,8 +36,12 @@ in
''; '';
}; };
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf desktopCfg.enable { samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${desktopCfg.i3.mod}+p" = "exec rofi-pass"; "${i3Cfg.mod}+p" = "exec rofi-pass";
}; };
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod}, P, exec, rofi-pass"
];
}; };
} }