A year ago I made a post describing my workspace setup. A lot has happened in this past year, and so my setup changed a fair bit. In this post I’ll give you quick rundown of new tools and libraries that I’ve started using and tools that I’ve ditched.
I’m a big fan of finding new tools, reading through other peoples dotfiles and figuring out new ways to improve my workflow. So why not give back a bit and share that information, so that you, dear reader, can also find some exciting stuff?
You can find an overview of my setup on the Glumpat Website, in case you just want to just get a quick overview.
Switching Linux Distribution
As you might be aware, back in may it was announced that the Antergos project is being discontinued. For me and a lot of other people that meant it was time to look for a new distribution. I was very happy with Antergos, and so I made the decision to switch to… well, real Arch.
With that, it was also clear that I had to take a look at window managers, and all the other stuff that you need to look into once you set up Arch from scratch. I’ve wanted to try a tiling window manager for a while and switching distribution also seemed like the right moment to move away from Gnome.
Moving away from Gnome meant not having access to a bunch of stuff that I was used to, such as the gnome terminal, window switching, notifications, yada yada yada.
You can see where this is going. I changed everything. Its all gone. Sometimes before we can usher in the new, the old must be put to rest. And, because that’s just the way I am, went completely overboard and spent days ricing the shit out of my setup. Thanks /r/unixporn.
I ultimately decided on the following setup:
- i3-gaps: i3 seemed like the most approachable option to use as a tiling window manager. i3-gaps is a fork that adds some additional features to make things look more sexy. xmonad or bspwm were also contenders, but I was drawn to the ease of configuring i3.
- polybar: You kind of need a status bar, and polybar was recommended by a couple of people. It took me a while to configure, and there’s still things to be worked out when it comes to multi-monitor support, but so far I’m pretty happy with it.
- rofi: i3 uses dmenu per default, and rofi is a more customizable alternative. Configuring the theme - in the spirit of Nord - probably took the most effort.
- dunst: In order to display notifications I use dunst. Its fairly minimal, and documentation is a bit scarce, but its still the best notification daemon that I could find.
There were also a bunch of other changes. I wanted to give a different terminal emulator a try, and settled on Alacritty. Here’s the thing: My initial choice was Kitty, because I really, really wanted to use ligatures in the Terminal, but then stumbled upon an issue where Kitty would not render fonts from Nerdfonts. Proper fonts trump ligatures. We’ll see who is faster: Nerdfonts in patching their fonts, or Alacritty in making ligatures work
I also started to use ranger as a file manager, but I can’t say that I have the hang of it yet. These things take time. I like Vim and I like CLI tools, so using something like ranger makes sense.
CLI & Vim
Speaking of which, there’s a bunch of interesting CLI tools that I want to highlight. Tmux is a terminal multiplexer, and offers tabs and panes in the terminal - amongst other things. Because Alacritty does not offer these features Tmux is kind of required in my setup.
Another useful thing is asdf-vm. It’s what I would call a meta version manager. At some point I had something like 5 different version managers running in parallel, each of them with a different interface. One for ruby, one for pything, one for node… ugh. asdf-vm is a unified version manager and allows the installation of different runtimes via the use of plugins. So far I’ve had a great time with it.
You should also know about You Should Use. It nags and optionally forces you to use your aliases.
Lastly, I want to talk about Vim. I’m not sure if using that many Plugins makes a more efficient Vim user (let’s be honest, probably not), but as long as I’m having fun who cares.
Plugins need a plugin manager. vim-plug, replaces Vundle for me. It offers a simplified way to update and install plugins, as well as nice features such as lazy loading. I was never a big fan of Syntastic, having had a bunch of issues with different linters and its performance. I’ve now moved to Ale which leverages new features in Vim 8 for increased performance.
Since I increased my Vim usage a fair bit in the past year I’ve also found these other plugins useful:
- nerdtree: You probably know this one. I can’t say that I have gotten that much use out of it, since I also use fzf-vim, but at times its helpful.
- tmux-navigator: When using Tmux this allows for seamless navigation between Vim splits and Tmux panes. Makes you feel like a ninja.
- vim-gitgutter: This displays which lines have been modified when using git. At first, I was like ‘nah, probably won’t need this’, but it has proven very useful.
- vim-gutentags: This nifty plugin automatically generates tags when you save a file.
I gave you a quick rundown of what I think are interesting tools might improve your workflow and general well-being while sitting on your workstation. Researching and configuring new tools was as rewarding as it was at times painful.