summaryrefslogtreecommitdiff
path: root/home.nix
diff options
context:
space:
mode:
authorvin <vin@vineetk.net>2025-10-06 22:51:25 -0400
committervin <vin@vineetk.net>2025-10-06 22:51:25 -0400
commit8d42e47952b290cfb0cecd67a8eadcc50f3b47fa (patch)
treeded1698a8672dcd5f1aa9490fb5e872214c59eaa /home.nix
parent3799daa99376ae753bcd41992006b0e234508417 (diff)
try using bspwm as current wm
Diffstat (limited to 'home.nix')
-rw-r--r--home.nix115
1 files changed, 114 insertions, 1 deletions
diff --git a/home.nix b/home.nix
index 476b563..b98dbbc 100644
--- a/home.nix
+++ b/home.nix
@@ -569,7 +569,6 @@ in
569 # recoll? 569 # recoll?
570 # remmina? 570 # remmina?
571 # screen-locker 571 # screen-locker
572 # sxhkd if using bspwm and not i3
573 # unison 572 # unison
574 573
575 poweralertd.enable = true; 574 poweralertd.enable = true;
@@ -588,6 +587,72 @@ in
588 temperature.night = 4500; 587 temperature.night = 4500;
589 }; 588 };
590 589
590 sxhkd = {
591 enable = true;
592 keybindings = {
593 # reload sxhkd
594 "super + Escape" = "pkill -USR1 -x sxhkd";
595
596 # BSPWM
597 # quit/restart bspwm
598 "super + alt + shift + ctrl + {e,r}" = "bspc {quit,wm -r}";
599 # close/kill window
600 "super + shift + {q,k}" = "bspc node -{c,k}";
601 # toggle between tiled and monocle layout
602 "super + m" = "bspc desktop -l next";
603 # send newest marked node to newest preselected node
604 "super + y" = "bspc node newest.marked.local -n newest.!automatic.local";
605 # swap current and biggest window
606 "super + g" = "bspc node -s biggest.window";
607
608 # STATE/FLAGS
609 # set the window state
610 "super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
611 # set the node flags
612 "super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}";
613
614 # FOCUS/SWAP
615 # focus the node in the given direction
616 "super + {_,shift + }{n,e,o,i}" = "bspc node -{f,s} {west,south,north,east}";
617 # focus the node for the given path jump
618 "super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}";
619 # focus the next/previous window in the current desktop
620 "super + {_,shift + }c" = "bspc node -f {next,prev}.local.!hidden.window";
621 # focus the next/previous desktop in the current monitor
622 "super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
623 # focus the last node/desktop
624 "super + {grave,Tab}" = "bspc {node,desktop} -f last";
625 # focus or send to the given desktop
626 "super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'";
627
628 # PRESELECT
629 # preselect the direction
630 "super + ctrl + {n,e,o,i}" = "bspc node -p {west,south,north,east}";
631 # preselect the ratio
632 "super + ctrl + {1-9}" = "bspc node -o 0.{1-9}";
633 # cancel the preselection for the focused node
634 "super + ctrl + space" = "bspc node -p cancel";
635 # cancel the preselection for the focused desktop
636 "super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel";
637
638 # MOVE/RESIZE
639 # expand a window by moving one of its side outward
640 "super + alt + {n,e,o,i}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}";
641 # contract a window by moving one of its side inward
642 "super + alt + shift + {n,e,o,i}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}";
643 # move a floating window
644 "super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
645
646 # program keybinds
647 "super + Return" = "emacsclient -c";
648 "super + shift + Return" = "qutebrowser";
649 "super + p" = "dmenu_run";
650 "super + shift + b" = "kasimenu";
651 "super + shift + u" = "kasimenu user";
652 "super + shift + t" = "kasimenu_totp";
653 };
654 };
655
591 syncthing = { 656 syncthing = {
592 enable = true; 657 enable = true;
593 settings = { 658 settings = {
@@ -895,4 +960,52 @@ in
895 videos = "$HOME/"; 960 videos = "$HOME/";
896 }; 961 };
897 }; 962 };
963
964 xsession = {
965 enable = true;
966 profileExtra = ''
967 export _JAVA_AWT_WM_NONREPARENTING=1
968 '';
969 windowManager.bspwm = {
970 enable = true;
971 monitors = {
972 DP-4 = [
973 "I"
974 "II"
975 "III"
976 "IV"
977 "V"
978 "VI"
979 "VII"
980 "VIII"
981 "IX"
982 "X"
983 ];
984 eDP-1 = [
985 "I"
986 "II"
987 "III"
988 "IV"
989 "V"
990 "VI"
991 "VII"
992 "VIII"
993 "IX"
994 "X"
995 ];
996 };
997 settings = {
998 border_width = 2;
999 window_gap = 0;
1000 gapless_monocle = true;
1001 split_ratio = 0.52;
1002 };
1003 startupPrograms = [
1004 "emacsclient -r"
1005 "qutebrowser"
1006 "xwallpaper --zoom ~/pics/wp/elite_milky_way_below2.png"
1007 "xsetwacom set \"Wacom One by Wacom S Pen stylus\" MapToOutput 2304x1440+560+0"
1008 ];
1009 };
1010 };
898} 1011}