migrated hyprland to lua
This commit is contained in:
@@ -1,249 +0,0 @@
|
||||
# monitors
|
||||
monitor=DP-1,3840x2160@144,0x0,2
|
||||
monitor=DP-2, 3840x2160@60,-1920x-950,2
|
||||
|
||||
# Execute your favorite apps at launch
|
||||
exec-once = waybar & nm-applet & dunst & nextcloud & hyprpaper & hypridle
|
||||
exec-once = waybar -c ~/.config/waybar/config2
|
||||
# exec-once = /usr/bin/openrgb --startminimized --profile "ssx"
|
||||
exec-once = dbus-update-activation-environment --all
|
||||
exec-once = /usr/libexec/lxqt-policykit-agent
|
||||
exec-once = systemctl --user start gnome-keyring-daemon
|
||||
exec-once = $HOME/scripts/startup.sh
|
||||
|
||||
# F44 fix
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE
|
||||
exec-once = systemctl --user start hyprland-session.target
|
||||
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = wezterm
|
||||
$fileManager = nemo
|
||||
$menu = ~/.config/rofi/rofimenu/launcher.sh
|
||||
$apps = ~/.config/rofi/apps/apps.sh
|
||||
$powermenu = ~/.config/rofi/rofipowermenu/powermenu.sh
|
||||
$screenshot =grim -g "$(slurp)" $HOME/screenshots/$(date +'%Y-%m-%d-%H%M%S').png
|
||||
$mouseConstrain = ~/scripts/mouseConstrain.sh
|
||||
|
||||
#Auth
|
||||
env = SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket
|
||||
|
||||
# nvidia
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
|
||||
# Some default env vars.
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that
|
||||
env = QT_STYLE_OVERRIDE=kvantum
|
||||
|
||||
#mice
|
||||
env = HYPRCURSOR_THEME,Adwaita
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = XCURSOR_SIZE,24
|
||||
env = WLR_NO_HARDWARE_CURSORS=1
|
||||
|
||||
#xwayland and java
|
||||
env = OGL_DEDICATED_HW_STATE_PER_CONTEXT=ENABLE_ROBUST
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT , auto
|
||||
env = XDG_STATE_HOME="${HOME}/.local/state"
|
||||
env = _JAVA_AWT_WM_NONREPARENTING,1
|
||||
env = LIBVIRT_DEFAULT_URI,qemu:///system
|
||||
|
||||
# Disable x11 app scaling
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = caps:escape, compose:rctrl
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = no
|
||||
}
|
||||
|
||||
force_no_accel = 0
|
||||
sensitivity = 0
|
||||
}
|
||||
|
||||
general {
|
||||
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
border_size = 2
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
layout = dwindle
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
}
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
}
|
||||
|
||||
layerrule = match:namespace waybar, blur on
|
||||
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
preserve_split = yes
|
||||
}
|
||||
|
||||
master {
|
||||
}
|
||||
|
||||
|
||||
misc {
|
||||
disable_splash_rendering = true
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
## special window rules
|
||||
windowrule = suppress_event maximize, match:class .* # You'll probably like this.
|
||||
windowrule = no_screen_share on, match:class ^(Bitwarden)$, match:class ^(Nemo)$
|
||||
windowrule = float on, size 413 689, match:class ^(io.bassi.Amberol)$
|
||||
windowrule = float on, match:class ^(qalculate-gtk)$, match:title ^(Qalculate!)$
|
||||
windowrule = tile on, workspace 10, match:class ^(affinity.exe)$
|
||||
windowrule = match:class ^(jetbrains-studio)$, match:title ^win.*, no_initial_focus on
|
||||
|
||||
$mainMod = SUPER
|
||||
|
||||
bind = $mainMod, R, exec, $terminal
|
||||
bind = $mainMod, T, exec, alacritty
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod,F,fullscreen,
|
||||
bind = $mainMod, D, exec, $menu
|
||||
bind = $mainMod, S , exec, $apps
|
||||
bind = CONTROLALT, L, exec, $powermenu
|
||||
bind = $mainMod, L, exec, loginctl lock-session
|
||||
bind = $mainMod, G, exec, $mouseConstrain
|
||||
bind = $mainMod, n, exec, ~/.config/quickshell/network/network_toggle.sh
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod ALT, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
|
||||
# media keys
|
||||
bind= ,XF86AudioMute ,exec, ~/.config/dunstthree/dunstthree.sh mute
|
||||
bind= ,XF86AudioRaiseVolume, exec, ~/.config/dunstthree/dunstthree.sh vup
|
||||
bind= ,XF86AudioLowerVolume, exec, ~/.config/dunstthree/dunstthree.sh vdown
|
||||
bind= ,0xff61 ,exec,$screenshot && dunstify "Screenshot Saved"
|
||||
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
|
||||
#################
|
||||
# WORKSPACES #
|
||||
# #
|
||||
#################
|
||||
workspace= 1,monitor:DP-1
|
||||
workspace= 2,monitor:DP-1
|
||||
workspace= 3,monitor:DP-1
|
||||
workspace= 4,monitor:DP-1
|
||||
workspace= 5,monitor:DP-1
|
||||
workspace= 8,monitor:DP-1
|
||||
workspace= 9,monitor:DP-1
|
||||
workspace= 10,monitor:DP-1
|
||||
workspace= 7,monitor:DP-1
|
||||
workspace= 6,monitor:DP-2
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
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
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
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
|
||||
|
||||
##############
|
||||
# My windows #
|
||||
##############
|
||||
|
||||
windowrule = workspace 1, match:class ^(org.wezfurlong.wezterm)$
|
||||
windowrule = workspace 2, match:class ^(org.mozilla.firefox)$
|
||||
windowrule = workspace 3, match:class ^(nemo)$
|
||||
windowrule = workspace 4, match:title ^(VSCodium)$
|
||||
windowrule = workspace 4, match:title ^(Postman)$
|
||||
windowrule = workspace 4, match:title ^(RStudio)$
|
||||
windowrule = workspace 5, match:class ^(obsidian)$
|
||||
windowrule = workspace 5, match:class ^(libreoffice.*)$
|
||||
windowrule = workspace 5, match:class ^(com.discordapp.Discord)$
|
||||
windowrule = workspace 7, match:class ^(net.thunderbird.Thunderbird)$
|
||||
windowrule = workspace 8, match:title ^(Jellyfin Media Player)$
|
||||
windowrule = workspace 8, match:class ^(chrome-calendar.*)$
|
||||
windowrule = workspace 8, match:class ^(affinity)$
|
||||
windowrule = workspace 8, match:title ^(Tauon)$
|
||||
windowrule = workspace 9, match:class ^(steam)$
|
||||
windowrule = workspace 9, match:class ^(virt-manager)$
|
||||
windowrule = workspace 10, match:class ^(krita)$
|
||||
windowrule = workspace 10, match:class ^(org.inkscape.Inkscape)$
|
||||
windowrule = workspace 10, match:class ^(sqlitebrowser)$
|
||||
windowrule = workspace 10, match:class ^(veracrypt)$
|
||||
@@ -0,0 +1,132 @@
|
||||
require("mods.init")
|
||||
require("mods.workspaces")
|
||||
require("mods.keybinds")
|
||||
require("mods.windows")
|
||||
|
||||
------------------
|
||||
---- MONITORS ----
|
||||
------------------
|
||||
|
||||
hl.monitor({
|
||||
output = "DP-1",
|
||||
mode = "3840x2160@144",
|
||||
position = "0x0",
|
||||
scale = 2,
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "DP-2",
|
||||
mode = "3840x2160@60",
|
||||
position = "-1920x-950",
|
||||
scale = 2,
|
||||
})
|
||||
|
||||
-----------------------
|
||||
---- LOOK AND FEEL ----
|
||||
-----------------------
|
||||
|
||||
-- XWayland scaling
|
||||
hl.config({
|
||||
xwayland = {
|
||||
force_zero_scaling = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Input
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "caps:escape,compose:rctrl",
|
||||
kb_rules = "",
|
||||
|
||||
follow_mouse = 1,
|
||||
force_no_accel = false,
|
||||
sensitivity = 0,
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- General
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 20,
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
layout = "dwindle",
|
||||
allow_tearing = false,
|
||||
},
|
||||
})
|
||||
|
||||
-- Decoration
|
||||
hl.config({
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
},
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = "rgba(1a1a1aee)",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Layer rule (waybar blur)
|
||||
hl.layer_rule({
|
||||
name = "waybar-blur",
|
||||
match = { namespace = "waybar" },
|
||||
blur = true,
|
||||
})
|
||||
|
||||
-- Animations
|
||||
hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
|
||||
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
|
||||
|
||||
-- Dwindle layout
|
||||
hl.config({
|
||||
dwindle = {
|
||||
preserve_split = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Master layout
|
||||
hl.config({
|
||||
master = {},
|
||||
})
|
||||
|
||||
-- Misc
|
||||
hl.config({
|
||||
misc = {
|
||||
disable_splash_rendering = true,
|
||||
disable_hyprland_logo = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Per-device config
|
||||
hl.device({
|
||||
name = "epic-mouse-v1",
|
||||
sensitivity = -0.5,
|
||||
})
|
||||
@@ -0,0 +1,60 @@
|
||||
-------------------
|
||||
---- AUTOSTART ----
|
||||
-------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
-- Status bar, tray, notifications, cloud, wallpaper, idle
|
||||
hl.exec_cmd("waybar & nm-applet & dunst & nextcloud & hyprpaper & hypridle")
|
||||
hl.exec_cmd("waybar -c ~/.config/waybar/config2")
|
||||
|
||||
-- DBus environment
|
||||
hl.exec_cmd("dbus-update-activation-environment --all")
|
||||
|
||||
-- Polkit agent & keyring
|
||||
hl.exec_cmd("/usr/libexec/lxqt-policykit-agent")
|
||||
hl.exec_cmd("systemctl --user start gnome-keyring-daemon")
|
||||
|
||||
-- Startup script
|
||||
hl.exec_cmd(os.getenv("HOME") .. "/scripts/startup.sh")
|
||||
|
||||
-- F44 fix: import environment into systemd & dbus
|
||||
hl.exec_cmd(
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE"
|
||||
)
|
||||
hl.exec_cmd(
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE"
|
||||
)
|
||||
hl.exec_cmd("systemctl --user start hyprland-session.target")
|
||||
end)
|
||||
|
||||
-------------------
|
||||
---- environment ----
|
||||
-------------------
|
||||
|
||||
-- Auth
|
||||
hl.env("SSH_AUTH_SOCK", "/run/user/1000/ssh-agent.socket")
|
||||
|
||||
-- Nvidia
|
||||
hl.env("LIBVA_DRIVER_NAME", "nvidia")
|
||||
hl.env("GBM_BACKEND", "nvidia-drm")
|
||||
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||
hl.env("XDG_SESSION_TYPE", "wayland")
|
||||
|
||||
-- Qt
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
|
||||
hl.env("QT_STYLE_OVERRIDE", "kvantum")
|
||||
|
||||
-- Cursors
|
||||
hl.env("HYPRCURSOR_THEME", "Adwaita")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("WLR_NO_HARDWARE_CURSORS", "1")
|
||||
|
||||
-- XWayland / Java
|
||||
hl.env("OGL_DEDICATED_HW_STATE_PER_CONTEXT", "ENABLE_ROBUST")
|
||||
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
|
||||
hl.env("XDG_STATE_HOME", os.getenv("HOME") .. "/.local/state")
|
||||
hl.env("_JAVA_AWT_WM_NONREPARENTING", "1")
|
||||
hl.env("LIBVIRT_DEFAULT_URI", "qemu:///system")
|
||||
@@ -0,0 +1,58 @@
|
||||
---------------------
|
||||
---- KEYBINDINGS ----
|
||||
---------------------
|
||||
|
||||
local mainMod = "SUPER"
|
||||
local terminal = "wezterm"
|
||||
local fileManager = "nemo"
|
||||
local menu = "~/.config/rofi/rofimenu/launcher.sh"
|
||||
local apps = "~/.config/rofi/apps/apps.sh"
|
||||
local powermenu = "~/.config/rofi/rofipowermenu/powermenu.sh"
|
||||
local screenshot = 'grim -g "$(slurp)" ' .. os.getenv("HOME") .. "/screenshots/$(date +'%Y-%m-%d-%H%M%S').png"
|
||||
local mouseConstrain = "~/scripts/mouseConstrain.sh"
|
||||
|
||||
-- App launchers
|
||||
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(terminal))
|
||||
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd("alacritty"))
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
|
||||
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
|
||||
hl.bind(mainMod .. " + S", hl.dsp.exec_cmd(apps))
|
||||
hl.bind("CTRL + ALT + L", hl.dsp.exec_cmd(powermenu))
|
||||
hl.bind(mainMod .. " + L", hl.dsp.exec_cmd("loginctl lock-session"))
|
||||
hl.bind(mainMod .. " + G", hl.dsp.exec_cmd(mouseConstrain))
|
||||
hl.bind(mainMod .. " + N", hl.dsp.exec_cmd("~/.config/quickshell/network/network_toggle.sh"))
|
||||
|
||||
-- Special workspace (scratchpad)
|
||||
hl.bind(mainMod .. " + ALT + S", hl.dsp.workspace.toggle_special("magic"))
|
||||
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||
|
||||
-- Scroll through workspaces
|
||||
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Move/resize windows with mouse
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Media keys
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("~/.config/dunstthree/dunstthree.sh mute"), { locked = true })
|
||||
hl.bind(
|
||||
"XF86AudioRaiseVolume",
|
||||
hl.dsp.exec_cmd("~/.config/dunstthree/dunstthree.sh vup"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioLowerVolume",
|
||||
hl.dsp.exec_cmd("~/.config/dunstthree/dunstthree.sh vdown"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind("Print", hl.dsp.exec_cmd(screenshot .. ' && dunstify "Screenshot Saved"'))
|
||||
|
||||
-- Move focus with arrow keys
|
||||
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||
@@ -0,0 +1,76 @@
|
||||
--------------
|
||||
-- Special rules --
|
||||
--------------
|
||||
|
||||
-- Suppress maximize for all windows
|
||||
hl.window_rule({
|
||||
name = "suppress-maximize",
|
||||
match = { class = ".*" },
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
|
||||
-- No screen share
|
||||
hl.window_rule({
|
||||
name = "no-screen-share-bitwarden",
|
||||
match = { class = "^(Bitwarden)$" },
|
||||
no_screen_share = true,
|
||||
})
|
||||
hl.window_rule({
|
||||
name = "no-screen-share-nemo",
|
||||
match = { class = "^(Nemo)$" },
|
||||
no_screen_share = true,
|
||||
})
|
||||
|
||||
-- Float rules
|
||||
hl.window_rule({
|
||||
name = "float-amberol",
|
||||
match = { class = "^(io.bassi.Amberol)$" },
|
||||
float = true,
|
||||
size = { 413, 689 },
|
||||
})
|
||||
hl.window_rule({
|
||||
name = "float-qalculate",
|
||||
match = { class = "^(qalculate-gtk)$", title = "^(Qalculate!)$" },
|
||||
float = true,
|
||||
})
|
||||
|
||||
-- Tile rules
|
||||
hl.window_rule({
|
||||
name = "tile-affinity",
|
||||
match = { class = "^(affinity.exe)$" },
|
||||
tile = true,
|
||||
workspace = 10,
|
||||
})
|
||||
|
||||
-- Android Studio no initial focus
|
||||
hl.window_rule({
|
||||
name = "no-focus-jetbrains",
|
||||
match = { class = "^(jetbrains-studio)$", title = "^win.*" },
|
||||
no_initial_focus = true,
|
||||
})
|
||||
|
||||
--------------
|
||||
-- MY WINDOWS --
|
||||
--------------
|
||||
|
||||
-- Workspace assignments
|
||||
hl.window_rule({ name = "ws-wezterm", match = { class = "^(org.wezfurlong.wezterm)$" }, workspace = 1 })
|
||||
hl.window_rule({ name = "ws-firefox", match = { class = "^(org.mozilla.firefox)$" }, workspace = 2 })
|
||||
hl.window_rule({ name = "ws-nemo", match = { class = "^(nemo)$" }, workspace = 3 })
|
||||
hl.window_rule({ name = "ws-vscodium", match = { title = "^(VSCodium)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-postman", match = { title = "^(Postman)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-rstudio", match = { title = "^(RStudio)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-obsidian", match = { class = "^(obsidian)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-libreoff", match = { class = "^(libreoffice.*)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-discord", match = { class = "^(com.discordapp.Discord)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-thunderbird", match = { class = "^(net.thunderbird.Thunderbird)$" }, workspace = 7 })
|
||||
hl.window_rule({ name = "ws-jellyfin", match = { title = "^(Jellyfin Media Player)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-gcalendar", match = { class = "^(chrome-calendar.*)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-affinity", match = { class = "^(affinity)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-tauon", match = { title = "^(Tauon)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-steam", match = { class = "^(steam)$" }, workspace = 9 })
|
||||
hl.window_rule({ name = "ws-virt", match = { class = "^(virt-manager)$" }, workspace = 9 })
|
||||
hl.window_rule({ name = "ws-krita", match = { class = "^(krita)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-inkscape", match = { class = "^(org.inkscape.Inkscape)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-sqlite", match = { class = "^(sqlitebrowser)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-veracrypt", match = { class = "^(veracrypt)$" }, workspace = 10 })
|
||||
@@ -0,0 +1,26 @@
|
||||
-----------------
|
||||
-- WORKSPACES --
|
||||
-----------------
|
||||
|
||||
local mainMod = "SUPER"
|
||||
|
||||
-- Workspace monitor assignments
|
||||
hl.workspace_rule({ workspace = "1", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "2", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "3", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "4", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "5", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "6", monitor = "DP-2" })
|
||||
hl.workspace_rule({ workspace = "7", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "8", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "9", monitor = "DP-1" })
|
||||
hl.workspace_rule({ workspace = "10", monitor = "DP-1" })
|
||||
|
||||
-- Switch & move workspaces with mainMod + [1-9, 0]
|
||||
local workspaceKeys = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }
|
||||
|
||||
for i, key in ipairs(workspaceKeys) do
|
||||
local ws = i < 10 and i or 10 -- 0 maps to workspace 10
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = ws }))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = ws }))
|
||||
end
|
||||
Reference in New Issue
Block a user