203 lines
8.4 KiB
Org Mode
203 lines
8.4 KiB
Org Mode
* 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
|