Published multiple files
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
This commit is contained in:
@@ -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: ""
|
||||
---
|
||||
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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).
|
||||
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
|
||||
|
||||
105
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md
Normal file
105
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/aerc.md
Normal file
@@ -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 <you@proton.me>
|
||||
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<Enter>
|
||||
j = :next<Enter>
|
||||
k = :prev<Enter>
|
||||
Enter = :view<Enter>
|
||||
c = :compose<Enter>
|
||||
r = :reply<Enter>
|
||||
R = :reply -a<Enter>
|
||||
d = :move Trash<Enter>
|
||||
```
|
||||
|
||||
## 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`
|
||||
113
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md
Normal file
113
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin.md
Normal file
@@ -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 <username> -e <email>
|
||||
atuin login -u <username>
|
||||
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
|
||||
116
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md
Normal file
116
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/impala.md
Normal file
@@ -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
|
||||
118
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md
Normal file
118
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/isync.md
Normal file
@@ -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
|
||||
115
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md
Normal file
115
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md
Normal file
@@ -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
|
||||
119
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md
Normal file
119
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/qutebrowser.md
Normal file
@@ -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`
|
||||
@@ -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
|
||||
|
||||
104
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md
Normal file
104
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md
Normal file
@@ -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
|
||||
116
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md
Normal file
116
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/zathura.md
Normal file
@@ -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 <line>:<col>:<input> <pdf>
|
||||
```
|
||||
|
||||
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
|
||||
@@ -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: ""
|
||||
---
|
||||
|
||||
@@ -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` |
|
||||
@@ -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/`
|
||||
122
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md
Normal file
122
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell.md
Normal file
@@ -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
|
||||
89
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md
Normal file
89
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Audio.md
Normal file
@@ -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
|
||||
101
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md
Normal file
101
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Disks.md
Normal file
@@ -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/<label>`
|
||||
|
||||
## Tips
|
||||
|
||||
- Use `--no-automount` if you prefer manual mounting
|
||||
- Notifications require a notification daemon (e.g., [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako]])
|
||||
- For NTFS support: `sudo pacman -S ntfs-3g`
|
||||
|
||||
## Resources
|
||||
|
||||
- GitHub: https://github.com/coldfix/udiskie
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/Udisks
|
||||
106
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Fonts.md
Normal file
106
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Fonts.md
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Fonts.md
|
||||
title: Fonts
|
||||
created: 2026-01-29T15:24:42.068-07:00
|
||||
modified: 2026-02-05T09:21:21.425-07:00
|
||||
tags:
|
||||
- fonts
|
||||
- rendering
|
||||
- appearance
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Font installation and rendering improvements for Arch Linux.
|
||||
|
||||
## Essential Fonts
|
||||
|
||||
```bash
|
||||
sudo pacman -S \
|
||||
ttf-dejavu ttf-liberation ttf-roboto \
|
||||
noto-fonts noto-fonts-cjk noto-fonts-emoji \
|
||||
ttf-jetbrains-mono ttf-fira-code \
|
||||
ttf-font-awesome
|
||||
```
|
||||
|
||||
### Nerd Fonts (icons in terminal)
|
||||
|
||||
```bash
|
||||
paru -S ttf-jetbrains-mono-nerd
|
||||
# or download from https://www.nerdfonts.com/
|
||||
```
|
||||
|
||||
## Font Rendering
|
||||
|
||||
Arch's default font rendering can look rough. These tweaks improve it significantly.
|
||||
|
||||
### Enable good defaults
|
||||
|
||||
```bash
|
||||
sudo ln -s /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d/
|
||||
sudo ln -s /usr/share/fontconfig/conf.avail/10-hinting-slight.conf /etc/fonts/conf.d/
|
||||
sudo ln -s /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d/
|
||||
```
|
||||
|
||||
### User fontconfig
|
||||
|
||||
Create `~/.config/fontconfig/fonts.conf`:
|
||||
```xml
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<match target="font">
|
||||
<edit name="antialias" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
<edit name="hinting" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
<edit name="hintstyle" mode="assign">
|
||||
<const>hintslight</const>
|
||||
</edit>
|
||||
<edit name="lcdfilter" mode="assign">
|
||||
<const>lcddefault</const>
|
||||
</edit>
|
||||
<edit name="rgba" mode="assign">
|
||||
<const>rgb</const>
|
||||
</edit>
|
||||
</match>
|
||||
</fontconfig>
|
||||
```
|
||||
|
||||
### Rebuild font cache
|
||||
|
||||
```bash
|
||||
fc-cache -fv
|
||||
```
|
||||
|
||||
## Verify Settings
|
||||
|
||||
```bash
|
||||
fc-match -v sans | grep -E "antialias|hinting|hintstyle|rgba"
|
||||
```
|
||||
|
||||
## Default Fonts
|
||||
|
||||
Set preferred defaults:
|
||||
```xml
|
||||
<!-- Add to fonts.conf -->
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer><family>Noto Sans</family></prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>serif</family>
|
||||
<prefer><family>Noto Serif</family></prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer><family>JetBrains Mono</family></prefer>
|
||||
</alias>
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- Detailed guide: https://github.com/davgar99/arch-linux-font-improvement-guide
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/Font_configuration
|
||||
@@ -0,0 +1,203 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Hyprland Setup.md
|
||||
title: Hyprland Setup
|
||||
created: 2026-01-29T15:09:13.502-07:00
|
||||
modified: 2026-02-05T09:31:46.733-07:00
|
||||
tags:
|
||||
- hyprland
|
||||
- wayland
|
||||
- desktop
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Hyprland is a dynamic tiling Wayland compositor. This covers the full Hyprland ecosystem setup after [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Base Install]].
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S \
|
||||
hyprland \
|
||||
hyprlock \
|
||||
hypridle \
|
||||
hyprpaper \
|
||||
hyprpicker \
|
||||
hyprcursor \
|
||||
hyprsunset \
|
||||
xdg-desktop-portal-hyprland \
|
||||
hyprpolkitagent
|
||||
```
|
||||
|
||||
### Full Package List
|
||||
|
||||
All Hyprland ecosystem packages I have installed:
|
||||
|
||||
- hyprcursor
|
||||
- hyprgraphics
|
||||
- hypridle
|
||||
- hyprland
|
||||
- hyprland-guiutils
|
||||
- hyprland-protocols
|
||||
- hyprland-qt-support
|
||||
- hyprlang
|
||||
- hyprlock
|
||||
- hyprpaper
|
||||
- hyprpicker
|
||||
- hyprpolkitagent
|
||||
- hyprpwcenter
|
||||
- hyprsunset
|
||||
- hyprtoolkit
|
||||
- hyprutils
|
||||
- hyprwayland-scanner
|
||||
- hyprwire
|
||||
- xdg-desktop-portal-hyprland
|
||||
|
||||
### AUR Packages
|
||||
|
||||
```bash
|
||||
paru -S hyprshutdown
|
||||
```
|
||||
|
||||
See [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprshutdown]] for build instructions if the AUR version is outdated.
|
||||
|
||||
## Related Components
|
||||
|
||||
- [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Ashell]] — Status bar
|
||||
- [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako]] — Notifications
|
||||
- [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock]] — Screen lock with fingerprint support
|
||||
- [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprshutdown]] — Graceful shutdown animations
|
||||
- [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd]] — Fingerprint authentication
|
||||
- [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth]] — Boot splash screen
|
||||
|
||||
## Configuration Structure
|
||||
|
||||
My config uses **includes** to keep the main file clean and modular.
|
||||
|
||||
### Directory Layout
|
||||
|
||||
```
|
||||
~/.config/hypr/
|
||||
├── hyprland.conf # Main config (mostly defaults + sources)
|
||||
├── hyprland.conf.d/ # Modular config includes
|
||||
│ ├── monitors # Display configuration
|
||||
│ ├── programs # Variable definitions ($terminal, etc.)
|
||||
│ ├── autostart # exec-once statements
|
||||
│ ├── general # Gaps, borders, layout
|
||||
│ └── keybinds # Custom keybind overrides
|
||||
├── hyprlock.conf # Lock screen config
|
||||
├── hypridle.conf # Idle behavior config
|
||||
├── hyprpaper.conf # Wallpaper config
|
||||
└── hyprsunset.conf # Night light config
|
||||
```
|
||||
|
||||
### Using Includes
|
||||
|
||||
The main `hyprland.conf` uses `source` statements to pull in modular configs:
|
||||
|
||||
```bash
|
||||
# In hyprland.conf
|
||||
source = ~/.config/hypr/hyprland.conf.d/monitors
|
||||
source = ~/.config/hypr/hyprland.conf.d/programs
|
||||
source = ~/.config/hypr/hyprland.conf.d/autostart
|
||||
source = ~/.config/hypr/hyprland.conf.d/general
|
||||
source = ~/.config/hypr/hyprland.conf.d/keybinds
|
||||
```
|
||||
|
||||
### Why Includes?
|
||||
|
||||
1. **Keep defaults intact** — Main config stays close to upstream defaults
|
||||
2. **Easy diffing** — Can compare against new Hyprland releases
|
||||
3. **Modular changes** — Edit just monitors or keybinds without touching the rest
|
||||
4. **Machine-specific** — Different monitor configs per machine, same base
|
||||
|
||||
### Example: programs
|
||||
|
||||
Define variables in one place:
|
||||
```bash
|
||||
# ~/.config/hypr/hyprland.conf.d/programs
|
||||
$terminal = kitty
|
||||
$filemanager = thunar
|
||||
$menu = walker
|
||||
```
|
||||
|
||||
### Example: autostart
|
||||
|
||||
All startup applications:
|
||||
```bash
|
||||
# ~/.config/hypr/hyprland.conf.d/autostart
|
||||
|
||||
# Hypr ecosystem
|
||||
exec-once = hyprpaper & hypridle & hyprsunset
|
||||
|
||||
# Status bar
|
||||
exec-once = ashell &
|
||||
|
||||
# Services
|
||||
exec-once = systemctl --user start elephant
|
||||
exec-once = systemctl --user start hyprpolkitagent
|
||||
|
||||
# Apps
|
||||
exec-once = walker --gapplication-service
|
||||
exec-once = udiskie &
|
||||
exec-once = wl-paste --watch cliphist store
|
||||
exec-once = tailscale up
|
||||
exec-once = protonmail-bridge-core
|
||||
```
|
||||
|
||||
### Example: keybinds
|
||||
|
||||
Override and add custom bindings:
|
||||
```bash
|
||||
# ~/.config/hypr/hyprland.conf.d/keybinds
|
||||
$mainModS = SUPER_SHIFT
|
||||
|
||||
# Unbind defaults I don't want
|
||||
unbind = $mainMod, Q
|
||||
unbind = $mainMod, C
|
||||
unbind = $mainMod, R
|
||||
|
||||
# My bindings
|
||||
bind = $mainMod, Return, exec, $terminal
|
||||
bind = $mainMod, Q, killactive
|
||||
bind = $mainModS, B, exec, qutebrowser
|
||||
bind = $mainMod, Space, exec, $menu
|
||||
```
|
||||
|
||||
## Idle Management (hypridle)
|
||||
|
||||
Config: `~/.config/hypr/hypridle.conf`
|
||||
|
||||
My idle sequence:
|
||||
1. **2.5 min** — Dim screen + keyboard backlight
|
||||
2. **5 min** — Lock screen
|
||||
3. **5.5 min** — Turn off display
|
||||
4. **30 min** — Suspend
|
||||
|
||||
Key settings:
|
||||
```bash
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # Prevent multiple instances
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
```
|
||||
|
||||
## Brightness Control
|
||||
|
||||
Install `brightnessctl`:
|
||||
```bash
|
||||
sudo pacman -S brightnessctl
|
||||
```
|
||||
|
||||
Framework laptop keybinds (already in default config):
|
||||
```bash
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
- Use `hyprctl` to interact with Hyprland from scripts
|
||||
- `hyprctl monitors` — list displays
|
||||
- `hyprctl clients` — list windows
|
||||
- `hyprctl reload` — reload config without restart
|
||||
107
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Keychain.md
Normal file
107
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Keychain.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Keychain.md
|
||||
title: Keychain
|
||||
created: 2026-01-29T21:15:48.335-07:00
|
||||
modified: 2026-02-05T09:21:56.854-07:00
|
||||
tags:
|
||||
- security
|
||||
- secrets
|
||||
- gnome-keyring
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
GNOME Keyring for managing secrets, SSH keys, and application passwords.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S gnome-keyring libsecret seahorse
|
||||
```
|
||||
|
||||
- `gnome-keyring` — The keyring daemon
|
||||
- `libsecret` — Library for apps to access secrets
|
||||
- `seahorse` — GUI for managing keyring
|
||||
|
||||
## PAM Integration
|
||||
|
||||
Automatically unlock keyring on login.
|
||||
|
||||
Edit `/etc/pam.d/login`:
|
||||
```
|
||||
auth optional pam_gnome_keyring.so
|
||||
session optional pam_gnome_keyring.so auto_start
|
||||
```
|
||||
|
||||
For GDM/SDDM, also edit `/etc/pam.d/passwd`:
|
||||
```
|
||||
password optional pam_gnome_keyring.so
|
||||
```
|
||||
|
||||
## Hyprland Integration
|
||||
|
||||
Add to `~/.config/hypr/hyprland.conf`:
|
||||
```bash
|
||||
exec-once = gnome-keyring-daemon --start --components=secrets,ssh
|
||||
```
|
||||
|
||||
Set environment variables in hyprland.conf:
|
||||
```bash
|
||||
env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/gcr/ssh
|
||||
```
|
||||
|
||||
Or in your shell profile:
|
||||
```bash
|
||||
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh"
|
||||
```
|
||||
|
||||
## SSH Key Management
|
||||
|
||||
### Add key to agent
|
||||
|
||||
```bash
|
||||
ssh-add ~/.ssh/id_ed25519
|
||||
```
|
||||
|
||||
### List keys
|
||||
|
||||
```bash
|
||||
ssh-add -l
|
||||
```
|
||||
|
||||
### GUI management
|
||||
|
||||
Launch Seahorse:
|
||||
```bash
|
||||
seahorse
|
||||
```
|
||||
|
||||
## Unlocking
|
||||
|
||||
If keyring doesn't auto-unlock:
|
||||
|
||||
```bash
|
||||
# Manually unlock
|
||||
gnome-keyring-daemon --unlock
|
||||
|
||||
# Or via secret-tool
|
||||
secret-tool search --unlock xdg:schema org.gnome.keyring.Note
|
||||
```
|
||||
|
||||
## Application Support
|
||||
|
||||
Apps using libsecret (most modern apps) will automatically use gnome-keyring. For apps that need explicit setup:
|
||||
|
||||
### Git credential storage
|
||||
|
||||
```bash
|
||||
git config --global credential.helper /usr/lib/git-core/git-credential-libsecret
|
||||
```
|
||||
|
||||
### VS Code
|
||||
|
||||
VS Code uses gnome-keyring automatically for settings sync.
|
||||
|
||||
## Resources
|
||||
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/GNOME/Keyring
|
||||
106
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako.md
Normal file
106
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako.md
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Mako.md
|
||||
title: Mako
|
||||
created: 2026-01-29T15:18:16.265-07:00
|
||||
modified: 2026-02-05T09:20:32.970-07:00
|
||||
tags:
|
||||
- notifications
|
||||
- wayland
|
||||
- hyprland
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Mako is a lightweight notification daemon for Wayland compositors.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S mako libnotify
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Config location: `~/.config/mako/config`
|
||||
|
||||
```ini
|
||||
# Appearance
|
||||
font=monospace 11
|
||||
background-color=#282828
|
||||
text-color=#ebdbb2
|
||||
border-color=#458588
|
||||
border-size=2
|
||||
border-radius=5
|
||||
|
||||
# Behavior
|
||||
default-timeout=5000
|
||||
ignore-timeout=0
|
||||
max-visible=5
|
||||
|
||||
# Position
|
||||
anchor=top-right
|
||||
margin=10
|
||||
|
||||
# Grouping
|
||||
group-by=app-name
|
||||
|
||||
# Actions
|
||||
on-button-left=dismiss
|
||||
on-button-right=dismiss-all
|
||||
|
||||
# Urgency-specific
|
||||
[urgency=low]
|
||||
background-color=#282828
|
||||
|
||||
[urgency=normal]
|
||||
background-color=#282828
|
||||
|
||||
[urgency=critical]
|
||||
background-color=#cc241d
|
||||
default-timeout=0
|
||||
```
|
||||
|
||||
## Hyprland Integration
|
||||
|
||||
Add to `~/.config/hypr/hyprland.conf`:
|
||||
```bash
|
||||
exec-once = mako
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Test notifications
|
||||
```bash
|
||||
notify-send "Hello" "This is a test notification"
|
||||
notify-send -u critical "Warning" "This is urgent!"
|
||||
```
|
||||
|
||||
### Control mako
|
||||
```bash
|
||||
makoctl dismiss # Dismiss latest
|
||||
makoctl dismiss --all # Dismiss all
|
||||
makoctl restore # Restore last dismissed
|
||||
makoctl list # List waiting notifications
|
||||
makoctl reload # Reload config
|
||||
```
|
||||
|
||||
## Do Not Disturb
|
||||
|
||||
```bash
|
||||
# Enable DND
|
||||
makoctl set-mode do-not-disturb
|
||||
|
||||
# Disable DND
|
||||
makoctl set-mode default
|
||||
```
|
||||
|
||||
Add a keybind:
|
||||
```bash
|
||||
bind = SUPER, N, exec, makoctl set-mode do-not-disturb
|
||||
bind = SUPER SHIFT, N, exec, makoctl set-mode default
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- GitHub: https://github.com/emersion/mako
|
||||
- Man page: `man 5 mako`
|
||||
182
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network.md
Normal file
182
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network.md
Normal file
@@ -0,0 +1,182 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network.md
|
||||
title: Network
|
||||
created: 2026-01-29T14:15:15.157-07:00
|
||||
modified: 2026-02-05T09:41:11.148-07:00
|
||||
tags:
|
||||
- network
|
||||
- wifi
|
||||
- tailscale
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Network configuration using NetworkManager with iwd backend, systemd-resolved for DNS, and Tailscale for mesh networking.
|
||||
|
||||
## Architecture
|
||||
|
||||
My setup:
|
||||
- **NetworkManager** — Connection management
|
||||
- **iwd** — WiFi backend (replaces wpa_supplicant)
|
||||
- **systemd-resolved** — DNS resolution
|
||||
- **dhcpcd** — Disabled (NetworkManager handles DHCP)
|
||||
|
||||
## Disable dhcpcd
|
||||
|
||||
NetworkManager handles DHCP itself, so dhcpcd is not needed and can cause conflicts.
|
||||
|
||||
```bash
|
||||
# Stop and disable dhcpcd
|
||||
sudo systemctl stop dhcpcd
|
||||
sudo systemctl disable dhcpcd
|
||||
|
||||
# Verify it's not running
|
||||
systemctl status dhcpcd
|
||||
```
|
||||
|
||||
If you had dhcpcd managing interfaces, NetworkManager will take over after a reboot.
|
||||
|
||||
## NetworkManager + iwd
|
||||
|
||||
Using iwd as the WiFi backend provides better stability than wpa_supplicant, especially on Framework AMD with the MediaTek WiFi card.
|
||||
|
||||
### Configure iwd backend
|
||||
|
||||
Create `/etc/NetworkManager/conf.d/wifi-backend.conf`:
|
||||
```ini
|
||||
[device]
|
||||
wifi.backend=iwd
|
||||
```
|
||||
|
||||
### Enable services
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now NetworkManager
|
||||
sudo systemctl enable --now iwd
|
||||
```
|
||||
|
||||
### Disable wpa_supplicant (if installed)
|
||||
|
||||
```bash
|
||||
sudo systemctl stop wpa_supplicant
|
||||
sudo systemctl disable wpa_supplicant
|
||||
```
|
||||
|
||||
## DNS with systemd-resolved
|
||||
|
||||
I use systemd-resolved for DNS instead of letting NetworkManager write to `/etc/resolv.conf` directly.
|
||||
|
||||
### Enable systemd-resolved
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now systemd-resolved
|
||||
```
|
||||
|
||||
### Link resolv.conf
|
||||
|
||||
```bash
|
||||
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
|
||||
```
|
||||
|
||||
### Configure NetworkManager to use it
|
||||
|
||||
Create `/etc/NetworkManager/conf.d/dns.conf`:
|
||||
```ini
|
||||
[main]
|
||||
dns=systemd-resolved
|
||||
```
|
||||
|
||||
### Verify
|
||||
|
||||
```bash
|
||||
resolvectl status
|
||||
```
|
||||
|
||||
## WiFi Management
|
||||
|
||||
### CLI (nmcli)
|
||||
|
||||
```bash
|
||||
# List networks
|
||||
nmcli device wifi list
|
||||
|
||||
# Connect
|
||||
nmcli device wifi connect "SSID" password "password"
|
||||
|
||||
# Saved connections
|
||||
nmcli connection show
|
||||
|
||||
# Disconnect
|
||||
nmcli device disconnect wlan0
|
||||
|
||||
# Forget network
|
||||
nmcli connection delete "SSID"
|
||||
```
|
||||
|
||||
### TUI (impala)
|
||||
|
||||
I use [[10-19 LIFE/13 TECH SETUP/13.11 APPS/impala]] for interactive WiFi management — much nicer than `iwctl`:
|
||||
|
||||
```bash
|
||||
impala
|
||||
```
|
||||
|
||||
See [[10-19 LIFE/13 TECH SETUP/13.11 APPS/impala]] for keybindings and configuration.
|
||||
|
||||
## Tailscale
|
||||
|
||||
Tailscale creates a secure mesh network between all your devices.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
curl -fsSL https://tailscale.com/install.sh | sh
|
||||
```
|
||||
|
||||
Or via pacman:
|
||||
```bash
|
||||
sudo pacman -S tailscale
|
||||
```
|
||||
|
||||
### Setup
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now tailscaled
|
||||
sudo tailscale up
|
||||
```
|
||||
|
||||
Follow the auth URL to connect to your tailnet.
|
||||
|
||||
### Useful commands
|
||||
|
||||
```bash
|
||||
tailscale status # Show connected devices
|
||||
tailscale ip # Show Tailscale IP
|
||||
tailscale ping <host> # Ping another device
|
||||
tailscale ssh <host> # SSH to another device (if enabled)
|
||||
```
|
||||
|
||||
### Exit node (use another device as VPN)
|
||||
|
||||
```bash
|
||||
# Enable exit node on a device
|
||||
sudo tailscale up --advertise-exit-node
|
||||
|
||||
# Use an exit node
|
||||
sudo tailscale up --exit-node=<hostname>
|
||||
```
|
||||
|
||||
## Complete Setup Summary
|
||||
|
||||
1. Disable dhcpcd
|
||||
2. Enable NetworkManager + iwd
|
||||
3. Disable wpa_supplicant
|
||||
4. Enable systemd-resolved
|
||||
5. Link resolv.conf
|
||||
6. Install Tailscale
|
||||
7. Install [[10-19 LIFE/13 TECH SETUP/13.11 APPS/impala]] for WiFi TUI
|
||||
|
||||
## Resources
|
||||
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/NetworkManager#Using_iwd_as_the_Wi-Fi_backend
|
||||
- Tailscale docs: https://tailscale.com/kb/
|
||||
131
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md
Normal file
131
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md
Normal file
@@ -0,0 +1,131 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md
|
||||
title: Plymouth
|
||||
created: 2026-02-05T09:31:46.739-07:00
|
||||
modified: 2026-02-05T09:43:32.507-07:00
|
||||
tags:
|
||||
- boot
|
||||
- splash
|
||||
- luks
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Plymouth provides a graphical boot splash screen, including during LUKS password entry.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S plymouth
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### mkinitcpio (systemd hooks)
|
||||
|
||||
I use systemd-based initramfs hooks. Edit `/etc/mkinitcpio.conf`:
|
||||
|
||||
```bash
|
||||
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole plymouth sd-encrypt block filesystems resume fsck)
|
||||
```
|
||||
|
||||
Key points:
|
||||
- Using `systemd` not `udev`
|
||||
- Using `sd-vconsole` not `keymap consolefont`
|
||||
- Using `sd-encrypt` not `encrypt`
|
||||
- `plymouth` comes **after** `sd-vconsole` and **before** `sd-encrypt`
|
||||
|
||||
Regenerate initramfs:
|
||||
```bash
|
||||
sudo mkinitcpio -P
|
||||
```
|
||||
|
||||
### Kernel Parameters
|
||||
|
||||
Add `splash` to your bootloader config.
|
||||
|
||||
**For Limine** (`/boot/EFI/limine/limine.conf`):
|
||||
```
|
||||
cmdline: quiet splash rd.luks.uuid=<UUID> root=/dev/mapper/root ...
|
||||
```
|
||||
|
||||
> **Note:** With systemd hooks, use `rd.luks.uuid=` instead of `cryptdevice=`
|
||||
|
||||
**For systemd-boot** (`/boot/loader/entries/arch.conf`):
|
||||
```
|
||||
options quiet splash rd.luks.uuid=<UUID> root=/dev/mapper/root ...
|
||||
```
|
||||
|
||||
### Set Theme
|
||||
|
||||
```bash
|
||||
# List available themes
|
||||
plymouth-set-default-theme -l
|
||||
|
||||
# Set theme (and rebuild initramfs)
|
||||
sudo plymouth-set-default-theme -R spinner
|
||||
```
|
||||
|
||||
Popular themes:
|
||||
- `spinner` — Simple spinner (default)
|
||||
- `bgrt` — Uses manufacturer logo from ACPI
|
||||
- `fade-in` — Fading star field
|
||||
|
||||
### Install more themes
|
||||
|
||||
```bash
|
||||
paru -S plymouth-theme-arch-logo
|
||||
paru -S plymouth-theme-monoarch
|
||||
```
|
||||
|
||||
## LUKS Integration
|
||||
|
||||
Plymouth displays the LUKS password prompt graphically instead of the text console.
|
||||
|
||||
For this to work with systemd hooks:
|
||||
1. `plymouth` hook must be before `sd-encrypt` hook
|
||||
2. `splash` must be in kernel parameters
|
||||
3. Use `rd.luks.uuid=` for LUKS device specification
|
||||
|
||||
## systemd vs udev Hooks
|
||||
|
||||
| udev-based | systemd-based |
|
||||
|------------|---------------|
|
||||
| `udev` | `systemd` |
|
||||
| `keymap consolefont` | `sd-vconsole` |
|
||||
| `encrypt` | `sd-encrypt` |
|
||||
| `cryptdevice=UUID=...:name` | `rd.luks.uuid=...` |
|
||||
|
||||
## Testing
|
||||
|
||||
Test without rebooting:
|
||||
```bash
|
||||
sudo plymouthd
|
||||
sudo plymouth --show-splash
|
||||
# Press Enter to dismiss
|
||||
sudo plymouth quit
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### No splash on boot
|
||||
|
||||
1. Verify `splash` is in kernel params
|
||||
2. Check hook order in mkinitcpio.conf
|
||||
3. Regenerate initramfs: `sudo mkinitcpio -P`
|
||||
|
||||
### LUKS prompt is text-only
|
||||
|
||||
The `plymouth` hook must come **before** `sd-encrypt`:
|
||||
```bash
|
||||
HOOKS=(... sd-vconsole plymouth sd-encrypt ...)
|
||||
```
|
||||
|
||||
### View boot messages
|
||||
|
||||
Remove `quiet` temporarily to see boot messages if Plymouth isn't working.
|
||||
|
||||
## Resources
|
||||
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/Plymouth
|
||||
- Arch Wiki (mkinitcpio systemd): https://wiki.archlinux.org/title/Mkinitcpio#Common_hooks
|
||||
95
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Printing.md
Normal file
95
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Printing.md
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Printing.md
|
||||
title: Printing
|
||||
created: 2026-02-05T08:52:25.911-07:00
|
||||
modified: 2026-02-05T09:21:21.426-07:00
|
||||
tags:
|
||||
- printing
|
||||
- cups
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
CUPS printing setup for Arch Linux.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S cups cups-pdf
|
||||
```
|
||||
|
||||
## Enable Services
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now cups
|
||||
sudo systemctl enable --now avahi-daemon
|
||||
```
|
||||
|
||||
Avahi enables automatic network printer discovery.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Web interface
|
||||
|
||||
Access CUPS admin at: http://localhost:631
|
||||
|
||||
### Add printer via CLI
|
||||
|
||||
```bash
|
||||
# List available printers
|
||||
lpinfo -v
|
||||
|
||||
# Add a printer
|
||||
lpadmin -p PrinterName -E -v "uri" -m "driver.ppd"
|
||||
|
||||
# Set default printer
|
||||
lpoptions -d PrinterName
|
||||
```
|
||||
|
||||
### Network printers (auto-discovery)
|
||||
|
||||
With Avahi running, network printers should appear automatically. If not:
|
||||
|
||||
```bash
|
||||
# Install nss-mdns for .local hostname resolution
|
||||
sudo pacman -S nss-mdns
|
||||
|
||||
# Edit /etc/nsswitch.conf, add mdns_minimal before resolve:
|
||||
hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns
|
||||
```
|
||||
|
||||
## Print to PDF
|
||||
|
||||
The `cups-pdf` package creates a virtual PDF printer:
|
||||
|
||||
```bash
|
||||
# Print to PDF (outputs to ~/PDF/)
|
||||
lp -d cups-pdf document.txt
|
||||
```
|
||||
|
||||
## Useful Commands
|
||||
|
||||
```bash
|
||||
lpstat -p # List printers
|
||||
lpstat -t # Full status
|
||||
lp -d PrinterName file # Print file
|
||||
cancel <job-id> # Cancel print job
|
||||
lprm <job-id> # Remove print job
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
```bash
|
||||
# Check CUPS status
|
||||
systemctl status cups
|
||||
|
||||
# View logs
|
||||
journalctl -u cups -f
|
||||
|
||||
# Restart CUPS
|
||||
sudo systemctl restart cups
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/CUPS
|
||||
153
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Shell.md
Normal file
153
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Shell.md
Normal file
@@ -0,0 +1,153 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Shell.md
|
||||
title: Shell
|
||||
created: 2026-01-29T16:18:01.019-07:00
|
||||
modified: 2026-02-05T09:44:18.943-07:00
|
||||
tags:
|
||||
- shell
|
||||
- terminal
|
||||
- bash
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Shell configuration with Bash, Starship prompt, and Atuin history.
|
||||
|
||||
## Starship Prompt
|
||||
|
||||
Starship is a fast, customizable prompt that works with any shell.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
```
|
||||
|
||||
Or via pacman:
|
||||
```bash
|
||||
sudo pacman -S starship
|
||||
```
|
||||
|
||||
### Bash Integration
|
||||
|
||||
Add to `~/.bashrc`:
|
||||
```bash
|
||||
eval "$(starship init bash)"
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
Config location: `~/.config/starship.toml`
|
||||
|
||||
```toml
|
||||
# Minimal prompt
|
||||
format = """
|
||||
$directory\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
$character"""
|
||||
|
||||
[directory]
|
||||
truncation_length = 3
|
||||
truncate_to_repo = true
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
|
||||
[git_status]
|
||||
format = '([$all_status$ahead_behind]($style) )'
|
||||
|
||||
[character]
|
||||
success_symbol = "[❯](green)"
|
||||
error_symbol = "[❯](red)"
|
||||
```
|
||||
|
||||
## Atuin (Shell History)
|
||||
|
||||
See [[10-19 LIFE/13 TECH SETUP/13.11 APPS/atuin]] for full setup. Quick integration:
|
||||
|
||||
```bash
|
||||
# Install
|
||||
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
|
||||
|
||||
# Add to ~/.bashrc
|
||||
. "$HOME/.atuin/bin/env"
|
||||
[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh
|
||||
eval "$(atuin init bash)"
|
||||
```
|
||||
|
||||
## My .bashrc Structure
|
||||
|
||||
I keep my bashrc clean by sourcing external files:
|
||||
|
||||
```bash
|
||||
# ~/.bashrc
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# Basic aliases
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
|
||||
# PATH
|
||||
export PATH="/home/phil/.local/bin:$PATH"
|
||||
export PATH="$HOME/.npm-global/bin:$PATH"
|
||||
export PATH="$PATH:$HOME/go/bin"
|
||||
|
||||
# Starship
|
||||
eval "$(starship init bash)"
|
||||
|
||||
# Atuin
|
||||
. "$HOME/.atuin/bin/env"
|
||||
[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh
|
||||
eval "$(atuin init bash)"
|
||||
|
||||
# Custom config (aliases, functions)
|
||||
source ~/.config/dotfiles/aliases
|
||||
source ~/.config/dotfiles/functions
|
||||
|
||||
# Completions
|
||||
source <(openclaw completion --shell bash)
|
||||
```
|
||||
|
||||
### Modular Config
|
||||
|
||||
Keep aliases and functions in separate files:
|
||||
|
||||
```
|
||||
~/.config/dotfiles/
|
||||
├── aliases # alias definitions
|
||||
└── functions # shell functions
|
||||
```
|
||||
|
||||
This keeps `.bashrc` clean and makes it easy to version control customizations separately.
|
||||
|
||||
## Useful Tools
|
||||
|
||||
```bash
|
||||
sudo pacman -S \
|
||||
fzf # Fuzzy finder
|
||||
bat # Better cat
|
||||
eza # Better ls
|
||||
ripgrep # Better grep
|
||||
fd # Better find
|
||||
```
|
||||
|
||||
### fzf Integration
|
||||
|
||||
```bash
|
||||
# Add to ~/.bashrc
|
||||
source /usr/share/fzf/key-bindings.bash
|
||||
source /usr/share/fzf/completion.bash
|
||||
```
|
||||
|
||||
Keybindings:
|
||||
- `Ctrl+R` — Search history (or use Atuin)
|
||||
- `Ctrl+T` — Search files
|
||||
- `Alt+C` — cd into directory
|
||||
|
||||
## Resources
|
||||
|
||||
- Starship: https://starship.rs/
|
||||
- Atuin: https://atuin.sh/
|
||||
143
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Yubikey.md
Normal file
143
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Yubikey.md
Normal file
@@ -0,0 +1,143 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Yubikey.md
|
||||
title: Yubikey
|
||||
created: 2026-01-29T21:27:17.327-07:00
|
||||
modified: 2026-02-05T09:21:56.856-07:00
|
||||
tags:
|
||||
- security
|
||||
- yubikey
|
||||
- 2fa
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
YubiKey hardware security key setup on Arch Linux.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S \
|
||||
yubikey-manager \
|
||||
yubico-authenticator \
|
||||
pcsclite ccid
|
||||
```
|
||||
|
||||
- `yubikey-manager` — CLI tool (`ykman`)
|
||||
- `yubico-authenticator` — TOTP/HOTP GUI
|
||||
- `pcsclite`, `ccid` — Smart card daemon
|
||||
|
||||
## Enable Services
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now pcscd
|
||||
```
|
||||
|
||||
## Basic Usage
|
||||
|
||||
### Check YubiKey
|
||||
|
||||
```bash
|
||||
ykman info
|
||||
```
|
||||
|
||||
### List OTP slots
|
||||
|
||||
```bash
|
||||
ykman otp info
|
||||
```
|
||||
|
||||
## TOTP Authenticator
|
||||
|
||||
Launch the GUI:
|
||||
```bash
|
||||
yubico-authenticator
|
||||
```
|
||||
|
||||
Or use CLI:
|
||||
```bash
|
||||
# List accounts
|
||||
ykman oath accounts list
|
||||
|
||||
# Get code
|
||||
ykman oath accounts code "Account Name"
|
||||
```
|
||||
|
||||
## FIDO2/WebAuthn
|
||||
|
||||
Works out of the box with modern browsers for passkeys and 2FA.
|
||||
|
||||
### udev rules
|
||||
|
||||
If YubiKey isn't detected, add udev rules:
|
||||
```bash
|
||||
sudo pacman -S libu2f-host
|
||||
```
|
||||
|
||||
Or manually create `/etc/udev/rules.d/70-u2f.rules`:
|
||||
```
|
||||
# YubiKey
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="users", ATTRS{idVendor}=="1050"
|
||||
```
|
||||
|
||||
Reload:
|
||||
```bash
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
```
|
||||
|
||||
## SSH Authentication
|
||||
|
||||
Use YubiKey for SSH keys via FIDO2:
|
||||
|
||||
### Generate key
|
||||
|
||||
```bash
|
||||
ssh-keygen -t ed25519-sk -O resident -O verify-required
|
||||
```
|
||||
|
||||
- `-t ed25519-sk` — FIDO2 key type
|
||||
- `-O resident` — Store on YubiKey (discoverable)
|
||||
- `-O verify-required` — Require touch + PIN
|
||||
|
||||
### Load resident keys
|
||||
|
||||
```bash
|
||||
ssh-add -K # Load all resident keys from YubiKey
|
||||
```
|
||||
|
||||
## PIV (Smart Card)
|
||||
|
||||
For certificate-based auth:
|
||||
|
||||
```bash
|
||||
# Check PIV status
|
||||
ykman piv info
|
||||
|
||||
# Generate key in slot 9a
|
||||
ykman piv keys generate 9a public.pem
|
||||
```
|
||||
|
||||
## GPG
|
||||
|
||||
Use YubiKey as GPG smart card:
|
||||
|
||||
```bash
|
||||
gpg --card-status
|
||||
gpg --card-edit
|
||||
```
|
||||
|
||||
## Locking Workstation
|
||||
|
||||
Lock screen when YubiKey is removed:
|
||||
|
||||
```bash
|
||||
# Install
|
||||
paru -S yubikey-touch-detector
|
||||
|
||||
# Or use udev rule + hyprlock
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/Smartcards
|
||||
- YubiKey docs: https://docs.yubico.com/
|
||||
120
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd.md
Normal file
120
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd.md
Normal file
@@ -0,0 +1,120 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd.md
|
||||
title: fprintd
|
||||
created: 2026-02-05T09:31:46.737-07:00
|
||||
modified: 2026-02-05T09:32:30.884-07:00
|
||||
tags:
|
||||
- security
|
||||
- fingerprint
|
||||
- authentication
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Fingerprint authentication daemon for Linux. Works with [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock]] and system login.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S fprintd
|
||||
```
|
||||
|
||||
The service starts on-demand, no need to enable it.
|
||||
|
||||
## Enroll Fingerprints
|
||||
|
||||
```bash
|
||||
# Enroll a finger (follow prompts)
|
||||
fprintd-enroll
|
||||
|
||||
# Enroll specific finger
|
||||
fprintd-enroll -f right-index-finger
|
||||
|
||||
# List enrolled fingerprints
|
||||
fprintd-list $USER
|
||||
```
|
||||
## PAM Configuration
|
||||
|
||||
### For hyprlock
|
||||
|
||||
Create `/etc/pam.d/hyprlock`:
|
||||
```
|
||||
# PAM configuration file for hyprlock
|
||||
auth include login
|
||||
```
|
||||
|
||||
This inherits from the login config which includes fprintd.
|
||||
|
||||
### For system login
|
||||
|
||||
Edit `/etc/pam.d/system-local-login` — usually already configured if using default Arch PAM.
|
||||
|
||||
### Manual PAM setup
|
||||
|
||||
To add fingerprint auth to any PAM service, add before password auth:
|
||||
```
|
||||
auth sufficient pam_fprintd.so
|
||||
```
|
||||
|
||||
## hyprlock Integration
|
||||
|
||||
Enable in `~/.config/hypr/hyprlock.conf`:
|
||||
```bash
|
||||
auth {
|
||||
fingerprint {
|
||||
enabled = true
|
||||
ready_message = Scan fingerprint to unlock
|
||||
present_message = Scanning...
|
||||
retry_delay = 250
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Check service status
|
||||
|
||||
```bash
|
||||
systemctl status fprintd
|
||||
```
|
||||
|
||||
### Verify device detection
|
||||
|
||||
```bash
|
||||
fprintd-list $USER
|
||||
```
|
||||
|
||||
Should show your fingerprint reader device.
|
||||
|
||||
### Re-enroll if not working
|
||||
|
||||
```bash
|
||||
fprintd-delete $USER # Delete all prints
|
||||
fprintd-enroll # Re-enroll
|
||||
```
|
||||
|
||||
### Debug
|
||||
|
||||
```bash
|
||||
# Run fprintd in foreground with debug
|
||||
sudo /usr/libexec/fprintd -d
|
||||
```
|
||||
|
||||
## Supported Devices
|
||||
|
||||
Framework Laptop 13 uses the **Goodix MOC Fingerprint Sensor** which works out of the box with fprintd.
|
||||
|
||||
Check if your device is supported:
|
||||
```bash
|
||||
lsusb | grep -i fingerprint
|
||||
```
|
||||
|
||||
## Security Notes
|
||||
|
||||
- Fingerprint is "sufficient" not "required" — password always works as fallback
|
||||
- Fingerprints are stored encrypted in `/var/lib/fprint/`
|
||||
- Consider if fingerprint auth meets your security requirements
|
||||
|
||||
## Resources
|
||||
|
||||
- Arch Wiki: https://wiki.archlinux.org/title/Fprint
|
||||
188
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock.md
Normal file
188
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock.md
Normal file
@@ -0,0 +1,188 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprlock.md
|
||||
title: hyprlock
|
||||
created: 2026-02-05T09:31:46.736-07:00
|
||||
modified: 2026-02-05T09:35:55.743-07:00
|
||||
tags:
|
||||
- hyprland
|
||||
- lockscreen
|
||||
- security
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
hyprlock is the lock screen for Hyprland with support for fingerprint authentication.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S hyprlock
|
||||
```
|
||||
|
||||
## My Configuration
|
||||
|
||||
Config: `~/.config/hypr/hyprlock.conf`
|
||||
|
||||
```bash
|
||||
$font = Monospace
|
||||
|
||||
general {
|
||||
hide_cursor = false
|
||||
}
|
||||
|
||||
# Fingerprint authentication
|
||||
auth {
|
||||
fingerprint {
|
||||
enabled = true
|
||||
ready_message = Scan fingerprint to unlock
|
||||
present_message = Scanning...
|
||||
retry_delay = 250 # in milliseconds
|
||||
}
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 5, linear
|
||||
animation = inputFieldDots, 1, 2, linear
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 3
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
||||
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
||||
|
||||
font_color = rgb(143, 143, 143)
|
||||
fade_on_empty = false
|
||||
rounding = 15
|
||||
|
||||
font_family = $font
|
||||
placeholder_text = Input password...
|
||||
fail_text = $PAMFAIL
|
||||
|
||||
dots_spacing = 0.3
|
||||
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] date +"%A, %d %B %Y"
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# KEYBOARD LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
text = $LAYOUT[en,ru]
|
||||
font_size = 24
|
||||
onclick = hyprctl switchxkblayout all next
|
||||
|
||||
position = 250, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
```
|
||||
|
||||
## Key Features
|
||||
|
||||
### Fingerprint Support
|
||||
|
||||
Requires [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/fprintd]] to be configured. The `auth` block enables fingerprint unlock:
|
||||
```bash
|
||||
auth {
|
||||
fingerprint {
|
||||
enabled = true
|
||||
ready_message = Scan fingerprint to unlock
|
||||
present_message = Scanning...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Screenshot Background
|
||||
|
||||
Uses a screenshot of the current screen with blur:
|
||||
```bash
|
||||
background {
|
||||
path = screenshot
|
||||
blur_passes = 3
|
||||
}
|
||||
```
|
||||
|
||||
### Gradient Border
|
||||
|
||||
Input field has a gradient border matching Hyprland theme:
|
||||
```bash
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
```
|
||||
|
||||
## Integration with hypridle
|
||||
|
||||
hypridle triggers hyprlock on idle. See [[10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Hyprland Setup#Idle Management (hypridle)]].
|
||||
|
||||
Key config in `~/.config/hypr/hypridle.conf`:
|
||||
```bash
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # Prevent multiple instances
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5 min
|
||||
on-timeout = loginctl lock-session
|
||||
}
|
||||
```
|
||||
|
||||
## Manual Lock
|
||||
|
||||
```bash
|
||||
hyprlock
|
||||
```
|
||||
|
||||
Or via keybind:
|
||||
```bash
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
```
|
||||
|
||||
## Shortcuts
|
||||
|
||||
While locked:
|
||||
- `ESC` — Clear password
|
||||
- `Ctrl+U` — Clear password
|
||||
- `Ctrl+Backspace` — Clear password
|
||||
|
||||
## Resources
|
||||
|
||||
- Wiki: https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/hyprshutdown.md
|
||||
title: hyprshutdown
|
||||
created: 2026-02-05T09:31:46.735-07:00
|
||||
modified: 2026-02-05T09:31:46.735-07:00
|
||||
tags:
|
||||
- hyprland
|
||||
- shutdown
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
hyprshutdown provides graceful shutdown/reboot with animated transitions for Hyprland.
|
||||
|
||||
## Installation
|
||||
|
||||
**From AUR:**
|
||||
```bash
|
||||
paru -S hyprshutdown
|
||||
```
|
||||
|
||||
**Build from source** (if AUR is outdated):
|
||||
```bash
|
||||
git clone https://github.com/hyprwm/hyprshutdown
|
||||
cd hyprshutdown
|
||||
cmake .
|
||||
make all
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Shutdown with animation
|
||||
hyprshutdown -t "Shutting down..." --post-cmd "shutdown -P 0"
|
||||
|
||||
# Reboot with animation
|
||||
hyprshutdown -t "Restarting..." --post-cmd "reboot"
|
||||
|
||||
# Custom timeout (ms)
|
||||
hyprshutdown -t "Goodbye!" --timeout 2000 --post-cmd "shutdown -P 0"
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| `-t, --text` | Message to display during animation |
|
||||
| `--post-cmd` | Command to run after animation completes |
|
||||
| `--timeout` | Animation duration in milliseconds |
|
||||
|
||||
## Integration
|
||||
|
||||
### Hyprland keybind
|
||||
|
||||
```bash
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
```
|
||||
|
||||
### Ashell settings
|
||||
|
||||
In ashell config:
|
||||
```toml
|
||||
[settings]
|
||||
shutdown_cmd = "hyprshutdown -t 'Shutting down...' --post-cmd 'shutdown -P 0'"
|
||||
reboot_cmd = "hyprshutdown -t 'Restarting...' --post-cmd 'reboot'"
|
||||
```
|
||||
|
||||
## Fallback
|
||||
|
||||
If hyprshutdown isn't installed, fall back to regular exit:
|
||||
```bash
|
||||
command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- GitHub: https://github.com/hyprwm/hyprshutdown
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.11 DAGGERHEART/Character Creation.md
|
||||
title: Character Creation Cheat Sheet
|
||||
created: 2026-01-10T15:29:30.804-07:00
|
||||
created: 2026-01-29T14:04:18.364-07:00
|
||||
modified: 2025-06-24T21:01:37.096-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/Hub.md
|
||||
title: 00 - Holding Back Sin
|
||||
created: 2026-01-10T15:29:22.900-07:00
|
||||
created: 2026-01-29T14:04:18.607-07:00
|
||||
modified: 2025-06-26T16:08:06.270-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/Sin Manifest.md
|
||||
title: "01 - Campaign Frame: Sin Manifest"
|
||||
created: 2026-01-10T15:29:29.295-07:00
|
||||
created: 2026-01-29T14:04:18.718-07:00
|
||||
modified: 2025-06-25T21:38:30.349-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
@@ -9,7 +10,7 @@ tags:
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
*Designed by [[06 AUTHOR/Phil Skentelbery]]*
|
||||
*Designed by [[06 AUTHOR/11 METADATA/Phil Skentelbery]]*
|
||||
|
||||
>[!warning] Under Construction
|
||||
>This page is under construction. Detail's will likely change prior to Session 0
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/The Church.md
|
||||
title: The Church
|
||||
created: 2026-01-10T15:29:28.057-07:00
|
||||
created: 2026-01-29T14:04:18.879-07:00
|
||||
modified: 2025-06-24T22:12:24.093-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/The First Sinner.md
|
||||
title: The First Sinner
|
||||
created: 2026-01-10T15:29:22.738-07:00
|
||||
created: 2026-01-29T14:04:18.545-07:00
|
||||
modified: 2025-06-24T22:11:57.085-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/The Old Gods.md
|
||||
title: The Old Gods
|
||||
created: 2026-01-10T15:29:33.896-07:00
|
||||
created: 2026-01-29T14:04:18.493-07:00
|
||||
modified: 2025-06-24T21:53:46.955-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/The Pit.md
|
||||
title: The Pit
|
||||
created: 2026-01-10T15:29:21.095-07:00
|
||||
created: 2026-01-29T14:04:18.361-07:00
|
||||
modified: 2025-06-25T20:35:49.868-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/21 TTRPG/21.12 HOLDING BACK SIN/Ydrasog.md
|
||||
title: Ydrasog
|
||||
created: 2026-01-10T15:29:30.266-07:00
|
||||
created: 2026-01-29T14:04:18.798-07:00
|
||||
modified: 2025-06-25T20:29:47.366-06:00
|
||||
tags:
|
||||
- daggerheart
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian.md
|
||||
title: Obsidian Setup for Digital Gardening
|
||||
created: 2026-01-10T15:29:32.733-07:00
|
||||
created: 2026-01-29T14:04:18.365-07:00
|
||||
modified: 2026-01-19T17:48:04.050-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Setup.md
|
||||
title: Digital Garden Setup
|
||||
created: 2026-01-10T15:29:26.224-07:00
|
||||
created: 2026-01-29T14:04:18.669-07:00
|
||||
modified: 2025-07-02T15:44:31.210-06:00
|
||||
tags:
|
||||
- self_hosting
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
publish: true
|
||||
created: 2026-01-21T22:20:37.846-07:00
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.12 SERVICES/GoToSocial.md
|
||||
created: 2026-01-29T14:04:18.591-07:00
|
||||
modified: 2026-01-21T22:26:52.945-07:00
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
publish: true
|
||||
created: 2026-01-20T13:33:47.497-07:00
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.12 SERVICES/Syncthing.md
|
||||
created: 2026-01-29T14:04:18.802-07:00
|
||||
modified: 2026-01-20T13:36:36.219-07:00
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/23 SECURITY/23.11 EVILGINX/00 - Index.md
|
||||
title: 00 - Start Here
|
||||
created: 2026-01-10T15:29:21.091-07:00
|
||||
created: 2026-01-29T14:04:18.808-07:00
|
||||
modified: 2025-06-26T16:07:26.548-06:00
|
||||
tags:
|
||||
- guide
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/23 SECURITY/23.11 EVILGINX/Installation of Community Edition.md
|
||||
title: Installing Evilginx Community Edition
|
||||
created: 2026-01-10T15:29:21.577-07:00
|
||||
created: 2026-01-29T14:04:18.369-07:00
|
||||
modified: 2025-06-26T12:40:30.910-06:00
|
||||
tags:
|
||||
- phishing
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/23 SECURITY/23.11 EVILGINX/basic configuration.md
|
||||
title: Server bootstrapping
|
||||
created: 2026-01-10T15:29:32.987-07:00
|
||||
created: 2026-01-29T14:04:18.492-07:00
|
||||
modified: 2025-06-26T12:37:33.633-06:00
|
||||
tags:
|
||||
- evilginx
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/23 SECURITY/23.11 EVILGINX/configuration.md
|
||||
title: Evilginx Configuration
|
||||
created: 2026-01-10T15:29:21.199-07:00
|
||||
created: 2026-01-29T14:04:18.516-07:00
|
||||
modified: 2025-06-26T15:12:06.592-06:00
|
||||
tags:
|
||||
- evilginx
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/23 SECURITY/23.11 EVILGINX/phish setup.md
|
||||
title: Basic Phish Setup
|
||||
created: 2026-01-10T15:29:29.395-07:00
|
||||
created: 2026-01-29T14:04:18.366-07:00
|
||||
modified: 2025-06-27T14:25:27.036-06:00
|
||||
tags:
|
||||
- evilginx
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/24 MTG/24.11 LIMITED/Final Fantasy Draft Notes.md
|
||||
title: Final Fantasy Draft Notes
|
||||
created: 2026-01-10T15:29:22.627-07:00
|
||||
created: 2026-01-29T14:04:18.666-07:00
|
||||
modified: 2025-07-03T11:29:24.580-06:00
|
||||
tags:
|
||||
- mtg
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/24 MTG/24.12 COMMANDER/Nasty Nasty Necrons.md
|
||||
title: "Deck: Nasty Nasty Necrons"
|
||||
created: 2026-01-10T15:29:26.875-07:00
|
||||
created: 2026-01-29T14:04:18.368-07:00
|
||||
modified: 2025-07-03T14:27:32.564-06:00
|
||||
tags:
|
||||
- mtg
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/24 MTG/24.13 PAUPER/Planning.md
|
||||
title: Under Construction
|
||||
created: 2026-01-19T15:38:24.577-07:00
|
||||
created: 2026-01-29T14:04:18.357-07:00
|
||||
modified: 2026-01-19T15:39:08.577-07:00
|
||||
tags:
|
||||
- mtg
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /index.md
|
||||
title: Home
|
||||
created: 2026-01-10T15:29:20.603-07:00
|
||||
created: 2026-01-29T14:04:18.325-07:00
|
||||
modified: 2026-01-19T17:58:25.379-07:00
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user