Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
7cfffc329b
|
|||
|
b654a7fdd0
|
|||
|
af7c255edd
|
|||
|
aeee782f58
|
|||
|
7c55fe9d22
|
369
README.md
369
README.md
@@ -1,33 +1,348 @@
|
|||||||
<!--- Intro {{{ -->
|
# KM's Linux Desktop Config (chezmoi dotfiles)
|
||||||
# Kevin's Linux Setup
|
|
||||||
|
|
||||||

|
This is my **chezmoi-managed toolkit** for keeping a
|
||||||
*Screenshot from my dual-monitor setup.*
|
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.
|
||||||
|
|
||||||
This repository contains the dotfiles to increase my workflow efficiency. They
|
## Table of Contents
|
||||||
are also for my Linux
|
- [What This Repo Is](#what-this-repo-is)
|
||||||
[rice](https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/cukxwog/).
|
- [Installation & Sync](#installation--sync)
|
||||||
<!--- }}} Intro -->
|
- [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)
|
||||||
|
|
||||||
<!--- Main Programs {{{ -->
|
## What This Repo Is
|
||||||
## Main Programs
|
- A **chezmoi repo** with `dot_*` files targeting `$HOME`
|
||||||
* **OS**: [Arch Linux](https://www.archlinux.org/) ([packages](txt/nzxt-pkgs.txt))
|
(e.g. `dot_vimrc.tmpl` → `~/.vimrc`, `dot_tmux.conf`,
|
||||||
```
|
`dot_gitconfig.tmpl`, etc.) and `dot_config/**` mirroring
|
||||||
> systemd-analyze
|
`~/.config`. Every `.tmpl` file runs through `chezmoi`
|
||||||
Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s
|
templating so `{{ .chezmoi.hostname }}` / `.linux_os` /
|
||||||
graphical.target reached after 1.085s in userspace
|
`.chezmoi.username` can tailor behavior.
|
||||||
```
|
- A place for **desktop-focused tooling**: i3/i3blocks, fish
|
||||||
* **Terminal**: [rxvt-unicode-pixbuf](https://www.wikiwand.com/en/Rxvt)
|
+ shared aliases, kitty/ST terminals, tmux, Neovim/Vim,
|
||||||
* **Shell**: [Fish](https://fishshell.com/)
|
mpv, Ranger, mpv, Zathura, dunst/picom/prefers,
|
||||||
* **Window Manager**: [i3-gaps](https://github.com/Airblader/i3)
|
taskwarrior/taskopen, and shell helpers such as
|
||||||
* **Editor**: [Neovim](https://github.com/neovim/neovim) ([plugins](dotfiles/.vimrc#L51))
|
`executable_passmenu`, `dmenu-history`, `change-sink`,
|
||||||
* **File Manager**: [ranger](https://ranger.github.io/)
|
`bg-chooser`, etc.
|
||||||
<!--- }}} Basic Info -->
|
- 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.
|
||||||
|
|
||||||
<!--- Setup {{{ -->
|
## 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.
|
||||||
|
|
||||||
## Setup
|
## Shells & Aliases
|
||||||
I use [chezmoi](https://github.com/twpayne/chezmoi) to manage varying
|
- `dot_bashrc` and `dot_zshrc` both source
|
||||||
configs for different machines with a single branch.
|
`~/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`.
|
||||||
|
|
||||||
<!--- }}} Setup -->
|
## 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.
|
||||||
@@ -721,6 +721,7 @@ gds "git diff --stat"
|
|||||||
gdsc "git diff --stat --cached -w"
|
gdsc "git diff --stat --cached -w"
|
||||||
gdt "git difftool -w --tool=vimdiff"
|
gdt "git difftool -w --tool=vimdiff"
|
||||||
gdtc "git difftool -w --cached --tool=vimdiff"
|
gdtc "git difftool -w --cached --tool=vimdiff"
|
||||||
|
gdx "git diff -w | xclip -selection clipboard"
|
||||||
gl "git log -5"
|
gl "git log -5"
|
||||||
gl1 "git log --oneline"
|
gl1 "git log --oneline"
|
||||||
gl1x "git log --oneline -1 | xclip -selection clipboard"
|
gl1x "git log --oneline -1 | xclip -selection clipboard"
|
||||||
@@ -1043,7 +1044,7 @@ twf "watch -n300 'twitchy-game Fortnite'"
|
|||||||
lob "lsd -F --group-dirs first 2020*.mkv"
|
lob "lsd -F --group-dirs first 2020*.mkv"
|
||||||
wob "watch -n60 'lsd -lF --group-dirs first --size short 2020*.mkv'"
|
wob "watch -n60 'lsd -lF --group-dirs first --size short 2020*.mkv'"
|
||||||
|
|
||||||
fnpr "t timeline FNProgress | sed -n '2p'"
|
#fnpr "t timeline FNProgress | sed -n '2p'"
|
||||||
fnu "sxiv ~/Documents/fortnite/pics/maps/upgrade.png &"
|
fnu "sxiv ~/Documents/fortnite/pics/maps/upgrade.png &"
|
||||||
fnl "python /mnt/linux-files-3/fortnite/show-level.py"
|
fnl "python /mnt/linux-files-3/fortnite/show-level.py"
|
||||||
|
|
||||||
@@ -1088,6 +1089,9 @@ vp "vercel --prod"
|
|||||||
|
|
||||||
cr "~/Applications/cursor.AppImage --no-sandbox &"
|
cr "~/Applications/cursor.AppImage --no-sandbox &"
|
||||||
|
|
||||||
|
h ./start.sh
|
||||||
|
v ./start.sh voice
|
||||||
|
|
||||||
# ]]] work #
|
# ]]] work #
|
||||||
|
|
||||||
# red-hat [[[ #
|
# red-hat [[[ #
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ cfg ~/.config
|
|||||||
cfgf ~/.config/fish
|
cfgf ~/.config/fish
|
||||||
ch ~/Documents/chat
|
ch ~/Documents/chat
|
||||||
dc ~/Documents/chat/discord
|
dc ~/Documents/chat/discord
|
||||||
da /mnt/ipad/DCIM/105APPLE
|
da /mnt/ipad/DCIM/106APPLE
|
||||||
dl ~/Downloads
|
dl ~/Downloads
|
||||||
# dw ~/dwm
|
# dw ~/dwm
|
||||||
D ~/Documents
|
D ~/Documents
|
||||||
@@ -186,6 +186,8 @@ sdvsvg ~/Documents/stardew-valley-sdv-saves/hevintales
|
|||||||
snp ~/Documents/marvel-snap
|
snp ~/Documents/marvel-snap
|
||||||
snpv /mnt/linux-files-2/Videos/ipad/marvel-snap
|
snpv /mnt/linux-files-2/Videos/ipad/marvel-snap
|
||||||
|
|
||||||
|
dal /mnt/linux-files-3/ipad/106APPLE
|
||||||
|
|
||||||
# ]]] gaming #
|
# ]]] gaming #
|
||||||
|
|
||||||
# pey [[[ #
|
# pey [[[ #
|
||||||
@@ -297,6 +299,10 @@ kb ~/coding/kanban-calendar
|
|||||||
ac ~/coding/astral-challenge-txt
|
ac ~/coding/astral-challenge-txt
|
||||||
|
|
||||||
rbc ~/coding/rbc-aml/src
|
rbc ~/coding/rbc-aml/src
|
||||||
|
cibc ~/school/job-hunt/interview-questions/cibc
|
||||||
|
|
||||||
|
psa ~/coding/psa-arb
|
||||||
|
hn ~/coding/hands-free-tools
|
||||||
|
|
||||||
# ]]] sch #
|
# ]]] sch #
|
||||||
|
|
||||||
|
|||||||
28
dot_Xmodmap
28
dot_Xmodmap
@@ -1,9 +1,25 @@
|
|||||||
clear Lock
|
! clear Lock
|
||||||
|
|
||||||
keycode 9 = Caps_Lock
|
keycode 9 = Caps_Lock
|
||||||
keycode 66 = Escape
|
! keycode 66 = Escape
|
||||||
keycode 22 = BackSpace
|
! 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
|
! side thumb button as middle click
|
||||||
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9
|
! 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
|
||||||
|
|||||||
39
dot_config/Code/User/keybindings.json
Normal file
39
dot_config/Code/User/keybindings.json
Normal file
@@ -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
|
||||||
|
]
|
||||||
97
dot_config/Code/User/settings.json
Normal file
97
dot_config/Code/User/settings.json
Normal file
@@ -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" }
|
||||||
|
}
|
||||||
39
dot_config/Cursor/User/keybindings.json
Normal file
39
dot_config/Cursor/User/keybindings.json
Normal file
@@ -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
|
||||||
|
]
|
||||||
232
dot_config/Cursor/User/settings.json
Normal file
232
dot_config/Cursor/User/settings.json
Normal file
@@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -242,6 +242,7 @@ abbr fd1 "fd --changed-within 1d"
|
|||||||
abbr ens "enable-site"
|
abbr ens "enable-site"
|
||||||
abbr ev "evince-silent"
|
abbr ev "evince-silent"
|
||||||
abbr ff "fzf-cd"
|
abbr ff "fzf-cd"
|
||||||
|
abbr fnpr "fn-progress"
|
||||||
# abbr fbg "find-bg"
|
# abbr fbg "find-bg"
|
||||||
# abbr fr "fzf-ranger"
|
# abbr fr "fzf-ranger"
|
||||||
abbr fv "fzf-vim"
|
abbr fv "fzf-vim"
|
||||||
|
|||||||
39
dot_config/fish/functions/fn-progress.fish
Executable file
39
dot_config/fish/functions/fn-progress.fish
Executable file
@@ -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
|
||||||
12
dot_config/fish/functions/test_output.txt
Normal file
12
dot_config/fish/functions/test_output.txt
Normal file
@@ -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!
|
||||||
|
---
|
||||||
@@ -23,6 +23,7 @@ exec wal -i $(/home/kevin/scripts/shuffler "$HOME/Pictures/Backgrounds/dim/editi
|
|||||||
# exec --no-startup-id i3-msg 'workspace $ws2; exec $term -e fish -c "tmux-attach fortnite"'
|
# exec --no-startup-id i3-msg 'workspace $ws2; exec $term -e fish -c "tmux-attach fortnite"'
|
||||||
exec --no-startup-id i3-msg 'workspace $ws3; exec $browser'
|
exec --no-startup-id i3-msg 'workspace $ws3; exec $browser'
|
||||||
exec --no-startup-id i3-msg 'workspace $ws6; exec vesktop'
|
exec --no-startup-id i3-msg 'workspace $ws6; exec vesktop'
|
||||||
|
exec --no-startup-id i3-msg 'workspace $ws6; exec signal-desktop'
|
||||||
# exec --no-startup-id i3-msg 'workspace $ws5; exec $term -e twitchy'
|
# exec --no-startup-id i3-msg 'workspace $ws5; exec $term -e twitchy'
|
||||||
# exec --no-startup-id i3-msg 'workspace $ws5; exec firefox -P nft'
|
# exec --no-startup-id i3-msg 'workspace $ws5; exec firefox -P nft'
|
||||||
#exec --no-startup-id i3-msg workspace $ws6; exec discord
|
#exec --no-startup-id i3-msg workspace $ws6; exec discord
|
||||||
@@ -39,8 +40,10 @@ set $browser "google-chrome"
|
|||||||
#set $browser_secondary "chromium"
|
#set $browser_secondary "chromium"
|
||||||
#set $browser_secondary "google-chrome-stable"
|
#set $browser_secondary "google-chrome-stable"
|
||||||
# set $browser "chromium"
|
# set $browser "chromium"
|
||||||
set $browser_secondary "firefox"
|
set $browser_secondary "firefox"
|
||||||
set $scripts_path "/home/kevin/scripts"
|
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"
|
set $sch_dir "$HOME/Documents/School"
|
||||||
|
|
||||||
# app shortcuts [[[ #
|
# app shortcuts [[[ #
|
||||||
@@ -362,8 +365,8 @@ bindsym $mod+Shift+F2 workspace $ws2; exec $term -e mosh kmok@$work_laptop_ip --
|
|||||||
|
|
||||||
# ws3 [[[ #
|
# ws3 [[[ #
|
||||||
|
|
||||||
set $ws3 "3 "
|
#set $ws3 "3 "
|
||||||
# set $ws3 "3 "
|
set $ws3 "3 "
|
||||||
# workspace $ws3 output $main
|
# workspace $ws3 output $main
|
||||||
# bindsym $mod+F3 workspace $ws3; exec $browser
|
# bindsym $mod+F3 workspace $ws3; exec $browser
|
||||||
# bindsym $mod+F3 exec $browser; move container to workspace $ws3; workspace $ws3
|
# bindsym $mod+F3 exec $browser; move container to workspace $ws3; workspace $ws3
|
||||||
@@ -428,7 +431,7 @@ for_window [class="ada-mario"] move absolute position 640 0
|
|||||||
set $ws6 "6 "
|
set $ws6 "6 "
|
||||||
workspace $ws6 output $secondary
|
workspace $ws6 output $secondary
|
||||||
assign [class="Slack"] $ws6
|
assign [class="Slack"] $ws6
|
||||||
bindsym Mod4+d workspace $ws6; exec discord
|
bindsym Mod4+d workspace $ws6; exec vesktop
|
||||||
bindsym Mod4+$mod+d workspace $ws6; exec element-desktop
|
bindsym Mod4+$mod+d workspace $ws6; exec element-desktop
|
||||||
bindsym Mod4+i workspace $ws6; exec signal-desktop
|
bindsym Mod4+i workspace $ws6; exec signal-desktop
|
||||||
# bindsym Mod4+d workspace $ws6; exec firefox -new-window https://riot.im/app
|
# bindsym Mod4+d workspace $ws6; exec firefox -new-window https://riot.im/app
|
||||||
@@ -485,7 +488,7 @@ workspace $ws11 output $secondary
|
|||||||
bindsym $mod+F11 workspace $ws11; exec $term -e btop
|
bindsym $mod+F11 workspace $ws11; exec $term -e btop
|
||||||
# bindsym Mod4+$mod+F11 workspace $ws11; exec $term -e fish -c 'tmux-attach backup'
|
# bindsym Mod4+$mod+F11 workspace $ws11; exec $term -e fish -c 'tmux-attach backup'
|
||||||
bindsym Control+Shift+F11 workspace $ws11; exec $term -e fish -c 'tmux-attach backup'
|
bindsym Control+Shift+F11 workspace $ws11; exec $term -e fish -c 'tmux-attach backup'
|
||||||
bindsym Mod4+t workspace $ws11; exec nordvpn connect && transmission-gtk
|
#bindsym Mod4+t workspace $ws11; exec nordvpn connect && transmission-gtk
|
||||||
# bindsym $mod+F11 workspace $ws11; exec $term -e gotop -m
|
# bindsym $mod+F11 workspace $ws11; exec $term -e gotop -m
|
||||||
# bindsym Mod4+a workspace $ws11; exec antimicro
|
# bindsym Mod4+a workspace $ws11; exec antimicro
|
||||||
|
|
||||||
@@ -592,7 +595,9 @@ bar {
|
|||||||
font pango:$sb_font 17
|
font pango:$sb_font 17
|
||||||
{{ else }}
|
{{ else }}
|
||||||
# font pango:$sb_font 17
|
# font pango:$sb_font 17
|
||||||
font pango:$sb_font 16
|
#font pango:$sb_font 16:pixelsize=5
|
||||||
|
#font pango:$sb_font 16
|
||||||
|
font pango:$sb_font 30
|
||||||
{{ end }}
|
{{ end }}
|
||||||
colors {
|
colors {
|
||||||
# 0 (transparent) -> 255 (opaque) in hex
|
# 0 (transparent) -> 255 (opaque) in hex
|
||||||
@@ -624,8 +629,8 @@ bar {
|
|||||||
font pango:$sb_font 18
|
font pango:$sb_font 18
|
||||||
{{ else }}
|
{{ else }}
|
||||||
# font pango:$sb_font 21
|
# font pango:$sb_font 21
|
||||||
#font pango:$sb_font 20
|
font pango:$sb_font 30
|
||||||
font pango:$sb_font 18
|
#font pango:$sb_font 18
|
||||||
{{ end }}
|
{{ end }}
|
||||||
# output $main
|
# output $main
|
||||||
i3bar_command i3bar -t
|
i3bar_command i3bar -t
|
||||||
@@ -682,6 +687,17 @@ bindsym XF86AudioNext exec "dbus-send --print-reply --dest=org.mpris.MediaPlayer
|
|||||||
|
|
||||||
# ]]] fn key #
|
# ]]] 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 #
|
# ]]] media keys #
|
||||||
|
|
||||||
# vim: fdm=marker ft=i3.go-template
|
# vim: fdm=marker ft=i3.go-template
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ markup=pango
|
|||||||
|
|
||||||
[time]
|
[time]
|
||||||
label=
|
label=
|
||||||
|
# command=date '+%H:%M.%a-%m-%d'
|
||||||
command=date '+%H:%M.%a-%m-%d'
|
command=date '+%H:%M.%a-%m-%d'
|
||||||
interval=1
|
interval=1
|
||||||
color=#acc0cd
|
color=#acc0cd
|
||||||
|
|||||||
@@ -19,34 +19,34 @@ color=#cbe4ff
|
|||||||
|
|
||||||
# sys.monitoring [[[ #
|
# sys.monitoring [[[ #
|
||||||
|
|
||||||
[temperature]
|
#[temperature]
|
||||||
label=
|
#label=
|
||||||
interval=5
|
#interval=5
|
||||||
|
|
||||||
[cpu_usage]
|
#[cpu_usage]
|
||||||
label=
|
#label=
|
||||||
interval=5
|
#interval=5
|
||||||
|
|
||||||
[memory]
|
#[memory]
|
||||||
label=
|
#label=
|
||||||
# color=#3da061
|
## color=#3da061
|
||||||
interval=2
|
#interval=2
|
||||||
|
|
||||||
# ]]] sys.monitoring #
|
# ]]] sys.monitoring #
|
||||||
|
|
||||||
# volume/spotify [[[ #
|
# volume/spotify [[[ #
|
||||||
|
|
||||||
[spotify]
|
#[spotify]
|
||||||
#command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
|
##command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
|
||||||
command=/home/kevin/.config/i3blocks/scripts/spotify
|
#command=/home/kevin/.config/i3blocks/scripts/spotify
|
||||||
# label=
|
## label=
|
||||||
label=
|
#label=
|
||||||
# # label=🎧
|
## # label=🎧
|
||||||
# # green
|
## # green
|
||||||
# # color=#198c19
|
## # color=#198c19
|
||||||
# # aqua
|
## # aqua
|
||||||
# # color=#2d7272
|
## # color=#2d7272
|
||||||
interval=5
|
#interval=5
|
||||||
|
|
||||||
# [spotify]
|
# [spotify]
|
||||||
# label=
|
# label=
|
||||||
@@ -65,7 +65,7 @@ interval=60
|
|||||||
|
|
||||||
[calendar]
|
[calendar]
|
||||||
interval=1
|
interval=1
|
||||||
label=
|
#label=
|
||||||
# DATEFMT=+%H:%M.%a-%m-%d
|
# DATEFMT=+%H:%M.%a-%m-%d
|
||||||
# DATEFMT=+%H:%M
|
# DATEFMT=+%H:%M
|
||||||
#DATEFMT=+%H:%M
|
#DATEFMT=+%H:%M
|
||||||
|
|||||||
@@ -30,17 +30,12 @@ color=#cbe4ff
|
|||||||
# TICKER=ARBUSD
|
# TICKER=ARBUSD
|
||||||
# interval=30
|
# interval=30
|
||||||
|
|
||||||
# [ticker]
|
#[dexscreener]
|
||||||
# label=ETH
|
#label=HERO
|
||||||
# TICKER=ETH-USD
|
##CHAIN=solana
|
||||||
# interval=30
|
##PAIR=B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
|
||||||
|
#command=/home/kevin/.config/i3blocks/scripts/dexscreener abstract 0x3771b51b5a705338fa19702f249afcaa94b0cd8c
|
||||||
[dexscreener]
|
#interval=5
|
||||||
label=HERO
|
|
||||||
#CHAIN=solana
|
|
||||||
#PAIR=B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
|
|
||||||
command=/home/kevin/.config/i3blocks/scripts/dexscreener abstract 0x3771b51b5a705338fa19702f249afcaa94b0cd8c
|
|
||||||
interval=5
|
|
||||||
|
|
||||||
#[kraken]
|
#[kraken]
|
||||||
#label=BTC
|
#label=BTC
|
||||||
@@ -49,11 +44,11 @@ interval=5
|
|||||||
#command=/home/kevin/.config/i3blocks/scripts/kraken BTCUSDC
|
#command=/home/kevin/.config/i3blocks/scripts/kraken BTCUSDC
|
||||||
#interval=30
|
#interval=30
|
||||||
|
|
||||||
#[kraken]
|
[kraken]
|
||||||
#label=ETH
|
label=ETH
|
||||||
##TICKER=ETHUSDC
|
#TICKER=ETHUSDC
|
||||||
#command=/home/kevin/.config/i3blocks/scripts/kraken ETHUSDC
|
command=/home/kevin/.config/i3blocks/scripts/kraken ETHUSDC
|
||||||
#interval=30
|
interval=30
|
||||||
|
|
||||||
## [ticker]
|
## [ticker]
|
||||||
## label=btc
|
## label=btc
|
||||||
@@ -71,12 +66,12 @@ interval=5
|
|||||||
# TICKER=SEIUSD
|
# TICKER=SEIUSD
|
||||||
# interval=30
|
# interval=30
|
||||||
|
|
||||||
[dexscreener]
|
#[dexscreener]
|
||||||
label=PIXL
|
#label=PIXL
|
||||||
#CHAIN=ethereum
|
##CHAIN=ethereum
|
||||||
#PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
|
##PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
|
||||||
command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
|
#command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
|
||||||
interval=30
|
#interval=30
|
||||||
|
|
||||||
#[dexscreener]
|
#[dexscreener]
|
||||||
#label=PENGU
|
#label=PENGU
|
||||||
@@ -178,7 +173,7 @@ interval=5
|
|||||||
|
|
||||||
[calendar]
|
[calendar]
|
||||||
interval=1
|
interval=1
|
||||||
label=
|
#label=
|
||||||
# DATEFMT=+%H:%M
|
# DATEFMT=+%H:%M
|
||||||
# DATEFMT=+%H:%M.%a-%m-%d
|
# DATEFMT=+%H:%M.%a-%m-%d
|
||||||
# SHORTFMT=+%H:%M:%S
|
# SHORTFMT=+%H:%M:%S
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
WIDTH=${WIDTH:-200}
|
WIDTH=${WIDTH:-200}
|
||||||
HEIGHT=${HEIGHT:-200}
|
HEIGHT=${HEIGHT:-200}
|
||||||
#DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"}
|
#DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"}
|
||||||
DATEFMT=${DATEFMT:-"+ %a %-m/%d %H:%M"}
|
#DATEFMT=${DATEFMT:-"+ %a %-m/%d %H:%M"}
|
||||||
SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
|
#SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
|
||||||
|
DATEFMT=${DATEFMT:-"+%H:%M"}
|
||||||
|
SHORTFMT=${SHORTFMT:-"+%H:%M"}
|
||||||
|
|
||||||
OPTIND=1
|
OPTIND=1
|
||||||
while getopts ":f:W:H:" opt; do
|
while getopts ":f:W:H:" opt; do
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. "/home/kevin/.cache/wal/colors.sh"
|
#. "/home/kevin/.cache/wal/colors.sh"
|
||||||
printf "$(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7"
|
#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"
|
# echo "<span foreground=\"%s\">$(date '+%H:%M.%a-%m-%d')%s</span>" "$color2"
|
||||||
# printf "%s" "$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)
|
||||||
|
|||||||
@@ -18,3 +18,12 @@ font_size 12
|
|||||||
map ctrl+alt+up change_font_size all +1.0
|
map ctrl+alt+up change_font_size all +1.0
|
||||||
map ctrl+alt+down change_font_size all -1.0
|
map ctrl+alt+down change_font_size all -1.0
|
||||||
font_family Hack Nerd Font Mono
|
font_family Hack Nerd Font Mono
|
||||||
|
bold_font Hack Nerd Font Mono Bold
|
||||||
|
|
||||||
|
# Map PUA ranges to the Symbols Nerd Font (or your main Nerd Font)
|
||||||
|
# The Firefox icon (U+E2E9) is often in the Pomicons or Devicons range
|
||||||
|
symbol_map U+E000-U+EFFF Hack Nerd Font Mono
|
||||||
|
symbol_map U+F000-U+FFFF Hack Nerd Font Mono
|
||||||
|
symbol_map U+23FB-U+23FE,U+2B58,U+2EFE-U+3000 Hack Nerd Font Mono
|
||||||
|
# You can also use the symbols-only font if you have it installed:
|
||||||
|
# symbol_map U+E000-U+F8FF Symbols Nerd Font Mono
|
||||||
|
|||||||
319
tree.txt
Normal file
319
tree.txt
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user