cleanup hyprland conf, add hy3 layout, add nvim as editor in zshrc

This commit is contained in:
2026-08-10 21:41:55 -07:00
parent 4e9d21e5e1
commit 950ac94dae
3 changed files with 64 additions and 187 deletions
+49 -186
View File
@@ -1,26 +1,4 @@
-- env vars
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- AUTOGENERATED HYPRLAND CONFIG. --
-- EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS. --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- This is an example Hyprland Lua config file.
-- Refer to the wiki for more information.
-- https://wiki.hypr.land/Configuring/Start/
-- Please note not all available settings / options are set here.
-- For a full list, see the wiki
-- You can (and should!!) split this configuration into multiple files
-- Create your files separately and then require them like this:
-- require("myColors")
------------------
---- MONITORS ----
------------------
hl.env("XDG_CURRENT_DESKTOP", "Hyprland") hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
hl.env("XDG_SESSION_TYPE", "wayland") hl.env("XDG_SESSION_TYPE", "wayland")
hl.env("XDG_SESSION_DESKTOP", "Hyprland") hl.env("XDG_SESSION_DESKTOP", "Hyprland")
@@ -29,7 +7,12 @@ hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto") hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
hl.env("QT_QPA_PLATFORM", "wayland;xcb") hl.env("QT_QPA_PLATFORM", "wayland;xcb")
hl.env("QT_QPA_PLATFORMTHEME", "gtk3") hl.env("QT_QPA_PLATFORMTHEME", "gtk3")
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
hl.env("DISPLAY", ":0")
hl.env("USE_X11", "false")
-- monitors
hl.monitor({ hl.monitor({
output = "HDMI-A-2", output = "HDMI-A-2",
mode = "2560x1440@143.99899", mode = "2560x1440@143.99899",
@@ -44,57 +27,23 @@ hl.monitor({
scale = "auto", scale = "auto",
}) })
local terminal = "alacritty" local home = os.getenv("HOME")
local fileManager = "thunar"
local menu = "fuzzel"
hl.on("hyprland.start", function () hl.on("hyprland.start", function ()
-- gentoo specific -- gentoo specific
hl.exec_cmd("/usr/libexec/hyprpolkitagent") hl.exec_cmd("/usr/libexec/hyprpolkitagent")
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
hl.exec_cmd("hyprpm reload") -- set up plugins
hl.exec_cmd("hyprctl setcursor Adwaita 24") -- set cursor to be normal
hl.exec_cmd("wl-paste --watch cliphist store")
hl.exec_cmd("mako")
hl.exec_cmd("awww-daemon") hl.exec_cmd("awww-daemon")
hl.exec_cmd("mako") hl.exec_cmd(home .. "/.config/hypr/awww_randomize.sh " .. home .. "/.wallpapers/2k")
hl.exec_cmd("/home/frosty/.config/hypr/awww_randomize.sh /home/frosty/.wallpapers/2k") hl.exec_cmd("qs -d -p " .. home .. "/.config/quickshell/shell.qml")
hl.exec_cmd("wl-paste --watch cliphist store")
hl.exec_cmd("hyprctl setcursor Adwaita 24")
hl.exec_cmd("qs -d -p ~/.config/quickshell/shell.qml")
end) end)
-------------------------------
---- ENVIRONMENT VARIABLES ----
-------------------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
hl.env("DISPLAY", ":0")
hl.env("USE_X11", "false")
-----------------------
----- PERMISSIONS -----
-----------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
-- for security reasons
-- hl.config({
-- ecosystem = {
-- enforce_permissions = true,
-- },
-- })
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
-----------------------
---- LOOK AND FEEL ----
-----------------------
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/ -- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
hl.config({ hl.config({
general = { general = {
@@ -111,17 +60,13 @@ hl.config({
resize_on_border = true, resize_on_border = true,
no_focus_fallback = true, no_focus_fallback = true,
allow_tearing = true, allow_tearing = true,
layout = "scrolling", layout = "hy3",
}, },
decoration = { decoration = {
rounding = 10, rounding = 10,
rounding_power = 2.5, rounding_power = 2.5,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = { shadow = {
enabled = false, enabled = false,
range = 4, range = 4,
@@ -159,6 +104,18 @@ hl.config({
mouse_move_enables_dpms = true, mouse_move_enables_dpms = true,
key_press_enables_dpms = true key_press_enables_dpms = true
}, },
dwindle = {
preserve_split = true, -- You probably want this
},
master = {
new_status = "master",
},
scrolling = {
fullscreen_on_one_column = false,
},
}) })
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/ -- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
@@ -189,74 +146,9 @@ hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" }) hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" }) hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/ local terminal = "alacritty"
-- "Smart gaps" / "No gaps when only" local fileManager = "thunar"
-- uncomment all if you wish to use that. local menu = "fuzzel"
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
-- hl.window_rule({
-- name = "no-gaps-wtv1",
-- match = { float = false, workspace = "w[tv1]" },
-- border_size = 0,
-- rounding = 0,
-- })
-- hl.window_rule({
-- name = "no-gaps-f1",
-- match = { float = false, workspace = "f[1]" },
-- border_size = 0,
-- rounding = 0,
-- })
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
hl.config({
dwindle = {
preserve_split = true, -- You probably want this
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
hl.config({
master = {
new_status = "master",
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
hl.config({
scrolling = {
fullscreen_on_one_column = false,
},
})
----------------
---- MISC ----
----------------
---------------
---- INPUT ----
---------------
hl.config({
})
hl.gesture({
fingers = 3,
direction = "horizontal",
action = "workspace"
})
-- Example per-device config
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
hl.device({
name = "epic-mouse-v1",
sensitivity = -0.5,
})
---------------------
---- KEYBINDINGS ----
---------------------
local mainMod = "SUPER" -- Sets "Windows" key as main modifier local mainMod = "SUPER" -- Sets "Windows" key as main modifier
@@ -272,14 +164,25 @@ hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen_state({ internal="1", client
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close()) hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close())
-- change focus -- change focus
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" })) hl.bind(mainMod .. " + LEFT", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" })) hl.bind(mainMod .. " + RIGHT", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" })) hl.bind(mainMod .. " + UP", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" })) hl.bind(mainMod .. " + DOWN", hl.dsp.focus({ direction = "down" }))
-- move workspaces -- move workspaces
hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.swap({ direction = "left"})) hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.swap({ direction = "left"}))
hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "right"})) hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "right"}))
hl.bind(mainMod .. " + SHIFT + UP", hl.dsp.window.swap({ direction = "up"}))
hl.bind(mainMod .. " + SHIFT + DOWN", hl.dsp.window.swap({ direction = "down"}))
-- hy3 settings
local hy3 = hl.plugin.hy3
hl.bind(mainMod .. " + V", hy3.make_group("v"))
hl.bind(mainMod .. " + H", hy3.make_group("h"))
hl.bind(mainMod .. " + T", hy3.make_group("tab"))
hl.bind(mainMod .. " + CTRL + LEFT", hy3.focus_tab({ direction = "left" }))
hl.bind(mainMod .. " + CTRL + RIGHT", hy3.focus_tab({ direction = "right" }))
-- Switch workspaces with mainMod + [0-9] -- Switch workspaces with mainMod + [0-9]
-- Move active window to a workspace with mainMod + SHIFT + [0-9] -- Move active window to a workspace with mainMod + SHIFT + [0-9]
@@ -289,11 +192,10 @@ for i = 1, 10 do
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i })) hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end end
-- scratchpad
hl.bind(mainMod .. " + MINUS", hl.dsp.workspace.toggle_special("magic")) hl.bind(mainMod .. " + MINUS", hl.dsp.workspace.toggle_special("magic"))
hl.bind(mainMod .. " + SHIFT + MINUS", hl.dsp.window.move({ workspace = "special:magic" })) hl.bind(mainMod .. " + SHIFT + MINUS", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through existing workspaces with mainMod + scroll -- Scroll through existing workspaces with mainMod + scroll
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" })) hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" })) hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
@@ -317,23 +219,13 @@ hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = tr
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true }) hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
--------------------------------
---- WINDOWS AND WORKSPACES ----
--------------------------------
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- Example window rules that are useful
local suppressMaximizeRule = hl.window_rule({ local suppressMaximizeRule = hl.window_rule({
-- Ignore maximize requests from all apps. You'll probably like this. -- Ignore maximize requests from all apps. You'll probably like this.
name = "suppress-maximize-events", name = "suppress-maximize-events",
match = { class = ".*" }, match = { class = ".*" },
suppress_event = "maximize", suppress_event = "maximize",
}) })
-- suppressMaximizeRule:set_enabled(false) suppressMaximizeRule:set_enabled(true)
hl.window_rule({ hl.window_rule({
-- Fix some dragging issues with XWayland -- Fix some dragging issues with XWayland
@@ -350,33 +242,4 @@ hl.window_rule({
no_focus = true, no_focus = true,
}) })
-- Layer rules also return a handle.
-- local overlayLayerRule = hl.layer_rule({
-- name = "no-anim-overlay",
-- match = { namespace = "^my-overlay$" },
-- no_anim = true,
-- })
-- overlayLayerRule:set_enabled(false)
-- Hyprland-run windowrule
hl.window_rule({
name = "move-hyprland-run",
match = { class = "hyprland-run" },
move = "20 monitor_h-120",
float = true,
})
hl.layer_rule({
match = {namespace = "quickshell"},
blur = true,
blur_popups = true
})
hl.layer_rule({
match = { class = "fuzzel"},
blur = true,
})
require("rules") require("rules")
+13 -1
View File
@@ -1,3 +1,4 @@
-- floating
hl.window_rule({match = {title = "^(Open File)(.*)$" }, center = true}) hl.window_rule({match = {title = "^(Open File)(.*)$" }, center = true})
hl.window_rule({match = {title = "^(Open File)(.*)$" }, float = true}) hl.window_rule({match = {title = "^(Open File)(.*)$" }, float = true})
hl.window_rule({match = {title = "^(Select a File)(.*)$" }, center = true}) hl.window_rule({match = {title = "^(Select a File)(.*)$" }, center = true})
@@ -17,6 +18,17 @@ hl.window_rule({match = {title = "^(.*)(wants to save)$" }, cen
hl.window_rule({match = {title = "^(.*)(wants to save)$" }, float = true}) hl.window_rule({match = {title = "^(.*)(wants to save)$" }, float = true})
hl.window_rule({match = {title = "^(.*)(wants to open)$" }, center = true}) hl.window_rule({match = {title = "^(.*)(wants to open)$" }, center = true})
hl.window_rule({match = {title = "^(.*)(wants to open)$" }, float = true}) hl.window_rule({match = {title = "^(.*)(wants to open)$" }, float = true})
hl.window_rule({match = {class = "hyprland-share-picker" }, float = true}) hl.window_rule({match = {class = "hyprland-share-picker" }, float = true})
hl.window_rule({match = {title = "(.*)(Settings)(.*)$" },float = true}) hl.window_rule({match = {title = "(.*)(Settings)(.*)$" },float = true})
-- aesthetics
hl.layer_rule({
match = {namespace = "quickshell"},
blur = true,
blur_popups = true
})
hl.layer_rule({
match = { class = "fuzzel"},
blur = true,
})
+2
View File
@@ -3,6 +3,8 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]
fi fi
export ZSH=$HOME/.oh-my-zsh export ZSH=$HOME/.oh-my-zsh
export EDITOR="nvim"
export VISUAL="nvim-qt"
ZSH_THEME="powerlevel10k/powerlevel10k" ZSH_THEME="powerlevel10k/powerlevel10k"
CASE_SENSITIVE="true" CASE_SENSITIVE="true"