From 9acdfd5e4b684c98193b195b1d6a8a763376a241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 24 Mar 2024 13:21:59 +0100 Subject: [PATCH] feat(river): add binds and polish a bit --- modules/programs/river/default.nix | 93 ++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 25 deletions(-) diff --git a/modules/programs/river/default.nix b/modules/programs/river/default.nix index 334a1df..9e1e29b 100644 --- a/modules/programs/river/default.nix +++ b/modules/programs/river/default.nix @@ -17,11 +17,7 @@ in description = "list of keyboard layouts"; default = [ "de" "us" ]; }; - monitors = mkOption { - type = types.listOf types.str; - description = "monitor settings"; - default = [ ",preferred,auto,1" ]; - }; + nvidiaSupport = mkEnableOption "nvidiaSupport"; }; config = mkIf cfg.enable { @@ -44,7 +40,13 @@ in }; home-manager.users.moritz = { - # enable home-manager module + home.packages = with pkgs; [ + rivercarro + ]; + services.kanshi = { + enable = true; + systemdTarget = "river-session.target"; + }; wayland.windowManager.river = { enable = true; package = pkgs.river.overrideAttrs (old: { @@ -76,9 +78,44 @@ in "Super Return" = ''spawn "systemctl --user is-active --quiet foot && footclient --no-wait || foot"''; "Super+Shift Return" = "spawn foot"; "Super R" = ''spawn 'exec $(tofi-run --fuzzy-match=true)' ''; + "Super W" = ''spawn "pkill -USR1 waybar"''; + "Super+Shift R" = "spawn ~/.config/river/init"; + + # Focus view + "Super J" = "focus-view next"; + "Super K" = "focus-view previous"; + + # swap the focused view + "Super+Shift J" = "swap next"; + "Super+Shift K" = "swap previous"; + + # focus output + "Super Period" = "focus-output next"; + "Super Comma" = "focus-output previous"; + + # send to output + "Super+Shift Period" = "send-to-output next"; + "Super+Shift Comma" = "send-to-output previous"; + + # bump in layout stack + "Super Z" = "zoom"; + }; + }; + map-pointer = { + normal = { + "Super BTN_LEFT" = "move-view"; + "Super BTN_RIGHT" = "resize-view"; + "Super BTN_MIDDLE" = "toggle-float"; }; }; }; + extraConfig = /* bash */ '' + riverctl default-layout rivercarro + rivercarro_pid="$(pidof rivercarro)" + if [[ -z $rivercarro_pid ]]; then + rivercarro -inner-gaps 4 -outer-gaps 4 + fi + ''; }; # add waybar as a status bar @@ -97,7 +134,7 @@ in layer = "top"; position = "top"; height = 20; - modules-left = [ "river/mode" ]; + modules-left = [ "river/tags" ]; modules-center = [ "river/window" ]; modules-right = [ "network" "memory" "cpu" "battery" "clock" ]; }; @@ -157,24 +194,30 @@ in # additional environment variables - # environment.sessionVariables = - # { - # XDG_CURRENT_DESKTOP = "Hyprland"; - # XDG_SESSION_TYPE = "wayland"; - # XDG_SESSION_DESKTOP = "Hyprland"; - # QT_AUTO_SCREEN_SCALE_FACTOR = "1"; - # QT_QPA_PLATFORM = "wayland;xcb"; - # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - # QT_QPA_PLATFORMTHEME = "qt5ct"; - # _JAVA_AWT_WM_NONEREPARENTING = "1"; - # } // (optionalAttrs cfg.nvidiaSupport - # { - # LIBVA_DRIVER_NAME = "nvidia"; - # GBM_BACKEND = "nvidia-drm"; - # __GLX_VENDOR_LIBRARY_NAME = "nvidia"; - # WLR_NO_HARDWARE_CURSORS = "1"; - # __GL_VRR_ALLOWED = "0"; - # }); + environment.sessionVariables = + { + XDG_CURRENT_DESKTOP = "river"; + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "river"; + QT_AUTO_SCREEN_SCALE_FACTOR = "1"; + QT_QPA_PLATFORM = "wayland;xcb"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + QT_QPA_PLATFORMTHEME = "qt5ct"; + _JAVA_AWT_WM_NONEREPARENTING = "1"; + } // (optionalAttrs cfg.nvidiaSupport + { + GBM_BACKEND = "nvidia-drm"; + GDK_BACKEND = "wayland"; + LIBVA_DRIVER_NAME = "nvidia"; + MOZ_ENABLE_WAYLAND = "1"; + WLR_DRM_DEVICES = "/dev/dri/card0"; + WLR_DRM_NO_ATOMIC = "1"; + WLR_NO_HARDWARE_CURSORS = "1"; + XDG_CURRENT_DESKTOP = "river"; + _GL_GSYNC_ALLOWED = "0"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + __GL_VRR_ALLOWED = "0"; + }); services = { dbus.enable = true;