From 7cfffc329b5240b32a84f2d4954ef9079d004c4b Mon Sep 17 00:00:00 2001 From: Kevin Mok Date: Thu, 11 Dec 2025 12:01:01 -0500 Subject: [PATCH] README --- README.md | 381 ++++++++++++++++-- aliases/key_aliases.tmpl | 4 + aliases/key_dirs.tmpl | 1 + dot_Xmodmap | 2 +- dot_config/Cursor/User/settings.json | 4 + dot_config/i3/config.tmpl | 24 +- dot_config/i3blocks/i3blocks-display.conf | 1 + .../i3blocks/i3blocks-secondary.conf.tmpl | 42 +- dot_config/i3blocks/i3blocks.conf.tmpl | 12 +- .../i3blocks/scripts/executable_calendar | 6 +- dot_config/i3blocks/scripts/executable_time | 3 +- tree.txt | 319 +++++++++++++++ 12 files changed, 730 insertions(+), 69 deletions(-) create mode 100644 tree.txt diff --git a/README.md b/README.md index cb0d4f8..849eec1 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,348 @@ - -# Kevin's Linux Setup - -![desktop-screenshot](https://i.imgur.com/Fpsr8Fc.png) -*Screenshot from my dual-monitor setup.* - -This repository contains the dotfiles to increase my workflow efficiency. They -are also for my Linux -[rice](https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/cukxwog/). - - - -## Main Programs -* **OS**: [Arch Linux](https://www.archlinux.org/) ([packages](txt/nzxt-pkgs.txt)) -``` -> systemd-analyze -Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s -graphical.target reached after 1.085s in userspace -``` -* **Terminal**: [rxvt-unicode-pixbuf](https://www.wikiwand.com/en/Rxvt) -* **Shell**: [Fish](https://fishshell.com/) -* **Window Manager**: [i3-gaps](https://github.com/Airblader/i3) -* **Editor**: [Neovim](https://github.com/neovim/neovim) ([plugins](dotfiles/.vimrc#L51)) -* **File Manager**: [ranger](https://ranger.github.io/) - - - - -## Setup -I use [chezmoi](https://github.com/twpayne/chezmoi) to manage varying -configs for different machines with a single branch. - - +# KM's Linux Desktop Config (chezmoi dotfiles) + +This is my **chezmoi-managed toolkit** for keeping a +consistent i3/terminal-focused Linux desktop across +machines: i3 + i3blocks + i3bar, fish/Zsh/Bash shells, +kitty/ST terminals, tmux, Neovim/Vim, Ranger, mpv, Zathura, +dunst, picom, taskwarrior/taskopen, calcurse, Neomutt/msmtp, +mgba, and a grab bag of helper scripts for wallpapers, +audio, finance tickers, backups, etc. Other coding projects +such as `hands-free-tools`, `psa` Arsenal, or `kogito` live +in their own repos — this repo is solely about the desktop +environment, shell tooling, and workflows that drive it. + +## Table of Contents +- [What This Repo Is](#what-this-repo-is) +- [Installation & Sync](#installation--sync) +- [Shells & Aliases](#shells--aliases) +- [Terminal & Editor Stack](#terminal--editor-stack) +- [Window Manager & Display](#window-manager--display) +- [Productivity Apps & + Services](#productivity-apps--services) +- [Scripts, Packages & Assets](#scripts-packages--assets) +- [Host Overrides & Secrets](#host-overrides--secrets) +- [Customization Tips](#customization-tips) + +## What This Repo Is +- A **chezmoi repo** with `dot_*` files targeting `$HOME` + (e.g. `dot_vimrc.tmpl` → `~/.vimrc`, `dot_tmux.conf`, + `dot_gitconfig.tmpl`, etc.) and `dot_config/**` mirroring + `~/.config`. Every `.tmpl` file runs through `chezmoi` + templating so `{{ .chezmoi.hostname }}` / `.linux_os` / + `.chezmoi.username` can tailor behavior. +- A place for **desktop-focused tooling**: i3/i3blocks, fish + + shared aliases, kitty/ST terminals, tmux, Neovim/Vim, + mpv, Ranger, mpv, Zathura, dunst/picom/prefers, + taskwarrior/taskopen, and shell helpers such as + `executable_passmenu`, `dmenu-history`, `change-sink`, + `bg-chooser`, etc. +- A repository for configuration logic only — the bulk of + application/Project code lives in other repos. You can + treat this as the “rice” layer for Arch/Ubuntu machines, + not as a general diary of every coding sidequest. + +## Installation & Sync +1. Install `chezmoi`, clone this repo, and run `chezmoi init +--apply ` (or `chezmoi cd .` / `chezmoi apply`). The +repo assumes you have a basic Linux desktop already (i3, +fish, etc.). +2. Run `chezmoi apply` whenever you change templates. When +files touch the ones under `aliases/` (see below) run +`~/scripts/sync-shortcuts` (or let `fish` invoke it on +login) to regenerate `~/aliases/.key_aliases`, +`~/.config/fish/key_abbr.fish`, and +`~/.config/ranger/key_mappings.conf`. +3. After changing tmux config, reload (`tmux source +~/.tmux.conf`) and run the TPM installer +(`~/.tmux/plugins/tpm/bin/install_plugins`). +4. When you edit `dot_config/mgba/*.ini`, run +`dot_config/mgba/update-mgba-config.fish` (or your shell) to +keep the `~/.config/mgba/*.ini` copies and repo templates in +sync. +5. Use `chezmoi data set ` (or edit +`~/.config/chezmoi/chezmoi.toml`) to tweak host data such as +`gui`, `ext_kb`, or `linux_os` — the template in +`dot_config/chezmoi/chezmoi-template.toml.tmpl` seeds those +values for conditional logic in templates. + +## Shells & Aliases +- `dot_bashrc` and `dot_zshrc` both source + `~/aliases/.key_aliases` and share settings like `xset r + rate`, `xmodmap` tweaks, `wal` sequences, + `BASH_IT`/`oh-my-zsh` hooks, and `pywal` colors so all + interactive shells match. +- `aliases/key_aliases.tmpl`, `aliases/key_dirs.tmpl`, and + `aliases/key_files.tmpl` are the canonical + alias/directory/file lists. `~/scripts/sync-shortcuts` + consumes those to build shell-friendly alias files and + ranger mappings; editing a key file there and rerunning + that script keeps the shells/ranger in sync. +- Fish is the primary interactive shell + (`dot_config/fish/config.fish.tmpl`). It sets `spacefish` + prompt order, `PNPM`/`GraalVM`/`Java` paths, + `PASSWORD_STORE_CLIP_TIME`, `task` abbrs, and + automatically runs `~/scripts/sync-shortcuts` plus + `source`-ing every file in `dot_config/fish/functions`. + That directory contains dozens of helpers: git helpers + (`git/g*`), taskwarrior actions (`task/*.fish`), `watson`, + `timetrace`, `tmux-attach`, `pass`/`clipboard` helpers, + miniscripts for AWS/rsync, countdowns, `currency` + converters, and more. +- `dot_config/fish/completions` adds completions for `buku`, + `kogito`, `kubectl`, `minikube`, `pass`, `timetrace`, and + `watson` so these workflows stay tab-complete. +- Fish also watches for logins without a `$DISPLAY` to + auto-run `startx`, binds `GPG_TTY`, sources + `~/.cache/wal/colors.sh`, and respects host-specific + values such as `JENKINS_TOKEN` (for NZXT) or `ext_kb`. + +## Terminal & Editor Stack +- `dot_config/kitty/kitty.conf` and + `dot_config/st/config.def.h.tmpl` share `wal` colors + (`~/.cache/wal/colors-kitty.conf` / `colors-wal-st.h`) and + Nerd Font setups; kitty enables clipboard control and + opacity, st pulls fonts/opacity from the current theme. +- Terminal multiplexer: `dot_tmux.conf` rebinds prefix to + `C-Space`, enables mouse, uses a Powerline-style status + bar, and installs TPM plugins (`tmux-plugins/tpm`, + `tmux-sensible`, `vim-tmux-navigator`). Mouse/Vi copy mode + maps push selection to `xclip` via `copy-pipe-and-cancel`. +- `dot_vimrc.tmpl` is the canonical Vim/Neovim config. It + enables `autoindent`, autocommands for + markdown/Go/Jenkinsfiles, loads `vim-plug`, and wires up + plugins (`YouCompleteMe`, `UltiSnips`, `vimtex`, + `vim-fugitive`, `vim-auto-save`, `vim-instant-markdown`, + `vim-tmux-navigator`, `vim-go`, `vim-react`, `vim-latex`, + `vim-mark`, `vim-surround`, `rainbow`, `AutoPairs`, + `vim-indexed-search`, etc.). Leader mappings cover + yanking, folding, Git, formatting, NERDTree, and quick + plugin commands. `dot_config/nvim/init.vim` just sources + `~/.vimrc` plus Python host settings. +- `dot_config/mpv/mpv.conf` & `input.conf` configure + subtitles, mouse wheel volume, speed keys, seek commands, + zoom, and mark shortcuts for mpv so it works cleanly with + keyboard/VR-style controls. + +## Window Manager & Display +- `dot_xinitrc.tmpl` loads `~/.Xresources`, applies + host-specific `xmodmap` (`dot_Xmodmap*`), sets `redshift`, + `xset r rate` (pumped from fish), starts + `notification-daemon`, `picom`, `imwheel`, `numlockx`, and + pains `wal -i $(scripts/shuffler ...)` backgrounds. +- `dot_Xresources.tmpl` keeps host DPI/font choices (high + DPI for `x1-carbon`, default for desktops), clickable + URLs, transparency, and `sxiv` colors; i3blocks and kitty + re-read it via `xrdb` + `wal`. +- There are multiple `dot_Xmodmap*` variants (`.`, + `-laptop`, `-laptop-old`, `-old`, `-ubuntu`, `-vm`) so + `xmodmap` can swap Caps/Esc/backspace depending on host; + `dot_xinitrc.tmpl` toggles between them via the `ext_kb` + variable and the helper + `scripts/executable_xmodmap-custom.tmpl`. +- `dot_config/i3/config.tmpl` wires up: Mod1/Mod4 split, + `kitty`/`urxvt` terminals, i3 startup apps (notification + daemon, picom, imwheel, `wal`, `xbacklight`), screenshot + bindings, workspace assignments (1/2/3 etc), + Slack/Signal/Chromium/Steam assignments, workspace + navigation, `passmenu`, `dmenu-history`, `ticker/fx` + shortcuts, `redshift` hotkeys, `wal` shuffle hotkeys, + `change-sink`, and `mod`-based layout resizing. It also + defines stacked/tabbed/floating rules, gap toggles, and + bar outputs for both main and secondary monitors. The + status command is `i3blocks -vvv -c + ~/.config/i3blocks/i3blocks.conf` (primary) and + `i3blocks-secondary.conf` (secondary) with i3blocks piping + through `~/scripts/shuffler`/`pywal` colors. +- `dot_config/i3blocks/i3blocks.conf.tmpl` defines blocks + for `kraken` (ETH), Spotify controls, volume, and + conditional blocks for laptop (`battery`, `wifi`, + `backlight`), plus placeholders for + `dexscreener`/`ticker`/`memory`/`temperature`. Secondary/ + display configs reuse the same script directory but focus + on `calendar`, `volume`, and additional + `temperature`/`name`/`cpu/memory` blocks. Every block + relies on scripts under `dot_config/i3blocks/scripts/` + (e.g. `executable_calendar`, `executable_volume`, + `executable_wifi`, `executable_kraken`, + `executable_dexscreener*`, `executable_spotify`, + `executable_name`, `executable_temperature`, + `executable_ticker`, etc.) which source + `~/.cache/wal/colors.sh` to stay on-theme. +- Display/notification stack also includes + `dot_config/picom/picom.conf` (shadows/fade/opacity rules) + and `dot_config/dunst/dunstrc` (compact, mouse-following + notifications, keyboard shortcuts, urgency colors) so + popups match the rest of the polished rice. +- `dot_config/neofetch/config.conf` keeps the `neofetch` + info streamlined to kernel, terminal,font, shell, + packages, WM, CPU/GPU, memory, disks, and resolution, with + ASCII color blocks and shorthanded kernel/distro strings. + +## Productivity Apps & Services +- `dot_taskrc` configures `taskwarrior` (data location + `~/.task`, `taskd` server credentials, urgency + coefficients per project/tag, and default context + `sniper`). `dot_taskopenrc` tells `taskopen` to use + `nvim`, the `task` binary, and custom note / annotation + handling (`notes.regex = "Notes"`). +- `dot_qalcrc` forces `qalculate-gtk` to use decimal commas + for output. `dot_inputrc` turns readline `vi` mode on, and + `dot_imwheelrc` remaps vertical scroll for `imwheel`. +- Ranger customization lives under `dot_config/ranger/`: + `rc.conf.tmpl` tweaks view mode, preview pipeline (custom + `scope.sh`), bookmarks, colors, and dozens of keybindings + (vim-like navigation, copy/paste/paste symlink macros, + `fzf` integrations, lightning bookmarks, backgrounds via + `wal`, `dragon` drop, etc.). `ranger/commands.py` supplies + `fzf_select`, `fzf_locate`, `compress`, `extracthere`, and + other helper commands. Plugins include devicons, preview + scripts, and shared `key_mappings.conf` (referenced at the + bottom of `rc.conf`). +- Email is handled by `dot_config/neomutt/neomuttrc` + pointing at `~/mail/firemail`, calling `msmtp`, syncing + (`mbsync`), and a custom `` macro. + `dot_config/msmtp/config` defines a `firemail` account — + **replace the password with a secret manager or keep this + file private** (it currently contains a placeholder + password). +- `private_dot_calcurse/` stores Calcurse CalDAV + configs/credentials and `private_dot_gnupg/` holds GPG + configs/keys; treat those as `chezmoi` private files (they + live in `private_dot_*` in the repo and are decrypted on + each machine). Similarly, `dot_ssh/authorized_keys-all` + and `known_hosts-all` aggregate SSH entries for quick + deployment. +- `dot_config/zathura/zathurarc` forces dark mode, custom + colors, and clipboard syncing. + `dot_config/mgba/*-tmpl.ini` keeps emulator settings; run + `dot_config/mgba/update-mgba-config.fish` after editing + your local `~/.config/mgba/*.ini` so the template files + stay current. +- `dot_minikube/config/config.json` fixes the driver to + Docker (`"driver": "docker"`). + +## Scripts, Packages & Assets +- The `scripts/` directory hosts dozens of `executable_*` + helpers that i3, fish, and launcher aliases depend on. + Highlights: + - `executable_sync-shortcuts` reads `aliases/key_*` and + rewrites `~/aliases/.key_aliases`, + `~/.config/fish/key_abbr.fish`, and ranger’s + `key_mappings.conf`, keeping shells/ranger consistent. + - Wallpaper helpers: `executable_shuffler` rolls a + directory of backgrounds, `executable_bg-chooser` picks + "bright"/"dim" sets through `dmenu`, and + `executable_dual-monitor-slideshow` uses + `feh`/ImageMagick to fill a single monitor while + temporarily disabling others. + - Audio/focus helpers: `executable_change-sink` reroutes + Pulseaudio sinks, `executable_ubuntu-start` is an + alternative startup script that replays + imwheel/picom/wal, and `executable_tex-clean` deletes + LaTeX build artefacts based on + `txt/tex-build-files.txt`. + - Productivity utilities: `executable_passmenu` wraps + `pass` with `dmenu`, `executable_dmenu-history` keeps + colorized dmenu launch history, `executable_vim-man` + pops man pages inside Neovim, `executable_currency` hits + `frankfurter.app`, `executable_glhf-metadata` queries an + NFT API, and + `executable_ticker`/`executable_dexscreener*`/`executable_kraken` + feed price data to the i3blocks bar. + - Misc scripts include `executable_backup-pc` (rsync/tar + backups using exclude lists under `txt/`), + `executable_install-arch-pkgs.sh` (installs from + `txt/pacman-pkgs/*.txt`), `executable_spotify-clean` + (VACUUM Spotify DB), and + `executable_spotify-now`/`dot_config/i3blocks/scripts/executable_spotify` + for play/pause+display via MPRIS. + - `scripts/colors/` contains playful ASCII color art used + for celebrations or just curiosity. +- `txt/` contains curated data: + - `txt/nzxt-pkgs.txt`, `txt/nzxt-aur.txt`, + `txt/nzxt-all.txt`, `txt/nzxt-new.txt`, + `txt/x1-carbon-pkgs.txt`, `txt/x1-carbon-aur.txt`, + `txt/arch-2-pkgs.txt`, `txt/arch-2-aur.txt`, and similar + lists for Ubuntu/Termux packages. + - `txt/exclude-dirs-backup*.txt` provide directory + exclusions for backups. + - `txt/tex-build-files.txt` enumerates LaTeX build + extensions for `executable_tex-clean`. + - `txt/todo.md` and `txt/terminal-art.txt` capture + personal notes. + - `txt/usbs.md` tracks mounted USBs. + +## Host Overrides & Secrets +- `dot_config/chezmoi/chezmoi-template.toml.tmpl` flags + `gui`, `ext_kb`, and `linux_os` so templates can read + host-specific values (e.g., `ext_kb` decides whether + desktop laptops load `.Xmodmap` or `.Xmodmap-laptop`). Use + `chezmoi data set` (or edit + `~/.config/chezmoi/chezmoi.toml`) to change these values + per host. +- `dot_Xresources.tmpl` and `dot_Xmodmap*` swap DPI, fonts, + and key remaps depending on the machine (`x1-carbon` vs + `nzxt` vs `vm`). `i3` bindings invoke `xmodmap ~/.Xmodmap` + or the laptop variant depending on those template + variables. +- `private_dot_gnupg/` and `private_dot_calcurse/` are + `chezmoi` private directories — they contain real + keys/certs and are not committed in plaintext. Keep them + encrypted and use `chezmoi add --private` when tracking + new secrets. +- `dot_config/msmtp/config` currently stores a password. In + production, replace it with a `pass`-managed credential or + environment variable, and never push secrets to a public + repo. +- `dot_taskrc` embeds `taskd` credentials (host + `taskd.khkm.gq`), so treat `~/.taskrc` as private if you + edit it, and sync it via `chezmoi` private mode if needed. +- `dot_ssh/authorized_keys-all` and `known_hosts-all` + collect the SSH state that gets populated on every machine + you `chezmoi apply` to. + +## Customization Tips +- **Adding aliases/dirs/files**: edit the `aliases/key_*` + templates, then run `~/scripts/sync-shortcuts` (or log in + through fish and let the config run it) to regenerate + shell aliases, fish abbrs, and ranger maps. +- **Changing colors/backgrounds**: the i3 config, + `dot_xinitrc`, and + `scripts/executable_bg-chooser`/`shuffler` call `wal -i` + on directories under `~/Pictures/Backgrounds`. Keep the + structure and `feh` call in + `scripts/executable_dual-monitor-slideshow` in sync when + you add new folders. +- **Updating mgba**: edit your local + `~/.config/mgba/config.ini`/`qt.ini`, then run + `dot_config/mgba/update-mgba-config.fish` to copy them + back into the repo templates before committing. +- **Updating i3blocks**: the configs reference scripts under + `dot_config/i3blocks/scripts/`. Editing or adding a script + should maintain the `command` naming convention and the + `color`/`pywal` sourcing shown in those scripts. +- **Neovim tweaks**: extend `dot_vimrc.tmpl` with new `Plug` + entries; after editing, run `nvim +PlugInstall +qall` and + keep the plugin list synchronized with `init.vim` sourcing + the same file. +- **Tmux tweaks**: change `dot_tmux.conf`, then reload + (`tmux source-file`) and reinstall packages via + `~/.tmux/plugins/tpm/bin/install_plugins` if you add TPM + plugins. +- **Taskwarrior contexts**: `dot_taskrc` defines contexts + (`sniper`, `pey`, `mny`, etc.) and urgency coefficients. + Edit them if you rename project tags, then run `task + sync`. +- **Backup scripts**: `scripts/executable_backup-pc` uses + `txt/exclude-dirs-backup*.txt`, so update those lists + whenever you add new directories to exclude from + `rsync`/`tar` backups. +- **Package installation**: + `scripts/executable_install-arch-pkgs.sh` reads + `txt/pacman-pkgs/*.txt`. Keep that tree up to date before + running the script. + +Feel free to browse the scripts, `dot_config/*`, and `txt/*` +files when you need to understand how a feature works — they +are the single source of truth for this desktop’s +automation. \ No newline at end of file diff --git a/aliases/key_aliases.tmpl b/aliases/key_aliases.tmpl index 6962d85..add4109 100644 --- a/aliases/key_aliases.tmpl +++ b/aliases/key_aliases.tmpl @@ -721,6 +721,7 @@ gds "git diff --stat" gdsc "git diff --stat --cached -w" gdt "git difftool -w --tool=vimdiff" gdtc "git difftool -w --cached --tool=vimdiff" +gdx "git diff -w | xclip -selection clipboard" gl "git log -5" gl1 "git log --oneline" gl1x "git log --oneline -1 | xclip -selection clipboard" @@ -1088,6 +1089,9 @@ vp "vercel --prod" cr "~/Applications/cursor.AppImage --no-sandbox &" +h ./start.sh +v ./start.sh voice + # ]]] work # # red-hat [[[ # diff --git a/aliases/key_dirs.tmpl b/aliases/key_dirs.tmpl index 939c18a..86fe773 100644 --- a/aliases/key_dirs.tmpl +++ b/aliases/key_dirs.tmpl @@ -302,6 +302,7 @@ rbc ~/coding/rbc-aml/src cibc ~/school/job-hunt/interview-questions/cibc psa ~/coding/psa-arb +hn ~/coding/hands-free-tools # ]]] sch # diff --git a/dot_Xmodmap b/dot_Xmodmap index d62339b..a815d9d 100644 --- a/dot_Xmodmap +++ b/dot_Xmodmap @@ -1,6 +1,6 @@ ! clear Lock -! keycode 9 = Caps_Lock +keycode 9 = Caps_Lock ! keycode 66 = Escape ! keycode 22 = BackSpace diff --git a/dot_config/Cursor/User/settings.json b/dot_config/Cursor/User/settings.json index 1441dea..12987f6 100644 --- a/dot_config/Cursor/User/settings.json +++ b/dot_config/Cursor/User/settings.json @@ -1,3 +1,7 @@ +// Cursor model tiers I like: +// - Low: gpt-5.1-codex-mini-low +// - High: gpt-5.1-codex-mini-high + { "keyboard.dispatch": "keyCode", "editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace", diff --git a/dot_config/i3/config.tmpl b/dot_config/i3/config.tmpl index ce8788e..3df50e1 100755 --- a/dot_config/i3/config.tmpl +++ b/dot_config/i3/config.tmpl @@ -40,8 +40,10 @@ set $browser "google-chrome" #set $browser_secondary "chromium" #set $browser_secondary "google-chrome-stable" # set $browser "chromium" - set $browser_secondary "firefox" +set $browser_secondary "firefox" set $scripts_path "/home/kevin/scripts" +# Path to the hands-free voice tooling repo (contains voice.sh). +set $hands_free_tools "$HOME/coding/hands-free-tools" set $sch_dir "$HOME/Documents/School" # app shortcuts [[[ # @@ -364,7 +366,7 @@ bindsym $mod+Shift+F2 workspace $ws2; exec $term -e mosh kmok@$work_laptop_ip -- # ws3 [[[ # #set $ws3 "3  " - set $ws3 "3 " + set $ws3 "3  " # workspace $ws3 output $main # bindsym $mod+F3 workspace $ws3; exec $browser # bindsym $mod+F3 exec $browser; move container to workspace $ws3; workspace $ws3 @@ -594,7 +596,8 @@ bar { {{ else }} # font pango:$sb_font 17 #font pango:$sb_font 16:pixelsize=5 - font pango:$sb_font 16 + #font pango:$sb_font 16 + font pango:$sb_font 30 {{ end }} colors { # 0 (transparent) -> 255 (opaque) in hex @@ -626,8 +629,8 @@ bar { font pango:$sb_font 18 {{ else }} # font pango:$sb_font 21 - #font pango:$sb_font 20 - font pango:$sb_font 18 + font pango:$sb_font 30 + #font pango:$sb_font 18 {{ end }} # output $main i3bar_command i3bar -t @@ -684,6 +687,17 @@ bindsym XF86AudioNext exec "dbus-send --print-reply --dest=org.mpris.MediaPlayer # ]]] fn key # +# voice dictation [[[ # +# One-tap toggle for voice dictation using Scroll Lock. +bindsym Scroll_Lock exec "$hands_free_tools/voice.sh toggle" + +# (Optional panic kill, only if you still want it) +# bindsym Control+Scroll_Lock exec "$hands_free_tools/voice.sh quit" + +# (Optional Vim-safe stop, only if stop-vim exists and you actually use it) +# bindsym $mod+Shift+v exec "$hands_free_tools/voice.sh stop-vim" + + # ]]] media keys # # vim: fdm=marker ft=i3.go-template diff --git a/dot_config/i3blocks/i3blocks-display.conf b/dot_config/i3blocks/i3blocks-display.conf index 9a74656..43aa429 100755 --- a/dot_config/i3blocks/i3blocks-display.conf +++ b/dot_config/i3blocks/i3blocks-display.conf @@ -35,6 +35,7 @@ markup=pango [time] label= +# command=date '+%H:%M.%a-%m-%d' command=date '+%H:%M.%a-%m-%d' interval=1 color=#acc0cd diff --git a/dot_config/i3blocks/i3blocks-secondary.conf.tmpl b/dot_config/i3blocks/i3blocks-secondary.conf.tmpl index 8cce828..82f55e3 100755 --- a/dot_config/i3blocks/i3blocks-secondary.conf.tmpl +++ b/dot_config/i3blocks/i3blocks-secondary.conf.tmpl @@ -19,34 +19,34 @@ color=#cbe4ff # sys.monitoring [[[ # -[temperature] -label= -interval=5 +#[temperature] +#label= +#interval=5 -[cpu_usage] -label= -interval=5 +#[cpu_usage] +#label= +#interval=5 -[memory] -label= -# color=#3da061 -interval=2 +#[memory] +#label= +## color=#3da061 +#interval=2 # ]]] sys.monitoring # # volume/spotify [[[ # -[spotify] -#command=python ~/linux-config/configs/i3blocks-scripts/spotify.py -command=/home/kevin/.config/i3blocks/scripts/spotify -# label= -label= -# # label=🎧 -# # green -# # color=#198c19 -# # aqua -# # color=#2d7272 -interval=5 +#[spotify] +##command=python ~/linux-config/configs/i3blocks-scripts/spotify.py +#command=/home/kevin/.config/i3blocks/scripts/spotify +## label= +#label= +## # label=🎧 +## # green +## # color=#198c19 +## # aqua +## # color=#2d7272 +#interval=5 # [spotify] # label= diff --git a/dot_config/i3blocks/i3blocks.conf.tmpl b/dot_config/i3blocks/i3blocks.conf.tmpl index d15383e..4b5b5e7 100755 --- a/dot_config/i3blocks/i3blocks.conf.tmpl +++ b/dot_config/i3blocks/i3blocks.conf.tmpl @@ -66,12 +66,12 @@ interval=30 # TICKER=SEIUSD # interval=30 -[dexscreener] -label=PIXL -#CHAIN=ethereum -#PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc -command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc -interval=30 +#[dexscreener] +#label=PIXL +##CHAIN=ethereum +##PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc +#command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc +#interval=30 #[dexscreener] #label=PENGU diff --git a/dot_config/i3blocks/scripts/executable_calendar b/dot_config/i3blocks/scripts/executable_calendar index ab35e50..712e48f 100755 --- a/dot_config/i3blocks/scripts/executable_calendar +++ b/dot_config/i3blocks/scripts/executable_calendar @@ -3,8 +3,10 @@ WIDTH=${WIDTH:-200} HEIGHT=${HEIGHT:-200} #DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"} -DATEFMT=${DATEFMT:-"+ %a %-m/%d %H:%M"} -SHORTFMT=${SHORTFMT:-"+%H:%M:%S"} +#DATEFMT=${DATEFMT:-"+ %a %-m/%d %H:%M"} +#SHORTFMT=${SHORTFMT:-"+%H:%M:%S"} +DATEFMT=${DATEFMT:-"+%H:%M"} +SHORTFMT=${SHORTFMT:-"+%H:%M"} OPTIND=1 while getopts ":f:W:H:" opt; do diff --git a/dot_config/i3blocks/scripts/executable_time b/dot_config/i3blocks/scripts/executable_time index c3b3fdc..1f258f4 100755 --- a/dot_config/i3blocks/scripts/executable_time +++ b/dot_config/i3blocks/scripts/executable_time @@ -9,7 +9,8 @@ . "/home/kevin/.cache/wal/colors.sh" # Define the date format matching the output in your screenshot (e.g., Sat 12/06 12:46) -DATE_FORMAT='+%a %m/%d %H:%M' +#DATE_FORMAT='+%a %m/%d %H:%M' +DATE_FORMAT='%H:%M' # Use Pango markup to wrap the entire string, applying the color, # and explicitly defining the icon () and the date output. diff --git a/tree.txt b/tree.txt new file mode 100644 index 0000000..6154cf0 --- /dev/null +++ b/tree.txt @@ -0,0 +1,319 @@ +. +├── aliases +│   ├── key_aliases.tmpl +│   ├── key_dirs.tmpl +│   └── key_files.tmpl +├── dot_bashrc +├── dot_config +│   ├── chezmoi +│   │   └── chezmoi-template.toml.tmpl +│   ├── Code +│   │   └── User +│   │   ├── keybindings.json +│   │   └── settings.json +│   ├── Cursor +│   │   └── User +│   │   ├── keybindings.json +│   │   └── settings.json +│   ├── dunst +│   │   └── dunstrc +│   ├── fish +│   │   ├── completions +│   │   │   ├── buku.fish +│   │   │   ├── kogito.fish +│   │   │   ├── kubectl.fish +│   │   │   ├── minikube.fish +│   │   │   ├── pass.fish +│   │   │   ├── timetrace.fish +│   │   │   └── watson.fish +│   │   ├── config.fish.tmpl +│   │   ├── functions +│   │   │   ├── 369 +│   │   │   │   ├── a2 +│   │   │   │   │   ├── carsim.fish +│   │   │   │   │   └── gdb-a2.fish +│   │   │   │   ├── a3 +│   │   │   │   │   ├── gdb-a3-break.fish +│   │   │   │   │   └── run-a3.fish +│   │   │   │   ├── a4 +│   │   │   │   │   ├── block-to-line.fish +│   │   │   │   │   ├── executable_revert-image.fish +│   │   │   │   │   ├── hex.fish +│   │   │   │   │   ├── mount-image.fish +│   │   │   │   │   └── run-a4.fish +│   │   │   │   ├── grep-c.fish +│   │   │   │   ├── grep-headers.fish +│   │   │   │   ├── rgc.fish +│   │   │   │   └── rg-headers.fish +│   │   │   ├── aws-attach-volume.fish +│   │   │   ├── backup-phone-pics.fish +│   │   │   ├── bc-qalc.fish +│   │   │   ├── benq-brightness.fish +│   │   │   ├── cad-to-us.fish +│   │   │   ├── cd.fish.tmpl +│   │   │   ├── certbot-ssl.fish +│   │   │   ├── clip.fish +│   │   │   ├── conda_activate.fish +│   │   │   ├── copy.fish +│   │   │   ├── create-fish-function.fish +│   │   │   ├── define.fish +│   │   │   ├── discord-burner.fish +│   │   │   ├── dump-rarity-check.fish +│   │   │   ├── enable-site.fish +│   │   │   ├── evince-silent.fish +│   │   │   ├── export-pkgs.fish +│   │   │   ├── find-bg.fish +│   │   │   ├── find-vim-filetype.fish +│   │   │   ├── fish_mode_prompt.fish +│   │   │   ├── fn-progress.fish +│   │   │   ├── fzf-cd.fish +│   │   │   ├── fzf-ranger.fish +│   │   │   ├── fzf-vim.fish +│   │   │   ├── gen-pass.fish +│   │   │   ├── git +│   │   │   │   ├── git-amend-push.fish +│   │   │   │   ├── git-clone-gitea.fish +│   │   │   │   ├── git-delete-branch.fish +│   │   │   │   ├── git-diff-files.fish +│   │   │   │   ├── git-mult-remotes.fish +│   │   │   │   ├── git-push-diff-name.fish +│   │   │   │   ├── git-push-initial.fish +│   │   │   │   ├── git-push-multiple.fish +│   │   │   │   ├── git-push-new-gitea.fish +│   │   │   │   ├── git-replace-origin.fish +│   │   │   │   └── git-replace-origin-gitea.fish +│   │   │   ├── git-log-short.fish +│   │   │   ├── git-submodule-branch.fish +│   │   │   ├── grep-aliases.fish +│   │   │   ├── grep-pdf-file.fish +│   │   │   ├── grep-pdf.fish +│   │   │   ├── ipad +│   │   │   │   ├── clip-ipad.fish +│   │   │   │   ├── mpv-ipad.fish +│   │   │   │   ├── mpv-ipad-mov.fish +│   │   │   │   ├── rm-ipad.fish +│   │   │   │   ├── rsync-ipad-vid.fish +│   │   │   │   ├── rsync-ipad-vid-mov.fish +│   │   │   │   └── unmount-ipad.fish +│   │   │   ├── java-compile-run.fish +│   │   │   ├── java-compile-test.fish +│   │   │   ├── libreoffice-silent.fish +│   │   │   ├── man-vim.fish +│   │   │   ├── maven-test-method.fish +│   │   │   ├── mkdir-cd.fish +│   │   │   ├── mpv-sub.fish +│   │   │   ├── mute-video.fish +│   │   │   ├── pastebin.fish +│   │   │   ├── qalc-history.fish +│   │   │   ├── qalc-update-amount.fish +│   │   │   ├── qalc-update.fish +│   │   │   ├── readlink-cp.fish +│   │   │   ├── redshift-set.fish +│   │   │   ├── refresh-config.fish +│   │   │   ├── refresh-config-task.fish +│   │   │   ├── reminder.fish +│   │   │   ├── scan-history.fish +│   │   │   ├── scp-cdf.fish +│   │   │   ├── scp-vid.fish +│   │   │   ├── server-pages.fish +│   │   │   ├── shred-rm.fish +│   │   │   ├── smol +│   │   │   │   ├── smol-add.fish +│   │   │   │   ├── smol-delete.fish +│   │   │   │   ├── smol-replace.fish +│   │   │   │   └── smol-slist.fish +│   │   │   ├── ssh-bandit.fish +│   │   │   ├── sudo.fish +│   │   │   ├── sxiv-silent.fish +│   │   │   ├── sync-alt-cal.fish +│   │   │   ├── systemctl-restart.fish +│   │   │   ├── task +│   │   │   │   ├── task-anno.fish +│   │   │   │   ├── task-context.fish +│   │   │   │   ├── task-delete.fish +│   │   │   │   ├── task-done.fish +│   │   │   │   ├── task-due.fish +│   │   │   │   ├── task-due-rm.fish +│   │   │   │   ├── task-edit.fish +│   │   │   │   ├── task-mod-pri.fish +│   │   │   │   ├── task-mod-proj.fish +│   │   │   │   ├── task-mod-tag.fish +│   │   │   │   ├── task-next.fish +│   │   │   │   ├── task-next-rm.fish +│   │   │   │   ├── task-notes.fish +│   │   │   │   ├── task-start.fish +│   │   │   │   └── task-wait.fish +│   │   │   ├── taskopen-new.fish +│   │   │   ├── test_output.txt +│   │   │   ├── thesaurus.fish +│   │   │   ├── timetrace-list.fish +│   │   │   ├── tmux-attach.fish +│   │   │   ├── unix-timestamp.fish +│   │   │   ├── unzip-rm.fish +│   │   │   ├── us-to-cad.fish +│   │   │   ├── video-to-gif.fish +│   │   │   ├── vim-snippet.fish +│   │   │   ├── vpn-red-hat.fish +│   │   │   ├── watson-add-fortnite.fish +│   │   │   ├── watson-add-game.fish +│   │   │   ├── wc-pdf.fish +│   │   │   ├── wget-all.fish +│   │   │   └── wget-name.fish +│   │   └── spotifyvis.bak\012abbr sv serve +│   ├── i3 +│   │   └── config.tmpl +│   ├── i3blocks +│   │   ├── i3blocks.conf.tmpl +│   │   ├── i3blocks-display.conf +│   │   ├── i3blocks-secondary.conf.tmpl +│   │   └── scripts +│   │   ├── executable_backlight +│   │   ├── executable_battery +│   │   ├── executable_calendar +│   │   ├── executable_cpu_usage +│   │   ├── executable_dexscreener +│   │   ├── executable_dexscreener-fdv +│   │   ├── executable_dexscreener-mc +│   │   ├── executable_fn_level +│   │   ├── executable_kraken +│   │   ├── executable_load_average +│   │   ├── executable_memory +│   │   ├── executable_name +│   │   ├── executable_spotify +│   │   ├── executable_temperature +│   │   ├── executable_ticker +│   │   ├── executable_time +│   │   ├── executable_volume +│   │   └── executable_wifi +│   ├── kitty +│   │   └── kitty.conf +│   ├── mgba +│   │   ├── config-tmpl.ini +│   │   ├── qt-tmpl.ini +│   │   └── update-mgba-config.fish +│   ├── mimeapps-ffox.list +│   ├── mimeapps.list +│   ├── mpv +│   │   ├── input.conf +│   │   └── mpv.conf +│   ├── msmtp +│   │   └── config +│   ├── neofetch +│   │   └── config.conf +│   ├── neomutt +│   │   └── neomuttrc +│   ├── nvim +│   │   └── init.vim +│   ├── picom +│   │   └── picom.conf +│   ├── ranger +│   │   ├── commands.py +│   │   ├── executable_scope.sh +│   │   ├── plugins +│   │   │   ├── executable_devicons_linemode.py +│   │   │   ├── executable_devicons.py +│   │   │   └── __pycache__ +│   │   │   ├── devicons.cpython-37.opt-1.pyc +│   │   │   ├── devicons_linemode.cpython-37.opt-1.pyc +│   │   │   └── __init__.cpython-37.opt-1.pyc +│   │   ├── rc.conf.tmpl +│   │   └── rifle.conf +│   ├── st +│   │   └── config.def.h.tmpl +│   └── zathura +│   └── zathurarc +├── dot_gdbinit +├── dot_gitconfig.tmpl +├── dot_imwheelrc +├── dot_inputrc +├── dot_minikube +│   └── config +│   └── config.json +├── dot_qalcrc +├── dot_ssh +│   ├── authorized_keys-all +│   └── known_hosts-all +├── dot_taskopenrc +├── dot_taskrc +├── dot_tmux.conf +├── dot_vimrc.tmpl +├── dot_xinitrc.tmpl +├── dot_Xmodmap +├── dot_Xmodmap-laptop +├── dot_Xmodmap-laptop-old +├── dot_Xmodmap-old +├── dot_Xmodmap-ubuntu +├── dot_Xmodmap-vm +├── dot_Xresources.tmpl +├── dot_zshrc +├── private_dot_calcurse +│   ├── caldav +│   │   └── config +│   ├── conf +│   └── keys +├── private_dot_gnupg +│   ├── gpg-agent.conf +│   ├── gpg-agent-template.conf +│   └── gpg.conf +├── README.md +├── scripts +│   ├── colors +│   │   ├── executable_arch +│   │   ├── executable_blocks +│   │   ├── executable_panes +│   │   ├── executable_rupees +│   │   ├── executable_space-invaders +│   │   └── executable_unowns +│   ├── executable_backup-pc +│   ├── executable_bg-chooser +│   ├── executable_burn-iso.sh +│   ├── executable_change-sink +│   ├── executable_currency +│   ├── executable_dexscreener +│   ├── executable_dexscreener-fdv +│   ├── executable_dexscreener-mc +│   ├── executable_dmenu-history +│   ├── executable_dmenu-twitch +│   ├── executable_dual-monitor-slideshow +│   ├── executable_glhf-metadata +│   ├── executable_install-arch-pkgs.sh +│   ├── executable_kraken +│   ├── executable_passmenu +│   ├── executable_qr-gif.sh +│   ├── executable_rick-roll +│   ├── executable_shuffler +│   ├── executable_spotify-clean +│   ├── executable_spotify-now +│   ├── executable_sync-shortcuts +│   ├── executable_tex-clean +│   ├── executable_ticker +│   ├── executable_twem +│   ├── executable_twitchy-game +│   ├── executable_ubuntu-start +│   ├── executable_vim-man +│   └── executable_xmodmap-custom.tmpl +├── tree.txt +└── txt + ├── arch-2-aur.txt + ├── arch-2-pkgs.txt + ├── exclude-dirs-backup-full.txt + ├── exclude-dirs-backup.txt.tmpl + ├── gtk-themes.txt + ├── nzxt-all.txt + ├── nzxt-aur.txt + ├── nzxt-new.txt + ├── nzxt-pkgs.txt + ├── terminal-art.txt + ├── termux-pkgs.txt + ├── tex-build-files.txt + ├── todo.md + ├── ubuntu + │   ├── apt-packages.txt + │   ├── npm-packages.txt + │   ├── pip-packages.txt + │   └── snap-packages.txt + ├── usbs.md + ├── x1-carbon-aur.txt + └── x1-carbon-pkgs.txt + +46 directories, 271 files