Programs
Basic
-
Operating System I use Arch Linux (BTW) for work and for my personal system. I like the rolling release philosophy. Arch Linux repositories support a great number of packages to install and if it’s not enough for you there is the AUR repositories with tons of more packages.
-
Terminal I’ve used different terminals; Konsole was the most used by me, but I left KDE Plasma, and I chose Kitty for the different capabilities that it provides and because Kitty supports ligatures.
-
Shell zsh because of the plugins and themes that it supports.
The plugins that I use are:
- git
- git-extras
- git-flow
- docker
- docker-compose
- podman
- node
- npm
- aws
- pip
- postgres
- laravel
- archlinux
- pass
- rails
- agnoster as theme
-
Window Manager I’ve used KDE Plasma for years, and for years it has been my favorite desktop manager. If I need to recommend a desktop manager, for sure it would be KDE Plasma. I usually installed a meta package with all the features of KDE until I realized that I actually didn’t use all the features; I’m living in the terminal all the time. So I decided to move to a window manager, and I chose Sway. Sway has the user experience of i3 but with Wayland. I’m still testing it, but I feel comfortable for now.
-
Text Editor I’m proud to be a Neovim user; actually, one of my projects that makes me proud is my Neovim configuration. I started to use vim years ago, but when I noticed that Neovim supports LSP I moved to Neovim, so I changed my one file configuration to a modular Lua configuration and in the path I learned how to code in Lua.
-
Web Browser Since I’m a web developer, I use different browsers in order to test the software that I build. For developing reasons, I use Google Chrome and Firefox in this order, because even when the developing experience is better in Firefox, Google Chrome is still the king for most of the clients. For my personal projects I use mainly Firefox, and for my personal use and consumption of web stuff I prefer Librewolf. Also I need to say that I use Lynx as a terminal web browser when I read news or blogs.
Utilities
-
Launcher I use Wofi to open my GUI programs and manage my clipboard using cliphist, and I also built a bash script to manage my passwords using pass with it.
-
Wayland Bar I use Waybar with a nice gruvbox theme that I set up in CSS and different sway elements on it.
-
File Manager To be honest I mostly use my shell to manage my files but I also use Ranger sometimes.
-
Music I listen to music using MPD and ncmpcpp, and also when I want to listen to music on YouTube I used to use ytfzf but now it’s out, so currently I use yt-x which is a CLI YouTube client.
-
Video/Image For videos I use MPV, which allows me to play videos stored on my laptop but also videos from the internet. I use mpv in my RSS reader, the Mastodon client, and the YouTube client. Also, I use it to watch images — since MPV behaves with image formats like video, I needed to configure it so that if the file is an image, I pause the video; to close the image, I just play the video.
-
Email NeoMutt is my choice as my email client; currently I use the Disroot email service. For setting up NeoMutt, I used Mutt Wizard which allowed me to set up multiple email accounts using my shell. Instead of building the setup from scratch, I needed to set up the GPG encryption myself.
-
RSS Reader To avoid distraction in my life I left most of the thread social medias to consume news, so for that I use the old RSS technology and it’s good. I can follow YouTube accounts (where I can play the videos directly using mpv), the main news pages of my country and international, podcasts (where I can play them using mpv), Peertube accounts (I can play the videos using mpv), developing communities, Reddit boards, blogs, and job boards. The reader that I use is Newsboat.
-
Mastodon Client I know the great approach to using Mastodon is the website of Mastodon, and if you are new to Mastodon, I recommend using the website of your instance, but since I want to avoid the web browser, I use Tut, which is a TUI client for Mastodon.
-
XMPP Client Unfortunately, I haven’t found an XMPP client that makes me feel comfortable. I used Profanity and Poezio, where Profanity has been the winner for now, but it has some limitations, like it doesn’t support MAM in MUC to remember the previous messages in groups. But why does Profanity win? Well, Poezio is great; actually, I think it has the best TUI user experience, but it has the problem that OMEMO is a plugin instead of a feature in the client, and currently they don’t provide an easy way to integrate the plugin.
-
Matrix Client Even when I use Matrix a few times more than XMPP, I need to say that Iamb has the greatest user experience for a messaging TUI application; it has a vim-like experience, and I love that so much. And of course, using a TUI allows me to not use Electron.
-
IRC Client It’s a bit unusual that I use this way to message partners or people in general, but there is a great Arch Linux community and GNU in the Libera network, so I use Weechat.
Software Developing
-
Text Editor Just like I mentioned, I use the Neovim editor, and the developing tools that I use in Neovim mostly are the LSP tools with LspConfig, Treesitter, and Mason. For snippets, I use LuaSnip. For navigation I use Neotree, Telescope, and Harpoon; I use Lazy as a plugin manager, and of course I use Gruvbox as a color scheme.
-
Javascript/Typescript Technologies I’ve used many different tools to develop in JavaScript and TypeScript. Mostly I use Node as a JavaScript developing environment to create Node-Express applications. I used Webpack with ReactJS to build vanilla ReactJS applications, but I also used Vite. I used NextJS developing tools in the developing environment to create apps in this framework. For packages I used npm and yarn, but currently I use pnpm more to save resources.
-
Rails No fancy stuff here, I’ve used all the tools that the Rails framework provides.
-
Browser Tools For simple web applications the developing tools that most browsers have is enough. The Firefox tools are my favorites, especially the styling tools, but for React/NextJS applications I use React developing tools (profiler, components) and Redux developing tools.
-
Request Testing I’ve used Postman for many clients, but I prefer to use cURL to do it.
-
Developing Environment In most of the teams where I’ve worked, I use Docker to build and manage a developing environment. For personal projects I don’t use Docker; I prefer to use Bash scripts to set up my developing environments.
-
C/C++ Environment I use CMake and Make, and I install third-party libraries with Git instead of using a package manager.
-
Python Environment I use the built-in Python environment, but also uv.
-
Version Control Of course I use Git.
-
Code Hosting I use GitHub because there are tons of open source projects there, but personally I use Codeberg because I don’t like Copilot. If somebody reads my code I prefer them to be a human.