Browse Source

README

vscode
Kevin Mok 1 week ago
parent
commit
7cfffc329b
Signed by: Kevin-Mok GPG Key ID: FB0DA56BEB5D98F3
  1. 381
      README.md
  2. 4
      aliases/key_aliases.tmpl
  3. 1
      aliases/key_dirs.tmpl
  4. 2
      dot_Xmodmap
  5. 4
      dot_config/Cursor/User/settings.json
  6. 20
      dot_config/i3/config.tmpl
  7. 1
      dot_config/i3blocks/i3blocks-display.conf
  8. 42
      dot_config/i3blocks/i3blocks-secondary.conf.tmpl
  9. 12
      dot_config/i3blocks/i3blocks.conf.tmpl
  10. 6
      dot_config/i3blocks/scripts/executable_calendar
  11. 3
      dot_config/i3blocks/scripts/executable_time
  12. 319
      tree.txt

381
README.md

@ -1,33 +1,348 @@
<!--- Intro {{{ -->
# Kevin's Linux Setup
![desktop-screenshot](https://i.imgur.com/Fpsr8Fc.png)
*Screenshot from my dual-monitor setup.*
This repository contains the dotfiles to increase my workflow efficiency. They
are also for my Linux
[rice](https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/cukxwog/).
<!--- }}} 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` &rarr; `~/.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.

4
aliases/key_aliases.tmpl

@ -721,6 +721,7 @@ gds "git diff --stat"
gdsc "git diff --stat --cached -w"
gdt "git difftool -w --tool=vimdiff"
gdtc "git difftool -w --cached --tool=vimdiff"
gdx "git diff -w | xclip -selection clipboard"
gl "git log -5"
gl1 "git log --oneline"
gl1x "git log --oneline -1 | xclip -selection clipboard"
@ -1088,6 +1089,9 @@ vp "vercel --prod"
cr "~/Applications/cursor.AppImage --no-sandbox &"
h ./start.sh
v ./start.sh voice
# ]]] work #
# red-hat [[[ #

1
aliases/key_dirs.tmpl

@ -302,6 +302,7 @@ rbc ~/coding/rbc-aml/src
cibc ~/school/job-hunt/interview-questions/cibc
psa ~/coding/psa-arb
hn ~/coding/hands-free-tools
# ]]] sch #

2
dot_Xmodmap

@ -1,6 +1,6 @@
! clear Lock
! keycode 9 = Caps_Lock
keycode 9 = Caps_Lock
! keycode 66 = Escape
! keycode 22 = BackSpace

4
dot_config/Cursor/User/settings.json

@ -1,3 +1,7 @@
// Cursor model tiers I like:
// - Low: gpt-5.1-codex-mini-low
// - High: gpt-5.1-codex-mini-high
{
"keyboard.dispatch": "keyCode",
"editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace",

20
dot_config/i3/config.tmpl

@ -42,6 +42,8 @@ set $browser "google-chrome"
# set $browser "chromium"
set $browser_secondary "firefox"
set $scripts_path "/home/kevin/scripts"
# Path to the hands-free voice tooling repo (contains voice.sh).
set $hands_free_tools "$HOME/coding/hands-free-tools"
set $sch_dir "$HOME/Documents/School"
# app shortcuts [[[ #
@ -594,7 +596,8 @@ bar {
{{ else }}
# font pango:$sb_font 17
#font pango:$sb_font 16:pixelsize=5
font pango:$sb_font 16
#font pango:$sb_font 16
font pango:$sb_font 30
{{ end }}
colors {
# 0 (transparent) -> 255 (opaque) in hex
@ -626,8 +629,8 @@ bar {
font pango:$sb_font 18
{{ else }}
# font pango:$sb_font 21
#font pango:$sb_font 20
font pango:$sb_font 18
font pango:$sb_font 30
#font pango:$sb_font 18
{{ end }}
# output $main
i3bar_command i3bar -t
@ -684,6 +687,17 @@ bindsym XF86AudioNext exec "dbus-send --print-reply --dest=org.mpris.MediaPlayer
# ]]] fn key #
# voice dictation [[[ #
# One-tap toggle for voice dictation using Scroll Lock.
bindsym Scroll_Lock exec "$hands_free_tools/voice.sh toggle"
# (Optional panic kill, only if you still want it)
# bindsym Control+Scroll_Lock exec "$hands_free_tools/voice.sh quit"
# (Optional Vim-safe stop, only if stop-vim exists and you actually use it)
# bindsym $mod+Shift+v exec "$hands_free_tools/voice.sh stop-vim"
# ]]] media keys #
# vim: fdm=marker ft=i3.go-template

1
dot_config/i3blocks/i3blocks-display.conf

@ -35,6 +35,7 @@ markup=pango
[time]
label=
# command=date '+%H:%M.%a-%m-%d'
command=date '+%H:%M.%a-%m-%d'
interval=1
color=#acc0cd

42
dot_config/i3blocks/i3blocks-secondary.conf.tmpl

@ -19,34 +19,34 @@ color=#cbe4ff
# sys.monitoring [[[ #
[temperature]
label=
interval=5
#[temperature]
#label=
#interval=5
[cpu_usage]
label=
interval=5
#[cpu_usage]
#label=
#interval=5
[memory]
label=
# color=#3da061
interval=2
#[memory]
#label=
## color=#3da061
#interval=2
# ]]] sys.monitoring #
# volume/spotify [[[ #
[spotify]
#command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
command=/home/kevin/.config/i3blocks/scripts/spotify
# label=
label=
# # label=🎧
# # green
# # color=#198c19
# # aqua
# # color=#2d7272
interval=5
#[spotify]
##command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
#command=/home/kevin/.config/i3blocks/scripts/spotify
## label=
#label=
## # label=🎧
## # green
## # color=#198c19
## # aqua
## # color=#2d7272
#interval=5
# [spotify]
# label=

12
dot_config/i3blocks/i3blocks.conf.tmpl

@ -66,12 +66,12 @@ interval=30
# TICKER=SEIUSD
# interval=30
[dexscreener]
label=PIXL
#CHAIN=ethereum
#PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
interval=30
#[dexscreener]
#label=PIXL
##CHAIN=ethereum
##PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
#command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
#interval=30
#[dexscreener]
#label=PENGU

6
dot_config/i3blocks/scripts/executable_calendar

@ -3,8 +3,10 @@
WIDTH=${WIDTH:-200}
HEIGHT=${HEIGHT:-200}
#DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"}
DATEFMT=${DATEFMT:-"+ %a %-m/%d %H:%M"}
SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
#DATEFMT=${DATEFMT:-"+ %a %-m/%d %H:%M"}
#SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
DATEFMT=${DATEFMT:-"+%H:%M"}
SHORTFMT=${SHORTFMT:-"+%H:%M"}
OPTIND=1
while getopts ":f:W:H:" opt; do

3
dot_config/i3blocks/scripts/executable_time

@ -9,7 +9,8 @@
. "/home/kevin/.cache/wal/colors.sh"
# Define the date format matching the output in your screenshot (e.g., Sat 12/06 12:46)
DATE_FORMAT='+%a %m/%d %H:%M'
#DATE_FORMAT='+%a %m/%d %H:%M'
DATE_FORMAT='%H:%M'
# Use Pango markup to wrap the entire string, applying the color,
# and explicitly defining the icon () and the date output.

319
tree.txt

@ -0,0 +1,319 @@
.
├── aliases
│   ├── key_aliases.tmpl
│   ├── key_dirs.tmpl
│   └── key_files.tmpl
├── dot_bashrc
├── dot_config
│   ├── chezmoi
│   │   └── chezmoi-template.toml.tmpl
│   ├── Code
│   │   └── User
│   │   ├── keybindings.json
│   │   └── settings.json
│   ├── Cursor
│   │   └── User
│   │   ├── keybindings.json
│   │   └── settings.json
│   ├── dunst
│   │   └── dunstrc
│   ├── fish
│   │   ├── completions
│   │   │   ├── buku.fish
│   │   │   ├── kogito.fish
│   │   │   ├── kubectl.fish
│   │   │   ├── minikube.fish
│   │   │   ├── pass.fish
│   │   │   ├── timetrace.fish
│   │   │   └── watson.fish
│   │   ├── config.fish.tmpl
│   │   ├── functions
│   │   │   ├── 369
│   │   │   │   ├── a2
│   │   │   │   │   ├── carsim.fish
│   │   │   │   │   └── gdb-a2.fish
│   │   │   │   ├── a3
│   │   │   │   │   ├── gdb-a3-break.fish
│   │   │   │   │   └── run-a3.fish
│   │   │   │   ├── a4
│   │   │   │   │   ├── block-to-line.fish
│   │   │   │   │   ├── executable_revert-image.fish
│   │   │   │   │   ├── hex.fish
│   │   │   │   │   ├── mount-image.fish
│   │   │   │   │   └── run-a4.fish
│   │   │   │   ├── grep-c.fish
│   │   │   │   ├── grep-headers.fish
│   │   │   │   ├── rgc.fish
│   │   │   │   └── rg-headers.fish
│   │   │   ├── aws-attach-volume.fish
│   │   │   ├── backup-phone-pics.fish
│   │   │   ├── bc-qalc.fish
│   │   │   ├── benq-brightness.fish
│   │   │   ├── cad-to-us.fish
│   │   │   ├── cd.fish.tmpl
│   │   │   ├── certbot-ssl.fish
│   │   │   ├── clip.fish
│   │   │   ├── conda_activate.fish
│   │   │   ├── copy.fish
│   │   │   ├── create-fish-function.fish
│   │   │   ├── define.fish
│   │   │   ├── discord-burner.fish
│   │   │   ├── dump-rarity-check.fish
│   │   │   ├── enable-site.fish
│   │   │   ├── evince-silent.fish
│   │   │   ├── export-pkgs.fish
│   │   │   ├── find-bg.fish
│   │   │   ├── find-vim-filetype.fish
│   │   │   ├── fish_mode_prompt.fish
│   │   │   ├── fn-progress.fish
│   │   │   ├── fzf-cd.fish
│   │   │   ├── fzf-ranger.fish
│   │   │   ├── fzf-vim.fish
│   │   │   ├── gen-pass.fish
│   │   │   ├── git
│   │   │   │   ├── git-amend-push.fish
│   │   │   │   ├── git-clone-gitea.fish
│   │   │   │   ├── git-delete-branch.fish
│   │   │   │   ├── git-diff-files.fish
│   │   │   │   ├── git-mult-remotes.fish
│   │   │   │   ├── git-push-diff-name.fish
│   │   │   │   ├── git-push-initial.fish
│   │   │   │   ├── git-push-multiple.fish
│   │   │   │   ├── git-push-new-gitea.fish
│   │   │   │   ├── git-replace-origin.fish
│   │   │   │   └── git-replace-origin-gitea.fish
│   │   │   ├── git-log-short.fish
│   │   │   ├── git-submodule-branch.fish
│   │   │   ├── grep-aliases.fish
│   │   │   ├── grep-pdf-file.fish
│   │   │   ├── grep-pdf.fish
│   │   │   ├── ipad
│   │   │   │   ├── clip-ipad.fish
│   │   │   │   ├── mpv-ipad.fish
│   │   │   │   ├── mpv-ipad-mov.fish
│   │   │   │   ├── rm-ipad.fish
│   │   │   │   ├── rsync-ipad-vid.fish
│   │   │   │   ├── rsync-ipad-vid-mov.fish
│   │   │   │   └── unmount-ipad.fish
│   │   │   ├── java-compile-run.fish
│   │   │   ├── java-compile-test.fish
│   │   │   ├── libreoffice-silent.fish
│   │   │   ├── man-vim.fish
│   │   │   ├── maven-test-method.fish
│   │   │   ├── mkdir-cd.fish
│   │   │   ├── mpv-sub.fish
│   │   │   ├── mute-video.fish
│   │   │   ├── pastebin.fish
│   │   │   ├── qalc-history.fish
│   │   │   ├── qalc-update-amount.fish
│   │   │   ├── qalc-update.fish
│   │   │   ├── readlink-cp.fish
│   │   │   ├── redshift-set.fish
│   │   │   ├── refresh-config.fish
│   │   │   ├── refresh-config-task.fish
│   │   │   ├── reminder.fish
│   │   │   ├── scan-history.fish
│   │   │   ├── scp-cdf.fish
│   │   │   ├── scp-vid.fish
│   │   │   ├── server-pages.fish
│   │   │   ├── shred-rm.fish
│   │   │   ├── smol
│   │   │   │   ├── smol-add.fish
│   │   │   │   ├── smol-delete.fish
│   │   │   │   ├── smol-replace.fish
│   │   │   │   └── smol-slist.fish
│   │   │   ├── ssh-bandit.fish
│   │   │   ├── sudo.fish
│   │   │   ├── sxiv-silent.fish
│   │   │   ├── sync-alt-cal.fish
│   │   │   ├── systemctl-restart.fish
│   │   │   ├── task
│   │   │   │   ├── task-anno.fish
│   │   │   │   ├── task-context.fish
│   │   │   │   ├── task-delete.fish
│   │   │   │   ├── task-done.fish
│   │   │   │   ├── task-due.fish
│   │   │   │   ├── task-due-rm.fish
│   │   │   │   ├── task-edit.fish
│   │   │   │   ├── task-mod-pri.fish
│   │   │   │   ├── task-mod-proj.fish
│   │   │   │   ├── task-mod-tag.fish
│   │   │   │   ├── task-next.fish
│   │   │   │   ├── task-next-rm.fish
│   │   │   │   ├── task-notes.fish
│   │   │   │   ├── task-start.fish
│   │   │   │   └── task-wait.fish
│   │   │   ├── taskopen-new.fish
│   │   │   ├── test_output.txt
│   │   │   ├── thesaurus.fish
│   │   │   ├── timetrace-list.fish
│   │   │   ├── tmux-attach.fish
│   │   │   ├── unix-timestamp.fish
│   │   │   ├── unzip-rm.fish
│   │   │   ├── us-to-cad.fish
│   │   │   ├── video-to-gif.fish
│   │   │   ├── vim-snippet.fish
│   │   │   ├── vpn-red-hat.fish
│   │   │   ├── watson-add-fortnite.fish
│   │   │   ├── watson-add-game.fish
│   │   │   ├── wc-pdf.fish
│   │   │   ├── wget-all.fish
│   │   │   └── wget-name.fish
│   │   └── spotifyvis.bak\012abbr sv serve
│   ├── i3
│   │   └── config.tmpl
│   ├── i3blocks
│   │   ├── i3blocks.conf.tmpl
│   │   ├── i3blocks-display.conf
│   │   ├── i3blocks-secondary.conf.tmpl
│   │   └── scripts
│   │   ├── executable_backlight
│   │   ├── executable_battery
│   │   ├── executable_calendar
│   │   ├── executable_cpu_usage
│   │   ├── executable_dexscreener
│   │   ├── executable_dexscreener-fdv
│   │   ├── executable_dexscreener-mc
│   │   ├── executable_fn_level
│   │   ├── executable_kraken
│   │   ├── executable_load_average
│   │   ├── executable_memory
│   │   ├── executable_name
│   │   ├── executable_spotify
│   │   ├── executable_temperature
│   │   ├── executable_ticker
│   │   ├── executable_time
│   │   ├── executable_volume
│   │   └── executable_wifi
│   ├── kitty
│   │   └── kitty.conf
│   ├── mgba
│   │   ├── config-tmpl.ini
│   │   ├── qt-tmpl.ini
│   │   └── update-mgba-config.fish
│   ├── mimeapps-ffox.list
│   ├── mimeapps.list
│   ├── mpv
│   │   ├── input.conf
│   │   └── mpv.conf
│   ├── msmtp
│   │   └── config
│   ├── neofetch
│   │   └── config.conf
│   ├── neomutt
│   │   └── neomuttrc
│   ├── nvim
│   │   └── init.vim
│   ├── picom
│   │   └── picom.conf
│   ├── ranger
│   │   ├── commands.py
│   │   ├── executable_scope.sh
│   │   ├── plugins
│   │   │   ├── executable_devicons_linemode.py
│   │   │   ├── executable_devicons.py
│   │   │   └── __pycache__
│   │   │   ├── devicons.cpython-37.opt-1.pyc
│   │   │   ├── devicons_linemode.cpython-37.opt-1.pyc
│   │   │   └── __init__.cpython-37.opt-1.pyc
│   │   ├── rc.conf.tmpl
│   │   └── rifle.conf
│   ├── st
│   │   └── config.def.h.tmpl
│   └── zathura
│   └── zathurarc
├── dot_gdbinit
├── dot_gitconfig.tmpl
├── dot_imwheelrc
├── dot_inputrc
├── dot_minikube
│   └── config
│   └── config.json
├── dot_qalcrc
├── dot_ssh
│   ├── authorized_keys-all
│   └── known_hosts-all
├── dot_taskopenrc
├── dot_taskrc
├── dot_tmux.conf
├── dot_vimrc.tmpl
├── dot_xinitrc.tmpl
├── dot_Xmodmap
├── dot_Xmodmap-laptop
├── dot_Xmodmap-laptop-old
├── dot_Xmodmap-old
├── dot_Xmodmap-ubuntu
├── dot_Xmodmap-vm
├── dot_Xresources.tmpl
├── dot_zshrc
├── private_dot_calcurse
│   ├── caldav
│   │   └── config
│   ├── conf
│   └── keys
├── private_dot_gnupg
│   ├── gpg-agent.conf
│   ├── gpg-agent-template.conf
│   └── gpg.conf
├── README.md
├── scripts
│   ├── colors
│   │   ├── executable_arch
│   │   ├── executable_blocks
│   │   ├── executable_panes
│   │   ├── executable_rupees
│   │   ├── executable_space-invaders
│   │   └── executable_unowns
│   ├── executable_backup-pc
│   ├── executable_bg-chooser
│   ├── executable_burn-iso.sh
│   ├── executable_change-sink
│   ├── executable_currency
│   ├── executable_dexscreener
│   ├── executable_dexscreener-fdv
│   ├── executable_dexscreener-mc
│   ├── executable_dmenu-history
│   ├── executable_dmenu-twitch
│   ├── executable_dual-monitor-slideshow
│   ├── executable_glhf-metadata
│   ├── executable_install-arch-pkgs.sh
│   ├── executable_kraken
│   ├── executable_passmenu
│   ├── executable_qr-gif.sh
│   ├── executable_rick-roll
│   ├── executable_shuffler
│   ├── executable_spotify-clean
│   ├── executable_spotify-now
│   ├── executable_sync-shortcuts
│   ├── executable_tex-clean
│   ├── executable_ticker
│   ├── executable_twem
│   ├── executable_twitchy-game
│   ├── executable_ubuntu-start
│   ├── executable_vim-man
│   └── executable_xmodmap-custom.tmpl
├── tree.txt
└── txt
├── arch-2-aur.txt
├── arch-2-pkgs.txt
├── exclude-dirs-backup-full.txt
├── exclude-dirs-backup.txt.tmpl
├── gtk-themes.txt
├── nzxt-all.txt
├── nzxt-aur.txt
├── nzxt-new.txt
├── nzxt-pkgs.txt
├── terminal-art.txt
├── termux-pkgs.txt
├── tex-build-files.txt
├── todo.md
├── ubuntu
│   ├── apt-packages.txt
│   ├── npm-packages.txt
│   ├── pip-packages.txt
│   └── snap-packages.txt
├── usbs.md
├── x1-carbon-aur.txt
└── x1-carbon-pkgs.txt
46 directories, 271 files
Loading…
Cancel
Save