From 34b8b4c52e4afa8b854e6c3d37780ce5faf74c05 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sun, 2 Feb 2025 18:14:33 +0100 Subject: refactor(modules/river): Migrate to `by-name` This includes a near rewrite `river-mk-keymap` (previously, `river_init_lesser`.) --- hosts/apzu/default.nix | 85 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) (limited to 'hosts/apzu/default.nix') diff --git a/hosts/apzu/default.nix b/hosts/apzu/default.nix index d0090339..6ba6828a 100644 --- a/hosts/apzu/default.nix +++ b/hosts/apzu/default.nix @@ -1,4 +1,9 @@ -{...}: { +{ + lib, + pkgs, + baseLib, + ... +}: { imports = [ ./hardware.nix ]; @@ -19,6 +24,84 @@ laptop = true; backlight = "intel_backlight"; }; + river.init = { + mappings = { + layout = "dvorak-modified"; + keymap = + { + # Focus change + "" = {command = ["focus-view" "next"];}; + "" = {command = ["focus-view" "previous"];}; + "" = {command = ["focus-output" "next"];}; + "" = {command = ["focus-output" "previous"];}; + + # Standard programs + ">" = {command = ["spawn" "${lib.getExe pkgs.alacritty}"];}; + "" = {command = ["exit"];}; + "" = {command = ["spawn" "${lib.getExe pkgs.lock}"];}; + + # Screenshot + "" = {command = ["spawn" "${lib.getExe pkgs.screenshot_persistent}"];}; + + # Audio + "" = { + command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%+"]; + modes = ["normal" "locked"]; + }; + "" = { + command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%-"]; + modes = ["normal" "locked"]; + }; + "" = { + command = ["spawn" "${lib.getExe pkgs.mpc} toggle"]; + modes = ["normal" "locked"]; + }; + + # Launcher + "" = {command = ["spawn" "${lib.getExe pkgs.rofi} -show combi -modes combi -combi-modes 'window, drun, run' -show-icons"];}; + ">" = {command = ["spawn" "${lib.getExe pkgs.neorg} dmenu"];}; + ">" = {command = ["spawn" "${lib.getExe pkgs.keepassxc}"];}; + ">" = {command = ["spawn" "${lib.getExe pkgs.signal-desktop}"];}; + # ">" = {command = ["spawn" "${lib.getExe pkgs.steam}"];}; + + # Client + "" = {command = ["toggle-fullscreen"];}; + "" = {command = ["close"];}; + "" = {command = ["toggle-float"];}; + ">" = {command = ["zoom"];}; + "" = {command = ["send-to-output" "next"];}; + "" = {command = ["swap" "next"];}; + "" = {command = ["swap" "previous"];}; + + # Toggle all tags + "" = {command = ["set-focused-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];}; + "" = {command = ["set-view-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];}; + + # Mouse + "" = { + command = ["move-view"]; + map_mode = "MapMouse"; + }; + "" = { + command = ["resize-view"]; + map_mode = "MapMouse"; + }; + } + // ( + builtins.foldl' (acc: elem: acc // elem) {} ( + builtins.map (index: let + num = builtins.toString index; + index2tag = input: builtins.toString (baseLib.pow 2 (input - 1)); + in { + "" = {command = ["set-focused-tags" (index2tag index)];}; + "" = {command = ["set-view-tags" (index2tag index)];}; + "" = {command = ["toggle-view-tags" (index2tag index)];}; + }) (builtins.genList (i: i + 1) 9) + ) + ); + }; + screenSetupCode = {}; + }; }; locale.enable = true; -- cgit 1.4.1