Compare commits

..
6 Commits
Author SHA1 Message Date
gitadmin 77b2db55ec fix(hypr): adjust monitor positions, add float limit, new keybindings
- Reorder monitor positions (Stargate/ARZOPA to auto-down, MSI to auto-left)
- Add toggle_float_with_limit function that caps floating windows at 80%
- Add keybindings for Obsidian today and pi tui
- Add window rules for terminal-pi and quicknotes (floating)
- Update ostt-popup to fixed size/position
2026-08-19 14:42:03 -04:00
gitadmin c53a58a55e fix(nvim): switch to pi2.nvim and add render-markdown 2026-08-19 14:31:40 -04:00
gitadmin da1b48c4c1 feat: add pi desktop launcher and cleanup terminal-launcher 2026-08-19 13:53:18 -04:00
gitadmin cd7e0dcea3 fix(ostt): enable foot terminal for popup 2026-08-19 13:51:52 -04:00
gitadmin bc53931906 chore(mise): add pi extensions 2026-08-19 13:50:38 -04:00
gitadmin 7ca3865bbb chore(packages): add tensaku-bin 2026-08-19 13:49:14 -04:00
9 changed files with 79 additions and 20 deletions
+57 -11
View File
@@ -38,8 +38,8 @@ hl.monitor({
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:Proteon TYPE-C 8R33926O00QS", mode = "preferred", position = "auto-right", scale = "1.0" })
hl.monitor({ output = "desc:Stargate Technology TYPE-C", mode = "preferred", position = "auto-right", scale = "1.0" })
hl.monitor({ output = "desc:GWD ARZOPA 000000000000", mode = "preferred", position = "auto-left", scale = "1.0" })
hl.monitor({ output = "desc:Stargate Technology TYPE-C", mode = "preferred", position = "auto-down", 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({
@@ -52,7 +52,7 @@ hl.monitor({
hl.monitor({
output = "desc:Microstep MSI MAG342CQR DB6H252300057",
mode = "preferred",
position = "auto-right",
position = "auto-left",
scale =
"1.0"
})
@@ -197,7 +197,7 @@ hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "almostLinear"
-- local terminal = "ghostty -e"
local terminal = "foot"
local notify_cmd = "notify-send"
local _notify_cmd = "notify-send"
local browser = "gtk-launch firefox.desktop"
local webapp = "chromium --new-window --ozone-platform=wayland --app="
local music = "gtk-launch spotify.desktop"
@@ -318,13 +318,44 @@ function toggle_master()
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
win = hl.get_active_window()
local mon = win and 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.size.width * 0.8)
local max_height = math.floor(mon.size.height * 0.8)
local scale = math.min(1, max_width / win.size.width, max_height / win.size.height)
if scale < 1 then
hl.dispatch(hl.dsp.window.resize({
x = math.floor(win.size.width * scale),
y = math.floor(win.size.height * scale),
relative = false,
}))
end
end
hl.bind(LEADER .. "SHIFT + return", hl.dsp.exec_cmd("gtk-launch herdr.desktop"), { description = "Open herdr terminal" })
hl.bind(LEADER .. "return", hl.dsp.exec_cmd("gtk-launch tmux.desktop"), { description = "Open tmux terminal" })
hl.bind(LEADER .. "N", hl.dsp.exec_cmd(terminal .. " -a quicknotes -e nvim +'Obsidian today'"),
{ description = "Open Obsidian today in a centered floating window" })
hl.bind(LEADER .. "B", hl.dsp.exec_raw(browser), { description = "Open browser" })
hl.bind(LEADER .. "T", hl.dsp.exec_raw(terminal .. " -e btop"), { description = "Open system monitor" })
hl.bind(LEADER .. "S", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
hl.bind(LEADER .. "I", function() sysinfo() end, { description = "Show system info" })
hl.bind(LEADER .. "I", sysinfo, { description = "Show system info" })
-- Open rofi on first press, closes it on second
hl.bind(LEADER .. "Space", hl.dsp.exec_raw("rofi -show combi --modes combi"),
@@ -340,6 +371,7 @@ hl.bind(LEADER .. "slash",
{ release = true, description = "Open rofi-pass" }
)
hl.bind(HYPR .. "P", hl.dsp.exec_cmd("gtk-launch pi.desktop"), { description = "Open pi tui" })
hl.bind(HYPR .. "V", hl.dsp.exec_cmd("pavucontrol"), { description = "Volume control" })
hl.bind(HYPR .. "B", hl.dsp.exec_cmd("blueberry"), { description = "Bluetooth manager" })
@@ -430,7 +462,9 @@ hl.bind(LEADER .. "CTRL + F", hl.dsp.window.fullscreen_state({ internal = 2, cli
{ description = "Window: Toggle fullscreen state 2" })
hl.bind(LEADER .. "ALT + F", hl.dsp.window.fullscreen_state({ internal = 0, client = 2, action = "toggle" }),
{ description = "Window: Toggle fullscreen state 2" })
hl.bind(LEADER .. "SHIFT + F", hl.dsp.window.float({ action = "toggle" }), { description = "Window: Toggle floating" })
hl.bind(LEADER .. "T", toggle_float_with_limit,
{ description = "Window: Toggle floating/tiling (max 80%)" })
hl.bind(LEADER .. "P", hl.dsp.window.pseudo(), { description = "Window: Toggle pseudo tiling" })
@@ -462,9 +496,7 @@ hl.bind(LEADER .. "ALT + Tab", hl.dsp.focus({ workspace = "previous", on_current
{ description = "Window: Focus previous in workspace" })
-- arrange split ratio
hl.bind(LEADER .. "X", function()
toggle_master()
end)
hl.bind(LEADER .. "X", toggle_master, { description = "Layout: Toggle master size" })
-- hl.bind(LEADER .. "equal", hl.dsp.layout("mfact exact 0.5"))
hl.bind(LEADER .. "M", hl.dsp.layout("swapwithmaster"))
@@ -651,10 +683,23 @@ hl.window_rule({
"+floating-window"
})
hl.window_rule({
match = { class = "terminal-pi" },
tag = "+floating-window"
})
hl.window_rule({
match = { class = "quicknotes" },
tag = "+floating-window"
})
hl.window_rule({
name = "ostt floating windows",
match = { class = "ostt-popup" },
tag = "+floating-window"
float = true,
no_anim = true,
move = { 10, 10 },
size = { 320, 240 },
})
hl.window_rule({
@@ -685,6 +730,7 @@ hl.window_rule({
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" })
+3
View File
@@ -31,7 +31,10 @@ run = [
'pi install npm:pi-native-search',
'pi install npm:pi-subagents',
'pi install npm:context-mode',
'pi install npm:@ff-labs/pi-fff',
'pi install npm:@dietrichgebert/ponytail',
'pi install npm:@gotgenes/pi-permission-system',
'pi install npm:@plannotator/pi-extension',
'test -x /usr/bin/pass && /usr/bin/pass show config/pi/auth.json > ~/.pi/agent/auth.json'
]
+6 -7
View File
@@ -1,9 +1,8 @@
vim.pack.add({ "https://github.com/alex35mil/pi.nvim" })
vim.keymap.set({'n'}, '<leader>mp', '<cmd>Pi<cr>', { noremap = true, silent = true, desc = "Toggle Pi Agent" })
require("pi").setup({
cli = {
args = { "--approve" },
},
vim.keymap.set({ 'n' }, '<leader>mp', '<cmd>Pi<cr>', { noremap = true, silent = true, desc = "Toggle Pi Agent" })
vim.pack.add({
"https://github.com/zgs225/pi2.nvim",
-- Default chat-history renderer (render.engine = "render-markdown"):
"https://github.com/MeanderingProgrammer/render-markdown.nvim",
})
require("pi").setup()
+1 -1
View File
@@ -12,7 +12,7 @@ reference_level_db = -20
visualization = "spectrum"
[popup]
#terminal = "foot"
terminal = "foot"
borderless = true
font_size = 25
height = 15
+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 --plan"
Terminal=false
Type=Application
Icon=foot
StartupNotify=true
+1
View File
@@ -80,6 +80,7 @@ dotfiles.default_mode = "symlink-each"
"~/.local/share/applications/obelix-herdr.desktop" = { source = "desktop/obelix-herdr.desktop", mode = "symlink" }
"~/.local/share/applications/nca-ai-01-tmux.desktop" = { source = "desktop/nca-ai-01-tmux.desktop", mode = "symlink" }
"~/.local/share/applications/nca-ai-01-herdr.desktop" = { source = "desktop/nca-ai-01-herdr.desktop", mode = "symlink" }
"~/.local/share/applications/pi.desktop" = { source = "desktop/pi.desktop", mode = "symlink" }
# scripts.
"~/.local/bin/hyprland-activeworkspace" = { source = "script/hyprland-activeworkspace", mode = "symlink" }
+1
View File
@@ -78,6 +78,7 @@ sddm-archlinux-theme-git
slurp
spotify
tenacity
tensaku-bin
ttf-0xproto-nerd
ttf-bitstream-vera
ttf-dejavu
-1
View File
@@ -1,5 +1,4 @@
#!/bin/sh
class=$1
cmd=$2
terminal="foot -a $class -T $class \"$cmd\""
hyprctl dispatch "focus_or_launch({ match = '$class', cmd = 'foot -a $class -T $class $cmd'})"
+1
View File
@@ -6,3 +6,4 @@ USER_FULLNAME = "{{ vars.USER_FULLNAME }}"
USER_EMAIL = "{{ vars.USER_FULLNAME }}"
THEME_DIR = "{{ vars.THEME_DIR }}"
SECOND_BRAIN = "{{ vars.SECOND_BRAIN }}"
KNOWLEDGES_VAULT = "{{ vars.SECOND_BRAIN }}"