add(apps): screenshot

This commit is contained in:
kenji
2026-01-02 00:27:59 -06:00
parent 321dbbe979
commit ec70617dc2
4 changed files with 55 additions and 3 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
* add: similar to omarchy-menu
* walker should have a script that initializes elephant if task does not exist.
* screenshot
* notification
* polkit security
* exec.conf should be on their own apps
+8 -2
View File
@@ -64,8 +64,14 @@
"SUPER, P, Toggle Preload, togglespecialworkspace, preload"
"SUPER CTRL, I, Switch Wallpaper, exec, hakase-wallpaper-switch"
"SUPER, S, Toggle Special Workspace, togglespecialworkspace, custom"
"SUPER + Shift, S, Move to Special Workspace, movetoworkspace, special:custom"
# Screenshots
"SUPER, S, Screenshot Region (with edit), exec, screenshot region"
"SUPER SHIFT, S, Screenshot Active Window, exec, screenshot window"
"SUPER ALT SHIFT, S, Screenshot Current Monitor, exec, screenshot screen"
# Special workspace
"SUPER, U, Toggle Special Workspace, togglespecialworkspace, custom"
"SUPER SHIFT, U, Move to Special Workspace, movetoworkspace, special:custom"
# [Workspaces] Toggle between most recent workspaces
"SUPER, Tab, Cycle workspaces, workspace, previous"
+45
View File
@@ -0,0 +1,45 @@
{pkgs, ...}: let
# Screenshot script with swappy integration
screenshot = pkgs.writeShellScriptBin "screenshot" ''
#!/usr/bin/env bash
case "$1" in
region)
# Select region and edit
grim -g "$(slurp)" - | swappy -f -
;;
window)
# Screenshot active window
grim -g "$(hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" - | swappy -f -
;;
screen)
# Screenshot current monitor
grim -o "$(hyprctl -j monitors | jq -r '.[] | select(.focused) | .name')" - | swappy -f -
;;
all)
# Screenshot all monitors
grim - | swappy -f -
;;
region-save)
# Quick region screenshot (save without editing)
grim -g "$(slurp)" ~/Pictures/Screenshots/$(date +'%Y-%m-%d_%H-%M-%S.png')
notify-send "Screenshot saved" "Saved to ~/Pictures/Screenshots/"
;;
*)
echo "Usage: screenshot {region|window|screen|all|region-save}"
exit 1
;;
esac
'';
in {
home.packages = with pkgs; [
grim # Screenshot utility
slurp # Region selector
swappy # Annotation tool
jq # For window selection
screenshot # Our wrapper script
];
# Create Screenshots directory
home.file."Pictures/Screenshots/.keep".text = "";
}
+1
View File
@@ -5,6 +5,7 @@
../../apps/firefox
../../apps/loupe
../../apps/mako
../../apps/screenshot
# ../../apps/starship
];
}