Fixes directory structure
This commit is contained in:
BIN
.config/hypr/assets/.face
Normal file
BIN
.config/hypr/assets/.face
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
BIN
.config/hypr/assets/.wallpaper
Normal file
BIN
.config/hypr/assets/.wallpaper
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
BIN
.config/hypr/assets/.wallpaper-lock
Normal file
BIN
.config/hypr/assets/.wallpaper-lock
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 304 KiB |
34
.config/hypr/hypridle.conf
Normal file
34
.config/hypr/hypridle.conf
Normal file
@@ -0,0 +1,34 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })' # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||
listener {
|
||||
timeout = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
|
||||
# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 900 # 15min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 930 # 15.5min
|
||||
on-timeout = hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })' # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })' && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 1800 # 30min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
||||
504
.config/hypr/hyprland.lua
Normal file
504
.config/hypr/hyprland.lua
Normal file
@@ -0,0 +1,504 @@
|
||||
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
-- 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 ----
|
||||
------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "1920x1080@165",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
|
||||
---------------------
|
||||
---- MY PROGRAMS ----
|
||||
---------------------
|
||||
|
||||
-- Set programs that you use
|
||||
local terminal = "alacritty"
|
||||
-- local fileManager = "dolphin"
|
||||
local menu = "rofi -show drun"
|
||||
|
||||
local scripts = os.getenv("HOME") .. "/.config/hypr/scripts"
|
||||
local screenshots = os.getenv("HOME") .. "/pictures/screenshots"
|
||||
|
||||
-------------------
|
||||
---- 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("brightnessctl -sd rgb:kbd_backlight set 0")
|
||||
|
||||
-- walker dependency
|
||||
hl.exec_cmd("elephant")
|
||||
|
||||
-- Notifications
|
||||
hl.exec_cmd("swaync")
|
||||
|
||||
-- Idle management
|
||||
hl.exec_cmd("hypridle")
|
||||
|
||||
-- Night light
|
||||
hl.exec_cmd("hyprsunset -t 3500")
|
||||
|
||||
-- Network
|
||||
hl.exec_cmd("nm-applet")
|
||||
|
||||
-- Bluetooth
|
||||
hl.exec_cmd("blueman-applet")
|
||||
|
||||
-- Status bar
|
||||
-- hl.exec_cmd("waybar")
|
||||
-- hl.exec_cmd("pkill waybar; waybar &")
|
||||
hl.exec_cmd("noctalia")
|
||||
|
||||
-- Clipboard history
|
||||
hl.exec_cmd("wl-paste --type text --watch cliphist store")
|
||||
hl.exec_cmd("wl-paste --type image --watch cliphist store")
|
||||
end)
|
||||
|
||||
-------------------------------
|
||||
---- ENVIRONMENT VARIABLES ----
|
||||
-------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
||||
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
|
||||
-----------------------
|
||||
----- 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")
|
||||
|
||||
hl.env("GTK_THEME", "Adwaita-dark")
|
||||
hl.env("GTK_APPLICATION_PREFER_DARK_THEME", "1")
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
|
||||
hl.env("QT_STYLE_OVERRIDE", "kvantum")
|
||||
|
||||
-----------------------
|
||||
---- LOOK AND FEEL ----
|
||||
-----------------------
|
||||
|
||||
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 10,
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
-- 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 = "dwindle",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 5,
|
||||
rounding_power = 2,
|
||||
|
||||
-- Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
|
||||
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
||||
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } })
|
||||
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
|
||||
|
||||
-- Default springs
|
||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, 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" })
|
||||
|
||||
-- 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 = {
|
||||
force_default_wallpaper = 1, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
disable_splash_rendering = true,
|
||||
vrr = 2,
|
||||
},
|
||||
})
|
||||
|
||||
---------------
|
||||
---- INPUT ----
|
||||
---------------
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "br",
|
||||
kb_variant = "abnt2",
|
||||
kb_model = "",
|
||||
kb_options = "caps:swapescape",
|
||||
kb_rules = "",
|
||||
|
||||
numlock_by_default = false,
|
||||
|
||||
repeat_rate = 50,
|
||||
repeat_delay = 275,
|
||||
|
||||
accel_profile = "flat",
|
||||
|
||||
follow_mouse = 1,
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
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
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(terminal))
|
||||
local closeWindowBind = hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
-- closeWindowBind:set_enabled(false)
|
||||
hl.bind(
|
||||
mainMod .. " + M",
|
||||
hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'")
|
||||
)
|
||||
-- hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(terminal .. " -e yazi"))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind("ALT + Space", hl.dsp.exec_cmd(menu))
|
||||
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
|
||||
-- hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
|
||||
|
||||
-- Move focus with mainMod + arrow keys and vi motions
|
||||
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" }))
|
||||
|
||||
hl.bind(mainMod .. " + H", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + L", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + J", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + K", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
for i = 1, 10 do
|
||||
local key = i % 10 -- 10 maps to key 0
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||
end
|
||||
|
||||
-- Example special workspace (scratchpad)
|
||||
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
|
||||
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
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 mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Ctrl + Alt + Left → Previous workspace
|
||||
hl.bind("CTRL + ALT + Left", hl.dsp.focus({ workspace = "-1" }))
|
||||
|
||||
-- Ctrl + Alt + Right → Next workspace
|
||||
hl.bind("CTRL + ALT + Right", hl.dsp.focus({ workspace = "+1" }))
|
||||
|
||||
-- Move active window to the workspace on the left/right (relative)
|
||||
hl.bind(mainMod .. " + SHIFT + left", hl.dsp.window.move({ workspace = "-1", follow = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + right", hl.dsp.window.move({ workspace = "+1", follow = true }))
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind(
|
||||
"XF86AudioRaiseVolume",
|
||||
hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioLowerVolume",
|
||||
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioMute",
|
||||
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioMicMute",
|
||||
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
hl.bind(mainMod .. " + SHIFT + L", hl.dsp.exec_cmd("hyprlock"))
|
||||
hl.bind(mainMod .. " + SHIFT + C", hl.dsp.exec_cmd(scripts .. "/color-picker.sh"))
|
||||
-- hl.bind(mainMod .. " + SHIFT + R", hl.dsp.exec_cmd(scripts .. "/launch-waybar.sh"))
|
||||
-- hl.bind(mainMod .. " + SHIFT + R", hl.dsp.exec_cmd("killall -SIGUSR2 waybar"))
|
||||
|
||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
|
||||
|
||||
-- Night light toggle (3500K <-> 6500K)
|
||||
hl.bind(
|
||||
mainMod .. " + ALT + N",
|
||||
hl.dsp.exec_cmd([[sh -c '
|
||||
CUR=$(hyprctl hyprsunset temperature)
|
||||
if [ "$CUR" -lt 5000 ]; then
|
||||
hyprctl hyprsunset temperature 6500
|
||||
else
|
||||
hyprctl hyprsunset temperature 3500
|
||||
fi
|
||||
']])
|
||||
)
|
||||
-- Cooler (+250K)
|
||||
hl.bind(mainMod .. " + ALT + Right", hl.dsp.exec_cmd("hyprctl hyprsunset temperature +250"))
|
||||
-- Warmer (-250K)
|
||||
hl.bind(mainMod .. " + ALT + Left", hl.dsp.exec_cmd("hyprctl hyprsunset temperature -250"))
|
||||
-- Preset: Warm
|
||||
hl.bind(mainMod .. " + ALT + 1", hl.dsp.exec_cmd("hyprctl hyprsunset temperature 3000"))
|
||||
-- Preset: Preferred
|
||||
hl.bind(mainMod .. " + ALT + 2", hl.dsp.exec_cmd("hyprctl hyprsunset temperature 3500"))
|
||||
-- Preset: Neutral
|
||||
hl.bind(mainMod .. " + ALT + 3", hl.dsp.exec_cmd("hyprctl hyprsunset temperature 4500"))
|
||||
-- Preset: Daylight
|
||||
hl.bind(mainMod .. " + ALT + 4", hl.dsp.exec_cmd("hyprctl hyprsunset temperature 6500"))
|
||||
|
||||
-- Screenshot: region, clipboard only
|
||||
hl.bind("Print", hl.dsp.exec_cmd("hyprshot -m region --freeze --clipboard-only"))
|
||||
|
||||
-- Screenshot: active window, clipboard only
|
||||
hl.bind("ALT + Print", hl.dsp.exec_cmd("hyprshot -m window --freeze --clipboard-only"))
|
||||
|
||||
-- Screenshot: region, clipboard only
|
||||
hl.bind(mainMod .. " + Print", hl.dsp.exec_cmd("hyprshot -m region --freeze -o " .. screenshots))
|
||||
|
||||
hl.bind("mouse:275", hl.dsp.exec_cmd("equibop --toggle-mic"))
|
||||
hl.bind("mouse:276", hl.dsp.exec_cmd("equibop --toggle-deafen"))
|
||||
|
||||
-- GTK4 / libadwaita apps: prefer dark theme
|
||||
hl.exec_cmd('gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"')
|
||||
|
||||
-- GTK3 apps: use adw-gtk3 theme
|
||||
hl.exec_cmd('gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3"')
|
||||
|
||||
-- Qt apps: use qt6ct as the theme manager
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
|
||||
|
||||
hl.env("GTK_THEME", "adw-gtk3")
|
||||
hl.env("QT_STYLE_OVERRIDE", "kvantum")
|
||||
|
||||
--------------------------------
|
||||
---- 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({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
-- suppressMaximizeRule:set_enabled(false)
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
|
||||
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)
|
||||
|
||||
hl.layer_rule({
|
||||
name = "noctalia",
|
||||
match = {
|
||||
namespace = "^noctalia-(bar-.+|notification|dock|panel|attached-panel|osd)$",
|
||||
},
|
||||
no_anim = true,
|
||||
ignore_alpha = 0.5,
|
||||
blur = true,
|
||||
blur_popups = true,
|
||||
})
|
||||
|
||||
-- Hyprland-run windowrule
|
||||
hl.window_rule({
|
||||
name = "move-hyprland-run",
|
||||
match = { class = "hyprland-run" },
|
||||
|
||||
move = "20 monitor_h-120",
|
||||
float = true,
|
||||
})
|
||||
|
||||
-- focusing on bsnes won't trigger hypridle
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^Hiro$",
|
||||
},
|
||||
idle_inhibit = "focus",
|
||||
})
|
||||
125
.config/hypr/hyprlock.conf
Normal file
125
.config/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,125 @@
|
||||
$font = Monospace
|
||||
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 5, linear
|
||||
animation = inputFieldDots, 1, 2, linear
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = ~/.config/hypr/assets/.wallpaper-lock
|
||||
blur_passes = 3
|
||||
blur_size = 1
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 2
|
||||
inner_color = rgba(0, 0, 0, 0.0)
|
||||
|
||||
# outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
# check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
||||
# fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
||||
|
||||
outer_color = rgba(ffffffee)
|
||||
check_color = rgba(00ffffee)
|
||||
fail_color = rgba(ff0000ee)
|
||||
|
||||
font_color = rgb(143, 143, 143)
|
||||
fade_on_empty = false
|
||||
rounding = 15
|
||||
|
||||
font_family = $font
|
||||
placeholder_text = <i>Password...</i>
|
||||
fail_text = $PAMFAIL$FPRINTFAIL
|
||||
|
||||
check_text = Authenticating...
|
||||
|
||||
dots_text_format = *
|
||||
# dots_size = 0.4
|
||||
dots_spacing = 0.3
|
||||
|
||||
position = 0, -30
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] date +"%A, %d %B %Y"
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
image {
|
||||
monitor =
|
||||
path = ~/.config/hypr/assets/.face
|
||||
size = 200
|
||||
rounding = -1
|
||||
border_size = 2
|
||||
border_color = rgb(bd93f9)
|
||||
|
||||
position = 0, 220
|
||||
halign = center
|
||||
valign = center
|
||||
|
||||
onclick = canberra-gtk-play -i dialog-warning
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $USER
|
||||
font_size = 30
|
||||
font_family = $font
|
||||
|
||||
position = 0, 80
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = The roundest dragon
|
||||
font_size = 12
|
||||
font_family = $font
|
||||
|
||||
position = 0, 40
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Music widget - shows play/pause status, track info, and progress bar
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] bash ~/.config/hypr/hyprlock-music.sh
|
||||
font_size = 16
|
||||
font_family = $font
|
||||
color = rgb(bd93f9)
|
||||
|
||||
position = 0, 60
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
5
.config/hypr/hyprpaper.conf
Normal file
5
.config/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
wallpaper {
|
||||
monitor =
|
||||
path = ~/.config/hypr/assets/.wallpaper
|
||||
fit_mode = cover
|
||||
}
|
||||
42
.config/hypr/scripts/color-picker.sh
Executable file
42
.config/hypr/scripts/color-picker.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Pick the color in HEX
|
||||
HEX="$(hyprpicker --no-fancy --format hex)"
|
||||
|
||||
# User cancelled
|
||||
[[ -z "$HEX" ]] && exit 0
|
||||
|
||||
# Remove leading '#'
|
||||
HEX="${HEX#\#}"
|
||||
|
||||
# Convert HEX -> RGB
|
||||
R=$((16#${HEX:0:2}))
|
||||
G=$((16#${HEX:2:2}))
|
||||
B=$((16#${HEX:4:2}))
|
||||
|
||||
HEX_OUT="#$HEX"
|
||||
RGB_OUT="$R, $G, $B"
|
||||
|
||||
# Copy HEX to clipboard
|
||||
printf "%s" "$HEX_OUT" | wl-copy
|
||||
|
||||
# Notify
|
||||
# notify-send \
|
||||
# --app-name="Hyprpicker" \
|
||||
# --icon="applications-graphics" \
|
||||
# "🎨 Color Picked" \
|
||||
# "HEX: $HEX_OUT\nRGB: $RGB_OUT\n\nHEX copied to clipboard"
|
||||
|
||||
ICON="/tmp/hyprpicker-color.png"
|
||||
|
||||
magick -size 64x64 "xc:$HEX_OUT" "$ICON"
|
||||
|
||||
notify-send \
|
||||
--app-name="Hyprpicker" \
|
||||
--icon="$ICON" \
|
||||
"🎨 Color Picked" \
|
||||
"\nHEX: $HEX_OUT\nRGB: $RGB_OUT\n\nHEX copied to clipboard"
|
||||
|
||||
rm -f "$ICON"
|
||||
41
.config/hypr/scripts/hyprlock-media.sh
Executable file
41
.config/hypr/scripts/hyprlock-media.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Outputs current media status for hyprlock's label widget.
|
||||
# Format: <icon> Artist - Title [progress bar] m:ss/m:ss
|
||||
|
||||
if ! command -v playerctl &>/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
status=$(playerctl status 2>/dev/null)
|
||||
|
||||
case "$status" in
|
||||
Playing) icon="⏵" ;;
|
||||
Paused) icon="⏸" ;;
|
||||
*) exit 0 ;; # nothing playing / no player -> blank label
|
||||
esac
|
||||
|
||||
artist=$(playerctl metadata artist 2>/dev/null)
|
||||
title=$(playerctl metadata title 2>/dev/null)
|
||||
|
||||
position=$(playerctl position 2>/dev/null | cut -d. -f1)
|
||||
length_us=$(playerctl metadata mpris:length 2>/dev/null)
|
||||
length=$((length_us / 1000000))
|
||||
|
||||
format_time() {
|
||||
printf '%d:%02d' $(($1 / 60)) $(($1 % 60))
|
||||
}
|
||||
|
||||
bar_width=20
|
||||
if [[ -n "$length" && "$length" -gt 0 && -n "$position" ]]; then
|
||||
filled=$((position * bar_width / length))
|
||||
((filled > bar_width)) && filled=$bar_width
|
||||
empty=$((bar_width - filled))
|
||||
bar="$(printf '█%.0s' $(seq 1 $filled 2>/dev/null))$(printf '░%.0s' $(seq 1 $empty 2>/dev/null))"
|
||||
time_str="$(format_time "$position")/$(format_time "$length")"
|
||||
else
|
||||
bar=""
|
||||
time_str=""
|
||||
fi
|
||||
|
||||
echo "$icon $artist - $title $bar $time_str"
|
||||
12
.config/hypr/scripts/launch-waybar.sh
Executable file
12
.config/hypr/scripts/launch-waybar.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
CONFIG="$HOME/.config/hypr/waybar/config"
|
||||
STYLE="$HOME/.config/hypr/waybar/style.css"
|
||||
|
||||
if [[ $(pgrep -x "waybar") = "waybar" ]]; then
|
||||
killall waybar
|
||||
else
|
||||
if [[ $(pgrep -x "waybar") = "" ]]; then
|
||||
waybar -c $CONFIG -s $STYLE >/dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user