mirror of
https://github.com/nickolaj-jepsen/nixos.git
synced 2026-01-22 08:06:50 +01:00
feat: add screenshot
This commit is contained in:
parent
880c97dff8
commit
69a11db7bc
2 changed files with 52 additions and 6 deletions
|
|
@ -22,11 +22,11 @@ in {
|
||||||
"result"
|
"result"
|
||||||
"*/node_modules/*"
|
"*/node_modules/*"
|
||||||
(mkExtensionIgnore [
|
(mkExtensionIgnore [
|
||||||
"gitignore"
|
"gitignore"
|
||||||
"svg"
|
"svg"
|
||||||
"age"
|
"age"
|
||||||
"pub"
|
"pub"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
formatter = config.treefmt.build.wrapper;
|
formatter = config.treefmt.build.wrapper;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,34 @@ with lib; let
|
||||||
then (builtins.elemAt config.monitors 0).name
|
then (builtins.elemAt config.monitors 0).name
|
||||||
else "";
|
else "";
|
||||||
|
|
||||||
|
record_script = pkgs.writeShellScriptBin "record_script" ''
|
||||||
|
DIR="$HOME/recordings"
|
||||||
|
FILE="$DIR/$(date '+%Y-%m-%d_%H.%M.%S').mp4"
|
||||||
|
|
||||||
|
mkdir -p $DIR
|
||||||
|
if pgrep -f ${lib.getExe pkgs.wf-recorder} > /dev/null; then
|
||||||
|
pkill ${lib.getExe pkgs.wf-recorder}
|
||||||
|
${pkgs.libnotify}/bin/notify-send "Recording Stopped" "Recording saved to $FILE"
|
||||||
|
else
|
||||||
|
# Stolen from grimblast
|
||||||
|
FULLSCREEN_WORKSPACES="$(hyprctl workspaces -j | jq -r 'map(select(.hasfullscreen) | .id)')"
|
||||||
|
WORKSPACES="$(hyprctl monitors -j | jq -r '[(foreach .[] as $monitor (0; if $monitor.specialWorkspace.name == "" then $monitor.activeWorkspace else $monitor.specialWorkspace end)).id]')"
|
||||||
|
WINDOWS="$(hyprctl clients -j | jq -r --argjson workspaces "$WORKSPACES" --argjson fullscreenWorkspaces "$FULLSCREEN_WORKSPACES" 'map((select(([.workspace.id] | inside($workspaces)) and ([.workspace.id] | inside($fullscreenWorkspaces) | not) or .fullscreen > 0)))')"
|
||||||
|
|
||||||
|
GEOMETRY=$(echo "$WINDOWS" | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | ${lib.getExe pkgs.slurp})
|
||||||
|
|
||||||
|
# ${pkgs.libnotify}/bin/notify-send "Starting recording" "Recording in 3 seconds" -a "record_script" -t 1000
|
||||||
|
# sleep 1
|
||||||
|
# ${pkgs.libnotify}/bin/notify-send "Starting recording" "Recording in 2 seconds" -a "record_script" -t 1000
|
||||||
|
# sleep 1
|
||||||
|
# ${pkgs.libnotify}/bin/notify-send "Starting recording" "Recording in 1 second" -t 1000
|
||||||
|
# sleep 1
|
||||||
|
|
||||||
|
${pkgs.wf-recorder}/bin/wf-recorder --pixel-format yuv420p -f "$FILE" -t --geometry "$GEOMETRY" & disown
|
||||||
|
${pkgs.wl-clipboard}/bin/wl-copy < "$FILE"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
mkKeyboard = name: {
|
mkKeyboard = name: {
|
||||||
inherit name;
|
inherit name;
|
||||||
kb_layout = "eu";
|
kb_layout = "eu";
|
||||||
|
|
@ -35,6 +63,7 @@ in {
|
||||||
|
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
services.dbus.enable = true;
|
services.dbus.enable = true;
|
||||||
|
services.systembus-notify.enable = true;
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
graphics = {
|
graphics = {
|
||||||
|
|
@ -184,20 +213,27 @@ in {
|
||||||
"SUPER, BACKSPACE, killactive"
|
"SUPER, BACKSPACE, killactive"
|
||||||
"SUPER, SPACE, exec, ${getExe config.programs.uwsm.package} app -- walker"
|
"SUPER, SPACE, exec, ${getExe config.programs.uwsm.package} app -- walker"
|
||||||
"SUPER, p, exec, ${getExe config.programs.uwsm.package} app -- loginctl lock-session"
|
"SUPER, p, exec, ${getExe config.programs.uwsm.package} app -- loginctl lock-session"
|
||||||
|
|
||||||
|
", Print, exec, ${lib.getExe pkgs.grimblast} save area - | ${lib.getExe pkgs.satty} -f -"
|
||||||
|
"SHIFT, Print, exec, ${lib.getExe pkgs.grimblast} --freeze save area - | ${lib.getExe pkgs.satty} -f -"
|
||||||
|
"CTRL, Print, exec, ${lib.getExe record_script}"
|
||||||
|
|
||||||
"SUPER, S, togglefloating"
|
"SUPER, S, togglefloating"
|
||||||
"SUPER, A, pseudo"
|
"SUPER, A, pseudo"
|
||||||
"SUPER, D, fullscreen"
|
"SUPER, D, fullscreen"
|
||||||
"SUPER, BACKSLASH, togglesplit"
|
"SUPER, BACKSLASH, togglesplit"
|
||||||
"SUPER, M, togglegroup"
|
|
||||||
"SUPER, left, movefocus, l"
|
"SUPER, left, movefocus, l"
|
||||||
"SUPER, right, movefocus, r"
|
"SUPER, right, movefocus, r"
|
||||||
"SUPER, up, movefocus, u"
|
"SUPER, up, movefocus, u"
|
||||||
"SUPER, down, movefocus, d"
|
"SUPER, down, movefocus, d"
|
||||||
|
|
||||||
"SUPER, h, movefocus, l"
|
"SUPER, h, movefocus, l"
|
||||||
"SUPER, l, movefocus, r"
|
"SUPER, l, movefocus, r"
|
||||||
"SUPER, k, movefocus, u"
|
"SUPER, k, movefocus, u"
|
||||||
"SUPER, j, movefocus, d"
|
"SUPER, j, movefocus, d"
|
||||||
"SUPER, p, submap, preselect"
|
"SUPER, p, submap, preselect"
|
||||||
|
|
||||||
"SUPER, q, workspace, 1"
|
"SUPER, q, workspace, 1"
|
||||||
"SUPER, w, workspace, 2"
|
"SUPER, w, workspace, 2"
|
||||||
"SUPER, e, workspace, 3"
|
"SUPER, e, workspace, 3"
|
||||||
|
|
@ -208,8 +244,11 @@ in {
|
||||||
"SUPER SHIFT, e, movetoworkspace, 3"
|
"SUPER SHIFT, e, movetoworkspace, 3"
|
||||||
"SUPER SHIFT, r, movetoworkspace, 4"
|
"SUPER SHIFT, r, movetoworkspace, 4"
|
||||||
"SUPER SHIFT, t, movetoworkspace, 5"
|
"SUPER SHIFT, t, movetoworkspace, 5"
|
||||||
|
|
||||||
"SUPER SHIFT, h, workspace, r-1"
|
"SUPER SHIFT, h, workspace, r-1"
|
||||||
"SUPER SHIFT, l, workspace, r+1"
|
"SUPER SHIFT, l, workspace, r+1"
|
||||||
|
|
||||||
|
"SUPER, M, togglegroup"
|
||||||
"SUPER, tab, changegroupactive, f"
|
"SUPER, tab, changegroupactive, f"
|
||||||
"SUPER SHIFT, tab, changegroupactive, b"
|
"SUPER SHIFT, tab, changegroupactive, b"
|
||||||
];
|
];
|
||||||
|
|
@ -220,6 +259,13 @@ in {
|
||||||
layerrule = [
|
layerrule = [
|
||||||
"noanim, gtk4-layer-shell"
|
"noanim, gtk4-layer-shell"
|
||||||
];
|
];
|
||||||
|
windowrulev2 = [
|
||||||
|
"float,class:^(com.gabm.satty)$"
|
||||||
|
"dimaround,class:^(com.gabm.satty)$"
|
||||||
|
|
||||||
|
"float,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||||
|
"float,class:^(firefox)$,title:^(Library)$"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue