refactor(dotfiles): separate desktop configuration

This commit is contained in:
2026-10-08 12:09:17 -04:00
parent ecf01dad51
commit 0e203b188d
160 changed files with 153 additions and 107 deletions
+10
View File
@@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Name=RampClient PRD
GenericName=Java Web Start Application
Comment=RampClient PRD
Categories=Network;Desktop;Java;Javaws;
Type=Application
Icon=/home/sjb/.config/icedtea-web/icons/b1bfbd7f-6c3e-40cf-8023-752cc6c45b66
X-Vendor=UWO
Exec="/opt/OpenWebStart/javaws" "https://wts.uwo.ca/ramp/prd/rampclient-prd.jnlp"
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=alcazar herdr
Comment=remote dev
Exec=terminal-launcher alcazar-herdr "ssh alcazar mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=alcazar tmux
Comment=remote dev
Exec=terminal-launcher alcazar-tmux "ssh alcazar mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=bianca Herdr
Comment=remote dev
Exec=terminal-launcher bianca-herdr "ssh bianca mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=bianca tmux
Comment=remote dev
Exec=terminal-launcher bianca-tmux "ssh bianca mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=caraco Herdr
Comment=remote dev
Exec=terminal-launcher caraco-herdr "ssh caraco mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=caraco tmux
Comment=remote dev
Exec=terminal-launcher caraco-tmux "ssh caraco mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=dupont herdr
Comment=remote dev
Exec=terminal-launcher dupont-herdr "ssh dupont mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=dupont tmux
Comment=remote dev
Exec=terminal-launcher dupont-tmux "ssh dupont mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+12
View File
@@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Name=emacsclient
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec="/home/sjb/.dotfiles/bin/ec" %F
Icon=/usr/share/icons/hicolor/scalable/apps/emacs24.svg
Type=Application
Terminal=false
Categories=Utility;Development;TextEditor;
StartupWMClass=Emacs24
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Terminal herdr
Comment=Terminal with herdr mux
Exec=terminal-launcher terminal-herdr "mise exec -- herdr --session=main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,11 @@
[Desktop Entry]
Name=Strata
Comment=A fast, keyboard-first file manager for Linux
Exec=strata %U
Icon=system-file-manager
Terminal=false
Type=Application
Categories=Utility;FileManager;
MimeType=inode/directory;
StartupNotify=true
Keywords=file;manager;files;folder;directory;
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=nca-ai-01 herdr
Comment=remote dev
Exec=terminal-launcher nca-ai-01-herdr "ssh nca-ai-01 mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=nca-ai-01 tmux
Comment=remote dev
Exec=terminal-launcher nca-ai-01-tmux "ssh nca-ai-01 mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=obelix herdr
Comment=remote dev
Exec=terminal-launcher obelix-herdr "ssh obelix mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=obelix tmux
Comment=remote dev
Exec=terminal-launcher obelix-tmux "ssh obelix mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Terminal pi
Comment=Terminal with pi
Exec=terminal-launcher "terminal-pi" "mise exec -C ~/Documents/sjb-brain -- pi --fff-enable-home-scan=false --model openai-codex/gpt-5.6-luna --plan"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=rascar Herdr
Comment=remote dev
Exec=terminal-launcher rascar-herdr "ssh rascar mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=rascar tmux
Comment=remote dev
Exec=terminal-launcher rascar-tmux "ssh rascar mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=steve dev herdr
Comment=remote dev
Exec=terminal-launcher steve-dev-herdr "ssh steve-dev mise exec -- herdr --session main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=steve dev tmux
Comment=remote dev
Exec=terminal-launcher steve-dev-tmux "ssh steve-dev mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+10
View File
@@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Exec=terminal-launcher terminal-fish "/usr/bin/fish"
Icon=foot
Terminal=false
Categories=System;TerminalEmulator;
Keywords=shell;prompt;command;commandline;
Name=Terminal
GenericName=Terminal
Comment=A wayland native terminal emulator
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Terminal tmux
Comment=Terminal with tmux
Exec=terminal-launcher "terminal-tmux" "mise exec -- tmux new -A -s main"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation
--disable-features=WaylandWpColorManagerV1
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
<fontconfig>
<match target="font">
<test name="family" compare="eq" ignore-blanks="false">
<string>Monaspace Neon</string>
</test>
<edit name="fontfeatures" mode="assign_replace">
<string>calt on</string>
<string>dlig on</string>
<string>ss01 on</string>
<string>ss02 on</string>
<string>ss03 on</string>
<string>ss04 on</string>
<string>ss05 on</string>
<string>ss06 on</string>
<string>ss07 on</string>
<string>ss08 on</string>
</edit>
</match>
</fontconfig>
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
<fontconfig>
<match target="font">
<test name="family" compare="eq" ignore-blanks="false">
<string>Monaspace Radon</string>
</test>
<edit name="fontfeatures" mode="assign_replace">
<string>calt on</string>
<string>dlig on</string>
<string>ss01 on</string>
<string>ss02 on</string>
<string>ss03 on</string>
<string>ss04 on</string>
<string>ss05 on</string>
<string>ss06 on</string>
<string>ss07 on</string>
<string>ss08 on</string>
</edit>
</match>
</fontconfig>
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
<fontconfig>
<match target="font">
<test name="family" compare="eq" ignore-blanks="false">
<string>Monaspace Xenon</string>
</test>
<edit name="fontfeatures" mode="assign_replace">
<string>calt on</string>
<string>dlig on</string>
<string>ss01 on</string>
<string>ss02 on</string>
<string>ss03 on</string>
<string>ss04 on</string>
<string>ss05 on</string>
<string>ss06 on</string>
<string>ss07 on</string>
<string>ss08 on</string>
</edit>
</match>
</fontconfig>
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
<fontconfig>
<match target="font">
<test name="family" compare="eq" ignore-blanks="false">
<string>MonaspiceNe Nerd Font</string>
</test>
<edit name="fontfeatures" mode="assign_replace">
<string>calt on</string>
<string>dlig on</string>
<string>ss01 on</string>
<string>ss02 on</string>
<string>ss03 on</string>
<string>ss04 on</string>
<string>ss05 on</string>
<string>ss06 on</string>
<string>ss07 on</string>
<string>ss08 on</string>
</edit>
</match>
</fontconfig>
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
<fontconfig>
<match target="font">
<test name="family" compare="eq" ignore-blanks="false">
<string>MonaspiceRn Nerd Font</string>
</test>
<edit name="fontfeatures" mode="assign_replace">
<string>calt on</string>
<string>dlig on</string>
<string>ss01 on</string>
<string>ss02 on</string>
<string>ss03 on</string>
<string>ss04 on</string>
<string>ss05 on</string>
<string>ss06 on</string>
<string>ss07 on</string>
<string>ss08 on</string>
</edit>
</match>
</fontconfig>
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
<fontconfig>
<match target="font">
<test name="family" compare="eq" ignore-blanks="false">
<string>MonaspiceXe Nerd Font</string>
</test>
<edit name="fontfeatures" mode="assign_replace">
<string>calt on</string>
<string>dlig on</string>
<string>ss01 on</string>
<string>ss02 on</string>
<string>ss03 on</string>
<string>ss04 on</string>
<string>ss05 on</string>
<string>ss06 on</string>
<string>ss07 on</string>
<string>ss08 on</string>
</edit>
</match>
</fontconfig>
+32
View File
@@ -0,0 +1,32 @@
[main]
font=MonaspiceNeNerdFontMono:size=13
term=xterm-256color
pad=3x3
initial-window-mode=windowed
workers=0
include=~/.local/state/omarchy/current/theme/foot.ini
[scrollback]
lines=10000
multiplier=7.0
[cursor]
style=block
blink=no
[key-bindings]
clipboard-copy=Control+Insert Control+Shift+c XF86Copy
primary-paste=none
clipboard-paste=Shift+Insert Control+Shift+v XF86Paste
[tweak]
overflowing-glyphs=yes
[text-bindings]
# Send Shift+Return as CSI-u so TUIs can distinguish it from Return.
\x1b[13;2u=Shift+Return
# Send Alt+Shift+Return as CSI-u so tmux can match M-S-Enter.
\x1b[13;4u=Mod1+Shift+Return
+25
View File
@@ -0,0 +1,25 @@
window-decoration = false
copy-on-select = clipboard
gtk-titlebar = false
gtk-tabs-location = hidden
#gtk-titlebar-style = tabs
#gtk-titlebar-hide-when-maximized = true
gtk-wide-tabs = false
window-show-tab-bar = auto
config-file = "theme"
font-family = "MonaspiceNeNerdFontMono"
font-size = 13
#adjust-cell-width = -7%
adjust-cell-height = 5%
#background-opacity = 0.90
#background-blur-radius = 20
confirm-close-surface = false
font-feature = +calt
quit-after-last-window-closed = true
quit-after-last-window-closed-delay = 5m
keybind = ctrl+c=unbind
keybind = ctrl+comma=unbind
keybind = ctrl+space=unbind
keybind = alt+f2=reload_config
+7
View File
@@ -0,0 +1,7 @@
{
"workspace": {
"library": [
"/usr/share/hypr/stubs"
]
}
}
+30
View File
@@ -0,0 +1,30 @@
general {
lock_cmd = pidof hyprlock || hyprlock
# unlock_cmd = loginctl unlock-session
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl displatch dpms on
}
# 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 = 300
on-timeout = brightnessctl -s set 10
on-resume = brightnessctl -r
}
listener {
timeout = 600
on-timeout = loginctl lock-session
}
listener {
timeout = 630
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}
+44
View File
@@ -0,0 +1,44 @@
source = ~/.local/state/omarchy/current/theme/hyprlock.conf
# GENERAL
general {
disable_loading_bar = true
hide_cursor = true
}
background {
monitor =
path = ~/.local/state/omarchy/current/background
color = $color
}
animations {
enabled = false
}
input-field {
monitor =
size = 600, 100
position = 0, 0
halign = center
valign = center
inner_color = $inner_color
outer_color = $outer_color
outline_thickness = 4
font_family = CaskaydiaMono Nerd Font
font_color = $font_color
placeholder_text =   Enter Password 󰈷 
check_color = $check_color
fail_text = <i>$PAMFAIL ($ATTEMPTS)</i>
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
auth {
fingerprint:enabled = true
}
+14
View File
@@ -0,0 +1,14 @@
bind = SUPER, Z, hyprexpo:expo, toggle # can be: toggle, off/disable or on/enable
plugin {
hyprexpo {
columns = 3
gap_size = 10
workspace_method = 1 # center current # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad
gesture_fingers = 3 # 3 or 4
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
}
+3
View File
@@ -0,0 +1,3 @@
hl.on("hyprland.start", function()
hl.exec_cmd("hyprctl setcursor Pop 24")
end)
+28
View File
@@ -0,0 +1,28 @@
-- Cursor size
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
-- Force all apps to use Wayland
hl.env("GDK_BACKEND", "wayland,x11,*")
hl.env("QT_QPA_PLATFORM", "wayland;xcb")
hl.env("QT_STYLE_OVERRIDE", "kvantum")
hl.env("SDL_VIDEODRIVER", "wayland")
hl.env("MOZ_ENABLE_WAYLAND", "1")
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "wayland")
hl.env("OZONE_PLATFORM", "wayland")
hl.env("XDG_SESSION_TYPE", "wayland")
-- Allow better support for screen sharing (Google Meet"," Discord, etc)
hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
hl.env("XDG_SESSION_DESKTOP", "Hyprland")
-- Use XCompose file
hl.env("XCOMPOSEFILE", "~/.XCompose")
-- Make Chromium use XCompose and all Wayland
hl.env("CHROMIUM_FLAGS", "--enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4")
-- Make .desktop files available for wofi
hl.env("XDG_DATA_DIRS", "/usr/share:/usr/local/share:~/.local/share")
+198
View File
@@ -0,0 +1,198 @@
function sysinfo()
local mem = io.popen("free -h | awk '/^Mem/ {print $3 \"/\" $2}'"):read("*a")
local cpu = io.popen("top -bn1 | grep 'Cpu(s)' | awk '{print $2 + $4 \"%\"}'"):read("*a")
local battery = io.popen("acpi -b | awk -F', ' '{print $2}'"):read("*a")
local time = os.date("%Y-%m-%d %H:%M:%S")
local monitor = hl.get_active_monitor()
local workspace_id = monitor.active_workspace.id
local mesg = "System Info"
.. "\nDate: " .. time
.. "\nFocused monitor: " .. monitor.name
.. "\nWorkspace: " .. workspace_id
.. "\nBattery: " .. battery
.. "CPU: " .. cpu .. " MEM: " .. mem
hl.notification.create({ text = mesg, icon = "hint", duration = 5000 })
end
function toggle_pin()
local win = hl.get_active_window()
if win == nil then
return
end
local is_pinned = win.pinned
hl.dispatch(hl.dsp.window.pin({ action = is_pinned and "unset" or "set" }))
end
function dispatch_focus_or_launch(opts)
return function()
focus_or_launch(opts)
end
end
function focus_or_launch(opts)
local match = opts.match
local cmd = opts.cmd
local field = opts.field or "class" -- class, title, initialClass, initialTitle
local use_workspace = opts.use_workspace ~= false
local clients = hl.get_windows()
for _, client in ipairs(clients) do
local value = client[field]
if value and string.find(string.lower(value), string.lower(match), 1, true) then
if use_workspace and client.workspace and client.workspace.id then
hl.dispatch(hl.dsp.focus({
workspace = client.workspace.id,
on_current_monitor = true,
}))
end
hl.dispatch(hl.dsp.focus({
window = "address:" .. client.address
}))
local layout = client.layout
if not (layout and layout.name == "master" and layout.is_master) then
hl.dispatch(hl.dsp.layout("swapwithmaster"))
end
return
end
end
hl.exec_cmd(cmd)
end
function fetch_or_launch(opts)
local match = opts.match
local cmd = opts.cmd
local field = opts.field or "class" -- class, title, initialClass, initialTitle
local use_workspace = opts.use_workspace ~= false
local clients = hl.get_windows()
local active_workspace = hl.get_active_workspace()
for _, client in ipairs(clients) do
local value = client[field]
if value and string.find(string.lower(value), string.lower(match), 1, true) then
if use_workspace and client.workspace and client.workspace.id then
hl.dispatch(hl.dsp.window.move({
workspace = active_workspace,
on_current_monitor = true,
window = client,
}))
end
hl.dispatch(hl.dsp.focus({ window = client }))
local layout = client.layout
if not (layout and layout.name == "master" and layout.is_master) then
hl.dispatch(hl.dsp.layout("swapwithmaster"))
end
return
end
end
hl.exec_cmd(cmd)
end
function toggle_master()
local ws = hl.get_active_workspace()
if not ws then
return
end
local mfact = nil
for _, win in ipairs(ws:get_windows()) do
local layout = win.layout
if layout and layout.name == "master" and layout.is_master then
mfact = math.floor(layout.perc_master * 100 + 0.5) / 100
break
end
end
if mfact == 0.7 then
mfact = 0.5
else
mfact = 0.7
end
hl.dispatch(hl.dsp.layout("mfact exact " .. mfact))
end
function toggle_float_with_limit()
local win = hl.get_active_window()
if win == nil then
return
end
local was_floating = win.floating
hl.dispatch(hl.dsp.window.float({ action = "toggle" }))
if was_floating then
return
end
local mon = win.monitor and hl.get_monitor(win.monitor) or hl.get_active_monitor()
if mon == nil or mon.size == nil or win == nil or win.size == nil then
return
end
local max_width = math.floor(mon.width * 0.8)
local max_height = math.floor(mon.height * 0.8)
local scale = math.max(1, win.size.x / max_width, win.size.y / max_height)
hl.notification.create({
text = "Scale " ..
scale .. " Max float size: " .. win.size.x / max_width .. "x" .. win.size.y / max_height,
duration = 2000,
icon =
"hint"
})
if scale > 1 then
hl.dispatch(hl.dsp.window.resize({
x = math.floor(max_width),
y = math.floor(max_height),
relative = false,
window = win
}))
end
end
function cycle_next_window(opts)
return function()
hl.dispatch(hl.dsp.window.cycle_next(opts))
local win = hl.get_active_window()
if win and win.floating then
hl.dispatch(hl.dsp.window.alter_zorder({ window = win, mode = "top" }))
end
end
end
function window_resize_percentage(px, py)
local win = hl.get_active_window()
if win == nil or win.monitor == nil then
return
end
local mon = hl.get_monitor(win.monitor)
if mon == nil or mon.size == nil or mon.size.height == nil or mon.size.width == nil then
return
end
local sx = math.floor(mon.size.width * px)
local sy = math.floor(mon.size.height * py)
if not win.floating then
hl.dispatch(hl.dsp.window.float({ action = "set" }))
end
if win.fullscreen then
hl.dispatch(hl.dsp.window.fullscreen({ action = "unset" }))
end
hl.dispatch(hl.dsp.window.resize({ x = sx, y = sy, relative = false }))
end
function toggle_master_scrolling()
local current = hl.get_config("general.layout")
local next_layout = current == "master" and "scrolling" or "master"
hl.config({ general = { layout = next_layout } })
end
+542
View File
@@ -0,0 +1,542 @@
local terminal = "foot"
local browser = "gtk-launch chromium.desktop"
local webapp = "chromium --new-window --ozone-platform=wayland --app="
local music = "gtk-launch spotify.desktop"
local HYPR = "SUPER + CONTROL + SHIFT + ALT + "
require("sjb/monitors")
require("sjb/functions")
require("sjb/rules")
require("sjb/envs")
require("sjb/autostart")
require("theme")
hl.config({
input = {
kb_layout = "us",
kb_variant = ",qwerty",
-- kb_model =
-- kb_options = ctrl:nocaps
kb_options = "caps:ctrl_modifier,compose:ralt",
-- kb_options = compose:ralt
follow_mouse = 1,
repeat_rate = 40,
repeat_delay = 600,
touchpad = {
natural_scroll = true,
disable_while_typing = true,
clickfinger_behavior = true,
scroll_factor = 0.7,
},
scroll_method = "2fg",
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
},
ecosystem = {
no_update_news = true,
enforce_permissions = false,
},
general = {
gaps_in = 3,
gaps_out = 3,
border_size = 2,
allow_tearing = true,
snap = {
enabled = true
},
col = {
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
inactive_border = "rgba(595959aa)",
},
layout = "master"
},
master = {
allow_small_split = true,
mfact = 0.50,
new_status = "master",
orientation = "center",
},
dwindle = {
preserve_split = true,
force_split = 2,
},
scrolling = {
focus_fit_method = 0,
column_width = 0.49,
fullscreen_on_one_column = true
},
cursor = {
hide_on_key_press = true,
warp_on_change_workspace = 1,
},
binds = {
hide_special_on_workspace_change = true,
},
decoration = {
rounding = 1,
active_opacity = 1.0,
inactive_opacity = 0.95,
dim_inactive = true,
dim_special = 0.0,
dim_strength = 0.3,
shadow = {
enabled = false,
range = 2,
render_power = 3,
color = "rgba(1a1a1aee)",
},
blur = {
enabled = false,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
},
group = {
groupbar = {
enabled = false
}
},
misc = {
disable_hyprland_logo = true,
disable_splash_rendering = true,
disable_scale_notification = true,
focus_on_activate = true,
anr_missed_pings = 3,
on_focus_under_fullscreen = 1,
mouse_move_enables_dpms = true,
animate_manual_resizes = true,
mouse_move_focuses_monitor = true,
enable_swallow = true,
enable_anr_dialog = false,
force_default_wallpaper = true,
initial_workspace_tracking = 0,
allow_session_lock_restore = true,
},
xwayland = {
force_zero_scaling = true
},
animations = {
enabled = true,
}
})
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } })
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
hl.curve("generic", { type = "bezier", points = { { 0.5, 0.9 }, { 0.1, 1.08 } } })
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1.0 } } })
hl.curve("overshoot", { type = "bezier", points = { { 0.5, 0.9 }, { 0.1, 1.1 } } })
hl.curve("rubber", { type = "spring", mass = 1, stiffness = 70, dampening = 10 })
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.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 = 3.79, bezier = "easeOutQuint" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, bezier = "easeOutQuint", 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 = "fadeSwitch", enabled = false })
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 = 0.5, bezier = "quick" })
hl.animation({ leaf = "specialWorkspaceIn", enabled = true, speed = 3, bezier = "easeOutQuint", style = "slide top" })
hl.animation({ leaf = "specialWorkspaceOut", enabled = true, speed = 2, bezier = "easeInOutCubic", style = "slide bottom" })
-- Keybindings
hl.bind("SUPER + SHIFT + return", hl.dsp.exec_cmd("footclient -a terminal-herdr -T terminal-herdr herdr --session=main"), { description = "Open herdr terminal" })
hl.bind("SUPER + return", hl.dsp.exec_cmd("footclient -a terminal-tmux -T terminal-tmux tmux new -A -s main"), { description = "Open tmux terminal" })
hl.bind("SUPER + N", hl.dsp.exec_cmd(terminal .. " -a quicknotes -e nvim +'Obsidian today'"),
{ description = "Open Obsidian today in a centered floating window" })
hl.bind("SUPER + A", hl.dsp.exec_cmd(terminal .. " -a agenda -e nvim +'Org agenda t'"),
{ description = "Open Org agenda in a centered floating window" })
hl.bind("SUPER + CONTROL + A", hl.dsp.exec_cmd(terminal .. " -a capture -e nvim +'Org capture t'"),
{ description = "Open Org capture in a centered floating window" })
hl.bind("SUPER + B", hl.dsp.exec_raw(browser), { description = "Open browser" })
hl.bind("SUPER + I", sysinfo, { description = "Show system info" })
hl.bind("SUPER + CONTROL + X", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
hl.bind("F9", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
hl.bind(
"SUPER + Y",
toggle_master_scrolling,
{ description = "Layout: Toggle master/scrolling" }
)
-- Open rofi on first press, closes it on second
hl.bind("SUPER + Space", hl.dsp.exec_raw("rofi -show combi --modes combi"),
{ release = true, description = "Open Application Menu" })
hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_cmd("~/.local/bin/hyprland-fetch-client"),
{ release = true, description = "Fetch client" })
hl.bind("SUPER + CONTROL + SPACE",
hl.dsp.exec_cmd("~/.local/bin/hyprland-focus-client"),
{ release = true, description = "Focus client" }
)
hl.bind("SUPER + slash",
hl.dsp.exec_cmd("ROFI_PASS_BACKEND=wtype ROFI_PASS_CLIPBOARD_BACKEND=wl-clipboard ~/.local/bin/rofi-pass"),
{ release = true, description = "Open rofi-pass" })
hl.bind("Print",
hl.dsp.exec_cmd("hyprshot -m window -o ~/Pictures/ -- tensaku-edit"),
{ description = "Take screenshot" })
hl.bind("SHIFT + PRINT",
hl.dsp.exec_cmd("hyprshot -m region -o ~/Pictures/ -- tensaku-edit"),
{ description = "Take screenshot" })
hl.bind("SUPER + PRINT", hl.dsp.exec_cmd("pkill hyprpicker || hyprpicker -a"), { description = "Pick color" })
hl.bind("SUPER + CONTROL + PRINT",
hl.dsp.exec_cmd("hyprshot -m region --raw -z | /usr/bin/tesseract stdin stdout --oem 1 --psm 6 -l eng | wl-copy"),
{ description = "Extract text (OCR) from screenshot" })
hl.bind("SUPER + ALT + Print",
hl.dsp.exec_cmd("~/.local/bin/screen-recorder -o ~/Videos/$(date +'%Y-%m-%d_%H%M%S')_recording.mp4"),
{ description = "Start/Stop screen recording" })
hl.bind("SUPER + ALT + SHIFT + Print",
hl.dsp.exec_cmd("~/.local/bin/screen-recorder stop"),
{ description = "Stop screen recording" })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
{ repeating = true, description = "Volume down" })
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
{ repeating = true, description = "Volume up" })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { description = "Toggle mute" })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
{ description = "Toggle mic mute" })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"),
{ repeating = true, description = "Brightness up" })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"),
{ repeating = true, description = "Brightness down" })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { description = "Play/pause media" })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { description = "Previous media" })
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { description = "Next media" })
hl.bind("SUPER + Y", hl.dsp.exec_cmd("makoctl dismiss"), { description = "Dismiss notifications" })
hl.bind("SUPER + W", hl.dsp.window.close(), { description = "Window: Close" })
hl.bind("SUPER + F", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }),
{ description = "Window: Toggle fullscreen" })
hl.bind("SUPER + CONTROL + F", hl.dsp.window.fullscreen_state({ internal = 2, client = 0, action = "toggle" }),
{ description = "Window: Toggle fullscreen state 2" })
hl.bind("SUPER + ALT + F", hl.dsp.window.fullscreen_state({ internal = 0, client = 2, action = "toggle" }),
{ description = "Window: Toggle fullscreen state 2" })
hl.bind("SUPER + T", toggle_float_with_limit,
{ description = "Window: Toggle floating/tiling (max 80%)" })
-- hl.bind("SUPER + P", hl.dsp.window.pseudo(), { description = "Window: Toggle pseudo tiling" })
hl.bind("SUPER + P", toggle_pin, { description = "Window: Toggle Pin" })
-- hl.bind("SUPER + A", hl.dsp.window.alter_zorder({ mode = "top" }), { description = "Window: Move to top" })
hl.bind("SUPER + left", hl.dsp.focus({ direction = "l" }), { description = "Window: Focus left" })
hl.bind("SUPER + right", hl.dsp.focus({ direction = "r" }), { description = "Window: Focus right" })
hl.bind("SUPER + up", hl.dsp.focus({ direction = "u" }), { description = "Window: Focus up" })
hl.bind("SUPER + down", hl.dsp.focus({ direction = "d" }), { description = "Window: Focus down" })
hl.bind("SUPER + H", hl.dsp.focus({ direction = "l" }), { description = "Window: Focus left" })
hl.bind("SUPER + L", hl.dsp.focus({ direction = "r" }), { description = "Window: Focus right" })
hl.bind("SUPER + K", hl.dsp.focus({ direction = "u" }), { description = "Window: Focus up" })
hl.bind("SUPER + J", hl.dsp.focus({ direction = "d" }), { description = "Window: Focus down" }) -- hl.bind("SUPER + H", hl.dsp.window.resize("left"), { repeating = true, description = "Window: Resize left" })
-- hl.bind("SUPER + z", hl.dsp.focus({ last = true }), { description = "Window: Focus last" })
hl.bind("SUPER + Z", hl.dsp.focus({ urgent_or_last = true }), { description = "Window: Focus last" })
hl.bind("SUPER + ALT + period", function()
hl.dispatch(hl.dsp.layout("cycleprev"))
end, { description = "Window: Swap with next" })
hl.bind("SUPER + ALT + comma", function()
hl.dispatch(hl.dsp.layout("cyclenext"))
end, { description = "Window: Swap with prev" })
hl.bind("ALT + Tab", cycle_next_window({ next = true }), { description = "Window: Cycle next" })
hl.bind("ALT + SHIFT + Tab", cycle_next_window({ next = false }), { description = "Window: Cycle prev" })
-- hl.bind("ALT + TAB", hl.dsp.window.cycle_next(), { description = "Focus on next window" })
-- hl.bind("ALT + SHIFT + TAB", hl.dsp.window.cycle_next({ next = false }), { description = "Focus on previous window" })
-- hl.bind("ALT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" })
-- hl.bind("ALT + SHIFT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" })
hl.bind("CONTROL + ALT + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Focus on next monitor" })
hl.bind("CONTROL + ALT + SHIFT + TAB", hl.dsp.focus({ monitor = "-1" }), { description = "Focus on previous monitor" })
hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" })
hl.bind("SUPER + ALT + S", hl.dsp.window.move({ workspace = "special:scratchpad", follow = false }),
{ description = "Move window to scratchpad" })
hl.bind("SUPER + grave", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" })
hl.bind("SUPER + SHIFT + grave", hl.dsp.window.move({ workspace = "special:scratchpad", follow = false }),
{ description = "Move window to scratchpad" })
-- hl.bind("SUPER + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Monitor: move focus to next monitor" })
hl.bind("SUPER + TAB", hl.dsp.focus({ workspace = "e+1" }), { description = "Next workspace" })
hl.bind("SUPER + SHIFT + TAB", hl.dsp.focus({ workspace = "e-1" }), { description = "Previous workspace" })
hl.bind("SUPER + CONTROL + TAB", hl.dsp.focus({ workspace = "previous" }), { description = "Former workspace" })
hl.bind("SUPER + ALT + SHIFT + LEFT", hl.dsp.workspace.move({ monitor = "l" }),
{ description = "Move workspace to left monitor" })
hl.bind("SUPER + ALT + SHIFT + RIGHT", hl.dsp.workspace.move({ monitor = "r" }),
{ description = "Move workspace to right monitor" })
hl.bind("SUPER + ALT + SHIFT + UP", hl.dsp.workspace.move({ monitor = "u" }),
{ description = "Move workspace to up monitor" })
hl.bind("SUPER + ALT + SHIFT + DOWN", hl.dsp.workspace.move({ monitor = "d" }),
{ description = "Move workspace to down monitor" })
hl.bind("SUPER + SHIFT + LEFT", hl.dsp.window.swap({ direction = "l" }), { description = "Swap window to the left" })
hl.bind("SUPER + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "r" }), { description = "Swap window to the right" })
hl.bind("SUPER + SHIFT + UP", hl.dsp.window.swap({ direction = "u" }), { description = "Swap window up" })
hl.bind("SUPER + SHIFT + DOWN", hl.dsp.window.swap({ direction = "d" }), { description = "Swap window down" })
hl.bind("SUPER + ALT + Tab", hl.dsp.focus({ workspace = "next", on_current_monitor = true }),
{ description = "Window: Focus previous in workspace" })
hl.bind("SUPER + ALT + SHIFT + Tab", hl.dsp.focus({ workspace = "previous", on_current_monitor = true }),
{ description = "Window: Focus previous in workspace" })
-- arrange split ratio
hl.bind("SUPER + X", toggle_master, { description = "Layout: Toggle master size" })
-- hl.bind("SUPER + equal", hl.dsp.layout("mfact exact 0.5"))
hl.bind("SUPER + M", function()
local current_layout = hl.get_config("general.layout")
if current_layout == "master" then
hl.dispatch(hl.dsp.layout("swapwithmaster"))
end
if current_layout == "scrolling" then
hl.dispatch(hl.dsp.layout("consume_or_expel next"))
end
end, { description = "Layout: Swap with master" })
-- hl.bind("SUPER + M", hl.dsp.layout("rollnext"))
hl.bind("SUPER + period", function()
local current_layout = hl.get_config("general.layout")
if current_layout == "master" then
hl.dispatch(hl.dsp.layout("cycleprev"))
hl.dispatch(hl.dsp.layout("swapwithmaster"))
end
if current_layout == "scrolling" then
hl.dispatch(hl.dsp.layout("swapcol r"))
hl.dispatch(hl.dsp.layout("focus l"))
end
-- hl.dispatch(hl.dsp.layout("focus r"))
end, { description = "Layout: Cycle next" })
hl.bind("SUPER + comma", function()
local current_layout = hl.get_config("general.layout")
if current_layout == "master" then
hl.dispatch(hl.dsp.layout("cyclenext"))
hl.dispatch(hl.dsp.layout("swapwithmaster"))
end
if current_layout == "scrolling" then
hl.dispatch(hl.dsp.layout("swapcol l"))
hl.dispatch(hl.dsp.layout("focus r"))
end
-- hl.dispatch(hl.dsp.layout("focus l"))
end, { description = "Layout: Cycle previous" })
hl.bind("SUPER + SHIFT + comma", hl.dsp.window.move({ workspace = "-1" }),
{ description = "Window: Move to previous workspace" })
hl.bind("SUPER + SHIFT + period", hl.dsp.window.move({ workspace = "+1" }),
{ description = "Window: Move to next workspace" })
hl.bind("SUPER + ALT + comma", hl.dsp.workspace.move({ monitor = "-1" }),
{ description = "Window: Move to previous workspace and follow" })
hl.bind("SUPER + ALT + period", hl.dsp.workspace.move({ monitor = "+1" }),
{ description = "Window: Move to next workspace and follow" })
hl.bind("SUPER + C", hl.dsp.window.center(), { description = "Window: Center" })
hl.bind("SUPER + CONTROL + SHIFT + slash",
hl.dsp.exec_cmd("makoctl mode -t do-not-disturb"),
{ description = "Toggle do-not-disturb" })
hl.bind("SUPER + CONTROL + Delete", hl.dsp.exec_cmd("hyprland-toggle-monitor eDP-1"),
{ description = "Toggle laptop display" })
hl.bind("SUPER + Escape", hl.dsp.exec_raw("loginctl lock-session"), { description = "Lock screen" })
hl.bind("SUPER + SHIFT + escape", hl.dsp.exec_raw("systemctl suspend"), { description = "Suspend" })
--hl.bind("SUPER + ALT + escape", hl.dsp.exec_raw("uwsm stop"), { description = "Stop UWSM" })
hl.bind("SUPER + ALT + escape", hl.dsp.exit(), { description = "Exit Hyprland" })
hl.bind("SUPER + CONTROL + escape", hl.dsp.exec_raw("reboot"), { description = "Reboot" })
hl.bind("SUPER + SHIFT + CONTROL + escape", hl.dsp.exec_raw("systemctl poweroff"), { description = "Power off" })
-- hl.bind("SUPER + L", hl.dsp.window.resize("right"), { repeating = true, description = "Window: Resize right" })
-- hl.bind("SUPER + J", hl.dsp.window.resize("down"), { repeating = true, description = "Window: Resize down" })
-- hl.bind("SUPER + K", hl.dsp.window.resize("up"), { repeating = true, description = "Window: Resize up" })
-- # Change Workspace Mode
--
-- bind = SUPER SHIFT, X, workspaceopt, allfloat
-- bind = SUPER SHIFT, X, exec, $notifycmd "Toggled All Float Mode"
-- bind = SUPER SHIFT, Z, workspaceopt, allpseudo
-- bind = SUPER SHIFT, Z, exec, $notifycmd "Toggled All Pseudo Mode"
hl.on("keybinds.submap", function(name)
if name == "" then
hl.notification.create({ text = "Exited submap", duration = 2000, icon = "hint" })
return
end
hl.notification.create({ text = "Entered submap: " .. name, duration = 2000, icon = "hint" })
end)
hl.bind(HYPR .. "Z", hl.dsp.submap("passthru"), { description = "Passthru Menu" })
hl.define_submap("passthru", function()
hl.bind("escape", hl.dsp.submap("reset"), { description = "Passthru: Exit" })
end)
hl.bind("SUPER + F9", hl.dsp.submap("resize"), { description = "Resize Menu" })
hl.define_submap("resize", function()
hl.bind("period", hl.dsp.window.resize({ x = 10, y = 10, relative = true }),
{ repeating = true, description = "Resize: Increase" })
hl.bind("comma", hl.dsp.window.resize({ x = -10, y = -10, relative = true }),
{ repeating = true, description = "Resize: Decrease" })
hl.bind("R", function()
window_resize_percentage(0.5, 0.5)
end, { description = "Resize: Reset" })
hl.bind("S", function()
window_resize_percentage(0.25, 0.25)
end, { description = "Resize: Small" })
hl.bind("D", function()
window_resize_percentage(0.7, 0.96)
hl.dispatch(hl.dsp.window.center())
end, { description = "Resize: Large" })
hl.bind("C", hl.dsp.window.center(), { description = "Resize: Center" })
hl.bind("P", hl.dsp.window.pin(), { description = "Resize: Pin" })
hl.bind("up", hl.dsp.window.move({ direction = "up" }), { description = "Resize: Move up" })
hl.bind("down", hl.dsp.window.move({ direction = "down" }), { description = "Resize: Move down" })
hl.bind("left", hl.dsp.window.move({ direction = "left" }), { description = "Resize: Move left" })
hl.bind("right", hl.dsp.window.move({ direction = "right" }), { description = "Resize: Move right" })
hl.bind("escape", hl.dsp.submap("reset"), { description = "Resize: Exit" })
hl.bind("catchall", hl.dsp.submap("reset"), { description = "Resize: Exit" })
end)
local workspaceGroupSize = 10
local numberkey = { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }
function workspace_in_group(i)
local curr = hl.get_active_workspace().id
local newVal = math.floor((curr - 1) / workspaceGroupSize) * workspaceGroupSize + i
return newVal
end
for i = 1, 10 do
hl.bind("SUPER + CONTROL + code:" .. numberkey[i], function()
hl.dispatch(hl.dsp.workspace.move({ monitor = "+1", workspace = workspace_in_group(i), follow = true }))
end, { description = "Workspace: Move monitor " .. i })
end
for i = 1, 10 do
hl.bind("SUPER + SHIFT + code:" .. numberkey[i], function()
hl.dispatch(hl.dsp.window.move({ workspace = workspace_in_group(i), follow = true }))
end, { description = "Workspace: Move " .. i })
end
for i = 1, 10 do
hl.bind("SUPER + code:" .. numberkey[i], function()
hl.dispatch(hl.dsp.focus({ workspace = workspace_in_group(i), on_current_monitor = true }))
end, { description = "Workspace: Focus " .. i })
end
-- Scroll through existing workspaces with mainMod + scroll
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Workspace: Next" })
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Workspace: Previous" })
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true, description = "Window: Drag" })
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true, description = "Window: Resize" })
hl.bind("mouse:275", hl.dsp.window.cycle_next({ next = true }), { click = true, description = "Window: Cycle next" })
hl.bind("mouse:276", hl.dsp.window.cycle_next({ next = false }), { click = true, description = "Window: Cycle previous" })
hl.bind(HYPR .. "V", hl.dsp.exec_cmd("pavucontrol"), { description = "Volume control" })
hl.bind(HYPR .. "B", hl.dsp.exec_cmd("blueberry"), { description = "Bluetooth manager" })
hl.bind(HYPR .. "semicolon", hl.dsp.exec_cmd("~/.local/bin/set-wallpaper.sh categories/technics"),
{ description = "get new wallpaper" })
hl.bind(HYPR .. "A", hl.dsp.exec_cmd("gtk-launch pi.desktop"), { description = "Open pi tui" })
hl.bind(HYPR .. "O", dispatch_focus_or_launch({
match = "chrome-outlook.office.com",
cmd = "gtk-launch Outlook.desktop",
}), { description = "Email" })
hl.bind(HYPR .. "T", dispatch_focus_or_launch({
match = "chrome-teams.microsoft.com",
cmd = "gtk-launch Team.desktop",
}), { description = "UWO Team" })
hl.bind(HYPR .. "Y", dispatch_focus_or_launch({
match = "chrome-youtube.com",
cmd = "gtk-launch YouTube.desktop",
}), { description = "YouTube" })
hl.bind(HYPR .. "W", dispatch_focus_or_launch({
match = "chrome-web.whatsapp.com",
cmd = "gtk-launch WhatsApp.desktop",
}), { description = "WhatsApp" })
hl.bind(HYPR .. "G", dispatch_focus_or_launch({
match = "chrome-chatgpt.com",
cmd = "gtk-launch ChatGPT.desktop",
}), { description = "ChatGPT" })
hl.bind(HYPR .. "D", dispatch_focus_or_launch({
match = "chrome-discord.com",
cmd = "gtk-launch Discord.desktop"
}), { description = "Discord" })
hl.bind(HYPR .. "M", dispatch_focus_or_launch({
match = "chrome-messages.google.com",
cmd = "gtk-launch \"Google Messages.desktop\"",
}), { description = "Google Messages" })
hl.bind(HYPR .. "S", dispatch_focus_or_launch({
match = "Spotify",
cmd = music,
}), { description = "Music" })
hl.bind(HYPR .. "F", dispatch_focus_or_launch({
match = "strata",
cmd = "gtk-launch io.github.lgse.Strata.desktop",
}), { description = "File Manager" })
-- Gestures
-- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" })
-- hl.gesture({ fingers = 3, direction = "down", mods = "ALT", action = "close" })
-- hl.gesture({ fingers = 3, direction = "up", mods = "SUPER", scale = 1.5, action = "fullscreen" })
-- hl.gesture({ fingers = 3, direction = "left", scale = 1.5, action = "float" })
--
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 2 })
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1.2, mode = "mult" })
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1, mode = "live" })
+61
View File
@@ -0,0 +1,61 @@
hl.monitor({ output = "desc:Lenovo Group Limited 0x41A0", mode = "highrr", position = "0x0", scale = "1.0" })
hl.monitor({ output = "desc:Samsung Display Corp. 0x4143", mode = "highrr", position = "0x0", scale = "2" })
hl.monitor({
output = "desc:LG Electronics LG HDR 4K 406NTZN74597",
mode = "preferred",
position = "auto-right",
scale =
"1.333333"
})
hl.monitor({
output = "desc:Microstep MSI MAG342CQR DB6H252300057",
mode = "3440x1440@144",
-- mode = "preferred",
position = "auto-left",
scale =
"1.0"
})
hl.monitor({
output = "desc:Ancor Communications Inc ASUS MG28U 0x00009B77",
mode = "preferred",
position = "auto-right",
scale =
"1.333333"
})
-- hl.monitor({ output = "eDP-1", mode = "preferred", position = "0x0", scale = "1.0" })
hl.monitor({
output = "desc:LG Electronics LG HDR WQHD 0x0006530C",
mode = "preferred",
position = "auto-up",
scale =
"1.333333"
})
hl.monitor({ output = "CAP Capture 0x00000001", mode = "1920x1080@60", position = "auto-down", scale = 1 })
-- hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@60", position = "auto-down", scale = 1 })
-- hl.monitor({ output = "HDMI-A-2", mode = "1920x1080@60", position = "auto-down", scale = 1 })
hl.monitor({
output = "desc:Ancor Communications Inc ASUS PB238 DCLMTF074371",
mode = "preferred",
position = "auto",
scale =
"1.0"
})
hl.monitor({ output = "desc:Lenovo Group Limited L15 U133R0A2", mode = "preferred", position = "auto-down", scale = 1 })
hl.monitor({ output = "desc:Lenovo Group Limited M15 V30F2A15", mode = "preferred", position = "auto-down", scale = 1 })
hl.monitor({ output = "desc:Lenovo Group Limited L15 U133X4PG", mode = "preferred", position = "auto-down", scale = 1 })
hl.monitor({ output = "desc:Stargate Technology TYPE-C", mode = "preferred", position = "auto-down", scale = 1 })
hl.monitor({ output = "desc:Proteon TYPE-C 8R33926O00QS", mode = "preferred", position = "auto-right", scale = "1.0" })
hl.monitor({ output = "desc:GWD ARZOPA 000000000000", mode = "preferred", position = "auto-down", scale = "1.0" })
hl.monitor({ output = "desc:BNQ BenQ EX3203R 7CL00509019", mode = "preferred", position = "auto", scale = 1 })
hl.monitor({ output = "desc:BNQ BenQ EX3501R N4M05650019", mode = "preferred", position = "auto-right", scale = "1.0" })
hl.monitor({
output = "desc:Dell Inc. DELL U3818DW 97F8P8AD0HEL",
mode = "preferred",
position = "auto-left",
scale =
"1.0"
})
+77
View File
@@ -0,0 +1,77 @@
hl.workspace_rule({ workspace = "special:scratchpad", border_size = 3 })
hl.window_rule({
match = { class = "(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float|org.pulseaudio.pavucontrol)" },
tag =
"+floating-window"
})
hl.window_rule({
match = { class = "terminal-pi" },
float = true,
center = true,
workspace = "special:scratchpad",
size = { "monitor_w/2", "monitor_h/2" }
})
hl.window_rule({
match = {
class = "(quicknotes|capture|agenda)"
},
tag = "+floating-window"
})
hl.window_rule({
name = "ostt floating windows",
match = { class = "ostt-popup" },
float = true,
no_anim = true,
move = { 10, 10 },
size = { 320, 240 },
})
hl.window_rule({
match = {
class = "(xdg-desktop-portal-gtk|sublime_text|DesktopEditors)",
title = "^(Open.*Files?|Save.*Files?|Save.*As|All Files|Save)"
},
tag = "+floating-window"
})
hl.window_rule({
match = { class = "code" },
fullscreen_state = 1,
})
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,
})
hl.window_rule({ match = { tag = "floating-window" }, float = true, center = true, size = { "monitor_w/2", "monitor_h/2" } })
hl.window_rule({ match = { class = "(rofi|wofi)" }, tag = "+user-menu" })
hl.window_rule({ match = { class = "^(pinentry-)" }, tag = "+user-menu" })
hl.window_rule({ match = { class = "^(gcr-prompter)$" }, tag = "+user-menu" })
hl.window_rule({ match = { tag = "user-menu" }, stay_focused = true, no_anim = true, float = true, center = true, size = { "monitor_w/3", "monitor_h/3" } })
hl.window_rule({
name = "Picture in Picture windows",
match = { title = "^.*[Pp]icture[ -][Ii]n[ -][Pp]icture.*$" },
float = true,
pin = true,
rounding = 7,
opacity = "1 1",
move = { "monitor_w-window_w-10", "monitor_h-window_h-10" },
size = { "monitor_w/4", "monitor_h/4" },
})
+49
View File
@@ -0,0 +1,49 @@
nt_family TX-02
bold_font auto
italic_font auto
bold_italic_font auto
font_size 13
enable_audio_bell no
window_alert_on_bell no
window_padding_width 3
# gruvbox-dark colorscheme for kitty
# snazzy theme used as base
foreground #ebdbb2
background #272727
selection_foreground #655b53
selection_background #ebdbb2
url_color #d65c0d
# black
color0 #272727
color8 #928373
# red
color1 #cc231c
color9 #fb4833
# green
color2 #989719
color10 #b8ba25
# yellow
color3 #d79920
color11 #fabc2e
# blue
color4 #448488
color12 #83a597
# magenta
color5 #b16185
color13 #d3859a
# cyan
color6 #689d69
color14 #8ec07b
# white
color7 #a89983
color15 #ebdbb2
+40
View File
@@ -0,0 +1,40 @@
anchor=top-right
group-by=app-name,summary,body
default-timeout=5000
width=420
outer-margin=20
padding=10,15
border-size=2
max-icon-size=32
font=sans-serif 14px
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
layer=overlay
[summary~="Setup Wi-Fi"]
on-button-left=exec sh -c 'omarchy-notification-dismiss "Setup Wi-Fi"; omarchy-launch-wifi'
[summary~="Update System"]
on-button-left=exec sh -c 'omarchy-notification-dismiss "Update System"; omarchy-launch-floating-terminal-with-presentation omarchy-update'
[summary~="Learn Keybindings"]
on-button-left=exec sh -c 'omarchy-notification-dismiss "Learn Keybindings"; omarchy-menu-keybindings'
[summary~="Install Dictation with Voxtype"]
on-button-left=exec sh -c 'omarchy-notification-dismiss "Install Dictation with Voxtype"; omarchy-launch-floating-terminal-with-presentation omarchy-voxtype-install'
[summary~="Screenshot copied & saved"]
max-icon-size=80
format=<b>%s</b>\n%b
include=~/.local/state/omarchy/current/theme/mako.ini
+27
View File
@@ -0,0 +1,27 @@
config_version = "0.0.25"
[transcription]
provider = "whisper"
model = "small"
[audio]
device = "default"
output_format = "mp3 -ab 16k -ar 12000"
peak_volume_threshold = 90
reference_level_db = -20
visualization = "spectrum"
[popup]
terminal = "foot"
borderless = true
font_size = 25
height = 15
width = 90
x = 630
y = 790
[output.paste]
paste_key = "ctrl+shift+v"
restore_clipboard = true
restore_delay_ms = 750
post_popup_delay_ms = 1000
+23
View File
@@ -0,0 +1,23 @@
# See the full configuration reference: https://rioterm.com/docs/config
copy-on-select = true
theme = "omarchy"
hide-mouse-cursor-when-typing = true
draw-bold-text-with-light-colors = false
line-height = 1.1
[fonts]
size = 16
family = "MonaspiceNeNerdFontMono"
disable-warnings-not-found = false
[editor]
program = "nvim"
args = []
[bindings]
keys = [
{ key = "up", with = "super | shift", action = "ScrollToPrevPrompt" },
{ key = "down", with = "super | shift", action = "ScrollToNextPrompt" },
]
+121
View File
@@ -0,0 +1,121 @@
@theme "theme"
* {
border: 1;
margin: 0;
padding: 0;
spacing: 0;
}
configuration {
combi-modes: [window,drun,run];
icon-theme: "Oranchelo";
show-icons: true;
drun-display-format: "{icon} {name}";
location: 0;
disable-history: false;
hide-scrollbar: true;
display-drun: "  Apps ";
display-run: "  Run ";
display-window: "  Window";
display-Network: " 󰤨 Network";
sidebar-mode: true;
font: "MonaspiceRn Nerd Font 15";
combi {
display-name: "";
}
drun {
display-name: "";
}
run {
display-name: "";
}
window {
display-name: "";
}
timeout {
delay: 10;
action: "kb-cancel";
}
}
listview {
columns: 1;
lines: 10;
}
window {
transparency: "real";
border-color: @border-color;
border-radius: @window-border-radius;
border: @window-border-size;
}
message {
border-color: @seperator-color;
border: 1px dash 0px 0px;
padding: 1px;
}
mainbox {
children: [inputbar, listview];
}
textbox-prompt-colon {
str: ":";
expand: false;
text-color: @prompt-color;
}
inputbar {
border: 0px;
children: [prompt, entry];
}
entry {
border: 0px;
background-color: @prompt-background-color;
padding: 12px 3px;
}
prompt {
padding: 12px 16px 12px 12px;
text-color: @prompt-color;
background-color: @prompt-background-color;
border: 0px;
}
listview {
lines: 8;
border: 0px;
}
element {
border: 0px;
// children: [element-text];
}
element-text, element-icon, mode-switcher {
border: 0px;
background-color: inherit;
text-color: inherit;
padding: 10px;
}
element selected {
background-color: @selected-background;
text-color: @selected-foreground;
}
button {
padding: 10px;
background-color: @normal-background;
text-color: @normal-foreground;
vertical-align: 0.5;
horizontal-align: 0.5;
}
+9
View File
@@ -0,0 +1,9 @@
mode = "theme"
theme = "omarchy"
single_click_previews = true
search_open_files_directly = false
browser_mode = "columns"
browser_density = "compact"
sort_key = "name"
sort_direction = "ascending"
check_for_updates = true
+1
View File
@@ -0,0 +1 @@
XDG_TERMINAL = foot
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More