From 3976783f1f7e276f04e5bb7a6d6873273fed577f Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 4 Feb 2025 14:05:18 -0600 Subject: [PATCH] feat: added river --- home/modules/gui/desktop/river/config/map.nix | 21 +++++ .../gui/desktop/river/config/spawn.nix | 28 +++++++ home/modules/gui/desktop/river/default.nix | 77 +++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100755 home/modules/gui/desktop/river/config/map.nix create mode 100755 home/modules/gui/desktop/river/config/spawn.nix create mode 100755 home/modules/gui/desktop/river/default.nix diff --git a/home/modules/gui/desktop/river/config/map.nix b/home/modules/gui/desktop/river/config/map.nix new file mode 100755 index 0000000..6443090 --- /dev/null +++ b/home/modules/gui/desktop/river/config/map.nix @@ -0,0 +1,21 @@ +{ + # "Super Space" = "rm -r /home/$USER/.cache/tofi* ; tofi-drun"; + "Super C" = "zed"; + "Super A" = "obsidian"; + # "Super D" = "ghostty -e zellij a dotfiles"; + # "Super E" = "ghostty -e nu -e y"; + "Super T" = "ghostty"; + # "Super G" = "firefox https://cronometer.com/#diary"; + "Super B" = "firefox"; + "Super V" = "vesktop"; + "Super W" = "bitwarden"; + "Super H" = "feishin"; + "Super Y" = "scrcpy"; + # "Super R" = "ghostty -e nu -e btm"; + "Super N" = "signal-desktop"; + "Super M" = "element-desktop"; + # "Super Home" = "sudo protonvpn c --cc CA"; + "Super End" = "exit"; + "Super S" = "steam"; + "Super period" = "emote"; +} diff --git a/home/modules/gui/desktop/river/config/spawn.nix b/home/modules/gui/desktop/river/config/spawn.nix new file mode 100755 index 0000000..60d1e3d --- /dev/null +++ b/home/modules/gui/desktop/river/config/spawn.nix @@ -0,0 +1,28 @@ +{ flake, ... }: +let + inherit (flake.config.aesthetics.themes) + cursor + ; +in +[ + "swaylock" + "hypridle" + "wl-clipboard" + "wpaperd" + "gammastep" + "dunst" + "playerctrld" + "waybar" + "nm-applet" + "blueman-applet" + "easyeffects -r" + "emote" + "flameshot" + "pactl set-default-sink bluez_output.00_16_94_35_0D_5F.1" + "pactl set-default-source alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Mic1__source" + "bluetoothctl power on" + "gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'" + "gsettings set org.gnome.desktop.interface cursor-theme 'catppuccin-mocha-dark-cursors'" + "gsettings set org.gnome.desktop.interface cursor-size ${builtins.toString cursor.size}" + "nmcli connection delete pvpn-killswitch-ipv6" +] diff --git a/home/modules/gui/desktop/river/default.nix b/home/modules/gui/desktop/river/default.nix new file mode 100755 index 0000000..5746df6 --- /dev/null +++ b/home/modules/gui/desktop/river/default.nix @@ -0,0 +1,77 @@ +{ + flake, + config, + pkgs, + ... +}: +let + inherit (flake.config.aesthetics.themes) cursor; + configPath = ./config; + settingsPath = { + spawn = import (configPath + /spawn.nix) { inherit config flake; }; + map = import (configPath + /map.nix); + }; +in +{ + home.packages = builtins.attrValues { + inherit (pkgs) + rivercarro + ; + }; + + services.kanshi = { + enable = true; + systemdTarget = "river-session.target"; + }; + + wayland.windowManager.river = { + enable = true; + xwayland.enable = true; + settings = { + border-width = 4; + declare-mode = [ + "locked" + "normal" + "passthrough" + ]; + input = { + pointer-foo-bar = { + accel-profile = "flat"; + events = true; + pointer-accel = -0.3; + tap = false; + }; + }; + rule-add = { + "-app-id" = { + "'bar'" = "csd"; + "'float*'" = { + "-title" = { + "'foo'" = "float"; + }; + }; + }; + }; + set-cursor-warp = "on-output-change"; + set-repeat = "50 300"; + map-pointer = { + normal = { + "Alt BTN_LEFT" = "move-view"; + "Super BTN_LEFT" = "resize-view"; + "Super F" = "toggle-float"; + }; + }; + default-layout = "rivercarro"; + attach-mode = "bottom"; + map.normal = settingsPath.map; + spawn = settingsPath.spawn; + }; + systemd = { + enable = true; + extraCommands = [ + "systemctl --user stop river-session.target" + "systemctl --user start river-session.target" + ]; + }; + }; +}