diff --git a/bash/dot-profile b/bash/dot-profile index d89ea5a..82e9610 100644 --- a/bash/dot-profile +++ b/bash/dot-profile @@ -25,3 +25,9 @@ fi if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi + +# Reset KDE wallet to blank template at each login. +if [ -f "$HOME/.local/share/kwalletd/kdewallet.kwl.blank" ]; then + cp "$HOME/.local/share/kwalletd/kdewallet.kwl.blank" "$HOME/.local/share/kwalletd/kdewallet.kwl" + cp "$HOME/.local/share/kwalletd/kdewallet.salt.blank" "$HOME/.local/share/kwalletd/kdewallet.salt" +fi diff --git a/claude/integration-MEMORY.md b/claude/integration-MEMORY.md new file mode 100644 index 0000000..8ceef41 --- /dev/null +++ b/claude/integration-MEMORY.md @@ -0,0 +1,13 @@ +- [Build system](feedback_build.md) — Use build.py c++, not Unreal's standard scripts +- [UEWingman batch inputs](feedback_uewingman_batch_inputs.md) — Use FWingJsonArray for batch/array params, not multi-line FString or TArray +- [Desktop environment](user_environment.md) — KDE Plasma on X11 (Unreal incompatible with Wayland), 175% scale on high-DPI +- [Luprex DLL polling model](project_luprex_polling.md) — DLL doesn't emit events; gamemode tick must poll, don't refactor to delegates across that boundary +- [UserWidget enhanced input](feedback_widget_enhanced_input.md) — IA event-graph nodes fire even when widget is hidden; no need for InputComponent bindings +- [Graph entry/exit node positioning](feedback_graph_entry_exit_position.md) — After BlueprintGraph_Add, reposition FunctionEntry/FunctionResult to frame the body nodes left-to-right +- [Batch UEWingman search/lookups](feedback_wingman_batch_searchtypes.md) — Pack all GraphNode_SearchTypes queries into one call; group read-only dumps via Sequence +- [Don't get ahead of the user](feedback_pacing.md) — Do the requested step, report, stop. No volunteered "here's what I'll do next." +- [Concise explanations](feedback_concise_explanations.md) — Lead with the shortest accurate answer; expand only when asked +- [Verify before asserting](feedback_verify_before_asserting.md) — Don't present guesses as facts; look it up or flag uncertainty +- [Project tools directory](reference_tools.md) — `tools/clangd-query.py` for engine-symbol lookup; other helpers in `tools/` +- [Don't open VSCode unprompted](feedback_vscode_windows.md) — Only open VSCode when user explicitly asks to see a file +- [Parens in conditions](feedback_parens_in_conditions.md) — Parenthesize sub-expressions in if-statements with logical operators diff --git a/claude/settings.json b/claude/settings.json index c1ea092..c6045dc 100755 --- a/claude/settings.json +++ b/claude/settings.json @@ -62,6 +62,7 @@ ], "defaultMode": "acceptEdits" }, - "theme": "light", - "effortLevel": "high" + "model": "sonnet", + "effortLevel": "medium", + "theme": "light" } diff --git a/codex/config.toml b/codex/config.toml index 222e4d8..41d3570 100644 --- a/codex/config.toml +++ b/codex/config.toml @@ -1,16 +1,29 @@ model = "gpt-5.4" +model_reasoning_effort = "medium" + [features] use_legacy_landlock = true +[sandbox_workspace_write] +writable_roots = ["/home/jyelon/integration.UE"] +network_access = true + [projects."/home/jyelon/integration"] trust_level = "trusted" +[projects."/home/jyelon/pacman"] +trust_level = "trusted" + [mcp_servers.ue-wingman] command = "python3" args = ["/home/jyelon/integration/Plugins/UEWingman/ue-wingman-mcp.py"] +[mcp_servers.ue-wingman.tools.unreal] +approval_mode = "approve" + [notice.model_migrations] "gpt-5.3-codex" = "gpt-5.4" -[mcp_servers.ue-wingman.tools.unreal] -approval_mode = "approve" +[tui.model_availability_nux] +"gpt-5.5" = 2 + diff --git a/install.py b/install.py new file mode 100755 index 0000000..22c4d7b --- /dev/null +++ b/install.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 + +from pathlib import Path +import shutil + +REPO_DIR = Path.home() / "jbashrc" +BACKUP_DIR = Path.home() / ".orig-config" + + +def install(src, dst): + src_path = REPO_DIR / src + dst_path = Path(dst).expanduser() + backup_path = BACKUP_DIR / src + + if not backup_path.exists() and dst_path.exists() and not dst_path.is_symlink(): + backup_path.parent.mkdir(parents=True, exist_ok=True) + if dst_path.is_dir(): + shutil.copytree(dst_path, backup_path) + else: + shutil.copy2(dst_path, backup_path) + print(f"Backed up {dst_path}") + + dst_path.parent.mkdir(parents=True, exist_ok=True) + if dst_path.is_dir() and not dst_path.is_symlink(): + shutil.rmtree(dst_path) + elif dst_path.exists() or dst_path.is_symlink(): + dst_path.unlink() + + dst_path.symlink_to(src_path) + print(f"Linked {dst_path} -> {src_path}") + +install("bash/dot-bashrc", "~/.bashrc") +install("bash/dot-profile", "~/.profile") +install("claude/CLAUDE.md", "~/.claude/CLAUDE.md") +install("claude/settings.json", "~/.claude/settings.json") +install("claude/integration-memory", "~/.claude/projects/-home-jyelon-integration/memory") +install("emacs/dot-emacs", "~/.emacs") +install("git/dot-gitconfig", "~/.gitconfig") +install("vscode/chatLanguageModels.json", "~/.config/Code/User/chatLanguageModels.json") +install("vscode/keybindings.json", "~/.config/Code/User/keybindings.json") +install("vscode/settings.json", "~/.config/Code/User/settings.json") +install("codex/config.toml", "~/.codex/config.toml") +install("codex/default.rules", "~/.codex/rules/default.rules") +install("codex/AGENTS.md", "~/.codex/AGENTS.md") +install("kwalletd/kdewallet.kwl.blank", "~/.local/share/kwalletd/kdewallet.kwl.blank") +install("kwalletd/kdewallet.salt.blank", "~/.local/share/kwalletd/kdewallet.salt.blank") +install("ssh/config", "~/.ssh/config") +install("bin/clean-vscode.sh", "~/bin/clean-vscode.sh") diff --git a/install.sh b/install.sh deleted file mode 100755 index c517efb..0000000 --- a/install.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# -# Installs config files from this repo by creating symlinks. -# On first run, backs up originals to ~/.orig-config. -# - -REPO_DIR="$HOME/jbashrc" - -# The list of config files: "repo-relative-path:absolute-target" -FILES=( - "bash/dot-bashrc:$HOME/.bashrc" - "bash/dot-profile:$HOME/.profile" - "claude/CLAUDE.md:$HOME/.claude/CLAUDE.md" - "claude/settings.json:$HOME/.claude/settings.json" - "claude/integration-memory:$HOME/.claude/projects/-home-jyelon-integration/memory" - "emacs/dot-emacs:$HOME/.emacs" - "git/dot-gitconfig:$HOME/.gitconfig" - "vscode/chatLanguageModels.json:$HOME/.config/Code/User/chatLanguageModels.json" - "vscode/keybindings.json:$HOME/.config/Code/User/keybindings.json" - "vscode/settings.json:$HOME/.config/Code/User/settings.json" - "bin/clean-vscode.sh:$HOME/bin/clean-vscode.sh" - "codex/config.toml:$HOME/.codex/config.toml" - "codex/default.rules:$HOME/.codex/rules/default.rules" - "codex/AGENTS.md:$HOME/.codex/AGENTS.md" -) - -# Back up originals that haven't been backed up yet. -mkdir -p "$HOME/.orig-config" -for entry in "${FILES[@]}"; do - src_rel="${entry%%:*}" - target="${entry#*:}" - backup="$HOME/.orig-config/$src_rel" - if [ ! -e "$backup" ] && [ -e "$target" ] && [ ! -L "$target" ]; then - mkdir -p "$(dirname "$backup")" - cp -r "$target" "$backup" - echo "Backed up $target" - fi -done - -# Create symlinks. -for entry in "${FILES[@]}"; do - src="$REPO_DIR/${entry%%:*}" - target="${entry#*:}" - mkdir -p "$(dirname "$target")" - ln -sfn "$src" "$target" - echo "Linked $target -> $src" -done diff --git a/kwalletd/README.txt b/kwalletd/README.txt new file mode 100644 index 0000000..0b906db --- /dev/null +++ b/kwalletd/README.txt @@ -0,0 +1,2 @@ +This is an empty, no password wallet called kdewallet. +I use it as a means to periodically empty out my wallet. diff --git a/kwalletd/kdewallet.kwl.blank b/kwalletd/kdewallet.kwl.blank new file mode 100644 index 0000000..5834a3d Binary files /dev/null and b/kwalletd/kdewallet.kwl.blank differ diff --git a/kwalletd/kdewallet.salt.blank b/kwalletd/kdewallet.salt.blank new file mode 100644 index 0000000..e27737f --- /dev/null +++ b/kwalletd/kdewallet.salt.blank @@ -0,0 +1,2 @@ +j1(:G +9;It4Fi44aDn(G \ No newline at end of file diff --git a/ssh/config b/ssh/config new file mode 100644 index 0000000..ed136d7 --- /dev/null +++ b/ssh/config @@ -0,0 +1,4 @@ +Host gitlab.com + IdentityFile ~/.ssh/id_gitlab + IdentitiesOnly yes + AddKeysToAgent 8h diff --git a/ssh/gen-gitlab-key.sh b/ssh/gen-gitlab-key.sh new file mode 100755 index 0000000..f2af2a0 --- /dev/null +++ b/ssh/gen-gitlab-key.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_gitlab -C "jyelon@gmail.com" diff --git a/vscode/settings.json b/vscode/settings.json index d933579..8b4a632 100644 --- a/vscode/settings.json +++ b/vscode/settings.json @@ -25,6 +25,7 @@ "editor.renderWhitespace": "boundary", "files.autoSave": "afterDelay", "editor.suggest.filterGraceful": false, - "extensions.ignoreRecommendations": true + "extensions.ignoreRecommendations": true, + "diffEditor.renderSideBySide": false }