/dotfiles

My .dotfiles

Primary LanguageShellMIT LicenseMIT

README

This is a collection of my personal dotfiles. Feel free to use them in any way you like. The git-prompt.sh is under the somewhat viral GNU GPL license, but the rest of this stuff can be used freely under the terms of the MIT license. You are not obliged to contribute your changes back to me if you don't like, but you are certainly welcome to submit PR:s if you find things you can improve on here.

These dotfiles have served me well on both macOS and Linux (Debian and Ubuntu). I also use them on msys2 on Windows.

How to use

  1. cd ~/git && git clone git@github.com:perlun/dotfiles.git
  2. ./install.sh
  3. Restart your shell. You should now have a colourful prompt, among other nice features. If nothing seems to have been loaded, you might have to enable "Run command as login shell" (which is not enabled by default in e.g. the GNOME Terminal)

Optional steps

  1. Optional: If you use the nano editor, you might find it useful to install my custom .nanorc which sets up syntax highlighting for certain file types:

    $ rm -f ~/.nanorc && ln -sf git/dotfiles/nanorc ~/.nanorc
  2. Optional: If you have secrets in your profile that you do not wish to revision-control (e.g. environment variables with passwords or API keys), place them in a separate file named ~/.profile_secrets. It will be automatically picked up and loaded if it exists.

Recommended tools (GNU/Linux)

  • Debian testing or unstable, to get good, recent versions of the software I need for work and play. At the moment, I'm actually using stable (buster) since it was released recently enough.
  • pg_hba.ctl settings, to make URLs like postgres://localhost/foo_database work for any local user. Caveat: not secure for customer/multi-user environments.
  • quicktile for some incredibly nice Spectacle-like tiling features for X11.
  • CopyQ as clipboard manager. Very useful when copying an image and some text at the same time, e.g. when articulating a Slack message.
  • Cinnamon is the desktop environment I prefer: sudo apt-get install cinnamon. See my dedicated cinnamon page for more details on my setup.
  • Visual Studio Code: Provides a great IDE-like experience for C#, JavaScript and other languages. The Ruby experience is also decent.
  • Firefox: Because Debian only provides an LTS version (which is often quite old) and I'm not a big fan of Flatpak/Snap packages, I run this from upstream .tar.bz2 downloaded & installed using this script. This provides some of the benefits of the Snap package (auto-updating) but without the potential overhead involved with sandboxing the Firefox processes.

Recommended tools (macOS)

  • Spectacle: This one is nice since it will give you shortcuts for moving a window to use the "left half" or "right half" of the screen, and similar. I use this all the time to be able to run four programs on two monitors, giving them 50% each. :)
  • Karabiner Elements: This is an incredibly useful tool if you're coming from a PC background, used to a "traditional" PC laptop keyboard. The Apple choices for the key placements are simply quite horrible, if you ask me. Not one single modifier key (Control, Fn, Option, Cmd etc) is on the same place as on my other PC keyboard, so some remapping is simply necessary to retain my mental health.
  • Parallels: A great virtualization app, to be able to run Windows 10, Debian, Visual Studio, etc.

Stuff I don't use any more

  • SourceTree: Graphical git and hg (Mercurial) client for Windows and macOS. Developed by Atlassian, the company who provides the Bitbucket hosted Mercurial/Git services. I'm using this less and less now, preferring command line instead.
  • Sublime Text: Text editor. Use Atom instead these days, unless you get fed up with its slowness etc.
  • Atom: use VS Code instead. :)
  • KDE Plasma. Using Gnome instead nowadays.
  • Reconfigure Klipper to sync clipboards (to avoid letting Ctrl-C and mouse-selection in Konsole copy to different clipboards, which can be annoying if mentally switching between macOS and Debian often, which have different semantics in this area.) Klipper is KDE-centric but I might end up looking for something similar for GNOME/GTK. "One clipboard to rule them all" is much more my melody than the GNOME/X11 default.
  • sudo apt-get install gnome-tweaks - this one has nice stuff like "use Caps Lock for switching keyboard layouts". No longer personally using this, but using a similar thing in Cinnamon instead.
  • Show date in GNOME panel, next to time: gsettings set org.gnome.desktop.interface clock-show-date true
  • sudo apt-get install gnome as the desktop environment of choice. Well polished, pretty much on-par in terms of usability with Windows 10 or macOS. Because of excessive memory usage (gnome-shell was up to 6 GiB at some point), I ended up scrapping this and went with sudo apt-get install cinnamon instead. It seems to use less Javascript for its UI which I consider a very good thing... See the references at the end of this README.md for some interesting reading about memory leaks that have been present in Gnome historically.

Cinnamon tweaks

  • Get rid of pre-defined Ctrl-Alt-Tab keybinding, to use it for "cycle trough windows of the same application". Use this approach to remove the switch-panels setting under org.cinnamon.desktop.keybindings.wm in dconf-editor

Getting rid of annoying GPG (GnuPG) modal dialog for entering password

$ sudo update-alternatives --config pinentry

Make sure to select pinentry-curses when prompted. The pinentry-gnome3 is what causes the annoying modal dialog.

References