Hardware
I have a 2019 Asus Zenbook 13. It’s very portable, Linux worked out of the box, and the battery lasts for ~8h of work. The keyboard is not great, though.
Another device I use is a 2021 Macbook with the M1 Pro chip. The hardware is fantastic in almost every way, but the software is a bit of a downgrade 1 from a good Linux setup.
When working from my desk, I use a Microsoft Sculpt Ergonomic keyboard2, and a big additional monitor. Using a laptop stand to lift the laptop to eye level is a must.
Software
For the Zenbook, I use Manjaro Linux with the tiling window manager i3. 3
In my Mac setup, I heavily utilize yabai, skhd and karabiner-elements. With enough tinkering, it is possible to recreate most of the i3 experience. 4 My setup is based on these dotfiles.
Most of my coding happens using the laptop as a thin client to a remote server. Visual Studio Code is very good for this, especially for remote development over SSH.
For smaller scripts, I use Neovim, with various plugins installed via vim-plug.
Both of these editors have Github Copilot support. Copilot is really indispensable for research code, and is unbelievably cheap for what it does.
For taking certain types of notes, I use org-mode in Spacemacs. It is simple, local-first, has Vim keybindings, and can render inline LaTeX fine.
However, I prefer Google Docs for anything collaborative, as well for my weekly planning. For maintaining work todos, I have recently taken up Asana.
Web
For web browsing, I use Firefox with the following life-saving extensions: vimium, OneTab, Tree Style Tab, Enhancer for Youtube and uBlock Origin.
-
It comes with a usable mouse, and works with Linux out of the box. It’s very good value for money. ↩︎
-
There is no bloat at all if you go with i3. I used Arch before and everything is the same. ↩︎
-
I didn’t succeed completely – for example, with multiple displays, it doesn’t seem possible to label workspaces non-consecutively. If you have any ideas on how to do this, please let me know! ↩︎