Compare commits
69 Commits
red-hat-la
...
vscode
| Author | SHA1 | Date | |
|---|---|---|---|
|
7cfffc329b
|
|||
|
b654a7fdd0
|
|||
|
af7c255edd
|
|||
|
aeee782f58
|
|||
|
7c55fe9d22
|
|||
|
13ab26afd9
|
|||
|
c970150de4
|
|||
|
7042aeb0f0
|
|||
|
f6a0c39228
|
|||
|
9c97e0e0ca
|
|||
|
59a8d1f5ab
|
|||
|
e42cde1f54
|
|||
|
2dc7427936
|
|||
|
ccd6122336
|
|||
| f1ad855f23 | |||
|
82baa8a23d
|
|||
|
05231501e7
|
|||
|
d04af8e39f
|
|||
|
941bee835a
|
|||
|
720e104f55
|
|||
|
aef13d7f26
|
|||
|
85fb63208d
|
|||
| 6f8c0b08d7 | |||
| 5c098bd26d | |||
| d405f264db | |||
| f9c5f9afe0 | |||
| 072980eaf1 | |||
| adf0cb89b9 | |||
| d56c047782 | |||
| 71b0aa5ada | |||
| 11681ecc9f | |||
| 71017721bc | |||
| a4946bf75d | |||
| 273d23abc0 | |||
| c41e14a302 | |||
| b165a802c9 | |||
| 1c47a7311a | |||
| 5843fc30b6 | |||
| d9a49a4bb4 | |||
| b40f818e3c | |||
| e97aaadbe1 | |||
| f098cbc708 | |||
| 40fbbeeb8d | |||
| cda5ebcfc1 | |||
| de57298d0f | |||
| bd1366faf6 | |||
| 35912c16b6 | |||
| 5aaf163d4d | |||
| 1024cb18b3 | |||
| fe632730ef | |||
| 436a7cbb87 | |||
| 1afe9d05a4 | |||
| e2a9e753ff | |||
| be2e73fda6 | |||
| 7b8685477b | |||
| 43e367d834 | |||
| e851514a31 | |||
|
584ecabff4
|
|||
|
5b936dce8e
|
|||
|
6f0dd1cdff
|
|||
|
00c4a42bf0
|
|||
|
505f63a32d
|
|||
|
5c6f1e9a1c
|
|||
|
23d1b1ffbd
|
|||
|
b622ec0964
|
|||
|
ef68d2e9c7
|
|||
|
b5f5e62afa
|
|||
|
9e559088a2
|
|||
|
f488c79b46
|
@@ -13,6 +13,6 @@ txt/
|
||||
.xinitrc
|
||||
.Xresources
|
||||
{{ end }}
|
||||
{{ if not (eq .chezmoi.fullHostname "x1-carbon") }}
|
||||
{{ if not (eq .chezmoi.hostname "x1-carbon") }}
|
||||
.Xmodmap-laptop
|
||||
{{ end }}
|
||||
|
||||
369
README.md
369
README.md
@@ -1,33 +1,348 @@
|
||||
<!--- Intro {{{ -->
|
||||
# Kevin's Linux Setup
|
||||
# KM's Linux Desktop Config (chezmoi dotfiles)
|
||||
|
||||

|
||||
*Screenshot from my dual-monitor 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.
|
||||
|
||||
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 -->
|
||||
## 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)
|
||||
|
||||
<!--- 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 -->
|
||||
## What This Repo Is
|
||||
- A **chezmoi repo** with `dot_*` files targeting `$HOME`
|
||||
(e.g. `dot_vimrc.tmpl` → `~/.vimrc`, `dot_tmux.conf`,
|
||||
`dot_gitconfig.tmpl`, etc.) and `dot_config/**` mirroring
|
||||
`~/.config`. Every `.tmpl` file runs through `chezmoi`
|
||||
templating so `{{ .chezmoi.hostname }}` / `.linux_os` /
|
||||
`.chezmoi.username` can tailor behavior.
|
||||
- A place for **desktop-focused tooling**: i3/i3blocks, fish
|
||||
+ shared aliases, kitty/ST terminals, tmux, Neovim/Vim,
|
||||
mpv, Ranger, mpv, Zathura, dunst/picom/prefers,
|
||||
taskwarrior/taskopen, and shell helpers such as
|
||||
`executable_passmenu`, `dmenu-history`, `change-sink`,
|
||||
`bg-chooser`, etc.
|
||||
- A repository for configuration logic only — the bulk of
|
||||
application/Project code lives in other repos. You can
|
||||
treat this as the “rice” layer for Arch/Ubuntu machines,
|
||||
not as a general diary of every coding sidequest.
|
||||
|
||||
<!--- Setup {{{ -->
|
||||
## Installation & Sync
|
||||
1. Install `chezmoi`, clone this repo, and run `chezmoi init
|
||||
--apply <repo>` (or `chezmoi cd .` / `chezmoi apply`). The
|
||||
repo assumes you have a basic Linux desktop already (i3,
|
||||
fish, etc.).
|
||||
2. Run `chezmoi apply` whenever you change templates. When
|
||||
files touch the ones under `aliases/` (see below) run
|
||||
`~/scripts/sync-shortcuts` (or let `fish` invoke it on
|
||||
login) to regenerate `~/aliases/.key_aliases`,
|
||||
`~/.config/fish/key_abbr.fish`, and
|
||||
`~/.config/ranger/key_mappings.conf`.
|
||||
3. After changing tmux config, reload (`tmux source
|
||||
~/.tmux.conf`) and run the TPM installer
|
||||
(`~/.tmux/plugins/tpm/bin/install_plugins`).
|
||||
4. When you edit `dot_config/mgba/*.ini`, run
|
||||
`dot_config/mgba/update-mgba-config.fish` (or your shell) to
|
||||
keep the `~/.config/mgba/*.ini` copies and repo templates in
|
||||
sync.
|
||||
5. Use `chezmoi data set <key> <value>` (or edit
|
||||
`~/.config/chezmoi/chezmoi.toml`) to tweak host data such as
|
||||
`gui`, `ext_kb`, or `linux_os` — the template in
|
||||
`dot_config/chezmoi/chezmoi-template.toml.tmpl` seeds those
|
||||
values for conditional logic in templates.
|
||||
|
||||
## Setup
|
||||
I use [chezmoi](https://github.com/twpayne/chezmoi) to manage varying
|
||||
configs for different machines with a single branch.
|
||||
## 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 -->
|
||||
## Terminal & Editor Stack
|
||||
- `dot_config/kitty/kitty.conf` and
|
||||
`dot_config/st/config.def.h.tmpl` share `wal` colors
|
||||
(`~/.cache/wal/colors-kitty.conf` / `colors-wal-st.h`) and
|
||||
Nerd Font setups; kitty enables clipboard control and
|
||||
opacity, st pulls fonts/opacity from the current theme.
|
||||
- Terminal multiplexer: `dot_tmux.conf` rebinds prefix to
|
||||
`C-Space`, enables mouse, uses a Powerline-style status
|
||||
bar, and installs TPM plugins (`tmux-plugins/tpm`,
|
||||
`tmux-sensible`, `vim-tmux-navigator`). Mouse/Vi copy mode
|
||||
maps push selection to `xclip` via `copy-pipe-and-cancel`.
|
||||
- `dot_vimrc.tmpl` is the canonical Vim/Neovim config. It
|
||||
enables `autoindent`, autocommands for
|
||||
markdown/Go/Jenkinsfiles, loads `vim-plug`, and wires up
|
||||
plugins (`YouCompleteMe`, `UltiSnips`, `vimtex`,
|
||||
`vim-fugitive`, `vim-auto-save`, `vim-instant-markdown`,
|
||||
`vim-tmux-navigator`, `vim-go`, `vim-react`, `vim-latex`,
|
||||
`vim-mark`, `vim-surround`, `rainbow`, `AutoPairs`,
|
||||
`vim-indexed-search`, etc.). Leader mappings cover
|
||||
yanking, folding, Git, formatting, NERDTree, and quick
|
||||
plugin commands. `dot_config/nvim/init.vim` just sources
|
||||
`~/.vimrc` plus Python host settings.
|
||||
- `dot_config/mpv/mpv.conf` & `input.conf` configure
|
||||
subtitles, mouse wheel volume, speed keys, seek commands,
|
||||
zoom, and mark shortcuts for mpv so it works cleanly with
|
||||
keyboard/VR-style controls.
|
||||
|
||||
## Window Manager & Display
|
||||
- `dot_xinitrc.tmpl` loads `~/.Xresources`, applies
|
||||
host-specific `xmodmap` (`dot_Xmodmap*`), sets `redshift`,
|
||||
`xset r rate` (pumped from fish), starts
|
||||
`notification-daemon`, `picom`, `imwheel`, `numlockx`, and
|
||||
pains `wal -i $(scripts/shuffler ...)` backgrounds.
|
||||
- `dot_Xresources.tmpl` keeps host DPI/font choices (high
|
||||
DPI for `x1-carbon`, default for desktops), clickable
|
||||
URLs, transparency, and `sxiv` colors; i3blocks and kitty
|
||||
re-read it via `xrdb` + `wal`.
|
||||
- There are multiple `dot_Xmodmap*` variants (`.`,
|
||||
`-laptop`, `-laptop-old`, `-old`, `-ubuntu`, `-vm`) so
|
||||
`xmodmap` can swap Caps/Esc/backspace depending on host;
|
||||
`dot_xinitrc.tmpl` toggles between them via the `ext_kb`
|
||||
variable and the helper
|
||||
`scripts/executable_xmodmap-custom.tmpl`.
|
||||
- `dot_config/i3/config.tmpl` wires up: Mod1/Mod4 split,
|
||||
`kitty`/`urxvt` terminals, i3 startup apps (notification
|
||||
daemon, picom, imwheel, `wal`, `xbacklight`), screenshot
|
||||
bindings, workspace assignments (1/2/3 etc),
|
||||
Slack/Signal/Chromium/Steam assignments, workspace
|
||||
navigation, `passmenu`, `dmenu-history`, `ticker/fx`
|
||||
shortcuts, `redshift` hotkeys, `wal` shuffle hotkeys,
|
||||
`change-sink`, and `mod`-based layout resizing. It also
|
||||
defines stacked/tabbed/floating rules, gap toggles, and
|
||||
bar outputs for both main and secondary monitors. The
|
||||
status command is `i3blocks -vvv -c
|
||||
~/.config/i3blocks/i3blocks.conf` (primary) and
|
||||
`i3blocks-secondary.conf` (secondary) with i3blocks piping
|
||||
through `~/scripts/shuffler`/`pywal` colors.
|
||||
- `dot_config/i3blocks/i3blocks.conf.tmpl` defines blocks
|
||||
for `kraken` (ETH), Spotify controls, volume, and
|
||||
conditional blocks for laptop (`battery`, `wifi`,
|
||||
`backlight`), plus placeholders for
|
||||
`dexscreener`/`ticker`/`memory`/`temperature`. Secondary/
|
||||
display configs reuse the same script directory but focus
|
||||
on `calendar`, `volume`, and additional
|
||||
`temperature`/`name`/`cpu/memory` blocks. Every block
|
||||
relies on scripts under `dot_config/i3blocks/scripts/`
|
||||
(e.g. `executable_calendar`, `executable_volume`,
|
||||
`executable_wifi`, `executable_kraken`,
|
||||
`executable_dexscreener*`, `executable_spotify`,
|
||||
`executable_name`, `executable_temperature`,
|
||||
`executable_ticker`, etc.) which source
|
||||
`~/.cache/wal/colors.sh` to stay on-theme.
|
||||
- Display/notification stack also includes
|
||||
`dot_config/picom/picom.conf` (shadows/fade/opacity rules)
|
||||
and `dot_config/dunst/dunstrc` (compact, mouse-following
|
||||
notifications, keyboard shortcuts, urgency colors) so
|
||||
popups match the rest of the polished rice.
|
||||
- `dot_config/neofetch/config.conf` keeps the `neofetch`
|
||||
info streamlined to kernel, terminal,font, shell,
|
||||
packages, WM, CPU/GPU, memory, disks, and resolution, with
|
||||
ASCII color blocks and shorthanded kernel/distro strings.
|
||||
|
||||
## Productivity Apps & Services
|
||||
- `dot_taskrc` configures `taskwarrior` (data location
|
||||
`~/.task`, `taskd` server credentials, urgency
|
||||
coefficients per project/tag, and default context
|
||||
`sniper`). `dot_taskopenrc` tells `taskopen` to use
|
||||
`nvim`, the `task` binary, and custom note / annotation
|
||||
handling (`notes.regex = "Notes"`).
|
||||
- `dot_qalcrc` forces `qalculate-gtk` to use decimal commas
|
||||
for output. `dot_inputrc` turns readline `vi` mode on, and
|
||||
`dot_imwheelrc` remaps vertical scroll for `imwheel`.
|
||||
- Ranger customization lives under `dot_config/ranger/`:
|
||||
`rc.conf.tmpl` tweaks view mode, preview pipeline (custom
|
||||
`scope.sh`), bookmarks, colors, and dozens of keybindings
|
||||
(vim-like navigation, copy/paste/paste symlink macros,
|
||||
`fzf` integrations, lightning bookmarks, backgrounds via
|
||||
`wal`, `dragon` drop, etc.). `ranger/commands.py` supplies
|
||||
`fzf_select`, `fzf_locate`, `compress`, `extracthere`, and
|
||||
other helper commands. Plugins include devicons, preview
|
||||
scripts, and shared `key_mappings.conf` (referenced at the
|
||||
bottom of `rc.conf`).
|
||||
- Email is handled by `dot_config/neomutt/neomuttrc`
|
||||
pointing at `~/mail/firemail`, calling `msmtp`, syncing
|
||||
(`mbsync`), and a custom `<F5>` macro.
|
||||
`dot_config/msmtp/config` defines a `firemail` account —
|
||||
**replace the password with a secret manager or keep this
|
||||
file private** (it currently contains a placeholder
|
||||
password).
|
||||
- `private_dot_calcurse/` stores Calcurse CalDAV
|
||||
configs/credentials and `private_dot_gnupg/` holds GPG
|
||||
configs/keys; treat those as `chezmoi` private files (they
|
||||
live in `private_dot_*` in the repo and are decrypted on
|
||||
each machine). Similarly, `dot_ssh/authorized_keys-all`
|
||||
and `known_hosts-all` aggregate SSH entries for quick
|
||||
deployment.
|
||||
- `dot_config/zathura/zathurarc` forces dark mode, custom
|
||||
colors, and clipboard syncing.
|
||||
`dot_config/mgba/*-tmpl.ini` keeps emulator settings; run
|
||||
`dot_config/mgba/update-mgba-config.fish` after editing
|
||||
your local `~/.config/mgba/*.ini` so the template files
|
||||
stay current.
|
||||
- `dot_minikube/config/config.json` fixes the driver to
|
||||
Docker (`"driver": "docker"`).
|
||||
|
||||
## Scripts, Packages & Assets
|
||||
- The `scripts/` directory hosts dozens of `executable_*`
|
||||
helpers that i3, fish, and launcher aliases depend on.
|
||||
Highlights:
|
||||
- `executable_sync-shortcuts` reads `aliases/key_*` and
|
||||
rewrites `~/aliases/.key_aliases`,
|
||||
`~/.config/fish/key_abbr.fish`, and ranger’s
|
||||
`key_mappings.conf`, keeping shells/ranger consistent.
|
||||
- Wallpaper helpers: `executable_shuffler` rolls a
|
||||
directory of backgrounds, `executable_bg-chooser` picks
|
||||
"bright"/"dim" sets through `dmenu`, and
|
||||
`executable_dual-monitor-slideshow` uses
|
||||
`feh`/ImageMagick to fill a single monitor while
|
||||
temporarily disabling others.
|
||||
- Audio/focus helpers: `executable_change-sink` reroutes
|
||||
Pulseaudio sinks, `executable_ubuntu-start` is an
|
||||
alternative startup script that replays
|
||||
imwheel/picom/wal, and `executable_tex-clean` deletes
|
||||
LaTeX build artefacts based on
|
||||
`txt/tex-build-files.txt`.
|
||||
- Productivity utilities: `executable_passmenu` wraps
|
||||
`pass` with `dmenu`, `executable_dmenu-history` keeps
|
||||
colorized dmenu launch history, `executable_vim-man`
|
||||
pops man pages inside Neovim, `executable_currency` hits
|
||||
`frankfurter.app`, `executable_glhf-metadata` queries an
|
||||
NFT API, and
|
||||
`executable_ticker`/`executable_dexscreener*`/`executable_kraken`
|
||||
feed price data to the i3blocks bar.
|
||||
- Misc scripts include `executable_backup-pc` (rsync/tar
|
||||
backups using exclude lists under `txt/`),
|
||||
`executable_install-arch-pkgs.sh` (installs from
|
||||
`txt/pacman-pkgs/*.txt`), `executable_spotify-clean`
|
||||
(VACUUM Spotify DB), and
|
||||
`executable_spotify-now`/`dot_config/i3blocks/scripts/executable_spotify`
|
||||
for play/pause+display via MPRIS.
|
||||
- `scripts/colors/` contains playful ASCII color art used
|
||||
for celebrations or just curiosity.
|
||||
- `txt/` contains curated data:
|
||||
- `txt/nzxt-pkgs.txt`, `txt/nzxt-aur.txt`,
|
||||
`txt/nzxt-all.txt`, `txt/nzxt-new.txt`,
|
||||
`txt/x1-carbon-pkgs.txt`, `txt/x1-carbon-aur.txt`,
|
||||
`txt/arch-2-pkgs.txt`, `txt/arch-2-aur.txt`, and similar
|
||||
lists for Ubuntu/Termux packages.
|
||||
- `txt/exclude-dirs-backup*.txt` provide directory
|
||||
exclusions for backups.
|
||||
- `txt/tex-build-files.txt` enumerates LaTeX build
|
||||
extensions for `executable_tex-clean`.
|
||||
- `txt/todo.md` and `txt/terminal-art.txt` capture
|
||||
personal notes.
|
||||
- `txt/usbs.md` tracks mounted USBs.
|
||||
|
||||
## Host Overrides & Secrets
|
||||
- `dot_config/chezmoi/chezmoi-template.toml.tmpl` flags
|
||||
`gui`, `ext_kb`, and `linux_os` so templates can read
|
||||
host-specific values (e.g., `ext_kb` decides whether
|
||||
desktop laptops load `.Xmodmap` or `.Xmodmap-laptop`). Use
|
||||
`chezmoi data set` (or edit
|
||||
`~/.config/chezmoi/chezmoi.toml`) to change these values
|
||||
per host.
|
||||
- `dot_Xresources.tmpl` and `dot_Xmodmap*` swap DPI, fonts,
|
||||
and key remaps depending on the machine (`x1-carbon` vs
|
||||
`nzxt` vs `vm`). `i3` bindings invoke `xmodmap ~/.Xmodmap`
|
||||
or the laptop variant depending on those template
|
||||
variables.
|
||||
- `private_dot_gnupg/` and `private_dot_calcurse/` are
|
||||
`chezmoi` private directories — they contain real
|
||||
keys/certs and are not committed in plaintext. Keep them
|
||||
encrypted and use `chezmoi add --private` when tracking
|
||||
new secrets.
|
||||
- `dot_config/msmtp/config` currently stores a password. In
|
||||
production, replace it with a `pass`-managed credential or
|
||||
environment variable, and never push secrets to a public
|
||||
repo.
|
||||
- `dot_taskrc` embeds `taskd` credentials (host
|
||||
`taskd.khkm.gq`), so treat `~/.taskrc` as private if you
|
||||
edit it, and sync it via `chezmoi` private mode if needed.
|
||||
- `dot_ssh/authorized_keys-all` and `known_hosts-all`
|
||||
collect the SSH state that gets populated on every machine
|
||||
you `chezmoi apply` to.
|
||||
|
||||
## Customization Tips
|
||||
- **Adding aliases/dirs/files**: edit the `aliases/key_*`
|
||||
templates, then run `~/scripts/sync-shortcuts` (or log in
|
||||
through fish and let the config run it) to regenerate
|
||||
shell aliases, fish abbrs, and ranger maps.
|
||||
- **Changing colors/backgrounds**: the i3 config,
|
||||
`dot_xinitrc`, and
|
||||
`scripts/executable_bg-chooser`/`shuffler` call `wal -i`
|
||||
on directories under `~/Pictures/Backgrounds`. Keep the
|
||||
structure and `feh` call in
|
||||
`scripts/executable_dual-monitor-slideshow` in sync when
|
||||
you add new folders.
|
||||
- **Updating mgba**: edit your local
|
||||
`~/.config/mgba/config.ini`/`qt.ini`, then run
|
||||
`dot_config/mgba/update-mgba-config.fish` to copy them
|
||||
back into the repo templates before committing.
|
||||
- **Updating i3blocks**: the configs reference scripts under
|
||||
`dot_config/i3blocks/scripts/`. Editing or adding a script
|
||||
should maintain the `command` naming convention and the
|
||||
`color`/`pywal` sourcing shown in those scripts.
|
||||
- **Neovim tweaks**: extend `dot_vimrc.tmpl` with new `Plug`
|
||||
entries; after editing, run `nvim +PlugInstall +qall` and
|
||||
keep the plugin list synchronized with `init.vim` sourcing
|
||||
the same file.
|
||||
- **Tmux tweaks**: change `dot_tmux.conf`, then reload
|
||||
(`tmux source-file`) and reinstall packages via
|
||||
`~/.tmux/plugins/tpm/bin/install_plugins` if you add TPM
|
||||
plugins.
|
||||
- **Taskwarrior contexts**: `dot_taskrc` defines contexts
|
||||
(`sniper`, `pey`, `mny`, etc.) and urgency coefficients.
|
||||
Edit them if you rename project tags, then run `task
|
||||
sync`.
|
||||
- **Backup scripts**: `scripts/executable_backup-pc` uses
|
||||
`txt/exclude-dirs-backup*.txt`, so update those lists
|
||||
whenever you add new directories to exclude from
|
||||
`rsync`/`tar` backups.
|
||||
- **Package installation**:
|
||||
`scripts/executable_install-arch-pkgs.sh` reads
|
||||
`txt/pacman-pkgs/*.txt`. Keep that tree up to date before
|
||||
running the script.
|
||||
|
||||
Feel free to browse the scripts, `dot_config/*`, and `txt/*`
|
||||
files when you need to understand how a feature works — they
|
||||
are the single source of truth for this desktop’s
|
||||
automation.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,30 +1,44 @@
|
||||
# vim: fdm=marker ft=sh.go-template syntax=sh
|
||||
# vim: fdm=marker ft=sh.go-template syntax=sh
|
||||
|
||||
# sys [[[ #
|
||||
|
||||
bg ~/Pictures/Backgrounds
|
||||
cf ~/linux-config/dot_config
|
||||
cfd ~/.config
|
||||
cff ~/.config/fish
|
||||
cfg ~/.config
|
||||
cfgf ~/.config/fish
|
||||
ch ~/Documents/chat
|
||||
dc ~/Documents/chat/discord
|
||||
da /mnt/ipad/DCIM/106APPLE
|
||||
dl ~/Downloads
|
||||
# dw ~/dwm
|
||||
D ~/Documents
|
||||
kh ~/
|
||||
# k ~/
|
||||
lc ~/linux-config
|
||||
lf /mnt/linux-files
|
||||
Lfp /mnt/linux-files/Pictures
|
||||
Lfv /mnt/linux-files/Videos
|
||||
me /run/media/kevin
|
||||
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
|
||||
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 #
|
||||
@@ -32,57 +46,81 @@ sv /etc/systemd/system
|
||||
# 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/scripts
|
||||
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
|
||||
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
|
||||
snp ~/.vim/plugged/vim-snippets/UltiSnips
|
||||
vsnps ~/.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
|
||||
# ft ~/coding/face-tracker
|
||||
#hv ~/Documents/hevin
|
||||
#hv /mnt/linux-files-2/Pictures/hevin
|
||||
hv ~/Pictures/hevin
|
||||
hvs ~/Documents/hevin/shopping
|
||||
j ~/Documents/journal
|
||||
lh ~/Documents/listening-history
|
||||
jt ~/Documents/journal/todo/25
|
||||
# lh ~/Documents/listening-history
|
||||
mmd ~/coding/move-mouse-with-head
|
||||
mh ~/coding/mf-site/layouts
|
||||
ms ~/coding/mf-site
|
||||
ml ~/coding/mf-site/content/letter
|
||||
msl ~/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/trapbot/src/trapbot
|
||||
tb ~/coding/twitter-bot
|
||||
ur ~/coding/uranium-godot
|
||||
wo ~/Documents/workout-logs
|
||||
wo ~/Documents/workout-logs/25/4
|
||||
|
||||
|
||||
# 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 #
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
adb ~/coding/ada-mario/build
|
||||
adm ~/coding/ada-mario/media
|
||||
adp ~/coding/ada-mario-presentation
|
||||
@@ -90,37 +128,200 @@ ads ~/coding/ada-mario/scripts
|
||||
adP ~/Pictures/ada-mario
|
||||
{{ end }}
|
||||
|
||||
|
||||
# ]]] cdn #
|
||||
|
||||
# gaming [[[ #
|
||||
|
||||
cm ~/Documents/codm
|
||||
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
|
||||
cs ~/Documents/codm/site
|
||||
csi ~/Documents/codm/site/static/images
|
||||
Css ~/Pictures/screenshots/mobile/codm
|
||||
|
||||
fn ~/Documents/fortnite
|
||||
# ]]] codm #
|
||||
|
||||
# fortnite [[[ #
|
||||
|
||||
#fn ~/Documents/fortnite
|
||||
fnc /mnt/linux-files/Videos/yt/fortnite/clips/4
|
||||
fnm ~/Documents/fortnite/pics/maps
|
||||
fni /mnt/ipad/DCIM/100APPLE
|
||||
#fnm ~/Documents/fortnite/pics/maps
|
||||
fnn ~/Documents/fortnite/notes
|
||||
fns ~/Documents/fortnite/stats/api
|
||||
fnp ~/Documents/fortnite/pics
|
||||
fns ~/Videos/fortnite/stats
|
||||
# fnsp ~/Documents/fortnite/stats/pics
|
||||
fnv /mnt/linux-files/Videos/personal-fortnite-games/review
|
||||
tcd /mnt/linux-files/Videos/yt/fortnite/clips/twitch-clip-downloader
|
||||
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
|
||||
|
||||
# ]]] 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 #
|
||||
|
||||
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
|
||||
# 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 #
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
# 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
|
||||
p ~/linux-config/txt/pacman-pkgs/pacman-pkgs.txt
|
||||
pkg ~/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
|
||||
@@ -31,6 +33,7 @@ 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
|
||||
@@ -43,15 +46,17 @@ hh ~/.habitctl/habits
|
||||
hlg ~/coding/spotify-lib-vis/src/api/management/commands/update-history.log
|
||||
id ~/Documents/journal/todo/ideas.md
|
||||
ig ./.gitignore
|
||||
jn ~/Documents/journal/todo/2.md
|
||||
jt ~/Documents/journal/todo/todo.md
|
||||
jt ~/Documents/journal/todo/25/8.md
|
||||
k ~/linux-config/dot_config/kitty/kitty.conf
|
||||
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
|
||||
@@ -60,38 +65,70 @@ 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 [[[ #
|
||||
|
||||
# 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
|
||||
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
|
||||
|
||||
# ]]] 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/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
|
||||
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
|
||||
|
||||
26
dot_Xmodmap
26
dot_Xmodmap
@@ -1,7 +1,25 @@
|
||||
! 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
|
||||
|
||||
keycode 22 = Caps_Lock
|
||||
keycode 66 = BackSpace
|
||||
keycode 78 = End
|
||||
! Map the physical Caps Lock key (66) to Escape
|
||||
keycode 66 = Escape
|
||||
|
||||
pointer = 1 10 3 6 7 4 5 2 11 12 8 9
|
||||
! 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
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
clear Lock
|
||||
|
||||
keycode 115 = BackSpace
|
||||
keycode 110 = Delete
|
||||
|
||||
keycode 22 = Home
|
||||
keycode 119 = End
|
||||
keycode 115 = Escape
|
||||
keycode 9 = End
|
||||
keycode 22 = BackSpace
|
||||
|
||||
pointer = 1 2 3 4 5 6 7 8 9 10 11 12
|
||||
|
||||
9
dot_Xmodmap-laptop-old
Normal file
9
dot_Xmodmap-laptop-old
Normal file
@@ -0,0 +1,9 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -4,4 +4,4 @@ keycode 22 = Caps_Lock
|
||||
keycode 66 = BackSpace
|
||||
keycode 78 = End
|
||||
|
||||
pointer = 1 2 3 4 5 6 7 8 9 10 11 12
|
||||
pointer = 1 10 3 6 7 4 5 2 11 12 8 9
|
||||
8
dot_Xmodmap-ubuntu
Normal file
8
dot_Xmodmap-ubuntu
Normal file
@@ -0,0 +1,8 @@
|
||||
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
|
||||
11
dot_Xmodmap-vm
Normal file
11
dot_Xmodmap-vm
Normal file
@@ -0,0 +1,11 @@
|
||||
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
|
||||
@@ -1,9 +1,12 @@
|
||||
/* dpi [[[ */
|
||||
|
||||
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
! Xft.dpi: 230
|
||||
Xft.dpi: 235
|
||||
! Xft.dpi: 240
|
||||
Xft.dpi: 230
|
||||
{{ else }}
|
||||
! Xft.dpi: 90
|
||||
! Xft.dpi: 100
|
||||
Xft.dpi: 135
|
||||
! Xft.dpi: 170
|
||||
{{ end }}
|
||||
@@ -18,21 +21,25 @@ Xft.rgba: rgb
|
||||
|
||||
/* font [[[ */
|
||||
|
||||
{{ 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
|
||||
{{ 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
|
||||
{{ 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=12
|
||||
! URxvt.font: xft:DejaVuSansMono Nerd Font Mono:size=11
|
||||
URxvt.font: xft:Hack Nerd Font Mono:size=11
|
||||
{{ end }}
|
||||
! URxvt.font: xft:Hack:size=18
|
||||
|
||||
/* resize [[[ */
|
||||
|
||||
URxvt.resize-font.step: 4
|
||||
! URxvt.resize-font.step: 4
|
||||
URxvt.resize-font.step: 2
|
||||
URxvt.keysym.C-S-Down: resize-font:smaller
|
||||
URxvt.keysym.C-S-Up: resize-font:bigger
|
||||
URxvt.keysym.C-S-equal: resize-font:reset
|
||||
@@ -67,9 +74,14 @@ URxvt.scrollBar: false
|
||||
/* Clickable URLs [[[ */
|
||||
|
||||
URxvt.perl-ext-common: default,matcher,resize-font
|
||||
URxvt.url-launcher: /usr/bin/xdg-open
|
||||
URxvt.url-launcher: /usr/bin/firefox
|
||||
! URxvt.url-launcher: firefox
|
||||
URxvt.matcher.button: 1
|
||||
|
||||
/* ]]] Clickable URLs */
|
||||
|
||||
Sxiv.background: #000000
|
||||
Sxiv.foreground: #00C0FF
|
||||
Sxiv.font: Hack-9
|
||||
|
||||
! vim: fdm=marker ft=xdefaults.go-template
|
||||
|
||||
@@ -204,4 +204,4 @@ fi
|
||||
# Both PC/Laptop }}}
|
||||
|
||||
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
|
||||
source ~/aliases/.key_aliases
|
||||
source /home/kevin/aliases/.key_aliases
|
||||
|
||||
39
dot_config/Code/User/keybindings.json
Normal file
39
dot_config/Code/User/keybindings.json
Normal file
@@ -0,0 +1,39 @@
|
||||
[
|
||||
// Map the physical 'CapsLock' key to act as the 'Escape' key
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u001b" // ASCII code for Escape
|
||||
},
|
||||
// Optional: you can restrict this to the terminal or use no 'when' condition
|
||||
// "when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closeMessages",
|
||||
"when": "notificationVisible"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "closeCommandCenter",
|
||||
"when": "commandCenterVisible"
|
||||
},
|
||||
// The most important one: to exit common modes/menus/widgets
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closeAllGroups",
|
||||
"when": "editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closeActiveEditor",
|
||||
"when": "editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closePanel",
|
||||
"when": "panelFocus"
|
||||
}
|
||||
// ... you may need to map it to several common "escape" actions
|
||||
]
|
||||
97
dot_config/Code/User/settings.json
Normal file
97
dot_config/Code/User/settings.json
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
// --- General Editor Settings ---
|
||||
"keyboard.dispatch": "keyCode",
|
||||
"editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace",
|
||||
"editor.lineNumbers": "relative",
|
||||
"editor.tabSize": 4,
|
||||
"editor.insertSpaces": true,
|
||||
"editor.wordWrap": "wordWrapColumn",
|
||||
"editor.wordWrapColumn": 60,
|
||||
"editor.cursorSurroundingLines": 5,
|
||||
"editor.mouseWheelZoom": true,
|
||||
"files.insertFinalNewline": false,
|
||||
"files.autoSave": "afterDelay",
|
||||
"files.autoSaveDelay": 1000,
|
||||
|
||||
// --- Terminal ---
|
||||
"terminal.integrated.fontFamily": "'Hack', monospace",
|
||||
|
||||
// --- Theme & Colors (Universal Red Mode) ---
|
||||
// This forces the red theme on top of ANY dark theme you select
|
||||
"workbench.colorTheme": "Bearded Theme Monokai Black",
|
||||
"workbench.colorCustomizations": {
|
||||
// Global Red Overrides
|
||||
"activityBar.background": "#1f2428",
|
||||
"activityBar.activeBorder": "#f85149",
|
||||
"activityBar.foreground": "#f85149",
|
||||
"activityBar.inactiveForeground": "#6e7681",
|
||||
|
||||
"statusBar.background": "#da3633",
|
||||
"statusBar.foreground": "#ffffff",
|
||||
|
||||
"titleBar.activeBackground": "#1f2428",
|
||||
"tab.activeBorderTop": "#f85149",
|
||||
|
||||
"list.activeSelectionForeground": "#f85149",
|
||||
"textLink.foreground": "#f85149",
|
||||
"progressBar.background": "#f85149"
|
||||
},
|
||||
|
||||
// --- Vim Settings ---
|
||||
"vim.leader": " ",
|
||||
"vim.useSystemClipboard": true,
|
||||
"vim.hlsearch": true,
|
||||
"vim.smartcase": true,
|
||||
"vim.timeout": 350,
|
||||
"vim.undofile": true,
|
||||
"vim.handleKeys": {
|
||||
"<C-a>": false,
|
||||
"<C-f>": false,
|
||||
"<C-p>": false
|
||||
},
|
||||
|
||||
// --- Key Bindings ---
|
||||
"vim.insertModeKeyBindings": [
|
||||
{
|
||||
"before": ["<Esc>"],
|
||||
"after": ["<Esc>"],
|
||||
"commands": ["workbench.action.files.save"]
|
||||
}
|
||||
],
|
||||
"vim.insertModeKeyBindingsNonRecursive": [
|
||||
{
|
||||
"before": ["<Esc>"],
|
||||
"after": ["<Esc>"],
|
||||
"commands": ["workbench.action.files.save"]
|
||||
}
|
||||
],
|
||||
"vim.normalModeKeyBindingsNonRecursive": [
|
||||
{ "before": ["Y"], "after": ["y", "$"], "silent": true },
|
||||
{ "before": ["Q"], "after": ["@", "@"], "silent": true },
|
||||
{ "before": [","], "after": ["z", "a"], "silent": true },
|
||||
{ "before": ["'"], "after": ["`"], "silent": true },
|
||||
{ "before": ["<leader>", "d"], "after": ["d", "$"] },
|
||||
{ "before": ["<leader>", "d", "l"], "after": ["0", "d", "$"] },
|
||||
{ "before": ["<leader>", "k"], "after": ["<C-o>"] },
|
||||
{ "before": ["<leader>", "j"], "after": ["<C-i>"] },
|
||||
{ "before": ["<leader>", "s", "p"], "commands": [":split"] },
|
||||
{ "before": ["<leader>", "v", "s"], "commands": [":vsplit"] },
|
||||
{ "before": ["<leader>", "v", "v"], "commands": ["workbench.action.openSettingsJson"] },
|
||||
{ "before": ["<leader>", "y", "o"], "commands": ["workbench.action.toggleZenMode"] }
|
||||
],
|
||||
|
||||
// --- Language Specific Settings ---
|
||||
"[css]": { "editor.tabSize": 2 },
|
||||
"[scss]": { "editor.tabSize": 2 },
|
||||
"[html]": { "editor.tabSize": 2 },
|
||||
"[javascript]": { "editor.tabSize": 2 },
|
||||
"[javascriptreact]": { "editor.tabSize": 2 },
|
||||
"[json]": { "editor.tabSize": 2 },
|
||||
"[typescript]": { "editor.tabSize": 2 },
|
||||
"[typescriptreact]": { "editor.tabSize": 2 },
|
||||
"[yaml]": { "editor.tabSize": 2 },
|
||||
"[go]": { "editor.insertSpaces": false, "editor.tabSize": 4 },
|
||||
"[markdown]": { "editor.wordWrap": "wordWrapColumn", "editor.wordWrapColumn": 55 },
|
||||
"[groovy]": { "editor.wordWrap": "off" },
|
||||
"[jenkinsfile]": { "editor.wordWrap": "off" }
|
||||
}
|
||||
39
dot_config/Cursor/User/keybindings.json
Normal file
39
dot_config/Cursor/User/keybindings.json
Normal file
@@ -0,0 +1,39 @@
|
||||
[
|
||||
// Map the physical 'CapsLock' key to act as the 'Escape' key
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u001b" // ASCII code for Escape
|
||||
},
|
||||
// Optional: you can restrict this to the terminal or use no 'when' condition
|
||||
// "when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closeMessages",
|
||||
"when": "notificationVisible"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "closeCommandCenter",
|
||||
"when": "commandCenterVisible"
|
||||
},
|
||||
// The most important one: to exit common modes/menus/widgets
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closeAllGroups",
|
||||
"when": "editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closeActiveEditor",
|
||||
"when": "editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "capslock",
|
||||
"command": "workbench.action.closePanel",
|
||||
"when": "panelFocus"
|
||||
}
|
||||
// ... you may need to map it to several common "escape" actions
|
||||
]
|
||||
232
dot_config/Cursor/User/settings.json
Normal file
232
dot_config/Cursor/User/settings.json
Normal file
@@ -0,0 +1,232 @@
|
||||
// Cursor model tiers I like:
|
||||
// - Low: gpt-5.1-codex-mini-low
|
||||
// - High: gpt-5.1-codex-mini-high
|
||||
|
||||
{
|
||||
"keyboard.dispatch": "keyCode",
|
||||
"editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace",
|
||||
"editor.lineNumbers": "relative",
|
||||
"editor.tabSize": 4,
|
||||
"editor.insertSpaces": true,
|
||||
"editor.wordWrap": "wordWrapColumn",
|
||||
"editor.wordWrapColumn": 60,
|
||||
"editor.cursorSurroundingLines": 5,
|
||||
"editor.mouseWheelZoom": true,
|
||||
"files.insertFinalNewline": false,
|
||||
"files.autoSave": "afterDelay",
|
||||
"files.autoSaveDelay": 1000,
|
||||
"terminal.integrated.fontFamily": "'Hack', monospace",
|
||||
"workbench.colorTheme": "Bearded Theme Monokai Black",
|
||||
"workbench.colorCustomizations": {
|
||||
"activityBar.background": "#1f2428",
|
||||
"activityBar.activeBorder": "#f85149",
|
||||
"activityBar.foreground": "#f85149",
|
||||
"activityBar.inactiveForeground": "#6e7681",
|
||||
"statusBar.background": "#da3633",
|
||||
"statusBar.foreground": "#ffffff",
|
||||
"titleBar.activeBackground": "#1f2428",
|
||||
"tab.activeBorderTop": "#f85149",
|
||||
"list.activeSelectionForeground": "#f85149",
|
||||
"textLink.foreground": "#f85149",
|
||||
"progressBar.background": "#f85149"
|
||||
},
|
||||
"vim.leader": " ",
|
||||
"vim.useSystemClipboard": true,
|
||||
"vim.hlsearch": true,
|
||||
"vim.smartcase": true,
|
||||
"vim.timeout": 350,
|
||||
"vim.undofile": true,
|
||||
"vim.handleKeys": {
|
||||
"<C-a>": false,
|
||||
"<C-f>": false,
|
||||
"<C-p>": false
|
||||
},
|
||||
"vim.insertModeKeyBindings": [
|
||||
{
|
||||
"before": [
|
||||
"<Esc>"
|
||||
],
|
||||
"after": [
|
||||
"<Esc>"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.files.save"
|
||||
]
|
||||
}
|
||||
],
|
||||
"vim.insertModeKeyBindingsNonRecursive": [
|
||||
{
|
||||
"before": [
|
||||
"<Esc>"
|
||||
],
|
||||
"after": [
|
||||
"<Esc>"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.files.save"
|
||||
]
|
||||
}
|
||||
],
|
||||
"vim.normalModeKeyBindingsNonRecursive": [
|
||||
{
|
||||
"before": [
|
||||
"Y"
|
||||
],
|
||||
"after": [
|
||||
"y",
|
||||
"$"
|
||||
],
|
||||
"silent": true
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"Q"
|
||||
],
|
||||
"after": [
|
||||
"@",
|
||||
"@"
|
||||
],
|
||||
"silent": true
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
","
|
||||
],
|
||||
"after": [
|
||||
"z",
|
||||
"a"
|
||||
],
|
||||
"silent": true
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"'"
|
||||
],
|
||||
"after": [
|
||||
"`"
|
||||
],
|
||||
"silent": true
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"d"
|
||||
],
|
||||
"after": [
|
||||
"d",
|
||||
"$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"d",
|
||||
"l"
|
||||
],
|
||||
"after": [
|
||||
"0",
|
||||
"d",
|
||||
"$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"k"
|
||||
],
|
||||
"after": [
|
||||
"<C-o>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"j"
|
||||
],
|
||||
"after": [
|
||||
"<C-i>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"s",
|
||||
"p"
|
||||
],
|
||||
"commands": [
|
||||
":split"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"v",
|
||||
"s"
|
||||
],
|
||||
"commands": [
|
||||
":vsplit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"v",
|
||||
"v"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.openSettingsJson"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"<leader>",
|
||||
"y",
|
||||
"o"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.toggleZenMode"
|
||||
]
|
||||
}
|
||||
],
|
||||
"[css]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[scss]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[html]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[javascriptreact]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[json]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[typescriptreact]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[yaml]": {
|
||||
"editor.tabSize": 2
|
||||
},
|
||||
"[go]": {
|
||||
"editor.insertSpaces": false,
|
||||
"editor.tabSize": 4
|
||||
},
|
||||
"[markdown]": {
|
||||
"editor.wordWrap": "wordWrapColumn",
|
||||
"editor.wordWrapColumn": 55
|
||||
},
|
||||
"[groovy]": {
|
||||
"editor.wordWrap": "off"
|
||||
},
|
||||
"[jenkinsfile]": {
|
||||
"editor.wordWrap": "off"
|
||||
}
|
||||
}
|
||||
327
dot_config/dunst/dunstrc
Normal file
327
dot_config/dunst/dunstrc
Normal file
@@ -0,0 +1,327 @@
|
||||
[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
|
||||
1728
dot_config/fish/completions/kubectl.fish
Normal file
1728
dot_config/fish/completions/kubectl.fish
Normal file
File diff suppressed because it is too large
Load Diff
178
dot_config/fish/completions/minikube.fish
Normal file
178
dot_config/fish/completions/minikube.fish
Normal file
@@ -0,0 +1,178 @@
|
||||
|
||||
# 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'
|
||||
|
||||
115
dot_config/fish/completions/pass.fish
Normal file
115
dot_config/fish/completions/pass.fish
Normal file
@@ -0,0 +1,115 @@
|
||||
# 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)'
|
||||
235
dot_config/fish/completions/timetrace.fish
Normal file
235
dot_config/fish/completions/timetrace.fish
Normal file
@@ -0,0 +1,235 @@
|
||||
# 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'
|
||||
@@ -1,12 +1,51 @@
|
||||
# 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" }}
|
||||
if status is-login
|
||||
if test -z "$DISPLAY" -a $XDG_VTNR = 1
|
||||
exec startx -- -keeptty
|
||||
end
|
||||
if test -z "$DISPLAY" -a $XDG_VTNR = 1
|
||||
exec startx -- -keeptty
|
||||
end
|
||||
end
|
||||
set -x GPG_TTY (tty)
|
||||
{{ end }}
|
||||
@@ -17,31 +56,45 @@ set -x GPG_TTY (tty)
|
||||
|
||||
set -U fish_greeting
|
||||
|
||||
# spv[[[
|
||||
{{ if eq .chezmoi.fullHostname "nzxt" }}
|
||||
{{ if eq .chezmoi.hostname "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 CLASSPATH $CLASSPATH /home/kevin/java/*.jar
|
||||
set -x GOPATH ~/go
|
||||
# system [[[
|
||||
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 /usr/lib/jvm/java-11-openjdk
|
||||
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)
|
||||
{{ 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
|
||||
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 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 ]]]
|
||||
|
||||
# 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
|
||||
@@ -59,16 +112,46 @@ 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.fullHostname "x1-carbon") (not (eq .chezmoi.username "root")) }}
|
||||
{{ if and (eq .chezmoi.hostname "x1-carbon") (not (eq .chezmoi.username "root")) }}
|
||||
xset r rate $XSET_DELAY $XSET_RATE
|
||||
{{ end }}#]]]
|
||||
|
||||
# set -U BROWSER "chromium"
|
||||
# [[[ universal var's #
|
||||
|
||||
set -xU BROWSER "firefox"
|
||||
# set -U BROWSER "chromium"
|
||||
|
||||
set -xU FZF_DEFAULT_COMMAND "find ."
|
||||
|
||||
set -xU KOGITO_SERVICE_URL "http://example-quarkus-3376.apps-crc.testing/"
|
||||
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'
|
||||
|
||||
# ]]] universal var's #
|
||||
|
||||
@@ -84,12 +167,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')
|
||||
@@ -114,53 +197,63 @@ abbr xf "fish_config"
|
||||
abbr ! "sudo !!"
|
||||
# task [[[ #
|
||||
|
||||
abbr aan "task-anno"
|
||||
abbr ae "task-edit"
|
||||
abbr aan "task-anno ''"
|
||||
abbr aed "task-edit"
|
||||
abbr adl "task-delete"
|
||||
abbr adn "task-done"
|
||||
abbr adu "task-due"
|
||||
abbr adr "task-due-rm"
|
||||
abbr an "task-next"
|
||||
abbr anx "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 asr "task-start"
|
||||
abbr ar "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 b "buku-fzf"
|
||||
abbr bf "buku-fzf fq"
|
||||
abbr bk "buku-fzf"
|
||||
abbr bkf "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 do "debug-operator"
|
||||
abbr dop "debug-operator pull"
|
||||
abbr drs "dump-rarity-check"
|
||||
abbr fd1 "fd --changed-within 1d"
|
||||
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"
|
||||
@@ -173,18 +266,29 @@ abbr gsmb "git-submodule-branch"
|
||||
|
||||
# ]]] git #
|
||||
abbr i "sxiv-silent"
|
||||
# abbr m "man-vim"
|
||||
abbr mn "man-vim"
|
||||
abbr lo "libreoffice-silent"
|
||||
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 oge "oc-get-events"
|
||||
abbr mps "mpv-sub"
|
||||
abbr mtm "maven-test-method"
|
||||
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 rs "redshift-set"
|
||||
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 sma "smol-add"
|
||||
abbr smd "smol-delete"
|
||||
abbr sml "smol-slist"
|
||||
@@ -192,21 +296,63 @@ 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 usc "us-to-cad"
|
||||
abbr ubs "ubuntu-start"
|
||||
abbr umip "unmount-ipad"
|
||||
# abbr usc "us-to-cad"
|
||||
#abbr us "us-to-cad"
|
||||
abbr ut "unix-timestamp"
|
||||
abbr uzr "unzip-rm"
|
||||
abbr vsnp "vim-snippet"
|
||||
abbr waf "watson-add-fortnite"
|
||||
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 xya "export-pkgs"
|
||||
|
||||
# school [[[ #
|
||||
|
||||
abbr rdo "redeploy-operator"
|
||||
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"
|
||||
|
||||
# ]]] 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 <<<
|
||||
|
||||
3
dot_config/fish/functions/aws-attach-volume.fish
Normal file
3
dot_config/fish/functions/aws-attach-volume.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function aws-attach-volume
|
||||
aws ec2 attach-volume --volume-id $argv[1] --instance-id $argv[2] --device /dev/sda1
|
||||
end
|
||||
8
dot_config/fish/functions/bc-qalc.fish
Normal file
8
dot_config/fish/functions/bc-qalc.fish
Normal file
@@ -0,0 +1,8 @@
|
||||
#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
|
||||
@@ -1,16 +0,0 @@
|
||||
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
|
||||
3
dot_config/fish/functions/cad-to-us.fish
Normal file
3
dot_config/fish/functions/cad-to-us.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function cad-to-us
|
||||
qalc "$argv[1]CAD to \$"
|
||||
end
|
||||
3
dot_config/fish/functions/conda_activate.fish
Normal file
3
dot_config/fish/functions/conda_activate.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function conda_activate
|
||||
source ~/miniconda3/bin/activate $argv
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
15
dot_config/fish/functions/discord-burner.fish
Normal file
15
dot_config/fish/functions/discord-burner.fish
Normal file
@@ -0,0 +1,15 @@
|
||||
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
|
||||
3
dot_config/fish/functions/dump-rarity-check.fish
Normal file
3
dot_config/fish/functions/dump-rarity-check.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function dump-rarity-check
|
||||
pg_dump -U rarity_check rarity_check > $argv[1].sql
|
||||
end
|
||||
39
dot_config/fish/functions/fn-progress.fish
Executable file
39
dot_config/fish/functions/fn-progress.fish
Executable file
@@ -0,0 +1,39 @@
|
||||
function fn-progress
|
||||
# --- Season Dates (Fortnite Chapter 7 Season 1) ---
|
||||
set SEASON_START "2025-11-29 00:00:00"
|
||||
set SEASON_END "2026-03-04 00:00:00"
|
||||
|
||||
# --- Calculate Unix Timestamps ---
|
||||
set START_SECONDS (date -d "$SEASON_START" +%s)
|
||||
set END_SECONDS (date -d "$SEASON_END" +%s)
|
||||
set CURRENT_SECONDS (date +%s)
|
||||
set CURRENT_DATE_TIME (date)
|
||||
|
||||
# --- Check if the season is over or hasn't started ---
|
||||
if test "$CURRENT_SECONDS" -lt "$START_SECONDS"
|
||||
echo "🎯 Fortnite C7S1 hasn't started yet! (Starts on $SEASON_START)"
|
||||
return
|
||||
end
|
||||
|
||||
if test "$CURRENT_SECONDS" -ge "$END_SECONDS"
|
||||
echo "🎉 Fortnite C7S1 has ended! (Ended on $SEASON_END)"
|
||||
return
|
||||
end
|
||||
|
||||
# --- Calculate Progress ---
|
||||
set TOTAL_DURATION (math "$END_SECONDS - $START_SECONDS")
|
||||
set TIME_PASSED (math "$CURRENT_SECONDS - $START_SECONDS")
|
||||
|
||||
# --- Calculate the ceiling percentage (The Critical Change) ---
|
||||
# Setting scale=0 forces bc to output only the integer part (truncation),
|
||||
# and adding 0.9999 before truncation implements the ceiling logic.
|
||||
set PROGRESS_PERCENT (echo "scale=0; (($TIME_PASSED * 100) / $TOTAL_DURATION) + 0.9999" | bc)
|
||||
|
||||
# --- Output Result ---
|
||||
echo "📅 Current Date/Time: $CURRENT_DATE_TIME"
|
||||
echo "🚀 Season Start: $SEASON_START"
|
||||
echo "🛑 Season End: $SEASON_END"
|
||||
echo "---"
|
||||
echo "✅ Fortnite C7S1 is **$PROGRESS_PERCENT%** complete!"
|
||||
echo "---"
|
||||
end
|
||||
4
dot_config/fish/functions/fzf-cd.fish
Normal file
4
dot_config/fish/functions/fzf-cd.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function fzf-cd
|
||||
set dir (fd -td | fzf)
|
||||
cd $dir
|
||||
end
|
||||
3
dot_config/fish/functions/git/git-push-diff-name.fish
Executable file
3
dot_config/fish/functions/git/git-push-diff-name.fish
Executable file
@@ -0,0 +1,3 @@
|
||||
function git-push-diff-name
|
||||
git push -f origin HEAD:$argv[1]
|
||||
end
|
||||
@@ -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 master
|
||||
and git push --set-upstream origin main
|
||||
end
|
||||
|
||||
7
dot_config/fish/functions/ipad/clip-ipad.fish
Normal file
7
dot_config/fish/functions/ipad/clip-ipad.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
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
|
||||
3
dot_config/fish/functions/ipad/mpv-ipad-mov.fish
Normal file
3
dot_config/fish/functions/ipad/mpv-ipad-mov.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function mpv-ipad-mov
|
||||
mpv IMG_$IPAD_IMG$argv[1].MOV
|
||||
end
|
||||
3
dot_config/fish/functions/ipad/mpv-ipad.fish
Normal file
3
dot_config/fish/functions/ipad/mpv-ipad.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function mpv-ipad
|
||||
mpv IMG_$IPAD_IMG$argv[1].MP4
|
||||
end
|
||||
3
dot_config/fish/functions/ipad/rm-ipad.fish
Normal file
3
dot_config/fish/functions/ipad/rm-ipad.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function rm-ipad
|
||||
rm IMG_$IPAD_IMG$argv[1].MP4
|
||||
end
|
||||
3
dot_config/fish/functions/ipad/rsync-ipad-vid-mov.fish
Normal file
3
dot_config/fish/functions/ipad/rsync-ipad-vid-mov.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function rsync-ipad-vid-mov
|
||||
rsync --ignore-existing -Ptr IMG_$IPAD_IMG$argv[1].MOV ~/Videos/fortnite/
|
||||
end
|
||||
5
dot_config/fish/functions/ipad/rsync-ipad-vid.fish
Normal file
5
dot_config/fish/functions/ipad/rsync-ipad-vid.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
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
|
||||
4
dot_config/fish/functions/ipad/unmount-ipad.fish
Normal file
4
dot_config/fish/functions/ipad/unmount-ipad.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function unmount-ipad
|
||||
fuser -km /mnt/ipad
|
||||
fusermount -u /mnt/ipad
|
||||
end
|
||||
3
dot_config/fish/functions/libreoffice-silent.fish
Normal file
3
dot_config/fish/functions/libreoffice-silent.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function libreoffice-silent
|
||||
libreoffice $argv[1] &
|
||||
end
|
||||
@@ -2,7 +2,7 @@ function man-vim
|
||||
if count $argv > /dev/null
|
||||
set prog $argv[1]
|
||||
else
|
||||
set prog (apropos . | awk '{ print $1 }' | fzf -e)
|
||||
set prog (apropos . | gawk '{ print $1 }' | fzf -e)
|
||||
end
|
||||
|
||||
nvim -c ":Man $prog" -c "only"
|
||||
|
||||
4
dot_config/fish/functions/maven-test-method.fish
Normal file
4
dot_config/fish/functions/maven-test-method.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function maven-test-method
|
||||
mvn "-Dtest=$argv[1]#*$argv[2]*" clean test
|
||||
# mvn "-Dtest=$argv[1]#*$argv[2]*" test
|
||||
end
|
||||
3
dot_config/fish/functions/mpv-sub.fish
Normal file
3
dot_config/fish/functions/mpv-sub.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function mpv-sub
|
||||
mpv $argv[1] --sub-file=$argv[2]
|
||||
end
|
||||
3
dot_config/fish/functions/mute-video.fish
Normal file
3
dot_config/fish/functions/mute-video.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function mute-video
|
||||
ffmpeg -i $argv[1] -c copy -an $argv[2]
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
function oc-get-events
|
||||
oc get events --field-selector involvedObject.name="$argv[1]"
|
||||
end
|
||||
3
dot_config/fish/functions/qalc-update-amount.fish
Normal file
3
dot_config/fish/functions/qalc-update-amount.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function qalc-update
|
||||
qalc -e "$argv[1]USD to CAD"
|
||||
end
|
||||
3
dot_config/fish/functions/qalc-update.fish
Normal file
3
dot_config/fish/functions/qalc-update.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function qalc-update
|
||||
qalc -e "$argv[1]USD to CAD"
|
||||
end
|
||||
3
dot_config/fish/functions/readlink-cp.fish
Normal file
3
dot_config/fish/functions/readlink-cp.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function readlink-cp
|
||||
readlink -f $argv[1] | xclip -selection clipboard
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
function redeploy-operator
|
||||
oc delete deployment kogito-operator
|
||||
make deploy-operator-on-ocp
|
||||
oc get pods -w
|
||||
end
|
||||
13
dot_config/fish/functions/refresh-config-task.fish
Normal file
13
dot_config/fish/functions/refresh-config-task.fish
Normal file
@@ -0,0 +1,13 @@
|
||||
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
|
||||
3
dot_config/fish/functions/reminder.fish
Normal file
3
dot_config/fish/functions/reminder.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function reminder
|
||||
termdown $argv[2] && notify-send $argv[1]
|
||||
end
|
||||
@@ -2,6 +2,7 @@ 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
|
||||
|
||||
7
dot_config/fish/functions/scp-vid.fish
Normal file
7
dot_config/fish/functions/scp-vid.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
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
|
||||
@@ -1,4 +1,4 @@
|
||||
function task-anno
|
||||
task $argv[1] annotate $argv[2]
|
||||
task $argv[2] annotate $argv[1]
|
||||
and task
|
||||
end
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
function task-delete
|
||||
task $argv[1] delete
|
||||
and task sync
|
||||
and task
|
||||
end
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
function task-done
|
||||
task $argv[1] done
|
||||
and task sync
|
||||
and task
|
||||
end
|
||||
|
||||
3
dot_config/fish/functions/taskopen-new.fish
Normal file
3
dot_config/fish/functions/taskopen-new.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function taskopen-new
|
||||
echo "md" | taskopen -A $argv[1] && taskopen -A $argv[1]
|
||||
end
|
||||
12
dot_config/fish/functions/test_output.txt
Normal file
12
dot_config/fish/functions/test_output.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
📅 Current Date/Time: Sat Dec 6 12:55:57 EST 2025
|
||||
🚀 Season Start: 2025-11-29 00:00:00
|
||||
🛑 Season End: 2026-03-04 00:00:00
|
||||
---
|
||||
✅ Fortnite C7S1 is **7.93%** complete!
|
||||
---
|
||||
]4;0;#0B0E12\]4;1;#671D22\]4;2;#722327\]4;3;#19453B\]4;4;#1B594F\]4;5;#51554A\]4;6;#99322C\]4;7;#82bcb1\]4;8;#5b837b\]4;9;#671D22\]4;10;#722327\]4;11;#19453B\]4;12;#1B594F\]4;13;#51554A\]4;14;#99322C\]4;15;#82bcb1\]10;#82bcb1\]11;#0B0E12\]12;#82bcb1\]13;#82bcb1\]17;#82bcb1\]19;#0B0E12\]4;232;#0B0E12\]4;256;#82bcb1\]708;#0B0E12\📅 Current Date/Time: Sat Dec 6 12:55:57 EST 2025
|
||||
🚀 Season Start: 2025-11-29 00:00:00
|
||||
🛑 Season End: 2026-03-04 00:00:00
|
||||
---
|
||||
✅ Fortnite C7S1 is **7.93%** complete!
|
||||
---
|
||||
5
dot_config/fish/functions/timetrace-list.fish
Normal file
5
dot_config/fish/functions/timetrace-list.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
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
|
||||
@@ -1,3 +1,4 @@
|
||||
function us-to-cad
|
||||
# qalc -e "$argv[1]\$ to CAD"
|
||||
qalc "$argv[1]\$ to CAD"
|
||||
end
|
||||
|
||||
4
dot_config/fish/functions/video-to-gif.fish
Normal file
4
dot_config/fish/functions/video-to-gif.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
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
|
||||
10
dot_config/fish/functions/vpn-red-hat.fish
Normal file
10
dot_config/fish/functions/vpn-red-hat.fish
Normal file
@@ -0,0 +1,10 @@
|
||||
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
|
||||
@@ -1,7 +1,11 @@
|
||||
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 "2020-04-$argv[1] $argv[2]" -t "2020-04-$argv[3] $argv[4]" fun +fortnite
|
||||
watson add -f $start_time -t $end_time fun +fortnite
|
||||
else
|
||||
watson add -f "2020-04-$argv[1] $argv[2]" -t "2020-04-$argv[3] $argv[4]" fun +fortnite +$argv[5]
|
||||
watson add -f $start_time -t $end_time fun +fortnite +$argv[5]
|
||||
end
|
||||
end
|
||||
|
||||
11
dot_config/fish/functions/watson-add-game.fish
Normal file
11
dot_config/fish/functions/watson-add-game.fish
Normal file
@@ -0,0 +1,11 @@
|
||||
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
|
||||
5
dot_config/fish/functions/wget-all.fish
Normal file
5
dot_config/fish/functions/wget-all.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
function wget-all
|
||||
for url in $argv
|
||||
wget $url
|
||||
end
|
||||
end
|
||||
3
dot_config/fish/functions/wget-name.fish
Normal file
3
dot_config/fish/functions/wget-name.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function wget-name
|
||||
wget $argv[1] -O $argv[2]
|
||||
end
|
||||
0
dot_config/fish/spotifyvis.bak
abbr sv serve
Normal file
0
dot_config/fish/spotifyvis.bak
abbr sv serve
Normal file
@@ -1,35 +1,49 @@
|
||||
# startup [[[ #
|
||||
|
||||
# set $term urxvt
|
||||
# set $term_alt st
|
||||
set $term kitty
|
||||
set $term_alt urxvt
|
||||
#set $term gnome-terminal
|
||||
# set $term st
|
||||
# set $term_alt urxvt
|
||||
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
|
||||
exec dunst
|
||||
{{ 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
|
||||
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/non-editing")
|
||||
exec wal -i $(/home/kevin/scripts/shuffler "$HOME/Pictures/Backgrounds/dim/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 $ws6; exec discord'
|
||||
# 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'
|
||||
|
||||
# ]]] startup #
|
||||
|
||||
# applications [[[ #
|
||||
|
||||
set $mod Mod1
|
||||
set $browser "firefox"
|
||||
# set $browser "chromium-browser"
|
||||
#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 $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 [[[ #
|
||||
@@ -41,8 +55,7 @@ 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 ~/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 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
|
||||
@@ -50,34 +63,45 @@ bindsym Mod4+Return exec ~/scripts/dmenu-history -nb "$fg" -nf "$bg" -sb "$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+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+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
|
||||
# bindsym Mod4+f exec firefox --private-window google.ca
|
||||
# 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 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+$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 Mod4+o exec $type_delay_cmd && xdotool key 'Control_L+v'
|
||||
bindsym Mod4+$mod+o exec xset dpms force off
|
||||
bindsym $mod+Mod4+o workspace $ws11; exec obs
|
||||
# bindsym Mod4+p workspace $ws4; exec pgadmin3
|
||||
# bindsym Mod4+p exec pycharm
|
||||
bindsym Mod4+p exec sleep .2 && xdotool type '.catch '
|
||||
bindsym Mod4+$mod+p exec passmenu
|
||||
#bindsym Mod4+p exec passmenu
|
||||
bindsym Mod4+p exec /home/kevin/scripts/passmenu
|
||||
# # bindsym Mod4+p exec sleep .2 && xdotool type '.catch '
|
||||
# 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 $term -e ranger
|
||||
bindsym Mod4+$mod+r exec notify-send "watson restart" "$(watson restart)"
|
||||
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+$mod+s exec $type_delay_cmd && xdotool type 'https://smol.gq/'
|
||||
bindsym Mod4+t exec xclip -selection clipboard ~/.password-store/social/trapbot && $type_delay_cmd && xdotool key 'Control_L+v'
|
||||
bindsym Mod4+$mod+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)"
|
||||
@@ -86,16 +110,28 @@ 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 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'"
|
||||
# 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'"
|
||||
{{ else }}
|
||||
bindsym Mod4+x exec xmodmap ~/.Xmodmap-laptop && xset r rate $XSET_DELAY $XSET_RATE
|
||||
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'"
|
||||
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'"
|
||||
{{ end }}
|
||||
|
||||
# ]]] screenshot #
|
||||
|
||||
# ]]] app shortcuts #
|
||||
|
||||
# redshift [[[ #
|
||||
@@ -105,13 +141,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 or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
bindsym Shift+F1 exec xbacklight -set 10
|
||||
bindsym Shift+F2 exec xbacklight -set 20
|
||||
bindsym Shift+F3 exec xbacklight -set 30
|
||||
@@ -122,7 +158,6 @@ 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
|
||||
@@ -133,8 +168,11 @@ 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 #
|
||||
|
||||
@@ -178,10 +216,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.fullHostname "nzxt" }}
|
||||
border_radius $border_radius
|
||||
gaps inner 0
|
||||
gaps outer 0
|
||||
{{ if eq .chezmoi.hostname "nzxt" }}
|
||||
# border_radius $border_radius
|
||||
{{ end }}
|
||||
|
||||
# other gaps [[[ #
|
||||
@@ -238,7 +276,7 @@ bindsym $mod+minus move workspace to output left
|
||||
bindsym $mod+plus move workspace to output right
|
||||
|
||||
# move focused window
|
||||
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
bindsym Control+Shift+h move left 50px
|
||||
bindsym Control+Shift+j move down 50px
|
||||
bindsym Control+Shift+k move up 50px
|
||||
@@ -281,7 +319,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 or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
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
|
||||
@@ -296,59 +334,87 @@ bindsym Control+$mod+y exec wal -i $($scripts_path/shuffler "$HOME/Pictures/Back
|
||||
|
||||
# ws names [[[ #
|
||||
|
||||
set $ws1 "1 "
|
||||
{{ if or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
|
||||
set $ws1 "1 "
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
set $secondary "HDMI2"
|
||||
set $main "eDP1"
|
||||
# {{ else if eq .linux_os "fedora" }}
|
||||
# set $secondary "HDMI2"
|
||||
# set $main "eDP-1"
|
||||
{{ else if eq .chezmoi.fullHostname "nzxt" }}
|
||||
{{ else if eq .chezmoi.hostname "nzxt" }}
|
||||
set $secondary "DVI-I-1"
|
||||
set $main "HDMI-0"
|
||||
{{ end }}
|
||||
|
||||
workspace $ws1 output $main
|
||||
bindsym $mod+F1 workspace $ws1; exec $term
|
||||
set $secondary "DVI-D-0"
|
||||
set $main "HDMI-0"
|
||||
|
||||
set $ws2 "2 "
|
||||
# workspace $ws1 output $main
|
||||
workspace $ws1 output $secondary
|
||||
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"
|
||||
workspace $ws2 output $secondary
|
||||
bindsym $mod+F2 workspace $ws2; exec $term
|
||||
# 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'
|
||||
# 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
|
||||
|
||||
set $ws3 "3 "
|
||||
# set $ws3 "3 "
|
||||
# ws3 [[[ #
|
||||
|
||||
#set $ws3 "3 "
|
||||
set $ws3 "3 "
|
||||
# workspace $ws3 output $main
|
||||
bindsym $mod+F3 workspace $ws3; exec $browser
|
||||
# bindsym $mod+F3 workspace $ws3; exec $browser
|
||||
# bindsym $mod+F3 exec $browser; move container to workspace $ws3; workspace $ws3
|
||||
bindsym $mod+F3 exec $browser
|
||||
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 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
|
||||
|
||||
set $ws4 "4 "
|
||||
# ]]] ws3 #
|
||||
|
||||
set $ws4 "4 "
|
||||
workspace $ws4 output $secondary
|
||||
bindsym $mod+F4 workspace $ws4; exec $term
|
||||
# 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
|
||||
|
||||
set $ws5 "5 "
|
||||
# ws5 [[[ #
|
||||
|
||||
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 --private-window
|
||||
# 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 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
|
||||
@@ -358,40 +424,50 @@ 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
|
||||
|
||||
set $ws6 "6 "
|
||||
# ]]] ws5 #
|
||||
|
||||
# ws6 [[[ #
|
||||
|
||||
set $ws6 "6 "
|
||||
workspace $ws6 output $secondary
|
||||
assign [class="Slack"] $ws6
|
||||
# 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+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+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'
|
||||
|
||||
set $ws7 "7 "
|
||||
# ]]] ws6 #
|
||||
|
||||
set $ws7 "7 "
|
||||
workspace $ws7 output $secondary
|
||||
# bindsym $mod+F7 workspace $ws7; exec $term
|
||||
bindsym $mod+F7 workspace $ws7; exec $term -e mosh --ssh='ssh -p 399' kevin@165.22.239.234 tmux a
|
||||
# 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 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
|
||||
@@ -400,13 +476,19 @@ 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_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 gotop -m
|
||||
# bindsym Mod4+a workspace $ws11; exec antimicro
|
||||
|
||||
@@ -482,8 +564,9 @@ 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
|
||||
@@ -508,14 +591,13 @@ set $bar_trans 00
|
||||
set $main_ws_trans aa
|
||||
bar {
|
||||
i3bar_command i3bar -t
|
||||
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
|
||||
{{ if eq .chezmoi.hostname "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
|
||||
#font pango:$sb_font 16:pixelsize=5
|
||||
#font pango:$sb_font 16
|
||||
font pango:$sb_font 30
|
||||
{{ end }}
|
||||
colors {
|
||||
# 0 (transparent) -> 255 (opaque) in hex
|
||||
@@ -531,6 +613,7 @@ 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
|
||||
}
|
||||
@@ -540,11 +623,14 @@ bar {
|
||||
# secondary bar [[[ #
|
||||
|
||||
bar {
|
||||
# output $main
|
||||
output $secondary
|
||||
{{ if eq .chezmoi.fullHostname "x1-carbon" }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
font pango:$sb_font 18
|
||||
{{ else }}
|
||||
font pango:$sb_font 20
|
||||
# font pango:$sb_font 21
|
||||
font pango:$sb_font 30
|
||||
#font pango:$sb_font 18
|
||||
{{ end }}
|
||||
# output $main
|
||||
i3bar_command i3bar -t
|
||||
@@ -601,6 +687,17 @@ bindsym XF86AudioNext exec "dbus-send --print-reply --dest=org.mpris.MediaPlayer
|
||||
|
||||
# ]]] fn key #
|
||||
|
||||
# voice dictation [[[ #
|
||||
# One-tap toggle for voice dictation using Scroll Lock.
|
||||
bindsym Scroll_Lock exec "$hands_free_tools/voice.sh toggle"
|
||||
|
||||
# (Optional panic kill, only if you still want it)
|
||||
# bindsym Control+Scroll_Lock exec "$hands_free_tools/voice.sh quit"
|
||||
|
||||
# (Optional Vim-safe stop, only if stop-vim exists and you actually use it)
|
||||
# bindsym $mod+Shift+v exec "$hands_free_tools/voice.sh stop-vim"
|
||||
|
||||
|
||||
# ]]] media keys #
|
||||
|
||||
# vim: fdm=marker ft=i3.go-template
|
||||
|
||||
@@ -35,8 +35,9 @@ markup=pango
|
||||
|
||||
[time]
|
||||
label=
|
||||
# command=date '+%H:%M.%a-%m-%d'
|
||||
command=date '+%H:%M.%a-%m-%d'
|
||||
interval=30
|
||||
interval=1
|
||||
color=#acc0cd
|
||||
|
||||
[spotify]
|
||||
|
||||
@@ -11,18 +11,48 @@ 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
|
||||
# label=
|
||||
label=
|
||||
# label=🎧
|
||||
# green
|
||||
# color=#198c19
|
||||
# aqua
|
||||
# color=#2d7272
|
||||
interval=5
|
||||
#[spotify]
|
||||
##command=python ~/linux-config/configs/i3blocks-scripts/spotify.py
|
||||
#command=/home/kevin/.config/i3blocks/scripts/spotify
|
||||
## label=
|
||||
#label=
|
||||
## # label=🎧
|
||||
## # green
|
||||
## # color=#198c19
|
||||
## # aqua
|
||||
## # color=#2d7272
|
||||
#interval=5
|
||||
|
||||
# [spotify]
|
||||
# label=
|
||||
# LONG_NAME=
|
||||
# SHORT_NAME=
|
||||
# interval=5
|
||||
|
||||
[volume]
|
||||
interval=once
|
||||
@@ -34,26 +64,24 @@ interval=60
|
||||
# time [[[ #
|
||||
|
||||
[calendar]
|
||||
interval=30
|
||||
label=
|
||||
{{ if eq .chezmoi.fullHostname "nzxt" }}
|
||||
DATEFMT=+%H:%M.%a-%m-%d
|
||||
{{ else }}
|
||||
DATEFMT=+%H:%M
|
||||
{{ end }}
|
||||
interval=1
|
||||
#label=
|
||||
# DATEFMT=+%H:%M.%a-%m-%d
|
||||
# DATEFMT=+%H:%M
|
||||
#DATEFMT=+%H:%M
|
||||
# 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.fullHostname "x1-carbon" }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
[temperature]
|
||||
label=
|
||||
interval=5
|
||||
|
||||
[name]
|
||||
label=
|
||||
interval=30
|
||||
# [name]
|
||||
# label=
|
||||
# interval=30
|
||||
{{ end }}
|
||||
|
||||
@@ -13,6 +13,112 @@ 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]
|
||||
@@ -20,19 +126,28 @@ interval=once
|
||||
signal=1
|
||||
interval=60
|
||||
|
||||
{{ if eq .chezmoi.fullHostname "nzxt" }}
|
||||
[spotify]
|
||||
label=
|
||||
LONG_NAME=
|
||||
SHORT_NAME=
|
||||
interval=5
|
||||
{{ end }}
|
||||
# [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/spotify #
|
||||
|
||||
# laptop [[[ #
|
||||
|
||||
{{ if or (eq .chezmoi.fullHostname "x1-carbon") (eq .linux_os "fedora") }}
|
||||
{{ if eq .chezmoi.hostname "x1-carbon" }}
|
||||
[battery]
|
||||
label=⚡
|
||||
interval=30
|
||||
@@ -43,61 +158,52 @@ instance=wlp3s0
|
||||
interval=10
|
||||
|
||||
[backlight]
|
||||
label=
|
||||
label=
|
||||
interval=5
|
||||
{{ end }}
|
||||
|
||||
# [wifi]
|
||||
# label=
|
||||
# instance=wlp4s0
|
||||
# interval=10
|
||||
|
||||
# ]]] laptop #
|
||||
|
||||
# time [[[ #
|
||||
|
||||
[calendar]
|
||||
interval=30
|
||||
label=
|
||||
DATEFMT=+%H:%M
|
||||
interval=1
|
||||
#label=
|
||||
# DATEFMT=+%H:%M
|
||||
# DATEFMT=+%H:%M.%a-%m-%d
|
||||
HEIGHT=180
|
||||
WIDTH=220
|
||||
# SHORTFMT=+%H:%M:%S
|
||||
#HEIGHT=180
|
||||
#WIDTH=220
|
||||
|
||||
# ]]] time #
|
||||
|
||||
# sys.monitoring [[[ #
|
||||
|
||||
{{ if eq .chezmoi.fullHostname "nzxt" }}
|
||||
# [wifi]
|
||||
# label=
|
||||
# instance=wlp4s0
|
||||
# interval=10
|
||||
|
||||
[temperature]
|
||||
label=
|
||||
interval=5
|
||||
|
||||
# unbold this?
|
||||
# [load_average]
|
||||
# label=
|
||||
# [temperature]
|
||||
# label=
|
||||
# interval=5
|
||||
# color=#990000
|
||||
{{ end }}
|
||||
|
||||
[cpu_usage]
|
||||
label=
|
||||
interval=5
|
||||
# [cpu_usage]
|
||||
# label=
|
||||
# interval=5
|
||||
|
||||
[memory]
|
||||
label=
|
||||
# color=#3da061
|
||||
interval=5
|
||||
# [memory]
|
||||
# label=
|
||||
# # color=#3da061
|
||||
# interval=5
|
||||
|
||||
# ]]] sys.monitoring #
|
||||
|
||||
# name [[[ #
|
||||
|
||||
{{ if eq .chezmoi.fullHostname "nzxt" }}
|
||||
[name]
|
||||
label=
|
||||
interval=30
|
||||
{{ end }}
|
||||
# [name]
|
||||
# label=
|
||||
# interval=30
|
||||
|
||||
# ]]] name #
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ round()
|
||||
echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
|
||||
};
|
||||
|
||||
. "/home/$USER/.cache/wal/colors.sh"
|
||||
. "/home/kevin/.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"
|
||||
|
||||
@@ -24,12 +24,16 @@ my $short_text;
|
||||
my $bat_number = $ENV{BLOCK_INSTANCE} || 0;
|
||||
|
||||
# read the first line of the "acpi" command output
|
||||
open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die;
|
||||
open (ACPI, "acpi -b 2>/dev/null| grep 'Battery $bat_number' |") or die;
|
||||
$acpi = <ACPI>;
|
||||
close(ACPI);
|
||||
|
||||
# fail on unexpected output
|
||||
if ($acpi !~ /: (\w+), (\d+)%/) {
|
||||
if (not defined($acpi)) {
|
||||
# don't print anything to stderr if there is no battery
|
||||
exit(0);
|
||||
}
|
||||
elsif ($acpi !~ /: ([\w\s]+), (\d+)%/) {
|
||||
die "$acpi\n";
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
|
||||
WIDTH=${WIDTH:-200}
|
||||
HEIGHT=${HEIGHT:-200}
|
||||
DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"}
|
||||
SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
|
||||
#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"}
|
||||
|
||||
OPTIND=1
|
||||
while getopts ":f:W:H:" opt; do
|
||||
@@ -37,7 +40,7 @@ case "$BLOCK_BUTTON" in
|
||||
> /dev/null"
|
||||
# --close-on-unfocus \
|
||||
esac
|
||||
. "/home/$USER/.cache/wal/colors.sh"
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
echo "$LABEL$(date "$DATEFMT")"
|
||||
echo "$LABEL$(date "$SHORTFMT")"
|
||||
echo "$color7"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
. "/home/$USER/.cache/wal/colors.sh"
|
||||
. "/home/kevin/.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"
|
||||
|
||||
6
dot_config/i3blocks/scripts/executable_dexscreener
Executable file
6
dot_config/i3blocks/scripts/executable_dexscreener
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/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"
|
||||
6
dot_config/i3blocks/scripts/executable_dexscreener-fdv
Executable file
6
dot_config/i3blocks/scripts/executable_dexscreener-fdv
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/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"
|
||||
6
dot_config/i3blocks/scripts/executable_dexscreener-mc
Executable file
6
dot_config/i3blocks/scripts/executable_dexscreener-mc
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/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"
|
||||
4
dot_config/i3blocks/scripts/executable_fn_level
Executable file
4
dot_config/i3blocks/scripts/executable_fn_level
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
printf "Kevin\n\n%s\n" "$color7"
|
||||
6
dot_config/i3blocks/scripts/executable_kraken
Executable file
6
dot_config/i3blocks/scripts/executable_kraken
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
#ticker=$(~/scripts/kraken $TICKER)
|
||||
ticker=$(~/scripts/kraken $1)
|
||||
printf "%s\n\n%s\n" "$ticker" "$color7"
|
||||
@@ -15,7 +15,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
TYPE="${BLOCK_INSTANCE:-mem}"
|
||||
. "/home/$USER/.cache/wal/colors.sh"
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
|
||||
awk -v type=$TYPE '
|
||||
/^MemTotal:/ {
|
||||
|
||||
@@ -9,6 +9,8 @@ case "$BLOCK_BUTTON" in
|
||||
esac
|
||||
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
long_title=$(spotify-now -i "$LONG_NAME" -p '' -e '' | sed 's/&/&/g')
|
||||
short_title=$(spotify-now -i "$SHORT_NAME" -p '' -e '' | sed 's/&/&/g')
|
||||
#long_title=$(spotify-now -i "$LONG_NAME" -p '' -e '' | sed 's/&/&/g')
|
||||
#short_title=$(spotify-now -i "$SHORT_NAME" -p '' -e '' | sed 's/&/&/g')
|
||||
long_title=$(spotify-now)
|
||||
short_title=$(spotify-now)
|
||||
printf "$long_title\n$short_title\n%s\n" "$color7"
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
|
||||
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"
|
||||
# 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"
|
||||
|
||||
5
dot_config/i3blocks/scripts/executable_ticker
Executable file
5
dot_config/i3blocks/scripts/executable_ticker
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
ticker=$(~/scripts/ticker $TICKER)
|
||||
printf "%s\n\n%s\n" "$ticker" "$color7"
|
||||
22
dot_config/i3blocks/scripts/executable_time
Executable file
22
dot_config/i3blocks/scripts/executable_time
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/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)
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/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"
|
||||
@@ -17,7 +17,7 @@ AUDIO_LOW_SYMBOL=${AUDIO_LOW_SYMBOL:-''}
|
||||
|
||||
AUDIO_MUTED_SYMBOL=${AUDIO_MUTED_SYMBOL:-''}
|
||||
|
||||
. "/home/$USER/.cache/wal/colors.sh"
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
# DEFAULT_COLOR=${DEFAULT_COLOR:-"#ffffff"}
|
||||
DEFAULT_COLOR="$color7"
|
||||
MUTED_COLOR=${MUTED_COLOR:-"#a0a0a0"}
|
||||
@@ -32,12 +32,14 @@ SCONTROL=${SCONTROL:-""}
|
||||
|
||||
# }}} default vars #
|
||||
|
||||
AUDIO_DELTA=${AUDIO_DELTA:-5}
|
||||
AUDIO_DELTA=${AUDIO_DELTA:-3}
|
||||
# AUDIO_DELTA=${AUDIO_DELTA:-2}
|
||||
# AUDIO_DELTA=${AUDIO_DELTA:-1}
|
||||
|
||||
# LONG_FORMAT=${LONG_FORMAT:-'${SYMB} ${VOL}% [${INDEX}:${NAME}]'}
|
||||
LONG_FORMAT=${SHORT_FORMAT:-'${SINK_SYMB} ${VOL}%'}
|
||||
LONG_FORMAT=${SHORT_FORMAT:-'${SINK_SYMB} ${VOL}%'}
|
||||
# SHORT_FORMAT=${SHORT_FORMAT:-'${SYMB} ${VOL}%[${INDEX}]'}
|
||||
SHORT_FORMAT=${SHORT_FORMAT:-'${SINK_SYMB} ${VOL}%'}
|
||||
SHORT_FORMAT=${SHORT_FORMAT:-'${SINK_SYMB} ${VOL}%'}
|
||||
|
||||
# flags {{{ #
|
||||
|
||||
@@ -90,14 +92,13 @@ 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
|
||||
SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
# Use the 'Master' control
|
||||
SCONTROL="Master"
|
||||
fi
|
||||
|
||||
CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/ Capabilities:.*cvolume.*/Capture/p")
|
||||
@@ -140,20 +141,18 @@ esac
|
||||
# print_format {{{ #
|
||||
|
||||
function print_format {
|
||||
# echo $NAME
|
||||
case $NAME in
|
||||
*"USB"*)
|
||||
SINK_SYMB=""
|
||||
;;
|
||||
*"hdmi"*)
|
||||
SINK_SYMB=""
|
||||
;;
|
||||
*"pci"*)
|
||||
SINK_SYMB=""
|
||||
;;
|
||||
esac
|
||||
# echo "$1" | envsubst '${SYMB}${VOL}${INDEX}${NAME}'
|
||||
echo "$1" | envsubst '${SINK_SYMB}${VOL}${INDEX}${NAME}'
|
||||
case $NAME in
|
||||
*"Fiio"*)
|
||||
SINK_SYMB=""
|
||||
;;
|
||||
*"hdmi"*)
|
||||
SINK_SYMB=""
|
||||
;;
|
||||
*"pci"*)
|
||||
SINK_SYMB=" "
|
||||
;;
|
||||
esac
|
||||
eval "echo \"$1\""
|
||||
}
|
||||
|
||||
# }}} print_format #
|
||||
@@ -161,38 +160,25 @@ function print_format {
|
||||
# print_block {{{ #
|
||||
|
||||
function print_block {
|
||||
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 )
|
||||
# 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)
|
||||
VOL="${VOL%?}"
|
||||
MUTED=$(echo "$VOL_INFO" | grep -oE '\[on\]|\[off\]')
|
||||
|
||||
NAME=$(echo "$NAME")
|
||||
# NAME=$(echo "$NAME" | sed \
|
||||
# 's/.*<.*\.\(.*\)>.*/\1/; t;'\
|
||||
# 's/.*<\(.*\)>.*/\1/; t;'\
|
||||
# 's/.*/unknown/')
|
||||
# NAME=$(echo "$NAME" | sed \
|
||||
# 's/.*<.*\.\(.*\)\..*>.*/\1/; t;')
|
||||
# Default name for ALSA
|
||||
NAME=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
|
||||
if [[ $USE_ALSA_NAME == 1 ]] ; then
|
||||
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/')
|
||||
ALSA_NAME=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
NAME=${ALSA_NAME:-$NAME}
|
||||
elif [[ $USE_DESCRIPTION == 1 ]] ; then
|
||||
DESCRIPTION=$(pacmd list-sinks |\
|
||||
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
|
||||
grep "device.description" |\
|
||||
head -n1 |\
|
||||
sed 's/.*= "\(.*\)".*/\1/')
|
||||
DESCRIPTION=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
NAME=${DESCRIPTION:-$NAME}
|
||||
fi
|
||||
|
||||
if [[ $MUTED =~ "no" ]] ; then
|
||||
# Fix mute status check
|
||||
if [[ $MUTED == "[on]" ]] ; then
|
||||
SYMB=$AUDIO_HIGH_SYMBOL
|
||||
[[ $VOL -le $AUDIO_MED_THRESH ]] && SYMB=$AUDIO_MED_SYMBOL
|
||||
[[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMB=$AUDIO_LOW_SYMBOL
|
||||
@@ -219,3 +205,141 @@ 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
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
INTERFACE="${BLOCK_INSTANCE:-wlan0}"
|
||||
# echo $INTERFACE
|
||||
# INTERFACE="${INSTANCE}"
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
@@ -29,17 +28,17 @@ INTERFACE="${BLOCK_INSTANCE:-wlan0}"
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
|
||||
QUALITY=$(sudo 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/$USER/.cache/wal/colors.sh"
|
||||
. "/home/kevin/.cache/wal/colors.sh"
|
||||
# color
|
||||
if [[ $QUALITY -lt 50 ]]; then
|
||||
echo "#FF0000"
|
||||
|
||||
@@ -1,13 +1,29 @@
|
||||
confirm_os_window_close 0
|
||||
|
||||
include ~/.cache/wal/colors-kitty.conf
|
||||
background_opacity .6
|
||||
/* background_opacity .7 */
|
||||
# background_opacity .7
|
||||
# background_opacity .8
|
||||
# background_opacity .85
|
||||
background_opacity .9
|
||||
# background_opacity .95
|
||||
# background_opacity .97
|
||||
clipboard_control write-clipboard write-primary
|
||||
enable_audio_bell no
|
||||
|
||||
|
||||
# font
|
||||
cursor_blink_interval 0
|
||||
# font_size 12.5
|
||||
# font_size 14
|
||||
font_size 14.5
|
||||
font_size 12
|
||||
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
|
||||
|
||||
36
dot_config/mimeapps-ffox.list
Normal file
36
dot_config/mimeapps-ffox.list
Normal file
@@ -0,0 +1,36 @@
|
||||
[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;
|
||||
37
dot_config/mimeapps.list
Normal file
37
dot_config/mimeapps.list
Normal file
@@ -0,0 +1,37 @@
|
||||
[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;
|
||||
@@ -7,23 +7,33 @@ v cycle mute
|
||||
r set speed 1.0
|
||||
g set speed 1.6
|
||||
h set speed 2.4
|
||||
a add speed -.2
|
||||
s add speed .2
|
||||
w add speed -.2
|
||||
e add speed .2
|
||||
|
||||
# seek
|
||||
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
|
||||
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
|
||||
|
||||
# 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
|
||||
# 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"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
sub-auto=fuzzy
|
||||
# volume=25
|
||||
# volume=75
|
||||
ytdl-format=best
|
||||
ytdl-raw-options=sub-format=en,write-srt=
|
||||
|
||||
16
dot_config/msmtp/config
Normal file
16
dot_config/msmtp/config
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
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
|
||||
@@ -20,17 +20,17 @@ print_info() {
|
||||
info "Shell" shell
|
||||
info "Packages" packages
|
||||
info "WM" wm
|
||||
info "WM Theme" wm_theme
|
||||
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,10 +336,8 @@ public_ip_host="http://ident.me"
|
||||
# disk_show=('/'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
#
|
||||
# disk_show=('/' '/home' '/mnt/linux-files' )
|
||||
# disk_show=('/dev/sda1' '/dev/sda3' '/dev/sdc2' )
|
||||
# disk_show=('/dev/sda2' )
|
||||
disk_show=('/' '/home' )
|
||||
disk_show=('/' '/home' '/mnt/linux-files-2' )
|
||||
#disk_show=('/dev/sda1' '/dev/sdaf' '/dev/sdd1' )
|
||||
|
||||
# Disk subtitle.
|
||||
# What to append to the Disk subtitle.
|
||||
|
||||
18
dot_config/neomutt/neomuttrc
Normal file
18
dot_config/neomutt/neomuttrc
Normal file
@@ -0,0 +1,18 @@
|
||||
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
Reference in New Issue
Block a user