Compare commits
merge into: Kevin-Mok:master
Kevin-Mok:arch-2
Kevin-Mok:aws
Kevin-Mok:h7-volume
Kevin-Mok:master
Kevin-Mok:red-hat-laptop
Kevin-Mok:single-screen
Kevin-Mok:slideshow-screensaver
Kevin-Mok:ubuntu
Kevin-Mok:vscode
pull from: Kevin-Mok:vscode
Kevin-Mok:arch-2
Kevin-Mok:aws
Kevin-Mok:h7-volume
Kevin-Mok:master
Kevin-Mok:red-hat-laptop
Kevin-Mok:single-screen
Kevin-Mok:slideshow-screensaver
Kevin-Mok:ubuntu
Kevin-Mok:vscode
5 Commits
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
7cfffc329b
|
README
|
1 week ago |
|
|
b654a7fdd0
|
Update Cursor
|
2 weeks ago |
|
|
af7c255edd
|
Transfer VSCode to Cursor
|
2 weeks ago |
|
|
aeee782f58
|
Bearded dark theme
|
2 weeks ago |
|
|
7c55fe9d22
|
VSCode init
|
2 weeks ago |
19 changed files with 1254 additions and 96 deletions
-
381README.md
-
6aliases/key_aliases.tmpl
-
8aliases/key_dirs.tmpl
-
24dot_Xmodmap
-
39dot_config/Code/User/keybindings.json
-
97dot_config/Code/User/settings.json
-
39dot_config/Cursor/User/keybindings.json
-
232dot_config/Cursor/User/settings.json
-
1dot_config/fish/config.fish.tmpl
-
39dot_config/fish/functions/fn-progress.fish
-
12dot_config/fish/functions/test_output.txt
-
32dot_config/i3/config.tmpl
-
1dot_config/i3blocks/i3blocks-display.conf
-
44dot_config/i3blocks/i3blocks-secondary.conf.tmpl
-
41dot_config/i3blocks/i3blocks.conf.tmpl
-
6dot_config/i3blocks/scripts/executable_calendar
-
20dot_config/i3blocks/scripts/executable_time
-
9dot_config/kitty/kitty.conf
-
319tree.txt
@ -1,33 +1,348 @@ |
|||
<!--- Intro {{{ --> |
|||
# Kevin's Linux Setup |
|||
|
|||
 |
|||
*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/). |
|||
<!--- }}} Intro --> |
|||
|
|||
<!--- Main Programs {{{ --> |
|||
## 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/) |
|||
<!--- }}} Basic Info --> |
|||
|
|||
<!--- Setup {{{ --> |
|||
|
|||
## Setup |
|||
I use [chezmoi](https://github.com/twpayne/chezmoi) to manage varying |
|||
configs for different machines with a single branch. |
|||
|
|||
<!--- }}} Setup --> |
|||
# 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 <repo>` (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 <key> <value>` (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 `<F5>` 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. |
|||
@ -1,9 +1,25 @@ |
|||
clear Lock |
|||
! clear Lock |
|||
|
|||
keycode 9 = Caps_Lock |
|||
keycode 66 = Escape |
|||
keycode 22 = BackSpace |
|||
! keycode 66 = Escape |
|||
! keycode 22 = BackSpace |
|||
|
|||
pointer = 1 2 3 6 7 4 5 10 11 12 8 9 |
|||
! pointer = 1 2 3 6 7 4 5 10 11 12 8 9 |
|||
! side thumb button as middle click |
|||
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9 |
|||
|
|||
! Clear the Caps Lock modifier logic first |
|||
clear Lock |
|||
|
|||
! Map the physical Caps Lock key (66) to Escape |
|||
keycode 66 = Escape |
|||
|
|||
! Optional: Map physical Escape (9) to Caps Lock if you really want to swap. |
|||
! If you comment out the line below, you will have two Escape keys (Safer). |
|||
! keycode 9 = Caps_Lock |
|||
|
|||
! Important: If you did swap (uncommented line above), you must add the Lock modifier back |
|||
! add Lock = Caps_Lock |
|||
|
|||
! Keep your mouse settings |
|||
pointer = 1 2 3 6 7 4 5 10 11 12 8 9 |
|||
@ -0,0 +1,39 @@ |
|||
[ |
|||
// Map the physical 'CapsLock' key to act as the 'Escape' key |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.terminal.sendSequence", |
|||
"args": { |
|||
"text": "\u001b" // ASCII code for Escape |
|||
}, |
|||
// Optional: you can restrict this to the terminal or use no 'when' condition |
|||
// "when": "terminalFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeMessages", |
|||
"when": "notificationVisible" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "closeCommandCenter", |
|||
"when": "commandCenterVisible" |
|||
}, |
|||
// The most important one: to exit common modes/menus/widgets |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeAllGroups", |
|||
"when": "editorFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeActiveEditor", |
|||
"when": "editorFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closePanel", |
|||
"when": "panelFocus" |
|||
} |
|||
// ... you may need to map it to several common "escape" actions |
|||
] |
|||
@ -0,0 +1,97 @@ |
|||
{ |
|||
// --- General Editor Settings --- |
|||
"keyboard.dispatch": "keyCode", |
|||
"editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace", |
|||
"editor.lineNumbers": "relative", |
|||
"editor.tabSize": 4, |
|||
"editor.insertSpaces": true, |
|||
"editor.wordWrap": "wordWrapColumn", |
|||
"editor.wordWrapColumn": 60, |
|||
"editor.cursorSurroundingLines": 5, |
|||
"editor.mouseWheelZoom": true, |
|||
"files.insertFinalNewline": false, |
|||
"files.autoSave": "afterDelay", |
|||
"files.autoSaveDelay": 1000, |
|||
|
|||
// --- Terminal --- |
|||
"terminal.integrated.fontFamily": "'Hack', monospace", |
|||
|
|||
// --- Theme & Colors (Universal Red Mode) --- |
|||
// This forces the red theme on top of ANY dark theme you select |
|||
"workbench.colorTheme": "Bearded Theme Monokai Black", |
|||
"workbench.colorCustomizations": { |
|||
// Global Red Overrides |
|||
"activityBar.background": "#1f2428", |
|||
"activityBar.activeBorder": "#f85149", |
|||
"activityBar.foreground": "#f85149", |
|||
"activityBar.inactiveForeground": "#6e7681", |
|||
|
|||
"statusBar.background": "#da3633", |
|||
"statusBar.foreground": "#ffffff", |
|||
|
|||
"titleBar.activeBackground": "#1f2428", |
|||
"tab.activeBorderTop": "#f85149", |
|||
|
|||
"list.activeSelectionForeground": "#f85149", |
|||
"textLink.foreground": "#f85149", |
|||
"progressBar.background": "#f85149" |
|||
}, |
|||
|
|||
// --- Vim Settings --- |
|||
"vim.leader": " ", |
|||
"vim.useSystemClipboard": true, |
|||
"vim.hlsearch": true, |
|||
"vim.smartcase": true, |
|||
"vim.timeout": 350, |
|||
"vim.undofile": true, |
|||
"vim.handleKeys": { |
|||
"<C-a>": false, |
|||
"<C-f>": false, |
|||
"<C-p>": false |
|||
}, |
|||
|
|||
// --- Key Bindings --- |
|||
"vim.insertModeKeyBindings": [ |
|||
{ |
|||
"before": ["<Esc>"], |
|||
"after": ["<Esc>"], |
|||
"commands": ["workbench.action.files.save"] |
|||
} |
|||
], |
|||
"vim.insertModeKeyBindingsNonRecursive": [ |
|||
{ |
|||
"before": ["<Esc>"], |
|||
"after": ["<Esc>"], |
|||
"commands": ["workbench.action.files.save"] |
|||
} |
|||
], |
|||
"vim.normalModeKeyBindingsNonRecursive": [ |
|||
{ "before": ["Y"], "after": ["y", "$"], "silent": true }, |
|||
{ "before": ["Q"], "after": ["@", "@"], "silent": true }, |
|||
{ "before": [","], "after": ["z", "a"], "silent": true }, |
|||
{ "before": ["'"], "after": ["`"], "silent": true }, |
|||
{ "before": ["<leader>", "d"], "after": ["d", "$"] }, |
|||
{ "before": ["<leader>", "d", "l"], "after": ["0", "d", "$"] }, |
|||
{ "before": ["<leader>", "k"], "after": ["<C-o>"] }, |
|||
{ "before": ["<leader>", "j"], "after": ["<C-i>"] }, |
|||
{ "before": ["<leader>", "s", "p"], "commands": [":split"] }, |
|||
{ "before": ["<leader>", "v", "s"], "commands": [":vsplit"] }, |
|||
{ "before": ["<leader>", "v", "v"], "commands": ["workbench.action.openSettingsJson"] }, |
|||
{ "before": ["<leader>", "y", "o"], "commands": ["workbench.action.toggleZenMode"] } |
|||
], |
|||
|
|||
// --- Language Specific Settings --- |
|||
"[css]": { "editor.tabSize": 2 }, |
|||
"[scss]": { "editor.tabSize": 2 }, |
|||
"[html]": { "editor.tabSize": 2 }, |
|||
"[javascript]": { "editor.tabSize": 2 }, |
|||
"[javascriptreact]": { "editor.tabSize": 2 }, |
|||
"[json]": { "editor.tabSize": 2 }, |
|||
"[typescript]": { "editor.tabSize": 2 }, |
|||
"[typescriptreact]": { "editor.tabSize": 2 }, |
|||
"[yaml]": { "editor.tabSize": 2 }, |
|||
"[go]": { "editor.insertSpaces": false, "editor.tabSize": 4 }, |
|||
"[markdown]": { "editor.wordWrap": "wordWrapColumn", "editor.wordWrapColumn": 55 }, |
|||
"[groovy]": { "editor.wordWrap": "off" }, |
|||
"[jenkinsfile]": { "editor.wordWrap": "off" } |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
[ |
|||
// Map the physical 'CapsLock' key to act as the 'Escape' key |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.terminal.sendSequence", |
|||
"args": { |
|||
"text": "\u001b" // ASCII code for Escape |
|||
}, |
|||
// Optional: you can restrict this to the terminal or use no 'when' condition |
|||
// "when": "terminalFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeMessages", |
|||
"when": "notificationVisible" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "closeCommandCenter", |
|||
"when": "commandCenterVisible" |
|||
}, |
|||
// The most important one: to exit common modes/menus/widgets |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeAllGroups", |
|||
"when": "editorFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeActiveEditor", |
|||
"when": "editorFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closePanel", |
|||
"when": "panelFocus" |
|||
} |
|||
// ... you may need to map it to several common "escape" actions |
|||
] |
|||
@ -0,0 +1,232 @@ |
|||
// 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", |
|||
"editor.lineNumbers": "relative", |
|||
"editor.tabSize": 4, |
|||
"editor.insertSpaces": true, |
|||
"editor.wordWrap": "wordWrapColumn", |
|||
"editor.wordWrapColumn": 60, |
|||
"editor.cursorSurroundingLines": 5, |
|||
"editor.mouseWheelZoom": true, |
|||
"files.insertFinalNewline": false, |
|||
"files.autoSave": "afterDelay", |
|||
"files.autoSaveDelay": 1000, |
|||
"terminal.integrated.fontFamily": "'Hack', monospace", |
|||
"workbench.colorTheme": "Bearded Theme Monokai Black", |
|||
"workbench.colorCustomizations": { |
|||
"activityBar.background": "#1f2428", |
|||
"activityBar.activeBorder": "#f85149", |
|||
"activityBar.foreground": "#f85149", |
|||
"activityBar.inactiveForeground": "#6e7681", |
|||
"statusBar.background": "#da3633", |
|||
"statusBar.foreground": "#ffffff", |
|||
"titleBar.activeBackground": "#1f2428", |
|||
"tab.activeBorderTop": "#f85149", |
|||
"list.activeSelectionForeground": "#f85149", |
|||
"textLink.foreground": "#f85149", |
|||
"progressBar.background": "#f85149" |
|||
}, |
|||
"vim.leader": " ", |
|||
"vim.useSystemClipboard": true, |
|||
"vim.hlsearch": true, |
|||
"vim.smartcase": true, |
|||
"vim.timeout": 350, |
|||
"vim.undofile": true, |
|||
"vim.handleKeys": { |
|||
"<C-a>": false, |
|||
"<C-f>": false, |
|||
"<C-p>": false |
|||
}, |
|||
"vim.insertModeKeyBindings": [ |
|||
{ |
|||
"before": [ |
|||
"<Esc>" |
|||
], |
|||
"after": [ |
|||
"<Esc>" |
|||
], |
|||
"commands": [ |
|||
"workbench.action.files.save" |
|||
] |
|||
} |
|||
], |
|||
"vim.insertModeKeyBindingsNonRecursive": [ |
|||
{ |
|||
"before": [ |
|||
"<Esc>" |
|||
], |
|||
"after": [ |
|||
"<Esc>" |
|||
], |
|||
"commands": [ |
|||
"workbench.action.files.save" |
|||
] |
|||
} |
|||
], |
|||
"vim.normalModeKeyBindingsNonRecursive": [ |
|||
{ |
|||
"before": [ |
|||
"Y" |
|||
], |
|||
"after": [ |
|||
"y", |
|||
"$" |
|||
], |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"Q" |
|||
], |
|||
"after": [ |
|||
"@", |
|||
"@" |
|||
], |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"," |
|||
], |
|||
"after": [ |
|||
"z", |
|||
"a" |
|||
], |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"'" |
|||
], |
|||
"after": [ |
|||
"`" |
|||
], |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"d" |
|||
], |
|||
"after": [ |
|||
"d", |
|||
"$" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"d", |
|||
"l" |
|||
], |
|||
"after": [ |
|||
"0", |
|||
"d", |
|||
"$" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"k" |
|||
], |
|||
"after": [ |
|||
"<C-o>" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"j" |
|||
], |
|||
"after": [ |
|||
"<C-i>" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"s", |
|||
"p" |
|||
], |
|||
"commands": [ |
|||
":split" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"v", |
|||
"s" |
|||
], |
|||
"commands": [ |
|||
":vsplit" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"v", |
|||
"v" |
|||
], |
|||
"commands": [ |
|||
"workbench.action.openSettingsJson" |
|||
] |
|||
}, |
|||
{ |
|||
"before": [ |
|||
"<leader>", |
|||
"y", |
|||
"o" |
|||
], |
|||
"commands": [ |
|||
"workbench.action.toggleZenMode" |
|||
] |
|||
} |
|||
], |
|||
"[css]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[scss]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[html]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[javascript]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[javascriptreact]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[json]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[typescript]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[typescriptreact]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[yaml]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[go]": { |
|||
"editor.insertSpaces": false, |
|||
"editor.tabSize": 4 |
|||
}, |
|||
"[markdown]": { |
|||
"editor.wordWrap": "wordWrapColumn", |
|||
"editor.wordWrapColumn": 55 |
|||
}, |
|||
"[groovy]": { |
|||
"editor.wordWrap": "off" |
|||
}, |
|||
"[jenkinsfile]": { |
|||
"editor.wordWrap": "off" |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
function fn-progress |
|||
# --- Season Dates (Fortnite Chapter 7 Season 1) --- |
|||
set SEASON_START "2025-11-29 00:00:00" |
|||
set SEASON_END "2026-03-04 00:00:00" |
|||
|
|||
# --- Calculate Unix Timestamps --- |
|||
set START_SECONDS (date -d "$SEASON_START" +%s) |
|||
set END_SECONDS (date -d "$SEASON_END" +%s) |
|||
set CURRENT_SECONDS (date +%s) |
|||
set CURRENT_DATE_TIME (date) |
|||
|
|||
# --- Check if the season is over or hasn't started --- |
|||
if test "$CURRENT_SECONDS" -lt "$START_SECONDS" |
|||
echo "🎯 Fortnite C7S1 hasn't started yet! (Starts on $SEASON_START)" |
|||
return |
|||
end |
|||
|
|||
if test "$CURRENT_SECONDS" -ge "$END_SECONDS" |
|||
echo "🎉 Fortnite C7S1 has ended! (Ended on $SEASON_END)" |
|||
return |
|||
end |
|||
|
|||
# --- Calculate Progress --- |
|||
set TOTAL_DURATION (math "$END_SECONDS - $START_SECONDS") |
|||
set TIME_PASSED (math "$CURRENT_SECONDS - $START_SECONDS") |
|||
|
|||
# --- Calculate the ceiling percentage (The Critical Change) --- |
|||
# Setting scale=0 forces bc to output only the integer part (truncation), |
|||
# and adding 0.9999 before truncation implements the ceiling logic. |
|||
set PROGRESS_PERCENT (echo "scale=0; (($TIME_PASSED * 100) / $TOTAL_DURATION) + 0.9999" | bc) |
|||
|
|||
# --- Output Result --- |
|||
echo "📅 Current Date/Time: $CURRENT_DATE_TIME" |
|||
echo "🚀 Season Start: $SEASON_START" |
|||
echo "🛑 Season End: $SEASON_END" |
|||
echo "---" |
|||
echo "✅ Fortnite C7S1 is **$PROGRESS_PERCENT%** complete!" |
|||
echo "---" |
|||
end |
|||
@ -0,0 +1,12 @@ |
|||
📅 Current Date/Time: Sat Dec 6 12:55:57 EST 2025 |
|||
🚀 Season Start: 2025-11-29 00:00:00 |
|||
🛑 Season End: 2026-03-04 00:00:00 |
|||
--- |
|||
✅ Fortnite C7S1 is **7.93%** complete! |
|||
--- |
|||
]4;0;#0B0E12\]4;1;#671D22\]4;2;#722327\]4;3;#19453B\]4;4;#1B594F\]4;5;#51554A\]4;6;#99322C\]4;7;#82bcb1\]4;8;#5b837b\]4;9;#671D22\]4;10;#722327\]4;11;#19453B\]4;12;#1B594F\]4;13;#51554A\]4;14;#99322C\]4;15;#82bcb1\]10;#82bcb1\]11;#0B0E12\]12;#82bcb1\]13;#82bcb1\]17;#82bcb1\]19;#0B0E12\]4;232;#0B0E12\]4;256;#82bcb1\]708;#0B0E12\📅 Current Date/Time: Sat Dec 6 12:55:57 EST 2025 |
|||
🚀 Season Start: 2025-11-29 00:00:00 |
|||
🛑 Season End: 2026-03-04 00:00:00 |
|||
--- |
|||
✅ Fortnite C7S1 is **7.93%** complete! |
|||
--- |
|||
@ -1,6 +1,22 @@ |
|||
#!/bin/bash |
|||
|
|||
. "/home/kevin/.cache/wal/colors.sh" |
|||
printf "$(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7" |
|||
#. "/home/kevin/.cache/wal/colors.sh" |
|||
#printf " $(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7" |
|||
# echo "<span foreground=\"%s\">$(date '+%H:%M.%a-%m-%d')%s</span>" "$color2" |
|||
# printf "%s" "$color2" |
|||
|
|||
# Load colors from pywal cache |
|||
. "/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='%H:%M' |
|||
|
|||
# Use Pango markup to wrap the entire string, applying the color, |
|||
# and explicitly defining the icon () and the date output. |
|||
# The icon is U+F017. |
|||
printf "<span foreground=\"%s\"> %s</span>\n" "$color7" "$(date "$DATE_FORMAT")" |
|||
|
|||
# The next two lines are optional for i3blocks but usually required for color output: |
|||
printf "\n" # Short text (optional) |
|||
printf "%s\n" "$color7" # Color (optional, but good practice) |
|||
@ -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 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue