dotfiles/README.md

4.1 KiB

dotfiles

Contents

Setup for :

  • i3, a great tiling windows manager
    • In fact i3-gaps, to add padding between windows
    • And i3-lock-color, an improved lock screen
  • LightDM with custom GTKTheme and background
  • Sublime Text 3
  • Polybar, a great replacement for i3-bar with easy custom plugins
  • Terminator
  • ZSH with Oh My ZSH!
  • Dunst, a great and lightweight notification daemon
  • Rofi, a full-customizable app launcher/windows switcher
  • Sound setup (total beginner there btw) :
    • JACK, a sound server, without PA support ;
    • PianoTeq, a virtual synth ;
    • Cadence and Claudia, JACK and LADISH front-ends ;
    • Non-Mixer, a mixer.
    • Ardour, a DAW.
  • Random things (GTK3+ theme, Redshift, taskwarrior...)

Requirements

Configuration makes use of these things, just to record but not mandatory :

What is this, Chosto ?

I used a lot Debian/Ubuntu with Gnome. So a full Desktop Manager with a stacking Windows Manager. A friend of mine showed me i3, a great and customizable tiling Windows Manager (i.e. no windows stack, just divide the scren and take all empty space).

With some customization and additionnal component (in this repo), I managed to get a functional and pleasant yet lightweight environment (for me, no brag).

So basically, what I like about this setup is that there is no "useless" menu bar anywhere and no border. Just windows with gaps between them when multiple windows are on the same screen, and keybord shortcuts for productivity.

I added to the classic Arch/i3WM :

  • A notification daemon (urgency-aware), Dunst, controlled by shortcuts (but possibly with mouse).
  • A fancy lock screen, with optionnal suspend-to-RAM, either triggered by hotkey or when there is no activity for X minutes.
  • A Display Manager (LightDM), for login and X starting.
  • A great File Explorer (SpaceFM), with hotkey / command-line / screen-split / protocol handlers / events support.
  • ZSH with Oh My ZSH and excellent community plugins (Git aliases, Docker autocomplete, FASD bindings, cat and man coloration...)
  • Some mappings to control ALSA volume from dedicated keyboards buttons, to play/plause players compatible with MPRIS D-Bus Interface spec ; some changes to key speed (X settings) ; Smooth and dark theme for GTK and for Sublime-Text...

Usage

Please note : on my system XDG_CONFIG_HOME is $HOME/.config.

  • Clone in bare repository : git clone --bare https://github.com/Chostakovitch/dotfiles.git $HOME/.cfg. A bare repository does not have a working tree (basically it is just .git content). So we avoid conflicts with another git repository.
  • Create a working tree outside .cfg : git --git-dir=$HOME/.cfg/ --work-tree=$HOME checkout.
  • Adjust DEFAUT_USER in ~/.zshrc.
  • Adjust other environment variables, such as SCREENSHOT_PATH.
  • Source ~/.zshrc and use provided config alias to pull.
  • config config --local status.showUntrackedFiles no to ignore untracked files in status (better as it is home dir).

Also, as desktop machine and laptop don't have configuration conflicts (e.g. laptop uses PulseAudio and desktop uses ALSA/Jack), some files have .desk extension and others .laptop. Launch ~/.init_config.sh to create symlinks (e.g. ~/.config/i3/config will be symlinked to ~/.config/i3/config.laptop if I launch ~/.init_config.sh laptop).

Credits to this great article for the trick.