Skip to content

Dev environment config & utilities - sublime text, i3, zsh etc.

Notifications You must be signed in to change notification settings

enerqi/dotfiles

Repository files navigation

dotfiles

Clone to existing home directory

  • git clone https://github.com/enerqi/dotfiles.git tempdir; mv tempdir/.git ~; rm -rf temp-dir; cd ~; git checkout .

ZSH Setup

With these dotfiles

  • Install zsh with your package manager
  • Install zgenom zsh plugin manager from Git:
git clone https://github.com/jandamm/zgenom.git "${HOME}/.zgenom"
  • Install starship shell prompt tool (see cargo commands below)
  • Install zoxide i.e.
curl -sS https://webinstall.dev/zoxide | bash

Then add local machine specific definitions as desired:

.zshrc.local
.profile  (graphical login environment variables)
.xinitrc/.xsession (running graphical programs)
.zprofile.local (login shells - rarely needed)
  • For programs started by the desktop manager and not the interactive shell process hierarachy, such as sublime-text, use ~/.profile to setup the environment variables. .xsessionrc maybe a better approved way to do this.
  • .zprofile / ~/.zprofile.local shouldn't change the key bindings, aliases, functions or shell options but could set the PATH for non-interactive or login commandline programs.
  • .xinitrc (startx) / .xsession (xdm) run window manager independent programs after graphical login. Window manager specific scripts could also be used.

Assorted Development Tools

Some mentioned above and below.

  • apt install git zsh build-essential libsensors-dev libssl-dev cmake clang pkg-config postgresql-client
    • git config --global credential.helper cache
  • apt install openvpn feh font-font-awesome
  • LLVM install script for Apt
  • libs for compiling more things e.g apt install libsdl2-dev libpulse-dev libnotmuch_dev libssl-dev libpipewire-0.3-dev
  • mise for python/node etc. version management on Linux
    • mise use -g python@3.11.9 or mise use -g node@lts etc.
  • fzf fuzzy finder from git or os packages
  • sublime text / sublime merge apt packages
  • docker binaries - apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    • [permission issue](permission
    • apt install python3-setuptools if missing distutils problem with docker compose commands
  • rustup
    • cargo install cargo-binstall
    • cargo binstall -y alacritty + startship + zoxide + bat
  • install some sync service, e.g. tresorit
  • firefox sync for custom settings and extensions
  • chrome plus ublock origin extension for commonly used browser dev tools

Window Manager Setup

  • install i3 window manager >= v4.20
    • i3wm i3lock-fancy i3blocks (not i3 meta package as we want the rust status bar)
    • a copy of i3status-rs is already in ~/bin but a recent version could be compiled with rust (cargo install i3status-rs; cp ~/.cargo/bin/i3status-rs ~/bin)
  • install v0.13+ of alacritty terminal manager (i.e. with rust cargo binstall alacritty)
  • install nerd fonts by tweaking/running ~/bin/fetch-fonts.sh
    • fc-list to check font names used in .config/i3/config and .config/alacritty/alacritty.toml
  • apt install compton pavucontrol (compositor for transparency etc., sound panel control)

Sublime Text Setup

With a fresh sublime install

  • install package control from the sublime command pallette

After that we are going back to (manually) using a sync service (e.g. Dropbox, Tresorit, One Drive etc.) as the formerly useful SyncSettings sublime package is (currently in 2024) unmaintained and not working.

Sync %USERPROFILE%/AppData/Roaming/Roaming/Sublime Text/Packages (windows) to another machine. E.g. on Linux:

cd ~
ln -s ~/.config/sublime-text/Packages sublime-packages

Delete/move existing files and then you can sync into ~/sublime-packages.

Might need to hard link (e.g. mklink /H) "Default (Windows).sublime-keymap" to "Default (Linux).sublime-keymap"

About

Dev environment config & utilities - sublime text, i3, zsh etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published