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.
This commit is contained in:
Donovan Glover 2024-08-27 16:37:58 -04:00
parent 99fd8bf3f3
commit 6036d49620
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
2 changed files with 84 additions and 84 deletions

84
home/dwm.nix Normal file
View File

@ -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
'';
};
};
}

View File

@ -6,98 +6,14 @@
}: }:
let let
inherit (lib) singleton;
inherit (config.lib.stylix.colors.withHashtag) inherit (config.lib.stylix.colors.withHashtag)
base00 base00
base02 base02
base03 base03
base05 base05
; ;
barScript = "dwm/bar.fish";
in 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 = { services = {
xserver = { xserver = {
displayManager.startx.enable = true; displayManager.startx.enable = true;