From b0ef37c8000daf3cd6d1baf95dcb1acbd54ed1cd Mon Sep 17 00:00:00 2001 From: minco Date: Thu, 25 Sep 2025 18:59:03 +0900 Subject: [PATCH] feat: add browser script --- hyprland.conf | 59 ++++++++++++++++++++++----------------- scripts/toggle-firefox.sh | 26 +++++++++++++++++ 2 files changed, 59 insertions(+), 26 deletions(-) create mode 100755 scripts/toggle-firefox.sh diff --git a/hyprland.conf b/hyprland.conf index b827a9a..96292ab 100644 --- a/hyprland.conf +++ b/hyprland.conf @@ -23,45 +23,45 @@ source=~/.config/hypr/mocha.conf ################ # See https://wiki.hyprland.org/Configuring/Monitors/ -monitor = HDMI-A-1, 1920x1080@60, 0x0, 1 +# monitor = HDMI-A-1, 1920x1080@60, 0x0, 1 monitor = HDMI-A-2, 1920x1080@60, 1920x1080, 1 # tablet monitor = DP-1, 1920x1080@60, 1920x0, 1 monitor = DP-3, 3840x2160@60, 3840x-720, 1.5 monitor = DP-2, 1920x1080@60, 6400x0, 1 # ID 0 -> x -workspace=1,monitor:HDMI-A-1,default:true -workspace=2,monitor:HDMI-A-1 -workspace=3,monitor:HDMI-A-1 -workspace=4,monitor:HDMI-A-1 -workspace=5,monitor:HDMI-A-1 +# workspace=1,monitor:HDMI-A-1,default:true +# workspace=2,monitor:HDMI-A-1 +# workspace=3,monitor:HDMI-A-1 +# workspace=4,monitor:HDMI-A-1 +# workspace=5,monitor:HDMI-A-1 -workspace=41,monitor:HDMI-A-2,default:true -workspace=42,monitor:HDMI-A-2 -workspace=43,monitor:HDMI-A-2 -workspace=44,monitor:HDMI-A-2 -workspace=45,monitor:HDMI-A-2 +workspace=31,monitor:HDMI-A-2,default:true +workspace=32,monitor:HDMI-A-2 +workspace=33,monitor:HDMI-A-2 +workspace=34,monitor:HDMI-A-2 +workspace=35,monitor:HDMI-A-2 # ID 1 -> 1x -workspace=11,monitor:DP-1,default:true -workspace=12,monitor:DP-1 -workspace=13,monitor:DP-1 -workspace=14,monitor:DP-1 -workspace=15,monitor:DP-1 +workspace=1,monitor:DP-1,default:true +workspace=2,monitor:DP-1 +workspace=3,monitor:DP-1 +workspace=4,monitor:DP-1 +workspace=5,monitor:DP-1 # ID 2 -> 2x -workspace=21,monitor:DP-2,default:true -workspace=22,monitor:DP-2 -workspace=23,monitor:DP-2 -workspace=24,monitor:DP-2 -workspace=25,monitor:DP-2 +workspace=11,monitor:DP-2,default:true +workspace=12,monitor:DP-2 +workspace=13,monitor:DP-2 +workspace=14,monitor:DP-2 +workspace=15,monitor:DP-2 # ID 3 -> 3x -workspace=31,monitor:DP-3,default:true -workspace=32,monitor:DP-3 -workspace=33,monitor:DP-3 -workspace=34,monitor:DP-3 -workspace=35,monitor:DP-3 +workspace=21,monitor:DP-3,default:true +workspace=22,monitor:DP-3 +workspace=23,monitor:DP-3 +workspace=24,monitor:DP-3 +workspace=25,monitor:DP-3 ################### @@ -293,6 +293,7 @@ bind = CTRL ALT, V, exec, vesktop --enable-wayland-ime --ozone-platform=wayland bind = CTRL ALT, P, exec, prismlauncher bind = CTRL ALT, C, exec, hyprpicker +bind = SUPER, F, exec, ~/.config/hypr/scripts/toggle-firefox.sh # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l @@ -300,6 +301,12 @@ bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d +# Neovim keys! +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, exec, hyprsome workspace 1 bind = $mainMod, 2, exec, hyprsome workspace 2 diff --git a/scripts/toggle-firefox.sh b/scripts/toggle-firefox.sh new file mode 100755 index 0000000..11c1ad0 --- /dev/null +++ b/scripts/toggle-firefox.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Workspace name for scratchpad +SCRATCH="special:firefox" + +# Find Firefox window +WIN=$(hyprctl clients -j | jq -r '.[] | select(.class == "firefox") | .address' | head -n1) + +if [ -z "$WIN" ]; then + # If not running, launch Firefox + firefox & + exit +fi + +# Get current workspace of Firefox +CUR=$(hyprctl clients -j | jq -r --arg WIN "$WIN" '.[] | select(.address == $WIN) | .workspace.name') + +if [ "$CUR" = "$SCRATCH" ]; then + # If hidden, move back to current workspace + hyprctl dispatch movetoworkspacesilent "$(hyprctl activeworkspace -j | jq -r .name),address:$WIN" + hyprctl dispatch focuswindow "address:$WIN" +else + # Otherwise, move it to scratchpad + hyprctl dispatch movetoworkspacesilent "$SCRATCH,address:$WIN" +fi +