๐Ÿ”ง Where my dotfiles lives in harmony and peace, most of the time

๐Ÿ”ฅ Remove LLM, SSH, and magic-brush dotfiles

+1 -292
-9
Makefile
··· 38 38 terminal: 39 39 @ $(DOTFILES)/terminal/setup.sh 40 40 41 - .PHONY: llm 42 - llm: 43 - @ $(DOTFILES)/llm/setup.sh 44 - 45 41 .PHONY: hypr 46 42 hypr: 47 43 @ ${DOTFILES}/hypr/setup.sh ··· 49 45 .PHONY: desktop 50 46 desktop: 51 47 @ ${DOTFILES}/desktop/setup.sh 52 - 53 - .PHONY: ssh 54 - ssh: 55 - @ mkdir -p "$(HOME)/.ssh" 56 - @ ln -sf $(DOTFILES)/ssh/config "$(HOME)/.ssh/config" 57 48 58 49 .PHONY: system 59 50 system:
+1 -2
hypr/hyprland.conf
··· 201 201 bind = $mainMod SHIFT, I, exec, pi-sandbox 202 202 203 203 # AI 204 - bind = $mainMod SHIFT, A, exec, uwsm app -- brave --app=https://chatgpt.com/?model=gpt-5-2 205 - bind = $mainMod SHIFT, Y, exec, magic-brush 204 + bind = $mainMod SHIFT, A, exec, uwsm app -- brave --app=https://chatgpt.com/?model=gpt-5-3-instant 206 205 207 206 # Todoist 208 207 bind = $mainMod SHIFT, T, exec, uwsm app -- brave --app=https://app.todoist.com/app/today
-25
llm/setup.sh
··· 1 - #!/usr/bin/env bash 2 - set -euo pipefail 3 - 4 - DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 - 6 - llm_plugins=( 7 - llm-anthropic 8 - llm-cmd 9 - llm-fragments-github 10 - llm-fragments-reader 11 - llm-fragments-youtube 12 - llm-gemini 13 - llm-github-copilot 14 - llm-openai-plugin 15 - ) 16 - 17 - llm_with_args=() 18 - for plugin in "${llm_plugins[@]}"; do 19 - llm_with_args+=("--with" "$plugin") 20 - done 21 - 22 - uv tool install --reinstall -U llm "${llm_with_args[@]}" 23 - 24 - mkdir -p "${HOME}/.config/io.datasette.llm" 25 - ln -sfT "${DOTFILES}/llm/templates" "${HOME}/.config/io.datasette.llm/templates"
-12
llm/templates/cmd.yaml
··· 1 - model: github_copilot/gpt-5 2 - system: > 3 - Return only the command to be executed as a raw string, no string delimiters 4 - wrapping it (like ```), no yapping, no markdown, no fenced code, what you return 5 - will be passed to subprocess.check_output() directly. You can use `uvx` to run 6 - Python packages directly in their own environment (e.g: `uvx package-name`). 7 - 8 - For example, if the user asks: undo last git commit 9 - 10 - You return only: git reset --soft HEAD~1 11 - prompt: > 12 - Generate a command to do this: $input
-13
llm/templates/gitcommit.yaml
··· 1 - model: github_copilot/gpt-5 2 - prompt: > 3 - Write a descriptive commit following the following specification describing the changes in the following diff. 4 - 5 - Keep the commit message brief, but informative. Avoid stating the obvious. Focus on important changes a reviewer would care about. Start with the related emoji and then add a description (first letter uppercase, no string delimiters wrapping it, no markdown, no semicolons). Don't add fluff. 6 - 7 - <template> 8 - <related_emoji> <description> 9 - 10 - [optional body] 11 - </template> 12 - 13 - The diff: $input
-39
llm/templates/ledit.yaml
··· 1 - model: gemini/gemini-3-pro-preview 2 - system: | 3 - You are an experienced writer editor. Your job is to improve the given short text using your knowledge and best practices of clear and direct writing. 4 - 5 - ## Writing Guidelines 6 - 7 - - Ensure ideas are clearly understood and expressed. 8 - - Be concise. Use simple words, short sentences, and put the most important points first. 9 - - Get to the point as quickly as possible. Put the tweet-length version of the post in the title, sections, or first paragraph. 10 - - Define a clear thesis before supporting it. State the main point early. 11 - - Be useful. Clarify purpose, audience, and what the reader actually needs. 12 - - Be specific. Remove vague language, qualifiers, fluff, and weak adverbs. 13 - - Prefer stronger, more precise verbs over adverbs. 14 - - Don't use clichรฉs or marketing language. 15 - - Rewrite sentences to place key information before the noun. 16 - - Be consistent in structure, terminology, and tone. 17 - - Add rhythm. Vary sentence length for clarity and flow. 18 - - Good sound often equals good thinking. Use rhythm to refine ideas. 19 - - Prefer active voice. 20 - - Maintain a conversational tone and awareness of the reader. 21 - - Structure ideas into small, logical chunks. Number points when helpful. 22 - - Break up long paragraphs into multiple shorter ones. Use useful subheadings to give documents some structure and allow readers to skip ahead to the section they're interested in. 23 - - Support the thesis with clear arguments. Restate for clarity when needed. 24 - - Avoid ambiguous references like "this". 25 - - Look for ways that you can restate the main point, clarify, or provide closure for the reader. 26 - - Use **bold** so that readers who skim will still pick out the main points. 27 - - The title gets read way more than the rest, so make it count. Keep same style and tone. 28 - 29 - ## Goal 30 - 31 - Improve the given text so that it's **clear**, **direct** and **effective**. Avoid fluff and unnecessary changes. 32 - prompt: | 33 - Here is the text: 34 - 35 - <text> 36 - $input 37 - </text> 38 - 39 - Return only the improved text. No commentary, no quotes, no code fences.
-15
llm/templates/mdclean.yaml
··· 1 - model: gemini/gemini-2.5-flash 2 - extract: true 3 - system: > 4 - Clean and improve the layout of the input. 5 - You are provided a website content transformed to Markdown by another program. 6 - It might not be accurate markdown or properly laid out. 7 - 8 - - Clean all non relevant information (page navigation, sidebars, ...) 9 - - Produce a clean version of the document with proper Markdown formatting. 10 - - Remove image references, add proper headings, remove website navigation, indent lists properly (one space between - and the text), use - for lists instead of *, ... 11 - 12 - Return the Markdown directly without quotes. The output will be written to a markdown file. 13 - 14 - prompt: > 15 - This is the content: $input
-34
llm/templates/polish.yaml
··· 1 - model: gemini/gemini-3-pro-preview 2 - system: | 3 - Improve the provided text using your knowledge and best practices of clear and direct writing. 4 - 5 - ## Guidelines 6 - 7 - - Ensure ideas are clearly understood and expressed. 8 - - Be concise. Use simple words, short sentences, and put the most important points first. 9 - - Get to the point as quickly as possible. Put the tweet-length version of the post in the title, sections, or first paragraph. 10 - - Define a clear thesis before supporting it. State the main point early. 11 - - Be useful. Clarify purpose, audience, and what the reader actually needs. 12 - - Be specific. Remove vague language, qualifiers, fluff, and weak adverbs. 13 - - Prefer stronger, more precise verbs over adverbs. 14 - - Don't use clichรฉs or marketing language. 15 - - Rewrite sentences to place key information before the noun. 16 - - Be consistent in structure, terminology, and tone. 17 - - Add rhythm. Vary sentence length for clarity and flow. 18 - - Good sound often equals good thinking. Use rhythm to refine ideas. 19 - - Prefer active voice. 20 - - Maintain a conversational tone and awareness of the reader. 21 - - Structure ideas into small, logical chunks. Number points when helpful. 22 - - Break up long paragraphs into multiple shorter ones. Use useful subheadings to give documents some structure and allow readers to skip ahead to the section they're interested in. 23 - - Support the thesis with clear arguments. Restate for clarity when needed. 24 - - Avoid ambiguous references like "this". 25 - - Look for ways that you can restate the main point, clarify, or provide closure for the reader. 26 - - The title gets read way more than the rest, so make it count. Keep same style and tone. 27 - - Return only the improved text. No commentary, no quotes, no code fences. 28 - 29 - prompt: | 30 - Improve the following text so that it's **clear**, **direct** and **effective**. Avoid fluff and unnecessary changes. 31 - 32 - <text> 33 - $input 34 - </text>
-20
llm/templates/pyscript.yaml
··· 1 - model: github_copilot/gpt-5 2 - extract: true 3 - system: > 4 - You write Python tools / scripts / clis as single files. 5 - They always start with this comment which might contain a list of dependencies: 6 - 7 - #!/usr/bin/env -S uv run --script 8 - # /// script 9 - # requires-python = ">=3.12" 10 - # dependencies = [ 11 - # "polars", 12 - # "duckdb", 13 - # ] 14 - # /// 15 - 16 - Prefer modern libraries and tools (Polars, FastAPI, httpx, duckdb, etc.) 17 - RETURN ONLY THE PYTHON CODE, NO ```, no yapping, no markdown. 18 - 19 - prompt: > 20 - Generate a Python script to do this: $input
-32
llm/templates/simplify.yaml
··· 1 - model: github_copilot/gpt-5 2 - system: > 3 - # Simplify 4 - 5 - You are an experienced, pragmatic software engineer with a focus on simplicity and maintainability. Your goal is to refactor given code to make it **simpler, clearer, and more maintainable** without changing what it does. 6 - 7 - ## Objective 8 - 9 - Simplify. Implementation should be **straightforward and pragmatic**. The goal is to get the most minimal code possible. 10 - 11 - ## Principles 12 - 13 - - **Behavioral Parity:** Input/output, side effects, and flags must remain identical. 14 - - **Simplicity > Cleverness:** Prefer explicit, predictable, "boring" solutions over compact or tricky ones. 15 - - **Minimize Complexity:** Flatten deep nesting with early returns; simplify conditionals; remove unnecessary state or indirection. 16 - - **Delete Fearlessly:** Remove dead code, unused variables, redundant branches, and over-engineered abstractions. 17 - - **Standard > Custom:** Replace hand-rolled utilities with reliable and modern standard-library or framework features when safe. 18 - - **Clarity Through Structure:** Small, single-purpose functions with intent-revealing names. 19 - - **Type Discipline:** Use types to clarify contracts; avoid complex or fragile type gymnastics. 20 - - **Minimal Dependencies:** Add none unless they materially simplify or clarify the design. 21 - - **Design for Deletion:** Code should be easy to change or remove later. 22 - - **Fail Early and Clearly:** Avoid blanket try/catch blocks and silent failures. Skip validations. 23 - 24 - ## Output Format 25 - 26 - 1. **Summary:** Concise explanation of key simplifications and reasoning. 27 - 2. **Refactored Code:** Present the full, simplified code in code blocks. 28 - 3. **Behavior Check:** Quick checklist confirming parity for main I/O and edge cases. 29 - 30 - prompt: > 31 - Simplify the following code. 32 - $input
-4
llm/templates/summarize.yaml
··· 1 - model: gemini/gemini-2.5-flash 2 - extract: true 3 - system: > 4 - Summarize key points and arguments in a bullet point list, in order in which they get discussed.
-62
scripts/magic-brush
··· 1 - #!/usr/bin/env bash 2 - set -euo pipefail 3 - 4 - APP_NAME="magic-brush" 5 - NOTIFY_TITLE="๐Ÿช„ Magic Brush" 6 - NOTIFY_ICON="draw-brush" 7 - 8 - require() { 9 - command -v "$1" >/dev/null 2>&1 10 - } 11 - 12 - notify() { 13 - local urgency="$1" 14 - local timeout_ms="$2" 15 - local message="$3" 16 - 17 - if require notify-send; then 18 - notify-send -a "$APP_NAME" -i "$NOTIFY_ICON" -u "$urgency" -t "$timeout_ms" "$NOTIFY_TITLE" "$message" 19 - fi 20 - } 21 - 22 - die() { 23 - local message="$1" 24 - notify critical 0 "$message" 25 - echo "$APP_NAME: $message" >&2 26 - exit 1 27 - } 28 - 29 - if [[ $# -ne 0 ]]; then 30 - die "This script takes no arguments" 31 - fi 32 - 33 - for cmd in alacritty llm wl-copy wl-paste; do 34 - if ! require "$cmd"; then 35 - die "Missing required command: $cmd" 36 - fi 37 - done 38 - 39 - INPUT="$(wl-paste --type text --no-newline)" || die "Failed to read clipboard text" 40 - if [[ -z "${INPUT}" ]]; then 41 - die "Clipboard is empty" 42 - fi 43 - 44 - notify low 5000 "Polishing..." 45 - 46 - OUTPUT="$( 47 - printf %s "$INPUT" | llm prompt -t polish --no-log --no-stream 48 - )" || die "LLM failed" 49 - 50 - if [[ -z "${OUTPUT}" ]]; then 51 - die "LLM returned empty output" 52 - fi 53 - 54 - printf %s "$OUTPUT" | wl-copy 55 - notify low 1500 "Copied to clipboard" 56 - 57 - TMP_DIR="${XDG_RUNTIME_DIR:-/tmp}" 58 - TMP_FILE="$(mktemp -p "$TMP_DIR" magic-brush.XXXXXX)" 59 - trap 'rm -f "$TMP_FILE"' EXIT 60 - printf %s "$OUTPUT" >"$TMP_FILE" 61 - 62 - alacritty --title "$APP_NAME" --hold --command cat -- "$TMP_FILE"
-8
ssh/config
··· 1 - Host zen 2 - HostName 100.119.11.39 3 - User david 4 - IdentityFile ~/.ssh/id_ed25519 5 - Compression yes 6 - IPQoS lowdelay throughput 7 - ServerAliveInterval 30 8 - ServerAliveCountMax 3
-1
terminal/bashrc
··· 44 44 alias tree='eza --tree --icons' 45 45 alias cat='bat -pp' 46 46 alias up='paru -Syu --devel --skipreview && (uv tool upgrade --all & npm update -g & pull-all-dirs ~/projects & wait)' 47 - alias cmd='llm cmd' 48 47 alias pull='pull-all-dirs' 49 48 50 49 # Open
-16
terminal/zshrc
··· 59 59 alias tn='td task add --project "Personal" --due "today" --priority p1' 60 60 alias tnw='td task add --project "Work" --due "today" --priority p1' 61 61 alias tls='td today' 62 - alias chat='llm chat' 63 - alias cmd='llm -t cmd' 64 62 alias copy='wl-copy' 65 63 alias pasta='wl-paste' 66 64 ··· 73 71 git add -A . && 74 72 git cm "โšก" && 75 73 git push 76 - } 77 - 78 - # Quick Query YouTube 79 - qq-yt() { 80 - if [[ $# -lt 2 ]]; then 81 - echo "Usage: qq-yt <youtube-url> <prompt>" >&2 82 - return 1 83 - fi 84 - 85 - local url="$1" 86 - shift 87 - local prompt="$*" 88 - 89 - llm -m gemini-3-pro-preview -a "$url" "$prompt" 90 74 } 91 75 92 76 subdl() {