Compare commits

..
7 Commits
Author SHA1 Message Date
gitadmin 1b608ea553 fix(ci): exec pi to replace shell process in ci script 2026-08-15 23:42:19 -04:00
gitadmin 4a8341a651 refactor(tmux): clean up terminal settings and adjust keybindings
- Enable tmux-256color and universal RGB/clipboard terminal features
- Remove stale commented-out terminal overrides and default-shell
- Update escape-time and workmux popup binding
- Rebind t→o for the t script
2026-08-15 23:41:40 -04:00
gitadmin 02b2a96fa9 chore(mise): add dua tool 2026-08-15 23:39:17 -04:00
gitadmin 52a9341bc0 feat(tmux): enable mouse support and add workmux status popup 2026-08-13 10:59:24 -04:00
gitadmin 407024a6ec style(hyprland): reformat config and remap mouse bindings
Reformat monitor configs to multi-line table syntax for readability.
Wrap long hl.bind calls and fix whitespace alignment in window rules.

Rebind mouse:275/276 from clipboard copy/paste to window cycle
next/previous for more intuitive navigation.
2026-08-12 19:02:47 -04:00
gitadmin 2e84ce9375 feat(theme): add light/dark mode detection based on light.mode file 2026-08-12 18:23:42 -04:00
gitadmin f060f53d64 chore: add workmux to mise config 2026-08-12 18:22:58 -04:00
5 changed files with 103 additions and 52 deletions
+64 -17
View File
@@ -1,16 +1,40 @@
-- require("keybinds.lua") -- require("keybinds.lua")
hl.monitor({ output = "desc:Lenovo Group Limited 0x41A0", mode = "highrr", position = "0x0", scale = "1.0" }) 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: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({
hl.monitor({ output = "desc:Ancor Communications Inc ASUS MG28U 0x00009B77", mode = "preferred", position = "auto-right", scale = "1.333333" }) output = "desc:LG Electronics LG HDR 4K 406NTZN74597",
mode = "preferred",
position = "auto-right",
scale =
"1.333333"
})
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 = "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 = "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 = "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-1", 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: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-left", scale = 1 }) hl.monitor({ output = "desc:Lenovo Group Limited L15 U133R0A2", mode = "preferred", position = "auto-left", scale = 1 })
hl.monitor({ output = "desc:Lenovo Group Limited M15 V30F2A15", mode = "preferred", position = "auto-left", scale = 1 }) hl.monitor({ output = "desc:Lenovo Group Limited M15 V30F2A15", mode = "preferred", position = "auto-left", scale = 1 })
hl.monitor({ output = "desc:Proteon TYPE-C 8R33926O00QS", mode = "preferred", position = "auto-right", scale = "1.0" }) hl.monitor({ output = "desc:Proteon TYPE-C 8R33926O00QS", mode = "preferred", position = "auto-right", scale = "1.0" })
@@ -18,8 +42,20 @@ hl.monitor({ output = "desc:Stargate Technology TYPE-C", mode = "preferred", pos
hl.monitor({ output = "desc:GWD ARZOPA 000000000000", mode = "preferred", position = "auto-left", scale = "1.0" }) hl.monitor({ output = "desc:GWD ARZOPA 000000000000", mode = "preferred", position = "auto-left", scale = "1.0" })
hl.monitor({ output = "desc:BNQ BenQ EX3203R 7CL00509019", mode = "preferred", position = "auto", scale = 1 }) 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: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" }) hl.monitor({
hl.monitor({ output = "desc:Microstep MSI MAG342CQR DB6H252300057", mode = "preferred", position = "auto-right", scale = "1.0" }) output = "desc:Dell Inc. DELL U3818DW 97F8P8AD0HEL",
mode = "preferred",
position = "auto-left",
scale =
"1.0"
})
hl.monitor({
output = "desc:Microstep MSI MAG342CQR DB6H252300057",
mode = "preferred",
position = "auto-right",
scale =
"1.0"
})
hl.config({ hl.config({
input = { input = {
@@ -291,7 +327,8 @@ hl.bind(LEADER .. "S", hl.dsp.exec_raw("ostt launch --paste"), { description = "
hl.bind(LEADER .. "I", function() sysinfo() end, { description = "Show system info" }) hl.bind(LEADER .. "I", function() sysinfo() end, { description = "Show system info" })
-- Open rofi on first press, closes it on second -- Open rofi on first press, closes it on second
hl.bind(LEADER .. "Space", hl.dsp.exec_raw("rofi -show combi --modes combi"), { release = true, description = "Open Application Menu" }) hl.bind(LEADER .. "Space", hl.dsp.exec_raw("rofi -show combi --modes combi"),
{ release = true, description = "Open Application Menu" })
hl.bind(LEADER .. "SHIFT + SPACE", hl.dsp.exec_cmd("~/.local/bin/hyprland-fetch-client"), hl.bind(LEADER .. "SHIFT + SPACE", hl.dsp.exec_cmd("~/.local/bin/hyprland-fetch-client"),
{ release = true, description = "Fetch client" }) { release = true, description = "Fetch client" })
hl.bind(LEADER .. "CONTROL + SPACE", hl.bind(LEADER .. "CONTROL + SPACE",
@@ -306,7 +343,8 @@ hl.bind(LEADER .. "slash",
hl.bind(HYPR .. "V", hl.dsp.exec_cmd("pavucontrol"), { description = "Volume control" }) 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 .. "B", hl.dsp.exec_cmd("blueberry"), { description = "Bluetooth manager" })
hl.bind(HYPR .. "semicolon", hl.dsp.exec_cmd("~/.local/bin/set-wallpaper.sh categories/quotes"), { description = "get new wallpaper" }) hl.bind(HYPR .. "semicolon", hl.dsp.exec_cmd("~/.local/bin/set-wallpaper.sh categories/quotes"),
{ description = "get new wallpaper" })
hl.bind("Print", hl.dsp.exec_cmd("hyprshot -m window"), { description = "Take screenshot" }) hl.bind("Print", hl.dsp.exec_cmd("hyprshot -m window"), { description = "Take screenshot" })
hl.bind("SHIFT + Print", hl.dsp.exec_cmd("hyprshot -m region"), { description = "Take screenshot" }) hl.bind("SHIFT + Print", hl.dsp.exec_cmd("hyprshot -m region"), { description = "Take screenshot" })
@@ -367,12 +405,17 @@ hl.bind(HYPR .. "F", dispatch_focus_or_launch({
cmd = "pcmanfm", cmd = "pcmanfm",
}), { description = "File Manager" }) }), { description = "File Manager" })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { repeating = true, description = "Volume down" }) hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"), { repeating = true, description = "Volume up" }) { 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("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("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"), { repeating = true, description = "Brightness up" }) { description = "Toggle mic mute" })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"), { repeating = true, description = "Brightness down" }) 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("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("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { description = "Previous media" })
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { description = "Next media" }) hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { description = "Next media" })
@@ -588,8 +631,9 @@ hl.bind(LEADER .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Move/resize windows with mainMod + LMB/RMB and dragging -- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(LEADER .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) hl.bind(LEADER .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(LEADER .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) hl.bind(LEADER .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
hl.bind("mouse:275", hl.dsp.exec_cmd("wl-copy $(wl-paste -p)"), { mouse = true }) hl.bind("mouse:275", hl.dsp.window.cycle_next({ next = true }), { click = true, description = "Window: Cycle next" })
hl.bind("mouse:276", hl.dsp.exec_cmd("wtype -M ctrl -M shift v -m ctrl -m shift"), { mouse = true }) hl.bind("mouse:276", hl.dsp.window.cycle_next({ next = false }), { click = true, description = "Window: Cycle previous" })
-- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" }) -- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" })
-- hl.gesture({ fingers = 3, direction = "down", mods = "ALT", action = "close" }) -- hl.gesture({ fingers = 3, direction = "down", mods = "ALT", action = "close" })
@@ -601,8 +645,11 @@ hl.bind("mouse:276", hl.dsp.exec_cmd("wtype -M ctrl -M shift v -m ctrl -m shift"
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1, mode = "live" }) -- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1, mode = "live" })
hl.workspace_rule({ workspace = "special:special", border_size = 3 }) hl.workspace_rule({ workspace = "special:special", 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 = hl.window_rule({
"+floating-window" }) 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({ hl.window_rule({
name = "ostt floating windows", name = "ostt floating windows",
+2
View File
@@ -7,10 +7,12 @@ age = "latest"
bun = "latest" bun = "latest"
codex = "latest" codex = "latest"
copilot-cli = "latest" copilot-cli = "latest"
dua = "latest"
"github:Gitlawb/zero" = "latest" "github:Gitlawb/zero" = "latest"
"github:ZinoKader/portal" = "latest" "github:ZinoKader/portal" = "latest"
"github:danielmiessler/fabric" = "latest" "github:danielmiessler/fabric" = "latest"
"github:mrusme/reader" = "latest" "github:mrusme/reader" = "latest"
"github:raine/workmux" = "latest"
"github:rimio-ai/rimz" = "latest" "github:rimio-ai/rimz" = "latest"
"github:sandboxec/sandboxec" = "latest" "github:sandboxec/sandboxec" = "latest"
"github:ulyssa/iamb" = "latest" "github:ulyssa/iamb" = "latest"
+11 -17
View File
@@ -1,19 +1,11 @@
# set-option -g default-terminal 'screen-256color' # set-option -g default-terminal 'screen-256color'
# set-option -g terminal-overrides ',xterm-256color:RGB' # set-option -g terminal-overrides ',xterm-256color:RGB'
# set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
set -as terminal-feature ",foot*:RGB" set -as terminal-feature ",*:RGB"
set -as terminal-feature ",*:clipboard"
# screen mode # set -ag terminal-overrides ",*:Tc"
# set -g default-terminal "${TERM}"
# set -g default-terminal "tmux-256color"
# set -ag terminal-overrides ",xterm-256color:RGB"
# colors
# set -ag terminal-overrides ",xterm*:Tc"
# undercurl support
# set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
# underscore colours - needs tmux-3.0
# set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
# allow terminal scrolling # allow terminal scrolling
# set -g terminal-overrides 'xterm*:smcup@:rmcup@' # set -g terminal-overrides 'xterm*:smcup@:rmcup@'
@@ -22,8 +14,7 @@ set -as terminal-feature ",foot*:RGB"
setenv -g SSH_AUTH_SOCK "$HOME/.ssh/ssh_auth_sock" setenv -g SSH_AUTH_SOCK "$HOME/.ssh/ssh_auth_sock"
set -g update-environment "DISPLAY XAUTHORITY" set -g update-environment "DISPLAY XAUTHORITY"
# default shell set -g mouse on
set -g default-shell "/usr/bin/fish"
# auto rename windows # auto rename windows
# set -g automatic-rename on # set -g automatic-rename on
@@ -49,7 +40,7 @@ set -g allow-passthrough on
#set -g bell-on-alert on #set -g bell-on-alert on
set -s escape-time 1 set -s escape-time 0
setw -g aggressive-resize on setw -g aggressive-resize on
set -g status-keys vi set -g status-keys vi
set-window-option -g mode-keys vi set-window-option -g mode-keys vi
@@ -62,6 +53,7 @@ set-option -g detach-on-destroy off
set-option -g renumber-windows on set-option -g renumber-windows on
set-option -g set-clipboard on set-option -g set-clipboard on
set-option -g set-titles-string "#S:#{pane_title}" set-option -g set-titles-string "#S:#{pane_title}"
set -sg escape-time 10
unbind C-Space unbind C-Space
set -g prefix C-Space set -g prefix C-Space
@@ -82,6 +74,8 @@ bind e run "tmux split -h /usr/bin/nvim"
#bind o display-popup -w 80% -h 80% -E /usr/bin/opencode #bind o display-popup -w 80% -h 80% -E /usr/bin/opencode
#bind g display-popup -w 80% -h 80% -E /usr/bin/lazygit #bind g display-popup -w 80% -h 80% -E /usr/bin/lazygit
bind a display-popup -w 80% -h 80% -E "workmux dashboard"
# split windows like vim # split windows like vim
# vim's definition of a horizontal/vertical split is reversed from tmux's # vim's definition of a horizontal/vertical split is reversed from tmux's
bind v split-window -h -c "#{pane_current_path}" bind v split-window -h -c "#{pane_current_path}"
@@ -102,7 +96,7 @@ bind B command-prompt -p "New Session:" "new-session -A -s '%%'"
bind Tab switch-client -l bind Tab switch-client -l
bind R command-prompt -p "Rename Window:" "rename-window '%%'" bind R command-prompt -p "Rename Window:" "rename-window '%%'"
bind t run-shell -b "~/.local/bin/t" bind o run-shell -b "~/.local/bin/t"
bind Enter run-shell -b "~/.local/bin/s" bind Enter run-shell -b "~/.local/bin/s"
bind Q confirm kill-session bind Q confirm kill-session
@@ -165,7 +159,7 @@ set -g @plugin 'sainnhe/tmux-fzf'
# prefix + u # prefix + u
set -g @plugin 'joshmedeski/tmux-fzf-url' set -g @plugin 'joshmedeski/tmux-fzf-url'
# prefix + a # prefix + a
set -g @plugin 'vieitesss/agent-radar' # set -g @plugin 'vieitesss/agent-radar'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.config/tmux/plugins/tpm/tpm' run '~/.config/tmux/plugins/tpm/tpm'
+1 -1
View File
@@ -1,2 +1,2 @@
#!/usr/bin/env -S /bin/sh #!/usr/bin/env -S /bin/sh
pi --model opencode-go/mimo-v2.5 -p /skill:commit-staged exec pi --model opencode-go/mimo-v2.5 -p /skill:commit-staged
+9 -1
View File
@@ -7,6 +7,7 @@ TEMPLATES_DIR="$DOTFILES_DIR/default/themed"
USER_TEMPLATES_DIR="$HOME/.config/omarchy/themed" USER_TEMPLATES_DIR="$HOME/.config/omarchy/themed"
NEXT_THEME_DIR="$HOME/.config/omarchy/current/next-theme" NEXT_THEME_DIR="$HOME/.config/omarchy/current/next-theme"
COLORS_FILE="$NEXT_THEME_DIR/colors.toml" COLORS_FILE="$NEXT_THEME_DIR/colors.toml"
THEME_MODE="$NEXT_THEME_DIR/light.mode"
# Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46") # Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46")
hex_to_rgb() { hex_to_rgb() {
@@ -18,6 +19,13 @@ hex_to_rgb() {
if [[ -f $COLORS_FILE ]]; then if [[ -f $COLORS_FILE ]]; then
sed_script=$(mktemp) sed_script=$(mktemp)
key="theme_mode";
if [[ -f $THEME_MODE ]]; then
printf 's|{{ %s }}|%s|g\n' "$key" "light" # {{ key }} -> value
else
printf 's|{{ %s }}|%s|g\n' "$key" "dark" # {{ key }} -> value
fi >"$sed_script"
while IFS='=' read -r key value; do while IFS='=' read -r key value; do
key="${key//[\"\' ]/}" # strip quotes and spaces from key key="${key//[\"\' ]/}" # strip quotes and spaces from key
[[ $key && $key != \#* ]] || continue # skip empty lines and comments [[ $key && $key != \#* ]] || continue # skip empty lines and comments
@@ -30,7 +38,7 @@ if [[ -f $COLORS_FILE ]]; then
rgb=$(hex_to_rgb "$value") rgb=$(hex_to_rgb "$value")
echo "s|{{ ${key}_rgb }}|${rgb}|g" echo "s|{{ ${key}_rgb }}|${rgb}|g"
fi fi
done <"$COLORS_FILE" >"$sed_script" done <"$COLORS_FILE" >>"$sed_script"
shopt -s nullglob shopt -s nullglob