* How to set up this configuration ** Automated setup #+begin_src sh bash -c "$(curl -fsSL https://git.meinlschmidt.org/jetpac/dotfiles/raw/branch/main/bootstrap.sh)" #+end_src ** manual setup #+begin_src sh # for linux; ignore on other systems sudo yum update sudo yum install zsh tmux git source .proxies # enter username/password git clone --bare https://git.meinlschmidt.org/jetpac/dotfiles.git ~/.cfg alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' config config --local status.showUntrackedFiles no config checkout source ~/.proxies sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --unattended --skip-chsh --keep-zshrc" git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim vim +PlugInstall +qall zsh # run tmux, prefix + I installs all plugins (needs to have proxies set) # run vim, :PlugInstall # download and unpack dotfiles from my git #+end_src ** iterm *** defines dynamic profile for tmux keys usage - profile sits in `Library/Application Support/iTerm2/DynamicProfiles/dynamic_profile.json` - this profile inherits from Default profile - automatically appears in profiles; set it as default and you should be going - TODO - table of defined keys ** BetterTouchTool Presets are stored as uncompressed JSON exports in =~/.config/bettertouchtool/=. Ansible installs BetterTouchTool and checks out dotfiles on initial setup; it does not import or continuously synchronize BTT settings. BTT continues to own its live configuration. *** Restore on a new Mac 1. Install and start BetterTouchTool, activate your licence separately, and grant the macOS permissions requested by BTT. 2. If BTT already has configuration you want to keep, export those presets before importing anything from dotfiles. 3. Open the Presets interface (top-right preset button) and import =Default.bttpreset= from =~/.config/bettertouchtool/=. Use Cmd+Shift+G in the file picker to enter this hidden directory. This export includes BTT's exportable general settings, including window move/resize preferences. Allow importing these settings when prompted. 4. Import =clipboard.bttpreset=, =BTT Clipboard Manager.bttpreset= and =btt-mobile-example.bttpreset= from the same directory. These exports do not include general settings. 5. Select the imported =Default= as the master preset and enable all four imported presets to reproduce the source setup. Avoid keeping duplicate copies enabled; if a preset with the same name already exists, review the import/replacement prompt rather than blindly adding another copy. 6. Check the window move/resize preferences and test them on an ordinary window. Test a configured browser gesture (for example, a Firefox TipTap gesture), and check the clipboard manager and mobile menus if you use them. Clipboard history is not restored. The snapshot was exported from BTT 5.750 on 2026-09-25. The source master is =Default= (activation state 2); =clipboard=, =BTT Clipboard Manager= and =btt-mobile-example= have activation state 1. The =clipboard= preset currently contains app scopes but no triggers; it is retained to preserve the setup. *** Update the exports After changing BTT settings, export the affected presets again from BTT's Presets interface to the same filenames. Choose uncompressed JSON; include general settings only in =Default.bttpreset=. Re-export =Default= when changing general preferences, even if no shortcuts changed. Preserve the names above and update this section if the master or enabled presets change. Before adding exports to Git, review the diff for passwords, API keys, private paths, typed-text actions and scripts. Remove =BTTFloatingMenuRenderedPreview= fields from JSON exports: these are cached menu snapshots, not configuration. Validate the resulting JSON, for example: #+begin_src sh python3 -m json.tool ~/.config/bettertouchtool/Default.bttpreset >/dev/null config diff -- .config/bettertouchtool README.org #+end_src New files must be added explicitly with the existing =config= Git alias. Exports may receive new preset UUIDs, so inspect import prompts on subsequent restores and ensure only one intended copy of each preset is enabled. Do not add BTT's Application Support directory, preferences plist, clipboard database, licences, automatic backups or user-variable stores to Git. *** Portability notes - App-specific bindings target iTerm2, Finder, Firefox and Microsoft Edge; install the relevant apps before testing those bindings. The mobile example also includes Safari actions. Hardware-specific gestures and window geometry may need adjustment for a different keyboard, pointing device or display. - No user-specific absolute paths were found in these exports. The mobile example contains JavaScript menu widgets and a =say hello= shell action; import only trusted presets and review scripts before enabling them. - Two custom mobile-menu images are already absent from the source Mac: =AE909FCE-DACE-4774-823D-36F7C2864EB5-BTTMenuItemImage.png= and =ED4B7AB4-D7E6-474C-B4A4-7BDCA93F25DB-BTTMenuItemImage.png=. Their =BTT_PRESET_PATH= references remain in the export, but those icons cannot be restored from this snapshot. Re-select images in BTT if needed. - Cached rendered menu previews are intentionally omitted. The clipboard presets contain configuration only, not copied text or clipboard history. See [[https://docs.folivora.ai/docs/configuration/presets][BTT's preset documentation]] for export/import behaviour. ** fonts For iTerm on mac, the preferred fonts are installed automatically. You can also download fonts like this: #+begin_src bash wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf #+end_src ** Emacs #+begin_src bash git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d #+end_src Run Emacs and wait ~10 mins to download all packages ** tmux in User's home directory If you want to build tmux independend of other parts of the system, cut&paste from the code snippet below should do the trick. run export PATH=$HOME/usr/local:$PATH to pick up correct libraries and binaries #+begin_src bash #!/usr/bin/env bash set -e set -x BUILD_DIR=$HOME/usr/local mkdir -p $BUILD_DIR cd $BUILD_DIR/src curl https://ftp.acc.umu.se/mirror/gnu.org/gnu/m4/m4-1.4.19.tar.gz --output m4-1.4.19.tar.gz tar xzvf m4-1.4.19.tar.gz; cd m4-1.4.19 ./configure --prefix=$BUILD_DIR make install cd $BUILD_DIR curl https://ftp.acc.umu.se/mirror/gnu.org/gnu/autoconf/autoconf-2.72.tar.gz --output autoconf-2.72.tar.gz tar xvzf autoconf-2.72.tar.gz cd $BUILD_DIR/src/autoconf-2.72 ./configure --prefix=$BUILD_DIR make install curl https://ftp.acc.umu.se/mirror/gnu.org/gnu/automake/automake-1.16.5.tar.gz --output automake-1.16.5.tar.gz tar xvzf automake-1.16.5.tar.gz cd $BUILD_DIR/src/automake-1.16.5 ./configure --prefix=$BUILD_DIR make install curl https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.gz -o libtool-2.4.7.tar.gz tar xvzf libtool-2.4.7.tar.gz cd $BUILD_DIR/src/libtool-2.4.7 ./configure --prefix=$BUILD_DIR make install #pkg-config curl https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz -o pkg-config-0.29.2.tar.gz tar xvzf pkg-config-0.29.2.tar.gz cd $BUILD_DIR/src/pkg-config-0.29.2 ./configure --prefix=$BUILD_DIR --with-internal-glib cd $BUILD_DIR/src git clone https://github.com/libevent/libevent.git -b master cd libevent ./autogen.sh ./configure --prefix=$BUILD_DIR # utf8proc cd $BUILD_DIR/src git clone --depth 1 https://github.com/JuliaStrings/utf8proc.git -b v2.9.0 cd utf8proc sed -i '' 's/^prefix=\/usr\/local/prefix=\$(HOME)\/usr\/local/' Makefile make prefix=$BUILD_DIR cd $BUILD_DIR/src git clone --depth 1 --branch 3.3a https://github.com/tmux/tmux.git cd $BUILD_DIR/src/tmux ./autogen.sh ./configure --prefix=$BUILD_DIR --enable-utf8proc make -j7 make install #+end_src