From 6036d496200359b86e2ff3f3de632374fa18876a Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Tue, 27 Aug 2024 16:37:58 -0400 Subject: [PATCH] meta: Move home-manager dwm config to separate module Note that it's possible to use an autostart patch like https://dwm.suckless.org/patches/cool_autostart/ so startx isn't needed although this results in dwm starting before things like the status bar get set. --- home/dwm.nix | 84 +++++++++++++++++++++++++++++++++++++++++ specializations/dwm.nix | 84 ----------------------------------------- 2 files changed, 84 insertions(+), 84 deletions(-) create mode 100644 home/dwm.nix diff --git a/home/dwm.nix b/home/dwm.nix new file mode 100644 index 00000000..9336ba56 --- /dev/null +++ b/home/dwm.nix @@ -0,0 +1,84 @@ +{ config, pkgs, ... }: + +let + barScript = "dwm/bar.fish"; +in +{ + home = { + packages = with pkgs; [ + feh + xclip + scrot + ]; + + file.".xinitrc" = { + executable = true; + text = # bash + '' + #!/usr/bin/env sh + + export XDG_SESSION_TYPE=x11 + export GDK_BACKEND=x11 + export XDG_CURRENT_DESKTOP=dwm + export GTK_IM_MODULE=fcitx + export QT_IM_MODULE=fcitx + export XMODIFIERS=@im=fcitx + export SDL_IM_MODULE=fcitx + export GLFW_IM_MODULE=ibus + export GTK_CSD=0 + + xrdb -merge ~/.Xresources + xset r rate 300 50 + feh --no-fehbg --bg-scale ${config.stylix.image} + ~/.config/${barScript} & + picom --daemon + ${pkgs.nemo}/bin/nemo-desktop & + fcitx5 & + + while true; do + dbus-launch --sh-syntax --exit-with-session dwm + done + ''; + }; + }; + + xdg.configFile = { + ${barScript} = { + executable = true; + text = # fish + '' + #!/usr/bin/env fish + + function get_icon + if test "$argv" -gt 90 + echo " " + else if test "$argv" -gt 60 + echo " " + else if test "$argv" -gt 30 + echo " " + else if test "$argv" -gt 10 + echo " " + else + echo " " + end + end + + function update_bar + set VOLUME "音量:$(math "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | choose 1) * 100")%" + set TIME "$(date '+%x(%a)%R')" + set capacity "$(cat /sys/class/power_supply/BAT0/capacity)" + + set BATTERY "$(get_icon $capacity)$capacity%" + + xsetroot -name " $VOLUME・$BATTERY・$TIME " + end + + while true + update_bar + + sleep 10s + end + ''; + }; + }; +} diff --git a/specializations/dwm.nix b/specializations/dwm.nix index 8c1b836c..0346f324 100644 --- a/specializations/dwm.nix +++ b/specializations/dwm.nix @@ -6,98 +6,14 @@ }: let - inherit (lib) singleton; - inherit (config.lib.stylix.colors.withHashtag) base00 base02 base03 base05 ; - - barScript = "dwm/bar.fish"; in { - home-manager.sharedModules = singleton { - home = { - packages = with pkgs; [ - feh - xclip - scrot - ]; - - file.".xinitrc" = { - executable = true; - text = # bash - '' - #!/usr/bin/env sh - - export XDG_SESSION_TYPE=x11 - export GDK_BACKEND=x11 - export XDG_CURRENT_DESKTOP=dwm - export GTK_IM_MODULE=fcitx - export QT_IM_MODULE=fcitx - export XMODIFIERS=@im=fcitx - export SDL_IM_MODULE=fcitx - export GLFW_IM_MODULE=ibus - export GTK_CSD=0 - - xrdb -merge ~/.Xresources - xset r rate 300 50 - feh --no-fehbg --bg-scale ${config.stylix.image} - ~/.config/${barScript} & - picom --daemon - ${pkgs.nemo}/bin/nemo-desktop & - fcitx5 & - - while true; do - dbus-launch --sh-syntax --exit-with-session dwm - done - ''; - }; - }; - - xdg.configFile = { - ${barScript} = { - executable = true; - text = # fish - '' - #!/usr/bin/env fish - - function get_icon - if test "$argv" -gt 90 - echo " " - else if test "$argv" -gt 60 - echo " " - else if test "$argv" -gt 30 - echo " " - else if test "$argv" -gt 10 - echo " " - else - echo " " - end - end - - function update_bar - set VOLUME "音量:$(math "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | choose 1) * 100")%" - set TIME "$(date '+%x(%a)%R')" - set capacity "$(cat /sys/class/power_supply/BAT0/capacity)" - - set BATTERY "$(get_icon $capacity)$capacity%" - - xsetroot -name " $VOLUME・$BATTERY・$TIME " - end - - while true - update_bar - - sleep 10s - end - ''; - }; - }; - }; - services = { xserver = { displayManager.startx.enable = true;