dotfiles/modules/home/gui/desktop/river/default.nix
2025-03-29 23:08:26 -05:00

77 lines
1.6 KiB
Nix
Executable file

{
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"
];
};
};
}