mirror of
https://github.com/lightly-toasted/nix-config.git
synced 2025-10-04 07:25:40 +00:00
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:
parent
55a021961c
commit
3318d2d14b
4 changed files with 65 additions and 20 deletions
|
@ -1,10 +1,6 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
home.packages = [
|
|
||||||
pkgs.playerctl
|
|
||||||
pkgs.hyprshot
|
|
||||||
pkgs.tofi
|
|
||||||
];
|
|
||||||
|
|
||||||
|
{
|
||||||
programs.mouse-actions.enable = true;
|
programs.mouse-actions.enable = true;
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -15,7 +11,7 @@
|
||||||
|
|
||||||
"$terminal" = "uwsm app -- kitty";
|
"$terminal" = "uwsm app -- kitty";
|
||||||
"$fileManager" = "uwsm app -- thunar";
|
"$fileManager" = "uwsm app -- thunar";
|
||||||
"$menu" = "uwsm app -- $(tofi-drun)";
|
"$menu" = "uwsm app -- $(${pkgs.tofi}/bin/tofi-drun)";
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
|
@ -73,9 +69,10 @@
|
||||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
"$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 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"
|
"$mod, mouse:277, exec, cycle-mouse-action"
|
||||||
", mouse:277, exec, run-mouse-action"
|
", mouse:277, exec, run-mouse-action"
|
||||||
|
@ -89,11 +86,11 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
bindl = [
|
bindl = [
|
||||||
", XF86AudioNext, exec, playerctl next"
|
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
|
||||||
", XF86AudioPause, exec, playerctl play-pause"
|
", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||||
", XF86AudioPlay, exec, playerctl play-pause"
|
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||||
", XF86AudioPrev, exec, playerctl previous"
|
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
|
||||||
", XF86Tools, exec, playerctl play-pause"
|
", XF86Tools, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||||
];
|
];
|
||||||
|
|
||||||
bindm = [
|
bindm = [
|
||||||
|
|
46
home/modules/graphical/hyprshot-save.nix
Executable file
46
home/modules/graphical/hyprshot-save.nix
Executable 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
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
sops.secrets."zipline" = { };
|
sops.secrets."zipline/env" = { };
|
||||||
services.zipline = {
|
services.zipline = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
CORE_HOSTNAME = "127.0.0.1";
|
CORE_HOSTNAME = "127.0.0.1";
|
||||||
CORE_PORT = 3000;
|
CORE_PORT = 3000;
|
||||||
};
|
};
|
||||||
environmentFiles = [ config.sops.secrets."zipline".path ];
|
environmentFiles = [ config.sops.secrets."zipline/env".path ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,9 @@ github_token: ENC[AES256_GCM,data:3LoIlgJTmCfMwPcTz1Q+exe8QV8XaYuYu6pAQp6yKq0aSs
|
||||||
restic:
|
restic:
|
||||||
password: ENC[AES256_GCM,data:CaWwS1Pm2LoeLHWtZv7fahpyJu4vgGgNo5E88tDXK767UH39naxcJuejq1l2Bb2OM5x8+zsIUPz8mPYAJD/Yaw==,iv:zJSZKliRzGdTlBMXk6wG9aVeR3xFQP2chcHm3LrNfjk=,tag:z90vqLU29EPgczL4X/XG4g==,type:str]
|
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]
|
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:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1mggj0wsszz92kfpvq7pjlf0mthkljl9usu7u98jrmyxh85q4pecs6zz4ll
|
- recipient: age1mggj0wsszz92kfpvq7pjlf0mthkljl9usu7u98jrmyxh85q4pecs6zz4ll
|
||||||
|
@ -16,7 +18,7 @@ sops:
|
||||||
Z0crWElZcVFMVUd0VytoTHFqbkRDck0KY8nsRThk1hCA/yDNy5JJ0T6pTUwRZhYW
|
Z0crWElZcVFMVUd0VytoTHFqbkRDck0KY8nsRThk1hCA/yDNy5JJ0T6pTUwRZhYW
|
||||||
j8grD6JYvauuYa+3tSIwqy2RPiKltx696n9nXy9iPnFUO0QY/rQGVg==
|
j8grD6JYvauuYa+3tSIwqy2RPiKltx696n9nXy9iPnFUO0QY/rQGVg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-09-24T09:39:53Z"
|
lastmodified: "2025-09-25T08:59:38Z"
|
||||||
mac: ENC[AES256_GCM,data:wFAJKPFAL/WWlx+3jQRs/VV5vP5SbYOQ79pu8jPt4MzQhxVgccZwlZXcBPewZL5sUlBryCmOjf1CeUZ6wO7RaGS8Jo6XCeUXpa92sGaQubSDcEMJqv/kq13pq93EdQW7TZ8g6+jXPr10ew56torYmtadBrbKhPR5lhiW6EvNjTs=,iv:Mpyt5EHZ6cf1GQ5dPxteuL9wwQiGLZu7xt5vmhA35Fc=,tag:MuEiVi63UVxSuae/2puY2Q==,type:str]
|
mac: ENC[AES256_GCM,data:BjdbNsicAIUBzztvYLFtyWpQKfAwAL6iYygr7RZsqeszRiNb2fjVC1m4LBgp9f+NWkb2QFXcHouFzeUq84ZMO1QZHGAXgbbV5mR2oHqPl32/Hi387T3lvVjQjSlwh8eMAj4/6e51jmaCuNevOTtZ8Lf7T0FRMNXUSMFL+EbffQo=,iv:A7dl71Zx81QtxiSK0ujYrtlUNhel/NmxfpFVRNsk6Aw=,tag:Y19XPnTaJ0wVa+avpDaUeQ==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.10.2
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue