Compare commits

...

2 Commits

Author SHA1 Message Date
Sravan Balaji
ccd91bd506 Split Workspaces Plugin
- Add hyprpm reload command to startup
- Change workspace to split-workspace
- Change movetoworkspace to split-movetoworkspace
- Add split-monitor-workspaces plugin configuration
- Add icons for workspaces 1-50 in waybar hyprland
  workspaces module
2025-05-18 21:19:49 -04:00
Sravan Balaji
a1132117df Add hyprEasymotion plugin keybinding and config 2025-05-18 20:51:49 -04:00
3 changed files with 304 additions and 49 deletions

View File

@@ -46,6 +46,9 @@
- [[#opengl][OpenGL]]
- [[#render][Render]]
- [[#ecosystem][Ecosystem]]
- [[#plugins][Plugins]]
- [[#hypreasymotion][hyprEasymotion]]
- [[#split-monitor-workspaces][Split Monitor Workspaces]]
- [[#xdg-desktop-portal-hyprland][xdg-desktop-portal-hyprland]]
- [[#screencopy][Screencopy]]
- [[#hypridle][Hypridle]]
@@ -151,6 +154,7 @@ exec-once = uwsm app -- wl-paste --type image --watch cliphist store &
*** Desktop Setup
#+BEGIN_SRC conf :tangle hyprland.conf
exec-once = uwsm app -- hyprpm reload -n &
exec-once = uwsm app -- shikane &
exec-once = uwsm app -- waypaper --restore &
exec-once = uwsm app -- gammastep -x &
@@ -528,22 +532,22 @@ bind = $mainMod, J, movefocus, d
Switch workspaces with mainMod + [0-9]
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod, 1, split-workspace, 1
bind = $mainMod, 2, split-workspace, 2
bind = $mainMod, 3, split-workspace, 3
bind = $mainMod, 4, split-workspace, 4
bind = $mainMod, 5, split-workspace, 5
bind = $mainMod, 6, split-workspace, 6
bind = $mainMod, 7, split-workspace, 7
bind = $mainMod, 8, split-workspace, 8
bind = $mainMod, 9, split-workspace, 9
bind = $mainMod, 0, split-workspace, 10
#+END_SRC
Switch between most recent workspace
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod, Tab, workspace, previous_per_monitor
bind = $mainMod, Tab, split-workspace, previous_per_monitor
#+END_SRC
*** Move Windows to Workspace
@@ -551,16 +555,16 @@ bind = $mainMod, Tab, workspace, previous_per_monitor
Move active window to a workspace with mainMod + SHIFT + [0-9]
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, 1, split-movetoworkspace, 1
bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
#+END_SRC
*** Special Workspace
@@ -569,7 +573,7 @@ Example special workspace (scratchpad)
#+BEGIN_EXAMPLE conf
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod SHIFT, S, split-movetoworkspace, special:magic
#+END_EXAMPLE
*** Workspace Scroll
@@ -577,8 +581,8 @@ bind = $mainMod SHIFT, S, movetoworkspace, special:magic
Scroll through existing workspaces with mainMod + scroll
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, mouse_down, split-workspace, e+1
bind = $mainMod, mouse_up, split-workspace, e-1
#+END_SRC
*** Move / Resize Windows
@@ -721,6 +725,102 @@ ecosystem {
}
#+END_SRC
** Plugins
*** hyprEasymotion
- [[https://github.com/zakk4223/hyprland-easymotion][GitHub - hyprEasymotion]]
**** Keybindings
Enable *easymotion* navigation
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod, z, easymotion, action:hyprctl dispatch focuswindow address:{}
#+END_SRC
**** Appearance
Configure appearance of *easymotion* navigation indicators
#+BEGIN_SRC conf :tangle hyprland.conf
plugin {
easymotion {
#font size of the text
textsize=100
#color of the text, takes standard hyprland color format
textcolor=rgba(50fa7bff)
#background color of the label box. alpha is respected
bgcolor=rgba(282a36ff)
#enable blur. The bgcolor alpha must be at least semi-transparent.
blur=0
#Set blur alpha value. Blur must be enabled (float value)
blurA=1.0
#Set xray. Blur must be enabled
xray=0
#font to use for the label. This is passed directly to the pango font description
textfont=Sans
#padding around the text (inside the label box) size in pixels, adjusted for
#monitor scaling. This is the same format as hyprland's gapsin/gapsout workspace layout rule
#example: textpadding=2 5 5 2 (spaces not commas)
textpadding=20 20 20 20
#size of the border around the label box. A border size of zero disables border rendering.
bordersize=2
#color of the border. takes the same format as hyprland's border (so it can be a gradient)
bordercolor=rgba(50fa7bff)
#rounded corners? Same as hyprland's 'decoration:rounding' config
rounding=1
#what to do if a window is fullscreen
#none: nothing. (easymotion label won't be displayed on that window)
#toggle: take the window out of fullscreen entirely.
#maximize: convert the window to maximized.
#windows are restored to fullscreen after easymotion is exited/selected
fullscreen_action=toggle
#which keys to use for labeling windows
motionkeys=abcdefghijklmnopqrstuvwxyz1234567890
#if a monitor has a focused special workspace, only put easymotion labels on the windows in the special workspace
only_special = true
}
}
#+END_SRC
*** Split Monitor Workspaces
- [[https://github.com/Duckonaut/split-monitor-workspaces][GitHub - split-monitor-workspaces]]
#+BEGIN_SRC conf :tangle hyprland.conf
plugin {
split-monitor-workspaces {
# How many workspaces to bind to the monitor
count = 10
# Keep current workspaces focused on plugin init / reload
keep_focused = true
# Enable notifications
enable_notifications = false
# Enable management of persistent workspaces.
# This means the plugin will at initialization create $count
# workspaces on each monitor and make them persistent
enable_persistent_workspaces = false
}
}
#+END_SRC
* xdg-desktop-portal-hyprland
- [[https://wiki.hyprland.org/Hypr-Ecosystem/xdg-desktop-portal-hyprland/#configuration][Hyprland Wiki - Hypr Ecosystem - xdg-desktop-portal-hyprland - Configuration]]
@@ -1199,6 +1299,47 @@ fi
"7": "󰊢 ₇",
"8": "󰊖 ₈",
"9": " ₉",
"10": " ₁₀",
"11": "󰻧 ₁",
"12": "󰍩 ₂",
"13": "󰠮 ₃",
"14": " ₄",
"15": "󰖟 ₅",
"16": " ₆",
"17": "󰊢 ₇",
"18": "󰊖 ₈",
"19": " ₉",
"20": " ₁₀",
"21": "󰻧 ₁",
"22": "󰍩 ₂",
"23": "󰠮 ₃",
"24": " ₄",
"25": "󰖟 ₅",
"26": " ₆",
"27": "󰊢 ₇",
"28": "󰊖 ₈",
"29": " ₉",
"30": " ₁₀",
"31": "󰻧 ₁",
"32": "󰍩 ₂",
"33": "󰠮 ₃",
"34": " ₄",
"35": "󰖟 ₅",
"36": " ₆",
"37": "󰊢 ₇",
"38": "󰊖 ₈",
"39": " ₉",
"40": " ₁₀",
"41": "󰻧 ₁",
"42": "󰍩 ₂",
"43": "󰠮 ₃",
"44": " ₄",
"45": "󰖟 ₅",
"46": " ₆",
"47": "󰊢 ₇",
"48": "󰊖 ₈",
"49": " ₉",
"50": " ₁₀",
},
"show-special": true,
"special-visible-only": true,
@@ -1215,8 +1356,8 @@ fi
},
"hyprland/submap": {
"format": "󰘳 {}",
"default-submap": "",
"always-on": false,
"default-submap": "",
},
#+END_SRC

View File

@@ -11,6 +11,7 @@ exec-once = uwsm app -- kdeconnectd --replace &
exec-once = uwsm app -- wl-paste --type text --watch cliphist store &
exec-once = uwsm app -- wl-paste --type image --watch cliphist store &
exec-once = uwsm app -- hyprpm reload -n &
exec-once = uwsm app -- shikane &
exec-once = uwsm app -- waypaper --restore &
exec-once = uwsm app -- gammastep -x &
@@ -209,32 +210,32 @@ bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod, 1, split-workspace, 1
bind = $mainMod, 2, split-workspace, 2
bind = $mainMod, 3, split-workspace, 3
bind = $mainMod, 4, split-workspace, 4
bind = $mainMod, 5, split-workspace, 5
bind = $mainMod, 6, split-workspace, 6
bind = $mainMod, 7, split-workspace, 7
bind = $mainMod, 8, split-workspace, 8
bind = $mainMod, 9, split-workspace, 9
bind = $mainMod, 0, split-workspace, 10
bind = $mainMod, Tab, workspace, previous_per_monitor
bind = $mainMod, Tab, split-workspace, previous_per_monitor
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, 1, split-movetoworkspace, 1
bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, mouse_down, split-workspace, e+1
bind = $mainMod, mouse_up, split-workspace, e-1
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
@@ -288,3 +289,75 @@ ecosystem {
no_update_news = true
no_donation_nag = true
}
bind = $mainMod, z, easymotion, action:hyprctl dispatch focuswindow address:{}
plugin {
easymotion {
#font size of the text
textsize=100
#color of the text, takes standard hyprland color format
textcolor=rgba(50fa7bff)
#background color of the label box. alpha is respected
bgcolor=rgba(282a36ff)
#enable blur. The bgcolor alpha must be at least semi-transparent.
blur=0
#Set blur alpha value. Blur must be enabled (float value)
blurA=1.0
#Set xray. Blur must be enabled
xray=0
#font to use for the label. This is passed directly to the pango font description
textfont=Sans
#padding around the text (inside the label box) size in pixels, adjusted for
#monitor scaling. This is the same format as hyprland's gapsin/gapsout workspace layout rule
#example: textpadding=2 5 5 2 (spaces not commas)
textpadding=20 20 20 20
#size of the border around the label box. A border size of zero disables border rendering.
bordersize=2
#color of the border. takes the same format as hyprland's border (so it can be a gradient)
bordercolor=rgba(50fa7bff)
#rounded corners? Same as hyprland's 'decoration:rounding' config
rounding=1
#what to do if a window is fullscreen
#none: nothing. (easymotion label won't be displayed on that window)
#toggle: take the window out of fullscreen entirely.
#maximize: convert the window to maximized.
#windows are restored to fullscreen after easymotion is exited/selected
fullscreen_action=toggle
#which keys to use for labeling windows
motionkeys=abcdefghijklmnopqrstuvwxyz1234567890
#if a monitor has a focused special workspace, only put easymotion labels on the windows in the special workspace
only_special = true
}
}
plugin {
split-monitor-workspaces {
# How many workspaces to bind to the monitor
count = 10
# Keep current workspaces focused on plugin init / reload
keep_focused = true
# Enable notifications
enable_notifications = false
# Enable management of persistent workspaces.
# This means the plugin will at initialization create $count
# workspaces on each monitor and make them persistent
enable_persistent_workspaces = false
}
}

View File

@@ -162,6 +162,47 @@
"7": "󰊢 ₇",
"8": "󰊖 ₈",
"9": " ₉",
"10": " ₁₀",
"11": "󰻧 ₁",
"12": "󰍩 ₂",
"13": "󰠮 ₃",
"14": " ₄",
"15": "󰖟 ₅",
"16": " ₆",
"17": "󰊢 ₇",
"18": "󰊖 ₈",
"19": " ₉",
"20": " ₁₀",
"21": "󰻧 ₁",
"22": "󰍩 ₂",
"23": "󰠮 ₃",
"24": " ₄",
"25": "󰖟 ₅",
"26": " ₆",
"27": "󰊢 ₇",
"28": "󰊖 ₈",
"29": " ₉",
"30": " ₁₀",
"31": "󰻧 ₁",
"32": "󰍩 ₂",
"33": "󰠮 ₃",
"34": " ₄",
"35": "󰖟 ₅",
"36": " ₆",
"37": "󰊢 ₇",
"38": "󰊖 ₈",
"39": " ₉",
"40": " ₁₀",
"41": "󰻧 ₁",
"42": "󰍩 ₂",
"43": "󰠮 ₃",
"44": " ₄",
"45": "󰖟 ₅",
"46": " ₆",
"47": "󰊢 ₇",
"48": "󰊖 ₈",
"49": " ₉",
"50": " ₁₀",
},
"show-special": true,
"special-visible-only": true,
@@ -178,8 +219,8 @@
},
"hyprland/submap": {
"format": "󰘳 {}",
"default-submap": "",
"always-on": false,
"default-submap": "",
},
"idle_inhibitor": {