347 lines
8.1 KiB
Lua
347 lines
8.1 KiB
Lua
-- 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")
|
|
require("environment")
|
|
local colors = require("rose-pine")
|
|
|
|
------------------
|
|
---- MONITORS ----
|
|
------------------
|
|
|
|
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
|
hl.monitor({
|
|
output = "DP-1",
|
|
mode = "1920x1080@100",
|
|
position = "0x0",
|
|
scale = 1,
|
|
})
|
|
|
|
hl.monitor({
|
|
output = "HDMI-A-1",
|
|
mode = "1920x1080@60",
|
|
position = "1920x0",
|
|
scale = 1.25,
|
|
})
|
|
|
|
---------------------
|
|
---- MY PROGRAMS ----
|
|
---------------------
|
|
|
|
-- Set programs that you use
|
|
local terminal = "kitty"
|
|
local fileManager = "kitty"
|
|
local menu = "hyprlauncher"
|
|
local browser = "vivaldi-stable --enable-features=AcceleratedVideoEncoder"
|
|
local browserPrivate = "vivaldi --incognito --enable-features=AcceleratedVideoEncoder"
|
|
|
|
-------------------
|
|
---- AUTOSTART ----
|
|
-------------------
|
|
|
|
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
|
|
|
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
|
|
-- Or execute your favorite apps at launch like this:
|
|
hl.on("hyprland.start", function()
|
|
hl.exec_cmd("swaybg -i /home/sortedcord/Pictures/Wallpapers/cliff.jpg -m fill")
|
|
hl.exec_cmd("wayle shell")
|
|
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
|
hl.exec_cmd("quickshell")
|
|
hl.exec_cmd("hyprpm reload -n")
|
|
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("bitdepth", "10")
|
|
hl.env("XDG_DESKTOP_PORTAL_HYPRLAND_FORCE_SHM", "1")
|
|
|
|
-----------------------
|
|
----- 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/
|
|
hl.config({
|
|
general = {
|
|
gaps_in = 3,
|
|
gaps_out = 3,
|
|
|
|
border_size = 2,
|
|
|
|
col = {
|
|
active_border = colors.rose,
|
|
inactive_border = colors.muted,
|
|
},
|
|
|
|
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
|
resize_on_border = false,
|
|
|
|
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
|
allow_tearing = false,
|
|
|
|
layout = "hy3",
|
|
},
|
|
|
|
decoration = {
|
|
rounding = 0,
|
|
rounding_power = 0,
|
|
|
|
-- Change transparency of focused and unfocused windows
|
|
active_opacity = 1.0,
|
|
inactive_opacity = 1.0,
|
|
|
|
shadow = {
|
|
enabled = false,
|
|
range = 4,
|
|
render_power = 3,
|
|
color = 0xee1a1a1a,
|
|
},
|
|
|
|
blur = {
|
|
enabled = false,
|
|
size = 3,
|
|
passes = 1,
|
|
vibrancy = 0.1696,
|
|
},
|
|
},
|
|
|
|
animations = {
|
|
enabled = false,
|
|
},
|
|
})
|
|
|
|
-- hy3 plugin settings for i3-like tabbing & container layout
|
|
hl.config({
|
|
plugin = {
|
|
hy3 = {
|
|
-- policy controlling what happens when a node is removed from a group,
|
|
-- leaving only a group
|
|
-- 0 = remove the nested group
|
|
-- 1 = keep the nested group
|
|
-- 2 = keep the nested group only if its parent is a tab group
|
|
node_collapse_policy = 2,
|
|
|
|
-- offset from group split direction when only one window is in a group
|
|
group_inset = 10,
|
|
|
|
-- if a tab group will automatically be created for the first window spawned in a workspace
|
|
tab_first_window = false,
|
|
|
|
-- tab group settings
|
|
tabs = {
|
|
-- height of the tab bar
|
|
height = 20,
|
|
|
|
-- padding between the tab bar and its focused node
|
|
padding = 3,
|
|
|
|
-- the tab bar should animate in/out from the top instead of below the window
|
|
from_top = false,
|
|
|
|
-- radius of tab bar corners
|
|
radius = 0,
|
|
|
|
-- tab bar border width
|
|
border_width = 2,
|
|
|
|
-- render the window title on the bar
|
|
render_text = true,
|
|
|
|
-- center the window title
|
|
text_center = true,
|
|
|
|
-- font to render the window title with
|
|
text_font = "Sans",
|
|
|
|
-- height of the window title
|
|
text_height = 10,
|
|
|
|
-- left padding of the window title
|
|
text_padding = 3,
|
|
|
|
colors = {
|
|
-- active tab bar segment colors (using Rose Pine colors, fully opaque)
|
|
active = colors.rose,
|
|
active_border = colors.rose,
|
|
active_text = colors.base,
|
|
|
|
-- active tab bar segment colors for bars on an unfocused monitor
|
|
active_alt_monitor = colors.subtle,
|
|
active_alt_monitor_border = colors.subtle,
|
|
active_alt_monitor_text = colors.base,
|
|
|
|
-- focused tab bar segment colors (focused node in unfocused container)
|
|
focused = colors.muted,
|
|
focused_border = colors.muted,
|
|
focused_text = colors.text,
|
|
|
|
-- inactive tab bar segment colors
|
|
inactive = colors.surface,
|
|
inactive_border = colors.overlay,
|
|
inactive_text = colors.muted,
|
|
|
|
-- urgent tab bar segment colors
|
|
urgent = colors.love,
|
|
urgent_border = colors.love,
|
|
urgent_text = colors.base,
|
|
|
|
-- locked tab bar segment colors
|
|
locked = colors.gold,
|
|
locked_border = colors.gold,
|
|
locked_text = colors.base,
|
|
},
|
|
|
|
-- if tab backgrounds should be blurred
|
|
blur = false,
|
|
|
|
-- opacity multiplier for tabs
|
|
opacity = 1.0,
|
|
},
|
|
|
|
-- autotiling settings
|
|
autotile = {
|
|
enable = false,
|
|
ephemeral_groups = true,
|
|
trigger_width = 0,
|
|
trigger_height = 0,
|
|
workspaces = "all",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
|
|
|
-- Default springs
|
|
|
|
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
|
-- "Smart gaps" / "No gaps when only"
|
|
-- uncomment all if you wish to use that.
|
|
-- 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 = true,
|
|
},
|
|
})
|
|
|
|
----------------
|
|
---- MISC ----
|
|
----------------
|
|
|
|
hl.config({
|
|
misc = {
|
|
disable_hyprland_logo = true, -- If true disables the random hyprland logo / anime girl background. :(
|
|
},
|
|
})
|
|
|
|
---------------
|
|
---- INPUT ----
|
|
---------------
|
|
|
|
hl.config({
|
|
input = {
|
|
kb_layout = "us",
|
|
kb_variant = "",
|
|
kb_model = "",
|
|
kb_options = "",
|
|
kb_rules = "",
|
|
|
|
follow_mouse = 1,
|
|
|
|
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
|
|
|
touchpad = {
|
|
natural_scroll = false,
|
|
},
|
|
},
|
|
})
|
|
|
|
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 ----
|
|
---------------------
|
|
|
|
require("keybinds").setup({
|
|
terminal = terminal,
|
|
menu = menu,
|
|
browser = browser,
|
|
browserPrivate = browserPrivate,
|
|
})
|
|
|
|
--------------------------------
|
|
---- WINDOWS AND WORKSPACES ----
|
|
--------------------------------
|
|
|
|
require("windowrules")
|