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,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
|
||||
Reference in New Issue
Block a user