#10: Software I Use

I'll hopefully update this regularly. Maybe I won't, idk.

Audio/video player: VLC
    try: mpv
    I've been having more and more problems with VLC, and many people apparently think mpv is the best media player. I'll give it a shot at some point.

AUR helper: none
I manage my AUR packages manually with git and makepkg. It works well for me. I guess I don't see a need for an AUR helper with my current setup. In addition, I plan on eventually migrating most AUR packages to a local repo for use with pacman anyways.

Bootloader: GRUB 2
GRUB works wonderfully. I see no reason to consider switching from it.

Cloud storage: Nextcloud
I self host Nextcloud for both myself as well as friends and family. It works fine, but I feel like I could do better for my specific needs. I also use Nextcloud for things like RSS and note taking.
    try: Syncthing
    I know Syncthing is designed for a totally different purpose than Nextcloud, but for my use case I think it would work well. I've never tried it before, so this might be interesting.

Communication client: Weechat, sometimes Element, Signal
My go to is always Weechat for both IRC and Matrix communications. I fall back to Element for Matrix only if I absolutely need to.

Communication protocol: Matrix, IRC, Signal
I self host Matrix to talk with my friends. I also use IRC for some group chats with internet strangers. For some friends and family, I use Signal, just because it's super easy to set up. There are many things I dislike about Signal: two notable things being centralization and lack of anonymity (phone number is required to sign up). Nonetheless, for my use case, it's fine.

Compatibility layer: WINE
I almost never need to use this, but it exists when I need it.

Device encryption: LUKS with dm-crypt
I currently encrypt my entire device, because I don't have a separate /home partition. I realize now that I really should separate my /home partition from the rest of the system, so maybe this setup will change in the future.

Email client: Tutanota
    try: Mutt, NeoMutt, aerc, Alpine
    I currently don't use a terminal-based email client because I use two factor authentication with my email, and I'm not sure how to set that up. At some point I want to figure this out.

File manager: none
I've never really needed a file manager, and I doubt I ever will. Using standard shell commands to navigate my file system works great for me. I can't see any scenario where I'd use a file manager.

File system: EXT4
    try: OpenZFS, BTRFS
    I know very little about these, but I'm interested in long-term data storage.

Font: Noto Fonts
I haven't looked into alternative fonts, but maybe I should. Noto fonts are kinda bland and boring. Maybe I should also invest some time into finding a font that's designed to be used in a terminal or when coding to reduce eye strain and for maximum reading efficiency.

