nix-dotfiles/home_manager/modules/bspwm.nix

48 lines
1.4 KiB
Nix

{ pkgs, lib, ... }:
let
monitorPages = [ "I" "II" "III" "IV" "V" "VI" "VII" "VIII" "IX" "X" ];
monitorPagesString = lib.strings.concatStringsSep " " monitorPages;
strPalette = pkgs.lib.rice.palette.toRGBHex pkgs.rice.colorPalette;
xrandr = "${pkgs.xorg.xrandr}/bin/xrandr";
xsetroot = "${pkgs.xorg.xsetroot}/bin/xsetroot";
in
{
xsession.windowManager.bspwm = {
enable = true;
settings = {
border_width = 2;
border_radius = 8;
window_gap = 4;
split_ratio = 0.5;
top_padding = 0;
borderless_monocle = true;
gapless_monocle = false;
normal_border_color = strPalette.normal.blue;
focused_border_color = strPalette.bright.blue;
};
# monitors = builtins.foldl' (acc: monitor: acc // { ${monitor} = monitorPages; }) { } monitors;
rules = {
"*" = { follow = true; };
"Zathura" = { state = "tiled"; };
};
extraConfig = ''
for monitor in $(${xrandr} --listactivemonitors | cut -d " " -f 6); do
bspc monitor $monitor -d ${monitorPagesString}
done
autorandr -c
${xsetroot} -solid black -cursor_name left_ptr
systemctl --user restart \
polybar.service \
update-background.service
'';
startupPrograms = [ ];
};
services = {
network-manager-applet.enable = true;
blueman-applet.enable = true;
};
home.packages = with pkgs; [ blueman ];
}