diff --git a/.claude/settings.json##os.Linux b/.claude/settings.json##os.Linux index 6f36079..342d044 100644 --- a/.claude/settings.json##os.Linux +++ b/.claude/settings.json##os.Linux @@ -40,7 +40,6 @@ "Bash(yadm push *)" ] }, - "model": "sonnet", "hooks": { "Notification": [ { @@ -79,6 +78,8 @@ "docker" ] }, - "voiceEnabled": true, - "skipDangerousModePermissionPrompt": true + "effortLevel": "high", + "tui": "fullscreen", + "skipDangerousModePermissionPrompt": true, + "voiceEnabled": true } diff --git a/.codex/config.toml##os.Linux b/.codex/config.toml##os.Linux index d9b8593..c2f87f2 100644 --- a/.codex/config.toml##os.Linux +++ b/.codex/config.toml##os.Linux @@ -1,5 +1,5 @@ model = "gpt-5.5" -model_reasoning_effort = "medium" +model_reasoning_effort = "xhigh" personality = "pragmatic" tool_output_token_limit = 25000 # Leave room for native compaction near the 272–273k context window. @@ -7,6 +7,12 @@ tool_output_token_limit = 25000 # With tool_output_token_limit=25000 ⇒ 273000 - (25000 + 15000) = 233000 model_auto_compact_token_limit = 233000 suppress_unstable_features_warning = true +notify = ["/home/sudacode/.codex/scripts/codex-notify"] +sandbox_mode = "workspace-write" + +[tui] +notifications = ["agent-turn-complete"] +notification_condition = "always" [sandbox_workspace_write] network_access = true @@ -24,9 +30,10 @@ js_repl = false [mcp_servers.deepwiki] url = "https://mcp.deepwiki.com/mcp" -[mcp_servers.anki] -command = "npx" -args = ["mcp-remote", "http://127.0.0.1:3141"] +# [mcp_servers.anki] +# command = "npx" +# args = ["mcp-remote", "http://127.0.0.1:3141"] +# enabled = false [mcp_servers.playwright] command = "npx" @@ -213,6 +220,12 @@ trust_level = "trusted" [projects."/home/sudacode/projects/japanese/subminer.moe"] trust_level = "trusted" +[projects."/home/sudacode/Pictures/wallpapers"] +trust_level = "trusted" + +[projects."/home/sudacode/.cache/paru/clone/t3code-git"] +trust_level = "trusted" + [notice.model_migrations] "gpt-5.3-codex" = "gpt-5.4" @@ -234,10 +247,10 @@ enabled = true [plugins."subminer-workflow@subminer-local"] enabled = true -[plugins."browser@openai-bundled"] +[plugins."coderabbit@openai-curated"] enabled = true -[plugins."coderabbit@openai-curated"] +[plugins."browser@openai-bundled"] enabled = true [tui.model_availability_nux] @@ -283,7 +296,7 @@ diffRemoved = "#f38ba8" skill = "#cba6f7" [marketplaces.openai-bundled] -last_updated = "2026-05-24T02:02:38Z" +last_updated = "2026-06-03T01:54:25Z" source_type = "local" source = "/home/sudacode/.codex/.tmp/bundled-marketplaces/openai-bundled" diff --git a/.codex/scripts/codex-notify b/.codex/scripts/codex-notify new file mode 100755 index 0000000..946fb85 --- /dev/null +++ b/.codex/scripts/codex-notify @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import json +import shutil +import subprocess +import sys + + +def main() -> int: + if len(sys.argv) != 2: + return 0 + + try: + event = json.loads(sys.argv[1]) + except json.JSONDecodeError: + return 0 + + if event.get("type") != "agent-turn-complete": + return 0 + + notify_send = shutil.which("notify-send") + if notify_send is None: + return 0 + + message = event.get("last-assistant-message") or "Request completed" + message = " ".join(str(message).split()) + if len(message) > 180: + message = message[:177] + "..." + + subprocess.run( + [notify_send, "--app-name=Codex", "Codex", message], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + check=False, + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.config/hypr/keybindings.conf b/.config/hypr/keybindings.conf index 97a0fd3..5acf998 100644 --- a/.config/hypr/keybindings.conf +++ b/.config/hypr/keybindings.conf @@ -146,9 +146,11 @@ bind = CTRL $mainMod SHIFT, R, exec, hyprctl dispatch dpms off && sleep 1 && hyp # 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 +bind = $mainMod, code:117, exec, hyprctl eval 'hl.unbind("ALT + mouse:272"); hl.unbind("ALT + mouse:273")' bind = $mainMod, code:117, submap, clean submap = clean # PAGE UP +bind = $mainMod, code:112, exec, hyprctl eval 'hl.bind("ALT + mouse:272", hl.dsp.window.drag(), { mouse = true }); hl.bind("ALT + mouse:273", hl.dsp.window.resize(), { mouse = true })' bind = $mainMod, code:112, submap, reset submap = reset @@ -159,8 +161,10 @@ bind = $mainMod, a, exec, ~/.config/rofi/scripts/rofi-anki-script.sh # bind = $mainMod SHIFT, a, exec, ~/projects/scripts/screenshot-anki.sh -cdMinecraft # GSM -bindl = , mouse:275, exec, xdotool key alt+w # top mouse to texthooker -bindl = , mouse:276, exec, xdotool key alt+grave # bottom mouse to overlay +# Side buttons intentionally unbound: +# mouse:275 / BTN_SIDE and mouse:276 / BTN_EXTRA pass through as native back/forward. +# bindl = , mouse:275, exec, xdotool key alt+w # top mouse to texthooker +# bindl = , mouse:276, exec, xdotool key alt+grave # bottom mouse to overlay bind = ALT, g, exec, /opt/mpv-yomitan/mpv-yomitan.AppImage --toggle # F5 diff --git a/.config/hypr/keybindings.lua b/.config/hypr/keybindings.lua index b558935..f03abb0 100644 --- a/.config/hypr/keybindings.lua +++ b/.config/hypr/keybindings.lua @@ -73,8 +73,8 @@ 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()) +hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) +hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) -- Laptop multimedia keys for volume and LCD brightness hl.bind( @@ -168,10 +168,26 @@ hl.bind( -- ) -- Disable keybinds with one master keybind -hl.bind(mainMod .. " + Page_Down", hl.dsp.submap("clean")) +local function disableMouseWindowBinds() + hl.unbind(mainMod .. " + mouse:272") + hl.unbind(mainMod .. " + mouse:273") +end + +local function restoreMouseWindowBinds() + hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) + hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) +end + +hl.bind(mainMod .. " + Page_Down", function() + disableMouseWindowBinds() + hl.dispatch(hl.dsp.submap("clean")) +end) hl.define_submap("clean", function() -- Page Up: exit clean submap - hl.bind(mainMod .. " + Page_Up", hl.dsp.submap("reset")) + hl.bind(mainMod .. " + Page_Up", function() + restoreMouseWindowBinds() + hl.dispatch(hl.dsp.submap("reset")) + end) end) hl.bind("SUPER + l", hl.dsp.exec_cmd("hyprlock")) @@ -181,8 +197,9 @@ hl.bind(mainMod .. " + a", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-anki-scr -- 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 }) +-- mouse:275 / BTN_SIDE and mouse:276 / BTN_EXTRA pass through as native back/forward. +-- 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")) @@ -201,6 +218,9 @@ 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)$" })) +-- gsm +hl.bind("ALT + w", hl.dsp.pass({ window = "class:gamesentenceminer" })) + -- {{{ scrolling hl.bind(mainMod .. " + comma", hl.dsp.layout("swapcol l")) hl.bind(mainMod .. " + period", hl.dsp.layout("fit all")) diff --git a/.config/hypr/windowrules.lua b/.config/hypr/windowrules.lua index d15117b..27e04d6 100644 --- a/.config/hypr/windowrules.lua +++ b/.config/hypr/windowrules.lua @@ -65,13 +65,17 @@ hl.window_rule({ hl.window_rule({ match = { - class = "ueberzugpp.*", + 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" + center = false, + no_initial_focus = true, + no_focus = true, + no_follow_mouse = true, + border_size = 0, + rounding = 0, + no_shadow = true, + no_anim = true, }) hl.window_rule({ @@ -330,14 +334,24 @@ hl.window_rule({ hl.window_rule({ match = { - class = "SubMiner", + class = "^SubMiner$", }, float = true, + border_size = 0, + xray = false, + no_shadow = true, + no_blur = true, + no_dim = true, + opaque = true, + dim_around = false, + opacity = "1.0 override 1.0 override", + pin = false, }) hl.window_rule({ match = { - class = "^SubMiner$", + class = "^gamesentenceminer$", + title = "GSM Overlay", }, float = true, border_size = 0, diff --git a/.config/mimeapps.list b/.config/mimeapps.list index cedc8fc..fddba10 100644 --- a/.config/mimeapps.list +++ b/.config/mimeapps.list @@ -39,7 +39,7 @@ image/avif=okularApplication_kimgio.desktop; image/bmp=okularApplication_kimgio.desktop; image/gif=org.gnome.gThumb.desktop;helium.desktop;zen.desktop;gimp.desktop;org.kde.gwenview.desktop;okularApplication_kimgio.desktop; image/heif=okularApplication_kimgio.desktop; -image/jpeg=okularApplication_kimgio.desktop; +image/jpeg=feh.desktop;okularApplication_kimgio.desktop; image/png=okularApplication_kimgio.desktop;org.gnome.gThumb.desktop;feh.desktop;gimp.desktop;org.kde.gwenview.desktop; image/webp=okularApplication_kimgio.desktop; inode/directory=thunar.desktop; @@ -159,3 +159,4 @@ x-scheme-handler/subminer=subminer.desktop x-scheme-handler/claude-cli=claude-code-url-handler.desktop x-scheme-handler/mux=mux.desktop x-scheme-handler/claude=com.anthropic.claude-desktop.desktop +x-scheme-handler/t3code=t3code.desktop diff --git a/.config/mpv/mpv.conf##default b/.config/mpv/mpv.conf##default index 153042f..962a83f 100644 --- a/.config/mpv/mpv.conf##default +++ b/.config/mpv/mpv.conf##default @@ -176,9 +176,11 @@ slang=ja,jp,jpn,japanese,en,eng,english,English,enUS,en-US vlang=ja,jpn subs-with-matching-audio=yes sub-font="M PLUS 1 Medium" -glsl-shaders="~~/shaders/ArtCNN_C4F32.glsl" +video-sync=audio +interpolation=no +glsl-shaders="~~/shaders/ArtCNN_C4F16.glsl" scale=ewa_lanczossharp -dither=error-diffusion +dither=fruit deband=yes # Crucial for anime gradients input-ipc-server=/tmp/subminer-socket @@ -209,4 +211,3 @@ profile-restore=copy cookies=yes cookies-file=/truenas/sudacode/japanese/youtube-cookies.txt ytdl-raw-options-append=cookies=/truenas/sudacode/japanese/youtube-cookies.txt - diff --git a/.config/mpv/script-opts/modernz.conf b/.config/mpv/script-opts/modernz.conf index a7a7dc1..c17f970 100644 --- a/.config/mpv/script-opts/modernz.conf +++ b/.config/mpv/script-opts/modernz.conf @@ -40,7 +40,7 @@ fadein=no minmousemove=0 # controls how much of the window ignores mouse movement for showing the osc # 0.0 always shows on movement, 1.0 only shows when directly hovered -deadzonesize=0.75 +deadzonesize=1.0 # hide behavior when cursor enters deadzone or leaves window: instant or timeout deadzone_hide=instant # show OSC when seeking