Game emulator: RetroArch (libretro), Dolphin, DesMuME
Dolphin for GameCube and Wii emulation (though I own a real Wii which I prefer using, so I don't use this often). DesMuME for DS emulation because it has touch support. RetroArch for everything else.

Game launcher: Steam
One of the only proprietary programs on my system. Steam is tough to avoid because nearly all good video games are nonfree.

GTK icon theme: Adwaita

GTK theme: Adapta Nokto

Hotkey daemon: none
I don't use a hotkey daemon because I use i3 as my window manager, so I just use i3's configuration file. I'd like to switch away from i3 though, as I'd like something where I have a bit more control.
    try: sxhkd

Image editor: GIMP, JS Paint
JS Paint is wonderful btw.

Image viewer: feh
Very minimalist. I don't really need to do anything with an image viewer other than...view an image.
    try: sxiv
    Apparently sxiv is better than feh? Idk, they're probably both pretty much the same honestly.

Init system: Systemd
I only use Systemd cuz it's what comes with Arch. I have mixed feelings about Systemd. I hate the fact that's it's dominated the landscape. I hate how huge it's codebase is. I hate the fact that the maintainer doesn't really care too much about security, which is pretty terrible for what is the most high-risk piece of software on the computer besides the kernel. However, Systemd is very easy to use. I've never run into any problems using it. I know if you go online there's lists of inexcusable bugs or whatever, but I've never encountered any problems. Many things that may be difficult without Systemd are very simple for me. Nonetheless, I'd like to learn to use a different init system and service manager.
    try: OpenRC, Runit
    I'm willing to try anything, but OpenRC is the non-Systemd option for Parabola GNU/Linux-libre, which is why I listed it here. I've also heard good things about Runit.

Internet browser: Tor Browser, Ungoogled Chromium
Tor Browser is my default. I only use Ungoogled Chromium for specific tasks. Ungoogled Chromium is used when I absolutely NEED to access a site that I can't access in Tor Browser, for testing purposes, for messaging and calling, and for uploading/downloading stuff from Nextcloud. Since I don't have as many protections in Ungoogled Chromium as in Tor Browser, I pretty much only access specific sites on it.
    try: Surf
    The idea of a minimalist browser like Surf is very intriguing to me. Maybe I could make something work with it? Idk, it's not a high priority for me.

Java IDE: Eclipse with Vrapper
Vrapper gives Eclipse Vim-style bindings, with a configuration file very similar to Vim. I only use Eclipse because it's what I started with when I started learning Java at school. I'm sure I could migrate to just Vim very easily, though having an IDE is handy.
    try: Vim, Neovim, IntelliJ IDEA

Kernel: Linux
This is the non-LTS Linux kernel from Arch repos.
    try: Linux-libre
    Since I run almost exclusively free software, I don't think I have to worry about the microcode that the standard Linux kernel ships with it. At some point I definitely want to try migrating to either a fully free distribution, or keep Arch and just switch to the Linux-libre kernel.

Markup language: Markdown
I use Markdown mainly for note taking. It's in my opinion the best markup language. I know it has flaws, but I personally love it, and I'm not looking to replace it.

Network manager: NetworkManager
Name checks out.

Note taking: Nextcloud Notes
Nextcloud Notes just stores notes on your Nextcloud as plain text files, or in my case, Markdown files. That's why I like it so much. However, I'd like to switch to a Terminal one so I can take notes in Vim (preferably still using Markdown). Maybe just using something that syncs the Notes folder with Nextcloud so I can edit the files locally?

Notification daemon: none
I never set up a notification daemon on my system. I really need to do that.
    try: tiramisu
    When I set up notifications, I want it to be done in a non-intrusive way that I have complete control over. That's why tiramisu looks so good to me. Notifications really should be handled in a UNIX-y way.

Office: LibreOffice
    try: sc-im, Pandoc, Groff
    LibreOffice is fine, but I'd like to switch away from it to more minimalist tools. Sc-im looks promising for spreadsheets and I'd like to try it out. Pandoc looks useful for writing documents in other markup formats and converting them. Groff seems kinda interesting, but I'm not a huge fan of the syntax. I looked into making presentations with sent, but quickly realized that sent sucks.

Operating system: Arch Linux, Ubuntu Server
All operating systems that aren't based on Arch suck. I want to fully customize and setup my system the way I want it. I also don't want to have to compile everything. Arch is perfect in that way. I only use Ubuntu on my servers, though I'd like to switch those to Arch as well, or maybe Debian if Arch doesn't work out.
    try: Parabola GNU/Linux-libre, Artix Linux
    Parabola is just a completely free version of Arch. I want to try it out both for freedom, but also to get away from Systemd if possible. Artix Linux is just Arch but without Systemd. If Parabola gives me too much trouble I may try it out.

Package manager: Pacman
Pacman is the best package manager I've ever used, hands down. It's one of the many great things about Arch. It's also objectively the best package manager because, I mean, c'mon, it's called Pacman.

Password manager: KeePassXC
Specifically, I use keepassxc-cli to interact with the KeePass database. More specifically, I have a shell function simply called "password" which I use as a front-end.
    try: Pass (PasswordStore)
    I like the idea of a minimalist UNIX-philosophy password manager. Might be worth checking out.

PDF viewer: PDF.js
This is the PDF viewer that comes built in to Firefox (and Tor Browser). I just open PDF files in Tor Browser to read them. I desperately need a better way to do this lol.
    try: Zathura

Program launcher: dmenu
I use dmenu for things other than launching programs too. It's a great tool that integrates nicely into my setup. Easily better than Rofi in my opinion.

Python interpreter: CPython
    try: PyPy, Cython
    CPython is slow, so I'm interested in replacing it. I know very little about PyPy. Maybe it's faster? Cython isn't an interpreter, but rather a whole new language that uses Python syntax, but is compiled. I'm very interested in Cython, and would love to give it a shot at some point.

RSS reader: Nextcloud News
I like what Nextcloud News has to offer, but I'd like to migrate to a terminal RSS reader. Ideally, I'd also like to share the RSS feed with Nextcloud.
    try: Newsboat

Shell: Bash
Bash is awesome. I also know a lot of the ins and outs of it, so switching will be a challenge. I'm not sure whether or not I want to switch from Bash. Bash works wonderfully and 90% of the time has everything I need. However, smart tab completion and syntax highlighting would be very nice.
    try: Zsh, Fish
    Zsh looks VERY appealing. I'm worried it'll be too much though? I'm not sure. Maybe I just have to give it a try. I'll have to reconfigure a lot of Bash and Readline-specific stuff though. Fish looks interesting as an interactive shell, but I'm so used to Bash syntax that it may not be worth it. Though I really dig Fish's syntax highlighting.

    try: Mosh
    When connecting to slow servers, there's noticeable lag between my keystrokes and the screen updating. Mosh apparently fixes that. I'm intrigued.

Status bar: i3bar
Since I use i3, of course I use this. However, maybe I could find something different.

Terminal emulator: st
I need very little from a terminal emulator. st offers everything I need. Hell, I don't even use scrollback. Combined with libxft-bgra for emoji support, I've never had any real problems with st.
    try: Alacritty, URXVT (rxvt-unicode)
    I've heard URXVT might be better when it comes to conservation of computer resources (as if that really matters that much). However, if it's true that Alacritty is really as fast as it's made out to be, then I may want to try that as well. It looks relatively minimalist, so it's definitely worth a shot.

Terminal multiplexer: none
I don't use a terminal multiplexer. I don't even know how to use tmux or screen. I've never really needed one. For terminal tiling and multiple sessions, I just open multiple st windows and tile/tab them with i3. In the rare instances where I've felt that a terminal multiplexer may be useful, I've taught myself how to use Vim as a diet coke terminal multiplexer.

Text editor: Vim
Once you try modal editing, you'll never go back.
    try: Neovim, Vis
    Apparently Neovim is better than Vim? Maybe it's worth trying. In addition, I've recently discovered a fairly unknown editor called Vis, which combines the modal editing of Vim with the structural regular expressions of Sam from Plan 9. Instead of macros, it heavily utilizes multiple cursors. It's got me very interested. Kakoune looked super interesting at first, but the keybindings are kinda unintuitive, things are constantly appearing on screen with every keystroke, and overall it just doesn't seem like my thing.

Torrenting: qBittorrent
I'd like to find a CLI alternative. Regardless, qBittorrent works well. I've never really tried anything else.

Two factor authentication: andOTP
    try: Aegis

Userland: GNU
I see absolutely no reason to use any other userland. Call GNU bloated all you want, but I've found basically NO performance difference between GNU utilities and other "minimalist" alternatives. Also, the options that the GNU coreutils have are useful. I use them a lot, so I wouldn't consider them bloated at all.

Version control: Git
I'm still learning how to use Git, but I'm getting there.

Video conferencing and calling: Jitsi Meet, Element
I self host both of these for use with friends, family, and others. Jitsi Meet especially has been working really well.

Video downloader: youtube-dl

Video editor: Shotcut
    try: Kdenlive
    I switched from Kdenlive to Shotcut at some point because Kdenlive stopped working on my system. I think I tweaked something and broke it, and this was a while ago so instead of trying to fix it I just decided to switch to an alternative. Shotcut is alright, but maybe I should give Kdenlive another shot. Or maybe there's an alternative to both that I could use.

Video recorder: OBS Studio
    try: vokoscreenNG
    At first glance, vokoscreenNG looks a lot simpler than OBS, and since I only do simple video editing, maybe I should give it a shot if it's easier to use and more light-weight.

Virtual machines: VirtualBox
    try: virt-manager, QEMU
    I've never really seeked out alternatives to VirtualBox, because VirtualBox just kinda works. However, maybe something else exists that is more tailored to my needs.

Web server: Apache
    try: Nginx
    Apparently Nginx is better than Apache according to some people. It's more "modern" or something. Idk, can't hurt to try.

Window manager: i3
I don't use i3-gaps; just raw i3-wm. I don't ever use gaps.
    try: dwm, bspwm
    I've already started the process of migrating over to dwm. I much prefer dwm's automatic layouts to i3's manual tiling system. Though I wish it didn't come with a bar built-in. Bspwm also looks really interesting. I like that it only provides a window manager -- no hotkey daemon or bar -- and everything is controlled with external scripts.