1
1
Fork 0

Compare commits

..

2 commits

Author SHA1 Message Date
493e552cde
hyprland: add bind to switch pip position
Signed-off-by: Myned <dev@bjork.tech>
2024-09-28 21:36:46 -05:00
a91a991ba0
window: initial script
Signed-off-by: Myned <dev@bjork.tech>
2024-09-28 21:36:20 -05:00
3 changed files with 61 additions and 0 deletions

View file

@ -41,6 +41,7 @@ with lib; let
vrr = config.home-manager.users.${config.custom.username}.home.file.".local/bin/vrr".source; vrr = config.home-manager.users.${config.custom.username}.home.file.".local/bin/vrr".source;
walker = "${config.home-manager.users.${config.custom.username}.programs.walker.package}/bin/walker"; walker = "${config.home-manager.users.${config.custom.username}.programs.walker.package}/bin/walker";
waydroid = "${pkgs.waydroid}/bin/waydroid"; waydroid = "${pkgs.waydroid}/bin/waydroid";
window = config.home-manager.users.${config.custom.username}.home.file.".local/bin/window".source;
zoom = config.home-manager.users.${config.custom.username}.home.file.".local/bin/zoom".source; zoom = config.home-manager.users.${config.custom.username}.home.file.".local/bin/zoom".source;
cfg = config.custom.desktops.hyprland.binds; cfg = config.custom.desktops.hyprland.binds;
@ -173,6 +174,14 @@ in {
"--workspace special:pip" "--workspace special:pip"
])) ]))
(key "Space" "Super" "togglespecialworkspace" "scratchpad") (key "Space" "Super" "togglespecialworkspace" "scratchpad")
(key "Space" "Super+Ctrl+Shift" "exec" (with config.custom;
concatStringsSep " " [
"${window} move"
"--current"
"--property title"
"'^Picture.in.[Pp]icture$'"
"${toString (gap + border)},${toString (gap + border)}"
]))
(key "Space" "Super+Shift" "movetoworkspacesilent" "special:scratchpad") (key "Space" "Super+Shift" "movetoworkspacesilent" "special:scratchpad")
(key "Tab" "Super" "cyclenext" "tiled") (key "Tab" "Super" "cyclenext" "tiled")
(key "Tab" "Super+Shift" "alterzorder" "top") (key "Tab" "Super+Shift" "alterzorder" "top")

View file

@ -175,6 +175,11 @@ in {
swww swww
tailscale tailscale
]) ])
(bash "window" [
argc
hyprland
jq
])
(bash "zoom" [ (bash "zoom" [
argc argc
bc bc

View file

@ -0,0 +1,47 @@
#! /usr/bin/env bash
# @describe Wrapper for switching between window geometries
#
# https://github.com/sigoden/argc
# @meta combine-shorts
_default_file() {
echo "/tmp/window.move"
}
# @cmd Move window to and from specified location, requires floating
# @alias m,mo,mov
# @arg window! Window to switch, in regex
# @arg to*, X,Y position to move to
# @arg from*, X,Y position to move from
# @option -f --file=`_default_file` File to save current window position
# @option -p --property=class Property to match window, such as class or title
# @flag -c --current Use current window position to move from
move() {
window="${argc_property:-}:${argc_window:-}"
# Get current position
position="$(hyprctl -j clients | jq -r ".[] | select(.${argc_property:-} | test(\"${argc_window:-}\")).at")" # [X,Y]
if [[ "${argc_current:-}" ]]; then
if [[ -f "${argc_file:-}" ]]; then
# Pop saved position
argc_from[0]="$(jq ".[0]" "${argc_file:-}")"
argc_from[1]="$(jq ".[1]" "${argc_file:-}")"
rm --force "${argc_file:-}"
else
# Save current position
echo "$position" > "${argc_file:-}"
fi
fi
# Switch between specified positions
if [[ "$(echo "$position" | jq .[0])" == "${argc_to[0]:-}" ]] && [[ "$(echo "$position" | jq .[1])" == "${argc_to[1]:-}" ]]; then
hyprctl dispatch movewindowpixel exact "${argc_from[0]:-}" "${argc_from[1]:-}","$window"
else
hyprctl dispatch movewindowpixel exact "${argc_to[0]:-}" "${argc_to[1]:-}","$window"
fi
}
eval "$(argc --argc-eval "$0" "$@")"