From 1f8c42451203df24be7e1a9ffecaf1f188e99c12 Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Mon, 26 Dec 2022 13:43:38 +0100 Subject: [PATCH] Better BSPWM binding --- flake.lock | 11 +++++++---- flake.nix | 2 +- hm_modules/bspwm.nix | 28 +++++++++++++--------------- hm_modules/picom.nix | 22 +++++++++++----------- hm_modules/sxhkd.nix | 5 +++++ odin/hm.nix | 8 ++++---- thor/hm.nix | 4 ++-- 7 files changed, 43 insertions(+), 37 deletions(-) diff --git a/flake.lock b/flake.lock index a1162a5..0719d41 100644 --- a/flake.lock +++ b/flake.lock @@ -114,19 +114,22 @@ "inputs": { "nixpkgs": [ "nixpkgs" + ], + "utils": [ + "flake-utils" ] }, "locked": { - "lastModified": 1667907331, - "narHash": "sha256-bHkAwkYlBjkupPUFcQjimNS8gxWSWjOTevEuwdnp5m0=", + "lastModified": 1670253003, + "narHash": "sha256-/tJIy4+FbsQyslq1ipyicZ2psOEd8dvl4OJ9lfisjd0=", "owner": "nix-community", "repo": "home-manager", - "rev": "6639e3a837fc5deb6f99554072789724997bc8e5", + "rev": "0e8125916b420e41bf0d23a0aa33fadd0328beb3", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-22.05", + "ref": "release-22.11", "repo": "home-manager", "type": "github" } diff --git a/flake.nix b/flake.nix index a2b7dc3..5a43e32 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/release-22.11"; nixpkgs-u.url = "github:NixOS/nixpkgs/nixos-unstable"; - home-manager = { url = "github:nix-community/home-manager/release-22.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + home-manager = { url = "github:nix-community/home-manager/release-22.11"; inputs = { nixpkgs.follows = "nixpkgs"; utils.follows = "flake-utils"; }; }; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; deploy-rs = { url = "github:serokell/deploy-rs"; inputs = { nixpkgs.follows = "nixpkgs"; }; }; diff --git a/hm_modules/bspwm.nix b/hm_modules/bspwm.nix index 804c0f4..79e1548 100644 --- a/hm_modules/bspwm.nix +++ b/hm_modules/bspwm.nix @@ -1,11 +1,16 @@ { pkgs, lib, ... }: let + xsetroot = "${pkgs.xorg.xsetroot}/bin/xsetroot"; monitorPages = [ "Ⅰ" "Ⅱ" "Ⅲ" "Ⅳ" "Ⅴ" "Ⅵ" "Ⅶ" "Ⅷ" "Ⅸ" "Ⅹ" ]; monitorPagesString = lib.strings.concatStringsSep " " monitorPages; + monitorSetupScript = pkgs.writeShellScript "monitorSetupScript" '' + autorand -c || true + for monitor in $(bspc query -M --names); do + bspc monitor $monitor -d ${monitorPagesString} + done + ''; 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 = { @@ -27,19 +32,12 @@ in "Zathura" = { state = "tiled"; }; "Yad" = { state = "floating"; }; }; - extraConfig = '' - ${xsetroot} -solid black -cursor_name left_ptr - autorandr -c - - for monitor in $(${xrandr} --listactivemonitors | cut -d " " -f 6); do - bspc monitor $monitor -d ${monitorPagesString} - done - - systemctl --user restart \ - polybar.service \ - update-background.service - ''; - startupPrograms = [ ]; + startupPrograms = [ + "${monitorSetupScript}" # Setup monitors + "systemctl --user restart polybar" # Restart polybar + "${xsetroot} -solid black -cursor_name left_ptr" # Set cursor + "${pkgs.update-background}/bin/update-background" # Set background + ]; }; services = { network-manager-applet.enable = true; diff --git a/hm_modules/picom.nix b/hm_modules/picom.nix index b7c3f59..8600d7b 100644 --- a/hm_modules/picom.nix +++ b/hm_modules/picom.nix @@ -4,9 +4,9 @@ # blur = true; # experimentalBackends = true; - fade = false; - shadow = true; - vSync = true; + # fade = false; + # shadow = true; + # vSync = true; # settings = { # blur = # { @@ -15,13 +15,13 @@ # deviation = 7.0; # }; # }; - extraOptions = '' - blur: - { - method = "gaussian"; - size = 10; - deviation = 7.0; - } - ''; + # extraOptions = '' + # blur: + # { + # method = "gaussian"; + # size = 10; + # deviation = 7.0; + # } + # ''; }; } diff --git a/hm_modules/sxhkd.nix b/hm_modules/sxhkd.nix index 1b36946..bf0fae5 100644 --- a/hm_modules/sxhkd.nix +++ b/hm_modules/sxhkd.nix @@ -23,6 +23,9 @@ emojiChooser = "rofimoji --skin-tone light -a copy"; yad = "${pkgs.yad}/bin/yad"; notify = "${pkgs.libnotify}/bin/notify-send"; + moveAllNodesToPrimary = pkgs.writeShellScript "moveAllNodesToPrimary" '' + comm -23 <(bspc query -N | sort) <(bspc query -m primary -N | sort) | while read n; do bspc node $n -m primary; done + ''; in { enable = true; @@ -32,9 +35,11 @@ "super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}"; "super + alt + m" = "lockscreen"; "super + alt + p" = "autorandr -c"; + "super + alt + shift + p" = "arandr"; "super + alt + q" = '' ${yad} --question --center --on-top --sticky --timeout=30 --timeout-indicator=bottom --image=gnome-shutdown --title "Shutdown" --text "Do you want to shutdown?" && bspc quit ''; + "super + alt + o" = "${moveAllNodesToPrimary}"; "super + alt + r" = "bspc wm -r"; "super + alt + {Right,Down,Left}" = "playerctl {next,play-pause,previous}"; "super + alt + shift + {h,j,k,l}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}"; diff --git a/odin/hm.nix b/odin/hm.nix index c247b7d..427071b 100644 --- a/odin/hm.nix +++ b/odin/hm.nix @@ -104,10 +104,10 @@ ../hm_modules/blender.nix ../hm_modules/bspwm.nix ../hm_modules/cava.nix - ../hm_modules/dwarf-fortress.nix - ../hm_modules/fonts.nix - ../hm_modules/easyeffects.nix # ../hm_modules/dunst.nix + ../hm_modules/dwarf-fortress.nix + ../hm_modules/easyeffects.nix + ../hm_modules/fonts.nix # ../hm_modules/gnome_shell.nix # ../hm_modules/grobi.nix ../hm_modules/gtk_theme.nix @@ -131,7 +131,7 @@ ../hm_modules/obs-studio.nix ../hm_modules/office.nix ../hm_modules/pass.nix - ../hm_modules/picom.nix + # ../hm_modules/picom.nix ../hm_modules/polybar.nix # ../hm_modules/pro_audio.nix # ../hm_modules/pycharm.nix diff --git a/thor/hm.nix b/thor/hm.nix index 79236fe..a52e5d7 100644 --- a/thor/hm.nix +++ b/thor/hm.nix @@ -96,9 +96,9 @@ ../hm_modules/blender.nix ../hm_modules/bspwm.nix ../hm_modules/cava.nix - ../hm_modules/fonts.nix - ../hm_modules/easyeffects.nix # ../hm_modules/dunst.nix + ../hm_modules/easyeffects.nix + ../hm_modules/fonts.nix # ../hm_modules/gnome_shell.nix # ../hm_modules/grobi.nix ../hm_modules/gtk_theme.nix