From 125a9b1752d2a9faa8387527ec953779fea3985a Mon Sep 17 00:00:00 2001 From: Quartz Syncer Date: Thu, 5 Feb 2026 09:53:27 -0700 Subject: [PATCH] Published multiple files --- .../06 AUTHOR/11 METADATA/Phil Skentelbery.md | 3 +- .../12 MUSINGS/Social Media Isn't Social.md | 5 +- .../11.11 PLACES/US, CO, Fairplay.md | 3 +- .../11.11 PLACES/US, NV, Las Vegas.md | 3 +- .../12 HABITS/12.11 DAILY/10 MLD.md | 3 +- .../13 TECH SETUP/13.11 APPS/VeraCrypt.md | 78 ++++++- .../13 TECH SETUP/13.11 APPS/aerc.md | 105 +++++++++ .../13 TECH SETUP/13.11 APPS/atuin.md | 113 ++++++++++ .../13 TECH SETUP/13.11 APPS/impala.md | 116 ++++++++++ .../13 TECH SETUP/13.11 APPS/isync.md | 118 ++++++++++ .../13 TECH SETUP/13.11 APPS/nvim.md | 115 ++++++++++ .../13 TECH SETUP/13.11 APPS/qutebrowser.md | 119 ++++++++++ .../13 TECH SETUP/13.11 APPS/urlref.md | 5 +- .../13 TECH SETUP/13.11 APPS/whosthere.md | 104 +++++++++ .../13 TECH SETUP/13.11 APPS/zathura.md | 116 ++++++++++ .../13 TECH SETUP/13.12 PROCESSES/Backups.md | 3 +- .../13.13 OS SETUP/00 - Start Here.md | 58 +++++ .../13.13 OS SETUP/AppImage Management.md | 118 ++++++++++ .../13 TECH SETUP/13.13 OS SETUP/Ashell.md | 122 +++++++++++ .../13 TECH SETUP/13.13 OS SETUP/Audio.md | 89 ++++++++ .../13 TECH SETUP/13.13 OS SETUP/Disks.md | 101 +++++++++ .../13 TECH SETUP/13.13 OS SETUP/Fonts.md | 106 +++++++++ .../13.13 OS SETUP/Hyprland Setup.md | 203 ++++++++++++++++++ .../13 TECH SETUP/13.13 OS SETUP/Keychain.md | 107 +++++++++ .../13 TECH SETUP/13.13 OS SETUP/Mako.md | 106 +++++++++ .../13 TECH SETUP/13.13 OS SETUP/Network.md | 182 ++++++++++++++++ .../13 TECH SETUP/13.13 OS SETUP/Plymouth.md | 131 +++++++++++ .../13 TECH SETUP/13.13 OS SETUP/Printing.md | 95 ++++++++ .../13 TECH SETUP/13.13 OS SETUP/Shell.md | 153 +++++++++++++ .../13 TECH SETUP/13.13 OS SETUP/Yubikey.md | 143 ++++++++++++ .../13 TECH SETUP/13.13 OS SETUP/fprintd.md | 120 +++++++++++ .../13 TECH SETUP/13.13 OS SETUP/hyprlock.md | 188 ++++++++++++++++ .../13.13 OS SETUP/hyprshutdown.md | 78 +++++++ .../21.11 DAGGERHEART/Character Creation.md | 3 +- .../21 TTRPG/21.12 HOLDING BACK SIN/Hub.md | 3 +- .../21.12 HOLDING BACK SIN/Sin Manifest.md | 5 +- .../21.12 HOLDING BACK SIN/The Church.md | 3 +- .../The First Sinner.md | 3 +- .../21.12 HOLDING BACK SIN/The Old Gods.md | 3 +- .../21.12 HOLDING BACK SIN/The Pit.md | 3 +- .../21.12 HOLDING BACK SIN/Ydrasog.md | 3 +- .../22.11 DIGITAL GARDEN/Obsidian.md | 3 +- .../22.11 DIGITAL GARDEN/Setup.md | 3 +- .../22.12 SERVICES/GoToSocial.md | 3 +- .../22.12 SERVICES/Syncthing.md | 3 +- .../23 SECURITY/23.11 EVILGINX/00 - Index.md | 3 +- .../Installation of Community Edition.md | 3 +- .../23.11 EVILGINX/basic configuration.md | 3 +- .../23.11 EVILGINX/configuration.md | 3 +- .../23 SECURITY/23.11 EVILGINX/phish setup.md | 3 +- .../Final Fantasy Draft Notes.md | 3 +- .../24.12 COMMANDER/Nasty Nasty Necrons.md | 3 +- .../24 MTG/24.13 PAUPER/Planning.md | 3 +- content/index.md | 3 +- 54 files changed, 3140 insertions(+), 34 deletions(-) create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/00 - Start Here.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/AppImage Management.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Fonts.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Hyprland Setup.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Keychain.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Printing.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Shell.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Yubikey.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock.md create mode 100644 content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprshutdown.md diff --git a/content/06 AUTHOR/11 METADATA/Phil Skentelbery.md b/content/06 AUTHOR/11 METADATA/Phil Skentelbery.md index a552c4d..769e11e 100644 --- a/content/06 AUTHOR/11 METADATA/Phil Skentelbery.md +++ b/content/06 AUTHOR/11 METADATA/Phil Skentelbery.md @@ -1,7 +1,8 @@ --- publish: true +permalink: /06 AUTHOR/11 METADATA/Phil Skentelbery.md title: Phil Skentelbery -created: 2026-01-10T15:29:20.601-07:00 +created: 2026-01-29T14:04:18.712-07:00 modified: 2026-01-10T21:07:06.051-07:00 cssclasses: "" --- diff --git a/content/06 AUTHOR/12 MUSINGS/Social Media Isn't Social.md b/content/06 AUTHOR/12 MUSINGS/Social Media Isn't Social.md index 61c26bf..39bc6ae 100644 --- a/content/06 AUTHOR/12 MUSINGS/Social Media Isn't Social.md +++ b/content/06 AUTHOR/12 MUSINGS/Social Media Isn't Social.md @@ -1,6 +1,7 @@ --- publish: true -created: 2026-01-21T13:29:26.549-07:00 +permalink: /06 AUTHOR/12 MUSINGS/Social Media Isn't Social.md +created: 2026-01-29T14:04:18.833-07:00 modified: 2026-01-21T13:54:49.189-07:00 cssclasses: "" --- @@ -15,6 +16,6 @@ Then came a realization for The Algorithm, things that you were "interested in" And this is why I abandoned social media for a long time. I lurked, I scraped around every now and again for something I wanted to see, but I did not engage like I once did. Gone were the days where i tinkered with the HTML to impress my MySpace buddies, now social media was a chore, something i had to occasionally check on so I was not out of the loop. -I missed social media, but it did not exist anymore. Outrage media did not interest me. Then I discovered the [Fediverse](https://en.wikipedia.org/wiki/Fediverse). It is far from perfect, it still has that undertone of enragement engagement from some users, but it is far closer to the social media I remember. I run my own [[GoToSocial]] server from where I engage with folk on my nerdy passions in a way that is somewhat reminiscent of how I used to display my passions in basic HTML. My feed is only content from folks I follow, I have the power to filter it as I see fit, and it is probably the closest I will ever get to the glory days of what I remember through some very heavily rose tinted glasses. +I missed social media, but it did not exist anymore. Outrage media did not interest me. Then I discovered the [Fediverse](https://en.wikipedia.org/wiki/Fediverse). It is far from perfect, it still has that undertone of enragement engagement from some users, but it is far closer to the social media I remember. I run my own [[20-29 HOBBYS/22 SELF HOSTING/22.12 SERVICES/GoToSocial]] server from where I engage with folk on my nerdy passions in a way that is somewhat reminiscent of how I used to display my passions in basic HTML. My feed is only content from folks I follow, I have the power to filter it as I see fit, and it is probably the closest I will ever get to the glory days of what I remember through some very heavily rose tinted glasses. Just do not let anyone tell you that TikTok, Facebook, Twitter (X?), or whatever else is spawned from the corporate hellscape is Social Media. It's not social, it is something nefarious. You are not some kind of degenerate for yearning for social media either, connection is important, more so today than ever before. Just do not expect to get it from a platform that needs your undivided attention in order to survive. \ No newline at end of file diff --git a/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, CO, Fairplay.md b/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, CO, Fairplay.md index ef13445..91750a9 100644 --- a/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, CO, Fairplay.md +++ b/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, CO, Fairplay.md @@ -1,7 +1,8 @@ --- publish: true +permalink: /10-19 LIFE/11 TRAVEL/11.11 PLACES/US, CO, Fairplay.md title: US - CO - Fairplay -created: 2026-01-10T15:29:25.889-07:00 +created: 2026-01-29T14:04:18.765-07:00 modified: 2026-01-11T15:54:06.320-07:00 tags: - travel diff --git a/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, NV, Las Vegas.md b/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, NV, Las Vegas.md index cf14c9c..1b2fb23 100644 --- a/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, NV, Las Vegas.md +++ b/content/10-19 LIFE/11 TRAVEL/11.11 PLACES/US, NV, Las Vegas.md @@ -1,7 +1,8 @@ --- publish: true +permalink: /10-19 LIFE/11 TRAVEL/11.11 PLACES/US, NV, Las Vegas.md title: US - NV - Las Vegas -created: 2026-01-10T15:29:21.094-07:00 +created: 2026-01-29T14:04:18.359-07:00 modified: 2026-01-20T14:53:41.338-07:00 tags: - travel diff --git a/content/10-19 LIFE/12 HABITS/12.11 DAILY/10 MLD.md b/content/10-19 LIFE/12 HABITS/12.11 DAILY/10 MLD.md index 8e32482..ebae56e 100644 --- a/content/10-19 LIFE/12 HABITS/12.11 DAILY/10 MLD.md +++ b/content/10-19 LIFE/12 HABITS/12.11 DAILY/10 MLD.md @@ -1,7 +1,8 @@ --- publish: true +permalink: /10-19 LIFE/12 HABITS/12.11 DAILY/10 MLD.md title: 10 Minimum Lovable Day -created: 2026-01-10T15:29:30.643-07:00 +created: 2026-01-29T14:04:18.832-07:00 modified: 2025-07-29T07:24:00.606-06:00 tags: - productivity diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/VeraCrypt.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/VeraCrypt.md index 54f4413..dfbf0f4 100644 --- a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/VeraCrypt.md +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/VeraCrypt.md @@ -1,8 +1,80 @@ --- publish: true -created: 2026-01-20T13:37:01.008-07:00 -modified: 2026-01-21T13:02:29.790-07:00 +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/VeraCrypt.md +title: VeraCrypt +created: 2026-01-29T14:04:18.863-07:00 +modified: 2026-02-05T09:11:56.232-07:00 +tags: + - encryption + - security + - backup cssclasses: "" --- -Used for encrypting data, predominantly on portable devices. (see [[10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups]] for more details). \ No newline at end of file +VeraCrypt is free open-source disk encryption software. I use it predominantly for encrypting data on portable devices (see [[10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups]] for more details). + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S veracrypt +``` + +**Other distributions:** +Download from https://veracrypt.io/en/Downloads.html + +## Usage + +### Create an encrypted volume +```bash +veracrypt -c +``` +Follow the interactive prompts to: +1. Choose volume type (normal or hidden) +2. Select volume location (file or device) +3. Pick encryption algorithm (AES recommended) +4. Set volume size +5. Create password + +### Mount a volume +```bash +# Mount to /mnt/veracrypt1 (default slot 1) +veracrypt /path/to/volume /mnt/veracrypt1 + +# Mount with specific slot +veracrypt --slot=2 /path/to/volume /mnt/veracrypt2 +``` + +### Dismount +```bash +# Dismount specific volume +veracrypt -d /mnt/veracrypt1 + +# Dismount all +veracrypt -d +``` + +## Common Options + +| Option | Description | +|--------|-------------| +| `-c` | Create new volume | +| `-d` | Dismount | +| `--slot=N` | Use slot N (1-64) | +| `-t` | Text mode (no GUI) | +| `--non-interactive` | For scripts | +| `-p PASSWORD` | Provide password (insecure, avoid) | + +## Portable Drive Setup + +For encrypted USB drives: +1. Create a file-hosted volume on the drive +2. Copy the portable VeraCrypt binary to the drive +3. Now usable on any machine without installation + +## Tips + +- Use keyfiles for additional security (combine with password) +- For full disk encryption on Linux, consider LUKS instead +- Hidden volumes provide plausible deniability +- Always safely eject before removing portable drives diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md new file mode 100644 index 0000000..1c35c2c --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md @@ -0,0 +1,105 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md +title: aerc +created: 2026-01-30T08:09:11.034-07:00 +modified: 2026-02-05T09:11:56.234-07:00 +tags: + - email + - terminal +cssclasses: "" +--- + +aerc is a terminal email client with vim-like keybindings. It's lightweight, fast, and highly configurable. Works well with [[10-19 LIFE/13 TECH SETUP/13.11 APPS/isync]] for offline IMAP sync. + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S aerc +``` + +**Dependencies for full functionality:** +```bash +# HTML rendering +sudo pacman -S w3m +# or: dante (for socksify), pandoc (markdown) +``` + +## Configuration + +Config files live in `~/.config/aerc/`: + +### accounts.conf +```ini +[Proton] +source = maildir://~/.local/share/mail/proton +outgoing = smtp+plain://127.0.0.1:1025 +default = INBOX +from = Your Name +copy-to = Sent +``` + +### aerc.conf +```ini +[ui] +index-columns = date<20,name<25,flags>4,subject<* +timestamp-format = 2006-01-02 15:04 +this-day-time-format = 15:04 +this-year-time-format = Jan 02 + +[compose] +editor = nvim +reply-to-self = false + +[filters] +text/plain = colorize +text/html = w3m -T text/html -cols $(tput cols) -dump -o display_image=false +``` + +### binds.conf +```ini +[messages] +q = :quit +j = :next +k = :prev +Enter = :view +c = :compose +r = :reply +R = :reply -a +d = :move Trash +``` + +## Usage + +### Navigation +| Key | Action | +|-----|--------| +| `j/k` | Next/prev message | +| `J/K` | Next/prev folder | +| `Enter` | Open message | +| `q` | Back/quit | +| `/` | Search | + +### Composing +| Key | Action | +|-----|--------| +| `c` | Compose new | +| `r` | Reply | +| `R` | Reply all | +| `f` | Forward | +| `Ctrl+x` | Send (in editor) | + +### Actions +| Key | Action | +|-----|--------| +| `d` | Delete/move to trash | +| `m` | Move to folder | +| `C` | Copy to folder | +| `A` | Archive | + +## Tips + +- Run `:help` or `:help tutorial` for built-in documentation +- Use with [[10-19 LIFE/13 TECH SETUP/13.11 APPS/isync]] for offline access and faster sync +- Pipe messages through scripts with `:pipe` diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md new file mode 100644 index 0000000..8013efd --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md @@ -0,0 +1,113 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md +title: atuin +created: 2026-01-30T08:29:14.283-07:00 +modified: 2026-02-05T09:11:56.236-07:00 +tags: + - shell + - history + - sync +cssclasses: "" +--- + +Atuin replaces your shell history with a SQLite database, providing better search, sync across machines, and detailed statistics. It's magical for finding that command you ran three weeks ago. + +## Installation + +**Quick install (recommended):** +```bash +curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh +``` + +**Arch Linux:** +```bash +sudo pacman -S atuin +``` + +## Shell Integration + +Add to your shell config: + +**Bash** (`~/.bashrc`): +```bash +eval "$(atuin init bash)" +``` + +**Zsh** (`~/.zshrc`): +```bash +eval "$(atuin init zsh)" +``` + +**Fish** (`~/.config/fish/config.fish`): +```fish +atuin init fish | source +``` + +## Usage + +### Interactive search +Press `Ctrl+r` (or `Up` with config) to open the interactive search: +- Type to filter +- `Enter` to execute +- `Tab` to edit before running +- `Ctrl+r` to cycle through filter modes + +### Filter modes +| Mode | Description | +|------|-------------| +| Global | All history across machines | +| Host | Current machine only | +| Session | Current shell session | +| Directory | Commands run in this directory | + +### Commands +```bash +# Search from CLI +atuin search "docker" + +# Show stats +atuin stats + +# Manual sync +atuin sync +``` + +## Sync Setup (Optional) + +Register for free sync: +```bash +atuin register -u -e +atuin login -u +atuin sync +``` + +Or self-host the sync server. + +## Configuration + +`~/.config/atuin/config.toml`: +```toml +[settings] +# Use up arrow for atuin instead of ctrl+r +keymap_mode = "vim-normal" + +# Search mode: prefix, fulltext, fuzzy +search_mode = "fuzzy" + +# Filter by default +filter_mode = "host" + +# Show preview of full command +show_preview = true + +# Sync settings +auto_sync = true +sync_frequency = "5m" +``` + +## Tips + +- Atuin stores history in `~/.local/share/atuin/history.db` +- Use `atuin history list` to export/inspect +- Prefix sensitive commands with a space to exclude from history diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md new file mode 100644 index 0000000..fd59deb --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md @@ -0,0 +1,116 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md +title: impala +created: 2026-02-05T09:36:55.334-07:00 +modified: 2026-02-05T09:41:11.146-07:00 +tags: + - wifi + - network + - terminal +cssclasses: "" +--- + +impala is a TUI for managing WiFi on Linux using iwd as the backend. Much nicer than `iwctl` for day-to-day WiFi management. + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S impala +``` + +**Cargo:** +```bash +cargo install impala +``` + +## Prerequisites + +- **iwd** must be running (not wpa_supplicant) +- NetworkManager should use iwd backend (see [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network]]) +- Nerd Fonts (optional) for icons + +## Usage + +```bash +impala +``` + +### Key Bindings + +| Key | Action | +|-----|--------| +| `j/k` | Navigate up/down | +| `Enter` | Connect to network | +| `d` | Disconnect | +| `r` | Refresh networks | +| `s` | Scan for networks | +| `a` | Toggle Access Point mode | +| `q` | Quit | + +### Connecting to Networks + +1. Launch `impala` +2. Navigate to network with `j/k` +3. Press `Enter` to connect +4. Enter password if prompted + +### Hidden Networks + +Press `/` to search/enter a hidden network SSID. + +### WPA Enterprise (802.1X) + +impala supports enterprise authentication. Select the network and follow prompts for username/password or certificate. + +### QR Code Sharing + +Press `Q` on a connected network to display a QR code for sharing credentials. + +## Configuration + +Config file: `~/.config/impala/config.toml` + +```toml +[keybindings] +quit = "q" +scan = "s" +connect = "Enter" +disconnect = "d" + +[appearance] +# Uses terminal colors by default +``` + +## Integration + +### Ashell + +In ashell config, use impala for WiFi management: +```toml +[settings] +wifi_more_cmd = 'kitty -e bash -c "impala"' +``` + +### Hyprland keybind + +```bash +bind = $mainMod, W, exec, kitty -e impala +``` + +## Troubleshooting + +### "iwd not running" + +```bash +sudo systemctl enable --now iwd +``` + +### Conflicts with NetworkManager + +NetworkManager must use iwd as backend, not wpa_supplicant. See [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network#NetworkManager + iwd]]. + +## Resources + +- GitHub: https://github.com/pythops/impala diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md new file mode 100644 index 0000000..61d64bf --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md @@ -0,0 +1,118 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md +title: isync (mbsync) +created: 2026-01-30T08:09:43.461-07:00 +modified: 2026-02-05T09:12:58.913-07:00 +tags: + - email + - sync + - imap +cssclasses: "" +--- + +isync (command: `mbsync`) is a tool for synchronizing IMAP mailboxes with local Maildir folders. Essential for offline email access with clients like [[10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc]] or mutt. + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S isync +``` + +## ProtonMail Integration + +ProtonMail requires the Proton Bridge app for IMAP access. See the [Arch Wiki guide](https://wiki.archlinux.org/title/Isync#Integration_with_ProtonMail) for details. + +### Setup with Proton Bridge + +1. Install and run Proton Bridge +2. Get credentials from Bridge (it generates local IMAP/SMTP credentials) +3. Configure mbsync as below + +## Configuration + +`~/.mbsyncrc`: +```ini +# Global settings +Create Both +Remove Both +Expunge Both +SyncState * + +# ProtonMail via Proton Bridge +IMAPAccount proton +Host 127.0.0.1 +Port 1143 +User your-email@proton.me +PassCmd "cat ~/.config/proton-bridge/password" +SSLType STARTTLS +CertificateFile ~/.config/proton-bridge/cert.pem + +IMAPStore proton-remote +Account proton + +MaildirStore proton-local +Path ~/.local/share/mail/proton/ +Inbox ~/.local/share/mail/proton/INBOX +SubFolders Verbatim + +Channel proton +Far :proton-remote: +Near :proton-local: +Patterns * +``` + +## Usage + +```bash +# Sync all configured channels +mbsync -a + +# Sync specific channel +mbsync proton + +# Verbose output +mbsync -V proton + +# Dry run (show what would happen) +mbsync -n proton +``` + +## Automation + +### systemd timer +`~/.config/systemd/user/mbsync.timer`: +```ini +[Unit] +Description=Sync mail periodically + +[Timer] +OnBootSec=1m +OnUnitActiveSec=5m + +[Install] +WantedBy=timers.target +``` + +`~/.config/systemd/user/mbsync.service`: +```ini +[Unit] +Description=Sync mail + +[Service] +Type=oneshot +ExecStart=/usr/bin/mbsync -a +``` + +Enable: +```bash +systemctl --user enable --now mbsync.timer +``` + +## Tips + +- Create the local maildir first: `mkdir -p ~/.local/share/mail/proton` +- Use `PassCmd` to avoid storing passwords in config +- The `Patterns *` line syncs all folders; use specific patterns to limit +- Check sync status with `mbsync -V` for verbose output diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md new file mode 100644 index 0000000..0258086 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md @@ -0,0 +1,115 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md +title: nvim (Neovim) +created: 2026-01-30T08:08:10.433-07:00 +modified: 2026-02-05T09:12:58.916-07:00 +tags: + - editor + - terminal + - development +cssclasses: "" +--- + +Neovim is a hyperextensible Vim-based text editor. I use [LazyVim](http://www.lazyvim.org/) as a pre-configured distribution for a batteries-included experience. + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S neovim +``` + +**Dependencies for full LazyVim experience:** +```bash +sudo pacman -S git lazygit ripgrep fd nodejs npm +``` + +## LazyVim Setup + +LazyVim provides sensible defaults, plugin management, and a curated set of plugins. + +**Backup existing config:** +```bash +mv ~/.config/nvim ~/.config/nvim.bak +mv ~/.local/share/nvim ~/.local/share/nvim.bak +``` + +**Install LazyVim:** +```bash +git clone https://github.com/LazyVim/starter ~/.config/nvim +rm -rf ~/.config/nvim/.git +nvim +``` + +On first launch, LazyVim will install all plugins automatically. + +## Key Bindings (LazyVim defaults) + +### General +| Key | Action | +|-----|--------| +| `Space` | Leader key | +| `Space Space` | Find files | +| `Space /` | Live grep | +| `Space e` | File explorer | +| `Space gg` | LazyGit | + +### Buffers +| Key | Action | +|-----|--------| +| `Space bd` | Delete buffer | +| `H` / `L` | Prev/next buffer | +| `Space bb` | Switch buffer | + +### Windows +| Key | Action | +|-----|--------| +| `Ctrl+h/j/k/l` | Navigate windows | +| `Space w-` | Split horizontal | +| `Space w\|` | Split vertical | + +### Code +| Key | Action | +|-----|--------| +| `gd` | Go to definition | +| `gr` | Find references | +| `K` | Hover documentation | +| `Space ca` | Code action | +| `Space cf` | Format | + +## Configuration + +LazyVim config lives in `~/.config/nvim/lua/`: + +### Add plugins +`~/.config/nvim/lua/plugins/custom.lua`: +```lua +return { + -- Add plugins here + { "tpope/vim-surround" }, + + -- Override existing plugin config + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { "lua", "python", "typescript" }, + }, + }, +} +``` + +### Options +`~/.config/nvim/lua/config/options.lua`: +```lua +vim.opt.relativenumber = true +vim.opt.wrap = true +vim.opt.tabstop = 4 +``` + +## Resources + +- LazyVim docs: http://www.lazyvim.org/ +- Neovim docs: https://neovim.io/doc/ +- `:Lazy` - Plugin manager UI +- `:Mason` - LSP/formatter installer diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md new file mode 100644 index 0000000..14fbc40 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md @@ -0,0 +1,119 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md +title: qutebrowser +created: 2026-01-31T15:46:19.286-07:00 +modified: 2026-02-05T09:12:58.917-07:00 +tags: + - browser + - web + - keyboard +cssclasses: "" +--- + +qutebrowser is a keyboard-driven web browser with vim-like keybindings. Minimal UI, maximum efficiency. + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S qutebrowser +``` + +## Configuration + +Config file: `~/.config/qutebrowser/config.py` + +```python +# Basic settings +c.content.javascript.enabled = True +c.content.autoplay = False +c.tabs.position = "top" +c.tabs.show = "multiple" + +# Search engines +c.url.searchengines = { + 'DEFAULT': 'https://duckduckgo.com/?q={}', + 'g': 'https://google.com/search?q={}', + 'w': 'https://en.wikipedia.org/wiki/{}', + 'aw': 'https://wiki.archlinux.org/?search={}', + 'gh': 'https://github.com/search?q={}', + 'r': 'http://localhost:9873/{}', # urlref integration +} + +# Dark mode +c.colors.webpage.darkmode.enabled = True +c.colors.webpage.preferred_color_scheme = "dark" + +# Privacy +c.content.cookies.accept = "no-3rdparty" +c.content.headers.do_not_track = True +``` + +## Key Bindings + +### Navigation +| Key | Action | +|-----|--------| +| `j/k` | Scroll down/up | +| `h/l` | Scroll left/right | +| `gg/G` | Top/bottom of page | +| `H/L` | Back/forward | +| `r` | Reload | + +### Links & Hints +| Key | Action | +|-----|--------| +| `f` | Follow link (current tab) | +| `F` | Follow link (new tab) | +| `;i` | Hint images | +| `;y` | Yank link URL | + +### Tabs +| Key | Action | +|-----|--------| +| `J/K` | Prev/next tab | +| `d` | Close tab | +| `u` | Undo close tab | +| `o` | Open URL | +| `O` | Open URL (new tab) | +| `t` | Open in new tab | + +### Commands +| Key | Action | +|-----|--------| +| `:` | Command mode | +| `/` | Search in page | +| `yy` | Yank URL | +| `pp` | Open from clipboard | + +## Google Login Fix + +Google sometimes blocks qutebrowser. Workaround: + +See: https://github.com/qutebrowser/qutebrowser/issues/8492 + +```python +# Set a Chrome user agent for Google sites +c.content.headers.user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' +``` + +Or use per-domain settings: +```python +config.set('content.headers.user_agent', + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', + '*://accounts.google.com/*') +``` + +## Userscripts + +Store in `~/.local/share/qutebrowser/userscripts/` + +See [[10-19 LIFE/13 TECH SETUP/13.11 APPS/urlref]] for an example qutebrowser userscript integration. + +## Tips + +- `:help` opens the comprehensive help +- Use `:set` to explore available options +- `:bind` to see/modify key bindings +- Greasemonkey scripts work via `c.content.javascript.enabled` diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/urlref.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/urlref.md index 8c9c6c3..ffe7c6f 100644 --- a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/urlref.md +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/urlref.md @@ -1,7 +1,8 @@ --- publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/urlref.md title: urlref -created: 2026-01-19T18:15:38.889-07:00 +created: 2026-01-29T14:04:18.714-07:00 modified: 2026-01-19T18:40:10.504-07:00 tags: - web @@ -58,7 +59,7 @@ RestartSec=5 WantedBy=default.target ``` ### qutebrowser Integration -This [[qutebrowser]] integration works for me, you are on your own for other browsers! +This [[10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser]] integration works for me, you are on your own for other browsers! #### Userscript Should live at `~/.local/share/qutebrowser/userscripts` ```bash diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md new file mode 100644 index 0000000..e3417ed --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md @@ -0,0 +1,104 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md +title: whosthere +created: 2026-02-05T08:46:27.958-07:00 +modified: 2026-02-05T09:12:58.918-07:00 +tags: + - network + - lan + - discovery +cssclasses: "" +--- + +whosthere is a LAN discovery tool with a modern TUI. It discovers devices on your network using mDNS, SSDP, and ARP scanning—all without requiring root privileges. + +## Installation + +**Arch Linux (via AUR):** +```bash +yay -S whosthere-bin +``` + +**Homebrew:** +```bash +brew install whosthere +``` + +**Go:** +```bash +go install github.com/ramonvermeulen/whosthere@latest +``` + +## Usage + +### Interactive TUI +```bash +whosthere +``` + +Navigate with arrow keys or vim bindings: +- `j/k` - Move up/down +- `Enter` - Select/expand +- `q` - Quit +- `r` - Refresh scan +- `p` - Port scan selected device + +### Daemon Mode +Run as a background service with HTTP API: +```bash +whosthere daemon +``` + +Query via API: +```bash +curl http://localhost:8080/devices +``` + +### CLI Output +```bash +# JSON output +whosthere --json + +# One-shot scan (no TUI) +whosthere --once +``` + +## Features + +- **mDNS discovery** - Finds devices advertising services +- **SSDP scanning** - Discovers UPnP devices +- **ARP cache reading** - Catches everything else +- **OUI lookup** - Shows manufacturer from MAC address +- **Port scanning** - Optional service discovery on found hosts + +## Configuration + +`~/.config/whosthere/config.yaml`: +```yaml +# Theme customization +theme: + primary: "#7aa2f7" + secondary: "#bb9af7" + +# Scan settings +scan: + timeout: 5s + ports: [22, 80, 443, 8080] + +# Daemon settings +daemon: + port: 8080 + refresh_interval: 60s +``` + +## Tips + +- No root required—uses unprivileged scanning techniques +- Port scanning requires explicit action; only scan devices you own +- Great for finding that Raspberry Pi you forgot the IP of +- Combine with `--json` for scripting and automation + +## See Also + +- GitHub: https://github.com/ramonvermeulen/whosthere diff --git a/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md new file mode 100644 index 0000000..31eb9e8 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md @@ -0,0 +1,116 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md +title: zathura +created: 2026-02-05T09:08:26.899-07:00 +modified: 2026-02-05T09:12:58.920-07:00 +tags: + - pdf + - documents + - reader +cssclasses: "" +--- + +zathura is a minimalist document viewer with vim-like keybindings. Fast, keyboard-driven, and highly customizable. + +## Installation + +**Arch Linux:** +```bash +sudo pacman -S zathura zathura-pdf-mupdf +``` + +When prompted for tesseract data (for OCR), select `tesseract-data-eng` for English. + +### Backend plugins + +| Plugin | Formats | +|--------|---------| +| `zathura-pdf-mupdf` | PDF, EPUB, XPS (recommended) | +| `zathura-pdf-poppler` | PDF (alternative) | +| `zathura-djvu` | DjVu | +| `zathura-ps` | PostScript | +| `zathura-cb` | Comic books (CBZ/CBR) | + +## Key Bindings + +### Navigation +| Key | Action | +|-----|--------| +| `j/k` | Scroll down/up | +| `h/l` | Scroll left/right | +| `Ctrl+d/u` | Half page down/up | +| `gg/G` | First/last page | +| `nG` | Go to page n | +| `Space` | Next page | + +### Zoom +| Key | Action | +|-----|--------| +| `+/-` | Zoom in/out | +| a` | Fit page | +| `s` | Fit width | + +### View +| Key | Action | +|-----|--------| +| `d` | Toggle dual-page | +| `r` | Rotate | +| `R` | Reload | +| `Tab` | Toggle index | +| `F11` | Fullscreen | + +### Other +| Key | Action | +|-----|--------| +| `/` | Search | +| `n/N` | Next/prev match | +| `y` | Copy selection | +| `o/O` | Open file | +| `q` | Quit | + +## Configuration + +`~/.config/zathura/zathurarc`: +```bash +# Enable clipboard +set selection-clipboard clipboard + +# Recolor for dark mode +set recolor true +set recolor-darkcolor "#ebdbb2" +set recolor-lightcolor "#282828" + +# Default zoom +set zoom-min 10 +set adjust-open "best-fit" + +# Status bar +set statusbar-home-tilde true + +# Window +set window-title-basename true +set window-title-page true +``` + +## Make Default PDF Viewer + +```bash +xdg-mime default org.pwmt.zathura.desktop application/pdf +``` + +## Synctex (LaTeX integration) + +For LaTeX editors that support synctex: +```bash +zathura --synctex-forward :: +``` + +Configure your editor to call this for forward search. + +## Tips + +- `:help` or `man zathura` for full documentation +- Use `:bmark` to bookmark pages +- Use `i` to invert colors (quick dark mode) +- Index/TOC navigation with `Tab` is very useful for long documents diff --git a/content/10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups.md b/content/10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups.md index 41d1ebd..d01c509 100644 --- a/content/10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups.md +++ b/content/10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups.md @@ -1,7 +1,8 @@ --- publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.12 PROCESSES/Backups.md title: Backups -created: 2026-01-20T13:21:41.646-07:00 +created: 2026-01-29T14:04:18.777-07:00 modified: 2026-01-21T22:48:12.310-07:00 cssclasses: "" --- diff --git a/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/00 - Start Here.md b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/00 - Start Here.md new file mode 100644 index 0000000..a1ebaa0 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/00 - Start Here.md @@ -0,0 +1,58 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/00 - Start Here.md +title: 00 - Start Here +created: 2026-02-05T09:20:32.962-07:00 +modified: 2026-02-05T09:32:01.211-07:00 +tags: + - guide + - arch + - linux +cssclasses: "" +--- + +# Arch Linux Setup Guide + +My personal Arch Linux setup for Framework Laptop 13 (AMD). Follow these guides in order for a complete system. + +## Core Installation +1. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Base Install]] ← **Start here** — LUKS2 + BTRFS + Limine bootloader +2. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth]] — Boot splash screen (optional, but nice with LUKS) + +## Desktop Environment +3. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Hyprland Setup]] — Wayland compositor and ecosystem +4. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock]] — Screen lock with fingerprint support +5. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprshutdown]] — Graceful shutdown animations +6. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell]] — Status bar +7. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako]] — Notifications + +## System Configuration +8. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio]] — PipeWire and audio fixes +9. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network]] — NetworkManager, iwd, Tailscale +10. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Fonts]] — Font rendering improvements +11. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Printing]] — CUPS setup + +## Utilities +12. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Shell]] — Starship prompt and shell config +13. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks]] — Automounting with udiskie +14. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/AppImage Management]] — Running and managing AppImages +15. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Keychain]] — GNOME Keyring for secrets + +## Security +16. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd]] — Fingerprint authentication +17. [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Yubikey]] — Hardware key setup + +--- + +## Quick Reference + +| Category | Key Packages | +|----------|-------------| +| Base | `base linux linux-firmware btrfs-progs limine` | +| Boot | `plymouth` | +| Desktop | `hyprland hyprlock hypridle hyprpaper hyprshutdown` | +| Bar | `ashell mako` | +| Audio | `pipewire pipewire-pulse wireplumber` | +| Network | `networkmanager iwd tailscale` | +| Auth | `fprintd gnome-keyring` | +| Utils | `starship udiskie` | diff --git a/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/AppImage Management.md b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/AppImage Management.md new file mode 100644 index 0000000..13a496c --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/AppImage Management.md @@ -0,0 +1,118 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/AppImage Management.md +title: AppImage Management +created: 2026-01-29T15:05:11.266-07:00 +modified: 2026-02-05T09:21:56.851-07:00 +tags: + - appimage + - apps +cssclasses: "" +--- + +Managing AppImage applications on Arch Linux. + +## Directory Structure + +``` +~/.local/bin/ # AppImage binaries +~/.local/share/applications/ # Desktop entries +``` + +## Installation Process + +### 1. Download the AppImage + +```bash +cd ~/.local/bin +wget "https://example.com/App.AppImage" +chmod +x App.AppImage +``` + +### 2. Create desktop entry + +Create `~/.local/share/applications/app.desktop`: +```ini +[Desktop Entry] +Name=App Name +Comment=Description +Exec=/home/phil/.local/bin/App.AppImage +Icon=app-icon +Type=Application +Categories=Utility; +``` + +### 3. Update desktop database + +```bash +update-desktop-database ~/.local/share/applications/ +``` + +## Electron Apps on Wayland + +Many Electron-based AppImages need extra flags for Wayland: + +```bash +./App.AppImage --enable-features=UseOzonePlatform --ozone-platform=wayland +``` + +Update the desktop entry: +```ini +Exec=/home/phil/.local/bin/App.AppImage --enable-features=UseOzonePlatform --ozone-platform=wayland +``` + +## AppImage Tools + +### appimagetool + +Extract and repack AppImages: +```bash +# Extract +./App.AppImage --appimage-extract + +# Creates squashfs-root/ directory +``` + +### AppImageLauncher + +Integrates AppImages into your system automatically: +```bash +paru -S appimagelauncher +``` + +Features: +- Prompts to integrate on first run +- Creates desktop entries automatically +- Manages AppImages in a central location + +## Helper Script + +Save as `~/.local/bin/appimage-install`: +```bash +#!/bin/bash +# Usage: appimage-install App.AppImage "App Name" + +APPIMAGE="$1" +NAME="$2" +DEST="$HOME/.local/bin/$(basename "$APPIMAGE")" + +cp "$APPIMAGE" "$DEST" +chmod +x "$DEST" + +cat > "$HOME/.local/share/applications/${NAME,,}.desktop" << EOF +[Desktop Entry] +Name=$NAME +Exec=$DEST +Type=Application +Categories=Utility; +EOF + +update-desktop-database ~/.local/share/applications/ +echo "Installed $NAME" +``` + +## Tips + +- Keep AppImages in `~/.local/bin` which should be in your PATH +- Some AppImages bundle their own icon — extract with `--appimage-extract` to find it +- For system-wide install, use `/opt/` and `/usr/share/applications/` diff --git a/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md new file mode 100644 index 0000000..6559016 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md @@ -0,0 +1,122 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md +title: Ashell +created: 2026-01-29T15:16:18.996-07:00 +modified: 2026-02-05T09:23:59.109-07:00 +tags: + - hyprland + - statusbar + - wayland +cssclasses: "" +--- + +Ashell is a lightweight status bar for Wayland compositors like [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Hyprland Setup\|Hyprland]]. + +## Installation + +**From AUR:** +```bash +paru -S ashell +``` + +**From source:** +```bash +git clone https://github.com/malpenzibo/ashell +cd ashell +cargo build --release +cp target/release/ashell ~/.local/bin/ +``` + +## Hyprland Integration + +Add to `~/.config/hypr/hyprland.conf`: +```bash +exec-once = ashell +``` + +## My Configuration + +Config location: `~/.config/ashell/config.toml` + +```toml +log_level = "warn" +outputs = { Targets = ["eDP-1"] } +position = "Top" +app_launcher_cmd = "walker" + +[modules] +left = [ [ "appLauncher", "Updates", "Workspaces" ] ] +right = [ "SystemInfo", [ "Tray", "Clock", "Privacy", "Settings" ] ] + +[updates] +check_cmd = "checkupdates; paru -Qua" +update_cmd = 'kitty -e bash -c "paru; echo Done - Press enter to exit; read" &' + +[system_info] +indicators = ["Cpu", "Memory", "Temperature", "IpAddress", "DownloadSpeed", "UploadSpeed"] + +[workspaces] +enable_workspace_filling = true + +[[CustomModule]] +name = "appLauncher" +icon = "󱗼" +command = "walker" + +[window_title] +truncate_title_after_length = 100 + +[settings] +lock_cmd = "playerctl --all-players pause; hyprlock &" +audio_sinks_more_cmd = "pavucontrol -t 3" +audio_sources_more_cmd = "pavucontrol -t 4" +wifi_more_cmd = 'kitty -e bash -c "impala"' +vpn_more_cmd = "nm-connection-editor" +bluetooth_more_cmd = 'kitty -e bash -c "bluetui"' +shutdown_cmd = "hyprshutdown -t 'Shutting down...' --post-cmd 'shutdown -P 0'" +suspend_cmd = "systemctl suspend" +hibernate_cmd = "systemctl hibernate" +reboot_cmd = "hyprshutdown -t 'Restarting...' --post-cmd 'reboot'" +logout_cmd = "loginctl kill-user $(whoami)" + +[appearance] +style = "Islands" + +primary_color = "#7aa2f7" +success_color = "#9ece6a" +text_color = "#a9b1d6" +workspace_colors = [ "#7aa2f7", "#9ece6a" ] +special_workspace_colors = [ "#7aa2f7", "#9ece6a" ] + +[appearance.danger_color] +base = "#f7768e" +weak = "#e0af68" + +[appearance.background_color] +base = "#1a1b26" +weak = "#24273a" +strong = "#414868" + +[appearance.secondary_color] +base = "#0c0d14" +``` + +## Key Features + +- **Islands style** — Floating pill-shaped modules +- **Tokyo Night theme** — Colors match my Hyprland/terminal theme +- **Custom app launcher** — Uses Walker with a custom icon +- **System info** — CPU, memory, temp, network speeds +- **Update checker** — Shows pending pacman/AUR updates +- **Integration apps:** + - `walker` — App launcher + - `pavucontrol` — Audio settings + - `impala` — WiFi TUI + - `bluetui` — Bluetooth TUI + - `hyprshutdown` — Graceful shutdown with animation + +## Resources + +- Documentation: https://malpenzibo.github.io/ashell/ +- GitHub: https://github.com/malpenzibo/ashell diff --git a/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md new file mode 100644 index 0000000..b67d014 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md @@ -0,0 +1,89 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md +title: Audio +created: 2026-01-29T15:21:02.328-07:00 +modified: 2026-02-05T09:20:32.969-07:00 +tags: + - audio + - pipewire + - hyprland +cssclasses: "" +--- + +Audio setup using PipeWire on Arch Linux with Hyprland. + +## Installation + +Already included in [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Base Install]], but for reference: +```bash +sudo pacman -S \ + pipewire pipewire-alsa pipewire-pulse pipewire-jack \ + wireplumber sof-firmware +``` + +## Volume Control + +### CLI +```bash +# Using wpctl (WirePlumber) +wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + +# Using pactl (PulseAudio compat) +pactl set-sink-volume @DEFAULT_SINK@ +5% +pactl set-sink-volume @DEFAULT_SINK@ -5% +pactl set-sink-mute @DEFAULT_SINK@ toggle +``` + +### GUI +```bash +sudo pacman -S pavucontrol # GTK +# or +sudo pacman -S pwvucontrol # Qt/PipeWire native +``` + +### Hyprland Keybinds +```bash +bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +``` + +## Troubleshooting + +### No sound + +Check WirePlumber is running: +```bash +systemctl --user status wireplumber +systemctl --user status pipewire +``` + +Restart if needed: +```bash +systemctl --user restart wireplumber pipewire pipewire-pulse +``` + +### Headphone jack buzz (Framework AMD) + +The AMD board has slight buzz when audio idles. Disable power saving: + +Create `/etc/modprobe.d/audio-powersave.conf`: +``` +options snd_hda_intel power_save=0 +``` + +### Application-specific issues + +Some apps need explicit PipeWire support. Check: +```bash +pactl info | grep "Server Name" +# Should show: PulseAudio (on PipeWire) +``` + +## Resources + +- Detailed guide: https://dev.to/laithalenooz/resolving-audio-issues-on-arch-linux-with-hyprland-a-step-by-step-guide-2n +- Arch Wiki: https://wiki.archlinux.org/title/PipeWire diff --git a/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md new file mode 100644 index 0000000..19c3cf1 --- /dev/null +++ b/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md @@ -0,0 +1,101 @@ +--- +publish: true +permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md +title: Disks +created: 2026-01-29T21:46:53.106-07:00 +modified: 2026-02-05T09:21:21.430-07:00 +tags: + - disks + - automount + - usb +cssclasses: "" +--- + +Automounting removable drives with udiskie. + +## Installation + +```bash +sudo pacman -S udiskie udisks2 +``` + +## Usage + +### Start udiskie + +Run in background (auto-mounts drives): +```bash +udiskie & +``` + +With tray icon: +```bash +udiskie --tray & +``` + +### Hyprland Integration + +Add to `~/.config/hypr/hyprland.conf`: +```bash +exec-once = udiskie --tray +``` + +## Configuration + +Config location: `~/.config/udiskie/config.yml` + +```yaml +program_options: + tray: true + notify: true + automount: true + +device_config: + - device_file: /dev/sda1 + options: + - noexec +``` + +## Manual Control + +```bash +# Mount +udisksctl mount -b /dev/sdb1 + +# Unmount +udisksctl unmount -b /dev/sdb1 + +# Power off (safely eject) +udisksctl power-off -b /dev/sdb + +# List drives +lsblk +``` + +## Encrypted Drives + +udiskie handles LUKS-encrypted drives automatically — prompts for password when detected. + +For command line: +```bash +# Unlock +udisksctl unlock -b /dev/sdb1 + +# Then mount +udisksctl mount -b /dev/dm-0 +``` + +## Mount Points + +By default, drives mount to `/run/media/$USER/