mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-06-11 21:13:32 -07:00
add hyprland lua files
This commit is contained in:
@@ -0,0 +1,411 @@
|
||||
-- This is an example Hyprland config file.
|
||||
-- Refer to the wiki for more information.
|
||||
-- https://wiki.hyprland.org/Configuring/
|
||||
|
||||
-- Please note not all available settings / options are set here.
|
||||
-- For a full list, see the wiki
|
||||
|
||||
-- You can split this configuration into multiple files
|
||||
-- Create your files separately and then link them to this file like this:
|
||||
-- source = ~/.config/hypr/myColors.conf
|
||||
|
||||
--###############
|
||||
--## MONITORS ###
|
||||
--###############
|
||||
|
||||
-- See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "3840x2160@60",
|
||||
position = "0x0",
|
||||
scale = "2",
|
||||
vrr = 0,
|
||||
})
|
||||
|
||||
-- Source: ~/.config/hypr/keybindings.conf — convert this file to Lua and ensure it is on Lua's package.path.
|
||||
require("keybindings")
|
||||
-- source = ~/.config/hypr/env.conf
|
||||
-- unscale XWayland
|
||||
|
||||
local terminal = "uwsm app -- ghostty"
|
||||
local fileManager = "uwsm app -- dolphin"
|
||||
local menu = "rofi -show drun -run-command \"uwsm app -- {cmd}\""
|
||||
local notification_daemon = "uwsm app -- swaync"
|
||||
|
||||
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.0 } } })
|
||||
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
|
||||
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,
|
||||
bezier = "easeOutQuint",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsIn",
|
||||
enabled = true,
|
||||
speed = 4.1,
|
||||
bezier = "easeOutQuint",
|
||||
style = "slide",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsOut",
|
||||
enabled = true,
|
||||
speed = 1.49,
|
||||
bezier = "easeOutQuint",
|
||||
style = "slide",
|
||||
})
|
||||
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 = "slidefade",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "workspacesIn",
|
||||
enabled = true,
|
||||
speed = 1.21,
|
||||
bezier = "almostLinear",
|
||||
style = "slidefade",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "workspacesOut",
|
||||
enabled = true,
|
||||
speed = 1.94,
|
||||
bezier = "almostLinear",
|
||||
style = "slidefade",
|
||||
})
|
||||
|
||||
hl.device({
|
||||
name = "epic-mouse-v1",
|
||||
sensitivity = -0.5,
|
||||
})
|
||||
|
||||
hl.workspace_rule({
|
||||
workspace = "w[1-10]",
|
||||
monitor = "eDP-1",
|
||||
persistent = false,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "discord",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "mpv",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "discord",
|
||||
},
|
||||
workspace = "10 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = ".* fullscreen:0",
|
||||
},
|
||||
opacity = 0.88,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "mpv fullscreen:0",
|
||||
},
|
||||
opacity = 1,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "anki fullscreen:0",
|
||||
},
|
||||
opacity = 1,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "remote-viewer",
|
||||
},
|
||||
opacity = 1,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = ".*",
|
||||
},
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = 1,
|
||||
floating = 1,
|
||||
fullscreen = 0,
|
||||
pinned = 0,
|
||||
},
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(zen)$",
|
||||
},
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(xwaylandvideobridge)$",
|
||||
},
|
||||
opacity = "0.0 override",
|
||||
no_anim = true,
|
||||
no_initial_focus = true,
|
||||
-- TODO: manual review — unmapped window rule action: "maxsize 1 1"
|
||||
blur = false,
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
hl.config({
|
||||
xwayland = {
|
||||
force_zero_scaling = true,
|
||||
},
|
||||
--##################
|
||||
--## MY PROGRAMS ###
|
||||
--##################
|
||||
-- See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
-- Set programs that you use
|
||||
-- $notification_daemon = dunst
|
||||
--################
|
||||
--## AUTOSTART ###
|
||||
--################
|
||||
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
-- Or execute your favorite apps at launch like this:
|
||||
--############################
|
||||
--## ENVIRONMENT VARIABLES ###
|
||||
--############################
|
||||
-- See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
-- env = XCURSOR_SIZE,24
|
||||
-- env = HYPRCURSOR_SIZE,24
|
||||
-- done in ../uswm/env and ../uswm/env-hyprland
|
||||
--####################
|
||||
--## LOOK AND FEEL ###
|
||||
--####################
|
||||
-- Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 8,
|
||||
border_size = 2,
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col = {
|
||||
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
-- Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false,
|
||||
-- Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
layout = "dwindle",
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
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 = "rgba(1a1a1aee)",
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 7,
|
||||
passes = 2,
|
||||
xray = true,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations = {
|
||||
enabled = "yes, please :)",
|
||||
-- Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
-- animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
-- animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
},
|
||||
-- Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
-- "Smart gaps" / "No gaps when only"
|
||||
-- uncomment all if you wish to use that.
|
||||
-- workspace = w[tv1], gapsout:0, gapsin:0
|
||||
-- workspace = f[1], gapsout:0, gapsin:0
|
||||
-- windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
-- windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
-- windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
|
||||
-- windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
|
||||
-- See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle = {
|
||||
pseudotile = true, -- Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true, -- You probably want this
|
||||
},
|
||||
-- See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master = {
|
||||
new_status = "master",
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc = {
|
||||
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
font_family = "JetBrainsMono Nerd Font",
|
||||
},
|
||||
--############
|
||||
--## INPUT ###
|
||||
--############
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = "",
|
||||
kb_model = "pc104",
|
||||
kb_options = "caps:escape_shifted_capslock",
|
||||
kb_rules = "",
|
||||
follow_mouse = 1,
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
},
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures = {
|
||||
workspace_swipe = true,
|
||||
workspace_swipe_fingers = 3,
|
||||
},
|
||||
-- Example per-device config
|
||||
-- See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
render = {
|
||||
explicit_sync = true,
|
||||
},
|
||||
-- {{{ WORKSPACES
|
||||
-- workspace = name:,monitor:DP-1
|
||||
-- workspace = 2,monitor:DP-1,defaultName:
|
||||
-- workspace = 2,monitor:DP-1,persistent:false
|
||||
-- workspace = 3,monitor:DP-1,persistent:false
|
||||
-- workspace = 4,monitor:DP-1,persistent:false
|
||||
-- workspace = 5,monitor:DP-1,persistent:false
|
||||
-- workspace = 6,monitor:DP-3,persistent:false,default:true
|
||||
-- workspace = 7,monitor:DP-3,persistent:false
|
||||
-- workspace = 8,monitor:DP-3,persistent:false
|
||||
-- workspace = 9,monitor:DP-3,persistent:false
|
||||
-- workspace = 10,monitor:DP-3,persistent:false
|
||||
-- }}}
|
||||
--#############################
|
||||
--## WINDOWS AND WORKSPACES ###
|
||||
--#############################
|
||||
-- See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
-- See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
-- Example windowrule v1
|
||||
-- windowrulev2 = float, class:com.mitchellh.ghostty
|
||||
-- windowrulev2 = opacity 1, class:.* fullscreen:0
|
||||
-- Example windowrule v2
|
||||
-- windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
-- Ignore maximize requests from apps. You'll probably like this.
|
||||
-- Fix some dragging issues with XWayland
|
||||
-- https://github.com/hyprwm/Hyprland/issues/3835#issuecomment-2004448245
|
||||
-- exec-once = $HOME/.local/bin/bitwarden-nofloat.sh
|
||||
-- ENABLE_HDR_WSI=1 mpv --vo=gpu-next --target-colorspace-hint --gpu-api=vulkan --gpu-context=waylandvk "filename"
|
||||
-- {{{ Screen sharing workaround: https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/#xwayland
|
||||
-- }}}
|
||||
})
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("uwsm app -sb -- hyprpm update -nn")
|
||||
hl.exec_cmd("uwsm app -sb -- hyprpm reload -nn")
|
||||
hl.exec_cmd(notification_daemon)
|
||||
hl.exec_cmd(terminal)
|
||||
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm update -nn")
|
||||
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm reload -nn")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- nm-applet")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- hyprsunset")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- polkit-kde-authentication-agent-1.desktop")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- variety")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- fcitx5")
|
||||
hl.exec_cmd("waybar -c " .. HOME .. "/.config/waybar/catppuccin-macchiato/config-battery.jsonc -s " .. HOME .. "/.config/waybar/catppuccin-macchiato/style.css")
|
||||
end)
|
||||
|
||||
@@ -0,0 +1,421 @@
|
||||
-- This is an example Hyprland config file.
|
||||
-- Refer to the wiki for more information.
|
||||
-- https://wiki.hyprland.org/Configuring/
|
||||
|
||||
-- Please note not all available settings / options are set here.
|
||||
-- For a full list, see the wiki
|
||||
|
||||
-- You can split this configuration into multiple files
|
||||
-- Create your files separately and then link them to this file like this:
|
||||
-- source = ~/.config/hypr/myColors.conf
|
||||
|
||||
--###############
|
||||
--## MONITORS ###
|
||||
--###############
|
||||
|
||||
-- See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
-- monitor=DP-1,2560x1440@144,0x0,1
|
||||
-- monitor=DP-3,2560x1440@144,2560x0,1
|
||||
-- vrr 2 enables vrr if application is fullscreen
|
||||
-- vrr 3 enables vrr if application is fullscreen and video or game content
|
||||
-- monitor = DP-1, 3440x1440@240,0x0,1,vrr,3
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
hl.monitor({
|
||||
output = "DP-1",
|
||||
mode = "3440x1440@240",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
vrr = 2,
|
||||
-- cm = srgb
|
||||
-- Optional HDR settings
|
||||
cm = "hdr",
|
||||
bitdepth = 10,
|
||||
sdr_min_luminance = 0.005,
|
||||
sdr_max_luminance = 200,
|
||||
min_luminance = 0,
|
||||
max_luminance = 1000,
|
||||
max_avg_luminance = 200,
|
||||
sdrbrightness = 1.0,
|
||||
sdrsaturation = 0.98,
|
||||
})
|
||||
|
||||
-- Source: ~/.config/hypr/keybindings.conf — convert this file to Lua and ensure it is on Lua's package.path.
|
||||
require("keybindings")
|
||||
-- Source: ~/.config/hypr/windowrules.conf — convert this file to Lua and ensure it is on Lua's package.path.
|
||||
require("windowrules")
|
||||
-- Source: ~/.config/hypr/macchiato.conf — convert this file to Lua and ensure it is on Lua's package.path.
|
||||
-- require("macchiato")
|
||||
|
||||
local rosewater = "rgb(f4dbd6)"
|
||||
local rosewaterAlpha = "f4dbd6"
|
||||
|
||||
local flamingo = "rgb(f0c6c6)"
|
||||
local flamingoAlpha = "f0c6c6"
|
||||
|
||||
local pink = "rgb(f5bde6)"
|
||||
local pinkAlpha = "f5bde6"
|
||||
|
||||
local mauve = "rgb(c6a0f6)"
|
||||
local mauveAlpha = "c6a0f6"
|
||||
|
||||
local red = "rgb(ed8796)"
|
||||
local redAlpha = "ed8796"
|
||||
|
||||
local maroon = "rgb(ee99a0)"
|
||||
local maroonAlpha = "ee99a0"
|
||||
|
||||
local peach = "rgb(f5a97f)"
|
||||
local peachAlpha = "f5a97f"
|
||||
|
||||
local yellow = "rgb(eed49f)"
|
||||
local yellowAlpha = "eed49f"
|
||||
|
||||
local green = "rgb(a6da95)"
|
||||
local greenAlpha = "a6da95"
|
||||
|
||||
local teal = "rgb(8bd5ca)"
|
||||
local tealAlpha = "8bd5ca"
|
||||
|
||||
local sky = "rgb(91d7e3)"
|
||||
local skyAlpha = "91d7e3"
|
||||
|
||||
local sapphire = "rgb(7dc4e4)"
|
||||
local sapphireAlpha = "7dc4e4"
|
||||
|
||||
local blue = "rgb(8aadf4)"
|
||||
local blueAlpha = "8aadf4"
|
||||
|
||||
local lavender = "rgb(b7bdf8)"
|
||||
local lavenderAlpha = "b7bdf8"
|
||||
|
||||
local text = "rgb(cad3f5)"
|
||||
local textAlpha = "cad3f5"
|
||||
|
||||
local subtext1 = "rgb(b8c0e0)"
|
||||
local subtext1Alpha = "b8c0e0"
|
||||
|
||||
local subtext0 = "rgb(a5adcb)"
|
||||
local subtext0Alpha = "a5adcb"
|
||||
|
||||
local overlay2 = "rgb(939ab7)"
|
||||
local overlay2Alpha = "939ab7"
|
||||
|
||||
local overlay1 = "rgb(8087a2)"
|
||||
local overlay1Alpha = "8087a2"
|
||||
|
||||
local overlay0 = "rgb(6e738d)"
|
||||
local overlay0Alpha = "6e738d"
|
||||
|
||||
local surface2 = "rgb(5b6078)"
|
||||
local surface2Alpha = "5b6078"
|
||||
|
||||
local surface1 = "rgb(494d64)"
|
||||
local surface1Alpha = "494d64"
|
||||
|
||||
local surface0 = "rgb(363a4f)"
|
||||
local surface0Alpha = "363a4f"
|
||||
|
||||
local base = "rgb(24273a)"
|
||||
local baseAlpha = "24273a"
|
||||
|
||||
local mantle = "rgb(1e2030)"
|
||||
local mantleAlpha = "1e2030"
|
||||
|
||||
local crust = "rgb(181926)"
|
||||
local crustAlpha = 181926
|
||||
|
||||
-- unscale XWayland
|
||||
|
||||
local terminal = "uwsm app -- ghostty +new-window"
|
||||
local fileManager = "uwsm app -- thunar"
|
||||
local menu = 'rofi -show drun -run-command "uwsm app -- {cmd}"'
|
||||
local notification_daemon = "uwsm app -- swaync -c ~/.config/swaync/config.json"
|
||||
|
||||
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.0 } } })
|
||||
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
|
||||
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,
|
||||
bezier = "easeOutQuint",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsIn",
|
||||
enabled = true,
|
||||
speed = 4.1,
|
||||
bezier = "easeOutQuint",
|
||||
style = "slide",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsOut",
|
||||
enabled = true,
|
||||
speed = 1.49,
|
||||
bezier = "linear",
|
||||
style = "slide",
|
||||
})
|
||||
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 = "slidefade",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "workspacesIn",
|
||||
enabled = true,
|
||||
speed = 1.21,
|
||||
bezier = "almostLinear",
|
||||
style = "slidefade",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "workspacesOut",
|
||||
enabled = true,
|
||||
speed = 1.94,
|
||||
bezier = "almostLinear",
|
||||
style = "slidefade",
|
||||
})
|
||||
|
||||
hl.device({
|
||||
name = "epic-mouse-v1",
|
||||
sensitivity = -0.5,
|
||||
})
|
||||
|
||||
hl.layer_rule({
|
||||
name = "fix-rofi",
|
||||
match = {
|
||||
namespace = "rofi",
|
||||
},
|
||||
-- TODO: manual review — unmapped layer rule: "no_anim"
|
||||
})
|
||||
|
||||
hl.config({
|
||||
xwayland = {
|
||||
force_zero_scaling = true,
|
||||
},
|
||||
--##################
|
||||
--## MY PROGRAMS ###
|
||||
--##################
|
||||
-- See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
-- Set programs that you use
|
||||
-- $notification_daemon = dunst
|
||||
--################
|
||||
--## AUTOSTART ###
|
||||
--################
|
||||
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
-- Or execute your favorite apps at launch like this:
|
||||
-- exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
--############################
|
||||
--## ENVIRONMENT VARIABLES ###
|
||||
--############################
|
||||
-- See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
-- env = XCURSOR_SIZE,24
|
||||
-- env = HYPRCURSOR_SIZE,24
|
||||
-- done in ../uswm/env and ../uswm/env-hyprland
|
||||
--####################
|
||||
--## LOOK AND FEEL ###
|
||||
--####################
|
||||
-- Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 8,
|
||||
border_size = 2,
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col = {
|
||||
active_border = {
|
||||
colors = { "rgba(" .. mauveAlpha .. "ff)" },
|
||||
angle = 45,
|
||||
},
|
||||
inactive_border = "rgba(" .. overlay0Alpha .. "ff)",
|
||||
},
|
||||
-- Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false,
|
||||
-- Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
layout = "scrolling",
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
rounding_power = 2,
|
||||
-- Change transparency of focused and unfocused windows
|
||||
-- active_opacity = 0.88
|
||||
active_opacity = 1.0,
|
||||
-- inactive_opacity = 0.88
|
||||
inactive_opacity = 1.0,
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = "rgba(" .. surface0Alpha .. "ff)",
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 7,
|
||||
passes = 2,
|
||||
xray = true,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations = {
|
||||
enabled = true,
|
||||
-- Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
-- slide, slidevert, fade, slidefade, slidefadevert
|
||||
-- animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
-- animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
},
|
||||
-- Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
-- "Smart gaps" / "No gaps when only"
|
||||
-- uncomment all if you wish to use that.
|
||||
-- workspace = w[tv1], gapsout:0, gapsin:0
|
||||
-- workspace = f[1], gapsout:0, gapsin:0
|
||||
-- See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle = {
|
||||
-- pseudotile = false, -- Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true,
|
||||
split_width_multiplier = 1.69,
|
||||
},
|
||||
scrolling = {
|
||||
fullscreen_on_one_column = true,
|
||||
},
|
||||
-- See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master = {
|
||||
new_status = "slave",
|
||||
allow_small_split = false,
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc = {
|
||||
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
font_family = "Manrope ExtraLight Medium, JetBrainsMono Nerd Font, M PLUS 1",
|
||||
},
|
||||
--############
|
||||
--## INPUT ###
|
||||
--############
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = "",
|
||||
kb_model = "pc86",
|
||||
kb_options = "caps:escape_shifted_capslock",
|
||||
kb_rules = "",
|
||||
follow_mouse = 1,
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
touchpad = {
|
||||
natural_scroll = false,
|
||||
},
|
||||
},
|
||||
-- https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures = {
|
||||
-- workspace_swipe = false
|
||||
},
|
||||
-- Example per-device config
|
||||
-- See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
render = {
|
||||
-- explicit_sync = true
|
||||
},
|
||||
-- {{{ WORKSPACES - HANDLED IN WAYBAR CONFIG
|
||||
-- See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
-- workspace = name:,monitor:DP-1
|
||||
-- workspace = 2,monitor:DP-1,defaultName:
|
||||
-- workspace = 2,monitor:DP-1,persistent:false
|
||||
-- workspace = 3,monitor:DP-1,persistent:false
|
||||
-- workspace = 4,monitor:DP-1,persistent:false
|
||||
-- workspace = 5,monitor:DP-1,persistent:false
|
||||
-- workspace = 6,monitor:DP-3,persistent:false,default:true
|
||||
-- workspace = 7,monitor:DP-3,persistent:false
|
||||
-- workspace = 8,monitor:DP-3,persistent:false
|
||||
-- workspace = 9,monitor:DP-3,persistent:false
|
||||
-- workspace = 10,monitor:DP-3,persistent:false
|
||||
-- }}}
|
||||
-- windowrule = match:class my-window, border_size 10
|
||||
debug = {
|
||||
disable_logs = true,
|
||||
enable_stdout_logs = false,
|
||||
},
|
||||
})
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("uwsm app -sb -- hyprpm update -n")
|
||||
hl.exec_cmd("uwsm app -sb -- hyprpm reload -n")
|
||||
hl.exec_cmd(notification_daemon)
|
||||
hl.exec_cmd(terminal)
|
||||
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm update -n")
|
||||
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm reload -n")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- nm-applet")
|
||||
hl.exec_cmd(
|
||||
"uwsm app -sb -t service -- waybar -c ~/.config/waybar/catppuccin-macchiato/config.jsonc -s ~/.config/waybar/catppuccin-macchiato/style.css"
|
||||
)
|
||||
hl.exec_cmd("uwsm app -sb -t service -- /usr/lib/polkit-kde-authentication-agent-1")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- gnome-keyring-daemon --start --components=secrets,ssh,pkcs11")
|
||||
hl.exec_cmd("uwsm app -sb -t service -- tailscale systray")
|
||||
hl.exec_cmd("~/.local/bin/aria")
|
||||
end)
|
||||
@@ -0,0 +1,63 @@
|
||||
-- sample hyprlock.conf
|
||||
-- for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
||||
--
|
||||
-- rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
|
||||
-- ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
|
||||
--
|
||||
-- shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
|
||||
--
|
||||
-- you can get started by copying this config to ~/.config/hypr/hyprlock.conf
|
||||
--
|
||||
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
local font = "Manrope ExtraLight"
|
||||
|
||||
-- TODO: manual review — unknown section 'auth {' on line 19
|
||||
|
||||
hl.curve("linear", { type = "bezier", points = { { 1, 1 }, { 0, 0 } } })
|
||||
hl.animation({
|
||||
leaf = "fadeIn",
|
||||
enabled = true,
|
||||
speed = 5,
|
||||
bezier = "linear",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "fadeOut",
|
||||
enabled = true,
|
||||
speed = 5,
|
||||
bezier = "linear",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "inputFieldDots",
|
||||
enabled = true,
|
||||
speed = 2,
|
||||
bezier = "linear",
|
||||
})
|
||||
|
||||
-- TODO: manual review — unknown section 'background {' on line 36
|
||||
|
||||
-- TODO: manual review — unknown section 'input-field {' on line 42
|
||||
-- uncomment to use a letter instead of a dot to indicate the typed password
|
||||
-- dots_text_format = *
|
||||
-- dots_size = 0.4
|
||||
-- uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
|
||||
-- hide_input = true
|
||||
|
||||
-- TODO: manual review — unknown section 'label {' on line 74
|
||||
|
||||
-- TODO: manual review — unknown section 'label {' on line 86
|
||||
|
||||
-- TODO: manual review — unknown section 'label {' on line 97
|
||||
hl.config({
|
||||
general = {
|
||||
hide_cursor = false,
|
||||
},
|
||||
-- uncomment to enable fingerprint authentication
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
-- TIME
|
||||
-- DATE
|
||||
})
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
-- TODO: manual review — unknown section 'theme {' on line 1
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
-- TODO: manual review — top-level key 'max-gamma = 100' has no enclosing section
|
||||
|
||||
-- TODO: manual review — unknown section 'profile {' on line 3
|
||||
|
||||
-- TODO: manual review — unknown section 'profile {' on line 8
|
||||
@@ -0,0 +1,209 @@
|
||||
-- Set programs that you use
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
local terminal = "FONTCONFIG_FILE=/home/sudacode/.config/ghostty/ghostty-fonts.conf uwsm app -sa -- ghostty"
|
||||
local fileManager = "uwsm app -sa -- thunar"
|
||||
-- $menu = rofi -show drun
|
||||
-- https://github.com/Vladimir-csp/uwsm#2-service-startup-notification-and-vars-set-by-compositor
|
||||
-- $menu = rofi -show drun -run-command "uwsm app -- {cmd}"
|
||||
local menu = "~/.config/rofi/launchers/type-6/launcher.sh 1"
|
||||
-- See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
local mainMod = "ALT" -- Sets "Windows" key as main modifier
|
||||
|
||||
-- Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
hl.bind("SUPER + SUPER_L", hl.dsp.exec_cmd("~/.config/rofi/launchers/type-2/launcher.sh 10"))
|
||||
hl.bind(mainMod .. " + RETURN", hl.dsp.exec_cmd(terminal))
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
hl.bind(mainMod .. " + SHIFT + M", hl.dsp.exec_cmd("uwsm stop"))
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + d", hl.dsp.exec_cmd(menu))
|
||||
-- bind = $mainMod, P, pseudo, # dwindle
|
||||
hl.bind(mainMod .. " + SHIFT + p", hl.dsp.exec_cmd("~/.local/bin/hyprland-pin.sh"))
|
||||
-- bind = $mainMod, t, togglesplit, # dwindle
|
||||
hl.bind(mainMod .. " + f", hl.dsp.window.fullscreen(""))
|
||||
hl.bind(mainMod .. " + i", hl.dsp.window.cycle_next(""))
|
||||
|
||||
-- Move focus with mainMod + arrow keys
|
||||
hl.bind(mainMod .. " + h", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + l", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + k", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + j", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
hl.bind(mainMod .. " + SHIFT + j", hl.dsp.window.move({ direction = "d" }))
|
||||
hl.bind(mainMod .. " + SHIFT + k", hl.dsp.window.move({ direction = "u" }))
|
||||
hl.bind(mainMod .. " + SHIFT + h", hl.dsp.window.move({ direction = "l" }))
|
||||
hl.bind(mainMod .. " + SHIFT + l", hl.dsp.window.move({ direction = "r" }))
|
||||
hl.bind(mainMod .. " + SHIFT + c", hl.dsp.window.center())
|
||||
|
||||
-- Move focus to next monitor
|
||||
hl.bind("CTRL+ALT + j", hl.dsp.focus({ monitor = "r" }))
|
||||
hl.bind("CTRL+ALT + k", hl.dsp.focus({ monitor = "l" }))
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
hl.bind(mainMod .. " + 1", hl.dsp.focus({ workspace = 1 }))
|
||||
hl.bind(mainMod .. " + 2", hl.dsp.focus({ workspace = 2 }))
|
||||
hl.bind(mainMod .. " + 3", hl.dsp.focus({ workspace = 3 }))
|
||||
hl.bind(mainMod .. " + 4", hl.dsp.focus({ workspace = 4 }))
|
||||
hl.bind(mainMod .. " + 5", hl.dsp.focus({ workspace = 5 }))
|
||||
hl.bind(mainMod .. " + 6", hl.dsp.focus({ workspace = 6 }))
|
||||
hl.bind(mainMod .. " + 7", hl.dsp.focus({ workspace = 7 }))
|
||||
hl.bind(mainMod .. " + 8", hl.dsp.focus({ workspace = 8 }))
|
||||
hl.bind(mainMod .. " + 9", hl.dsp.focus({ workspace = 9 }))
|
||||
hl.bind(mainMod .. " + 0", hl.dsp.focus({ workspace = 10 }))
|
||||
|
||||
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
hl.bind(mainMod .. " + SHIFT + 1", hl.dsp.window.move({ workspace = 1, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 2", hl.dsp.window.move({ workspace = 2, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 3", hl.dsp.window.move({ workspace = 3, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 4", hl.dsp.window.move({ workspace = 4, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 5", hl.dsp.window.move({ workspace = 5, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 6", hl.dsp.window.move({ workspace = 6, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 7", hl.dsp.window.move({ workspace = 7, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 8", hl.dsp.window.move({ workspace = 8, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 9", hl.dsp.window.move({ workspace = 9, silent = true }))
|
||||
hl.bind(mainMod .. " + SHIFT + 0", hl.dsp.window.move({ workspace = 10, silent = true }))
|
||||
|
||||
-- Example special workspace (scratchpad)
|
||||
hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("magic"))
|
||||
hl.bind("CTRL + 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())
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize())
|
||||
|
||||
-- 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("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"), { locked = true, repeating = true })
|
||||
hl.bind("F12", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("F11", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
|
||||
hl.bind("F10", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("mpc next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("mpc toggle"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("mpc toggle"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("mpc prev"), { locked = true })
|
||||
hl.bind("F9", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("F8", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("F7", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
-- bindl = , XF86AudioStop, exec, mpc stop
|
||||
|
||||
-- rofi
|
||||
hl.bind(mainMod .. " + SHIFT + v", hl.dsp.exec_cmd("uwsm app -sb -- rofi-rbw"))
|
||||
-- bind = $mainMod, w, exec, rofi -show window -theme $HOME/.config/rofi/launchers/type-2/style-2.rasi -dpi 96 -theme-str 'window {width: 35%;}'
|
||||
hl.bind(mainMod .. " + SHIFT + w", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-wallpaper.sh"))
|
||||
hl.bind(mainMod .. " + SHIFT + d", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-docs.sh"))
|
||||
hl.bind("SUPER + SHIFT + j", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-jellyfin-dir.sh"))
|
||||
hl.bind("SUPER + t", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-launch-texthooker-steam.sh"))
|
||||
hl.bind(mainMod .. " + SHIFT + t", hl.dsp.exec_cmd("~/projects/scripts/popup-ai-translator.py"))
|
||||
hl.bind("SUPER + SHIFT + g", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-vn-helper.sh"))
|
||||
hl.bind(mainMod .. " + SHIFT + i", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-image-browser.sh"))
|
||||
|
||||
-- ncmcppp
|
||||
hl.bind(mainMod .. " + n", hl.dsp.exec_cmd("uwsm app -sb -- ghostty --command=/usr/bin/ncmpcpp"))
|
||||
|
||||
-- notifications
|
||||
hl.bind(mainMod .. " + SHIFT + n", hl.dsp.exec_cmd("swaync-client -t"))
|
||||
|
||||
-- mpv add
|
||||
hl.bind("SUPER + m", hl.dsp.exec_cmd("~/.local/bin/mpv-add.sh"))
|
||||
|
||||
hl.bind("SUPER + SHIFT + s", hl.dsp.exec_cmd("slurp | grim -g - - | wl-copy"))
|
||||
hl.bind("code:107", hl.dsp.exec_cmd("~/.local/bin/screenshot"))
|
||||
hl.bind("SHIFT + code:107", hl.dsp.exec_cmd("~/.local/bin/screenshot-active-window.sh"))
|
||||
hl.bind("SUPER + code:107", hl.dsp.exec_cmd("~/.local/bin/screenshot-active-window.sh -s"))
|
||||
hl.bind("SUPER + o", hl.dsp.exec_cmd("~/.local/bin/ocr.sh"))
|
||||
hl.bind(mainMod .. " + o", hl.dsp.exec_cmd("~/.local/bin/rofi-open tab"))
|
||||
-- bind = $mainMod SHIFT, o, exec, ~/.local/bin/rofi-open window
|
||||
|
||||
-- change wallpaper
|
||||
hl.bind(mainMod .. " + CTRL + n", hl.dsp.exec_cmd("~/.local/bin/change-wallpaper"))
|
||||
|
||||
-- toggle focus between current and last focused window
|
||||
-- hl.bind("ALT + Tab", hl.dsp.focus({ urgent_or_last = true }))
|
||||
-- hl.bind("ALT + Tab", hl.dsp.window.cycle_next())
|
||||
hl.bind("ALT + Tab", hl.dsp.focus({ last = true }))
|
||||
|
||||
hl.bind("CTRL + F9", hl.dsp.pass({ window = "class:^(com\\.obsproject\\.Studio)$" }))
|
||||
hl.bind("CTRL + F10", hl.dsp.pass({ window = "class:^(com\\.obsproject\\.Studio)$" }))
|
||||
|
||||
hl.bind("CTRL + SHIFT + D", hl.dsp.exec_cmd("~/.local/bin/dragon"))
|
||||
hl.bind("CTRL + ALT + F", hl.dsp.exec_cmd("~/.local/bin/favorite-wallpaper"))
|
||||
|
||||
hl.bind(mainMod .. " + z", hl.dsp.exec_cmd("uwsm app -sb -- zen-browser"))
|
||||
|
||||
hl.bind(
|
||||
mainMod .. " + SHIFT + s",
|
||||
hl.dsp.exec_cmd(
|
||||
'rofi -show ssh -theme "'
|
||||
.. "~/.config/rofi/launchers/type-2/style-2.rasi\" -terminal -theme-str 'window{width: 25%;} listview {columns: 1; lines: 10;}' ghostty -ssh-command \"ghostty --initial-command='TERM=kitty ssh {host}'\""
|
||||
)
|
||||
)
|
||||
|
||||
-- reload monitors
|
||||
-- hl.bind(
|
||||
-- "CTRL" .. mainMod .. " + SHIFT + R",
|
||||
-- hl.dsp.exec_cmd("hyprctl dispatch dpms off && sleep 1 && hyprctl dispatch dpms on")
|
||||
-- )
|
||||
|
||||
-- Disable keybinds with one master keybind
|
||||
-- https://wiki.hypr.land/0.49.0/Configuring/Uncommon-tips--tricks/#disabling-keybinds-with-one-master-keybind
|
||||
-- PAGE DOWN
|
||||
hl.bind(mainMod .. " + code:117", hl.dsp.submap("clean"))
|
||||
-- TODO: manual review — wrap the following binds in hl.define_submap("clean", function() ... end). The next 'submap = reset' closes the block.
|
||||
-- PAGE UP
|
||||
hl.bind(mainMod .. " + code:112", hl.dsp.submap("reset"))
|
||||
-- (end of submap block)
|
||||
|
||||
hl.bind("SUPER + l", hl.dsp.exec_cmd("hyprlock"))
|
||||
|
||||
-- ANKI
|
||||
hl.bind(mainMod .. " + a", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-anki-script.sh"))
|
||||
-- bind = $mainMod SHIFT, a, exec, ~/projects/scripts/screenshot-anki.sh -cdMinecraft
|
||||
|
||||
-- GSM
|
||||
hl.bind("mouse:275", hl.dsp.exec_cmd("xdotool key alt+w"), { locked = true })
|
||||
hl.bind("mouse:276", hl.dsp.exec_cmd("xdotool key alt+grave"), { locked = true })
|
||||
hl.bind("ALT + g", hl.dsp.exec_cmd("/opt/mpv-yomitan/mpv-yomitan.AppImage --toggle"))
|
||||
|
||||
hl.bind("ALT + SHIFT + f", hl.dsp.exec_cmd("uwsm app -sb -- flameshot gui"))
|
||||
|
||||
-- F5
|
||||
-- bind = ,code:71, exec, ~/projects/scripts/whisper_record_transcribe.py --mode toggle --output type
|
||||
hl.bind(
|
||||
"code:71",
|
||||
hl.dsp.exec_cmd(
|
||||
"uv run --directory ~/projects/scripts/faster-whisper-transcribe faster-whisper-transcribe --backend ctranslate2 --device cpu --mode toggle --output type"
|
||||
)
|
||||
)
|
||||
|
||||
-- SubMiner
|
||||
hl.bind("ALT + SHIFT + O", hl.dsp.pass({ window = "class:^(SubMiner)$" }))
|
||||
hl.bind("ALT + SHIFT + I", hl.dsp.pass({ window = "class:^(SubMiner)$" }))
|
||||
hl.bind("ALT + SHIFT + C", hl.dsp.pass({ window = "class:^(SubMiner)$" }))
|
||||
|
||||
-- {{{ scrolling
|
||||
hl.bind(mainMod .. " + comma", hl.dsp.layout("swapcol l"))
|
||||
hl.bind(mainMod .. " + period", hl.dsp.layout("fit all"))
|
||||
hl.bind(mainMod .. " + slash", hl.dsp.layout("fit active"))
|
||||
-- }}}
|
||||
@@ -0,0 +1,79 @@
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
local rosewater = "rgb(f4dbd6)"
|
||||
local rosewaterAlpha = "f4dbd6"
|
||||
|
||||
local flamingo = "rgb(f0c6c6)"
|
||||
local flamingoAlpha = "f0c6c6"
|
||||
|
||||
local pink = "rgb(f5bde6)"
|
||||
local pinkAlpha = "f5bde6"
|
||||
|
||||
local mauve = "rgb(c6a0f6)"
|
||||
local mauveAlpha = "c6a0f6"
|
||||
|
||||
local red = "rgb(ed8796)"
|
||||
local redAlpha = "ed8796"
|
||||
|
||||
local maroon = "rgb(ee99a0)"
|
||||
local maroonAlpha = "ee99a0"
|
||||
|
||||
local peach = "rgb(f5a97f)"
|
||||
local peachAlpha = "f5a97f"
|
||||
|
||||
local yellow = "rgb(eed49f)"
|
||||
local yellowAlpha = "eed49f"
|
||||
|
||||
local green = "rgb(a6da95)"
|
||||
local greenAlpha = "a6da95"
|
||||
|
||||
local teal = "rgb(8bd5ca)"
|
||||
local tealAlpha = "8bd5ca"
|
||||
|
||||
local sky = "rgb(91d7e3)"
|
||||
local skyAlpha = "91d7e3"
|
||||
|
||||
local sapphire = "rgb(7dc4e4)"
|
||||
local sapphireAlpha = "7dc4e4"
|
||||
|
||||
local blue = "rgb(8aadf4)"
|
||||
local blueAlpha = "8aadf4"
|
||||
|
||||
local lavender = "rgb(b7bdf8)"
|
||||
local lavenderAlpha = "b7bdf8"
|
||||
|
||||
local text = "rgb(cad3f5)"
|
||||
local textAlpha = "cad3f5"
|
||||
|
||||
local subtext1 = "rgb(b8c0e0)"
|
||||
local subtext1Alpha = "b8c0e0"
|
||||
|
||||
local subtext0 = "rgb(a5adcb)"
|
||||
local subtext0Alpha = "a5adcb"
|
||||
|
||||
local overlay2 = "rgb(939ab7)"
|
||||
local overlay2Alpha = "939ab7"
|
||||
|
||||
local overlay1 = "rgb(8087a2)"
|
||||
local overlay1Alpha = "8087a2"
|
||||
|
||||
local overlay0 = "rgb(6e738d)"
|
||||
local overlay0Alpha = "6e738d"
|
||||
|
||||
local surface2 = "rgb(5b6078)"
|
||||
local surface2Alpha = "5b6078"
|
||||
|
||||
local surface1 = "rgb(494d64)"
|
||||
local surface1Alpha = "494d64"
|
||||
|
||||
local surface0 = "rgb(363a4f)"
|
||||
local surface0Alpha = "363a4f"
|
||||
|
||||
local base = "rgb(24273a)"
|
||||
local baseAlpha = "24273a"
|
||||
|
||||
local mantle = "rgb(1e2030)"
|
||||
local mantleAlpha = "1e2030"
|
||||
|
||||
local crust = "rgb(181926)"
|
||||
local crustAlpha = 181926
|
||||
@@ -0,0 +1,389 @@
|
||||
-- See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
-- {{{ Floating windows
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "discord",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "mpv",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "anki",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "steam",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "python",
|
||||
title = "Import",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "zenity",
|
||||
title = "Japanese Analysis",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "zenity",
|
||||
title = "Japanese Assistant",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "anki",
|
||||
},
|
||||
-- TODO: manual review — unmapped window rule action: "min_size 1600 600"
|
||||
-- TODO: manual review — unmapped window rule action: "max_size 2222 1234"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "ueberzugpp.*",
|
||||
},
|
||||
-- TODO: manual review — unmapped window rule action: "no_focus on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_follow_mouse 1"
|
||||
float = true,
|
||||
-- TODO: manual review — unmapped window rule action: "no_shadow on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_anim on"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "anki",
|
||||
},
|
||||
size = "1920 1080",
|
||||
})
|
||||
|
||||
-- windowrule = min_size 1600 600, match:class anki
|
||||
-- windowrule = max_size 2222 1234, match:class anki
|
||||
-- }}}
|
||||
|
||||
-- {{{ Workspace assignments
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "Cursor",
|
||||
},
|
||||
workspace = "3 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "GameSentenceMiner",
|
||||
},
|
||||
workspace = "5 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "com.obsproject.Studio",
|
||||
},
|
||||
workspace = "5 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "gamescope",
|
||||
},
|
||||
workspace = "6 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "anki",
|
||||
},
|
||||
workspace = "8 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "steam",
|
||||
},
|
||||
workspace = "9 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "discord",
|
||||
},
|
||||
workspace = "10 silent",
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ Center floating windows
|
||||
hl.window_rule({
|
||||
match = {
|
||||
float = 1,
|
||||
class = "discord",
|
||||
},
|
||||
center = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
float = 1,
|
||||
class = "anki",
|
||||
},
|
||||
center = true,
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ Opacity rules
|
||||
-- windowrule = opacity 0.88, match:class .* fullscreen:0
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "mpv",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(remote-viewer)$",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "com.obsproject.Studio",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "(.*)(- YouTube(.*))",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "zen",
|
||||
title = "(.*)YouTube TV(.*)",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "anki",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "(.*)asbplayer",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "dolphin-emu",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "steam_app_default",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "steam_app.*",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "Rustdesk",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "google-chrome",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ Misc
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "(.*)asbplayer",
|
||||
},
|
||||
-- TODO: manual review — unmapped window rule action: "tile on"
|
||||
})
|
||||
|
||||
-- windowrule = size 2118 1182, match:class anki
|
||||
-- Ignore maximize requests from apps. You'll probably like this.
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = ".*",
|
||||
},
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
|
||||
-- Fix some dragging issues with XWayland
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = 1,
|
||||
float = 1,
|
||||
fullscreen = 0,
|
||||
pin = 0,
|
||||
},
|
||||
-- TODO: manual review — unmapped window rule action: "no_focus on"
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ Screen sharing workaround: https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/#xwayland
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(xwaylandvideobridge)$",
|
||||
},
|
||||
opacity = "0.0 override",
|
||||
-- TODO: manual review — unmapped window rule action: "no_anim on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_initial_focus on"
|
||||
-- TODO: manual review — unmapped window rule action: "max_size 1 1"
|
||||
-- TODO: manual review — unmapped window rule action: "no_blur on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_focus on"
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ GSM Overlay and LunaTranslator tweaks
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "gsm_overlay",
|
||||
},
|
||||
float = true,
|
||||
-- TODO: manual review — unmapped window rule action: "border_size 0"
|
||||
-- TODO: manual review — unmapped window rule action: "xray off"
|
||||
-- TODO: manual review — unmapped window rule action: "no_shadow on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_blur on"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "LunaTranslator",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
-- TODO: manual review — unmapped window rule action: "border_size 0"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "gsm_overlay",
|
||||
},
|
||||
-- TODO: manual review — unmapped window rule action: "stay_focused on"
|
||||
})
|
||||
|
||||
-- windowrule = fullscreen_state 2, match:class gsm_overlay
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "SubMiner",
|
||||
},
|
||||
float = true,
|
||||
-- TODO: manual review — unmapped window rule action: "border_size 0"
|
||||
-- TODO: manual review — unmapped window rule action: "xray off override"
|
||||
-- TODO: manual review — unmapped window rule action: "no_shadow on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_blur on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_dim on"
|
||||
-- TODO: manual review — unmapped window rule action: "opaque on"
|
||||
-- TODO: manual review — unmapped window rule action: "dim_around off"
|
||||
-- TODO: manual review — unmapped window rule action: "allows_input offf"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "steam_app_1277940",
|
||||
},
|
||||
-- TODO: manual review — unmapped window rule action: "border_size 0"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "SubMiner",
|
||||
},
|
||||
opacity = "1.0 override",
|
||||
pin = false,
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ FEH
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "feh",
|
||||
},
|
||||
float = true,
|
||||
center = true,
|
||||
-- TODO: manual review — unmapped window rule action: "border_size 0"
|
||||
-- TODO: manual review — unmapped window rule action: "no_shadow on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_blur on"
|
||||
-- TODO: manual review — unmapped window rule action: "no_anim on"
|
||||
})
|
||||
|
||||
-- }}}
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "Picture in picture",
|
||||
},
|
||||
float = true,
|
||||
pin = true,
|
||||
})
|
||||
|
||||
-- TODO: manual review — top-level key 'windowurle = no_vrr on, match:class mpv' has no enclosing section
|
||||
|
||||
-- aibar popup (AI usage widget)
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "aibar",
|
||||
},
|
||||
float = true,
|
||||
move = "100%-374 50",
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user