docs: add FIXME for waybar popup
This commit is contained in:
+38
-38
@@ -4,53 +4,53 @@
|
|||||||
myConfig,
|
myConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
# FIXME: waybar overlaps fullscreen display when restarting waybar
|
||||||
hakase-popup-launch = pkgs.writeShellScriptBin "hakase-popup-launch" ''
|
hakase-popup-launch = pkgs.writeShellScriptBin "hakase-popup-launch" ''
|
||||||
tui_name=$1
|
tui_name=$1
|
||||||
active_popup=$(${pkgs.hyprland}/bin/hyprctl clients -j | ${pkgs.jq}/bin/jq -r '.[] | select(.class | startswith("org.hakase.")) | .class')
|
active_popup=$(${pkgs.hyprland}/bin/hyprctl clients -j | ${pkgs.jq}/bin/jq -r '.[] | select(.class | startswith("org.hakase.")) | .class')
|
||||||
|
|
||||||
if [[ -z "''${tui_name}" ]]; then
|
if [[ -z "''${tui_name}" ]]; then
|
||||||
echo "Usage: $(basename "$0") [tui-name]"
|
echo "Usage: $(basename "$0") [tui-name]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
popup_checker() {
|
|
||||||
if [[ -z "$active_popup" ]]; then
|
|
||||||
echo "no_popup"
|
|
||||||
elif [[ "$active_popup" != "org.hakase.popup.''${tui_name}" ]]; then
|
|
||||||
echo "different"
|
|
||||||
else
|
|
||||||
echo "same"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
popup_checker() {
|
||||||
|
if [[ -z "$active_popup" ]]; then
|
||||||
|
echo "no_popup"
|
||||||
|
elif [[ "$active_popup" != "org.hakase.popup.''${tui_name}" ]]; then
|
||||||
|
echo "different"
|
||||||
|
else
|
||||||
|
echo "same"
|
||||||
|
fi
|
||||||
|
}
|
||||||
launch() {
|
launch() {
|
||||||
exec ${pkgs.util-linux}/bin/setsid uwsm-app -- xdg-terminal-exec --app-id=org.hakase.popup."''${tui_name}" -e "''${tui_name}"
|
exec ${pkgs.util-linux}/bin/setsid uwsm-app -- xdg-terminal-exec --app-id=org.hakase.popup."''${tui_name}" -e "''${tui_name}"
|
||||||
}
|
}
|
||||||
|
|
||||||
focus() {
|
focus() {
|
||||||
exec ${pkgs.hyprland}/bin/hyprctl dispatch focuswindow "class:org.hakase.popup.''${tui_name}"
|
exec ${pkgs.hyprland}/bin/hyprctl dispatch focuswindow "class:org.hakase.popup.''${tui_name}"
|
||||||
}
|
}
|
||||||
|
|
||||||
replace() {
|
replace() {
|
||||||
${pkgs.hyprland}/bin/hyprctl dispatch closewindow "class:''${active_popup}"
|
${pkgs.hyprland}/bin/hyprctl dispatch closewindow "class:''${active_popup}"
|
||||||
sleep 0.3
|
sleep 0.3
|
||||||
launch
|
launch
|
||||||
}
|
}
|
||||||
|
|
||||||
run() {
|
run() {
|
||||||
local status
|
local status
|
||||||
status=$(popup_checker)
|
status=$(popup_checker)
|
||||||
|
|
||||||
if [[ "$status" == "no_popup" ]]; then
|
if [[ "$status" == "no_popup" ]]; then
|
||||||
launch
|
launch
|
||||||
elif [[ "$status" == "same" ]]; then
|
elif [[ "$status" == "same" ]]; then
|
||||||
focus
|
focus
|
||||||
elif [[ "$status" == "different" ]]; then
|
elif [[ "$status" == "different" ]]; then
|
||||||
replace
|
replace
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
run
|
run
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
|||||||
Reference in New Issue
Block a user