更新hyprland配置

This commit is contained in:
2025-05-07 15:16:40 +08:00
parent c133e5637f
commit 457028533e
6 changed files with 71 additions and 31 deletions

View File

@@ -79,15 +79,23 @@ bind = $mod, J, movefocus, d
# Resize windows
binde = $mod CONTROL, right, resizeactive, 10 0
binde = $mod CONTROL, H, resizeactive, 10 0
binde = $mod CONTROL, left, resizeactive, -10 0
binde = $mod CONTROL, L, resizeactive, -10 0
binde = $mod CONTROL, up, resizeactive, 0 -10
binde = $mod CONTROL, K, resizeactive, 0 -10
binde = $mod CONTROL, down, resizeactive, 0 10
binde = $mod CONTROL, J, resizeactive, 0 10
# Move Window with mod + SHIFT + arrow keys
bind = $mod SHIFT, left, movewindow, l
bind = $mod SHIFT, H, movewindow, l
bind = $mod SHIFT, right, movewindow, r
bind = $mod SHIFT, L, movewindow, r
bind = $mod SHIFT, up, movewindow, u
bind = $mod SHIFT, K, movewindow, u
bind = $mod SHIFT, down, movewindow, d
bind = $mod SHIFT, J, movewindow, d
# Move/resize windows with mod + LMB/RMB and dragging
bindm = $mod, mouse:272, movewindow
@@ -139,7 +147,7 @@ bind = $mod CONTROL, S, togglespecialworkspace,
# Scroll through existing workspaces with mod + scroll
bind = $mod CTRL, right, workspace, e+1
bind = $mod, mouse_up, workspace, e+1
bind = $mod CTRL, left, workspace, e-1
bind = $mod, mouse_down, workspace, e-1`
bind = $mod, TAB, exec, ~/.config/hypr/scripts/switch.sh

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# 获取窗口列表,格式为 "ADDRESS [Workspace] Class: Title"
# 使用 jq 解析 hyprctl clients -j 的 JSON 输出
# select(.workspace.id != -1) 过滤掉特殊工作区(如概览)的窗口
WINDOWS_LIST=$(hyprctl clients -j | jq -r '.[] | select(.workspace.id != -1) | "\(.address)\t[\(.workspace.name)] \(.class): \(.title)"')
# 如果没有窗口,显示提示并退出
if [ -z "$WINDOWS_LIST" ]; then
rofi -e "No open windows found."
exit 1
fi
# 使用 Rofi 显示窗口列表,允许用户选择
# -dmenu: dmenu 模式
# -i: 不区分大小写搜索
# -p: 提示符文本
# -markup-rows: (可选) 如果你想在列表中使用 Pango 标记
# -format 's': 输出选择的完整行
CHOSEN_WINDOW_LINE=$(echo -e "$WINDOWS_LIST" | rofi -dmenu -i -p "󰖯 Switch Window" -format 's')
# 你可以使用其他图标,例如  或 Window:
# 如果用户取消了选择 (Rofi 返回空),则退出
if [ -z "$CHOSEN_WINDOW_LINE" ]; then
exit 0
fi
# 从选择的行中提取窗口地址 (它是第一个字段,以制表符分隔)
CHOSEN_ADDRESS=$(echo "$CHOSEN_WINDOW_LINE" | awk -F'\t' '{print $1}')
# 使用 hyprctl 切换到选定的窗口
hyprctl dispatch focuswindow address:"$CHOSEN_ADDRESS"
exit 0

View File

@@ -37,4 +37,3 @@ windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
windowrulev2 = opacity 1.00 1.00,class:^(code)$
windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$
windowrulev2 = opacity 0.50 0.50,class:^(kitty)$