Compare commits

...

13 Commits

Author SHA1 Message Date
Sravan Balaji
0cbeaf84f3 Remove explicit_sync settings which were removed in Hyprland v0.50.0 2025-08-15 19:55:28 -04:00
Sravan Balaji
ddc90c3898 Add dunst to autostart 2025-08-14 07:37:20 -04:00
Sravan Balaji
ed2b85244b Switch back to static background image for hyprlock 2025-06-01 14:53:51 -04:00
Sravan Balaji
d19373cd9d Swap hyprlock image background with blurred screenshot 2025-05-30 18:48:25 -04:00
Sravan Balaji
fc793e41b1 Remove hypridle / hyprlock sleeps 2025-05-29 20:16:51 -04:00
Sravan Balaji
005e99385a Remove gammastep-indicator from startup (using systemd service instead) 2025-05-29 18:07:24 -04:00
Sravan Balaji
edcbe0f6fd Change blur settings, add gammastep-indicator to startup, and set cursor theme on startup 2025-05-27 21:05:55 -04:00
Sravan Balaji
182dd383d3 Add keybinding for moving windows between monitors 2025-05-18 21:40:12 -04:00
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
Sravan Balaji
a741df08f9 Change waypaper random to restore 2025-05-18 20:03:10 -04:00
Sravan Balaji
fc5500765d Add fake fullscreen keybinding 2025-05-18 16:07:18 -04:00
Sravan Balaji
4bfcd9e32f Fix waybar module to launch btop as uwsm app 2025-05-18 09:41:29 -04:00
5 changed files with 340 additions and 71 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]]
@@ -146,13 +149,16 @@ exec-once = uwsm app -- fumon &
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 -- $HOME/.scripts/dunst.sh --on &
#+END_SRC
*** Desktop Setup
#+BEGIN_SRC conf :tangle hyprland.conf
exec-once = uwsm app -- hyprctl setcursor breeze-hacked-cursor-theme 24 &
exec-once = uwsm app -- hyprpm reload -n &
exec-once = uwsm app -- shikane &
exec-once = uwsm app -- waypaper --random &
exec-once = uwsm app -- waypaper --restore &
exec-once = uwsm app -- gammastep -x &
exec-once = uwsm app -- wpctl set-volume @DEFAULT_AUDIO_SINK@ 25% &
#+END_SRC
@@ -242,8 +248,8 @@ decoration {
blur {
enabled = true
size = 8
passes = 1
size = 5
passes = 3
ignore_opacity = true
new_optimizations = true
xray = true
@@ -494,7 +500,8 @@ General
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod SHIFT, C, killactive
bind = $mainMod CTRL SHIFT, C, forcekillactive
bind = $mainMod SHIFT, F, fullscreen
bind = $mainMod SHIFT, F, fullscreenstate, 0 3
bind = $mainMod CTRL SHIFT, F, fullscreen
bind = $mainMod, F, togglefloating
#+END_SRC
@@ -527,22 +534,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
@@ -550,16 +557,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
@@ -568,7 +575,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
@@ -576,8 +583,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
@@ -591,6 +598,13 @@ bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
#+END_SRC
Move windows to monitors with mainMod + SHIFT + <>
#+BEGIN_SRC conf :tangle hyprland.conf
bind = $mainMod SHIFT, period, movewindow, mon:+1
bind = $mainMod SHIFT, comma, movewindow, mon:-1
#+END_SRC
Move/resize windows with mainMod + LMB/RMB and dragging
#+BEGIN_SRC conf :tangle hyprland.conf
@@ -698,8 +712,6 @@ opengl {
#+BEGIN_SRC conf :tangle hyprland.conf
render {
explicit_sync = 2
explicit_sync_kms = 2
direct_scanout = 2
expand_undersized_textures = true
xp_mode = false
@@ -720,6 +732,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]]
@@ -741,9 +849,9 @@ screencopy {
#+BEGIN_SRC conf :tangle hypridle.conf
general {
lock_cmd = pgrep hyprlock || (hyprlock && sleep 3) # avoid starting multiple hyprlock instances
before_sleep_cmd = loginctl lock-session && sleep 3 # lock before suspend
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key to turn on the display
lock_cmd = pgrep hyprlock || hyprlock # avoid starting multiple hyprlock instances
before_sleep_cmd = loginctl lock-session # lock before suspend
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key to turn on the display
ignore_dbus_inhibit = false
ignore_systemd_inhibit = false
inhibit_sleep = 2
@@ -806,7 +914,7 @@ auth {
#+BEGIN_SRC conf :tangle hyprlock.conf
animations {
enabled = true
enabled = false
}
#+END_SRC
@@ -818,6 +926,7 @@ animations {
background {
monitor =
path = ~/Data/NextCloud/Wallpapers/Desktop/Solar_System.png
color = rgba(282a36ff)
}
#+END_SRC
@@ -1028,7 +1137,7 @@ button {
"interval": 5,
"format": " {usage}%",
"tooltip": true,
"on-click-right": "foot btop",
"on-click-right": "uwsm app -- foot btop",
},
#+END_SRC
@@ -1198,6 +1307,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,
@@ -1214,8 +1364,8 @@ fi
},
"hyprland/submap": {
"format": "󰘳 {}",
"default-submap": "",
"always-on": false,
"default-submap": "",
},
#+END_SRC

View File

@@ -1,7 +1,7 @@
general {
lock_cmd = pgrep hyprlock || (hyprlock && sleep 3) # avoid starting multiple hyprlock instances
before_sleep_cmd = loginctl lock-session && sleep 3 # lock before suspend
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key to turn on the display
lock_cmd = pgrep hyprlock || hyprlock # avoid starting multiple hyprlock instances
before_sleep_cmd = loginctl lock-session # lock before suspend
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key to turn on the display
ignore_dbus_inhibit = false
ignore_systemd_inhibit = false
inhibit_sleep = 2

View File

@@ -10,9 +10,12 @@ exec-once = uwsm app -- fumon &
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 -- $HOME/.scripts/dunst.sh --on &
exec-once = uwsm app -- hyprctl setcursor breeze-hacked-cursor-theme 24 &
exec-once = uwsm app -- hyprpm reload -n &
exec-once = uwsm app -- shikane &
exec-once = uwsm app -- waypaper --random &
exec-once = uwsm app -- waypaper --restore &
exec-once = uwsm app -- gammastep -x &
exec-once = uwsm app -- wpctl set-volume @DEFAULT_AUDIO_SINK@ 25% &
@@ -54,8 +57,8 @@ decoration {
blur {
enabled = true
size = 8
passes = 1
size = 5
passes = 3
ignore_opacity = true
new_optimizations = true
xray = true
@@ -195,7 +198,8 @@ bind = $mainMod CTRL, Q, exec, uwsm app -- $HOME/.scripts/session.sh --rofi
bind = $mainMod SHIFT, C, killactive
bind = $mainMod CTRL SHIFT, C, forcekillactive
bind = $mainMod SHIFT, F, fullscreen
bind = $mainMod SHIFT, F, fullscreenstate, 0 3
bind = $mainMod CTRL SHIFT, F, fullscreen
bind = $mainMod, F, togglefloating
bind = $mainMod, D, pseudo
@@ -208,38 +212,41 @@ 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
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod SHIFT, period, movewindow, mon:+1
bind = $mainMod SHIFT, comma, movewindow, mon:-1
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
@@ -273,8 +280,6 @@ opengl {
}
render {
explicit_sync = 2
explicit_sync_kms = 2
direct_scanout = 2
expand_undersized_textures = true
xp_mode = false
@@ -287,3 +292,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

@@ -17,12 +17,13 @@ auth {
}
animations {
enabled = true
enabled = false
}
background {
monitor =
path = ~/Data/NextCloud/Wallpapers/Desktop/Solar_System.png
color = rgba(282a36ff)
}
input-field {

View File

@@ -84,7 +84,7 @@
"interval": 5,
"format": " {usage}%",
"tooltip": true,
"on-click-right": "foot btop",
"on-click-right": "uwsm app -- foot btop",
},
"clock": {
@@ -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": {