1 Commits

Author SHA1 Message Date
15fad27d78 Initial Red Hat laptop config commit 2020-10-27 16:50:13 -04:00
151 changed files with 1137 additions and 12474 deletions

View File

@@ -13,6 +13,6 @@ txt/
.xinitrc
.Xresources
{{ end }}
{{ if not (eq .chezmoi.hostname "x1-carbon") }}
{{ if not (eq .chezmoi.fullHostname "x1-carbon") }}
.Xmodmap-laptop
{{ end }}

369
README.md
View File

@@ -1,348 +1,33 @@
# KM's Linux Desktop Config (chezmoi dotfiles)
<!--- Intro {{{ -->
# Kevin's Linux Setup
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.
![desktop-screenshot](https://i.imgur.com/Fpsr8Fc.png)
*Screenshot from my dual-monitor setup.*
## 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)
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 -->
## 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.
<!--- 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 -->
## 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
- `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`.
## Setup
I use [chezmoi](https://github.com/twpayne/chezmoi) to manage varying
configs for different machines with a single branch.
## 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 rangers
`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 desktops
automation.
<!--- }}} Setup -->

File diff suppressed because it is too large Load Diff

View File

@@ -4,41 +4,27 @@
bg ~/Pictures/Backgrounds
cf ~/linux-config/dot_config
cfg ~/.config
cfgf ~/.config/fish
ch ~/Documents/chat
dc ~/Documents/chat/discord
da /mnt/ipad/DCIM/106APPLE
cfd ~/.config
cff ~/.config/fish
dl ~/Downloads
# dw ~/dwm
D ~/Documents
# k ~/
kh ~/
lc ~/linux-config
lf /mnt/linux-files
lf2 /mnt/linux-files-2
lfp /mnt/linux-files/Pictures
lfp2 /mnt/linux-files-2/Pictures
lfv /mnt/linux-files/Videos
lfv2 /mnt/linux-files-2/Videos
lfv2s /mnt/linux-files-2/Videos/shows
lfy /mnt/linux-files/Videos/yt
a2 /mnt/linux-files-2/arch-2/full/home/kevin
lf3 /mnt/linux-files-3
medi /media/kevin
Lfp /mnt/linux-files/Pictures
Lfv /mnt/linux-files/Videos
me /run/media/kevin
o /
pd ~/.password-store
pfp /mnt/linux-files-2/arch-2/full/home/kevin/Pictures/profile-pics
pfpp ~/Pictures/profile-pics/profiles-by-moto
P ~/Pictures
ssus ~/Pictures/screenshots/desktop/unsorted
std ~/st
# tm /tmp
tm ~/tmp
V ~/Videos
{{ if and (eq .chezmoi.username "root") (eq .linux_os "debian") }}
ng /etc/nginx/sites-available
# sv /etc/systemd/system
sv /etc/systemd/system
{{ end }}
# ]]] sys #
@@ -46,81 +32,57 @@ ng /etc/nginx/sites-available
# cdn [[[ #
ad ~/.task
bm ~/Documents/bookmarks
ccd ~/.calcurse
cms ~/Documents/codm/site
cn ~/coding
# dn ~/Downloads
drk ~/coding/dark-sky
ffx ~/linux-config/dot_config/fish/functions
hbd ~/.habitctl
ib ~/linux-config/dot_config/i3blocks
mbd ~/coding/minikube
pig ~/coding/pigallery
mbk ~/coding/minikube-kompose
ms ~/coding/mf-site
msr ~/coding/mf-site/static/pdf
pr ~/coding/pull-requests
ib ~/linux-config/dot_config/i3blocks/scripts
ra ~/linux-config/dot_config/ranger
rd ~/Documents/red-discord-bot
rda ~/Documents/red-discord-bot/repos/gobcog-kevin/adventure
rdt ~/coding/discord-bots
rdp ~/coding/discord-bots/pinky/cogs/CogManager/cogs/adventure
sr ~/linux-config/scripts
vsnps ~/.vim/plugged/vim-snippets/UltiSnips
snp ~/.vim/plugged/vim-snippets/UltiSnips
sw ~/.local/share/nvim/swap/
tfd ~/coding/terraform
ttd ~/.timetrace
ttdr ~/.timetrace/records
tx ~/linux-config/txt
wd ~/.config/watson
{{ if eq .chezmoi.fullHostname "nzxt" }}
b1 ~/coding/mf-site/themes/base16
2d ~/coding/godot-demos/2d-plat
ada ~/coding/ada-mario
# ft ~/coding/face-tracker
#hv ~/Documents/hevin
#hv /mnt/linux-files-2/Pictures/hevin
hv ~/Pictures/hevin
hvs ~/Documents/hevin/shopping
ft ~/coding/face-tracker
j ~/Documents/journal
jt ~/Documents/journal/todo/25
# lh ~/Documents/listening-history
lh ~/Documents/listening-history
mmd ~/coding/move-mouse-with-head
mh ~/coding/mf-site/layouts
ms ~/coding/mf-site
msl ~/coding/mf-site/content/letter
ml ~/coding/mf-site/content/letter
# mp ~/coding/mf-site/static/pdf
pk ~/Documents/journal/packing-lists
pn ~/coding/red-discord-bot
# rs ~/coding/rarity-surf/backend/rarity_check/project
rsf ~/coding/rarity-surf/frontend
rsc ~/coding/rarity-surf/backend/rarity_check/project/management/commands
# rsm ~/coding/rarity-surf/backend/rarity_check/project/migrations
sl ~/Documents/sleep
sv ~/coding/spotify-lib-vis/src
svg ~/coding/spotify-lib-vis/src/graphs/static/graphs/scripts
swd ~/coding/swex
# tb ~/coding/trapbot/src/trapbot
tb ~/coding/twitter-bot
tb ~/coding/trapbot/src/trapbot
ur ~/coding/uranium-godot
wo ~/Documents/workout-logs/25/4
wo ~/Documents/workout-logs
# gaming [[[ #
te ~/Pictures/twitch-emotes
# mt ~/.minetest
# mta ~/.minetest/clientmods/custom_aliases
# mtc ~/.minetest/games/mineclone2/mods
# mtm ~/.minetest/minetest
mt ~/.minetest
mta ~/.minetest/clientmods/custom_aliases
mtc ~/.minetest/games/mineclone2/mods
mtm ~/.minetest/minetest
# pk ~/Downloads/gba/mgba/pokemon/emerald/1
# ]]] gaming #
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ end }}
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
adb ~/coding/ada-mario/build
adm ~/coding/ada-mario/media
adp ~/coding/ada-mario-presentation
@@ -128,200 +90,37 @@ ads ~/coding/ada-mario/scripts
adP ~/Pictures/ada-mario
{{ end }}
# ]]] cdn #
# gaming [[[ #
lfo /mnt/linux-files/Videos/obs
lfo2 /mnt/linux-files-2/Videos/obs
pxv /mnt/linux-files/Videos/pixel
tk ~/Documents/totk
tkp ~/Pictures/totk
# codm [[[ #
# cm ~/Documents/codm
cm ~/Documents/codm
cs ~/Documents/codm/site
csi ~/Documents/codm/site/static/images
Css ~/Pictures/screenshots/mobile/codm
# ]]] codm #
# fortnite [[[ #
#fn ~/Documents/fortnite
fn ~/Documents/fortnite
fnc /mnt/linux-files/Videos/yt/fortnite/clips/4
fni /mnt/ipad/DCIM/100APPLE
#fnm ~/Documents/fortnite/pics/maps
fnm ~/Documents/fortnite/pics/maps
fnn ~/Documents/fortnite/notes
fnp ~/Documents/fortnite/pics
fns ~/Videos/fortnite/stats
# fnsp ~/Documents/fortnite/stats/pics
fns ~/Documents/fortnite/stats/api
fnv /mnt/linux-files/Videos/personal-fortnite-games/review
fnv2 /mnt/linux-files-2/Videos/ipad/fortnite/name
#fn ~/Videos/fortnite
fn /mnt/linux-files-3/fortnite
tcd Videos/yt/fortnite/clips/twitch-clip-downloader
# ]]] fortnite #
pgv /mnt/linux-files/Videos/pokemon-go
tr ~/.local/share/Terraria
dc ~/Documents/chat/discord
twt ~/Documents/twitter
sdv ~/Documents/stardew-valley-aha
dap /mnt/linux-files-2/Pictures/ipad
dau /mnt/linux-files-2/Videos/ipad/unsorted
sdvm ~/.local/share/Steam/steamapps/common/Stardew\ Valley/Mods/
sdvss ~/.local/share/StardewValley/Screenshots/
sdvsv ~/.config/StardewValley/Saves/Hevintales_355084144/
sdvsvg ~/Documents/stardew-valley-sdv-saves/hevintales
snp ~/Documents/marvel-snap
snpv /mnt/linux-files-2/Videos/ipad/marvel-snap
dal /mnt/linux-files-3/ipad/106APPLE
tcd /mnt/linux-files/Videos/yt/fortnite/clips/twitch-clip-downloader
# ]]] gaming #
# pey [[[ #
atx ~/Documents/ataraxy-venture
em ~/Documents/emails
li ~/Documents/linkedin
lim ~/Documents/linkedin/msgs
rh ~/Documents/red-hat
rhc ~/Documents/red-hat/chat
rhe ~/Documents/red-hat/emails
rhl ~/Documents/red-hat/learned
sa ~/coding/rhcsa-notes
wcl ~/.weechat/logs
ep ~/Documents/expenses
# kogito [[[ #
kg ~/coding/kogito
kap ~/coding/kogito/kogito-apps
kdo ~/coding/kogito/kie-docs
kdoa ~/coding/kogito/kie-docs/doc-content/kogito-docs/src/main/asciidoc
kex ~/coding/kogito/kogito-examples
keh ~/coding/kogito/kogito-examples/process-scripts-quarkus/target
kep ~/coding/kogito/kogito-examples/process-postgresql-persistence-quarkus
kfl ~/coding/kogito/kogito-apps
kh ~/coding/kogito/kogito-helm-charts
kho ~/coding/kogito/kogito-helm-chart-old
ki ~/coding/kogito/kogito-images
kj ~/coding/kogito/jenkins-test
kjb ~/coding/kogito/jenkins-test-bot
kjf ~/coding/kogito/jenkins-test/full
kl ~/coding/kogito/shared-libraries
# operator [[[ #
ko ~/go/src/github.com/kiegroup/kogito-operator
kor ~/go/src/github.com/kiegroup/rhpam-kogito-operator
# koc ~/go/src/github.com/kiegroup/kogito-operator/cmd/kogito/command
koc ~/coding/kogito/kogito-operator
kod ~/go/src/github.com/kiegroup/kogito-operator/cmd/kogito/command/deploy
koe ~/go/src/github.com/kiegroup/kogito-operator/examples
kore ~/go/src/github.com/kiegroup/rhpam-kogito-operator/example
kof ~/go/src/github.com/kiegroup/kogito-operator/cmd/kogito/command/flag
# kor ~/go/src/github.com/kiegroup/kogito-operator/pkg/controller/kogitoruntime
kou ~/go/src/github.com/kiegroup/kogito-operator/cmd/kogito/command/util
ko2 ~/coding/kogito/kogito-operator-2
# ]]] operator #
kob ~/coding/kogito-operator-onboarding
kot ~/coding/kogito/optaplanner
kp ~/coding/kogito/kogito-pipelines
kp2 ~/coding/kogito/kogito-pipelines-2
kpr ~/coding/pull-requests/red-hat
kprh ~/coding/pull-requests/red-hat/helm
kr ~/coding/kogito/kogito-runtimes
krj ~/coding/kogito/kogito-runtimes/jenkins-spock-tests
ky ~/coding/kogito/kogito-kmok-yamls
gos ~/go/src
# ]]] kogito #
vb ~/coding/VileBot/vilebot
vbs ~/coding/VileBot/vilebot/src/main/java/com/oldterns/vilebot
# dv ~/coding/devops-sre-knowledge
nxo ~/coding/kogito/nexus-operator
# ]]] pey #
# nft [[[ #
cvt ~/Pictures/profile-pics/conviction
# mb ~/coding/mint-bot
pdg ~/Pictures/profile-pics/pudgy-penguins/test
pfps ~/Pictures/profile-pics/sappy-seals
pfpk ~/Pictures/profile-pics/gm-cafe/keek
pfpr ~/Pictures/profile-pics/reddit-avatars
nft ~/Documents/nft
# ]]] nft #
# sch [[[ #
sc ~/school
lt ~/school/latex-notes
ltc ~/coding/leetcode
jf ~/school/job-fair
jh ~/school/job-hunt
jhi ~/school/job-hunt/interview-questions
jhig ~/school/job-hunt/interview-questions/grafana
el ~/coding/eliza
an ~/coding/ai-nft-proj/
anb ~/coding/ai-nft-proj/backend
anf ~/coding/ai-nft-proj/frontend
tt ~/coding/try-eliza-twitter-client
me ~/coding/me-sniper/backend
mef ~/coding/me-sniper/frontend
mefn ~/coding/me-sniper/frontend-next-js
med ~/coding/me-sniper/discord-bot
me2 ~/coding/me-sniper/backend-copy
kb ~/coding/kanban-calendar
ac ~/coding/astral-challenge-txt
rbc ~/coding/rbc-aml/src
cibc ~/school/job-hunt/interview-questions/cibc
psa ~/coding/psa-arb
hn ~/coding/hands-free-tools
# ]]] sch #
# personal [[[ #
lw ~/Documents/lawrence
hih /mnt/linux-files-2/Videos/hot-in-herre
bb /mnt/linux-files-2/Pictures/bball
dh ~/Pictures/drake-hoodie
ets /mnt/linux-files-2/Videos/eras-taylor-swift-movie
mj /mnt/linux-files-2/Pictures/midjourney/results
mt /mnt/linux-files-2/Pictures/mutant-tees
sm /mnt/linux-files-2/Videos/sam-smith/named
wg /mnt/linux-files-2/Pictures/weed-grow-23
sdc /run/media/kevin/6339-3234
obs /mnt/linux-files-3/obs
br ~/Documents/fortnite/brainrot
# ]]] personal #
kg ~/coding/kogito
ke ~/coding/kogito/kogito-examples
keqs ~/coding/kogito/kogito-examples/process-scripts-quarkus
keqe ~/coding/kogito/kogito-examples/process-quarkus-example
# kg ~/coding/kogito/github-release-test
# ko ~/coding/kogito/kogito-cloud-operator
ko ~/go/src/github.com/kiegroup/kogito-cloud-operator
wcl ~/.weechat/logs

View File

@@ -3,16 +3,14 @@
# sys [[[ #
3 ~/linux-config/dot_config/i3/config.tmpl
3b ~/linux-config/dot_config/i3blocks/i3blocks.conf.tmpl
a ~/linux-config/aliases/key_aliases.tmpl
ak ~/linux-config/dot_ssh/authorized_keys-all
d ~/linux-config/aliases/key_dirs.tmpl
dw ~/dwm/config.def.h
f ~/linux-config/aliases/key_files.tmpl
fh ~/.local/share/fish/fish_history
hc ~/Documents/hevin/cleaning.md
n ~/linux-config/dot_vimrc.tmpl
pkg ~/linux-config/txt/pacman-pkgs/pacman-pkgs.txt
p ~/linux-config/txt/pacman-pkgs/pacman-pkgs.txt
r ~/linux-config/dot_config/ranger/rc.conf.tmpl
sr ~/linux-config/configs/ranger/shortcuts.conf
ss ~/.shortcuts
@@ -33,7 +31,6 @@ ng /etc/nginx/nginx.conf
# cdn [[[ #
ap ~/.task/pending.data
aw ~/Documents/journal/todo/24/aws.md
at ~/.task/to-add.md
bid ~/Documents/journal/todo/blog.md
cc ~/linux-config/private_dot_calcurse/conf
@@ -46,17 +43,15 @@ hh ~/.habitctl/habits
hlg ~/coding/spotify-lib-vis/src/api/management/commands/update-history.log
id ~/Documents/journal/todo/ideas.md
ig ./.gitignore
jt ~/Documents/journal/todo/25/8.md
k ~/linux-config/dot_config/kitty/kitty.conf
jn ~/Documents/journal/todo/2.md
jt ~/Documents/journal/todo/todo.md
lh ~/Documents/listening-history/polarbier.csv
mc ~/coding/mf-site/assets/sass/main.scss
mi ~/coding/mf-site/ideas.md
msr ~/coding/mf-site/content/resume/_index.md
ne ~/linux-config/configs/neofetch/config.conf
re README.md
rda ~/Documents/red-discord-bot/repos/gobcog-kevin/adventure/adventure.py
rdc ~/Documents/red-discord-bot/commands-freq.md
sl ~/Documents/sleep/sleep.md
td todo.md
tg ~/.config/watson/tags_cache
tt txt/todo.md
@@ -65,70 +60,38 @@ tp /tmp/
tw ~/linux-config/dot_taskrc
w ~/.config/watson/state.tmp
wh ~/Documents/journal/todo/work-habit.md
wt ~/.config/watson/state.tmp
# ]]] cdn #
# sch [[[ #
4d ~/school/494/design/acanet-voting-design.md
4dme ~/school/494/design/meetings/panos.md
4dmd ~/school/494/design/provotu/modify.md
pvc ~/coding/dao-voting/provotum-v2/contracts/contracts/FiniteField/Ballot.sos
# 309 [[[ #
0c ~/school/309-proj/sass/main.scss
0h ~/school/309-proj/public/js/helpers.js
0i ~/school/309-proj/public/index.html
0m ~/school/309-proj/public/js/main.js
0f ~/school/309-proj/public/js/food.js
0s ~/school/309-proj/server.js
0t ~/school/309-proj/public/js/stores.js
# ]]] 309 #
# 384
8a ~/school/384/a1/searchAgents.py
8s ~/school/384/a1/search.py
# ]]] sch #
# gaming [[[ #
bn ~/Documents/discord-burners/burners.md
cmr ~/Documents/codm/discord-recruitment.md
cra ~/Documents/red-discord-bot/repos/gobcog-kevin/adventure/data/default/attribs.json
crm ~/Documents/red-discord-bot/repos/gobcog-kevin/adventure/data/default/monsters.json
#fn ~/Documents/fortnite/notes/fortnite-notes.md
fn ~/Documents/fortnite/notes/vods.md
fb ~/Documents/fortnite/notes/building-drills.md
fw ~/Documents/fortnite/notes/warmup.md
fp ~/Documents/fortnite/notes/post.md
fn ~/Documents/fortnite/notes/fortnite-notes.md
fv ~/Documents/fortnite/notes/vods.md
mta ~/.minetest/clientmods/custom_aliases/init.lua
cmr ~/Documents/codm/discord-recruitment.md
nb ~/Documents/chat/discord/pistol.md
pk ~/Downloads/pokecord/pokecord2.md
sdv ~/Documents/stardew-valley-sdv/notes.md
snp ~/Documents/marvel-snap/strats.md
tc /mnt/linux-files/Videos/yt/fortnite/clips/twitch-clip-downloader/clips.txt
tdb ~/Documents/journal/todo/b.md
jop ~/Documents/journal/personal/jop.md
# ]]] gaming #
# pey [[[ #
dv ~/coding/devops-sre-knowledge/devops-sre-learned.md
j Jenkinsfile.
jd Jenkinsfile.deploy
klg ~/coding/kogito/shared-libraries/vars/githubscm.groovy
klm ~/coding/kogito/shared-libraries/vars/maven.groovy
kob ~/coding/kogito-operator-onboarding/README.md
kpr ~/coding/kogito/kogito-pipelines/Jenkinsfile.pr-bdd-tests
krt /home/kevin/coding/kogito/kogito-runtimes/jenkins-spock-tests/src/test/vars/JenkinsfilePromote.groovy
rd ~/Documents/red-hat/dates.md
rm ~/Documents/red-hat/meeting.md
rt ~/Documents/red-hat/todo.md
lip ~/Documents/linkedin/linkedin-profile.md
jhi ~/school/job-hunt/info.md
jhb ~/school/job-hunt/b.md
# ]]] pey #
ej ~/Documents/emojis/emojis.md
nf ~/Documents/twitter/nft-25.md
sg ~/Documents/chat/signal/jay-groups.md
wd ~/Documents/journal/personal/weed.md
wo ~/Documents/workout-logs/7/running.md
str ~/Documents/workout-logs/stretching.md
be ~/Documents/workout-logs/25/4/back-exercises.md
ms ~/Documents/journal/personal/meds-sched.md
mg ~/Documents/journal/personal/meds-gpt.md

View File

@@ -1,25 +1,7 @@
! clear Lock
keycode 9 = Caps_Lock
! keycode 66 = Escape
! keycode 22 = BackSpace
! pointer = 1 2 3 6 7 4 5 10 11 12 8 9
! side thumb button as middle click
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9
! Clear the Caps Lock modifier logic first
clear Lock
! Map the physical Caps Lock key (66) to Escape
keycode 66 = Escape
keycode 22 = Caps_Lock
keycode 66 = BackSpace
keycode 78 = End
! 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
pointer = 1 10 3 6 7 4 5 2 11 12 8 9

View File

@@ -1,7 +1,9 @@
clear Lock
keycode 115 = Escape
keycode 9 = End
keycode 22 = BackSpace
keycode 115 = BackSpace
keycode 110 = Delete
keycode 22 = Home
keycode 119 = End
pointer = 1 2 3 4 5 6 7 8 9 10 11 12

View File

@@ -1,9 +0,0 @@
clear Lock
keycode 115 = BackSpace
keycode 110 = Delete
keycode 22 = Home
keycode 119 = End
pointer = 1 2 3 4 5 6 7 8 9 10 11 12

7
dot_Xmodmap-laptop-work Normal file
View File

@@ -0,0 +1,7 @@
clear Lock
keycode 9 = Caps_Lock
keycode 22 = BackSpace
keycode 66 = Escape
pointer = 1 2 3 4 5 6 7 8 9 10 11 12

View File

@@ -4,4 +4,4 @@ keycode 22 = Caps_Lock
keycode 66 = BackSpace
keycode 78 = End
pointer = 1 10 3 6 7 4 5 2 11 12 8 9
pointer = 1 2 3 4 5 6 7 8 9 10 11 12

View File

@@ -1,8 +0,0 @@
clear Lock
keycode 66 = Caps_Lock
keycode 9 = Escape
pointer = 1 2 3 6 7 4 5 10 11 12 8 9
! side thumb button as middle click
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9

View File

@@ -1,11 +0,0 @@
clear Lock
! keycode 9 = Caps_Lock
! keycode 66 = Escape
keycode 9 = Escape
keycode 66 = Caps_Lock
keycode 22 = BackSpace
pointer = 1 2 3 6 7 4 5 10 11 12 8 9
! side thumb button as middle click
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9

View File

@@ -1,12 +1,9 @@
/* dpi [[[ */
{{ if eq .chezmoi.hostname "x1-carbon" }}
! Xft.dpi: 230
Xft.dpi: 235
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
! Xft.dpi: 240
Xft.dpi: 230
{{ else }}
! Xft.dpi: 90
! Xft.dpi: 100
Xft.dpi: 135
! Xft.dpi: 170
{{ end }}
@@ -21,25 +18,21 @@ Xft.rgba: rgb
/* font [[[ */
{{ if eq .chezmoi.hostname "x1-carbon" }}
URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=11
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=10
! URxvt*cursorBlink: 0
URxvt*cursorBlink: False
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=11
URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=11.5
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=12
{{ else }}
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=15
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=14
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=13.5
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=12
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=11
URxvt.font: xft:Hack Nerd Font Mono:size=11
URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=12
{{ end }}
! URxvt.font: xft:Hack:size=18
/* resize [[[ */
! URxvt.resize-font.step: 4
URxvt.resize-font.step: 2
URxvt.resize-font.step: 4
URxvt.keysym.C-S-Down: resize-font:smaller
URxvt.keysym.C-S-Up: resize-font:bigger
URxvt.keysym.C-S-equal: resize-font:reset
@@ -74,14 +67,9 @@ URxvt.scrollBar: false
/* Clickable URLs [[[ */
URxvt.perl-ext-common: default,matcher,resize-font
URxvt.url-launcher: /usr/bin/firefox
! URxvt.url-launcher: firefox
URxvt.url-launcher: /usr/bin/xdg-open
URxvt.matcher.button: 1
/* ]]] Clickable URLs */
Sxiv.background: #000000
Sxiv.foreground: #00C0FF
Sxiv.font: Hack-9
! vim: fdm=marker ft=xdefaults.go-template

View File

@@ -204,4 +204,4 @@ fi
# Both PC/Laptop }}}
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
source /home/kevin/aliases/.key_aliases
source ~/aliases/.key_aliases

View File

@@ -1,39 +0,0 @@
[
// 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
]

View File

@@ -1,97 +0,0 @@
{
// --- 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" }
}

View File

@@ -1,39 +0,0 @@
[
// 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
]

View File

@@ -1,232 +0,0 @@
// 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"
}
}

View File

@@ -1,327 +0,0 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "300x5-30+20"
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# Transient notifications ignore this setting.
idle_threshold = 120
### Text ###
# font = Monospace 8
font = Hack Nerd Font Mono 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to ellipsize long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Merge multiple notifications with the same content
stack_duplicates = true
# Hide the count of merged notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = off
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#285577"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
# vim: ft=cfg

File diff suppressed because it is too large Load Diff

View File

@@ -1,178 +0,0 @@
# Copyright 2016 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# fish completion for minikube -*- shell-script -*-
function __minikube_debug
set file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >> $file
end
end
function __minikube_perform_completion
__minikube_debug "Starting __minikube_perform_completion with: $argv"
set args (string split -- " " "$argv")
set lastArg "$args[-1]"
__minikube_debug "args: $args"
__minikube_debug "last arg: $lastArg"
set emptyArg ""
if test -z "$lastArg"
__minikube_debug "Setting emptyArg"
set emptyArg \"\"
end
__minikube_debug "emptyArg: $emptyArg"
if not type -q "$args[1]"
# This can happen when "complete --do-complete minikube" is called when running this script.
__minikube_debug "Cannot find $args[1]. No completions."
return
end
set requestComp "$args[1] __complete $args[2..-1] $emptyArg"
__minikube_debug "Calling $requestComp"
set results (eval $requestComp 2> /dev/null)
set comps $results[1..-2]
set directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set flagPrefix (string match -r -- '-.*=' "$lastArg")
__minikube_debug "Comps: $comps"
__minikube_debug "DirectiveLine: $directiveLine"
__minikube_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# This function does three things:
# 1- Obtain the completions and store them in the global __minikube_comp_results
# 2- Set the __minikube_comp_do_file_comp flag if file completion should be performed
# and unset it otherwise
# 3- Return true if the completion results are not empty
function __minikube_prepare_completions
# Start fresh
set --erase __minikube_comp_do_file_comp
set --erase __minikube_comp_results
# Check if the command-line is already provided. This is useful for testing.
if not set --query __minikube_comp_commandLine
# Use the -c flag to allow for completion in the middle of the line
set __minikube_comp_commandLine (commandline -c)
end
__minikube_debug "commandLine is: $__minikube_comp_commandLine"
set results (__minikube_perform_completion "$__minikube_comp_commandLine")
set --erase __minikube_comp_commandLine
__minikube_debug "Completion results: $results"
if test -z "$results"
__minikube_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
set --global __minikube_comp_do_file_comp 1
return 1
end
set directive (string sub --start 2 $results[-1])
set --global __minikube_comp_results $results[1..-2]
__minikube_debug "Completions are: $__minikube_comp_results"
__minikube_debug "Directive is: $directive"
set shellCompDirectiveError 1
set shellCompDirectiveNoSpace 2
set shellCompDirectiveNoFileComp 4
set shellCompDirectiveFilterFileExt 8
set shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__minikube_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
set --global __minikube_comp_do_file_comp 1
return 1
end
set filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__minikube_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
set --global __minikube_comp_do_file_comp 1
return 1
end
set nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__minikube_debug "nospace: $nospace, nofiles: $nofiles"
# Important not to quote the variable for count to work
set numComps (count $__minikube_comp_results)
__minikube_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# To support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__minikube_debug "Adding second completion to perform nospace directive"
set --append __minikube_comp_results $__minikube_comp_results[1].
end
if test $numComps -eq 0; and test $nofiles -eq 0
__minikube_debug "Requesting file completion"
set --global __minikube_comp_do_file_comp 1
end
# If we don't want file completion, we must return true even if there
# are no completions found. This is because fish will perform the last
# completion command, even if its condition is false, if no other
# completion command was triggered
return (not set --query __minikube_comp_do_file_comp)
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# The space after the the program name is essential to trigger completion for the program
# and not completion of the program name itself.
complete --do-complete "minikube " > /dev/null 2>&1
# Using '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c minikube -e
# The order in which the below two lines are defined is very important so that __minikube_prepare_completions
# is called first. It is __minikube_prepare_completions that sets up the __minikube_comp_do_file_comp variable.
#
# This completion will be run second as complete commands are added FILO.
# It triggers file completion choices when __minikube_comp_do_file_comp is set.
complete -c minikube -n 'set --query __minikube_comp_do_file_comp'
# This completion will be run first as complete commands are added FILO.
# The call to __minikube_prepare_completions will setup both __minikube_comp_results and __minikube_comp_do_file_comp.
# It provides the program's completion choices.
complete -c minikube -n '__minikube_prepare_completions' -f -a '$__minikube_comp_results'

View File

@@ -1,115 +0,0 @@
# Copyright (C) 2012-2014 Dmitry Medvinsky <me@dmedvinsky.name>. All Rights Reserved.
# This file is licensed under the GPLv2+. Please see COPYING for more information.
set -l PROG 'pass'
function __fish_pass_get_prefix
if set -q PASSWORD_STORE_DIR
realpath -- "$PASSWORD_STORE_DIR"
else
echo "$HOME/.password-store"
end
end
function __fish_pass_needs_command
[ (count (commandline -opc)) -eq 1 ]
end
function __fish_pass_uses_command
set -l cmd (commandline -opc)
if [ (count $cmd) -gt 1 ]
if [ $argv[1] = $cmd[2] ]
return 0
end
end
return 1
end
function __fish_pass_print_gpg_keys
gpg2 --list-keys | grep uid | sed 's/.*<\(.*\)>/\1/'
end
function __fish_pass_print
set -l ext $argv[1]
set -l strip $argv[2]
set -l prefix (__fish_pass_get_prefix)
set -l matches $prefix/**$ext
printf '%s\n' $matches | sed "s#$prefix/\(.*\)$strip#\1#"
end
function __fish_pass_print_entry_dirs
__fish_pass_print "/"
end
function __fish_pass_print_entries
__fish_pass_print ".gpg" ".gpg"
end
function __fish_pass_print_entries_and_dirs
__fish_pass_print_entry_dirs
__fish_pass_print_entries
end
function __fish_pass_git_complete
set -l prefix (__fish_pass_get_prefix)
set -l git_cmd (commandline -opc) (commandline -ct)
set -e git_cmd[1 2] # Drop "pass git".
complete -C"git -C $prefix $git_cmd"
end
complete -c $PROG -f -n '__fish_pass_needs_command' -a help -d 'Command: show usage help'
complete -c $PROG -f -n '__fish_pass_needs_command' -a version -d 'Command: show program version'
complete -c $PROG -f -n '__fish_pass_needs_command' -a init -d 'Command: initialize new password storage'
complete -c $PROG -f -n '__fish_pass_uses_command init' -s p -l path -d 'Assign gpg-id for specified sub folder of password store'
complete -c $PROG -f -n '__fish_pass_needs_command' -a ls -d 'Command: list passwords'
complete -c $PROG -f -n '__fish_pass_uses_command ls' -a "(__fish_pass_print_entry_dirs)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a insert -d 'Command: insert new password'
complete -c $PROG -f -n '__fish_pass_uses_command insert' -s e -l echo -d 'Echo the password on console'
complete -c $PROG -f -n '__fish_pass_uses_command insert' -s m -l multiline -d 'Provide multiline password entry'
complete -c $PROG -f -n '__fish_pass_uses_command insert' -s f -l force -d 'Do not prompt before overwritting'
complete -c $PROG -f -n '__fish_pass_uses_command insert' -a "(__fish_pass_print_entry_dirs)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a generate -d 'Command: generate new password'
complete -c $PROG -f -n '__fish_pass_uses_command generate' -s n -l no-symbols -d 'Do not use special symbols'
complete -c $PROG -f -n '__fish_pass_uses_command generate' -s c -l clip -d 'Put the password in clipboard'
complete -c $PROG -f -n '__fish_pass_uses_command generate' -s f -l force -d 'Do not prompt before overwritting'
complete -c $PROG -f -n '__fish_pass_uses_command generate' -s i -l in-place -d 'Replace only the first line with the generated password'
complete -c $PROG -f -n '__fish_pass_uses_command generate' -a "(__fish_pass_print_entry_dirs)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a mv -d 'Command: rename existing password'
complete -c $PROG -f -n '__fish_pass_uses_command mv' -s f -l force -d 'Force rename'
complete -c $PROG -f -n '__fish_pass_uses_command mv' -a "(__fish_pass_print_entries_and_dirs)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a cp -d 'Command: copy existing password'
complete -c $PROG -f -n '__fish_pass_uses_command cp' -s f -l force -d 'Force copy'
complete -c $PROG -f -n '__fish_pass_uses_command cp' -a "(__fish_pass_print_entries_and_dirs)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a rm -d 'Command: remove existing password'
complete -c $PROG -f -n '__fish_pass_uses_command rm' -s r -l recursive -d 'Remove password groups recursively'
complete -c $PROG -f -n '__fish_pass_uses_command rm' -s f -l force -d 'Force removal'
complete -c $PROG -f -n '__fish_pass_uses_command rm' -a "(__fish_pass_print_entries_and_dirs)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a edit -d 'Command: edit password using text editor'
complete -c $PROG -f -n '__fish_pass_uses_command edit' -a "(__fish_pass_print_entries)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a show -d 'Command: show existing password'
complete -c $PROG -f -n '__fish_pass_uses_command show' -s c -l clip -d 'Put password in clipboard'
complete -c $PROG -f -n '__fish_pass_uses_command show' -a "(__fish_pass_print_entries)"
# When no command is given, `show` is defaulted.
complete -c $PROG -f -n '__fish_pass_needs_command' -s c -l clip -d 'Put password in clipboard'
complete -c $PROG -f -n '__fish_pass_needs_command' -a "(__fish_pass_print_entries)"
complete -c $PROG -f -n '__fish_pass_uses_command -c' -a "(__fish_pass_print_entries)"
complete -c $PROG -f -n '__fish_pass_uses_command --clip' -a "(__fish_pass_print_entries)"
complete -c $PROG -f -n '__fish_pass_needs_command' -a git -d 'Command: execute a git command'
complete -c $PROG -f -n '__fish_pass_uses_command git' -a '(__fish_pass_git_complete)'
complete -c $PROG -f -n '__fish_pass_needs_command' -a find -d 'Command: find a password file or directory matching pattern'
complete -c $PROG -f -n '__fish_pass_needs_command' -a grep -d 'Command: search inside of decrypted password files for matching pattern'
complete -c $PROG -f -n '__fish_pass_uses_command grep' -a '(begin
set -l cmd (commandline -opc) (commandline -ct)
set -e cmd[1 2] # Drop "pass grep".
complete -C"grep $cmd"
end)'

View File

@@ -1,235 +0,0 @@
# fish completion for timetrace -*- shell-script -*-
function __timetrace_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >> $file
end
end
function __timetrace_perform_completion
__timetrace_debug "Starting __timetrace_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__timetrace_debug "args: $args"
__timetrace_debug "last arg: $lastArg"
# Disable ActiveHelp which is not supported for fish shell
set -l requestComp "TIMETRACE_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
__timetrace_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__timetrace_debug "Comps: $comps"
__timetrace_debug "DirectiveLine: $directiveLine"
__timetrace_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# this function limits calls to __timetrace_perform_completion, by caching the result behind $__timetrace_perform_completion_once_result
function __timetrace_perform_completion_once
__timetrace_debug "Starting __timetrace_perform_completion_once"
if test -n "$__timetrace_perform_completion_once_result"
__timetrace_debug "Seems like a valid result already exists, skipping __timetrace_perform_completion"
return 0
end
set --global __timetrace_perform_completion_once_result (__timetrace_perform_completion)
if test -z "$__timetrace_perform_completion_once_result"
__timetrace_debug "No completions, probably due to a failure"
return 1
end
__timetrace_debug "Performed completions and set __timetrace_perform_completion_once_result"
return 0
end
# this function is used to clear the $__timetrace_perform_completion_once_result variable after completions are run
function __timetrace_clear_perform_completion_once_result
__timetrace_debug ""
__timetrace_debug "========= clearing previously set __timetrace_perform_completion_once_result variable =========="
set --erase __timetrace_perform_completion_once_result
__timetrace_debug "Succesfully erased the variable __timetrace_perform_completion_once_result"
end
function __timetrace_requires_order_preservation
__timetrace_debug ""
__timetrace_debug "========= checking if order preservation is required =========="
__timetrace_perform_completion_once
if test -z "$__timetrace_perform_completion_once_result"
__timetrace_debug "Error determining if order preservation is required"
return 1
end
set -l directive (string sub --start 2 $__timetrace_perform_completion_once_result[-1])
__timetrace_debug "Directive is: $directive"
set -l shellCompDirectiveKeepOrder 32
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
__timetrace_debug "Keeporder is: $keeporder"
if test $keeporder -ne 0
__timetrace_debug "This does require order preservation"
return 0
end
__timetrace_debug "This doesn't require order preservation"
return 1
end
# This function does two things:
# - Obtain the completions and store them in the global __timetrace_comp_results
# - Return false if file completion should be performed
function __timetrace_prepare_completions
__timetrace_debug ""
__timetrace_debug "========= starting completion logic =========="
# Start fresh
set --erase __timetrace_comp_results
__timetrace_perform_completion_once
__timetrace_debug "Completion results: $__timetrace_perform_completion_once_result"
if test -z "$__timetrace_perform_completion_once_result"
__timetrace_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $__timetrace_perform_completion_once_result[-1])
set --global __timetrace_comp_results $__timetrace_perform_completion_once_result[1..-2]
__timetrace_debug "Completions are: $__timetrace_comp_results"
__timetrace_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__timetrace_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__timetrace_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__timetrace_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__timetrace_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__timetrace_comp_results)
set --global __timetrace_comp_results $completions
__timetrace_debug "Filtered completions are: $__timetrace_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__timetrace_comp_results)
__timetrace_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__timetrace_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__timetrace_debug "Adding second completion to perform nospace directive"
set --global __timetrace_comp_results $split[1] $split[1].
__timetrace_debug "Completions are now: $__timetrace_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__timetrace_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q "timetrace"
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "timetrace " > /dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c timetrace -e
# this will get called after the two calls below and clear the $__timetrace_perform_completion_once_result global
complete -c timetrace -n '__timetrace_clear_perform_completion_once_result'
# The call to __timetrace_prepare_completions will setup __timetrace_comp_results
# which provides the program's completion choices.
# If this doesn't require order preservation, we don't use the -k flag
complete -c timetrace -n 'not __timetrace_requires_order_preservation && __timetrace_prepare_completions' -f -a '$__timetrace_comp_results'
# otherwise we use the -k flag
complete -k -c timetrace -n '__timetrace_requires_order_preservation && __timetrace_prepare_completions' -f -a '$__timetrace_comp_results'

View File

@@ -1,44 +1,5 @@
# vim: fdm=marker ft=fish.go-template
# aliases [[[ #
# personal [[[ #
# dirs [[[ #
abbr cvt "cd ~/Pictures/profile-pics/conviction"
abbr ets "cd /mnt/linux-files-2/Videos/eras-taylor-swift-movie"
abbr hv "cd /mnt/linux-files-2/Pictures/hevin"
abbr hvn "cd ~/coding/hevin-nft"
abbr lon "libreoffice ~/Documents/expenses/net-worth.ods &"
abbr lfs2 "cd /mnt/linux-files-2/Videos/shows"
abbr mj "cd /mnt/linux-files-2/Pictures/midjourney"
abbr pdg "cd ~/Pictures/profile-pics/pudgy-penguins/test"
abbr snp "cd /mnt/linux-files-2/Videos/ipad/marvel-snap"
abbr tr "cd ~/.local/share/Terraria"
abbr da "cd /mnt/ipad/DCIM/102APPLE"
# ]]] dirs #
abbr ncy "nvim ~/Documents/journal/hobbies/courtyard-drop.md"
abbr njt "nvim ~/Documents/journal/todo/24/2.md"
abbr rsn "rsync -e 'ssh -p 399' -r . 165.22.239.234:/home/kevin/hevin/art -acvv"
# ]]] personal #
# school [[[ #
abbr js "cd ~/Documents/job-search"
abbr ssad "ssh -i ~/coding/aws.pem admin@ec2-18-223-241-198.us-east-2.compute.amazonaws.com"
abbr ssa "ssh kevin@ec2-18-223-241-198.us-east-2.compute.amazonaws.com"
# ]]] school #
# abbr nej "nvim ~/Documents/emojis.md"
# ]]] aliases #
# login to X [[[ #
{{ if eq .chezmoi.username "kevin" }}
@@ -56,45 +17,31 @@ set -x GPG_TTY (tty)
set -U fish_greeting
{{ if eq .chezmoi.hostname "nzxt" }}
# spv[[[
{{ if eq .chezmoi.fullHostname "nzxt" }}
set -U spv_dir "/home/kevin/coding/spotify-lib-vis"
set -U mfs_dir "/home/kevin/coding/mf-site"
source /home/kevin/coding/spotify-lib-vis/src/scripts/api-keys-fish.sh
abbr hum "cd $mfs_dir && hugo serve -D --disableFastRender"
{{ end }}#]]]
# system [[[
set -x HASTE_SERVER https://pste.gq
{{ if eq .chezmoi.hostname "nzxt" }}
# set -x CALCURSE_CALDAV_PASSWORD (pass show technology/linux/baikal | head -n1)
{{ end }}
set -x LD_LIBRARY_PATH $LD_LIBRARY_PATH /usr/local/lib /usr/local/lib64
# system[[[
set -x CLASSPATH $CLASSPATH /home/kevin/java/*.jar
set -x GOPATH ~/go
# set -x PATH $GRAALVM_BIN $PATH ~/.local/bin ~/scripts ~/scripts/colors ~/go/bin ~/.minetest/minetest/bin ~/.gem/ruby/2.6.0/bin
set -x PATH $PATH ~/.local/bin ~/scripts ~/scripts/colors $GOPATH/bin ~/.minetest/minetest/bin ~/.gem/ruby/*/bin ~/.yarn/bin ~/.linuxbrew/bin ~/.fnm/current/bin ~/.nimble/bin ~/miniconda3/bin
set -x PKG_CONFIG_PATH $PKG_CONFIG_PATH /usr/lib/pkgconfig
# Java [[[ #
set -x GRAALVM_HOME /usr/lib/jvm/graalvm-ce-java11-21.1.0
set -x HASTE_SERVER https://pste.gq
set -x GRAALVM_HOME /usr/lib/jvm/graalvm-ce-java11-20.1.0
set -x GRAALVM_BIN $GRAALVM_HOME/bin
set -x JAVA_HOME $GRAALVM_HOME
# set -x JAVA_HOME /usr/lib/jvm/java-11-openjdk
# set -x JAVA_HOME /usr/lib/jvm/java-8-openjdk # for shared libs
set -x PATH $JAVA_HOME/bin $PATH
# ]]] Java #
# pnpm
set -gx PNPM_HOME "/home/kevin/.local/share/pnpm"
if not string match -q -- $PNPM_HOME $PATH
set -gx PATH "$PNPM_HOME" $PATH
end
# pnpm end
# system ]]]
set -x JAVA_HOME $GRAALVM_HOME
set -x LD_LIBRARY_PATH $LD_LIBRARY_PATH /usr/local/lib /usr/local/lib64
set -x MAVEN_HOME /opt/maven
set -x PATH $GRAALVM_BIN $PATH ~/.local/bin ~/scripts ~/scripts/colors $GOPATH/bin ~/.minetest/minetest/bin ~/.gem/ruby/2.6.0/bin $MAVEN_HOME/bin
set -x PKG_CONFIG_PATH $PKG_CONFIG_PATH /usr/lib/pkgconfig
{{ if eq .chezmoi.fullHostname "nzxt" }}
set -x CALCURSE_CALDAV_PASSWORD (pass show technology/linux/baikal | head -n1)
status --is-interactive; and source (pyenv init -|psub)
{{ end }}
#]]]
# space prompt[[[
# set SPACEFISH_PROMPT_ORDER time user dir host git package node docker ruby golang php rust haskell julia aws conda pyenv kubecontext exec_time line_sep battery jobs exit_code vi_mode char
@@ -112,46 +59,16 @@ set SPACEFISH_VI_MODE_SUFFIX ''
set -x PASSWORD_STORE_CLIP_TIME 120
set -xU XSET_RATE 90
set -xU XSET_DELAY 200
{{ if and (eq .chezmoi.hostname "x1-carbon") (not (eq .chezmoi.username "root")) }}
{{ if and (eq .chezmoi.fullHostname "x1-carbon") (not (eq .chezmoi.username "root")) }}
xset r rate $XSET_DELAY $XSET_RATE
{{ end }}#]]]
# [[[ universal var's #
set -xU BROWSER "firefox"
# set -U BROWSER "chromium"
set -xU BROWSER "firefox"
set -xU FZF_DEFAULT_COMMAND "find ."
set -x LAPTOP_IP "192.168.0.19"
set -x PHONE_IP "192.168.0.241"
set -x PIXEL_IP "192.168.0.18"
set -x WORK_LAPTOP_IP "kmok@192.168.0.11"
{{ if eq .chezmoi.hostname "nzxt" }}
# set -x CALCURSE_CALDAV_PASSWORD (pass show technology/linux/baikal | head -n1)
set -x JENKINS_TOKEN 114a1b2e8693b57fa6f4bce88e2deee8cc
status --is-interactive; and source (pyenv init -|psub)
{{ end }}
set -xU MINIKUBE_IP "http://192.168.49.2"
set -xU LOCAL_KOGITO_SERVICE_PORT "32000"
# set -xU LOCAL_KOGITO_SERVICE_URL "$MINIKUBE_IP:$LOCAL_KOGITO_SERVICE_PORT"
set -x FLASK_DEBUG 1
set -x FULLNODE_API_INFO wss://api.chain.love
set -x IPAD_IMG 55
#source /home/kevin/coding/aws.fish
set -x LIBVIRT_DEFAULT_URI qemu:///system
set --erase DB_NAME
#set -x NODE_OPTIONS '--loader ts-node/esm'
#set NODE_OPTIONS '--loader ts-node/esm'
set -xU KOGITO_SERVICE_URL "http://example-quarkus-3376.apps-crc.testing/"
# ]]] universal var's #
@@ -167,12 +84,12 @@ builtin cd $last_dir && ls > /dev/null
bind \ce edit_command_buffer
bind \cr forward-word
# chezmoi apply
chezmoi apply
{{ if not (eq .linux_os "termux") }}
~/scripts/sync-shortcuts
{{ end }}
# source ~/.config/fish/key_abbr.fish > /dev/null
set -U fish_fxn_dir "{{ .chezmoi.homeDir }}/linux-config/dot_config/fish/functions"
set -U fish_fxn_dir "{{ .chezmoi.homedir }}/linux-config/dot_config/fish/functions"
# set -U fish_fxn_dir "~/.config/fish/functions"
abbr ff "cd $fish_fxn_dir"
for fxn in (find $fish_fxn_dir -name '*.fish')
@@ -197,63 +114,53 @@ abbr xf "fish_config"
abbr ! "sudo !!"
# task [[[ #
abbr aan "task-anno ''"
abbr aed "task-edit"
abbr aan "task-anno"
abbr ae "task-edit"
abbr adl "task-delete"
abbr adn "task-done"
abbr adu "task-due"
abbr adr "task-due-rm"
abbr anx "task-next"
abbr an "task-next"
abbr anr "task-next-rm"
abbr ant "task-notes"
abbr aon "taskopen-new"
abbr apr "task-mod-pri"
abbr aprl "task-mod-pri L"
abbr aprm "task-mod-pri M"
abbr aprn "task-mod-pri ''"
abbr aprh "task-mod-pri H"
abbr apj "task-mod-proj"
abbr ar "task-start"
abbr asr "task-start"
abbr at "task-mod-tag"
abbr atj "task-mod-tag jira"
abbr aw "task-wait"
abbr ax "task-context"
# ]]] task #
abbr ag "grep-aliases"
abbr bk "buku-fzf"
abbr bkf "buku-fzf fq"
abbr b "buku-fzf"
abbr bf "buku-fzf fq"
abbr bq "benq-brightness"
abbr bn "discord-burner"
abbr bun "backup nzxt"
abbr bupp "backup-phone-pics"
#abbr ca "cad-to-us"
abbr cccs "sync-alt-cal class"
abbr cl "clip"
#abbr cli "clip-ipad"
abbr cpc "copy cat"
abbr cpe "copy echo"
abbr cpp "copy echo (pwd)"
abbr cff "create-fish-function"
abbr ctr "systemctl-restart"
abbr def "define"
abbr drs "dump-rarity-check"
abbr fd1 "fd --changed-within 1d"
abbr do "debug-operator"
abbr dop "debug-operator pull"
abbr ens "enable-site"
abbr ev "evince-silent"
abbr ff "fzf-cd"
abbr fnpr "fn-progress"
# abbr fbg "find-bg"
# abbr fr "fzf-ranger"
abbr fr "fzf-ranger"
abbr fv "fzf-vim"
abbr fvft "find-vim-filetype"
abbr gif "video-to-gif"
# git [[[ #
abbr gcamp "git-amend-push"
abbr gclg "git-clone-gitea"
abbr gdf "git-diff-files"
abbr gpsd "git-push-diff-name"
abbr gpsi "git-push-initial"
abbr gpsmt "git-push-multiple"
abbr gpng "git-push-new-gitea"
@@ -266,29 +173,18 @@ abbr gsmb "git-submodule-branch"
# ]]] git #
abbr i "sxiv-silent"
abbr lo "libreoffice-silent"
# abbr m "man-vim"
abbr mn "man-vim"
abbr ma "man-vim task"
abbr mat "math"
abbr mi "mpv-ipad"
abbr mm "mpv-ipad-mov"
abbr mn "man-vim"
abbr mdf "mkdir-cd"
abbr mps "mpv-sub"
abbr mtm "maven-test-method"
abbr oge "oc-get-events"
abbr pgr "grep-pdf"
abbr pgrf "grep-pdf-file"
abbr pst "pastebin"
abbr q "bc-qalc '"
abbr qh "qalc-history"
abbr qu "qalc-update"
abbr re "reminder ''"
abbr rf "refresh-config"
abbr rl "readlink-cp"
abbr rds "redshift-set"
abbr rmi "rm-ipad"
abbr rsi "rsync-ipad-vid"
abbr rsm "rsync-ipad-vid-mov"
abbr scf "scp-vid fn"
abbr rs "redshift-set"
abbr sma "smol-add"
abbr smd "smol-delete"
abbr sml "smol-slist"
@@ -296,63 +192,21 @@ abbr smr "smol-replace"
abbr shrm "shred-rm"
abbr shs "scan-history"
abbr svp "server-pages"
abbr ta "tmux-attach"
abbr taa "tmux-attach atx"
abbr taf "tmux-attach fn"
abbr tam "tmux-attach misc"
abbr tan "tmux-attach nft"
abbr tan2 "tmux-attach nft-2"
abbr tao "tmux-attach obs"
abbr ttl "timetrace-list"
abbr thes "thesaurus"
abbr ubs "ubuntu-start"
abbr umip "unmount-ipad"
# abbr usc "us-to-cad"
#abbr us "us-to-cad"
abbr usc "us-to-cad"
abbr ut "unix-timestamp"
abbr uzr "unzip-rm"
abbr vsnp "vim-snippet"
abbr wga "wget-all"
abbr wag "watson-add-game"
abbr waf "watson-add-game fortnite"
abbr wap "watson-add-game pokemon-go"
abbr wgn "wget-name"
abbr waf "watson-add-fortnite"
abbr xya "export-pkgs"
# school [[[ #
abbr aw "aws ec2"
abbr awav "aws-attach-volume"
abbr awlv "aws ec2 describe-volumes --query \"sort_by(Volumes, &CreateTime)[*].{ID:VolumeId,Name:Tags[?Key=='Name']|[0].Value,Created:CreateTime}\" --output table"
abbr awdtv "aws ec2 detach-volume --volume-id"
abbr awdlv "aws ec2 delete-volume --volume-id"
abbr awli "aws ec2 describe-instances --query \"sort_by(Reservations[].Instances[], &LaunchTime)[*].[InstanceId, Tags[?Key=='Name'].Value | [0], LaunchTime, InstanceType, State.Name]\" --output table"
abbr awsai "aws ec2 start-instances --instance-ids"
abbr awsti "aws ec2 stop-instances --instance-ids"
abbr rdo "redeploy-operator"
# ]]] school #
# ]]] fxn abbr's #
# task sync > /dev/null 2>&1
source /home/kevin/.config/fish/key_abbr.fish > /dev/null
cat /home/kevin/.cache/wal/sequences
# ~/scripts/xmodmap-custom
#ssh-add ~/.ssh/ai16z-test.pem > /dev/null
# keychain --agents ssh id_rsa
#set -Ux SSH_AUTH_SOCK (keychain --eval --agents ssh id_rsa | grep setenv | sed -E 's/setenv (\S+) (\S+);/\2/')
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
#if test -f /home/kevin/miniconda3/bin/conda
#eval /home/kevin/miniconda3/bin/conda "shell.fish" "hook" $argv | source
#else
#if test -f "/home/kevin/miniconda3/etc/fish/conf.d/conda.fish"
#. "/home/kevin/miniconda3/etc/fish/conf.d/conda.fish"
#else
#set -x PATH "/home/kevin/miniconda3/bin" $PATH
#end
#end
# <<< conda initialize <<<

View File

@@ -1,3 +0,0 @@
function aws-attach-volume
aws ec2 attach-volume --volume-id $argv[1] --instance-id $argv[2] --device /dev/sda1
end

View File

@@ -1,8 +0,0 @@
#function bc-qalc
#echo "scale=4; $argv[1]" | bc
#end
function bc-qalc
set -l expression "scale=4; $argv[1]"
set -l result (echo "$expression" | bc -l)
python3 -c "print(f'{float($result):,}')"
end

View File

@@ -0,0 +1,16 @@
function buku-fzf
# buku -p -f 5 | awk -F '\t' 'BEGIN { OFS=FS }; { $2=substr($2, 1, 90); print }' | column -t -s (printf '\t') | fzf --multi | awk '{ print $1 }'
# if test (count $argv) -ge 1 -a "$argv[1]" = "fq"
# set ids (buku -t fq -f4 | awk -F '\t' 'BEGIN { OFS=FS }; { sub(/https?:\/\/(www\.)?/, "", $2); $2=substr($2, 1, 45); $3=substr($3, 1, 50); print }' | column -t -s (printf '\t') | fzf --multi --tiebreak end | awk '{ print $1 }')
if test (count $argv) -eq 1
# TODO: column width? #
set ids (buku -t + "$argv" -f4 | awk -F '\t' 'BEGIN { OFS=FS }; { sub(/https?:\/\/(www\.)?/, "", $2); $2=substr($2, 1, 45); $3=substr($3, 1, 50); print }' | column -t -s (printf '\t') | fzf --multi --tiebreak end | awk '{ print $1 }')
# echo buku -t + "$argv" -f4
else
set ids (buku -p -f4 | awk -F '\t' 'BEGIN { OFS=FS }; { sub(/https?:\/\/(www\.)?/, "", $2); $2=substr($2, 1, 45); $3=substr($3, 1, 50); print }' | column -t -s (printf '\t') | fzf --multi --tiebreak end | awk '{ print $1 }')
end
for id in $ids
buku -o $id
end
end

View File

@@ -1,3 +0,0 @@
function cad-to-us
qalc "$argv[1]CAD to \$"
end

View File

@@ -1,3 +0,0 @@
function conda_activate
source ~/miniconda3/bin/activate $argv
end

View File

@@ -0,0 +1,7 @@
function debug-operator
if test (count $argv) -gt 0
git pull --rebase
end
make mod clean
and DEBUG=true operator-sdk run --local --watch-namespace=3376 &| tee debug-operator.log
end

View File

@@ -1,15 +0,0 @@
function discord-burner
# echo nordvpn connect ca1$argv[1] && curl ifconfig.me
# nordvpn connect ca1$argv[1] && \
# nordvpn connect ca10$argv[1]
# nordvpn connect
# curl ifconfig.me
if test (count $argv) -gt 1
firefox -P discord-$argv[2] $argv[1] &
else
firefox -P discord-$argv[1] &
end
# for i in (seq $argv[1] $argv[2])
# firefox -P discord-$i $argv[3] &
# end
end

View File

@@ -1,3 +0,0 @@
function dump-rarity-check
pg_dump -U rarity_check rarity_check > $argv[1].sql
end

View File

@@ -1,39 +0,0 @@
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

View File

@@ -1,4 +0,0 @@
function fzf-cd
set dir (fd -td | fzf)
cd $dir
end

View File

@@ -1,3 +0,0 @@
function git-push-diff-name
git push -f origin HEAD:$argv[1]
end

View File

@@ -1,4 +1,4 @@
function git-push-new-gitea
git remote add origin ssh://git@kevin-mok.com:399/Kevin-Mok/$argv[1].git
and git push --set-upstream origin main
and git push --set-upstream origin master
end

View File

@@ -1,7 +0,0 @@
function clip-ipad
if test (count $argv) -eq 3
ffmpeg -ss $argv[1] -i IMG_$IPAD_IMG$argv[2].MP4 -codec copy $argv[3]
else
ffmpeg -ss $argv[1] -to $argv[2] -i IMG_$IPAD_IMG$argv[3].MP4 -codec copy $argv[4]
end
end

View File

@@ -1,3 +0,0 @@
function mpv-ipad-mov
mpv IMG_$IPAD_IMG$argv[1].MOV
end

View File

@@ -1,3 +0,0 @@
function mpv-ipad
mpv IMG_$IPAD_IMG$argv[1].MP4
end

View File

@@ -1,3 +0,0 @@
function rm-ipad
rm IMG_$IPAD_IMG$argv[1].MP4
end

View File

@@ -1,3 +0,0 @@
function rsync-ipad-vid-mov
rsync --ignore-existing -Ptr IMG_$IPAD_IMG$argv[1].MOV ~/Videos/fortnite/
end

View File

@@ -1,5 +0,0 @@
function rsync-ipad-vid
#rsync --ignore-existing -Ptr IMG_$IPAD_IMG$argv[1].MP4 /mnt/linux-files-2/Videos/ipad/fortnite/name
rsync --ignore-existing -Ptr IMG_$IPAD_IMG$argv[1].MP4 /mnt/linux-files-3/fortnite
#rsync --ignore-existing -Ptr IMG_$IPAD_IMG$argv[1].MP4 ~/Videos/fortnite/
end

View File

@@ -1,4 +0,0 @@
function unmount-ipad
fuser -km /mnt/ipad
fusermount -u /mnt/ipad
end

View File

@@ -1,3 +0,0 @@
function libreoffice-silent
libreoffice $argv[1] &
end

View File

@@ -2,7 +2,7 @@ function man-vim
if count $argv > /dev/null
set prog $argv[1]
else
set prog (apropos . | gawk '{ print $1 }' | fzf -e)
set prog (apropos . | awk '{ print $1 }' | fzf -e)
end
nvim -c ":Man $prog" -c "only"

View File

@@ -1,4 +0,0 @@
function maven-test-method
mvn "-Dtest=$argv[1]#*$argv[2]*" clean test
# mvn "-Dtest=$argv[1]#*$argv[2]*" test
end

View File

@@ -1,3 +0,0 @@
function mpv-sub
mpv $argv[1] --sub-file=$argv[2]
end

View File

@@ -1,3 +0,0 @@
function mute-video
ffmpeg -i $argv[1] -c copy -an $argv[2]
end

View File

@@ -0,0 +1,3 @@
function oc-get-events
oc get events --field-selector involvedObject.name="$argv[1]"
end

View File

@@ -1,3 +0,0 @@
function qalc-update
qalc -e "$argv[1]USD to CAD"
end

View File

@@ -1,3 +0,0 @@
function qalc-update
qalc -e "$argv[1]USD to CAD"
end

View File

@@ -1,3 +0,0 @@
function readlink-cp
readlink -f $argv[1] | xclip -selection clipboard
end

View File

@@ -0,0 +1,5 @@
function redeploy-operator
oc delete deployment kogito-operator
make deploy-operator-on-ocp
oc get pods -w
end

View File

@@ -1,13 +0,0 @@
function refresh-config
chezmoi apply
and echo 'Applied chezmoi.'
# and tmux source-file ~/.tmux.conf
# and echo 'Sourced tmux config.'
sync-shortcuts
echo 'Synced shortcuts.'
source ~/.config/fish/key_abbr.fish > /dev/null
and echo 'Sourced shortcuts.'
and echo 'Reloading fish.'
and exec fish
end

View File

@@ -1,3 +0,0 @@
function reminder
termdown $argv[2] && notify-send $argv[1]
end

View File

@@ -2,7 +2,6 @@ function scan-history
sudo systemctl start postgresql.service
# and systemctl status postgresql.service
and source $spv_dir/src/scripts/api-keys.sh
# and $spv_dir/src/scripts/update-history-2.sh
and $spv_dir/src/scripts/update-history.sh
and cat $spv_dir/src/api/management/commands/update-history.log | tail -n 1
end

View File

@@ -1,7 +0,0 @@
function scp-vid
set dest_dir "/mnt/linux-files/Videos/personal-fortnite-games/review"
if test $argv[1] = 'pogo'
set dest_dir "/mnt/linux-files/Videos/pokemon-go"
end
scp -P 8022 192.168.0.18:/data/data/com.termux/files/home/storage/dcim/\'Screen\ recordings\'/$argv[2] $dest_dir
end

View File

@@ -1,4 +1,4 @@
function task-anno
task $argv[2] annotate $argv[1]
task $argv[1] annotate $argv[2]
and task
end

View File

@@ -1,4 +1,5 @@
function task-delete
task $argv[1] delete
and task sync
and task
end

View File

@@ -1,4 +1,5 @@
function task-done
task $argv[1] done
and task sync
and task
end

View File

@@ -1,3 +0,0 @@
function taskopen-new
echo "md" | taskopen -A $argv[1] && taskopen -A $argv[1]
end

View File

@@ -1,12 +0,0 @@
📅 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!
---

View File

@@ -1,5 +0,0 @@
function timetrace-list
timetrace list records today | head -n 6
timetrace list records today | awk 'NR>6 && /^\+/{exit} NR>6' | sort -t '|' -k3,3
timetrace list records today | tail -n 3
end

View File

@@ -1,4 +1,3 @@
function us-to-cad
# qalc -e "$argv[1]\$ to CAD"
qalc "$argv[1]\$ to CAD"
end

View File

@@ -1,4 +0,0 @@
function video-to-gif
# ffmpeg -i $argv[1] -filter_complex "[0:v]setpts=0.5*PTS,fps=24,split [a][b];[a] palettegen [p];[b][p] paletteuse" $argv[2]
ffmpeg -i $argv[1] -filter_complex "[0:v]fps=24,split [a][b];[a] palettegen [p];[b][p] paletteuse" $argv[2]
end

View File

@@ -1,10 +0,0 @@
function vpn-red-hat
if test $argv[1] = 'up'
sudo systemctl start NetworkManager.service
and sleep 3
and nmcli con up id "1 - Red Hat Global VPN" --ask
else if test $argv[1] = 'down'
nmcli con down id "1 - Red Hat Global VPN"
and sudo systemctl stop NetworkManager.service
end
end

View File

@@ -1,11 +1,7 @@
function watson-add-fortnite
set year_month "2020-08"
set start_time "$year_month-$argv[1] $argv[2]"
set end_time "$year_month-$argv[3] $argv[4]"
if test (count $argv) -eq 4
watson add -f $start_time -t $end_time fun +fortnite
watson add -f "2020-04-$argv[1] $argv[2]" -t "2020-04-$argv[3] $argv[4]" fun +fortnite
else
watson add -f $start_time -t $end_time fun +fortnite +$argv[5]
watson add -f "2020-04-$argv[1] $argv[2]" -t "2020-04-$argv[3] $argv[4]" fun +fortnite +$argv[5]
end
end

View File

@@ -1,11 +0,0 @@
function watson-add-game
set year_month (date -u +"%Y-%m")
set start_time "$year_month-$argv[2] $argv[3]"
set end_time "$year_month-$argv[4] $argv[5]"
if test (count $argv) -eq 5
watson add -f $start_time -t $end_time fun +$argv[1]
else
watson add -f $start_time -t $end_time fun +$argv[1] +$argv[6]
end
end

View File

@@ -1,5 +0,0 @@
function wget-all
for url in $argv
wget $url
end
end

View File

@@ -1,3 +0,0 @@
function wget-name
wget $argv[1] -O $argv[2]
end

View File

@@ -1,49 +1,35 @@
# startup [[[ #
# set $term urxvt
# set $term_alt st
set $term kitty
#set $term gnome-terminal
set $term_alt urxvt
# set $term st
# set $term_alt urxvt
{{ if eq .chezmoi.hostname "x1-carbon" }}
set $term urxvt
# set $term_alt kitty
set $term_alt st
# set $term_alt urxvt
#exec dunst
exec /usr/lib/notification-daemon-1.0/notification-daemon
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
exec dunst
exec compton
exec imwheel
exec numlockx on
exec xbacklight -set 10
# exec wal -i "$(/home/kevin/scripts/shuffler \"/home/kevin/Pictures/Backgrounds/dim/non-editing\")"
exec wal -i $(/home/kevin/scripts/shuffler "$HOME/Pictures/Backgrounds/dim/editing")
exec wal -i $(/home/kevin/scripts/shuffler "$HOME/Pictures/Backgrounds/dim/non-editing")
{{ end }}
# exec xrdb ~/.Xresources && grep wallpaper ~/.cache/wal/colors.sh | cut -d\' -f2 | xargs wal -i > /dev/null
# exec --no-startup-id i3-msg 'workspace $ws1; exec $term'
# exec --no-startup-id i3-msg 'workspace $ws2; exec $term -e fish -c "tmux-attach fortnite"'
exec --no-startup-id i3-msg 'workspace $ws1; exec $term'
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 signal-desktop'
# 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 $ws6; exec discord
#exec --no-startup-id i3-msg 'workspace $ws6; exec signal-desktop'
# exec --no-startup-id i3-msg workspace $ws1; exec $term -e fish -c 'tmux-attach school'
# exec --no-startup-id i3-msg 'workspace $ws6; exec discord'
# ]]] startup #
# applications [[[ #
set $mod Mod1
#set $browser "firefox"
set $browser "google-chrome"
#set $browser_secondary "chromium"
#set $browser_secondary "google-chrome-stable"
# set $browser "chromium"
set $browser_secondary "firefox"
set $browser "firefox"
# set $browser "chromium-browser"
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 [[[ #
@@ -55,7 +41,8 @@ bindsym Control+Shift+Return exec st -A1
bindsym Control+$mod+Return exec $term_alt
# bindsym Control+$mod+Return exec st
# PROTIP: You can also dynamically set dmenu's colors this way:
bindsym Mod4+Return exec /home/kevin/scripts/dmenu-history -nb "$fg" -nf "$bg" -sb "$bg" -sf "$fg"
# bindsym Mod4+Return exec /home/kevin/scripts/dmenu-history -nb "$fg" -nf "$bg" -sb "$bg" -sf "$fg"
bindsym Mod4+Return exec ~/scripts/dmenu-history -nb "$fg" -nf "$bg" -sb "$bg" -sf "$fg"
# bindsym Mod4+Return exec dmenu_run -nb "$fg" -nf "$bg" -sb "$bg" -sf "$fg"
# bindsym Mod4+Return exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
@@ -63,45 +50,34 @@ bindsym Mod4+Return exec /home/kevin/scripts/dmenu-history -nb "$fg" -nf "$bg" -
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# bindsym Mod4+b layout tabbed; exec zathura
# bindsym Mod4+c exec $browser
# bindsym Mod4+$mod+c exec chatterino
#bindsym Mod4+c exec chatterino
bindsym Mod4+c exec pass -c finances/metamask
bindsym Mod4+$mod+c exec $browser
bindsym Mod4+c exec $browser
# bindsym Mod4+e exec notify-send "HPS Word Count" "$(pdftotext /home/kevin/school/latex-notes/hps/essay.pdf - | wc -w)"
# bindsym Mod4+e exec emacs
# bindsym Mod4+e exec ~/scripts/twem
bindsym Mod4+e exec ~/scripts/twem
# bindsym Mod4+f exec firefox
# bindsym Mod4+f exec firefox --private-window
# bindsym Mod4+f exec firefox --private-window google.ca
bindsym Mod4+f exec firefox --private-window
# bindsym Mod4+$mod+f exec printf 'Kevin@fosstodon.org' | xclip -selection clipboard
# bindsym Mod4+h exec sleep .2 && xdotool type '.hint'
# bindsym Mod4+$mod+h exec $type_delay_cmd && xdotool type 'kevin.mok@live.ca'
bindsym Mod4+h exec $type_delay_cmd && xdotool type 'kevin.mok@live.ca'
# bindsym Mod4+$mod+h exec sleep .2 && xdotool type '.hint'
bindsym Mod4+h exec sleep .2 && xdotool type '.hint'
bindsym Mod4+$mod+h exec $type_delay_cmd && xdotool type 'kevin.mok@live.ca'
bindsym Mod4+$mod+i exec sleep .2 && xdotool type '.info latest'
bindsym Mod4+l exec ~/scripts/dmenu-twitch
# bindsym Mod4+m exec $term -e ~/scripts/vim-man
bindsym Mod4+m exec $type_delay_cmd && xdotool type 'me@kevin-mok.com'
# bindsym Mod4+$mod+m exec pass -c uoft/markus
bindsym Mod4+n exec $term -e nvim
# bindsym Mod4+$mod+o exec xset dpms force off
bindsym Mod4+o exec xclip -selection clipboard ~/.password-store/social/gmail && $type_delay_cmd && xdotool key 'Control_L+v'
bindsym $mod+Mod4+o workspace $ws11; exec obs
# bindsym Mod4+o exec $type_delay_cmd && xdotool key 'Control_L+v'
bindsym Mod4+$mod+o exec xset dpms force off
# bindsym Mod4+p workspace $ws4; exec pgadmin3
# bindsym Mod4+p exec pycharm
#bindsym Mod4+p exec passmenu
bindsym Mod4+p exec /home/kevin/scripts/passmenu
# # bindsym Mod4+p exec sleep .2 && xdotool type '.catch '
bindsym Mod4+p exec sleep .2 && xdotool type '.catch '
bindsym Mod4+$mod+p exec passmenu
# bindsym Mod4+$mod+p exec notify-send "ping" "$(ping -c 3 -W 1 8.8.8.8)"
# bindsym Mod4+q exec qdirstat
bindsym Mod4+q exec printf 'emad1 ' | xclip -selection clipboard && $type_delay_cmd && xdotool key 'Control_L+v'
bindsym Mod4+r exec $type_delay_cmd && xdotool type 'kmok@redhat.com'
bindsym Mod4+$mod+r exec pass show -c career/redhat && $type_delay_cmd && xdotool key 'Control_L+v'
# bindsym Mod4+$mod+r exec $term -e ranger
# bindsym Mod4+$mod+r exec notify-send "watson restart" "$(watson restart)"
bindsym Mod4+r exec $term -e ranger
bindsym Mod4+$mod+r exec notify-send "watson restart" "$(watson restart)"
bindsym Mod4+$mod+s exec $type_delay_cmd && xdotool type 'https://smol.gq/'
bindsym Mod4+$mod+t exec xclip -selection clipboard ~/.password-store/social/trapbot && $type_delay_cmd && xdotool key 'Control_L+v'
bindsym Mod4+t exec xclip -selection clipboard ~/.password-store/social/trapbot && $type_delay_cmd && xdotool key 'Control_L+v'
bindsym Mod4+u exec $type_delay_cmd && xdotool type 'kevin.mok@mail.utoronto.ca'
# bindsym Mod4+$mod+u exec pass -c uoft/acorn
# bindsym Mod4+w exec notify-send "watson status" "$(watson status)"
@@ -110,28 +86,16 @@ bindsym Control+Mod4+w exec $term -e nvim /home/kevin/.config/watson/state.tmp
# bindsym Mod4+x exec $swex
bindsym Control+$mod+x exec $type_delay_cmd && xdotool type 'http://codm.ataraxy.tk/'
bindsym Mod4+z exec cliqz
bindsym Pause exec ~/scripts/twem
# screenshot [[[ #
set $screenshot_folder "/home/kevin/Pictures/screenshots/desktop/unsorted"
set $scripts_path "/home/kevin/scripts"
{{ if .ext_kb }}
# bindsym Mod4+x exec ~/scripts/xmodmap-custom
bindsym Mod4+x exec notify-send "xmodmap" "$(~/scripts/xmodmap-custom)"
# bindsym Mod4+e exec notify-send "HPS Word Count" "$(pdftotext /home/kevin/school/latex-notes/hps/essay.pdf - | wc -w)"
#bindsym Print --release exec "scrot -s $screenshot_folder/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
#bindsym Print --release exec --no-startup-id scrot -s "/home/kevin/Pictures/screenshots/desktop/unsorted/screenshot-$(date +%F_%T).png" -e 'xclip -selection c -t image/png < $f'
bindsym Print --release exec "maim -su | tee ~/Pictures/screenshots/desktop/unsorted/screenshot-$(date +%F_%T).png | xclip -selection clipboard -t image/png"
bindsym Control+Print --release exec "scrot -u ~/Pictures/screenshots/desktop/unsorted/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
bindsym Mod4+x exec ~/scripts/xmodmap-custom
bindsym Print --release exec "scrot -s ~/tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
bindsym Control+Print --release exec "scrot -u ~/tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
{{ else }}
bindsym Mod4+x exec xmodmap ~/.Xmodmap-laptop && xset r rate $XSET_DELAY $XSET_RATE
bindsym Control+p --release exec "scrot -s ~/tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
bindsym Control+$mod+p --release exec "scrot -u ~/tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
bindsym Control+$mod+p --release exec "maim -s ~/tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
bindsym Control+Shift+p --release exec "maim -u ~/tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
{{ end }}
# ]]] screenshot #
# ]]] app shortcuts #
# redshift [[[ #
@@ -141,13 +105,13 @@ bindsym $mod+Mod4+2 exec redshift -x && redshift -O 2000
bindsym $mod+Mod4+3 exec redshift -x && redshift -O 3000
bindsym $mod+Mod4+4 exec redshift -x && redshift -O 4000
bindsym $mod+Mod4+5 exec redshift -x && redshift -O 5000
bindsym $mod+Mod4+grave exec redshift -x
bindsym $mod+Mod4+grave exec Redshift -x
# ]]] redshift #
# backlight [[[ #
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
bindsym Shift+F1 exec xbacklight -set 10
bindsym Shift+F2 exec xbacklight -set 20
bindsym Shift+F3 exec xbacklight -set 30
@@ -158,6 +122,7 @@ bindsym Shift+F7 exec xbacklight -set 70
bindsym Shift+F8 exec xbacklight -set 80
bindsym Shift+F9 exec xbacklight -set 90
bindsym Shift+F10 exec xbacklight -set 100
bindsym Shift+grave exec xbacklight -set 0
bindsym Control+$mod+plus exec xbacklight -inc 2
bindsym Control+$mod+minus exec xbacklight -dec 2
@@ -168,11 +133,8 @@ bindsym Control+$mod+q exec sudo systemctl stop netctl-auto@wlp3s0.service
# ]]] backlight #
for_window [class="chatterino"] floating enable
for_window [class="Peek"] floating enable
for_window [title="Qalculate!"] floating enable
for_window [window_role="alert"] floating enable
no_focus [window_role="alert"]
# ]]] applications #
@@ -216,10 +178,10 @@ for_window [class="^.*"] border pixel 3
# gaps inner $inner_gaps
# gaps outer $outer_gaps
# gaps bottom 0
gaps inner 0
gaps outer 0
{{ if eq .chezmoi.hostname "nzxt" }}
# border_radius $border_radius
# gaps inner 0
# gaps outer 0
{{ if eq .chezmoi.fullHostname "nzxt" }}
border_radius $border_radius
{{ end }}
# other gaps [[[ #
@@ -276,7 +238,7 @@ bindsym $mod+minus move workspace to output left
bindsym $mod+plus move workspace to output right
# move focused window
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
bindsym Control+Shift+h move left 50px
bindsym Control+Shift+j move down 50px
bindsym Control+Shift+k move up 50px
@@ -319,7 +281,7 @@ bindsym Control+$mod+a floating enable; resize set 400px 150px; move absolute po
set $make_st_script "/home/kevin/st/make-st.sh"
# test
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
bindsym Control+Shift+q exec wal -i $($scripts_path/shuffler "$HOME/Pictures/Backgrounds/bright/editing") && $make_st_script
bindsym Control+Shift+w exec wal -i $($scripts_path/shuffler "$HOME/Pictures/Backgrounds/dim/non-editing") && $make_st_script
bindsym Control+$mod+z exec feh --bg-fill ~/Pictures/Backgrounds/dim/black.jpg
@@ -334,87 +296,59 @@ bindsym Control+$mod+y exec wal -i $($scripts_path/shuffler "$HOME/Pictures/Back
# ws names [[[ #
set $ws1 "1  "
{{ if eq .chezmoi.hostname "x1-carbon" }}
set $ws1 "1 "
{{ if or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
set $secondary "HDMI2"
set $main "eDP1"
{{ else if eq .chezmoi.hostname "nzxt" }}
# {{ else if eq .linux_os "fedora" }}
# set $secondary "HDMI2"
# set $main "eDP-1"
{{ else if eq .chezmoi.fullHostname "nzxt" }}
set $secondary "DVI-I-1"
set $main "HDMI-0"
{{ end }}
set $secondary "DVI-D-0"
set $main "HDMI-0"
# workspace $ws1 output $main
workspace $ws1 output $secondary
workspace $ws1 output $main
bindsym $mod+F1 workspace $ws1; exec $term
bindsym Mod4+$mod+F1 workspace $ws1; exec chatterino
bindsym Control+Shift+F1 workspace $ws1; exec $term -e fish -c 'tmux-attach school'
# bindsym Control+Shift+F1 workspace $ws1; exec $term -e fish -c 'tmux-attach nft'
set $ws2 "2  "
set $work_laptop_ip "192.168.0.11"
set $ws2 "2 "
workspace $ws2 output $secondary
bindsym $mod+F2 workspace $ws2; exec $term
# bindsym Control+Shift+F2 workspace $ws2; exec $term -e mosh kmok@$work_laptop_ip -- tmux a -t nzxt
# bindsym Control+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach fortnite'
# bindsym Control+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach nft-2'
bindsym Control+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach school-2'
bindsym $mod+Shift+F2 workspace $ws2; exec $term -e mosh kmok@$work_laptop_ip -- tmux a -t nzxt-2
# bindsym Control+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach codm'
bindsym Control+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach fortnite'
bindsym Control+$mod+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach crimson'
# bindsym Control+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach crimson'
# bindsym Control+$mod+Shift+F2 workspace $ws2; exec $term -e fish -c 'tmux-attach codm'
# ws3 [[[ #
#set $ws3 "3  "
set $ws3 "3  "
set $ws3 "3 "
# set $ws3 "3 "
# workspace $ws3 output $main
# bindsym $mod+F3 workspace $ws3; exec $browser
# bindsym $mod+F3 exec $browser; move container to workspace $ws3; workspace $ws3
bindsym $mod+F3 exec $browser
bindsym Control+Shift+F3 workspace $ws3; exec firefox -P work
# bindsym Mod4+$mod+F3 workspace $ws3; exec $browser_secondary
bindsym Mod4+$mod+F3 workspace $ws3; exec firefox -P default
# bindsym Mod4+$mod+F3 workspace $ws3; exec firefox -P work
bindsym $mod+F3 workspace $ws3; exec $browser
# bindsym Mod4+b workspace $ws3; layout stacked; exec $term -e fish -c "buku-fzf"
# bindsym Mod4+$mod+b workspace $ws3; layout stacked; exec $term -e fish -c "buku-fzf fq"
# bindsym Mod4+b layout stacked; exec $term -e fish -c "buku-fzf"
# bindsym Mod4+$mod+b layout stacked; exec $term -e fish -c "buku-fzf fq"
bindsym Mod4+b layout tabbed; exec $term -e fish -c "buku-fzf"
bindsym Mod4+$mod+b layout tabbed; exec $term -e fish -c "buku-fzf fq"
# bindsym Mod4+g workspace $ws3; layout tabbed; exec gimp
bindsym Mod4+g workspace $ws3; layout tabbed; exec gimp
# ]]] ws3 #
set $ws4 "4 󱓧 "
set $ws4 "4 "
workspace $ws4 output $secondary
# bindsym $mod+F4 workspace $ws4; exec $term
# bindsym Control+Shift+F4 workspace $ws4; exec $term -e fish -c 'tmux-attach misc'
bindsym $mod+F4 workspace $ws4; exec $term -e fish -c 'tmux-attach misc'
# bindsym Mod4+$mod+F4 workspace $ws4; exec urxvt -e ranger $screenshot_folder
bindsym Mod4+$mod+F4 workspace $ws4; exec kitty ranger $screenshot_folder
bindsym Mod4+e workspace $ws4; exec libreoffice ~/Documents/expenses/investments.ods
bindsym Mod4+g workspace $ws4; layout tabbed; exec gimp
bindsym $mod+F4 workspace $ws4; exec $term
# ws5 [[[ #
set $ws5 "5  "
set $ws5 "5 "
# workspace $ws5 output $secondary
assign [class="Steam"] $ws5
bindsym $mod+F5 workspace $ws5; exec $browser
# bindsym $mod+Mod4+F5 workspace $ws5; exec firefox -P work
bindsym $mod+Mod4+F5 workspace $ws5; exec firefox -P nft
# bindsym $mod+Mod4+F5 workspace $ws5; exec firefox --private-window
bindsym Control+Shift+F5 workspace $ws5; exec firefox -P work
bindsym Mod4+f workspace $ws5; exec firefox --private-window google.ca
bindsym $mod+Shift+F5 workspace $ws5; exec $browser_secondary
bindsym $mod+Mod4+F5 workspace $ws5; exec firefox --private-window
# bindsym Mod4+g workspace $ws5; layout stacking; exec $term -e steam
# bindsym Mod4+g workspace $ws5; layout tabbed; exec gimp
# bindsym Mod4+g workspace $ws5; exec mgba-qt
# bindsym Mod4+i workspace $ws5; exec idea
bindsym Mod4+i workspace $ws5; exec idea
# bindsym Mod4+m workspace $ws5; layout tabbed; exec $term -e ~/.minetest/minetest/bin/minetest
# bindsym Mod4+$mod+t workspace $ws5; exec thunderbird
bindsym Mod4+$mod+t workspace $ws5; exec thunderbird
# bindsym Mod4+$mod+w workspace $ws5; exec $term -e twitchy
# bindsym Mod4+w workspace $ws5; exec $term -e twitchy
bindsym Mod4+w workspace $ws5; exec $term -e twitchy
bindsym Mod4+5 workspace $ws5; exec godot
bindsym Mod4+F5 workspace $ws5; exec cd ~/coding/ada-mario && godot -e
# for_window [class="Move_mouse_with_head"] floating enable; move absolute position 0 0
@@ -424,50 +358,40 @@ for_window [class="ada-mario"] floating enable
# for_window [class="ada-mario"] move absolute position 930 480
for_window [class="ada-mario"] move absolute position 640 0
# ]]] ws5 #
# ws6 [[[ #
set $ws6 "6  "
set $ws6 "6 "
workspace $ws6 output $secondary
assign [class="Slack"] $ws6
bindsym Mod4+d workspace $ws6; exec vesktop
bindsym Mod4+$mod+d workspace $ws6; exec element-desktop
bindsym Mod4+i workspace $ws6; exec signal-desktop
# bindsym Mod4+d workspace $ws6; exec firefox -new-window https://riot.im/app
# bindsym Mod4+$mod+d workspace $ws6; exec discord
# bindsym Mod4+d workspace $ws6; exec riot-desktop
bindsym Mod4+d workspace $ws6; exec firefox -new-window https://riot.im/app
bindsym Mod4+$mod+d workspace $ws6; exec discord
# bindsym Mod4+d workspace $ws6; exec discord
# bindsym Mod4+$mod+d workspace $ws6; exec riot-desktop
# bindsym Mod4+d workspace $ws6; exec firefox --new-window https://discordapp.com/channels/430798446723727367/443950744996020228
# bindsym Mod4+i workspace $ws6; exec firefox -new-window https://riot.im/app
bindsym Mod4+k workspace $ws6; exec slack
# bindsym Mod4+i workspace $ws6; exec $term -e fish -c 'mosh kmok@$work_laptop_ip -- tmux a -t weechat'
# bindsym Mod4+i workspace $ws6; exec $term -e fish -c 'mosh kmok@$work_laptop_ip -- tmux a -t weechat'
# bindsym Mod4+i workspace $ws6; exec $term -e fish -c 'tmux-attach weechat'
# ]]] ws6 #
set $ws7 "7  "
set $ws7 "7 "
workspace $ws7 output $secondary
# bindsym $mod+F7 workspace $ws7; exec $term
# bindsym $mod+F7 workspace $ws7; exec $term -e mosh kmok@$work_laptop_ip -- tmux a -t nzxt
bindsym $mod+F7 workspace $ws7; exec $term
bindsym Mod4+$mod+F7 workspace $ws7; exec $term -e mosh --ssh='ssh -p 399' kevin@165.22.239.234 tmux a
bindsym $mod+Shift+F7 workspace $ws7; exec chromium https://txstreet.com/v/eth
bindsym $mod+F7 workspace $ws7; exec $term -e mosh --ssh='ssh -p 399' kevin@165.22.239.234 tmux a
bindsym Mod4+a workspace $ws7; exec android-file-transfer
# bindsym Mod4+v workspace $ws7; exec VBoxManage startvm "369-a1"
set $ws8 "8  "
set $ws8 "8 "
# assign [class="jetbrains-"] $ws8
workspace $ws8 output $secondary
# bindsym $mod+F8 workspace $ws8; exec $term
# bindsym $mod+F8 workspace $ws8; exec $term -e tmux a -t journal
bindsym $mod+F8 workspace $ws8; exec $term -e fish -c 'tmux-attach journal'
bindsym Mod4+$mod+F8 workspace $ws8; exec libreoffice ~/Documents/sit-stand/sit-stand.ods
bindsym $mod+Shift+F8 workspace $ws8; exec libreoffice ~/Documents/red-hat/workday.ods
set $ws9 "9  "
set $ws9 "9 "
workspace $ws9 output $secondary
# bindsym $mod+F9 workspace $ws9; exec $term
# bindsym $mod+F9 workspace $ws9; exec $term -e tmux a -t config
bindsym $mod+F9 workspace $ws9; exec $term -e fish -c 'tmux-attach config'
set $ws10 "10  "
set $ws10 "10 "
# set $ws10 "10 🎵"
assign [class="spotify"] $ws10
workspace $ws10 output $secondary
@@ -476,19 +400,13 @@ set $hp 2
bindsym Mod4+v workspace $ws10; exec $term -e alsamixer -c 1
# bindsym Mod4+$mod+c workspace $ws10; exec $term -e cava
# bindsym Mod4+h workspace $ws10; exec $term -e alsamixer -c $hp
# bindsym Mod4+s workspace $ws10; exec ~/scripts/spotify-clean
bindsym Mod4+s workspace $ws10; exec spotify
set $ws11 "11  "
set $ws11 "11 "
# set $ws11 "11 📊"
# assign [class="Summoners War Exporter"] $ws11
workspace $ws11 output $secondary
# bindsym $mod+F11 workspace $ws11; exec $term -e htop -s PERCENT_CPU
#bindsym $mod+F11 workspace $ws11; exec $term -e htop -s PERCENT_MEM
bindsym $mod+F11 workspace $ws11; exec $term -e btop
# 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 Mod4+t workspace $ws11; exec nordvpn connect && transmission-gtk
bindsym $mod+F11 workspace $ws11; exec $term -e htop -s PERCENT_CPU
# bindsym $mod+F11 workspace $ws11; exec $term -e gotop -m
# bindsym Mod4+a workspace $ws11; exec antimicro
@@ -564,9 +482,8 @@ bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcu
# bar vars [[[ #
# set $sb_font Hack NF Bold
set $sb_font Hack Nerd Font Mono Bold
# set $sb_font EmojiOne
# set $sb_font DejaVuSansMono Nerd Font Mono Bold
set $sb_font DejaVuSansMono Nerd Font Mono Bold
set $black #000000
set $white #ffffff
for_window [class="Yad"] floating enable
@@ -591,13 +508,14 @@ set $bar_trans 00
set $main_ws_trans aa
bar {
i3bar_command i3bar -t
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
font pango:$sb_font 17
{{ else if eq .linux_os "fedora" }}
# font pango:$sb_font 23
font pango:$sb_font 25
{{ else }}
# font pango:$sb_font 17
#font pango:$sb_font 16:pixelsize=5
#font pango:$sb_font 16
font pango:$sb_font 30
font pango:$sb_font 16
{{ end }}
colors {
# 0 (transparent) -> 255 (opaque) in hex
@@ -613,7 +531,6 @@ bar {
# status_command i3blocks -c ~/.config/i3blocks/i3blocks.conf
status_command 2>/tmp/i3blocks.err i3blocks -vvv -c ~/.config/i3blocks/i3blocks.conf | tee /tmp/i3blocks.out
output $main
# output $secondary
wheel_up_cmd nop
wheel_down_cmd nop
}
@@ -623,14 +540,11 @@ bar {
# secondary bar [[[ #
bar {
# output $main
output $secondary
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
font pango:$sb_font 18
{{ else }}
# font pango:$sb_font 21
font pango:$sb_font 30
#font pango:$sb_font 18
font pango:$sb_font 20
{{ end }}
# output $main
i3bar_command i3bar -t
@@ -687,17 +601,6 @@ 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

View File

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

View File

@@ -11,48 +11,18 @@ markup=pango
color=#cbe4ff
# ]]] Global properties #
# [ticker]
# label=$
# TICKER=GME
# interval=30
# # interval=10
# sys.monitoring [[[ #
#[temperature]
#label=
#interval=5
#[cpu_usage]
#label=
#interval=5
#[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]
# label=
# LONG_NAME=
# SHORT_NAME=
# interval=5
[spotify]
# command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
# label=
label=
# label=🎧
# green
# color=#198c19
# aqua
# color=#2d7272
interval=5
[volume]
interval=once
@@ -64,24 +34,26 @@ interval=60
# time [[[ #
[calendar]
interval=1
#label=
# DATEFMT=+%H:%M.%a-%m-%d
# DATEFMT=+%H:%M
#DATEFMT=+%H:%M
interval=30
label=
{{ if eq .chezmoi.fullHostname "nzxt" }}
DATEFMT=+%H:%M.%a-%m-%d
{{ else }}
DATEFMT=+%H:%M
{{ end }}
# SHORTFMT=+%H:%M:%S
#SHORTFMT=+%H:%M.%a-%m-%d
#HEIGHT=180
#WIDTH=220
SHORTFMT=+%H:%M.%a-%m-%d
HEIGHT=180
WIDTH=220
# ]]] time #
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
[temperature]
label=
interval=5
# [name]
# label=
# interval=30
[name]
label=
interval=30
{{ end }}

View File

@@ -13,112 +13,6 @@ color=#cbe4ff
# ]]] global #
# ticker [[[ #
# [ticker]
# label=SOL
# TICKER=SOL-USD
# interval=30
# [kraken]
# label=BLUR
# TICKER=BLURUSD
# interval=30
# [kraken]
# label=ARB
# TICKER=ARBUSD
# interval=30
#[dexscreener]
#label=HERO
##CHAIN=solana
##PAIR=B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
#command=/home/kevin/.config/i3blocks/scripts/dexscreener abstract 0x3771b51b5a705338fa19702f249afcaa94b0cd8c
#interval=5
#[kraken]
#label=BTC
##TICKER=BTCUSDC
##command=/home/kevin/.config/i3blocks/scripts/kraken BTCUSDC
#command=/home/kevin/.config/i3blocks/scripts/kraken BTCUSDC
#interval=30
[kraken]
label=ETH
#TICKER=ETHUSDC
command=/home/kevin/.config/i3blocks/scripts/kraken ETHUSDC
interval=30
## [ticker]
## label=btc
## ticker=btc-usd
## interval=30
#[kraken]
#label=SOL
##TICKER=SOLUSD
#command=/home/kevin/.config/i3blocks/scripts/kraken SOLUSD
#interval=30
# [kraken]
# label=SEI
# TICKER=SEIUSD
# interval=30
#[dexscreener]
#label=PIXL
##CHAIN=ethereum
##PAIR=0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
#command=/home/kevin/.config/i3blocks/scripts/dexscreener ethereum 0x31c0ba10e4e12be6cdceb612e5e829d977532bfc
#interval=30
#[dexscreener]
#label=PENGU
##CHAIN=solana
##PAIR=B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
#command=/home/kevin/.config/i3blocks/scripts/dexscreener solana B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
#interval=5
#[dexscreener-fdv]
#label=TRUMP
#command=/home/kevin/.config/i3blocks/scripts/dexscreener-fdv solana a8nphpcjqtqhdquk35uj9hy2ysgxfkczgunwvkd3k7vc
#interval=30
#[dexscreener]
#label=ANIME
#command=/home/kevin/.config/i3blocks/scripts/dexscreener arbitrum 0xbbf3209130df7d19356d72eb8a193e2d9ec5c234
#interval=30
#[dexscreener]
#label=TRUMP
#command=/home/kevin/.config/i3blocks/scripts/dexscreener solana a8nphpcjqtqhdquk35uj9hy2ysgxfkczgunwvkd3k7vc
#interval=30
#[kraken]
#label=AVAX
##TICKER=AVAXUSD
#command=/home/kevin/.config/i3blocks/scripts/kraken AVAXUSD
#interval=30
#[dexscreener]
#label=LOCK
#CHAIN=solana
#PAIR=AtWMAA6T9t8cq8XCccCFPGDNNQYXhScuNuY6WVRi7FKe
#interval=30
# [ticker]
# label=SPY
# TICKER=SPY
# interval=30
# [ticker]
# label=DAQ
# TICKER=^IXIC
# interval=30
# ]]] ticker #
# volume/spotify [[[ #
[volume]
@@ -126,28 +20,19 @@ interval=once
signal=1
interval=60
# [spotify]
# label=
# LONG_NAME=
# SHORT_NAME=
# interval=5
# [spotify]
# # command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
# # label=
# label=
# # label=🎧
# # green
# # color=#198c19
# # aqua
# # color=#2d7272
# interval=5
{{ if eq .chezmoi.fullHostname "nzxt" }}
[spotify]
label=
LONG_NAME=
SHORT_NAME=
interval=5
{{ end }}
# ]]] volume/spotify #
# laptop [[[ #
{{ if eq .chezmoi.hostname "x1-carbon" }}
{{ if or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
[battery]
label=⚡
interval=30
@@ -162,48 +47,57 @@ label=
interval=5
{{ end }}
# [wifi]
# label=
# instance=wlp4s0
# interval=10
# ]]] laptop #
# time [[[ #
[calendar]
interval=1
#label=
# DATEFMT=+%H:%M
interval=30
label=
DATEFMT=+%H:%M
# DATEFMT=+%H:%M.%a-%m-%d
# SHORTFMT=+%H:%M:%S
#HEIGHT=180
#WIDTH=220
HEIGHT=180
WIDTH=220
# ]]] time #
# sys.monitoring [[[ #
# [temperature]
# label=
# interval=5
{{ if eq .chezmoi.fullHostname "nzxt" }}
# [wifi]
# label=
# instance=wlp4s0
# interval=10
# [cpu_usage]
# label=
# interval=5
[temperature]
label=
interval=5
# [memory]
# label=
# # color=#3da061
# unbold this?
# [load_average]
# label=
# interval=5
# color=#990000
{{ end }}
[cpu_usage]
label=
interval=5
[memory]
label=
# color=#3da061
interval=5
# ]]] sys.monitoring #
# name [[[ #
# [name]
# label=
# interval=30
{{ if eq .chezmoi.fullHostname "nzxt" }}
[name]
label=
interval=30
{{ end }}
# ]]] name #

View File

@@ -5,7 +5,7 @@ round()
echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
};
. "/home/kevin/.cache/wal/colors.sh"
. "/home/$USER/.cache/wal/colors.sh"
cur_bl=$(xbacklight -get)
# echo "$(round "$cur_bl" 0)%"
printf "$(round "$cur_bl" 0)\n\n%s\n" "$color7"
printf " $(round "$cur_bl" 0)\n\n%s\n" "$color7"

View File

@@ -24,16 +24,12 @@ my $short_text;
my $bat_number = $ENV{BLOCK_INSTANCE} || 0;
# read the first line of the "acpi" command output
open (ACPI, "acpi -b 2>/dev/null| grep 'Battery $bat_number' |") or die;
open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die;
$acpi = <ACPI>;
close(ACPI);
# fail on unexpected output
if (not defined($acpi)) {
# don't print anything to stderr if there is no battery
exit(0);
}
elsif ($acpi !~ /: ([\w\s]+), (\d+)%/) {
if ($acpi !~ /: (\w+), (\d+)%/) {
die "$acpi\n";
}

View File

@@ -2,11 +2,8 @@
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:-"+%H:%M"}
SHORTFMT=${SHORTFMT:-"+%H:%M"}
DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"}
SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
OPTIND=1
while getopts ":f:W:H:" opt; do
@@ -40,7 +37,7 @@ case "$BLOCK_BUTTON" in
> /dev/null"
# --close-on-unfocus \
esac
. "/home/kevin/.cache/wal/colors.sh"
. "/home/$USER/.cache/wal/colors.sh"
echo "$LABEL$(date "$DATEFMT")"
echo "$LABEL$(date "$SHORTFMT")"
echo "$color7"

View File

@@ -1,8 +1,7 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
. "/home/$USER/.cache/wal/colors.sh"
idle="$(mpstat 1 1 -P ALL | sed -n -e '4{p;q}' | awk '{print $NF}')"
used=$(echo 100 - "$idle" | bc)
used_rounded=$(printf %.0f "$used")
printf "%s%%\n\n%s\n" "$used_rounded" "$color7"
printf " %s%%\n\n%s\n" "$used_rounded" "$color7"

View File

@@ -1,6 +0,0 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
#ticker=$(~/scripts/dexscreener $CHAIN $PAIR)
ticker=$(~/scripts/dexscreener $1 $2)
printf "%s\n\n%s\n" "$ticker" "$color7"

View File

@@ -1,6 +0,0 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
#ticker=$(~/scripts/dexscreener $CHAIN $PAIR)
ticker=$(~/scripts/dexscreener-fdv $1 $2)
printf "%s\n\n%s\n" "$ticker" "$color7"

View File

@@ -1,6 +0,0 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
#ticker=$(~/scripts/dexscreener $CHAIN $PAIR)
ticker=$(~/scripts/dexscreener-mc $1 $2)
printf "%s\n\n%s\n" "$ticker" "$color7"

View File

@@ -1,4 +0,0 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
printf "Kevin\n\n%s\n" "$color7"

View File

@@ -1,6 +0,0 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
#ticker=$(~/scripts/kraken $TICKER)
ticker=$(~/scripts/kraken $1)
printf "%s\n\n%s\n" "$ticker" "$color7"

View File

@@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
TYPE="${BLOCK_INSTANCE:-mem}"
. "/home/kevin/.cache/wal/colors.sh"
. "/home/$USER/.cache/wal/colors.sh"
awk -v type=$TYPE '
/^MemTotal:/ {

View File

@@ -9,8 +9,6 @@ case "$BLOCK_BUTTON" in
esac
. "/home/kevin/.cache/wal/colors.sh"
#long_title=$(spotify-now -i "$LONG_NAME" -p '' -e '' | sed 's/&/&amp;/g')
#short_title=$(spotify-now -i "$SHORT_NAME" -p '' -e '' | sed 's/&/&amp;/g')
long_title=$(spotify-now)
short_title=$(spotify-now)
long_title=$(spotify-now -i "$LONG_NAME" -p '' -e '' | sed 's/&/&amp;/g')
short_title=$(spotify-now -i "$SHORT_NAME" -p '' -e '' | sed 's/&/&amp;/g')
printf "$long_title\n$short_title\n%s\n" "$color7"

View File

@@ -2,6 +2,6 @@
. "/home/kevin/.cache/wal/colors.sh"
# Read from k10temp's Tctl sensor for AMD CPU temperature
temp="$(sensors | rg 'Tctl:' | awk '{ print $2 }' | rg -o '\d{2}' | sed 's/$/°C/')"
printf "%s\n\n%s\n" "$temp" "$color7"
temps="$(sensors | rg 'temp1:.*' | awk '{ print $2 }' | rg -o '\d{2}' | \
sort -r | sed 's/$/°C/' | tr '\n' ' ' | xargs)"
printf "%s\n\n%s\n" "$temps" "$color7"

View File

@@ -1,5 +0,0 @@
#!/bin/bash
. "/home/kevin/.cache/wal/colors.sh"
ticker=$(~/scripts/ticker $TICKER)
printf "%s\n\n%s\n" "$ticker" "$color7"

View File

@@ -1,22 +0,0 @@
#!/bin/bash
#. "/home/kevin/.cache/wal/colors.sh"
#printf " $(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7"
# echo "<span foreground=\"%s\">$(date '+%H:%M.%a-%m-%d')%s</span>" "$color2"
# printf "%s" "$color2"
# Load colors from pywal cache
. "/home/kevin/.cache/wal/colors.sh"
# Define the date format matching the output in your screenshot (e.g., Sat 12/06 12:46)
#DATE_FORMAT='+%a %m/%d %H:%M'
DATE_FORMAT='%H:%M'
# Use Pango markup to wrap the entire string, applying the color,
# and explicitly defining the icon () and the date output.
# The icon is U+F017.
printf "<span foreground=\"%s\"> %s</span>\n" "$color7" "$(date "$DATE_FORMAT")"
# The next two lines are optional for i3blocks but usually required for color output:
printf "\n" # Short text (optional)
printf "%s\n" "$color7" # Color (optional, but good practice)

View File

@@ -0,0 +1,5 @@
#!/bin/bash
printf "$(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7"
# echo "<span foreground=\"%s\">$(date '+%H:%M.%a-%m-%d')%s</span>" "$color2"
# printf "%s" "$color2"

View File

@@ -17,7 +17,7 @@ AUDIO_LOW_SYMBOL=${AUDIO_LOW_SYMBOL:-''}
AUDIO_MUTED_SYMBOL=${AUDIO_MUTED_SYMBOL:-''}
. "/home/kevin/.cache/wal/colors.sh"
. "/home/$USER/.cache/wal/colors.sh"
# DEFAULT_COLOR=${DEFAULT_COLOR:-"#ffffff"}
DEFAULT_COLOR="$color7"
MUTED_COLOR=${MUTED_COLOR:-"#a0a0a0"}
@@ -32,9 +32,7 @@ SCONTROL=${SCONTROL:-""}
# }}} default vars #
AUDIO_DELTA=${AUDIO_DELTA:-3}
# AUDIO_DELTA=${AUDIO_DELTA:-2}
# AUDIO_DELTA=${AUDIO_DELTA:-1}
AUDIO_DELTA=${AUDIO_DELTA:-5}
# LONG_FORMAT=${LONG_FORMAT:-'${SYMB} ${VOL}% [${INDEX}:${NAME}]'}
LONG_FORMAT=${SHORT_FORMAT:-'${SINK_SYMB} ${VOL}%'}
@@ -92,13 +90,14 @@ done
# functions {{{ #
if [[ -z "$MIXER" ]] ; then
# Use the default ALSA mixer
MIXER="default"
if amixer -D pulse info >/dev/null 2>&1 ; then
MIXER="pulse"
fi
fi
if [[ -z "$SCONTROL" ]] ; then
# Use the 'Master' control
SCONTROL="Master"
SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
fi
CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/ Capabilities:.*cvolume.*/Capture/p")
@@ -141,18 +140,20 @@ esac
# print_format {{{ #
function print_format {
# echo $NAME
case $NAME in
*"Fiio"*)
*"USB"*)
SINK_SYMB=""
;;
*"hdmi"*)
SINK_SYMB=""
;;
*"pci"*)
SINK_SYMB=" "
SINK_SYMB=""
;;
esac
eval "echo \"$1\""
# echo "$1" | envsubst '${SYMB}${VOL}${INDEX}${NAME}'
echo "$1" | envsubst '${SINK_SYMB}${VOL}${INDEX}${NAME}'
}
# }}} print_format #
@@ -160,25 +161,38 @@ function print_format {
# print_block {{{ #
function print_block {
# Use amixer to get volume and mute status
VOL_INFO=$(amixer -D $MIXER get $SCONTROL | grep -m1 -oE '[0-9]+%|\[on\]|\[off\]')
VOL=$(echo "$VOL_INFO" | grep -oE '[0-9]+%' | head -1)
for name in INDEX NAME VOL MUTED; do
read $name
done < <(pacmd list-sinks | grep "index:\|name:\|volume: front\|muted:" | grep -A3 '*')
INDEX=$(echo "$INDEX" | grep -o '[0-9]\+')
VOL=$(echo "$VOL" | grep -o "[0-9]*%" | head -1 )
VOL="${VOL%?}"
MUTED=$(echo "$VOL_INFO" | grep -oE '\[on\]|\[off\]')
# Default name for ALSA
NAME=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
NAME=$(echo "$NAME")
# NAME=$(echo "$NAME" | sed \
# 's/.*<.*\.\(.*\)>.*/\1/; t;'\
# 's/.*<\(.*\)>.*/\1/; t;'\
# 's/.*/unknown/')
# NAME=$(echo "$NAME" | sed \
# 's/.*<.*\.\(.*\)\..*>.*/\1/; t;')
if [[ $USE_ALSA_NAME == 1 ]] ; then
ALSA_NAME=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
ALSA_NAME=$(pacmd list-sinks |\
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
grep "alsa.name\|alsa.mixer_name" |\
head -n1 |\
sed 's/.*= "\(.*\)".*/\1/')
NAME=${ALSA_NAME:-$NAME}
elif [[ $USE_DESCRIPTION == 1 ]] ; then
DESCRIPTION=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
DESCRIPTION=$(pacmd list-sinks |\
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
grep "device.description" |\
head -n1 |\
sed 's/.*= "\(.*\)".*/\1/')
NAME=${DESCRIPTION:-$NAME}
fi
# Fix mute status check
if [[ $MUTED == "[on]" ]] ; then
if [[ $MUTED =~ "no" ]] ; then
SYMB=$AUDIO_HIGH_SYMBOL
[[ $VOL -le $AUDIO_MED_THRESH ]] && SYMB=$AUDIO_MED_SYMBOL
[[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMB=$AUDIO_LOW_SYMBOL
@@ -205,141 +219,3 @@ if [[ $SUBSCRIBE == 1 ]] ; then
print_block
done < <(pactl subscribe | stdbuf -oL grep change)
fi
# Hardware Configuration
#CARD=2
#SINK="alsa_output.pci-0000_30_00.6.analog-stereo"
#FRONT="Front Playback Switch"
#REAR="Surround Playback Switch"
#FRONT_VOL="Front Playback Volume"
#REAR_VOL="Surround Playback Volume"
## Debugging output
#LOG_FILE=~/.audio-toggle.log
#echo "=== $(date) ===" >> $LOG_FILE
## Get current active output (PulseAudio fallback)
#get_active_output() {
## Get full sink info for debugging
#SINK_INFO=$(pacmd list-sinks)
#echo "Full sink info:" >> $LOG_FILE
#echo "$SINK_INFO" >> $LOG_FILE
## Try alternative port detection method
#PORT=$(echo "$SINK_INFO" | awk -v sink="$SINK" '
#$1 == "name:" && $2 == "<"sink">" {active=1}
#active && /active port:/ {
## Extract port name between angle brackets
#match($0, /<[^>]+>/)
#port = substr($0, RSTART+1, RLENGTH-2)
#print port
#exit
#}
#')
#echo "Raw port detection: $PORT" >> $LOG_FILE
#if [[ "$PORT" == "analog-output-headphones" ]]; then
#echo "front"
#elif [[ "$PORT" == "analog-output-lineout" ]]; then
#echo "rear"
#else
#echo "unknown"
#fi
#}
## Switch outputs with hardware-level control
#switch_output() {
#echo "Starting switch to $1" >> $LOG_FILE
## First disable both outputs
#echo "Disabling both outputs" >> $LOG_FILE
## ALSA controls
#amixer -c $CARD set "$FRONT" mute >/dev/null
#amixer -c $CARD set "$FRONT_VOL" 0% >/dev/null
#amixer -c $CARD set "$REAR" mute >/dev/null
#amixer -c $CARD set "$REAR_VOL" 0% >/dev/null
## PulseAudio controls
#pactl set-sink-mute "$SINK" 1 >/dev/null
#sleep 0.2
#if [[ "$1" == "front" ]]; then
#echo "Enabling front output" >> $LOG_FILE
## Check if headphones port exists
#if echo "$SINK_INFO" | grep -q "analog-output-headphones"; then
#echo "Attempting to set port to analog-output-headphones" >> $LOG_FILE
#if ! pacmd set-sink-port "$SINK" "analog-output-headphones" 2>>$LOG_FILE; then
#echo "Port switch failed, trying alternative method" >> $LOG_FILE
#pactl set-sink-port "$SINK" "analog-output-headphones" 2>>$LOG_FILE || true
#fi
#else
#echo "Headphones port not available, using hardware controls only" >> $LOG_FILE
#fi
## Additional hardware control
#amixer -c $CARD set 'Headphone' unmute >/dev/null
#amixer -c $CARD set 'Speaker' mute >/dev/null
#pactl set-sink-mute "$SINK" 0 >/dev/null
## ALSA controls
#amixer -c $CARD set "$FRONT" unmute >/dev/null
#amixer -c $CARD set "$FRONT_VOL" 100% >/dev/null
#OUTPUT=" FRONT"
#else
#echo "Enabling rear output" >> $LOG_FILE
## PulseAudio controls
#echo "Attempting to set port to analog-output-lineout" >> $LOG_FILE
#if ! pacmd set-sink-port "$SINK" "analog-output-lineout" 2>>$LOG_FILE; then
#echo "Port switch failed, trying alternative method" >> $LOG_FILE
#pactl set-sink-port "$SINK" "analog-output-lineout" 2>>$LOG_FILE || true
#fi
## Additional hardware control
#amixer -c $CARD set 'Speaker' unmute >/dev/null
#amixer -c $CARD set 'Headphone' mute >/dev/null
#pactl set-sink-mute "$SINK" 0 >/dev/null
## ALSA controls
#amixer -c $CARD set "$REAR" unmute >/dev/null
#amixer -c $CARD set "$REAR_VOL" 100% >/dev/null
#OUTPUT=" REAR"
#fi
## Reset audio pipeline
#echo "Resetting audio pipeline" >> $LOG_FILE
#{ pactl suspend-sink "$SINK" 1 && sleep 0.2 && pactl suspend-sink "$SINK" 0; } >/dev/null 2>&1
## Verify switch
#echo "Verifying switch..." >> $LOG_FILE
#CURRENT=$(get_active_output)
#echo "Current output: $CURRENT" >> $LOG_FILE
#if [[ "$CURRENT" != "$1" ]]; then
#echo "Switch verification failed!" >> $LOG_FILE
## Force hardware-level switch
#echo "Forcing hardware-level switch..." >> $LOG_FILE
#if [[ "$1" == "front" ]]; then
#amixer -c $CARD set 'Headphone' unmute >/dev/null
#amixer -c $CARD set 'Speaker' mute >/dev/null
#else
#amixer -c $CARD set 'Speaker' unmute >/dev/null
#amixer -c $CARD set 'Headphone' mute >/dev/null
#fi
#fi
#echo "Switch complete" >> $LOG_FILE
#echo "$OUTPUT" # Output to i3blocks
#}
## Main execution
#case "${BLOCK_BUTTON:-}" in
#1)
#CURRENT=$(get_active_output)
#if [[ "$CURRENT" == "front" ]]; then
#switch_output "rear"
#else
#switch_output "front"
#fi
#;;
#*)
#CURRENT=$(get_active_output)
#[[ "$CURRENT" == "front" ]] && echo " FRONT" || echo " REAR"
#;;
#esac
#exit 0

View File

@@ -18,6 +18,7 @@
INTERFACE="${BLOCK_INSTANCE:-wlan0}"
# echo $INTERFACE
# INTERFACE="${INSTANCE}"
#------------------------------------------------------------------------
@@ -28,17 +29,17 @@ INTERFACE="${BLOCK_INSTANCE:-wlan0}"
#------------------------------------------------------------------------
QUALITY=$(sudo grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
# echo $QUALITY
W_inter=$(ip link | grep "[1-9]: wlp" | cut -d " " -f2 | tr -d ':')
# W_name=$(nmcli d | grep "$W_inter" | awk '{print $4}')
W_name=$(nmcli d | grep "$W_inter" | awk '{print $4}')
#------------------------------------------------------------------------
echo $QUALITY% # full text
echo $QUALITY% # short text
. "/home/kevin/.cache/wal/colors.sh"
. "/home/$USER/.cache/wal/colors.sh"
# color
if [[ $QUALITY -lt 50 ]]; then
echo "#FF0000"

View File

@@ -1,29 +1,13 @@
confirm_os_window_close 0
include ~/.cache/wal/colors-kitty.conf
# background_opacity .7
# background_opacity .8
# background_opacity .85
background_opacity .9
# background_opacity .95
# background_opacity .97
background_opacity .6
/* background_opacity .7 */
clipboard_control write-clipboard write-primary
enable_audio_bell no
# font
cursor_blink_interval 0
# font_size 12.5
font_size 12
# font_size 14
font_size 14.5
map ctrl+alt+up change_font_size all +1.0
map ctrl+alt+down change_font_size all -1.0
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

View File

@@ -1,36 +0,0 @@
[Default Applications]
text/html=firefox_firefox.desktop
x-scheme-handler/http=firefox_firefox.desktop
x-scheme-handler/https=firefox_firefox.desktop
x-scheme-handler/about=firefox_firefox.desktop
x-scheme-handler/unknown=firefox_firefox.desktop
x-scheme-handler/ftp=firefox.desktop
x-scheme-handler/chrome=firefox.desktop
application/x-extension-htm=firefox.desktop
application/x-extension-html=firefox.desktop
application/x-extension-shtml=firefox.desktop
application/xhtml+xml=firefox.desktop
application/x-extension-xhtml=firefox.desktop
application/x-extension-xht=firefox.desktop
x-scheme-handler/mailto=userapp-Thunderbird-DQE3YZ.desktop
message/rfc822=userapp-Thunderbird-DQE3YZ.desktop
image/jpeg=sxiv.desktop
image/png=sxiv.desktop
x-scheme-handler/discord-409416265891971072=discord-409416265891971072.desktop
x-scheme-handler/eclipse+command=_usr_lib_dbeaver_.desktop
video/mp4=mpv.desktop
[Added Associations]
x-scheme-handler/http=firefox.desktop;
x-scheme-handler/https=firefox.desktop;
text/html=firefox.desktop;
application/pdf=org.gnome.Evince.desktop;org.pwmt.zathura-pdf-mupdf.desktop;
text/plain=nvim.desktop;
x-scheme-handler/mailto=userapp-Thunderbird-DQE3YZ.desktop;
message/rfc822=userapp-Thunderbird-DQE3YZ.desktop;
text/x-python=nvim.desktop;gvim.desktop;
application/json=firefox.desktop;
image/jpeg=gimp.desktop;imv.desktop;
text/markdown=nvim.desktop;
image/png=imv.desktop;
video/mp4=mpv.desktop;

View File

@@ -1,37 +0,0 @@
[Default Applications]
text/html=google-chrome.desktop
x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop
x-scheme-handler/about=google-chrome.desktop
x-scheme-handler/unknown=google-chrome.desktop
x-scheme-handler/ftp=firefox.desktop
x-scheme-handler/chrome=firefox.desktop
application/x-extension-htm=firefox.desktop
application/x-extension-html=firefox.desktop
application/x-extension-shtml=firefox.desktop
application/xhtml+xml=firefox.desktop
application/x-extension-xhtml=firefox.desktop
application/x-extension-xht=firefox.desktop
x-scheme-handler/mailto=userapp-Thunderbird-DQE3YZ.desktop
message/rfc822=userapp-Thunderbird-DQE3YZ.desktop
image/jpeg=sxiv.desktop
image/png=sxiv.desktop
x-scheme-handler/discord-409416265891971072=discord-409416265891971072.desktop
x-scheme-handler/eclipse+command=_usr_lib_dbeaver_.desktop
video/mp4=mpv.desktop
x-scheme-handler/discord=vesktop.desktop
[Added Associations]
x-scheme-handler/http=firefox.desktop;
x-scheme-handler/https=firefox.desktop;
text/html=firefox.desktop;
application/pdf=org.gnome.Evince.desktop;org.pwmt.zathura-pdf-mupdf.desktop;
text/plain=nvim.desktop;
x-scheme-handler/mailto=userapp-Thunderbird-DQE3YZ.desktop;
message/rfc822=userapp-Thunderbird-DQE3YZ.desktop;
text/x-python=nvim.desktop;gvim.desktop;
application/json=firefox.desktop;
image/jpeg=gimp.desktop;imv.desktop;
text/markdown=nvim.desktop;
image/png=imv.desktop;
video/mp4=mpv.desktop;

View File

@@ -7,33 +7,23 @@ v cycle mute
r set speed 1.0
g set speed 1.6
h set speed 2.4
w add speed -.2
e add speed .2
a add speed -.2
s add speed .2
# seek
Ctrl+RIGHT no-osd seek 0.2 exact
Ctrl+LEFT no-osd seek -0.2 exact
Shift+RIGHT no-osd seek 1 exact
Shift+LEFT no-osd seek -1 exact
RIGHT seek 5 exact
LEFT seek -5 exact
UP seek 10 exact
DOWN seek -10 exact
Shift+UP seek 60 exact
Shift+DOWN seek -60 exact
# zoom
Ctrl+- add video-zoom -0.25
Ctrl+= add video-zoom 0.25
Shift+RIGHT seek 1
Shift+LEFT seek -1
RIGHT seek 3
LEFT seek -3
UP seek 10
DOWN seek -10
Shift+UP seek 60
Shift+DOWN seek -60
# mark
m revert-seek mark # mark position for revert-seek
Shift+m revert-seek
# subtitle delay
# z add sub-delay +0.25
# Z add sub-delay -0.25
u add sub-delay -0.25
i add sub-delay +0.25
ctrl+r cycle_values video-rotate "90" "180" "270" "0"
z add sub-delay +0.25
Z add sub-delay -0.25

View File

@@ -1,5 +1,3 @@
sub-auto=fuzzy
# volume=25
# volume=75
ytdl-format=best
ytdl-raw-options=sub-format=en,write-srt=

View File

@@ -1,16 +0,0 @@
defaults
logfile ~/.config/msmtp/msmtp.log
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account firemail
host mail.cock.li
port 465
auth on
user vole@firemail.cc
password iavli3JYQT0bmuJlvL82ShQ
tls_starttls off
from vole@firemail.cc
account default : firemail

View File

@@ -22,15 +22,15 @@ print_info() {
info "WM" wm
info "WM Theme" wm_theme
# info "Font" font
info "Theme" theme
info "Icons" icons
# info "Theme" theme
# info "Icons" icons
info "CPU" cpu
info "CPU Usage" cpu_usage
info "GPU" gpu
info "GPU Driver" gpu_driver # Linux only
# info "GPU" gpu
# info "GPU Driver" gpu_driver # Linux only
info "Memory" memory
info "Disk" disk
info "Resolution" resolution
# info "Resolution" resolution
# }}} enabled #
@@ -336,8 +336,10 @@ public_ip_host="http://ident.me"
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/' '/home' '/mnt/linux-files-2' )
#disk_show=('/dev/sda1' '/dev/sdaf' '/dev/sdd1' )
# disk_show=('/' '/home' '/mnt/linux-files' )
# disk_show=('/dev/sda1' '/dev/sda3' '/dev/sdc2' )
# disk_show=('/dev/sda2' )
disk_show=('/' '/home' )
# Disk subtitle.
# What to append to the Disk subtitle.

View File

@@ -1,18 +0,0 @@
set from = "vole@firemail.cc"
set realname = "Vole"
set mbox_type = Maildir
set folder = "~/mail/firemail"
set spoolfile = "+INBOX"
set record = "+Sent"
set postponed = "+Drafts"
set trash = "+Trash"
set sendmail = "/usr/bin/msmtp"
set sendmail_wait = 0
set editor = "nano"
set charset = "utf-8"
auto_view text/html
alternative_order text/plain text/html
macro index <F5> "<shell-escape>mbsync firemail<enter><enter>" "Sync mail"

Some files were not shown because too many files have changed in this diff Show More