Files
nixos-config/home/programs/river/default.nix
Elias Schröter 234e6c0813 printer & openscad
add indent for openscad and fix printer
2026-03-27 14:42:39 +01:00

135 lines
5.0 KiB
Nix

{
config,
pkgs,
lib,
...
}:
{
home.packages = with pkgs; [
wlr-randr
rivercarro
ristate
slurp
wl-clipboard
];
xdg.configFile."helperscripts" = {
recursive = true;
source = ./src;
};
wayland.windowManager.river =
let
all_tags = "$(((1 << 32) - 1))";
scratch_tag = "$((1 << 20 ))";
all_but_scratch_tag = "$(( ((1 << 32) - 1) ^ ${scratch_tag} ))";
tags = i: "$((1 << (${i} - 1)))";
genTagMappings =
key: command:
lib.attrsets.mergeAttrsList (
map (i: { "${key (toString i)}" = "${command (toString i)}"; }) (lib.lists.range 1 9)
);
in
{
enable = true;
extraSessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
GDK_BACKEND = "wayland";
};
systemd.enable = true;
xwayland.enable = true;
extraConfig = "rivertile -view-padding 0 -outer-padding 0 &";
settings = {
spawn = [
"/home/${config.home.username}/.config/helperscripts/startEww.sh"
];
spawn-tagmask = "${all_but_scratch_tag}";
keyboard-layout = "de";
default-layout = "rivertile";
rule-add = {
"-app-id" = {
"'bar'" = "csd";
"'float*'" = {
"-title" = {
"'foo'" = "float";
};
};
};
};
map-pointer = {
normal = {
"Super BTN_LEFT" = "move-view";
"Super BTN_RIGHT" = "resize-view";
"Super BTN_MIDDLE" = "toggle-float";
};
};
map = {
normal = {
"Super+Shift Return" = "spawn alacritty";
# System
"Super P" = "spawn 'rofi -show drun'";
"Super+Shift C" = "close";
# Screenshots
"None Print" = "spawn 'flameshot gui'";
# Window Control
"Super J" = "focus-view next";
"Super K" = "focus-view previous";
"Super+Shift J" = "swap next";
"Super+Shift K" = "swap previous";
"Super Period" = "focus-output next";
"Super Comma" = "focus-output previous";
"Super+Shift Period" = "send-to-output next";
"Super+Shift Comma" = "send-to-output previous";
"Super H" = ''send-layout-cmd rivertile "main-ratio -0.05"'';
"Super L" = ''send-layout-cmd rivertile "main-ratio +0.05"'';
"Super+Shift H" = ''send-layout-cmd rivertile "main-count +1"'';
"Super+Shift L" = ''send-layout-cmd rivertile "main-count -1"'';
"Super+Alt H" = "move left 100";
"Super+Alt J" = "move down 100";
"Super+Alt K" = "move up 100";
"Super+Alt L" = "move right 100";
"Super+Alt+Control H" = "snap left";
"Super+Alt+Control J" = "snap down";
"Super+Alt+Control K" = "snap up";
"Super+Alt+Control L" = "snap right";
"Super+Alt+Shift H" = "resize horizontal -100";
"Super+Alt+Shift J" = "resize vertical 100";
"Super+Alt+Shift K" = "resize vertical -100";
"Super+Alt+Shift L" = "resize horizontal 100";
"Super+Shift P" = "set-view-tags ${scratch_tag}";
"Super 0" = "set-focused-tags ${all_tags}";
"Super+Shift 0" = "set-view-tags ${all_tags}";
"Super Space" = "toggle-float";
"Super F" = "toggle-fullscreen";
"Super Up" = ''send-layout-cmd rivertile "main-location top"'';
"Super Right" = ''send-layout-cmd rivertile "main-location right"'';
"Super Down" = ''send-layout-cmd rivertile "main-location bottom"'';
"Super Left" = ''send-layout-cmd rivertile "main-location left"'';
# Audio
"None XF86AudioRaiseVolume" = "spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+'";
"None XF86AudioLowerVolume" = "spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-'";
"None XF86AudioMute" = "spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'";
"None XF86AudioMicMute" = "spawn 'wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle'";
# Brightness
"None XF86MonBrightnessUp" = "spawn 'xbacklight -inc 10'";
"None XF86MonBrightnessDown" = "spawn 'xbacklight -dec 10'";
# Powerbutton
"None XF86PowerOff" = "spawn '/home/$USER/.config/eww/scripts/powermenu.sh'";
# Program
"Super C" = "spawn 'firefox'";
"Super Y" = "spawn 'signal-desktop'";
"Super X" = "spawn 'Telegram'";
"Super V" = "spawn 'thunderbird'";
}
// genTagMappings (i: "Super ${i}") (i: "set-focused-tags ${tags i}")
// genTagMappings (i: "Super+Shift ${i}") (i: "set-view-tags ${tags i}")
// genTagMappings (i: "Super+Control ${i}") (i: "toggle-focused-tags ${tags i}")
// genTagMappings (i: "Super+Shift+Control ${i}") (i: "toggle-view-tags ${tags i}");
};
};
};
}