feat: add hyprshot-save script

- Added hyprshot-save shell script with --no-upload option
- Updated keybindings to use the new hyprshot-save script
- Refactored the zipline secret in secrets.yaml into zipline/env and zipline/token
- Updated zipline.nix on host vps to use the new zipline/env secret path
This commit is contained in:
lightly-toasted 2025-09-26 15:52:53 +09:00
parent 55a021961c
commit 3318d2d14b
4 changed files with 65 additions and 20 deletions

View file

@ -1,10 +1,6 @@
{ pkgs, ... }: {
home.packages = [
pkgs.playerctl
pkgs.hyprshot
pkgs.tofi
];
{ pkgs, ... }:
{
programs.mouse-actions.enable = true;
wayland.windowManager.hyprland = {
enable = true;
@ -15,7 +11,7 @@
"$terminal" = "uwsm app -- kitty";
"$fileManager" = "uwsm app -- thunar";
"$menu" = "uwsm app -- $(tofi-drun)";
"$menu" = "uwsm app -- $(${pkgs.tofi}/bin/tofi-drun)";
"$mod" = "SUPER";
env = [
@ -73,9 +69,10 @@
"$mod SHIFT, 9, movetoworkspace, 9"
"$mod SHIFT, 0, movetoworkspace, 10"
"$mod SHIFT, S, exec, env HYPRSHOT_DIR=/data/Backup/Screenshots hyprshot -m region"
"$mod, S, exec, hyprshot-save --no-upload"
"$mod SHIFT, S, exec, hyprshot-save"
"$mod SHIFT, E, exec, powermenu"
"$mod, V, exec, cliphist list | tofi | cliphist decode | wl-copy"
"$mod, V, exec, cliphist list | ${pkgs.tofi}/bin/tofi | cliphist decode | wl-copy"
"$mod, mouse:277, exec, cycle-mouse-action"
", mouse:277, exec, run-mouse-action"
@ -89,11 +86,11 @@
];
bindl = [
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
", XF86Tools, exec, playerctl play-pause"
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
", XF86Tools, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
];
bindm = [

View file

@ -0,0 +1,46 @@
{ config, pkgs, ... }:
{
sops.secrets."zipline/token" = { };
home.packages = [
(pkgs.writeShellScriptBin "hyprshot-save" ''
export HYPRSHOT_DIR=/data/Backup/Screenshots/
NO_UPLOAD=false
DELETE=false
for arg in "$@"; do
case "$arg" in
--no-upload) NO_UPLOAD=true ;;
--delete) DELETE=true ;;
esac
done
if [ "$NO_UPLOAD" = true ]; then
${pkgs.hyprshot}/bin/hyprshot -m region
exit 0
fi
tmpfile=$(mktemp --suffix=".png")
${pkgs.hyprshot}/bin/hyprshot -m region -o "$(dirname "$tmpfile")" -f "$(basename "$tmpfile")"
token=$(cat ${config.sops.secrets."zipline/token".path})
url=$(curl -s \
-H "authorization: $token" \
-H "content-type: multipart/form-data" \
-F "file=@$tmpfile;type=image/png" \
https://i.toast.name/api/upload \
| ${pkgs.jq}/bin/jq -r '.files[0].url')
wl-copy <<< "$url"
notify-send "hyprshot-save" "URL copied to clipboard:\n$url"
if [ "$DELETE" = true ]; then
rm -f "$tmpfile"
echo "Deleted temporary screenshot: $tmpfile"
fi
'')
];
}

View file

@ -1,13 +1,13 @@
{ config, ... }:
{
sops.secrets."zipline" = { };
sops.secrets."zipline/env" = { };
services.zipline = {
enable = true;
settings = {
CORE_HOSTNAME = "127.0.0.1";
CORE_PORT = 3000;
};
environmentFiles = [ config.sops.secrets."zipline".path ];
environmentFiles = [ config.sops.secrets."zipline/env".path ];
};
}

View file

@ -4,7 +4,9 @@ github_token: ENC[AES256_GCM,data:3LoIlgJTmCfMwPcTz1Q+exe8QV8XaYuYu6pAQp6yKq0aSs
restic:
password: ENC[AES256_GCM,data:CaWwS1Pm2LoeLHWtZv7fahpyJu4vgGgNo5E88tDXK767UH39naxcJuejq1l2Bb2OM5x8+zsIUPz8mPYAJD/Yaw==,iv:zJSZKliRzGdTlBMXk6wG9aVeR3xFQP2chcHm3LrNfjk=,tag:z90vqLU29EPgczL4X/XG4g==,type:str]
rclone-config: ENC[AES256_GCM,data:HAuuawWALDQzsn6wJxQIbh57OaJnqwfm4tfhVJJ61wUgC3Kg3a/butjTCX6Q9DVQ7ygK2KH/29p4/lzSeQTGpMx7evOYi8qHQmvW+XMepx0+DEN6+y8iMRw3HG2/cctWoLDcf1RPw+eQdhDPSd/TnU26gNNdxEfTkEKPxQ5ctlLMmyGmUy2UCMarG5I6F88M2y608syTMDfbF22YHpLCBcofKbpvN9rOvqmrM8KxZ8m4JVDcbA23/X36dVkWYKrBuTW8Y2Wuo1o7dAesHIXsxW0KstnJomn/2bDNVjbsiaAlT7Vt4WVm0Gmg8ost2IrAqOeQdevw3V2SYhfCtCEJSmtpvR7KFO0e/Jsj0kF1xFdVQR7QyYO2IsyAyAozpD9pILVNOrfZ6LT8TYI+p1RnR504lumo1VPXKoRE6nnyaZWb1ABuSqXhiOVQcHN2Kg9WWEk6d3XhoIcVob1MFLvgoFttMn5dMUFqtpmpKm+E7/jxGP7wg19pmWanfr2lsbt/vnobkqKFLWFevfuK9u6atRXYo4PyONPo2KDwpI7+7WBBD49pbiklxyNUGYgYpIsLrvaG1fVnCxgdGKI7vdtBK9uLVIEP2t0cZqGs2SjEfBhJrGgU76vSTQrRm0RqA8B1WKXHOrqwaujhVzeaCf4tqRGR1StTtqTeMQ7rKi14oPFXOPTXElSVXvWlFi3yForFpUSptcGJEj5HyHwuzxOww6K2bvOltznOWO0OvI6yVMS0VfagcQBWkV7Gy6qPR98o5v18ZBfDIh8OpcnDwZ2SotTzQfkIUXWzzNTs71cWNCuQexufOzKYk/Afb8kZk1msa3q2jKZj9I3/B0siyE0X6pKgoKuV7t27PSXuDyaFSkd8+E2SLM/GPEBOXy22UwOMvcGbB+s=,iv:MXTKIls+iKS9zAm09acTBmh2imzrjIo5ojLiFW3nGuY=,tag:Z0sDuGYaz/3ZdvVqCY1m/g==,type:str]
zipline: ENC[AES256_GCM,data:YP9vpniqBDvIj3rBA25BXXtZBSjee7JMSoz2UF+yUs99Id0jYw6vcElhQGGsbjyONLqyfcFFmJJrzR0E6QBvH7LIeYVyswHP97o7F1kgIt4f8EBfJk09uQrtS9JLCNL97A==,iv:CLBjAnM68CXNmXtX79VhiyhZlOsIf2geQAfTRjwTd3I=,tag:00XyKw0H4vnp92V4bGvnoA==,type:str]
zipline:
env: ENC[AES256_GCM,data:HOcqrzXnu+BcpZYgv1yzPOTV4ydJiVa0oIXQWMUNt/X6q2TUGPOTwWg/dOgzoi6jGzFxm+wJzugO4lLQurUV0DiWIWLDSm/PK+zW34yLYwMrwK1bRaF9yl7usAN6BEmpLw==,iv:9IZDQRT2JoXNTuyPZrwRSr2m3SnXaLmJcafpkraCFWA=,tag:+7EoCTiY9f0/C5jgvPQknA==,type:str]
token: ENC[AES256_GCM,data:Ke+cJQ6Up5RUGqe/3tG7Nk40PoOQ1Vq1jN5QN4N5LXOFgclXpzN7sjx0bumFVEcgg4B7UkHmjHzjRAPtWheFu+1PaN02aQVLMGzYXgujqmccC+6roxYt4vdN0CLzf0Ii7k5KUwX3QdOV+lrVwyoBjgQyTD839YnODI7zavf+aDMlrE4+BlFjjV8MUQHsJ5G017xN0XLKOBIQsGpMl40YsvVXFrNwkZ+DkN7bXCZBiHI41W44snB1C3wkYOO+a0g4JzVjIhcHXalYgOW4Unuyyah8yDoXRxuSq7aZpQ+/AHRiuIuaHSrE5BUJu/9bJdjojNuk6VTsaLFtngViSjtyztcqMAIHFFq/KXAog8tg16dJH/V6PomrWXY=,iv:H/EcD/oNSw1mIwxsqyMeSRPsY7lnzEzTNJs6OPNfPw4=,tag:FgH9Nwxnq62uhCd/Av2kAA==,type:str]
sops:
age:
- recipient: age1mggj0wsszz92kfpvq7pjlf0mthkljl9usu7u98jrmyxh85q4pecs6zz4ll
@ -16,7 +18,7 @@ sops:
Z0crWElZcVFMVUd0VytoTHFqbkRDck0KY8nsRThk1hCA/yDNy5JJ0T6pTUwRZhYW
j8grD6JYvauuYa+3tSIwqy2RPiKltx696n9nXy9iPnFUO0QY/rQGVg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-09-24T09:39:53Z"
mac: ENC[AES256_GCM,data:wFAJKPFAL/WWlx+3jQRs/VV5vP5SbYOQ79pu8jPt4MzQhxVgccZwlZXcBPewZL5sUlBryCmOjf1CeUZ6wO7RaGS8Jo6XCeUXpa92sGaQubSDcEMJqv/kq13pq93EdQW7TZ8g6+jXPr10ew56torYmtadBrbKhPR5lhiW6EvNjTs=,iv:Mpyt5EHZ6cf1GQ5dPxteuL9wwQiGLZu7xt5vmhA35Fc=,tag:MuEiVi63UVxSuae/2puY2Q==,type:str]
lastmodified: "2025-09-25T08:59:38Z"
mac: ENC[AES256_GCM,data:BjdbNsicAIUBzztvYLFtyWpQKfAwAL6iYygr7RZsqeszRiNb2fjVC1m4LBgp9f+NWkb2QFXcHouFzeUq84ZMO1QZHGAXgbbV5mR2oHqPl32/Hi387T3lvVjQjSlwh8eMAj4/6e51jmaCuNevOTtZ8Lf7T0FRMNXUSMFL+EbffQo=,iv:A7dl71Zx81QtxiSK0ujYrtlUNhel/NmxfpFVRNsk6Aw=,tag:Y19XPnTaJ0wVa+avpDaUeQ==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2