From 0a5754541bb01e96021ca7ee74f1256a8ee68bc4 Mon Sep 17 00:00:00 2001 From: tdback Date: Sat, 21 Dec 2024 15:32:13 -0500 Subject: initial commit to self-hosted git --- users/tdback/modules/x11/default.nix | 94 ++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 users/tdback/modules/x11/default.nix (limited to 'users/tdback/modules/x11') diff --git a/users/tdback/modules/x11/default.nix b/users/tdback/modules/x11/default.nix new file mode 100644 index 0000000..41025a4 --- /dev/null +++ b/users/tdback/modules/x11/default.nix @@ -0,0 +1,94 @@ +{ pkgs, ... }: +{ + xsession.windowManager.bspwm = { + enable = true; + package = pkgs.bspwm; + settings = let color = "#3B4252"; in { + window_gap = 0; + top_padding = 0; + bottom_padding = 0; + right_padding = 0; + left_padding = 0; + top_monocle_padding = 0; + bottom_monocle_padding = 0; + right_monocle_padding = 0; + left_monocle_padding = 0; + split_ratio = 0.5; + borderless_monocle = true; + gapless_monocle = true; + normal_border_color = color; + active_border_color = color; + focused_border_color = color; + }; + + rules = { + "Zathura".state = "tiled"; + }; + + startupPrograms = [ + "${pkgs.xorg.setxkbmap}/bin/setxkbmap -layout us" + "${pkgs.xorg.xsetroot}/bin/xsetroot -cursor_name left_ptr" + "${pkgs.xorg.xset}/bin/xset r rate 350 40" + "~/.fehbg" + ]; + + extraConfig = '' + ${pkgs.bspwm}/bin/bspc monitor -d 1 2 3 4 5 6 7 8 9 + ''; + }; + + services.sxhkd = { + enable = true; + package = pkgs.sxhkd; + keybindings = { + # Program hotkeys. + "alt + Tab" = "rofi -show window"; + "super + r" = "rofi -show drun"; + "super + x" = "alacritty"; + "super + b" = "firefox"; + "super + p" = "flameshot full -p $HOME/.local/screenshots"; + "super + shift + p" = "flameshot gui -p $HOME/.local/screenshots"; + "super + Escape" = "systemctl --user restart polybar"; + "super + alt + {q,r}" = "bspc {quit,wm -r}"; + + # Function hotkeys. + "XF86AudioPrev" = "mpc prev"; + "XF86AudioNext" = "mpc next"; + "XF86AudioPlay" = "mpc toggle"; + "XF86AudioLowerVolume" = "pamixer -d 5"; + "XF86AudioRaiseVolume" = "pamixer -i 5"; + "XF86AudioMute" = "pamixer -t"; + + # Manipulate window manager. + "super + q" = "bspc node -{c,k}"; + "super + f" = "bspc node focused.tiled -t fullscreen"; + "super + t" = "bspc node focused.fullscreen -t tiled"; + "super + shift + f" = "bspc node focused.tiled -t floating"; + "super + shift + t" = "bspc node focused.floating -t tiled"; + "super + {_,shift + }{h,j,k,l}" = "bspc node -{f,s} {west,south,north,east}"; + "super + {_,shift}c" = "bspc node -f {next,prev}.local.!hidden.window"; + "super + bracket{left,right}" = "bspc desktop -f {prev,next}.local"; + "super + {grave,Tab}" = "bspc {node,desktop} -f last"; + "super + {o,i}" = "bspc wm -h off; bspc node {older,newer} -f; bspc wm -h on"; + "super + {_,shift + }{1-9,0}" = "bspc {desktop -f, node -d} '^{1-9,10}'"; + "super + alt + {h,j,k,l}" = "bspc node -z {left -20 0, bottom 0 20, top 0 -20, right 20 0}"; + "super + alt + shift {h,j,k,l}" = "bspc node -z {right -20 0, top 0 20, bottom 0 -20, left 20 0}"; + "super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}"; + }; + }; + + # Generate X11 init scripts. + home.file = { + ".xinitrc".text = '' + [ -f ~/.xprofile ] && . ~/.xprofile + [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources + exec bspwm + ''; + ".xprofile".text = '' + xrandr --output DP-0 --primary --mode 1920x1080 --rotate normal --rate 165 + ''; + ".Xresources".text = '' + Xcursor.size: 24 + ''; + }; +} -- cgit v1.2.3