dotfiles/README.md

3.3 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
  • 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 useful menu bar anywhere and no border. Just windows with gaps between them when multiple windows are on the same screen.

I added to the classic Arch/i3WM :

  • A notification daemon (urgency-aware), Dunst, controlled by shortcut (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 : /usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME checkout.
  • Adjust DEFAUT_USER in ~/.zshrc.
  • 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).

Credits to this great article for the trick.