#! /usr/bin/env bash # @describe Wrapper for toggling last special workspace # # https://github.com/sigoden/argc # @meta combine-shorts # @option -f --file=`_default_file` File to save last special workspace _default_file() { echo "/tmp/workspace" } eval "$(argc --argc-eval "$0" "$@")" # Get current special workspace from active monitor, empty if not toggled workspace="$(hyprctl -j monitors | jq -r ".[] | select(.focused == true).specialWorkspace.name")" # If empty, use saved file if ! [[ "$workspace" ]] && [[ -f "${argc_file:-}" ]]; then workspace="$(cat "${argc_file:-}")" fi if [[ "$workspace" ]]; then # Toggle workspace hyprctl dispatch togglespecialworkspace "${workspace#special:*}" # Strip prefix # Save last workspace echo "$workspace" > "${argc_file:-}" else notify-send "> workspace" "Last workspace not yet saved" fi