Audit and optimize for CapableMind development

Brewfile: stripped to essential tools (~600MB freed), removed boost,
cmake, aerc, newsboat, fontforge, starship, and 24 auto-dependencies.
Added caffeine, ollama, fastfetch, ocrmypdf, tea, sshpass, vitetris.
Dropped 1password, iterm2, github-desktop, hazel, swiftbar, oversight.

Shell: fixed all stale references (fzf, zoxide, starship, old paths,
Homebrew node aliases). Updated project paths to ~/_Dev/. Added
CapableMind aliases (cm, bmf, bmf-health, bmf-status, bmf-logs).

Configs: removed iterm2, neofetch, swiftbar configs. Added capablemind
(launchd plists, MCP example, bmf-start script). Updated SSH config
with git.skemantix.com. Added CLAUDE.md to dotfiles.

Scripts: consolidated 3 backup scripts into 1 (backup-all-secrets.sh),
added pass store backup. Added setup-capablemind.sh for full environment
reconstruction. Updated symlinks.sh for new config structure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
David F Glidden
2026-03-20 23:45:33 +01:00
co-authored by Claude Opus 4.6
parent e7bb361bd2
commit 066a47a26b
72 changed files with 785 additions and 2032 deletions
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.capablemind.bettermemories</string>
<key>ProgramArguments</key>
<array>
<string>/Users/davidglidden/.nvm/versions/node/v22.16.0/bin/node</string>
<string>/Users/davidglidden/_Dev/BetterMemories.io/dist/index.js</string>
</array>
<key>WorkingDirectory</key>
<string>/Users/davidglidden/_Dev/BetterMemories.io</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>ThrottleInterval</key>
<integer>10</integer>
<key>StandardOutPath</key>
<string>/Users/davidglidden/.capablemind/logs/bmf.stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/davidglidden/.capablemind/logs/bmf.stderr.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>BM_PORT</key>
<string>3011</string>
<key>BM_DEPLOYMENT_MODEL</key>
<string>standalone</string>
<key>BMF_MCP_TOKEN</key>
<string>bm_key_7feb421ef8fd45e8</string>
<key>PATH</key>
<string>/Users/davidglidden/.nvm/versions/node/v22.16.0/bin:/usr/local/bin:/usr/bin:/bin</string>
</dict>
</dict>
</plist>
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.capablemind.bmf</string>
<key>ProgramArguments</key>
<array>
<string>/Users/davidglidden/bin/bmf-start.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ThrottleInterval</key>
<integer>10</integer>
<key>StandardOutPath</key>
<string>/Users/davidglidden/.capablemind/logs/bmf.stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/davidglidden/.capablemind/logs/bmf.stderr.log</string>
<key>WorkingDirectory</key>
<string>/Users/davidglidden/_Dev/BetterMemories.io</string>
</dict>
</plist>
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.dglidden.thinking-mirror</string>
<key>ProgramArguments</key>
<array>
<string>/Users/davidglidden/bin/capablemind-thinking-mirror.sh</string>
</array>
<key>StartInterval</key>
<integer>172800</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/davidglidden/.capablemind/logs/thinking-mirror.log</string>
<key>StandardErrorPath</key>
<string>/Users/davidglidden/.capablemind/logs/thinking-mirror.log</string>
</dict>
</plist>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.dglidden.vaultsync</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-lc</string>
<string>~/bin/obsidian_vault_sync.sh</string>
</array>
<!-- Run every 30 minutes -->
<key>StartInterval</key>
<integer>1800</integer>
<!-- Also run once shortly after login -->
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/davidglidden/Library/Logs/vaultsync.log</string>
<key>StandardErrorPath</key>
<string>/Users/davidglidden/Library/Logs/vaultsync.log</string>
</dict>
</plist>
+17
View File
@@ -0,0 +1,17 @@
{
"mcpServers": {
"capablemind": {
"command": "node",
"args": ["/Users/davidglidden/_Dev/BetterMemories.io/dist/index.js"],
"cwd": "/Users/davidglidden/_Dev/BetterMemories.io",
"env": {
"BM_MCP_STDIO": "true",
"BM_PORT": "3011",
"BM_TEACHER_TRANSPORT": "api",
"BMF_MCP_TOKEN": "bm_key_REDACTED",
"BM_PYTHON_PATH": "/Users/davidglidden/_Dev/BetterMemories.io/.venv/bin/python3",
"BM_MELD_URL": "http://10.0.1.10:3011"
}
}
}
}
@@ -1,2 +0,0 @@
2f55736572732f6461766964676c696464656e2f4c6962726172792f4170706c69636174696f6e20537570706f72742f695465726d322f456e61626c6541492e73656375726553657474696e67 0975c0e7440a897bbddeb6c6945a2eb9bcdecaaa4840bebc3955dd9a3df359bb
74727565
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
3.5.14
-344
View File
@@ -1,344 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.32156863808631897</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.25882354378700256</real>
<key>Red Component</key>
<real>0.23137255012989044</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.41568627953529358</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.38039216399192810</real>
<key>Red Component</key>
<real>0.74901962280273438</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.54901963472366333</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.74509805440902710</real>
<key>Red Component</key>
<real>0.63921570777893066</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.54509806632995605</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.79607844352722168</real>
<key>Red Component</key>
<real>0.92156863212585449</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.75686275959014893</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.63137257099151611</real>
<key>Red Component</key>
<real>0.50588238239288330</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.67843139171600342</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.55686277151107788</real>
<key>Red Component</key>
<real>0.70588237047195435</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.73333334922790527</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.73725491762161255</real>
<key>Red Component</key>
<real>0.56078433990478516</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.95686274766921997</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.93725490570068359</real>
<key>Red Component</key>
<real>0.92549020051956177</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.54901963472366333</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.74509805440902710</real>
<key>Red Component</key>
<real>0.63921570777893066</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.54509806632995605</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.79607844352722168</real>
<key>Red Component</key>
<real>0.92156863212585449</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.75686275959014893</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.63137257099151611</real>
<key>Red Component</key>
<real>0.50588238239288330</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.67843139171600342</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.55686277151107788</real>
<key>Red Component</key>
<real>0.70588237047195435</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.81568628549575806</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.75294119119644165</real>
<key>Red Component</key>
<real>0.53333336114883423</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.94117647409439087</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.91372549533843994</real>
<key>Red Component</key>
<real>0.89803922176361084</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.41568627953529358</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.33725491166114807</real>
<key>Red Component</key>
<real>0.29803922772407532</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.41568627953529358</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.38039216399192810</real>
<key>Red Component</key>
<real>0.74901962280273438</real>
</dict>
<key>Background Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.25098040699958801</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.20392157137393951</real>
<key>Red Component</key>
<real>0.18039216101169586</real>
</dict>
<key>Badge Color</key>
<dict>
<key>Alpha Component</key>
<real>0.5</real>
<key>Blue Component</key>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.1491314172744751</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Bold Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.91372549533843994</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.87058824300765991</real>
<key>Red Component</key>
<real>0.84705883264541626</real>
</dict>
<key>Cursor Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.91372549533843994</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.87058824300765991</real>
<key>Red Component</key>
<real>0.84705883264541626</real>
</dict>
<key>Cursor Guide Color</key>
<dict>
<key>Alpha Component</key>
<real>0.25</real>
<key>Blue Component</key>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.9268307089805603</real>
<key>Red Component</key>
<real>0.70213186740875244</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.25098040699958801</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.20392157137393951</real>
<key>Red Component</key>
<real>0.18039216101169586</real>
</dict>
<key>Foreground Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.91372549533843994</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.87058824300765991</real>
<key>Red Component</key>
<real>0.84705883264541626</real>
</dict>
<key>Link Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.73423302173614502</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.35916060209274292</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Selected Text Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.25098040699958801</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.20392157137393951</real>
<key>Red Component</key>
<real>0.18039216101169586</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.81568628549575806</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.75294119119644165</real>
<key>Red Component</key>
<real>0.53333336114883423</real>
</dict>
</dict>
</plist>
-99
View File
@@ -1,99 +0,0 @@
# iTerm2 Configuration
This directory contains iTerm2 configuration to match the Kitty terminal setup with Nord theme.
## Quick Setup
1. **Import Nord Color Scheme**:
```bash
# Run the setup script
~/dotfiles/config/iterm2/setup-iterm.sh
```
2. **Manual Color Import**:
- Open iTerm2
- Press `Cmd+,` to open Preferences
- Go to **Profiles → Colors**
- Click **Color Presets...** dropdown
- Select **Import...**
- Navigate to `~/dotfiles/config/iterm2/Nord.itermcolors`
- Select **Nord** from the Color Presets dropdown
## Matching Settings with Kitty
The following settings match your Kitty configuration:
### Font Configuration
- **Font**: Iosevka Term SS08 (or Dank Mono if you prefer)
- **Size**: 16pt
- **Ligatures**: Enabled
- **Non-ASCII Font**: Fira Code Nerd Font (for symbols)
### Window Settings
- **Default Size**: 120 columns × 35 rows
- **Transparency**: 8% (equivalent to Kitty's 0.92 opacity)
- **Blur**: Optional, helps with readability
### Behavior
- **Scrollback**: 10,000 lines
- **Copy on Selection**: Enabled
- **Visual Bell**: Enabled (no audio bell)
- **Cursor**: Block, blinking
## Manual Configuration
If you prefer to configure manually:
1. **Font**:
- Profiles → Text → Font → Change Font
- Select "Iosevka Term SS08" or "Dank Mono", Size 16
2. **Colors**:
- Already handled by importing Nord.itermcolors
3. **Window**:
- Profiles → Window → Settings for New Windows
- Columns: 120, Rows: 35
- Transparency: Drag slider to ~8%
4. **Terminal**:
- Profiles → Terminal → Scrollback Buffer
- Set to 10,000 lines
5. **Keys**:
- Profiles → Keys → Key Mappings
- Add shortcuts as needed to match Kitty
## Keyboard Shortcuts
To match Kitty's shortcuts in iTerm2:
| Action | Kitty | iTerm2 Setup |
|--------|-------|--------------|
| New Tab | `Cmd+T` | Default |
| Close Tab | `Cmd+W` | Default |
| Next Tab | `Cmd+]` | Default |
| Previous Tab | `Cmd+[` | Default |
| Font Size + | `Cmd+Plus` | Preferences → Keys → + |
| Font Size - | `Cmd+Minus` | Preferences → Keys → + |
| Font Size Reset | `Cmd+0` | Preferences → Keys → + |
## Saving Your Configuration
To save your iTerm2 configuration to dotfiles:
1. Open Preferences (`Cmd+,`)
2. Go to **General → Preferences**
3. Click **Load preferences from a custom folder**
4. Select `~/dotfiles/config/iterm2`
5. Check **Save changes to folder when iTerm2 quits**
This ensures your iTerm2 settings are backed up with your dotfiles.
## Nord Theme Benefits
The Nord color scheme is specifically chosen for:
- **Reduced eye strain** with muted colors
- **Excellent contrast** without being harsh
- **Better readability** for users with vision considerations
- **Consistent appearance** across Kitty and iTerm2
-64
View File
@@ -1,64 +0,0 @@
#!/usr/bin/env bash
# Setup iTerm2 with Nord theme and matching Kitty settings
set -euo pipefail
DOTFILES_DIR="$HOME/dotfiles"
ITERM_CONFIG_DIR="$DOTFILES_DIR/config/iterm2"
# Colors
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo -e "${BLUE}Setting up iTerm2 configuration...${NC}"
# 1. Tell iTerm2 to use custom preferences folder
echo -e "${YELLOW}Configuring iTerm2 to use dotfiles preferences...${NC}"
defaults write com.googlecode.iterm2 PrefsCustomFolder -string "$ITERM_CONFIG_DIR"
defaults write com.googlecode.iterm2 LoadPrefsFromCustomFolder -bool true
# 2. Set specific preferences matching Kitty config
echo -e "${YELLOW}Setting iTerm2 preferences to match Kitty...${NC}"
# Font settings (Iosevka Term SS08, 16pt - matching Kitty)
defaults write com.googlecode.iterm2 "Normal Font" -string "IosevkaTermSS08-Regular 16"
defaults write com.googlecode.iterm2 "Non Ascii Font" -string "FiraCodeNerdFontComplete-Regular 16"
# Enable ligatures
defaults write com.googlecode.iterm2 "ASCII Ligatures" -bool true
# Window size (120x35 characters)
defaults write com.googlecode.iterm2 "Columns" -int 120
defaults write com.googlecode.iterm2 "Rows" -int 35
# Transparency (matching Kitty's 0.92 opacity = 8% transparency)
defaults write com.googlecode.iterm2 "Transparency" -float 0.08
# Scrollback lines (10000)
defaults write com.googlecode.iterm2 "Scrollback Lines" -int 10000
# Visual bell instead of audio
defaults write com.googlecode.iterm2 "Silence Bell" -bool false
defaults write com.googlecode.iterm2 "Visual Bell" -bool true
# Copy on selection
defaults write com.googlecode.iterm2 "Copy to Pasteboard on Selection" -bool true
# Cursor settings
defaults write com.googlecode.iterm2 "Cursor Type" -int 0 # Block cursor
defaults write com.googlecode.iterm2 "Blinking Cursor" -bool true
echo -e "${GREEN}✅ iTerm2 preferences configured${NC}"
echo ""
echo -e "${YELLOW}To complete the setup:${NC}"
echo "1. Open iTerm2"
echo "2. Go to Preferences > Profiles > Colors"
echo "3. Click 'Color Presets...' dropdown"
echo "4. Select 'Import...' and choose: $ITERM_CONFIG_DIR/Nord.itermcolors"
echo "5. Select 'Nord' from the Color Presets dropdown"
echo ""
echo "Optional: Export your full iTerm2 config:"
echo " Preferences > General > Preferences"
echo " Click 'Save settings to Folder' and choose: $ITERM_CONFIG_DIR"
-864
View File
@@ -1,864 +0,0 @@
# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
print_info() {
info title
info underline
info "OS" distro
info "Host" model
info "Kernel" kernel
info "Uptime" uptime
info "Packages" packages
info "Shell" shell
info "Resolution" resolution
info "DE" de
info "WM" wm
info "WM Theme" wm_theme
info "Theme" theme
info "Icons" icons
info "Terminal" term
info "Terminal Font" term_font
info "CPU" cpu
info "GPU" gpu
info "Memory" memory
# info "GPU Driver" gpu_driver # Linux/macOS only
# info "CPU Usage" cpu_usage
# info "Disk" disk
# info "Battery" battery
# info "Font" font
# info "Song" song
# [[ "$player" ]] && prin "Music Player" "$player"
# info "Local IP" local_ip
# info "Public IP" public_ip
# info "Users" users
# info "Locale" locale # This only works on glibc systems.
info cols
}
# Title
# Hide/Show Fully qualified domain name.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --title_fqdn
title_fqdn="off"
# Kernel
# Shorten the output of the kernel function.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --kernel_shorthand
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
#
# Example:
# on: '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="on"
# Distro
# Shorten the output of the distro function
#
# Default: 'off'
# Values: 'on', 'tiny', 'off'
# Flag: --distro_shorthand
# Supports: Everything except Windows and Haiku
distro_shorthand="off"
# Show/Hide OS Architecture.
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --os_arch
#
# Example:
# on: 'Arch Linux x86_64'
# off: 'Arch Linux'
os_arch="on"
# Uptime
# Shorten the output of the uptime function
#
# Default: 'on'
# Values: 'on', 'tiny', 'off'
# Flag: --uptime_shorthand
#
# Example:
# on: '2 days, 10 hours, 3 mins'
# tiny: '2d 10h 3m'
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="on"
# Memory
# Show memory pecentage in output.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --memory_percent
#
# Example:
# on: '1801MiB / 7881MiB (22%)'
# off: '1801MiB / 7881MiB'
memory_percent="off"
# Change memory output unit.
#
# Default: 'mib'
# Values: 'kib', 'mib', 'gib'
# Flag: --memory_unit
#
# Example:
# kib '1020928KiB / 7117824KiB'
# mib '1042MiB / 6951MiB'
# gib: ' 0.98GiB / 6.79GiB'
memory_unit="mib"
# Packages
# Show/Hide Package Manager names.
#
# Default: 'tiny'
# Values: 'on', 'tiny' 'off'
# Flag: --package_managers
#
# Example:
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
# tiny: '908 (pacman, flatpak, snap)'
# off: '908'
package_managers="on"
# Shell
# Show the path to $SHELL
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --shell_path
#
# Example:
# on: '/bin/bash'
# off: 'bash'
shell_path="off"
# Show $SHELL version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --shell_version
#
# Example:
# on: 'bash 4.4.5'
# off: 'bash'
shell_version="on"
# CPU
# CPU speed type
#
# Default: 'bios_limit'
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
# Flag: --speed_type
# Supports: Linux with 'cpufreq'
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
speed_type="bios_limit"
# CPU speed shorthand
#
# Default: 'off'
# Values: 'on', 'off'.
# Flag: --speed_shorthand
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
#
# Example:
# on: 'i7-6500U (4) @ 3.1GHz'
# off: 'i7-6500U (4) @ 3.100GHz'
speed_shorthand="off"
# Enable/Disable CPU brand in output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_brand
#
# Example:
# on: 'Intel i7-6500U'
# off: 'i7-6500U (4)'
cpu_brand="on"
# CPU Speed
# Hide/Show CPU speed.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_speed
#
# Example:
# on: 'Intel i7-6500U (4) @ 3.1GHz'
# off: 'Intel i7-6500U (4)'
cpu_speed="on"
# CPU Cores
# Display CPU cores in output
#
# Default: 'logical'
# Values: 'logical', 'physical', 'off'
# Flag: --cpu_cores
# Support: 'physical' doesn't work on BSD.
#
# Example:
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
# off: 'Intel i7-6500U @ 3.1GHz'
cpu_cores="logical"
# CPU Temperature
# Hide/Show CPU temperature.
# Note the temperature is added to the regular CPU function.
#
# Default: 'off'
# Values: 'C', 'F', 'off'
# Flag: --cpu_temp
# Supports: Linux, BSD
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
# coretemp kernel module. This only supports newer Intel processors.
#
# Example:
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="off"
# GPU
# Enable/Disable GPU Brand
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gpu_brand
#
# Example:
# on: 'AMD HD 7950'
# off: 'HD 7950'
gpu_brand="on"
# Which GPU to display
#
# Default: 'all'
# Values: 'all', 'dedicated', 'integrated'
# Flag: --gpu_type
# Supports: Linux
#
# Example:
# all:
# GPU1: AMD HD 7950
# GPU2: Intel Integrated Graphics
#
# dedicated:
# GPU1: AMD HD 7950
#
# integrated:
# GPU1: Intel Integrated Graphics
gpu_type="all"
# Resolution
# Display refresh rate next to each monitor
# Default: 'off'
# Values: 'on', 'off'
# Flag: --refresh_rate
# Supports: Doesn't work on Windows.
#
# Example:
# on: '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="off"
# Gtk Theme / Icons / Font
# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --gtk_shorthand
#
# Example:
# on: 'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="off"
# Enable/Disable gtk2 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk2
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Adwaita [GTK3]'
gtk2="on"
# Enable/Disable gtk3 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk3
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Numix [GTK2]'
gtk3="on"
# IP Address
# Website to ping for the public IP
#
# Default: 'http://ident.me'
# Values: 'url'
# Flag: --ip_host
public_ip_host="http://ident.me"
# Public IP timeout.
#
# Default: '2'
# Values: 'int'
# Flag: --ip_timeout
public_ip_timeout=2
# Desktop Environment
# Show Desktop Environment version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --de_version
de_version="on"
# Disk
# Which disks to display.
# The values can be any /dev/sdXX, mount point or directory.
# NOTE: By default we only show the disk info for '/'.
#
# Default: '/'
# Values: '/', '/dev/sdXX', '/path/to/drive'.
# Flag: --disk_show
#
# Example:
# disk_show=('/' '/dev/sdb1'):
# 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
#
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/')
# Disk subtitle.
# What to append to the Disk subtitle.
#
# Default: 'mount'
# Values: 'mount', 'name', 'dir', 'none'
# Flag: --disk_subtitle
#
# Example:
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
#
# mount: 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
#
# dir: 'Disk (/): 74G / 118G (66%)'
# 'Disk (Local Disk): 74G / 118G (66%)'
# 'Disk (Videos): 74G / 118G (66%)'
#
# none: 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
disk_subtitle="mount"
# Disk percent.
# Show/Hide disk percent.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --disk_percent
#
# Example:
# on: 'Disk (/): 74G / 118G (66%)'
# off: 'Disk (/): 74G / 118G'
disk_percent="on"
# Song
# Manually specify a music player.
#
# Default: 'auto'
# Values: 'auto', 'player-name'
# Flag: --music_player
#
# Available values for 'player-name':
#
# amarok
# audacious
# banshee
# bluemindo
# clementine
# cmus
# deadbeef
# deepin-music
# dragon
# elisa
# exaile
# gnome-music
# gmusicbrowser
# gogglesmm
# guayadeque
# io.elementary.music
# iTunes
# juk
# lollypop
# mocp
# mopidy
# mpd
# muine
# netease-cloud-music
# olivia
# playerctl
# pogo
# pragha
# qmmp
# quodlibet
# rhythmbox
# sayonara
# smplayer
# spotify
# strawberry
# tauonmb
# tomahawk
# vlc
# xmms2d
# xnoise
# yarock
music_player="auto"
# Format to display song information.
#
# Default: '%artist% - %album% - %title%'
# Values: '%artist%', '%album%', '%title%'
# Flag: --song_format
#
# Example:
# default: 'Song: Jet - Get Born - Sgt Major'
song_format="%artist% - %album% - %title%"
# Print the Artist, Album and Title on separate lines
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --song_shorthand
#
# Example:
# on: 'Artist: The Fratellis'
# 'Album: Costello Music'
# 'Song: Chelsea Dagger'
#
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
song_shorthand="off"
# 'mpc' arguments (specify a host, password etc).
#
# Default: ''
# Example: mpc_args=(-h HOST -P PASSWORD)
mpc_args=()
# Text Colors
# Text Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --colors
#
# Each number represents a different part of the text in
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
#
# Example:
# colors=(distro) - Text is colored based on Distro colors.
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)
# Text Options
# Toggle bold text
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bold
bold="on"
# Enable/Disable Underline
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --underline
underline_enabled="on"
# Underline character
#
# Default: '-'
# Values: 'string'
# Flag: --underline_char
underline_char="-"
# Info Separator
# Replace the default separator with the specified string.
#
# Default: ':'
# Flag: --separator
#
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
separator=":"
# Color Blocks
# Color block range
# The range of colors to print.
#
# Default: '0', '15'
# Values: 'num'
# Flag: --block_range
#
# Example:
#
# Display colors 0-7 in the blocks. (8 colors)
# neofetch --block_range 0 7
#
# Display colors 0-15 in the blocks. (16 colors)
# neofetch --block_range 0 15
block_range=(0 15)
# Toggle color blocks
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --color_blocks
color_blocks="on"
# Color block width in spaces
#
# Default: '3'
# Values: 'num'
# Flag: --block_width
block_width=3
# Color block height in lines
#
# Default: '1'
# Values: 'num'
# Flag: --block_height
block_height=1
# Color Alignment
#
# Default: 'auto'
# Values: 'auto', 'num'
# Flag: --col_offset
#
# Number specifies how far from the left side of the terminal (in spaces) to
# begin printing the columns, in case you want to e.g. center them under your
# text.
# Example:
# col_offset="auto" - Default behavior of neofetch
# col_offset=7 - Leave 7 spaces then print the colors
col_offset="auto"
# Progress Bars
# Bar characters
#
# Default: '-', '='
# Values: 'string', 'string'
# Flag: --bar_char
#
# Example:
# neofetch --bar_char 'elapsed' 'total'
# neofetch --bar_char '-' '='
bar_char_elapsed="-"
bar_char_total="="
# Toggle Bar border
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bar_border
bar_border="on"
# Progress bar length in spaces
# Number of chars long to make the progress bars.
#
# Default: '15'
# Values: 'num'
# Flag: --bar_length
bar_length=15
# Progress bar colors
# When set to distro, uses your distro's logo colors.
#
# Default: 'distro', 'distro'
# Values: 'distro', 'num'
# Flag: --bar_colors
#
# Example:
# neofetch --bar_colors 3 4
# neofetch --bar_colors distro 5
bar_color_elapsed="distro"
bar_color_total="distro"
# Info display
# Display a bar with the info.
#
# Default: 'off'
# Values: 'bar', 'infobar', 'barinfo', 'off'
# Flags: --cpu_display
# --memory_display
# --battery_display
# --disk_display
#
# Example:
# bar: '[---=======]'
# infobar: 'info [---=======]'
# barinfo: '[---=======] info'
# off: 'info'
cpu_display="off"
memory_display="off"
battery_display="off"
disk_display="off"
# Backend Settings
# Image backend.
#
# Default: 'ascii'
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
# Flag: --backend
image_backend="ascii"
# Image Source
#
# Which image or ascii file to display.
#
# Default: 'auto'
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
# Flag: --source
#
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
# In ascii mode, distro ascii art will be used and in an image mode, your
# wallpaper will be used.
image_source="auto"
# Ascii Options
# Ascii distro
# Which distro's ascii art to display.
#
# Default: 'auto'
# Values: 'auto', 'distro_name'
# Flag: --ascii_distro
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
# and IRIX have ascii logos
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
# Use '{distro name}_old' to use the old logos.
# NOTE: Ubuntu has flavor variants.
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
# postmarketOS, and Void have a smaller logo variant.
# Use '{distro name}_small' to use the small variants.
ascii_distro="auto"
# Ascii Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --ascii_colors
#
# Example:
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
ascii_colors=(distro)
# Bold ascii logo
# Whether or not to bold the ascii logo.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --ascii_bold
ascii_bold="on"
# Image Options
# Image loop
# Setting this to on will make neofetch redraw the image constantly until
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --loop
image_loop="off"
# Thumbnail directory
#
# Default: '~/.cache/thumbnails/neofetch'
# Values: 'dir'
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
# Crop mode
#
# Default: 'normal'
# Values: 'normal', 'fit', 'fill'
# Flag: --crop_mode
#
# See this wiki page to learn about the fit and fill options.
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
crop_mode="normal"
# Crop offset
# Note: Only affects 'normal' crop mode.
#
# Default: 'center'
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
# 'east', 'southwest', 'south', 'southeast'
# Flag: --crop_offset
crop_offset="center"
# Image size
# The image is half the terminal width by default.
#
# Default: 'auto'
# Values: 'auto', '00px', '00%', 'none'
# Flags: --image_size
# --size
image_size="auto"
# Gap between image and text
#
# Default: '3'
# Values: 'num', '-num'
# Flag: --gap
gap=3
# Image offsets
# Only works with the w3m backend.
#
# Default: '0'
# Values: 'px'
# Flags: --xoffset
# --yoffset
yoffset=0
xoffset=0
# Image background color
# Only works with the w3m backend.
#
# Default: ''
# Values: 'color', 'blue'
# Flag: --bg_color
background_color=
# Misc Options
# Stdout mode
# Turn off all colors and disables image backend (ASCII/Image).
# Useful for piping into another command.
# Default: 'off'
# Values: 'on', 'off'
stdout="off"
-92
View File
@@ -1,92 +0,0 @@
#!/bin/bash
# 🌙 SwiftBar Plugin: Symbolic Moon Phase Monitor
# Author: GPT + David
# Requires: curl, jq, awk
# Caches data for 6h to reduce API use
API_KEY="6ec71a8170214d828c08ba8bf2ca29e9"
CURL="/usr/bin/curl"
JQ="/usr/bin/jq"
AWK="/usr/bin/awk"
CACHE_FILE="$HOME/.cache/moonphase.json"
STATE_FILE="$HOME/.lunarstate"
MAX_AGE_HOURS=6
mkdir -p "$(dirname "$CACHE_FILE")"
# Check cache freshness
NEEDS_UPDATE=true
if [ -f "$CACHE_FILE" ]; then
MOD_UNIX=$(stat -f "%m" "$CACHE_FILE")
NOW_UNIX=$(date +%s)
AGE_HOURS=$(( (NOW_UNIX - MOD_UNIX) / 3600 ))
[ "$AGE_HOURS" -lt "$MAX_AGE_HOURS" ] && NEEDS_UPDATE=false
fi
# Fetch and cache
if [ "$NEEDS_UPDATE" = true ]; then
MOON_JSON=$($CURL -s "https://api.ipgeolocation.io/astronomy?apiKey=$API_KEY")
echo "$MOON_JSON" > "$CACHE_FILE"
else
MOON_JSON=$(cat "$CACHE_FILE")
fi
# Extract fields
PHASE=$(echo "$MOON_JSON" | $JQ -r '.moon_phase')
ILLUM=$(echo "$MOON_JSON" | $JQ -r '.moon_illumination_percentage' | $AWK '{printf "%.0f", $1}')
MOONRISE=$(echo "$MOON_JSON" | $JQ -r '.moonrise')
MOONSET=$(echo "$MOON_JSON" | $JQ -r '.moonset')
PHASE_LC=$(echo "$PHASE" | tr '[:upper:]' '[:lower:]')
# Ritual glyphs & poetic names
declare -A ICONS=(
["new_moon"]="🌑"
["waxing_crescent"]="🌒"
["first_quarter"]="🌓"
["waxing_gibbous"]="🌔"
["full_moon"]="🌕"
["waning_gibbous"]="🌖"
["last_quarter"]="🌗"
["waning_crescent"]="🌘"
)
declare -A POETIC=(
["new_moon"]="Veiled Mother"
["waxing_crescent"]="Hesitant Flame"
["first_quarter"]="Climbing Eye"
["waxing_gibbous"]="Gathering Tide"
["full_moon"]="Revealed Bride"
["waning_gibbous"]="Harvest Wane"
["last_quarter"]="Parting Mirror"
["waning_crescent"]="Waning Daughter"
)
ICON="${ICONS[$PHASE_LC]:-❓}"
POETIC_NAME="${POETIC[$PHASE_LC]:-Unknown Phase}"
# Direction
ARROW="⬆"
[[ "$PHASE_LC" =~ ^(full_moon|waning_gibbous|last_quarter|waning_crescent)$ ]] && ARROW="⬇"
# Ritual detection
NOTICE=""
if [[ "$PHASE_LC" == "full_moon" ]]; then
NOTICE="☽ FULL RITE ☾"
elif [[ "$PHASE_LC" == "new_moon" ]]; then
NOTICE="☉ NEW SILENCE ☉"
fi
# Output to menubar
echo "$ICON $ARROW ${ILLUM}%"
echo "---"
echo "Phase: $(echo "$PHASE" | tr '_' ' ' | awk '{for (i=1; i<=NF; i++) $i=toupper(substr($i,1,1)) substr($i,2)} 1')"
echo "Poetic: $POETIC_NAME"
echo "Illumination: ${ILLUM}%"
echo "Moonrise: $MOONRISE"
echo "Moonset: $MOONSET"
[ -n "$NOTICE" ] && echo "$NOTICE"
echo "Last updated: $(date -r "$CACHE_FILE" "+%H:%M %Z")"
# Optional: write state file for system rituals
echo "$PHASE_LC,$ILLUM,$POETIC_NAME,$NOTICE" > "$STATE_FILE"