From aceeeef689e1c609ed4936c1b5bcbc656404cec6 Mon Sep 17 00:00:00 2001 From: SebastianStork Date: Wed, 14 Aug 2024 00:54:54 +0200 Subject: [PATCH] Migrate services from wrappers to systemd services --- modules/home/de/cliphist.nix | 25 +++++ modules/home/de/hypridle.nix | 46 ++++++++ modules/home/de/hyprland/default.nix | 33 ++++++ modules/home/{ => de}/hyprland/keybinds.nix | 24 +---- modules/home/de/hyprland/settings.nix | 54 ++++++++++ modules/home/de/hyprpaper.nix | 15 +++ modules/home/de/waybar.nix | 114 ++++++++++++++++++++ modules/home/hyprland/settings.nix | 85 --------------- wrappers/hypridle.nix | 38 ------- wrappers/hyprpaper.nix | 23 ---- wrappers/waybar/config.json | 58 ---------- wrappers/waybar/default.nix | 17 --- wrappers/waybar/style.css | 6 -- 13 files changed, 291 insertions(+), 247 deletions(-) create mode 100644 modules/home/de/cliphist.nix create mode 100644 modules/home/de/hypridle.nix create mode 100644 modules/home/de/hyprland/default.nix rename modules/home/{ => de}/hyprland/keybinds.nix (89%) create mode 100644 modules/home/de/hyprland/settings.nix create mode 100644 modules/home/de/hyprpaper.nix create mode 100644 modules/home/de/waybar.nix delete mode 100644 modules/home/hyprland/settings.nix delete mode 100644 wrappers/hypridle.nix delete mode 100644 wrappers/hyprpaper.nix delete mode 100644 wrappers/waybar/config.json delete mode 100644 wrappers/waybar/default.nix delete mode 100644 wrappers/waybar/style.css diff --git a/modules/home/de/cliphist.nix b/modules/home/de/cliphist.nix new file mode 100644 index 0000000..8e4b90e --- /dev/null +++ b/modules/home/de/cliphist.nix @@ -0,0 +1,25 @@ +{ + config, + pkgs, + lib, + wrappers, + ... +}: +{ + options.myConfig.de.cliphist.enable = lib.mkEnableOption ""; + + config = lib.mkIf config.myConfig.de.cliphist.enable { + services.cliphist = { + enable = true; + allowImages = false; + }; + + systemd.user.services.cliphist.Service.ExecStartPre = "${lib.getExe config.services.cliphist.package} wipe"; + + home.packages = [ + (wrappers.rofi { inherit (config.myConfig) theme; }) + pkgs.wl-clipboard + (pkgs.writeScriptBin "rofi-clipboard" "cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy") + ]; + }; +} diff --git a/modules/home/de/hypridle.nix b/modules/home/de/hypridle.nix new file mode 100644 index 0000000..60048f7 --- /dev/null +++ b/modules/home/de/hypridle.nix @@ -0,0 +1,46 @@ +{ + config, + pkgs, + lib, + wrappers, + ... +}: +{ + options.myConfig.de.hypridle.enable = lib.mkEnableOption ""; + + config = lib.mkIf config.myConfig.de.hypridle.enable { + home.packages = [ + wrappers.hyprlock + pkgs.brightnessctl + (pkgs.writeScriptBin "lock-suspend" "loginctl lock-session && sleep 0.5 && systemctl suspend") + ]; + + services.hypridle = { + enable = true; + + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + { + timeout = 300; + on-timeout = "brightnessctl -s && brightnessctl -e set 10%"; + on-resume = "brightnessctl -r"; + } + { + timeout = 600; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + { + timeout = 610; + on-timeout = "loginctl lock-session"; + } + ]; + }; + }; + }; +} diff --git a/modules/home/de/hyprland/default.nix b/modules/home/de/hyprland/default.nix new file mode 100644 index 0000000..0a763c6 --- /dev/null +++ b/modules/home/de/hyprland/default.nix @@ -0,0 +1,33 @@ +{ + config, + pkgs, + lib, + wrappers, + ... +}@moduleArgs: +{ + options.myConfig.de.hyprland.enable = lib.mkEnableOption "" // { + default = moduleArgs.osConfig.myConfig.de.hyprland.enable or false; + }; + + config = lib.mkIf config.myConfig.de.hyprland.enable { + wayland.windowManager.hyprland.enable = true; + + home.packages = [ + (wrappers.rofi { inherit (config.myConfig) theme; }) + pkgs.wl-clipboard + pkgs.playerctl + pkgs.brightnessctl + pkgs.grimblast + ]; + + myConfig.de = { + hyprpaper.enable = true; + hypridle.enable = true; + waybar.enable = true; + cliphist.enable = true; + }; + + services.dunst.enable = true; + }; +} diff --git a/modules/home/hyprland/keybinds.nix b/modules/home/de/hyprland/keybinds.nix similarity index 89% rename from modules/home/hyprland/keybinds.nix rename to modules/home/de/hyprland/keybinds.nix index ec62c0b..59aa3b6 100644 --- a/modules/home/hyprland/keybinds.nix +++ b/modules/home/de/hyprland/keybinds.nix @@ -1,20 +1,6 @@ -{ - config, - pkgs, - lib, - wrappers, - ... -}: +{ config, lib, ... }: { config = lib.mkIf config.myConfig.de.hyprland.enable { - home.packages = [ - (wrappers.rofi { inherit (config.myConfig) theme; }) - pkgs.wl-clipboard - pkgs.playerctl - pkgs.brightnessctl - pkgs.grimblast - ]; - wayland.windowManager.hyprland.extraConfig = '' # Bindflags: # r = release @@ -22,8 +8,6 @@ # l = locked # Variables - $rofi-clipboard = cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy - $lock-suspend = loginctl lock-session && sleep 0.5 && systemctl suspend $play-pause = playerctl --ignore-player=firefox play-pause $play-next = playerctl --ignore-player=firefox next $play-previous = playerctl --ignore-player=firefox previous @@ -40,7 +24,7 @@ # Launch programs bind = SUPER, R, exec, rofi -show drun bind = SUPER, RETURN, exec, kitty - bind = SUPER, V, exec, $rofi-clipboard + bind = SUPER, V, exec, rofi-clipboard bind = SUPER, B, exec, firefox bind = SUPER, F, exec, nemo bind = SUPER, C, exec, codium @@ -87,8 +71,8 @@ bindrl = SUPER CONTROL, Q, exit, bindrl = SUPER CONTROL, P, exec, poweroff bindrl = SUPER CONTROL, R, exec, reboot - bindrl = SUPER CONTROL, S, exec, $lock-suspend - bindl = , switch:on:Lid Switch, exec, $lock-suspend + bindrl = SUPER CONTROL, S, exec, lock-suspend + bindl = , switch:on:Lid Switch, exec, lock-suspend bindrl = SUPER CONTROL, L, exec, loginctl lock-session bindrl = SUPER CONTROL, B, exec, sleep 1 && hyprctl dispatch dpms off bind = SUPER CONTROL, W, exec, pkill waybar && hyprctl dispatch exec waybar diff --git a/modules/home/de/hyprland/settings.nix b/modules/home/de/hyprland/settings.nix new file mode 100644 index 0000000..3981fa1 --- /dev/null +++ b/modules/home/de/hyprland/settings.nix @@ -0,0 +1,54 @@ +{ config, lib, ... }: +{ + config = lib.mkIf config.myConfig.de.hyprland.enable { + wayland.windowManager.hyprland.settings = { + input = { + kb_layout = "de"; + kb_variant = "nodeadkeys"; + accel_profile = "flat"; + }; + + device = [ + { + name = "logitech-usb-receiver-mouse"; + sensitivity = "0.2"; + } + { + name = "dell0b9f:00-27c6:0d43-touchpad"; + accel_profile = "adaptive"; + disable_while_typing = true; + natural_scroll = true; + middle_button_emulation = true; + } + ]; + + gestures.workspace_swipe = true; + + general = { + gaps_in = 5; + gaps_out = 10; + border_size = 1; + layout = "master"; + }; + + master = { + no_gaps_when_only = 1; + mfact = "0.5"; + }; + + decoration = { + rounding = 6; + drop_shadow = false; + }; + + animations.enabled = false; + + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + force_default_wallpaper = 0; + key_press_enables_dpms = true; + }; + }; + }; +} diff --git a/modules/home/de/hyprpaper.nix b/modules/home/de/hyprpaper.nix new file mode 100644 index 0000000..d21a8b4 --- /dev/null +++ b/modules/home/de/hyprpaper.nix @@ -0,0 +1,15 @@ +{ config, lib, ... }: +{ + options.myConfig.de.hyprpaper.enable = lib.mkEnableOption ""; + + config = lib.mkIf config.myConfig.de.hyprpaper.enable { + services.hyprpaper = { + enable = true; + + settings = { + preload = [ "~/Pictures/.wallpaper" ]; + wallpaper = [ ", ~/Pictures/.wallpaper" ]; + }; + }; + }; +} diff --git a/modules/home/de/waybar.nix b/modules/home/de/waybar.nix new file mode 100644 index 0000000..5de9c6d --- /dev/null +++ b/modules/home/de/waybar.nix @@ -0,0 +1,114 @@ +{ config, lib, ... }: +{ + options.myConfig.de.waybar.enable = lib.mkEnableOption ""; + + config = lib.mkIf config.myConfig.de.waybar.enable { + programs.waybar = { + enable = true; + systemd.enable = true; + + settings.mainBar = { + output = [ + "DP-1" + "eDP-1" + ]; + layer = "top"; + position = "bottom"; + spacing = 10; + + modules-left = [ "clock" ]; + modules-center = [ "hyprland/workspaces" ]; + modules-right = [ + "tray" + "network" + "wireplumber" + "backlight" + "battery" + ]; + + clock = { + format = " {:%H:%M}"; + tooltip-format = "{:%d.%m.%Y}"; + }; + + "hyprland/workspaces" = { + active-only = false; + all-outputs = true; + }; + + tray = { + icon-size = 20; + spacing = 6; + }; + + network = { + interval = 10; + format = ""; + format-disconnected = "󰪎"; + format-ethernet = "󰌗"; + format-icons = [ + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; + format-wifi = "{icon}"; + tooltip-format-disconnected = "Disconnected"; + tooltip-format-ethernet = "󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}"; + tooltip-format-wifi = "{essid} 󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}"; + }; + + wireplumber = { + format = "{icon} {volume}%"; + format-icons = [ + "󰕿" + "󰖀" + "󰕾" + ]; + format-muted = "󰝟"; + scroll-step = "5"; + }; + + backlight = { + device = "amdgpu_bl1"; + format = "{icon} {percent}%"; + format-icons = [ + "󰃞" + "󰃟" + "󰃠" + ]; + }; + + battery = { + format = "{icon} {capacity}%"; + format-icons = [ + "󰂎" + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; + states = { + critical = 5; + warning = 15; + }; + }; + }; + + style = '' + * { + border: none; + border-radius: 0px; + font-family: "Open Sans, Symbols Nerd Font Mono"; + font-size: 15px; + } + ''; + }; + }; +} diff --git a/modules/home/hyprland/settings.nix b/modules/home/hyprland/settings.nix deleted file mode 100644 index d2b1b7e..0000000 --- a/modules/home/hyprland/settings.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - config, - pkgs, - lib, - wrappers, - ... -}@moduleArgs: -{ - options.myConfig.de.hyprland.enable = lib.mkEnableOption "" // { - default = moduleArgs.osConfig.myConfig.de.hyprland.enable or false; - }; - - config = lib.mkIf config.myConfig.de.hyprland.enable { - home.packages = [ - wrappers.hyprpaper - wrappers.hyprlock - wrappers.hypridle - wrappers.waybar - pkgs.dunst - pkgs.cliphist - ]; - - wayland.windowManager.hyprland = { - enable = true; - - settings = { - exec-once = [ - "hyprpaper" - "hypridle" - "sleep 3 && waybar" - "dunst" - "cliphist wipe && wl-paste --watch cliphist store" - ]; - - input = { - kb_layout = "de"; - kb_variant = "nodeadkeys"; - accel_profile = "flat"; - }; - - device = [ - { - name = "logitech-usb-receiver-mouse"; - sensitivity = "0.2"; - } - { - name = "dell0b9f:00-27c6:0d43-touchpad"; - accel_profile = "adaptive"; - disable_while_typing = true; - natural_scroll = true; - middle_button_emulation = true; - } - ]; - - gestures.workspace_swipe = true; - - general = { - gaps_in = 5; - gaps_out = 10; - border_size = 1; - layout = "master"; - }; - - master = { - no_gaps_when_only = 1; - mfact = "0.5"; - }; - - decoration = { - rounding = 6; - drop_shadow = false; - }; - - animations.enabled = false; - - misc = { - disable_hyprland_logo = true; - disable_splash_rendering = true; - force_default_wallpaper = 0; - key_press_enables_dpms = true; - }; - }; - }; - }; -} diff --git a/wrappers/hypridle.nix b/wrappers/hypridle.nix deleted file mode 100644 index b7b0a7a..0000000 --- a/wrappers/hypridle.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ inputs, pkgs, ... }: -(inputs.wrapper-manager.lib { - inherit pkgs; - modules = [ - { - wrappers.hypridle = { - basePackage = pkgs.hypridle; - flags = - let - hypridle-config = pkgs.writeText "hypridle-config" '' - general { - lock_cmd = pidof hyprlock || hyprlock - after_sleep_cmd = hyprctl dispatch dpms on - } - listener { - timeout = 300 - on-timeout= brightnessctl -s && brightnessctl -e set 10% - on-resume = brightnessctl -r - } - listener { - timeout = 600 - on-timeout = hyprctl dispatch dpms off - on-resume = hyprctl dispatch dpms on - } - listener { - timeout = 610 - on-timeout = loginctl lock-session - } - ''; - in - [ - "--config" - hypridle-config - ]; - }; - } - ]; -}).config.wrappers.hypridle.wrapped diff --git a/wrappers/hyprpaper.nix b/wrappers/hyprpaper.nix deleted file mode 100644 index 41b9064..0000000 --- a/wrappers/hyprpaper.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ inputs, pkgs, ... }: -(inputs.wrapper-manager.lib { - inherit pkgs; - modules = [ - { - wrappers.hyprpaper = { - basePackage = pkgs.hyprpaper; - flags = - let - hyprpaper-config = pkgs.writeText "hyprpaper-config" '' - preload = ~/Pictures/.wallpaper - wallpaper = , ~/Pictures/.wallpaper - splash = false - ''; - in - [ - "--config" - hyprpaper-config - ]; - }; - } - ]; -}).config.wrappers.hyprpaper.wrapped diff --git a/wrappers/waybar/config.json b/wrappers/waybar/config.json deleted file mode 100644 index a2e5ced..0000000 --- a/wrappers/waybar/config.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "output": ["DP-1", "eDP-1"], - "layer": "top", - "position": "bottom", - "spacing": 10, - - "modules-left": ["clock"], - "modules-center": ["hyprland/workspaces"], - "modules-right": ["tray", "network", "wireplumber", "backlight", "battery"], - - "clock": { - "format": " {:%H:%M}", - "tooltip-format": "{:%d.%m.%Y}" - }, - - "hyprland/workspaces": { - "active-only": false, - "all-outputs": true - }, - - "tray": { - "icon-size": 20, - "spacing": 6 - }, - - "network": { - "format": "", - "format-disconnected": "󰪎", - "format-ethernet": "󰌗", - "format-icons": ["󰤟", "󰤢", "󰤥", "󰤨"], - "format-wifi": "{icon}", - "interval": 10, - "tooltip-format-disconnected": "Disconnected", - "tooltip-format-ethernet": "󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}", - "tooltip-format-wifi": "{essid} 󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}" - }, - - "wireplumber": { - "format": "{icon} {volume}%", - "format-icons": ["󰕿", "󰖀", "󰕾"], - "format-muted": "󰝟", - "scroll-step": "5" - }, - - "backlight": { - "device": "amdgpu_bl1", - "format": "{icon} {percent}%", - "format-icons": ["󰃞", "󰃟", "󰃠"] - }, - "battery": { - "format": "{icon} {capacity}%", - "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"], - "states": { - "critical": 5, - "warning": 15 - } - } -} diff --git a/wrappers/waybar/default.nix b/wrappers/waybar/default.nix deleted file mode 100644 index 05c066d..0000000 --- a/wrappers/waybar/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ inputs, pkgs, ... }: -(inputs.wrapper-manager.lib { - inherit pkgs; - modules = [ - { - wrappers.waybar = { - basePackage = pkgs.waybar; - flags = [ - "--config" - ./config.json - "--style" - ./style.css - ]; - }; - } - ]; -}).config.wrappers.waybar.wrapped diff --git a/wrappers/waybar/style.css b/wrappers/waybar/style.css deleted file mode 100644 index 52c8911..0000000 --- a/wrappers/waybar/style.css +++ /dev/null @@ -1,6 +0,0 @@ -* { - border: none; - border-radius: 0px; - font-family: "Open Sans, Symbols Nerd Font Mono"; - font-size: 15px; -}