Compare commits
19
Commits
fecc16e904
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d07b2e5079 | ||
|
|
dcd46eafb9 | ||
|
|
02ac673d4c | ||
|
|
f6b10474ef | ||
|
|
4a8e3d6208 | ||
|
|
f3fad0a963 | ||
|
|
f8145fd3c9 | ||
|
|
9b7e3d795c | ||
|
|
137764c885 | ||
|
|
da03abc876 | ||
|
|
f56487246c | ||
|
|
4fc7944c48 | ||
|
|
46d9fa3f6a | ||
|
|
0b589161ff | ||
|
|
de178fa25a | ||
|
|
18304e4f61 | ||
|
|
d15d5c9199 | ||
|
|
935ddeaaca | ||
|
|
a43a24e8ba |
@@ -0,0 +1,6 @@
|
|||||||
|
column_width = 160
|
||||||
|
line_endings = "Unix"
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 4
|
||||||
|
quote_style = "AutoPreferSingle"
|
||||||
|
call_parentheses = "None"
|
||||||
+225
-231
@@ -1,394 +1,388 @@
|
|||||||
-- Browser types
|
-- Browser types
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "chromium-browser-tags",
|
name = 'chromium-browser-tags',
|
||||||
tag = "+chromium-based-browser",
|
tag = '+chromium-based-browser',
|
||||||
match = {
|
match = {
|
||||||
class = "((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)",
|
class = '((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "firefox-tags",
|
name = 'firefox-tags',
|
||||||
tag = "+firefox-based-browser",
|
tag = '+firefox-based-browser',
|
||||||
match = {
|
match = {
|
||||||
class = "([fF]irefox|zen|librewolf)",
|
class = '([fF]irefox|zen|librewolf)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "chromium-browser-opacity-tags",
|
name = 'chromium-browser-opacity-tags',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
match = {
|
match = {
|
||||||
tag = "chromium-based-browser",
|
tag = 'chromium-based-browser',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "firefox-browser-opacity-tags",
|
name = 'firefox-browser-opacity-tags',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
match = {
|
match = {
|
||||||
tag = "firefox-based-browser",
|
tag = 'firefox-based-browser',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
-- Video apps: remove chromium browser tag so they don't get opacity applied
|
-- Video apps: remove chromium browser tag so they don't get opacity applied
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "video-apps-no-browser-tag",
|
name = 'video-apps-no-browser-tag',
|
||||||
tag = "-chromium-based-browser",
|
tag = '-chromium-based-browser',
|
||||||
match = {
|
match = {
|
||||||
class = "(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)",
|
class = '(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "video-apps-no-opacity-tag",
|
name = 'video-apps-no-opacity-tag',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
match = {
|
match = {
|
||||||
class = "(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)",
|
class = '(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
-- Force chromium-based browsers into a tile to deal with --app bug
|
-- Force chromium-based browsers into a tile to deal with --app bug
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "chromium-tile",
|
name = 'chromium-tile',
|
||||||
tile = true,
|
tile = true,
|
||||||
match = {
|
match = {
|
||||||
tag = "chromium-based-browser",
|
tag = 'chromium-based-browser',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
-- Only a subtle opacity change, but not for video sites
|
-- Only a subtle opacity change, but not for video sites
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "chromium-browser-subtle-opacity",
|
name = 'chromium-browser-subtle-opacity',
|
||||||
opacity = "1.0 0.97",
|
opacity = '1.0 0.97',
|
||||||
match = {
|
match = {
|
||||||
tag = "chromium-based-browser",
|
tag = 'chromium-based-browser',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "firefox-browser-subtle-opacity",
|
name = 'firefox-browser-subtle-opacity',
|
||||||
opacity = "1.0 0.97",
|
opacity = '1.0 0.97',
|
||||||
match = {
|
match = {
|
||||||
tag = "firefox-based-browser",
|
tag = 'firefox-based-browser',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "geforce-now",
|
name = 'geforce-now',
|
||||||
idle_inhibit = "fullscreen",
|
idle_inhibit = 'fullscreen',
|
||||||
match = {
|
match = {
|
||||||
class = "GeForceNOW",
|
class = 'GeForceNOW',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
-- Remove 1px border around hyprshot screenshots
|
-- Remove 1px border around hyprshot screenshots
|
||||||
hl.layer_rule({
|
hl.layer_rule {
|
||||||
name = "no-anim-for-selection",
|
name = 'no-anim-for-selection',
|
||||||
match = { namespace = "selection" },
|
match = { namespace = 'selection' },
|
||||||
no_anim = true,
|
no_anim = true,
|
||||||
})
|
}
|
||||||
|
|
||||||
-- Jetbrains
|
-- Jetbrains
|
||||||
-- Fix splash screen showing in weird places and prevent annoying focus takeovers
|
-- Fix splash screen showing in weird places and prevent annoying focus takeovers
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "jetbrains-splash",
|
name = 'jetbrains-splash',
|
||||||
tag = "+jetbrains-splash",
|
tag = '+jetbrains-splash',
|
||||||
center = true,
|
center = true,
|
||||||
no_focus = true,
|
no_focus = true,
|
||||||
border_size = 0,
|
border_size = 0,
|
||||||
match = {
|
match = {
|
||||||
class = "^(jetbrains-.*)$",
|
class = '^(jetbrains-.*)$',
|
||||||
title = "^(splash)$",
|
title = '^(splash)$',
|
||||||
float = true,
|
float = true,
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
-- Center popups/find windows
|
-- Center popups/find windows
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "jetbrains-popups",
|
name = 'jetbrains-popups',
|
||||||
center = true,
|
center = true,
|
||||||
stay_focused = true,
|
stay_focused = true,
|
||||||
border_size = 0,
|
border_size = 0,
|
||||||
min_size = { "(monitor_w*0.5)", "(monitor_h*0.5)" },
|
min_size = { '(monitor_w*0.5)', '(monitor_h*0.5)' },
|
||||||
tag = "+jetbrains",
|
tag = '+jetbrains',
|
||||||
match = {
|
match = {
|
||||||
class = "^(jetbrains-.*)$",
|
class = '^(jetbrains-.*)$',
|
||||||
title = "^()$",
|
title = '^()$',
|
||||||
float = true,
|
float = true,
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Disable window flicker when autocomplete or tooltips appear
|
-- Disable window flicker when autocomplete or tooltips appear
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "jetbrains-tooltip",
|
name = 'jetbrains-tooltip',
|
||||||
no_initial_focus = true,
|
no_initial_focus = true,
|
||||||
match = {
|
match = {
|
||||||
class = "^(jetbrains-.*)$",
|
class = '^(jetbrains-.*)$',
|
||||||
title = "^(win.*)$",
|
title = '^(win.*)$',
|
||||||
float = true,
|
float = true,
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Disable mouse focus
|
-- Disable mouse focus
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "jetbrains-no-follow-mouse",
|
name = 'jetbrains-no-follow-mouse',
|
||||||
no_follow_mouse = true,
|
no_follow_mouse = true,
|
||||||
match = {
|
match = {
|
||||||
class = "^(jetbrains-.*)$",
|
class = '^(jetbrains-.*)$',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Keep enpass focused
|
-- Keep enpass focused
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "enpass-assistant",
|
name = 'enpass-assistant',
|
||||||
stay_focused = true,
|
stay_focused = true,
|
||||||
center = true,
|
center = true,
|
||||||
match = {
|
match = {
|
||||||
class = "^(Enpass)$",
|
class = '^(Enpass)$',
|
||||||
title = "^(Enpass Assistant)$",
|
title = '^(Enpass Assistant)$',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Float LocalSend and fzf file picker
|
-- Float LocalSend and fzf file picker
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "localsend-float",
|
name = 'localsend-float',
|
||||||
float = true,
|
float = true,
|
||||||
center = true,
|
center = true,
|
||||||
match = {
|
match = {
|
||||||
class = "(localsend|Share|fzf-file-picker)",
|
class = '(localsend|Share|fzf-file-picker)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Picture-in-picture overlays
|
-- Picture-in-picture overlays
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "pip-overlay",
|
name = 'pip-overlay',
|
||||||
tag = "+pip",
|
tag = '+pip',
|
||||||
match = {
|
match = {
|
||||||
title = "(Picture.?in.?[Pp]icture)",
|
title = '(Picture.?in.?[Pp]icture)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "pip-overlay",
|
name = 'pip-overlay',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
float = true,
|
float = true,
|
||||||
pin = true,
|
pin = true,
|
||||||
size = { 600, 338 },
|
size = { 600, 338 },
|
||||||
keep_aspect_ratio = true,
|
keep_aspect_ratio = true,
|
||||||
border_size = 0,
|
border_size = 0,
|
||||||
opacity = "1 1",
|
opacity = '1 1',
|
||||||
match = {
|
match = {
|
||||||
tag = "pip",
|
tag = 'pip',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Retroarch
|
-- Retroarch
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "retroarch-fullscreen",
|
name = 'retroarch-fullscreen',
|
||||||
fullscreen = true,
|
fullscreen = true,
|
||||||
workspace = 5,
|
workspace = 'name:Gaming_1',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
opacity = "1 1",
|
opacity = '1 1',
|
||||||
idle_inhibit = "fullscreen",
|
idle_inhibit = 'fullscreen',
|
||||||
match = {
|
match = {
|
||||||
class = "com.libretro.RetroArch",
|
class = 'com.libretro.RetroArch',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Scratchpad apps
|
-- Scratchpad apps
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "spotify-scratchpad",
|
name = 'spotify-scratchpad',
|
||||||
workspace = "special:scratchpad",
|
workspace = 'special:music',
|
||||||
match = {
|
match = {
|
||||||
class = "Spotify",
|
class = 'Spotify|psysonic',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "signal-scratchpad",
|
name = 'comms-scratchpad',
|
||||||
workspace = "special:scratchpad",
|
workspace = 'special:comms',
|
||||||
match = {
|
match = {
|
||||||
class = "signal",
|
class = '^(chrome-discord.com__channels_@me-Default|chrome-web.whatsapp.com__-Default|signal)$',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "discord-scratchpad",
|
name = 'superproductivity-scratchpad',
|
||||||
workspace = "special:scratchpad",
|
workspace = 'special:prod',
|
||||||
match = {
|
match = {
|
||||||
class = "^(chrome-discord.com__channels_@me-Default)$",
|
class = '^(superproductivity|org.station.notes)$',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Float Nextcloud
|
-- Float Nextcloud
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "nextcloud-float",
|
name = 'nextcloud-float',
|
||||||
float = true,
|
float = true,
|
||||||
match = {
|
match = {
|
||||||
class = "com.nextcloud.desktopclient.nextcloud",
|
class = 'com.nextcloud.desktopclient.nextcloud',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Position drawing
|
-- Position drawing
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "krita-drawing",
|
name = 'krita-drawing',
|
||||||
workspace = 5,
|
workspace = 'name:Art_1',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
opacity = "1 1",
|
opacity = '1 1',
|
||||||
match = {
|
match = {
|
||||||
class = "(krita)",
|
class = '(krita)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Position TV
|
|
||||||
hl.window_rule({
|
|
||||||
name = "tv-apps",
|
|
||||||
workspace = 7,
|
|
||||||
match = {
|
|
||||||
class = "(chrome-youtube.com__-Default|chrome-netflix.com__-Default)",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
-- Float Steam
|
-- Float Steam
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "steam-float",
|
name = 'steam-float',
|
||||||
float = true,
|
float = true,
|
||||||
workspace = 7,
|
no_initial_focus = true,
|
||||||
idle_inhibit = "fullscreen",
|
workspace = 'name:Gaming_1',
|
||||||
|
idle_inhibit = 'fullscreen',
|
||||||
match = {
|
match = {
|
||||||
class = "steam",
|
class = 'steam',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "steam-app-size",
|
name = 'steam-app-size',
|
||||||
center = true,
|
center = true,
|
||||||
match = {
|
match = {
|
||||||
class = "steam",
|
class = 'steam',
|
||||||
title = "Steam",
|
title = 'Steam',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "steam-opacity",
|
name = 'steam-opacity',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
opacity = "1 1",
|
opacity = '1 1',
|
||||||
match = {
|
match = {
|
||||||
class = "steam.*",
|
class = 'steam.*',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "steam-friends-size",
|
name = 'steam-friends-size',
|
||||||
size = { 460, 800 },
|
size = { 460, 800 },
|
||||||
match = {
|
match = {
|
||||||
class = "steam",
|
class = 'steam',
|
||||||
title = "Friends List",
|
title = 'Friends List',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Float Lunar Client
|
-- Float Lunar Client
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "lunar-client-float",
|
name = 'atlauncher-float',
|
||||||
float = true,
|
float = true,
|
||||||
workspace = 7,
|
workspace = 'name:Gaming_1',
|
||||||
center = true,
|
center = true,
|
||||||
size = { 1100, 700 },
|
size = { 1100, 700 },
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
opacity = "1 1",
|
opacity = '1 1',
|
||||||
idle_inhibit = "fullscreen",
|
idle_inhibit = 'fullscreen',
|
||||||
match = {
|
match = {
|
||||||
class = "lunarclient",
|
class = 'atlauncher',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Floating windows
|
-- Floating windows
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "floating-window-tags",
|
name = 'floating-window-tags',
|
||||||
tag = "+floating-window",
|
tag = '+floating-window',
|
||||||
match = {
|
match = {
|
||||||
class = "(org.station.bluetui|org.station.impala|org.station.wiremix|org.station.btop|org.station.terminal|org.station.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Station|About|TUI.float|imv|mpv)",
|
class = '(org.station.bluetui|org.station.impala|org.station.wiremix|org.station.btop|org.station.terminal|org.station.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Station|About|TUI.float|imv|mpv)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "floating-dialog-tags",
|
name = 'floating-dialog-tags',
|
||||||
tag = "+floating-window",
|
tag = '+floating-window',
|
||||||
match = {
|
match = {
|
||||||
class = "(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus)",
|
class = '(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus)',
|
||||||
title = "^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)",
|
title = '^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "floating-window-tags",
|
name = 'floating-window-tags',
|
||||||
tag = "+floating-window",
|
tag = '+floating-window',
|
||||||
float = true,
|
float = true,
|
||||||
center = true,
|
center = true,
|
||||||
size = { 875, 600 },
|
size = { 875, 600 },
|
||||||
match = {
|
match = {
|
||||||
tag = "floating-window",
|
tag = 'floating-window',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Calculator float
|
-- Calculator float
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "calculator-float",
|
name = 'calculator-float',
|
||||||
float = true,
|
float = true,
|
||||||
match = {
|
match = {
|
||||||
class = "org.gnome.Calculator",
|
class = 'org.gnome.Calculator',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Fullscreen screensaver
|
-- Fullscreen screensaver
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "screensaver-fullscreen",
|
name = 'screensaver-fullscreen',
|
||||||
fullscreen = true,
|
fullscreen = true,
|
||||||
float = true,
|
float = true,
|
||||||
animation = "slide",
|
animation = 'slide',
|
||||||
match = {
|
match = {
|
||||||
class = "org.station.screensaver",
|
class = 'org.station.screensaver',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- No transparency on media windows
|
-- No transparency on media windows
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "media-no-opacity",
|
name = 'media-no-opacity',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
opacity = "1 1",
|
opacity = '1 1',
|
||||||
match = {
|
match = {
|
||||||
class = "^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$",
|
class = '^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Popped window rounding
|
-- Popped window rounding
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "popped-window-rounding",
|
name = 'popped-window-rounding',
|
||||||
rounding = 8,
|
rounding = 8,
|
||||||
match = {
|
match = {
|
||||||
tag = "pop",
|
tag = 'pop',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Prevent idle while open
|
-- Prevent idle while open
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "idle-inhibit-apps",
|
name = 'idle-inhibit-apps',
|
||||||
idle_inhibit = "always",
|
idle_inhibit = 'always',
|
||||||
match = {
|
match = {
|
||||||
tag = "noidle",
|
tag = 'noidle',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Prevent Telegram from stealing focus on new messages
|
-- Prevent Telegram from stealing focus on new messages
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "telegram-no-focus-steal",
|
name = 'telegram-no-focus-steal',
|
||||||
focus_on_activate = false,
|
focus_on_activate = false,
|
||||||
match = {
|
match = {
|
||||||
class = "org.telegram.desktop",
|
class = 'org.telegram.desktop',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Define terminal tag to style them uniformly
|
-- Define terminal tag to style them uniformly
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "terminal-tags",
|
name = 'terminal-tags',
|
||||||
tag = "+terminal",
|
tag = '+terminal',
|
||||||
match = {
|
match = {
|
||||||
class = "(Alacritty|kitty|com.mitchellh.ghostty)",
|
class = '(Alacritty|kitty|com.mitchellh.ghostty)',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "terminal-opacity-tags",
|
name = 'terminal-opacity-tags',
|
||||||
tag = "-default-opacity",
|
tag = '-default-opacity',
|
||||||
opacity = "0.97 0.9",
|
opacity = '0.97 0.9',
|
||||||
match = {
|
match = {
|
||||||
tag = "terminal",
|
tag = 'terminal',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
-- Application-specific animation
|
-- Application-specific animation
|
||||||
hl.layer_rule({
|
hl.layer_rule {
|
||||||
name = "walker-no-anim",
|
name = 'walker-no-anim',
|
||||||
no_anim = true,
|
no_anim = true,
|
||||||
match = { namespace = "walker" },
|
match = { namespace = 'walker' },
|
||||||
})
|
}
|
||||||
-- Webcam overlay for screen recording
|
-- Webcam overlay for screen recording
|
||||||
hl.window_rule({
|
hl.window_rule {
|
||||||
name = "webcam-overlay",
|
name = 'webcam-overlay',
|
||||||
float = true,
|
float = true,
|
||||||
pin = true,
|
pin = true,
|
||||||
no_initial_focus = true,
|
no_initial_focus = true,
|
||||||
no_dim = true,
|
no_dim = true,
|
||||||
size = { 320, 180 },
|
size = { 320, 180 },
|
||||||
move = { "(monitor_w-360)", "(monitor_h-220)" },
|
move = { '(monitor_w-360)', '(monitor_h-220)' },
|
||||||
match = {
|
match = {
|
||||||
title = "WebcamOverlay",
|
title = 'WebcamOverlay',
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
|
||||||
|
|||||||
+208
-149
@@ -2,7 +2,7 @@
|
|||||||
-- Media
|
-- Media
|
||||||
-- ==========================
|
-- ==========================
|
||||||
-- Only display the OSD on the currently focused monitor
|
-- Only display the OSD on the currently focused monitor
|
||||||
local osdclient = "swayosd-client --monitor \"$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')\""
|
local osdclient = 'swayosd-client --monitor "$(hyprctl monitors -j | jq -r \'.[] | select(.focused == true).name\')"'
|
||||||
|
|
||||||
local exec = hl.dsp.exec_cmd
|
local exec = hl.dsp.exec_cmd
|
||||||
local shortcut = hl.dsp.send_shortcut
|
local shortcut = hl.dsp.send_shortcut
|
||||||
@@ -25,189 +25,256 @@ local function bindlr(key, cmd, desc, opts)
|
|||||||
bindl(key, cmd, desc, opts)
|
bindl(key, cmd, desc, opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function notify(text)
|
||||||
|
hl.notification.create { text = text, duration = 2000 }
|
||||||
|
end
|
||||||
|
|
||||||
-- Laptop multimedia keys for volume and LCD brightness (with OSD)
|
-- Laptop multimedia keys for volume and LCD brightness (with OSD)
|
||||||
bindlr("XF86AudioRaiseVolume", exec(osdclient .. " --output-volume raise"), "Volume up")
|
bindlr('XF86AudioRaiseVolume', exec(osdclient .. ' --output-volume raise'), 'Volume up')
|
||||||
bindlr("XF86AudioRaiseVolume", exec(osdclient .. " --output-volume raise"), "Volume up")
|
bindlr('XF86AudioRaiseVolume', exec(osdclient .. ' --output-volume raise'), 'Volume up')
|
||||||
bindlr("XF86AudioLowerVolume", exec(osdclient .. " --output-volume lower"), "Volume down")
|
bindlr('XF86AudioLowerVolume', exec(osdclient .. ' --output-volume lower'), 'Volume down')
|
||||||
bindlr("XF86AudioMute", exec(osdclient .. " --output-volume mute-toggle"), "Mute")
|
bindlr('XF86AudioMute', exec(osdclient .. ' --output-volume mute-toggle'), 'Mute')
|
||||||
bindlr("XF86AudioMicMute", exec(osdclient .. " --input-volume mute-toggle"), "Mute microphone")
|
bindlr('XF86AudioMicMute', exec(osdclient .. ' --input-volume mute-toggle'), 'Mute microphone')
|
||||||
bindlr("XF86MonBrightnessUp", exec("station-brightness-display +5%"), "Brightness up")
|
bindlr('XF86MonBrightnessUp', exec 'station-brightness-display +5%', 'Brightness up')
|
||||||
bindlr("XF86MonBrightnessDown", exec("station-brightness-display 5%-"), "Brightness down")
|
bindlr('XF86MonBrightnessDown', exec 'station-brightness-display 5%-', 'Brightness down')
|
||||||
bindlr("XF86KbdBrightnessUp", exec("station-brightness-keyboard up"), "Keyboard brightness up")
|
bindlr('XF86KbdBrightnessUp', exec 'station-brightness-keyboard up', 'Keyboard brightness up')
|
||||||
bindlr("XF86KbdBrightnessDown", exec("station-brightness-keyboard down"), "Keyboard brightness down")
|
bindlr('XF86KbdBrightnessDown', exec 'station-brightness-keyboard down', 'Keyboard brightness down')
|
||||||
bindl("XF86KbdLightOnOff", exec("station-brightness-keyboard cycle"), "Keyboard backlight cycle")
|
bindl('XF86KbdLightOnOff', exec 'station-brightness-keyboard cycle', 'Keyboard backlight cycle')
|
||||||
|
|
||||||
-- Precise 1% multimedia adjustments with Alt modifier
|
-- Precise 1% multimedia adjustments with Alt modifier
|
||||||
bindlr("ALT + XF86AudioRaiseVolume", exec("$osdclient --output-volume +1"), "Volume up precise")
|
bindlr('ALT + XF86AudioRaiseVolume', exec '$osdclient --output-volume +1', 'Volume up precise')
|
||||||
bindlr("ALT + XF86AudioLowerVolume", exec("$osdclient --output-volume -1"), "Volume down precise")
|
bindlr('ALT + XF86AudioLowerVolume', exec '$osdclient --output-volume -1', 'Volume down precise')
|
||||||
bindlr("ALT + XF86MonBrightnessUp", exec("station-brightness-display +1%"), "Brightness up precise")
|
bindlr('ALT + XF86MonBrightnessUp', exec 'station-brightness-display +1%', 'Brightness up precise')
|
||||||
bindlr("ALT + XF86MonBrightnessDown", exec("station-brightness-display 1%-"), "Brightness down precise")
|
bindlr('ALT + XF86MonBrightnessDown', exec 'station-brightness-display 1%-', 'Brightness down precise')
|
||||||
|
|
||||||
-- Requires playerctl
|
-- Requires playerctl
|
||||||
bindl("XF86AudioNext", exec(osdclient .. " --playerctl next"), "Next track")
|
bindl('XF86AudioNext', exec(osdclient .. ' --playerctl next'), 'Next track')
|
||||||
bindl("XF86AudioPause", exec(osdclient .. " --playerctl play-pause"), "Pause")
|
bindl('XF86AudioPause', exec(osdclient .. ' --playerctl play-pause'), 'Pause')
|
||||||
bindl("XF86AudioPlay", exec(osdclient .. " --playerctl play-pause"), "Play")
|
bindl('XF86AudioPlay', exec(osdclient .. ' --playerctl play-pause'), 'Play')
|
||||||
bindl("XF86AudioPrev", exec(osdclient .. " --playerctl previous"), "Previous track")
|
bindl('XF86AudioPrev', exec(osdclient .. ' --playerctl previous'), 'Previous track')
|
||||||
|
|
||||||
-- Switch audio output with Super + Mute
|
-- Switch audio output with Super + Mute
|
||||||
bindl("SUPER + XF86AudioMute", exec("station-cmd-audio-switch"), "Switch audio output")
|
bindl('SUPER + XF86AudioMute', exec 'station-cmd-audio-switch', 'Switch audio output')
|
||||||
|
|
||||||
-- ==========================
|
-- ==========================
|
||||||
-- Copy & Paste
|
-- Copy & Paste
|
||||||
-- ==========================
|
-- ==========================
|
||||||
bind("SUPER + C", shortcut({ mods = "CTRL", key = "Insert" }), "Universal copy")
|
bind('SUPER + C', shortcut { mods = 'CTRL', key = 'Insert' }, 'Universal copy')
|
||||||
bind("SUPER + V", shortcut({ mods = "SHIFT", key = "Insert" }), "Universal paste")
|
bind('SUPER + V', shortcut { mods = 'SHIFT', key = 'Insert' }, 'Universal paste')
|
||||||
bind("SUPER + X", shortcut({ mods = "CRTL", key = "X" }), "Universal cut")
|
bind('SUPER + X', shortcut { mods = 'CRTL', key = 'X' }, 'Universal cut')
|
||||||
bind("SUPER + A", shortcut({ mods = "CTRL", key = "A" }), "Universal cut")
|
bind('SUPER + A', shortcut { mods = 'CTRL', key = 'A' }, 'Universal cut')
|
||||||
bind("SUPER + CTRL + V", exec("station-launch-walker -m clipboard"), "Clipboard manager")
|
bind('SUPER + CTRL + V', exec 'station-launch-walker -m clipboard', 'Clipboard manager')
|
||||||
|
|
||||||
-- Close windows
|
-- Close windows
|
||||||
bind("SUPER + Q", hl.dsp.window.close(), "Close window")
|
bind('SUPER + Q', hl.dsp.window.close(), 'Close window')
|
||||||
|
|
||||||
-- ==========================
|
-- ==========================
|
||||||
-- Tiling
|
-- Tiling
|
||||||
-- ==========================
|
-- ==========================
|
||||||
bind("SUPER + P", hl.dsp.window.pseudo()--[[# dwindle]], "Pseudo window")
|
bind('SUPER + P', hl.dsp.window.pseudo()--[[# dwindle]], 'Pseudo window')
|
||||||
bind("SUPER + F", hl.dsp.window.fullscreen(0), "Full screen")
|
bind('SUPER + F', hl.dsp.window.fullscreen(0), 'Full screen')
|
||||||
bind("SUPER + CTRL + F", hl.dsp.window.fullscreen(1), "Full width")
|
bind('SUPER + CTRL + F', hl.dsp.window.fullscreen(1), 'Full width')
|
||||||
bind("SUPER + T", exec("station-hyprland-window-pop"), "Pop window out (float & pin)")
|
bind('SUPER + T', function()
|
||||||
bind("SUPER + CTRL + L", exec("station-hyprland-workspace-layout-toggle"), "Toggle workspace layout")
|
local width = 1300
|
||||||
|
local height = 900
|
||||||
|
local pinned = hl.get_active_window().pinned
|
||||||
|
|
||||||
|
if pinned then
|
||||||
|
hl.dispatch(hl.dsp.window.pin())
|
||||||
|
hl.dispatch(hl.dsp.window.float { action = 'toggle' })
|
||||||
|
hl.dispatch(hl.dsp.window.tag { tag = '-pop' })
|
||||||
|
else
|
||||||
|
hl.dispatch(hl.dsp.window.float { action = 'toggle' })
|
||||||
|
hl.dispatch(hl.dsp.window.resize { x = width, y = height })
|
||||||
|
hl.dispatch(hl.dsp.window.center())
|
||||||
|
hl.dispatch(hl.dsp.window.pin())
|
||||||
|
hl.dispatch(hl.dsp.window.alter_zorder { mode = 'top' })
|
||||||
|
hl.dispatch(hl.dsp.window.tag { tag = '+pop' })
|
||||||
|
end
|
||||||
|
end, 'Pop window out (float & pin)')
|
||||||
|
bind('SUPER + CTRL + L', function()
|
||||||
|
local layouts = { 'dwindle', 'scrolling', 'monocle', 'master' }
|
||||||
|
local workspace = hl.get_active_workspace()
|
||||||
|
if hl.get_active_special_workspace() then
|
||||||
|
workspace = hl.get_active_special_workspace()
|
||||||
|
end
|
||||||
|
|
||||||
|
local next_layout = 'dwindle'
|
||||||
|
|
||||||
|
if not workspace then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for i = 1, #layouts do
|
||||||
|
if layouts[i] == workspace.tiled_layout then
|
||||||
|
local next_layout_idx = (i % #layouts) + 1
|
||||||
|
next_layout = layouts[next_layout_idx]
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if workspace.special then
|
||||||
|
hl.workspace_rule { workspace = tostring(workspace.name), layout = next_layout }
|
||||||
|
else
|
||||||
|
hl.workspace_rule { workspace = tostring(workspace.id), layout = next_layout }
|
||||||
|
end
|
||||||
|
|
||||||
|
notify(' Workspace layout set to ' .. next_layout)
|
||||||
|
end, 'Toggle workspace layout')
|
||||||
|
|
||||||
-- Move focus with SUPER + arrow keys
|
-- Move focus with SUPER + arrow keys
|
||||||
bind("SUPER + H", hl.dsp.focus({ direction = "left" }), "Move window focus left")
|
bind('SUPER + H', hl.dsp.focus { direction = 'left' }, 'Move window focus left')
|
||||||
bind("SUPER + L", hl.dsp.focus({ direction = "right" }), "Move window focus right")
|
bind('SUPER + L', hl.dsp.focus { direction = 'right' }, 'Move window focus right')
|
||||||
bind("SUPER + K", hl.dsp.focus({ direction = "up" }), "Move window focus up")
|
bind('SUPER + K', hl.dsp.focus { direction = 'up' }, 'Move window focus up')
|
||||||
bind("SUPER + J", hl.dsp.focus({ direction = "down" }), "Move window focus down")
|
bind('SUPER + J', hl.dsp.focus { direction = 'down' }, 'Move window focus down')
|
||||||
bind("SUPER + SHIFT + H", hl.dsp.window.move({ direction = "left" }), "Move window left")
|
bind('SUPER + SHIFT + H', hl.dsp.window.move { direction = 'left' }, 'Move window left')
|
||||||
bind("SUPER + SHIFT + L", hl.dsp.window.move({ direction = "right" }), "Move window right")
|
bind('SUPER + SHIFT + L', hl.dsp.window.move { direction = 'right' }, 'Move window right')
|
||||||
bind("SUPER + SHIFT + K", hl.dsp.window.move({ direction = "up" }), "Move window up")
|
bind('SUPER + SHIFT + K', hl.dsp.window.move { direction = 'up' }, 'Move window up')
|
||||||
bind("SUPER + SHIFT + J", hl.dsp.window.move({ direction = "down" }), "Move window down")
|
bind('SUPER + SHIFT + J', hl.dsp.window.move { direction = 'down' }, 'Move window down')
|
||||||
|
|
||||||
-- Control scratchpad
|
-- Control scratchpad
|
||||||
bind("SUPER + S", hl.dsp.workspace.toggle_special("scratchpad"), "Toggle scratchpad")
|
bind('SUPER + S', hl.dsp.workspace.toggle_special 'scratchpad', 'Toggle scratchpad')
|
||||||
bind("SUPER + ALT + S", hl.dsp.window.move({ workspace = "special:scratchpad" }), "Move window to scratchpad")
|
bind('SUPER + ALT + S', hl.dsp.window.move { workspace = 'special:scratchpad' }, 'Move window to scratchpad')
|
||||||
|
bind('SUPER + N', function()
|
||||||
|
hl.dispatch(hl.dsp.workspace.toggle_special 'prod')
|
||||||
|
local windows = hl.get_windows { workspace = 'special:prod' }
|
||||||
|
if #windows == 0 then
|
||||||
|
hl.exec_cmd 'station-launch-or-focus ^superProductivity$ "uwsm-app -- super-productivity"'
|
||||||
|
hl.exec_cmd 'uwsm-app -- xdg-terminal-exec --app-id=org.station.notes nvim ~/Tower/Documents/Notes'
|
||||||
|
end
|
||||||
|
end, 'Toggle productivity workspace')
|
||||||
|
bind('SUPER + M', function()
|
||||||
|
hl.dispatch(hl.dsp.workspace.toggle_special 'music')
|
||||||
|
local windows = hl.get_windows { workspace = 'special:music' }
|
||||||
|
if #windows == 0 then
|
||||||
|
hl.exec_cmd 'station-launch-or-focus spotify'
|
||||||
|
hl.exec_cmd 'station-launch-or-focus psysonic'
|
||||||
|
end
|
||||||
|
end, 'Toggle music workspace')
|
||||||
|
bind('SUPER + D', function()
|
||||||
|
hl.dispatch(hl.dsp.workspace.toggle_special 'comms')
|
||||||
|
local windows = hl.get_windows { workspace = 'special:comms' }
|
||||||
|
if #windows == 0 then
|
||||||
|
hl.exec_cmd 'station-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"'
|
||||||
|
hl.exec_cmd 'station-launch-or-focus ^chrome-web.whatsapp.com__-Default$ "station-launch-webapp https://web.whatsapp.com"'
|
||||||
|
hl.exec_cmd 'station-launch-or-focus ^chrome-discord.com__channels_@me-Default$ "station-launch-webapp https://discord.com/channels/@me"'
|
||||||
|
end
|
||||||
|
end, 'Toggle comms workspace')
|
||||||
|
|
||||||
-- Cycle through applications on active workspace
|
-- Cycle through applications on active workspace
|
||||||
bind("SUPER + TAB", hl.dsp.window.cycle_next({ next = true }), "Cycle to next window")
|
bind('SUPER + TAB', hl.dsp.window.cycle_next { next = true }, 'Cycle to next window')
|
||||||
bind("SUPER + SHIFT + TAB", hl.dsp.window.cycle_next({ next = false }), "Cycle to prev window")
|
bind('SUPER + SHIFT + TAB', hl.dsp.window.cycle_next { next = false }, 'Cycle to prev window')
|
||||||
-- bind("SUPER + TAB", /*bringactivetotop*/, "Reveal active window on top")
|
-- bind("SUPER + TAB", /*bringactivetotop*/, "Reveal active window on top")
|
||||||
-- bind("SUPER SHIFT + TAB", /*bringactivetotop*/, "Reveal active window on top")
|
-- bind("SUPER SHIFT + TAB", /*bringactivetotop*/, "Reveal active window on top")
|
||||||
|
|
||||||
-- Resize active window
|
-- Resize active window
|
||||||
bind("SUPER + code:20", hl.dsp.window.resize({ x = -100, y = 0 }), "Expand window left")
|
bind('SUPER + code:20', hl.dsp.window.resize { x = -100, y = 0 }, 'Expand window left')
|
||||||
bind("SUPER + code:21", hl.dsp.window.resize({ x = 100, y = 0 }), "Shrink window left")
|
bind('SUPER + code:21', hl.dsp.window.resize { x = 100, y = 0 }, 'Shrink window left')
|
||||||
bind("SUPER + SHIFT + code:20", hl.dsp.window.resize({ x = 0, y = -100 }), "Shrink window up")
|
bind('SUPER + SHIFT + code:20', hl.dsp.window.resize { x = 0, y = -100 }, 'Shrink window up')
|
||||||
bind("SUPER + SHIFT + code:21", hl.dsp.window.resize({ x = 0, y = 100 }), "Expand window down")
|
bind('SUPER + SHIFT + code:21', hl.dsp.window.resize { x = 0, y = 100 }, 'Expand window down')
|
||||||
|
|
||||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
bind("SUPER + mouse:272", hl.dsp.window.drag(), "Move window", { mouse = true })
|
bind('SUPER + mouse:272', hl.dsp.window.drag(), 'Move window', { mouse = true })
|
||||||
bind("SUPER + mouse:273", hl.dsp.window.resize(), "Resize window", { mouse = true })
|
bind('SUPER + mouse:273', hl.dsp.window.resize(), 'Resize window', { mouse = true })
|
||||||
|
|
||||||
-- Toggle current window to be a group or stack in other window manager lingo
|
-- Toggle current window to be a group or stack in other window manager lingo
|
||||||
bind("SUPER + G", hl.dsp.group.toggle(), "Toggle window to a group")
|
bind('SUPER + G', hl.dsp.group.toggle(), 'Toggle window to a group')
|
||||||
|
|
||||||
-- Move to the next tab group window
|
-- Move to the next tab group window
|
||||||
bind("SUPER + bracketleft", hl.dsp.group.prev(), "Move to previous window in the group")
|
bind('SUPER + bracketleft', hl.dsp.group.prev(), 'Move to previous window in the group')
|
||||||
bind("SUPER + bracketright", hl.dsp.group.next(), "Move to next window in the group")
|
bind('SUPER + bracketright', hl.dsp.group.next(), 'Move to next window in the group')
|
||||||
|
|
||||||
-- Move current window in the tab group
|
-- Move current window in the tab group
|
||||||
bind("SUPER + SHIFT + bracketleft", hl.dsp.group.move_window({ direction = "left" }), "Move window left in group")
|
bind('SUPER + SHIFT + bracketleft', hl.dsp.group.move_window { direction = 'left' }, 'Move window left in group')
|
||||||
bind("SUPER + SHIFT + bracketright", hl.dsp.group.move_window({ direction = "right" }), "Move window right in group")
|
bind('SUPER + SHIFT + bracketright', hl.dsp.group.move_window { direction = 'right' }, 'Move window right in group')
|
||||||
|
|
||||||
-- Move current window out of the tab group
|
-- Move current window out of the tab group
|
||||||
bind("SUPER + CTRL + bracketleft", hl.dsp.window.move({ out_of_group = "left" }), "Move window out of group left")
|
bind('SUPER + CTRL + bracketleft', hl.dsp.window.move { out_of_group = 'left' }, 'Move window out of group left')
|
||||||
bind("SUPER + CTRL + bracketright", hl.dsp.window.move({ out_of_group = "right" }), "Move window out of group right")
|
bind('SUPER + CTRL + bracketright', hl.dsp.window.move { out_of_group = 'right' }, 'Move window out of group right')
|
||||||
|
|
||||||
-- Move current window into an existing tab group or create a new one
|
-- Move current window into an existing tab group or create a new one
|
||||||
bind(
|
bind('SUPER + SHIFT + CTRL + bracketleft', hl.dsp.window.move { into_or_create_group = 'left' }, 'Move window into group left')
|
||||||
"SUPER + SHIFT + CTRL + bracketleft",
|
bind('SUPER + SHIFT + CTRL + bracketright', hl.dsp.window.move { into_or_create_group = 'right' }, 'Move window into group right')
|
||||||
hl.dsp.window.move({ into_or_create_group = "left" }),
|
|
||||||
"Move window into group left"
|
|
||||||
)
|
|
||||||
bind(
|
|
||||||
"SUPER + SHIFT + CTRL + bracketright",
|
|
||||||
hl.dsp.window.move({ into_or_create_group = "right" }),
|
|
||||||
"Move window into group right"
|
|
||||||
)
|
|
||||||
|
|
||||||
-- ==========================
|
-- ==========================
|
||||||
-- Utilities
|
-- Utilities
|
||||||
-- ==========================
|
-- ==========================
|
||||||
-- Menus
|
-- Menus
|
||||||
bind("SUPER + SPACE", exec("station-launch-walker"), "Launch apps")
|
bind('SUPER + SPACE', exec 'station-launch-walker', 'Launch apps')
|
||||||
bind("SUPER + CTRL + E", exec("station-launch-walker -m symbols"), "Emoji picker")
|
bind('SUPER + CTRL + E', exec 'station-launch-walker -m symbols', 'Emoji picker')
|
||||||
bind("SUPER + CTRL + C", exec("station-menu capture"), "Capture menu")
|
bind('SUPER + CTRL + C', exec 'station-menu capture', 'Capture menu')
|
||||||
bind("SUPER + CTRL + O", exec("station-menu toggle"), "Toggle menu")
|
bind('SUPER + CTRL + O', exec 'station-menu toggle', 'Toggle menu')
|
||||||
bind("SUPER + ALT + SPACE", exec("station-menu"), "Station menu")
|
bind('SUPER + ALT + SPACE', exec 'station-menu', 'Station menu')
|
||||||
bind("SUPER + ESCAPE", exec("station-menu system"), "System menu")
|
bind('SUPER + ESCAPE', exec 'station-menu system', 'System menu')
|
||||||
bindl("XF86PowerOff", exec("station-menu system"), "Power menu")
|
bindl('XF86PowerOff', exec 'station-menu system', 'Power menu')
|
||||||
bind("SUPER + K", exec("station-menu-keybindings"), "Show key bindings")
|
bind('SUPER + K', exec 'station-menu-keybindings', 'Show key bindings')
|
||||||
bind("XF86Calculator", exec("gnome-calculator"), "Calculator")
|
bind('XF86Calculator', exec 'gnome-calculator', 'Calculator')
|
||||||
|
|
||||||
-- Aesthetics
|
-- Aesthetics
|
||||||
bind("SUPER + SHIFT + SPACE", exec("station-toggle-waybar"), "Toggle top bar")
|
bind('SUPER + SHIFT + SPACE', exec 'station-toggle-waybar', 'Toggle top bar')
|
||||||
bind("SUPER + CTRL + SPACE", exec("station-menu background"), "Theme background menu")
|
bind('SUPER + CTRL + SPACE', exec 'station-menu background', 'Theme background menu')
|
||||||
-- bind("SUPER SHIFT CTRL + SPACE", exec("station-menu theme"), "Theme menu")
|
-- bind("SUPER SHIFT CTRL + SPACE", exec("station-menu theme"), "Theme menu")
|
||||||
bind(
|
bind('SUPER + BACKSPACE', exec 'hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r \'.address\')" opaque toggle', 'Toggle window transparency')
|
||||||
"SUPER + BACKSPACE",
|
bind('SUPER + SHIFT + BACKSPACE', function()
|
||||||
exec("hyprctl dispatch setprop \"address:$(hyprctl activewindow -j | jq -r '.address')\" opaque toggle"),
|
local gaps = hl.get_config 'general.gaps_out'
|
||||||
"Toggle window transparency"
|
if gaps.top == 0 then
|
||||||
)
|
hl.config {
|
||||||
bind("SUPER + SHIFT + BACKSPACE", exec("station-hyprland-window-gaps-toggle"), "Toggle window gaps")
|
general = {
|
||||||
bind(
|
gaps_out = 10,
|
||||||
"SUPER + CTRL + Backspace",
|
gaps_in = 5,
|
||||||
exec("station-hyprland-window-single-square-aspect-toggle"),
|
border_size = 2,
|
||||||
"Toggle single-window square aspect"
|
},
|
||||||
)
|
}
|
||||||
|
else
|
||||||
|
hl.config {
|
||||||
|
general = {
|
||||||
|
gaps_out = 0,
|
||||||
|
gaps_in = 0,
|
||||||
|
border_size = 0,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end, 'Toggle window gaps')
|
||||||
|
|
||||||
-- Notifications
|
-- Notifications
|
||||||
bind("SUPER + COMMA", exec("makoctl dismiss"), "Dismiss last notification")
|
bind('SUPER + COMMA', exec 'makoctl dismiss', 'Dismiss last notification')
|
||||||
bind("SUPER + SHIFT + COMMA", exec("makoctl dismiss --all"), "Dismiss all notifications")
|
bind('SUPER + SHIFT + COMMA', exec 'makoctl dismiss --all', 'Dismiss all notifications')
|
||||||
bind("SUPER + CTRL + COMMA", exec("station-toggle-notification-silencing"), "Toggle silencing notifications")
|
bind('SUPER + CTRL + COMMA', exec 'station-toggle-notification-silencing', 'Toggle silencing notifications')
|
||||||
bind("SUPER + ALT + COMMA", exec("makoctl invoke"), "Invoke last notification")
|
bind('SUPER + ALT + COMMA', exec 'makoctl invoke', 'Invoke last notification')
|
||||||
bind("SUPER + SHIFT + ALT + COMMA", exec("makoctl restore"), "Restore last notification")
|
bind('SUPER + SHIFT + ALT + COMMA', exec 'makoctl restore', 'Restore last notification')
|
||||||
|
|
||||||
-- Toggles
|
-- Toggles
|
||||||
bind("SUPER + CTRL + I", exec("station-toggle-idle"), "Toggle locking on idle")
|
bind('SUPER + CTRL + I', exec 'station-toggle-idle', 'Toggle locking on idle')
|
||||||
bind("SUPER + CTRL + N", exec("station-toggle-nightlight"), "Toggle nightlight")
|
bind('SUPER + CTRL + N', exec 'station-toggle-nightlight', 'Toggle nightlight')
|
||||||
|
|
||||||
-- Captures
|
-- Captures
|
||||||
bind("PRINT", exec("station-cmd-screenshot"), "Screenshot")
|
bind('PRINT', exec 'station-cmd-screenshot', 'Screenshot')
|
||||||
bind("ALT + PRINT", exec("station-menu screenrecord"), "Screenrecording")
|
bind('ALT + PRINT', exec 'station-menu screenrecord', 'Screenrecording')
|
||||||
bind("SUPER + PRINT", exec("pkill hyprpicker || hyprpicker -a"), "Color picker")
|
bind('SUPER + PRINT', exec 'pkill hyprpicker || hyprpicker -a', 'Color picker')
|
||||||
|
|
||||||
-- File sharing
|
-- File sharing
|
||||||
-- bind("SUPER CTRL + S", exec("station-menu share"), "Share")
|
-- bind("SUPER CTRL + S", exec("station-menu share"), "Share")
|
||||||
|
|
||||||
-- Waybar-less information
|
-- Waybar-less information
|
||||||
bind("SUPER + CTRL + ALT + T", exec('notify-send " $(date +"%A %H:%M — %d %B W%V %Y")"'), "Show time")
|
bind('SUPER + CTRL + ALT + T', exec 'notify " $(date +"%A %H:%M — %d %B W%V %Y")"', 'Show time')
|
||||||
bind(
|
bind('SUPER + CTRL + ALT + B', exec 'notify-send " Battery is at $(station-battery-remaining)%"', 'Show battery remaining')
|
||||||
"SUPER + CTRL + ALT + B",
|
bind('SUPER + CTRL + ALT + W', function()
|
||||||
exec('notify-send " Battery is at $(station-battery-remaining)%"'),
|
local window = hl.get_active_window()
|
||||||
"Show battery remaining"
|
notify('Window: ' .. window.title .. '\nClass: ' .. window.class)
|
||||||
)
|
end, 'Show active window name and class')
|
||||||
bind(
|
|
||||||
"SUPER + CTRL + ALT + W",
|
|
||||||
exec('notify-send "$(hyprctl activewindow -j | jq -r \'"Window: (.title)\nClass: (.class)"\')"'),
|
|
||||||
"Show active window name and class"
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Control panels
|
-- Control panels
|
||||||
bind("SUPER + CTRL + A", exec("station-launch-audio"), "Audio controls")
|
bind('SUPER + CTRL + A', exec 'station-launch-audio', 'Audio controls')
|
||||||
bind("SUPER + CTRL + B", exec("station-launch-bluetooth"), "Bluetooth controls")
|
bind('SUPER + CTRL + B', exec 'station-launch-bluetooth', 'Bluetooth controls')
|
||||||
bind("SUPER + CTRL + W", exec("station-launch-wifi"), "Wifi controls")
|
bind('SUPER + CTRL + W', exec 'station-launch-wifi', 'Wifi controls')
|
||||||
bind("SUPER + CTRL + T", exec("station-launch-tui btop"), "Activity")
|
bind('SUPER + CTRL + T', exec 'station-launch-tui btop', 'Activity')
|
||||||
|
|
||||||
-- Dictation
|
-- Dictation
|
||||||
-- bind("SUPER CTRL + X", exec("voxtype record toggle"), "Toggle dictation")
|
-- bind("SUPER CTRL + X", exec("voxtype record toggle"), "Toggle dictation")
|
||||||
|
|
||||||
-- Zoom
|
-- Zoom
|
||||||
bind(
|
bind('SUPER + CTRL + Z', exec "hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1')", 'Zoom in')
|
||||||
"SUPER + CTRL + Z",
|
bind('SUPER + CTRL + ALT + Z', exec 'hyprctl keyword cursor:zoom_factor 1', 'Reset zoom')
|
||||||
exec("hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1')"),
|
|
||||||
"Zoom in"
|
|
||||||
)
|
|
||||||
bind("SUPER + CTRL + ALT + Z", exec("hyprctl keyword cursor:zoom_factor 1"), "Reset zoom")
|
|
||||||
|
|
||||||
-- Lock system
|
-- Lock system
|
||||||
-- bind("SUPER CTRL + L", exec("station-lock-screen"), "Lock system")
|
-- bind("SUPER CTRL + L", exec("station-lock-screen"), "Lock system")
|
||||||
@@ -215,41 +282,33 @@ bind("SUPER + CTRL + ALT + Z", exec("hyprctl keyword cursor:zoom_factor 1"), "Re
|
|||||||
-- ==========================
|
-- ==========================
|
||||||
-- Applications
|
-- Applications
|
||||||
-- ==========================
|
-- ==========================
|
||||||
bind("SUPER + RETURN", exec("uwsm-app -- xdg-terminal-exec"), "Terminal")
|
bind('SUPER + RETURN', exec 'uwsm-app -- xdg-terminal-exec', 'Terminal')
|
||||||
bind("SUPER + ALT + RETURN", exec('uwsm-app -- xdg-terminal-exec --dir="$(station-cmd-terminal-cwd)" tmux new'), "Tmux")
|
bind('SUPER + ALT + RETURN', exec 'uwsm-app -- xdg-terminal-exec --dir="$(station-cmd-terminal-cwd)" tmux new', 'Tmux')
|
||||||
bind("SUPER + SHIFT + F", exec("uwsm-app -- nautilus --new-window"), "File manager")
|
bind('SUPER + SHIFT + F', exec 'uwsm-app -- nautilus --new-window', 'File manager')
|
||||||
bind(
|
bind('SUPER + ALT + SHIFT + F', exec 'uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)"', 'File manager (cwd)')
|
||||||
"SUPER + ALT + SHIFT + F",
|
bind('SUPER + SHIFT + B', exec 'station-launch-browser', 'Browser')
|
||||||
exec('uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)"'),
|
bind('SUPER + SHIFT + ALT + B', exec 'station-launch-browser --private', 'Browser (private)')
|
||||||
"File manager (cwd)"
|
bind('SUPER + SHIFT + S', exec 'station-launch-or-focus spotify', 'Spotify')
|
||||||
)
|
bind('SUPER + SHIFT + M', exec 'station-launch-or-focus psysonic', 'Music')
|
||||||
bind("SUPER + SHIFT + B", exec("/home/chris/.local/bin/station-launch-browser"), "Browser")
|
|
||||||
bind("SUPER + SHIFT + ALT + B", exec("station-launch-browser --private"), "Browser (private)")
|
|
||||||
bind("SUPER + SHIFT + M", exec("station-launch-or-focus spotify"), "Music")
|
|
||||||
bind("SUPER + SHIFT + N", exec("station-launch-editor"), "Editor")
|
|
||||||
-- bind("SUPER SHIFT + D", exec("station-launch-tui lazydocker"), "Docker")
|
-- bind("SUPER SHIFT + D", exec("station-launch-tui lazydocker"), "Docker")
|
||||||
bind("SUPER + SHIFT + G", exec('station-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"'), "Signal")
|
bind('SUPER + SHIFT + G', exec 'station-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"', 'Signal')
|
||||||
bind(
|
bind('SUPER + SHIFT + D', exec 'station-launch-or-focus ^chrome-discord.com__channels_@me-Default$ "uwsm-app -- discord"', 'Discord')
|
||||||
"SUPER + SHIFT + O",
|
bind('SUPER + SHIFT + W', exec 'station-launch-or-focus ^chrome-web.whatsapp.com__-Default$ "uwsm-app -- whatsapp"', 'Whatsapp')
|
||||||
exec('station-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"'),
|
bind('SUPER + SHIFT + P', exec 'station-launch-or-focus ^superProductivity$ "uwsm-app -- super-productivity"', 'Super Productivity')
|
||||||
"Obsidian"
|
bind('SUPER + SHIFT + N', exec 'uwsm-app -- xdg-terminal-exec --app-id=org.station.notes nvim ~/Tower/Documents/Notes', 'Editor')
|
||||||
)
|
|
||||||
-- bind("SUPER SHIFT + W", exec("uwsm-app -- typora --enable-wayland-ime"), "Typora")
|
-- bind("SUPER SHIFT + W", exec("uwsm-app -- typora --enable-wayland-ime"), "Typora")
|
||||||
bind("SUPER + SHIFT + SLASH", exec("Enpass showassistant"), "Passwords")
|
bind('SUPER + SHIFT + SLASH', exec 'Enpass showassistant', 'Passwords')
|
||||||
bind("SUPER + SHIFT + E", exec("station-launch-or-focus mailspring"), "Email")
|
bind('SUPER + SHIFT + E', exec 'station-launch-or-focus mailspring', 'Email')
|
||||||
|
|
||||||
bind("SUPER + SHIFT + A", exec('station-launch-webapp "https://gemini.google.com/app"'), "ChatGPT")
|
bind('SUPER + SHIFT + A', exec 'station-launch-webapp "https://gemini.google.com/app"', 'ChatGPT')
|
||||||
bind("SUPER + SHIFT + C", exec('station-launch-webapp "https://tower.scarif.space/apps/calendar"'), "Calendar")
|
bind('SUPER + SHIFT + C', exec 'station-launch-webapp "https://tower.scarif.space/apps/calendar"', 'Calendar')
|
||||||
bind("SUPER + SHIFT + Y", exec('station-launch-or-focus-webapp "YouTube" "https://youtube.com/"'), "YouTube")
|
bind('SUPER + SHIFT + Y', exec 'station-launch-or-focus-webapp "YouTube" "https://youtube.com/"', 'YouTube')
|
||||||
bind("SUPER + SHIFT + ALT + G", exec('station-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"'), "WhatsApp")
|
bind('SUPER + SHIFT + ALT + G', exec 'station-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"', 'WhatsApp')
|
||||||
bind(
|
bind('SUPER + SHIFT + CTRL + G', exec 'station-launch-or-focus-webapp "Google Maps" "https://maps.google.com"', 'Google Maps')
|
||||||
"SUPER + SHIFT + CTRL + G",
|
|
||||||
exec('station-launch-or-focus-webapp "Google Maps" "https://maps.google.com"'),
|
|
||||||
"Google Maps"
|
|
||||||
)
|
|
||||||
-- bind("SUPER SHIFT + P", exec("station-launch-or-focus-webapp "Google Photos" "https://photos.google.com/""), "Google Photos")
|
-- bind("SUPER SHIFT + P", exec("station-launch-or-focus-webapp "Google Photos" "https://photos.google.com/""), "Google Photos")
|
||||||
-- bind("SUPER SHIFT + X", exec("station-launch-webapp "https://x.com/""), "X")
|
-- bind("SUPER SHIFT + X", exec("station-launch-webapp "https://x.com/""), "X")
|
||||||
-- bind("SUPER SHIFT ALT + X", exec("station-launch-webapp "https://x.com/compose/post""), "X Post")
|
-- bind("SUPER SHIFT ALT + X", exec("station-launch-webapp "https://x.com/compose/post""), "X Post")
|
||||||
|
|
||||||
-- Add extra bindings
|
-- Add extra bindings
|
||||||
bind("SUPER + SHIFT + R", exec("ghostty -e ssh scarif"), "SSH to scarif")
|
bind('SUPER + SHIFT + R', exec 'ghostty -e ssh scarif', 'SSH to scarif')
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
require("autostart")
|
require("autostart")
|
||||||
|
require("workspaces")
|
||||||
require("bindings")
|
require("bindings")
|
||||||
require("envs")
|
require("envs")
|
||||||
require("looknfeel")
|
require("looknfeel")
|
||||||
require("input")
|
require("input")
|
||||||
require("windows")
|
require("windows")
|
||||||
require("monitors")
|
require("monitors")
|
||||||
require("workspaces")
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
-- Variables
|
-- Variables
|
||||||
|
|
||||||
local colors = dofile(os.getenv("HOME") .. "/.cache/wal/colors.lua")
|
local colors = dofile(os.getenv("HOME") .. "/.cache/wal/colors-hypr.lua")
|
||||||
|
|
||||||
local activeBorderColor = colors.color14
|
local activeBorderColor = colors.color14
|
||||||
local inactiveBorderColor = colors.background
|
local inactiveBorderColor = colors.background
|
||||||
|
|||||||
+39
-16
@@ -6,31 +6,54 @@ local workspace_map = {
|
|||||||
"Writing",
|
"Writing",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function setup_monitors()
|
||||||
|
local monitors = hl.get_monitors()
|
||||||
|
local monitor_count = #monitors
|
||||||
|
|
||||||
-- Move active window to a workspace with SUPER + SHIFT + [1-5]
|
-- Move active window to a workspace with SUPER + SHIFT + [1-5]
|
||||||
for i = 1, 5 do
|
for i = 1, #workspace_map do
|
||||||
|
for j = monitor_count, 1, -1 do
|
||||||
|
local monitor = monitors[j]
|
||||||
|
-- local workspace_id = "name:" .. workspace_map[i] .. "_" .. j
|
||||||
|
local workspace_id = (i - 1) * monitor_count + j
|
||||||
|
local workspace_name = workspace_map[i] .. "_" .. j
|
||||||
hl.workspace_rule({
|
hl.workspace_rule({
|
||||||
workspace = tostring((i * 2) - 1),
|
-- workspace = (i - 1) * monitor_count + j,
|
||||||
monitor = "DP-1",
|
-- default_name = workspace_name,
|
||||||
})
|
workspace = "name:" .. workspace_name,
|
||||||
hl.workspace_rule({
|
monitor = monitor.name,
|
||||||
workspace = tostring(i * 2),
|
default = i == 1,
|
||||||
monitor = "DP-2",
|
|
||||||
})
|
})
|
||||||
|
|
||||||
hl.bind(
|
hl.bind(
|
||||||
"SUPER + code:1" .. (i - 1),
|
"SUPER + code:1" .. (i - 1),
|
||||||
hl.dsp.focus({ workspace = tostring(i * 2) }),
|
hl.dsp.focus({ workspace = "name:" .. workspace_name }),
|
||||||
{ description = "Switch to workspace " .. workspace_map[i] }
|
{ description = "Switch to workspace " .. workspace_map[i] }
|
||||||
)
|
)
|
||||||
hl.bind(
|
end
|
||||||
"SUPER + code:1" .. (i - 1),
|
|
||||||
hl.dsp.focus({ workspace = tostring((i * 2) - 1) }),
|
|
||||||
{ description = "Switch to workspace" .. i }
|
|
||||||
)
|
|
||||||
|
|
||||||
hl.bind("SUPER + SHIFT + code:1" .. (i - 1), function()
|
hl.bind("SUPER + SHIFT + code:1" .. (i - 1), function()
|
||||||
local active_workspace = hl.get_active_workspace()
|
local active_window = hl.get_active_window()
|
||||||
local new_workspace = (i * 2) - (active_workspace.id % 2)
|
local active_workspace = active_window.workspace
|
||||||
hl.dispatch(hl.dsp.window.move({ workspace = tostring(new_workspace), follow = false }))
|
local active_workspace_name = active_workspace.name
|
||||||
|
local monitor_suffix = active_workspace_name:match("_(%d+)$") or "1"
|
||||||
|
local new_workspace = "name:" .. workspace_map[i] .. "_" .. monitor_suffix
|
||||||
|
-- local new_workspace = (i - 1) * monitor_count + active_workspace.id
|
||||||
|
hl.dispatch(hl.dsp.window.move({ workspace = new_workspace, window = active_window, follow = false }))
|
||||||
end, { description = "Move window to workspace " .. workspace_map[i] })
|
end, { description = "Move window to workspace " .. workspace_map[i] })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- A hack to move to the Home workspace when Hyprland first loads
|
||||||
|
for j = monitor_count, 1, -1 do
|
||||||
|
if hl.get_workspaces()[j].id > 0 and monitor_count == 2 then
|
||||||
|
hl.dispatch(hl.dsp.focus({ workspace = "name:Home_" .. j }))
|
||||||
|
end
|
||||||
|
for k, window in pairs(hl.get_windows({ workspace = j })) do
|
||||||
|
hl.dispatch(hl.dsp.window.move({ window = window, workspace = "name:Home_1", follow = true }))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.on("monitor.added", setup_monitors)
|
||||||
|
hl.on("monitor.removed", setup_monitors)
|
||||||
|
hl.on("config.reloaded", setup_monitors)
|
||||||
|
|||||||
+36
-46
@@ -1,22 +1,4 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"input_combination": [
|
|
||||||
{
|
|
||||||
"type": 1,
|
|
||||||
"code": 29,
|
|
||||||
"origin_hash": "baf704e91c9cdbc75e73e4a3e3f9849b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": 1,
|
|
||||||
"code": 31,
|
|
||||||
"origin_hash": "baf704e91c9cdbc75e73e4a3e3f9849b"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"target_uinput": "keyboard",
|
|
||||||
"output_symbol": "Control_L + l",
|
|
||||||
"name": "K4 (Default: Control_L + s) (New: Control_L t)",
|
|
||||||
"mapping_type": "key_macro"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"input_combination": [
|
"input_combination": [
|
||||||
{
|
{
|
||||||
@@ -36,7 +18,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "Control_L + Shift_L + z",
|
"output_symbol": "KEY_LEFTCTRL + KEY_LEFTSHIFT + KEY_Z",
|
||||||
"name": "K10 (Default: Control_L + Shift_L + z)",
|
"name": "K10 (Default: Control_L + Shift_L + z)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -49,28 +31,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "e",
|
"output_symbol": "KEY_E",
|
||||||
"name": "K9 (Default: space) (New: e)",
|
"name": "K9 (Default: space) (New: e)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"input_combination": [
|
|
||||||
{
|
|
||||||
"type": 1,
|
|
||||||
"code": 29,
|
|
||||||
"origin_hash": "baf704e91c9cdbc75e73e4a3e3f9849b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": 1,
|
|
||||||
"code": 24,
|
|
||||||
"origin_hash": "baf704e91c9cdbc75e73e4a3e3f9849b"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"target_uinput": "keyboard",
|
|
||||||
"output_symbol": "if_eq($wheel, 1, set(wheel, 2), set(wheel, 1))",
|
|
||||||
"name": "K1 (Default: Control_L + o) (New: Toggle wheel)",
|
|
||||||
"mapping_type": "key_macro"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"input_combination": [
|
"input_combination": [
|
||||||
{
|
{
|
||||||
@@ -85,7 +49,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "Control_L + z",
|
"output_symbol": "KEY_LEFTCTRL + KEY_Z",
|
||||||
"name": "K8 (Default: Control_L + z)",
|
"name": "K8 (Default: Control_L + z)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -98,7 +62,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "Shift_L",
|
"output_symbol": "KEY_LEFTSHIFT",
|
||||||
"name": "K5 (Default: Shift_L)",
|
"name": "K5 (Default: Shift_L)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -116,7 +80,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "Control_L + BackSpace",
|
"output_symbol": "KEY_LEFTCTRL + KEY_BACKSPACE",
|
||||||
"name": "K2 (Default: Control_L + n) (New: Control_L + BackSpace)",
|
"name": "K2 (Default: Control_L + n) (New: Control_L + BackSpace)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -134,7 +98,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "if_eq($wheel, 2, modify(Control_L, key(KP_Add)), modify(Control_L, key(bracketright)))",
|
"output_symbol": "if_eq($wheel, 2, modify(KEY_LEFTCTRL, modify(KEY_LEFTSHIFT, key(KEY_EQUAL))), modify(KEY_LEFTCTRL, key(KEY_RIGHTBRACE)))",
|
||||||
"name": "Rotate clockwise (Default: Control_L + KP_Add)",
|
"name": "Rotate clockwise (Default: Control_L + KP_Add)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -152,7 +116,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "if_eq($wheel, 2, modify(Control_L, key(KP_Subtract)), modify(Control_L, key(bracketleft)))",
|
"output_symbol": "if_eq($wheel, 2, modify(KEY_LEFTCTRL, key(KEY_KPMINUS)), modify(KEY_LEFTCTRL, key(KEY_LEFTBRACE)))",
|
||||||
"name": "Rotate anticlockwise (Default: Control_L + KP_Subtract)",
|
"name": "Rotate anticlockwise (Default: Control_L + KP_Subtract)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -165,7 +129,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "b",
|
"output_symbol": "KEY_B",
|
||||||
"name": "K3 (Default: KEY_F5) (New: b)",
|
"name": "K3 (Default: KEY_F5) (New: b)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -178,7 +142,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "Control_L",
|
"output_symbol": "KEY_LEFTCTRL",
|
||||||
"name": "K6 (Default: Control_L)",
|
"name": "K6 (Default: Control_L)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
},
|
},
|
||||||
@@ -191,8 +155,34 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"target_uinput": "keyboard",
|
"target_uinput": "keyboard",
|
||||||
"output_symbol": "Escape",
|
"output_symbol": "KEY_ESC",
|
||||||
"name": "K7 (Default: Alt_L) (New: Escape)",
|
"name": "K7 (Default: Alt_L) (New: Escape)",
|
||||||
"mapping_type": "key_macro"
|
"mapping_type": "key_macro"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input_combination": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"code": 24,
|
||||||
|
"origin_hash": "baf704e91c9cdbc75e73e4a3e3f9849b"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target_uinput": "keyboard",
|
||||||
|
"output_symbol": "if_eq($wheel, 1, set(wheel, 2), set(wheel, 1))",
|
||||||
|
"name": "K1 (Default: Control_L + o) (New: Toggle wheel)",
|
||||||
|
"mapping_type": "key_macro"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input_combination": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"code": 31,
|
||||||
|
"origin_hash": "baf704e91c9cdbc75e73e4a3e3f9849b"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target_uinput": "keyboard",
|
||||||
|
"output_symbol": "KEY_B",
|
||||||
|
"name": "K4 (Default: Control_L + s) (New: Control_L l)",
|
||||||
|
"mapping_type": "key_macro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ add_new_paint_layer=Ctrl+L
|
|||||||
clear=Ctrl+Backspace
|
clear=Ctrl+Backspace
|
||||||
erase_action=;\s
|
erase_action=;\s
|
||||||
eraser_preset_action=E
|
eraser_preset_action=E
|
||||||
|
fill_selection_background_color=none
|
||||||
fill_selection_background_color_opacity=;\s
|
fill_selection_background_color_opacity=;\s
|
||||||
krita_filter_levels=;\s
|
krita_filter_levels=;\s
|
||||||
svg_weight_light=;\s
|
svg_weight_light=;\s
|
||||||
|
|||||||
+1
-1
Submodule .config/nvim updated: 12b0d3d8b8...58753ae801
@@ -126,6 +126,12 @@ function dut() {
|
|||||||
sudo du -hax -t"${threshold}G" /* --exclude=/{proc,sys,dev,run}
|
sudo du -hax -t"${threshold}G" /* --exclude=/{proc,sys,dev,run}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mount_old_roots() {
|
||||||
|
sudo mkdir -p /mnt/btrfs-root
|
||||||
|
sudo mount -t btrfs -o subvolid=5 /dev/nvme0n1p2 /mnt/btrfs-root
|
||||||
|
cd /mnt/btrfs-root/old_roots
|
||||||
|
}
|
||||||
|
|
||||||
function gh() {
|
function gh() {
|
||||||
local -a commands=(
|
local -a commands=(
|
||||||
"Recover deleted file: git checkout HEAD -- <file>"
|
"Recover deleted file: git checkout HEAD -- <file>"
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
cac ${XDG_CACHE_HOME:-$HOME/.cache}
|
cac ${XDG_CACHE_HOME:-$HOME/.cache}
|
||||||
cf ${XDG_CONFIG_HOME:-$HOME/.config}
|
cf ${XDG_CONFIG_HOME:-$HOME/.config}
|
||||||
nv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua
|
nv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua
|
||||||
|
hy ${XDG_CONFIG_HOME:-$HOME/.config}/hypr
|
||||||
|
nx ${XDG_CONFIG_HOME:-$HOME/.config}/nixos
|
||||||
D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads}
|
D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads}
|
||||||
d ${XDG_DOCUMENTS_DIR:-$HOME/Tower/Documents}
|
d ${XDG_DOCUMENTS_DIR:-$HOME/Tower/Documents}
|
||||||
dt ${XDG_DATA_HOME:-$HOME/.local/share}
|
dt ${XDG_DATA_HOME:-$HOME/.local/share}
|
||||||
|
|||||||
@@ -3,9 +3,15 @@
|
|||||||
# profile file. Runs on login. Environmental variables are set here.
|
# profile file. Runs on login. Environmental variables are set here.
|
||||||
|
|
||||||
# Adds `~/.local/bin` to $PATH
|
# Adds `~/.local/bin` to $PATH
|
||||||
|
if [ -n "$ZSH_VERSION" ]; then
|
||||||
export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}:$(yarn global bin):$HOME/.config/composer/vendor/bin"
|
export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}:$(yarn global bin):$HOME/.config/composer/vendor/bin"
|
||||||
|
else
|
||||||
|
# POSIX-compatible fallback
|
||||||
|
LOCAL_BIN_DIRS=$(find ~/.local/bin -type d -printf '%p:' 2>/dev/null)
|
||||||
|
export PATH="$PATH:${LOCAL_BIN_DIRS%:}:$HOME/.config/composer/vendor/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
unsetopt PROMPT_SP
|
[ -n "$ZSH_VERSION" ] && unsetopt PROMPT_SP
|
||||||
|
|
||||||
# Default programs
|
# Default programs
|
||||||
export EDITOR="nvim"
|
export EDITOR="nvim"
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
alias cac="cd /home/chris/.cache && ls" \
|
alias cac="cd /home/chris/.cache && ls" \
|
||||||
cf="cd /home/chris/.config && ls" \
|
cf="cd /home/chris/.config && ls" \
|
||||||
nv="cd /home/chris/.config/nvim/lua && ls" \
|
nv="cd /home/chris/.config/nvim/lua && ls" \
|
||||||
|
hy="cd /home/chris/.config/hypr && ls" \
|
||||||
|
nx="cd /home/chris/.config/nixos && ls" \
|
||||||
D="cd /home/chris/Downloads && ls" \
|
D="cd /home/chris/Downloads && ls" \
|
||||||
d="cd /home/chris/Tower/Documents && ls" \
|
d="cd /home/chris/Tower/Documents && ls" \
|
||||||
dt="cd /home/chris/.local/share && ls" \
|
dt="cd /home/chris/.local/share && ls" \
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
hash -d cac=/home/chris/.cache
|
hash -d cac=/home/chris/.cache
|
||||||
hash -d cf=/home/chris/.config
|
hash -d cf=/home/chris/.config
|
||||||
hash -d nv=/home/chris/.config/nvim/lua
|
hash -d nv=/home/chris/.config/nvim/lua
|
||||||
|
hash -d hy=/home/chris/.config/hypr
|
||||||
|
hash -d nx=/home/chris/.config/nixos
|
||||||
hash -d D=/home/chris/Downloads
|
hash -d D=/home/chris/Downloads
|
||||||
hash -d d=/home/chris/Tower/Documents
|
hash -d d=/home/chris/Tower/Documents
|
||||||
hash -d dt=/home/chris/.local/share
|
hash -d dt=/home/chris/.local/share
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ name: runcats
|
|||||||
root: ~/Code/Sites/runcats/
|
root: ~/Code/Sites/runcats/
|
||||||
on_project_start:
|
on_project_start:
|
||||||
- go-task up
|
- go-task up
|
||||||
- $BROWSER http://dev.runcats.test:8001
|
- $BROWSER http://dev.runcats.test:8001 &> /dev/null &
|
||||||
- $BROWSER http://mail.runcats.test
|
- $BROWSER http://mail.runcats.test &> /dev/null &
|
||||||
on_project_exit: go-task down
|
on_project_exit: go-task down
|
||||||
startup_window: editor
|
startup_window: editor
|
||||||
windows:
|
windows:
|
||||||
|
|||||||
+14
-12
@@ -17,22 +17,24 @@
|
|||||||
"hyprland/workspaces": {
|
"hyprland/workspaces": {
|
||||||
"on-click": "activate",
|
"on-click": "activate",
|
||||||
"format": "{icon}",
|
"format": "{icon}",
|
||||||
|
"sort-by": "id",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"default": "",
|
"default": "",
|
||||||
"1": "",
|
"Home_1": "",
|
||||||
"2": "",
|
"Dev_1": "",
|
||||||
"3": "",
|
"Art_1": "",
|
||||||
"4": "",
|
"Gaming_1": "",
|
||||||
"5": "",
|
"Writing_1": "",
|
||||||
"6": "",
|
"Home_2": "",
|
||||||
"7": "",
|
"Dev_2": "",
|
||||||
"8": "",
|
"Art_2": "",
|
||||||
"9": "",
|
"Gaming_2": "",
|
||||||
"10": "",
|
"Writing_2": "",
|
||||||
},
|
},
|
||||||
"persistent-workspaces": {
|
"persistent-workspaces": {
|
||||||
"DP-1": [1, 3, 5, 7, 9],
|
"eDP-1": ["Home_1", "Dev_1", "Art_1", "Gaming_1", "Writing_1"],
|
||||||
"DP-2": [2, 4, 6, 8, 10]
|
"DP-1": ["Home_1", "Dev_1", "Art_1", "Gaming_1", "Writing_1"],
|
||||||
|
"DP-2": ["Home_2", "Dev_2", "Art_2", "Gaming_2", "Writing_2"],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"custom/station": {
|
"custom/station": {
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
show_hidden = true
|
show_hidden = true
|
||||||
|
|
||||||
[[plugin.prepend_fetchers]]
|
[[plugin.prepend_fetchers]]
|
||||||
id = "git"
|
url = "*"
|
||||||
name = "*"
|
|
||||||
run = "git"
|
run = "git"
|
||||||
|
group = "git"
|
||||||
|
|
||||||
[[plugin.prepend_fetchers]]
|
[[plugin.prepend_fetchers]]
|
||||||
id = "git"
|
url = "*/"
|
||||||
name = "*/"
|
|
||||||
run = "git"
|
run = "git"
|
||||||
|
group = "git"
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Toggles the window gaps globally between no gaps and the default 10/5/2.
|
|
||||||
|
|
||||||
gaps=$(hyprctl getoption general:gaps_out -j | jq -r '.custom' | awk '{print $1}')
|
|
||||||
|
|
||||||
if [[ $gaps == "0" ]]; then
|
|
||||||
hyprctl keyword general:gaps_out 10
|
|
||||||
hyprctl keyword general:gaps_in 5
|
|
||||||
hyprctl keyword general:border_size 2
|
|
||||||
else
|
|
||||||
hyprctl keyword general:gaps_out 0
|
|
||||||
hyprctl keyword general:gaps_in 0
|
|
||||||
hyprctl keyword general:border_size 0
|
|
||||||
fi
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Toggle to pop-out a tile to stay fixed on a display basis.
|
|
||||||
|
|
||||||
# Usage:
|
|
||||||
# station-hyprland-window-pop [width height [x y]]
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# width Optional. Width of the floating window. Default: 1300
|
|
||||||
# height Optional. Height of the floating window. Default: 900
|
|
||||||
# x Optional. X position of the window. Must provide both X and Y to take effect.
|
|
||||||
# y Optional. Y position of the window. Must provide both X and Y to take effect.
|
|
||||||
#
|
|
||||||
# Behavior:
|
|
||||||
# - If the window is already pinned, it will be unpinned and removed from the pop layer.
|
|
||||||
# - If the window is not pinned, it will be floated, resized, moved/centered, pinned, brought to top, and popped.
|
|
||||||
|
|
||||||
width=${1:-1300}
|
|
||||||
height=${2:-900}
|
|
||||||
x=${3:-}
|
|
||||||
y=${4:-}
|
|
||||||
|
|
||||||
active=$(hyprctl activewindow -j)
|
|
||||||
pinned=$(echo "$active" | jq ".pinned")
|
|
||||||
addr=$(echo "$active" | jq -r ".address")
|
|
||||||
|
|
||||||
if [[ $pinned == "true" ]]; then
|
|
||||||
hyprctl -q --batch \
|
|
||||||
"dispatch pin address:$addr;" \
|
|
||||||
"dispatch togglefloating address:$addr;" \
|
|
||||||
"dispatch tagwindow -pop address:$addr;"
|
|
||||||
elif [[ -n $addr ]]; then
|
|
||||||
hyprctl dispatch togglefloating address:$addr
|
|
||||||
hyprctl dispatch resizeactive exact $width $height address:$addr
|
|
||||||
|
|
||||||
if [[ -n $x && -n $y ]]; then
|
|
||||||
hyprctl dispatch moveactive $x $y address:$addr
|
|
||||||
else
|
|
||||||
hyprctl dispatch centerwindow address:$addr
|
|
||||||
fi
|
|
||||||
|
|
||||||
hyprctl -q --batch \
|
|
||||||
"dispatch pin address:$addr;" \
|
|
||||||
"dispatch alterzorder top address:$addr;" \
|
|
||||||
"dispatch tagwindow +pop address:$addr;"
|
|
||||||
fi
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Check current single_window_aspect_ratio setting
|
|
||||||
CURRENT_VALUE=$(hyprctl getoption "layout:single_window_aspect_ratio" 2>/dev/null | head -1)
|
|
||||||
|
|
||||||
# Parse vec2 output: "vec2: [1, 1]" or "vec2: [0, 0]"
|
|
||||||
if [[ $CURRENT_VALUE == *"[1, 1]"* ]]; then
|
|
||||||
hyprctl keyword layout:single_window_aspect_ratio "0 0"
|
|
||||||
notify-send " Disable single-window square aspect ratio"
|
|
||||||
else
|
|
||||||
hyprctl keyword layout:single_window_aspect_ratio "1 1"
|
|
||||||
notify-send " Enable single-window square aspect"
|
|
||||||
fi
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Toggle the layout on the current active workspace between dwindle and scrolling
|
|
||||||
|
|
||||||
ACTIVE_WORKSPACE=$(hyprctl activeworkspace -j | jq -r '.id')
|
|
||||||
CURRENT_LAYOUT=$(hyprctl activeworkspace -j | jq -r '.tiledLayout')
|
|
||||||
|
|
||||||
case "$CURRENT_LAYOUT" in
|
|
||||||
dwindle) NEW_LAYOUT=scrolling ;;
|
|
||||||
scrolling) NEW_LAYOUT=monocle ;;
|
|
||||||
monocle) NEW_LAYOUT=master ;;
|
|
||||||
*) NEW_LAYOUT=dwindle ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
hyprctl keyword workspace $ACTIVE_WORKSPACE, layout:$NEW_LAYOUT
|
|
||||||
notify-send " Workspace layout set to $NEW_LAYOUT"
|
|
||||||
@@ -6,22 +6,19 @@ bmfiles="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files"
|
|||||||
# Output locations. Unactivated progs should go to /dev/null.
|
# Output locations. Unactivated progs should go to /dev/null.
|
||||||
shell_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
|
shell_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
|
||||||
zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
|
zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
|
||||||
lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc"
|
|
||||||
|
|
||||||
# Remove, prepare files
|
# Remove, prepare files
|
||||||
rm -f "$lf_shortcuts" "$zsh_named_dirs" 2>/dev/null
|
rm -f "$zsh_named_dirs" 2>/dev/null
|
||||||
printf "# vim: filetype=sh\\nalias " > "$shell_shortcuts"
|
printf "# vim: filetype=sh\\nalias " > "$shell_shortcuts"
|
||||||
|
|
||||||
# Format the `directories` file in the correct syntax and sent it to all three configs.
|
# Format the `directories` file in the correct syntax and sent it to all three configs.
|
||||||
eval "echo \"$(cat "$bmdirs")\"" | \
|
eval "echo \"$(cat "$bmdirs")\"" | \
|
||||||
awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\");
|
awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\");
|
||||||
printf(\"%s=\42cd %s && ls\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ;
|
printf(\"%s=\42cd %s && ls\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ;
|
||||||
printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ;
|
printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\"}"
|
||||||
printf(\"map C%s cd \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" }"
|
|
||||||
|
|
||||||
# Format the `files` file in the correct syntax and sent it to both configs.
|
# Format the `files` file in the correct syntax and sent it to both configs.
|
||||||
eval "echo \"$(cat "$bmfiles")\"" | \
|
eval "echo \"$(cat "$bmfiles")\"" | \
|
||||||
awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\");
|
awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\");
|
||||||
printf(\"%s=\42\$EDITOR %s\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ;
|
printf(\"%s=\42\$EDITOR %s\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ;
|
||||||
printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ;
|
printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\"}"
|
||||||
printf(\"map E%s \$\$EDITOR \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" }"
|
|
||||||
@@ -3,6 +3,7 @@ Version=1.0
|
|||||||
Name=Discord
|
Name=Discord
|
||||||
Comment=Discord
|
Comment=Discord
|
||||||
Exec=station-launch-webapp https://discord.com/channels/@me
|
Exec=station-launch-webapp https://discord.com/channels/@me
|
||||||
|
Exec=station-launch-or-focus ^chrome-discord.com__channels_@me-Default$ "station-launch-webapp https://discord.com/channels/@me"
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Icon=/home/chris/.local/share/applications/icons/Discord.png
|
Icon=/home/chris/.local/share/applications/icons/Discord.png
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Version=1.0
|
Version=1.0
|
||||||
Name=WhatsApp
|
Name=WhatsApp
|
||||||
Comment=WhatsApp
|
Comment=WhatsApp
|
||||||
Exec=station-launch-webapp https://web.whatsapp.com
|
Exec=station-launch-or-focus ^chrome-web.whatsapp.com__-Default$ "station-launch-webapp https://web.whatsapp.com"
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Icon=/home/chris/.local/share/applications/icons/WhatsApp
|
Icon=/home/chris/.local/share/applications/icons/WhatsApp
|
||||||
|
|||||||
Reference in New Issue
Block a user