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.
cd ~/git && git clone git@github.com:perlun/dotfiles.git
./install.sh
- 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: 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
-
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.
- Debian
testing
orunstable
, to get good, recent versions of the software I need for work and play. At the moment, I'm actually usingstable
(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.
- 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.
- SourceTree: Graphical
git
andhg
(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 withsudo 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.
- 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 underorg.cinnamon.desktop.keybindings.wm
indconf-editor
$ sudo update-alternatives --config pinentry
Make sure to select pinentry-curses
when prompted. The pinentry-gnome3
is
what causes the annoying modal dialog.
- Bug #1672297 “gnome-shell uses lots of memory, and grows over time: https://bugs.launchpad.net/gnome-shell/+bug/1672297
- The Infamous GNOME Shell Memory Leak: https://feaneron.com/2018/04/20/the-infamous-gnome-shell-memory-leak/