Skip to content

Latest commit

 

History

819 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Personal dotfiles and system configurations for Wayland/Sway desktop environment, Doom Emacs, Zsh, and development tools.

Installation & Onboarding

git clone git@github.com:cashpw/dotfiles.git ~/proj/dotfiles
cd ~/proj/dotfiles
./install

The ./install bootstrapper executes a 3-phase onboarding pipeline:

  1. **Dependency Resolution**: Queries system programs and fonts against packages.json. Automatically detects your OS (Fedora, Debian/gLinux, etc.) and generates single, ready-to-run joint package manager commands (chaining custom repos like Fedora COPR when necessary).
  2. **Configuration Symlinking**: Executes Dotbot to cleanly symlink configuration files (.zshrc, ~/.config/sway/, ~/.config/zsh/, etc.).
  3. **Post-Installation Setup**: Automatically configures profile-specific settings (Work vs Personal), builds Zotra Server for Emacs Org-Roam, and sets up Voxtype models.

Dependency & Program Management

System dependencies, fonts, binary aliases, and per-program preferred installation channels are defined in packages.json.

Useful Commands

  • Check missing system dependencies without installing:
    ./install --check-only
        
  • Interactively execute missing package installations:
    ./install --install
        
  • View detailed documentation and notes for any program or font:
    ./install info i3status-rs
    ./install info autotiling-rs
    ./install info swaync
        

Wayland / Sway Environment Setup

Shell & Environment Variables

Set Zsh as your default login shell:

chsh -s $(which zsh)

Ensure environment variables are set in ~/.profile or ~/.zshrc:

export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_TYPE=wayland
export MOZ_ENABLE_WAYLAND=1
export QT_QPA_PLATFORM=wayland

Systemd User Services Setup

Enable user-level systemd target and notification services:

systemctl --user daemon-reload
systemctl --user enable --now sway-session.target
systemctl --user enable --now notify-listener.service
systemctl --user enable --now notify-tunnel.service

Email Setup (Lieer / Notmuch)

Lieer (gmi) is used to synchronize Gmail repositories locally into Notmuch-indexed maildirs.

1. Create Mail Directories

mkdir -p ~/mail/cashbweaver.gmail
mkdir -p ~/mail/cash.cashpw

2. Initialize & Authenticate Accounts

Personal Gmail (cashbweaver.gmail)

cd ~/mail/cashbweaver.gmail
gmi init
gmi auth
gmi sync

Personal Domain (cash.cashpw)

cd ~/mail/cash.cashpw
gmi init
gmi auth
gmi sync

3. Configure Notmuch Indexer

Run initial Notmuch database setup pointing to your ~/{mail_dir}:

notmuch setup
notmuch new

4. Automatic Mail Syncing

Execute the provided helper scripts or configure them via cron/systemd timers for periodic background mail syncing:

bash scripts/mail/sync_cashbweaver_gmail_email.sh
bash scripts/mail/sync_cash_cashpw_email.sh
# or generic wrapper:
bash scripts/mail/sync_local_email.sh cashbweaver.gmail

About

Personal dotfiles

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages