The Next Evolution of My Development Machine #95
nduartech
announced in
Blog Posts
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
slug: ninjavim-evolution
description: Modernizing my Linux environment
published: 2024-12-28
I moved over to Wayland a while back now, and having used it as my daily driver for some time, I am convinced to stay. The move was inspired largely by a commitment to the ethos I embraced when I first jumped ship to EndeavourOS, choosing it over Ubuntu–that of Arch Linux, of being on the bleeding edge. While X11 is stable and I keep i3 around as a backup in case my new setup crashes or an update goes awry, I surprisingly have not faced such a scenario in a long time.
This shift inspired me to upgrade other aspects of my development workflow as well. The following will cover some the details of my current setup and how my system has changed since I first switched to EndeavourOS:
Window Manager: Hyprland
The only reason the move from i3 to Wayland felt reasonable was the existence of Hyprland—configurable, practical, and, most importantly, NVIDIA GPU-compatible, it was the ideal choice, assuaging the concerns I expressed previously about Wayland compatibility with NVIDIA hardware. Hyprland’s extensive documentation meant getting up and running was as simple as following the instructions, with the added benefit of having a slightly more polished look than that which i3 once offered.
Browser: Brave
I still switch back and forth, but ultimately it’s hard to deny that Chromium-based browsers just support more features than their Firefox counterparts. With this in mind, the choice to use Brave over Floorp largely comes down to this factor, as both place privacy high on their respective list of priorities.
System Bar:
Waybar, EwwFor quite a long time, I used Waybar with some custom styling for my system bar. I tried quite a few other options, but always came back to Waybar for its simplicity and ease of use. That was until I finally gave in to my incessant urge to keep tinkering and dove into writing my own bar with Eww.
Text Editor: Neovim
I am still working on getting used to operating mainly from the terminal. These days, while I now do a lot of my code-writing and editing from Neovim, debugging often still forces me to open an IDE. That said, changing the way I approach other, non-debugging-related tasks has helped with the mental shift of using Neovim regularly.
For the Love of the TUI
Before I jump into the slate of TUI tools I use now (some of which are mentioned in previous articles but will be covered here all the same), I want to address the elephant in the room. Why would anyone use a TUI when perfectly good graphical applications exist?
Alright, so having established that TUIs are the way, which ones am I using?
Zellij
A TUI terminal multiplexer alternative to tmux written in Rust that offers a similar set of functionality while being beginner friendly.
Mprocs
A TUI that allows running multiple commands in parallel. Together with Zellij it forms a nice pairing.
Yazi
A TUI file manager, replacing Thunar.
Gitui
A TUI for git. Not one I use that often, but can be useful.
Oxker
A TUI for docker containers, configured to work with Colima running locally.
Bottom
A TUI graphical process/system monitor, configured to open when clicking on the relevant CPU and GPU icons in my custom Eww bar.
Spotify_player
A TUI for playing music from Spotify.
VLC
I recently discovered that VLC also has a TUI built-in. Just run:
While there are probably others I have on my system, I make of use of the ones mentioned above most regularly.
Terminal:
Alacritty,kitty,Warp,Wezterm, GhosttyOf course to view these exceptional TUIs once would need an exceptional terminal. Countless creators have gone over the merits of Ghostty. It’s fast, written primarily in Zig, and has enough hype to steamroll anything else happening in the world of terminal emulators this year. I spent the months before its arrival hopping from one emulator to the next, admittedly more out of curiosity than need. Each, however, did have its own set of pros and cons: Alacritty is fast, but lacked image support, which while not a necessity can be found in all of the other options I looked at. kitty is well-established and the originator of the kitty image protocol, but it’s written in python which on some level I find a bit offensive (kidding, mainly). Warp is loaded–and I mean loaded–with features, but I did have some concerns regarding privacy and didn’t really feel the need for AI assistance. Finally, Wezterm was my emulator of choice while I waited for the Ghostty release, though its large feature-set meant configuring it could be challenging at times, and it was also on the heavier side. I don’t want to rehash the benefits of Ghostty here (there have been plenty blog posts and Youtube videos on it), but suffice it to say it seems to have all the pros without any of the cons of each of the options I formerly tried.
Non-TUI Terminal Things
Outside of the TUIs, I still have my fun Starship prompt, ble.sh for auto-suggestions, and ly as my display manager. I never did quite integrate Aider fully into my workflow, though. Ultimately, I find chatting with an LLM directly is often just as effective as asking one to make changes for me, if not moreso. While Aider remains a useful tool in my toolkit, it’s not one I reach for often.
AI Text-Editor: Zed
Zed remains the coolest new text editor on the block. While many have praised the wonders of Cursor, as someone who simply can’t stand VSCode I found it challenging to adopt the same enthusiasm. Then came Zed. Great AI features with support for models both local and remote, as well as written in Rust, the editor has a ton of pros. That said, as with seemingly all AI applications, there are some privacy concerns. To add, the lack of debugging support makes using it as an IDE a non-starter. That said, as a tiny little AI text/code editor, it’s quite nice.
IDE: Jetbrains
In terms of IDE-features, there’s no beating Jetbrains. Listing all of them would be too much for this article. That said, the cons are also beginning to become more pronounced. The only thing worse than unnecessary AI features is half-baked AI features, and unfortunately Jetbrains’ IDEs are full of these. As extensions break over time, and more AI extension builders are now building VSCode-clones to ostensibly compete with Jetbrains, it pains me to see the company struggling on this new front given the general quality of the product overall. That said, outside of Jetbrains AI, I still haven’t found anything that can compete with the experience of using their products.
Markdown Editor: Obsidian
I enjoyed using Obsidian so much I wrote a tiny plugin to make using it as part of my general workflow easier.
Ultimately this setup is one that brings me great personal satisfaction. Using my computer feels nice and fits within a workflow that encourages productivity, without the bloat of Windows or the shiny surface-appeal of MacOS.
Beta Was this translation helpful? Give feedback.
All reactions