The dotfiles that compile just about everything I need in a machine.
Make sure these directories exist in the home folder:
.bin/
(custom scripts)Bookshelf/
(books, articles)Development/
(programming)Documents/
Downloads/
Dropbox/
Pictures/
Transmission/
(torrents)Videos/
- GPG Public & Secret Keys (gpg)
mbsyncrc
(mail)~/.emacs.d/lisp/.authinfo.gpg
(magit, mu4e).secrets.el
(spotifyd)spotifyd.conf
(spotifyd)
- Arch: pacman
- AUR: yay
sudo pacman -S base-devel
git clone https://aur.archlinux.org/yay-git.git
cd yay-git
makepkg -si
- Debian: apt
- macOS: brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
eval "$(/opt/homebrew/bin/brew shellenv)"
- Install
emacs
,git
,gpg
,pass
,stow
,zsh
git clone https://github.com/maxminoS/.dotfiles
- Stow, at the least, the following packages:
git
,zsh
,bash
- Restart for environment variables to take effect
git clone https://github.com/maxminoS/.emacs.d
- Install Dropbox (org-mode)
- Import GPG Keys
gpg --import <key_file>
cd ~/.local/share/
then clone.password-store/
- Install
git
git clone https://github.com/maxminoS/.dotfiles
sh brew.sh
thensh .macos
- Stow required packages, at least
git
andzsh
- Restart for environment variables to take effect
git clone https://github.com/maxminoS/.emacs.d
- Add Emacs to have full file access (dired)
- Import GPG Keys
gpg --import <key_file>
cd ~/.local/share/
then clone.password-store/
Upgrade Emacs with: brew reinstall
- Set the appropriate usernames:
git config --global user.name "maxminoS"
git config --global user.email "email@address.com"
- Create Personal Access Tokens and store them as
~/.emacs.d/lisp/.authinfo.gpg
# -*- epa-file-encrypt-to: ("gpg@email.com") -*-
machine api.github.com login <username>^forge password <token>
machine gitlab.com/api/v4 login <username>^forge password <token>
Install: cmake
, libtool-bin
, libvterm[-dev]
- Install
mu
(includingmu4e
) andisync
- Add email authentication to
~/.emacs.d/lisp/.authinfo.gpg
# -*- epa-file-encrypt-to: ("gpg@email.com") -*-
...
machine smtp.gmail.com login <email@address.com> password <password> port 465
- Create appropriate
~/.config/isync/mbsyncrc
# Account: email1@address.com
# Full Name: Your F. Name
# SMTP smtp.gmail.com
IMAPAccount <username1>-gmail
Host imap.gmail.com
User email1@address.com
PassCmd "pass Mail/email1\@address.com"
SSLType IMAPS
# Linux
CertificateFile /etc/ssl/certs/ca-certificates.crt
# macOS
CertificateFile /usr/local/etc/openssl/cert.pem
AuthMechs PLAIN
# Remote
IMAPStore <username1>-gmail-remote
Account <username1>-gmail
# Local
MaildirStore <username1>-gmail-local
Subfolders Verbatim
Path ~/.config/mail/email1@address.com/
Inbox ~/.config/mail/email1@address.com/Inbox
# Channels
Channel <username1>-gmail-inbox
Far :<username1>-gmail-remote:
Near :<username1>-gmail-local:
Patterns "Inbox"
Create Both
SyncState *
Channel <username1>-gmail-sent
Far :<username1>-gmail-remote:"[Gmail]/Sent Mail"
Near :<username1>-gmail-local:"Sent"
Create Both
SyncState *
Channel <username1>-gmail-trash
Far :<username1>-gmail-remote:"[Gmail]/Trash"
Near :<username1>-gmail-local:"Trash"
Create Both
SyncState *
Channel <username1>-gmail-all
Far :<username1>-gmail-remote:"[Gmail]/All Mail"
Near :<username1>-gmail-local:"All"
Create Both
SyncState *
Channel <username1>-gmail-starred
Far :<username1>-gmail-remote:"[Gmail]/Starred"
Near :<username1>-gmail-local:"Starred"
Create Both
SyncState *
# Group
Group <username1>-gmail
Channel <username1>-gmail-inbox
Channel <username1>-gmail-sent
Channel <username1>-gmail-trash
Channel <username1>-gmail-all
Channel <username1>-gmail-starred
# Account: email2@address.com
...
- Make the appropriate email directories in
~/.config/mail
mbsync -a
- Initialize
mu
mu init --maildir=~/.config/mail \ --my-address=EMAIL_ADDRESS_1 \ --my-address=EMAIL_ADDRESS_2 mu index
- Install
spotifyd
- Set spotifyd configuration in
~/.config/spotifyd/spotifyd.conf
[global]
username = ""
password = ""
backend = "" # Check =spotifyd -h= to search available backends
device_name = ""
device_type = "computer"
bitrate = 320
- Set spotify client ID and secret in
~/.emacs.d/lisp/.secret.el
(setq emax/spotify-client-id "<client-id>")
(setq emax/spotify-client-secret "<client-secret>")
- Make launch at startup
M-x all-the-icons-install-fonts
- Install
unzip
(nov.el)
- Linux:
gcc
,g++
,automake
,autoconf
,libpng-dev
,zlib1g-dev
,libpoppler-glib-dev
,libpoppler-private-dev
,imagemagick
- macOS:
brew install poppler automake
andexport PKG_CONFIG_PATH=/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig
Yabai is a tiling window manager for macOS. Paired with skhd, window management can be handled using only the keyboard.
You may need to disable the System Integrity Protection for Yabai (in Recovery Mode)
csrutil disable --with kext --with dtrace --with nvram --with basesystem
brew install koekeishiya/formulae/yabai
sudo yabai --install-sa
brew services start yabai
brew install koekeishiya/formulae/skhd
brew services start skhd
stow <packages>
dotfiles directory to stow listed packages- Each package must be in the appropriate directory structure
stow -D <packages>
to unlink packages
- List keys:
gpg -k
- Export keys:
gpg -o public-key.gpg --export --armor --key email@address.com
gpg -o secret-key.gpg --export-secret-key --armor email@address.com
- Import keys:
gpg --import <key_file>
- New session:
tmux new -s <session>
- Kill session:
tmux kill-ses -t <session>
- Attach session:
tmux a -t <session>
- List session:
tmux ls
- Rename session:
C-x $
- Detach:
C-x d
- Copy mode:
C-x <SPC>
- Previous/Next session:
C-x (/)
- Previous/Next window:
C-x p/n
- Split/Vsplit window:
C-x s/v
- New window:
C-x t
- Rename window:
C-x r
- Configs:
tmux show-options [-g|s|w]
stow images (links it to ~/Pictures/images)
# For EXWM
sudo mkdir /usr/share/backgrounds
sudo ln -sF ~/Pictures/images /usr/share/backgrounds
Control, Meta, and super keys are only Emacs notations
C
- Control (bound to fn)M
- Options
- CommandCapsLock
- Esc
Three Finger Swipe Up
- Mission ControlThree Finger Swipe Down
- Current Application WindowsThree Finger Swipe Left/Right
- Switch workspacesTwo Finger Swipe Left from Right Fringe
- Notification Center
Option-<1-9>
- Switch to workspace <1-9>Option-Shift-Return
- Screenread selectionControl-Space
- Switch input sourceCommand-Space
- Search Spotlight
Control-F2
- Focus menu barControl-F3
- Focus dockControl-F4
- Move to next windowControl-F8
- Focus status menu
(Command-Shift-x
to clipboard)
3
- Entire screen4
- Selected area5
- Change screenshot/recording options6
- Touch bar
Add Control to save screenshots as a file
Option-Shift-<1-9>
- Move window to SpaceOption-<h/j/k/l>
- Focus left/down/up/right windowOption-<Left/Down/Up/Right>
- Swap windowOption/Control-Shift-<Left/Down/Up/Right>
- Increase/Decrease window sizeOption-=
- Balance window sizeOption-F
- Toggle fullscreenOption-P
- Pop in/outControl-F12
- Open URL in clipboard in mpv
In macOS, its Terminal emulator may be enough without Alacritty.
Preferences > Profiles > Import > macos/*.terminal
App | Arch | macOS |
pacman -S | brew install | |
git | git | git |
gpg | gnupg | gnupg |
stow | stow | stow |
zsh | zsh | Installed |
pass | pass | pass |
unzip | unzip | Installed |
vim | vim | Installed |
ffmpeg | ffmpeg | ffmpeg |
htop | htop | htop |
neofetch | neofetch | neofetch |
wget | wget | wget |
curl | curl | Installed |
python | python | python |
node | nodejs | node |
npm | npm | node |
yarn | yarn | yarn |
typescript | npm i -g | typescript |
go | go | go |
picom | picom | Not macOS |
cmake | cmake | cmake |
libtool | libtool | libtool |
libvterm | libvterm | libvterm |
mu | yay mu | mu |
isync | isync | isync |
spotifyd | spotifyd | spotifyd |
youtube-dl | youtube-dl | youtube-dl |
windscribe | yay windscribe-cli | windscribe |
gcc | gcc | gcc |
automake | automake | automake |
autoconf | autoconf | autoconf |
libpng | libpng | libpng |
zlib | zlib | zlib |
imagemagick | imagemagick | imagemagick |
poppler | poppler | poppler |
coreutils | Installed | coreutils |
moreutils | Installed | moreutils |
findutils | Installed | findutils |
gnu-sed | Installed | gnu-sed |
grep | Installed | grep |
openssh | Installed | openssh |
ssh-copy-id | Installed | ssh-copy-id |
brew tap d12frosted/emacs-plus
brew install emacs-plus --with-imagemagick --with-no-frame-refocus --with-native-comp --with-modern-doom3-icon --with-poll
App | Arch | macOS |
pacman -S | brew install –cask | |
chrome | yay google-chrome | google-chrome |
firefox | firefox | firefox |
tor | torbrowser-launcher | tor-browser |
pcmanfm | pcmanfm-gtk3 | Not macOS |
alacritty | alacritty | alacritty |
xterm | xterm | Not macOS |
spotify | yay spotify | spotify |
dropbox | yay dropbox | dropbox |
discord | discord | discord |
feh | feh | Not macOS |
mpv | mpv | mpv |
vlc | vlc | vlc |
gimp | gimp | gimp |
inkscape | inkscape | inkscape |
qbittorrent | qbittorrent | qbittorrent |
zoom | Not Linux | zoom |
warp | Not Linux | cloudflare-warp |