From ea83f8248f2cad2a361e028fc06a55ffee44f756 Mon Sep 17 00:00:00 2001 From: Rosa Date: Sun, 26 Apr 2026 19:37:43 -0400 Subject: new screenshot keybind --- modules/user/desktop/apps/default.nix | 1 + modules/user/desktop/apps/waybar/default.nix | 26 ++++++++++++++++++++++++++ modules/user/desktop/sessions/sway.nix | 18 +++++++++++++++--- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 modules/user/desktop/apps/waybar/default.nix (limited to 'modules/user/desktop') diff --git a/modules/user/desktop/apps/default.nix b/modules/user/desktop/apps/default.nix index 0e2847d..86b712d 100644 --- a/modules/user/desktop/apps/default.nix +++ b/modules/user/desktop/apps/default.nix @@ -4,5 +4,6 @@ ./fuzzel.nix ./iamb.nix ./librewolf.nix + ./waybar ]; } diff --git a/modules/user/desktop/apps/waybar/default.nix b/modules/user/desktop/apps/waybar/default.nix new file mode 100644 index 0000000..1b2ee4d --- /dev/null +++ b/modules/user/desktop/apps/waybar/default.nix @@ -0,0 +1,26 @@ +{ config, ... }: +{ + programs.waybar = { + settings.main = { + layer = "bottom"; + position = "top"; + modules-left = [ "sway/workspaces" ]; + modules-center = [ "clock" ]; + modules-right = [ + "sway/language" + ]; + + "sway/language" = { + on-click = "swaymsg input type:keyboard xkb_switch_layout next"; + tooltip-format = "{long}"; + }; + + "sway/workspaces" = { + all-outputs = true; + disable-auto-back-and-forth = true; + format = "{icon}"; + format-icons.default = "•"; + }; + }; + }; +} diff --git a/modules/user/desktop/sessions/sway.nix b/modules/user/desktop/sessions/sway.nix index a1e11f6..3cb679b 100644 --- a/modules/user/desktop/sessions/sway.nix +++ b/modules/user/desktop/sessions/sway.nix @@ -50,6 +50,8 @@ text-wrong-color = "1e1e2e"; }; }; + + waybar.enable = lib.mkDefault config.desktop.sessions.sway.enable; }; wayland.windowManager.sway = { @@ -147,15 +149,23 @@ keybindings = let + grim = "${pkgs.grim}/bin/grim"; + launcher = "${pkgs.fuzzel}/bin/fuzzel"; mod = config.wayland.windowManager.sway.config.modifier; + screenshotDir = "~/Pictures/Screenshots"; terminal = "${pkgs.foot}/bin/foot"; in { "${mod}+Return" = "exec ${terminal}"; - "${mod}+R" = "exec ${pkgs.fuzzel}/bin/fuzzel"; + "${mod}+R" = "exec ${launcher}"; "${mod}+B" = "exec ${pkgs.librewolf}/bin/librewolf"; - "${mod}+Shift+S" = - "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" ~/Pictures/screenshot.png"; + "${mod}+Shift+S" = "exec ${(pkgs.writeShellScript "screenshot" '' + screenshot_type=$(printf 'monitor\nregion' | ${launcher} --prompt='What would you like to screenshot? ' --dmenu --minimal-lines --width=34) + case $screenshot_type in + 'monitor') ${grim} -o $(${pkgs.sway}/bin/swaymsg -rt get_workspaces | ${pkgs.jq}/bin/jq -r '.[] | select(.focused) | .output') ${screenshotDir}/$(date +'%F_%H.%M.%S.png') ;; + 'region') ${grim} -g \"$(${pkgs.slurp}/bin/slurp)\" ${screenshotDir}/$(date +'%F_%H.%M.%S.png') ;; + esac + '')}"; "${mod}+Alt+L" = "exec ${pkgs.swaylock}/bin/swaylock"; "${mod}+Alt+K" = "input type:keyboard xkb_switch_layout next"; "${mod}+Alt+Q" = "exit"; @@ -244,6 +254,8 @@ } ]; }; + + extraConfig = "exec waybar"; }; xdg.dataFile."wallpaper.png".enable = config.desktop.sessions.sway.enable; -- cgit v1.3.1