Skip to content
NNB edited this page Dec 23, 2023 · 152 revisions

Why I Choose

Why ~ ?

💡 About

People may ask:

Why?

Here is a list of software that I have experience or knowledge of, what i choose and why i choose. The lists have been sorted by most recommended to the least.




🖥️ System

💾 Operating system

This section has been moved to my new blog website!


🏞️ Desktop environment

List of desktop environments

This section has been moved to my new blog website!


🪟 Windows manager

List of windows managers and Comparison of window managers

This section has been moved to my new blog website!


➖ Bar

List of bars

This section has been moved to my new blog website!


🔤 Font

  • Iosevka ! by Belleve:
    • It have a bunch of stylistic to choose from.
    • Iosevka is narrower than other fonts. If you're like me and want it to have a similar width as other fonts, use the extended variant.
    • It's also have it pair with Sarasa Gothic: "a CJK programming font based on Iosevka and Source Han Sans" for Chinese and Japanese support.
    • Iosevka is customizable meaning you can create your own fonts with it, I've created and used my own Iosevka-base font call Bmono.
  • JetBrains Mono from JetBrains:
    • It's a pretty well designed font but I still prefer Iosevka more.
  • Fira Code by Nikita Prokopov:
    • It's Fira Mono is made by Mozilla but with ligatures.
    • Because of this, it's typography (IMO) doesn't feel as clean and professional as above fonts.
    • But it have the best set of programing ligatures.

Note You can add programing ligatures to any fonts with Ligaturizer.




⚡️ Applications

📟 Terminal emulator

#TODO

List of terminal emulators


📁 Files manager

List of files managers

I no longer use a dedicated files manager, I instead have a more minimal approach for files management through my shell (learn more on this article).

📢 Honorable Mention

RPG CLI

  • "Your filesystem as a dungeon!"
  • It's command-line interface can be used as a cd replacement where you randomly encounter enemies as you change directories.
My old ranking
Name Weight Description
LF Light Very customizable and follows the Unix philosophy, You have to write the script for whatever functionality you want.
XPLR Meh Although it's UI kind of overwhelming, it's extremely hackable and integrate well with other CLI tools.
CliFM Meh Shell-like terminal file manager, a pretty cool concept but I wish to have all of it's feature on the shell I'm using and not have to enter a new shell that only good for files management.
NNN Bloat Way faster and more customizable than Ranger with too many features.
Ranger Bloat Slow and hard/limit to customize.
VIFM Bloat Faster than Ranger but have an outdated design and again: hard/limit to customize.

🎞️ Media player

This section has been moved to my new blog website!


🖼️ Image viewer

This section has been moved to my new blog website!


🌏 Web browser

This section has been moved to my new blog website!




👓 Productivity

📝 Text editor

This section has been moved to my new blog website!


🖌️ Image editor

I no longer use a dedicated image editor, I now draw illustrator and pixel art on Blender to fit my 3D modeling workflow. I rarely need to manipulate image, but if I do, I will use Photopea.

My old ranking

Krita

  • It's the best FOSS drawing software.
  • Krita focuses a lot on drawing but is not super great for manipulating images.

GIMP

  • Also FOSS.
  • It's a pretty good image manipulation.
  • Have some janky UX.
  • It integrate well with GTK environment and theme.

Photopea

  • Image editor but it's a web app, pretty good for a quick picture edit.

Pixlr

  • Another web app image editor, this is my first image editor that I use (other than MS paint)
  • It used to have fewer ads than the last time I check.

Photoshop

  • It was heavy, laggy and crash all the time.
  • Then I switched away from Adobe's products my life's quality improve.

    If you looking for Photoshop alternative and don't like above tools, check out Affinity Photo.

📢 Honorable Mention

Aseprite

  • Not free but OSS.
  • It's the best pixel-art focus drawing tool.

🎥 Graphic editor

Blender Motion graphics + 3D modeling + Drawing + Video editor
  • Blender can create 3D motion graphics and 2D animation
  • It's a great 3D modeling tool for creating game asset
  • It's a surprisingly good drawing software for 2D.
  • Can use as a hardcore video editor.

🎮 Game engine

Godot !

  • Godot is the fastest growing game engine.
  • It is as powerful as GameMaker 2D (or even better) in making 2D game and threatens to beat Unity and Unreal in making 3D game.
  • Godot is also FOSS and very light (less than 50MB) so give it a try first.

GameMaker

  • GameMaker 2D is alright, just don't think about making a 3D game with it.

Unreal Engine

  • A very good choice if you want to make a AAA-like 3D game.

Unity

  • It's the most popular game engine, you can find a lot of tutorials and asset...
  • You can make a shitty game without touching a single line of code (don't).
  • The drawback is that Unity is very heavy and ten to crash.

📢 Honorable Mention

List of fantasy consoles

TIC-80

  • A great alternative to PICO-8 that FOSS.
  • Probably the best fantasy console because:
    • It come with sprites, maps, SFX and music editor.
    • It's support a bunch of languages (Lua, Ruby, ...).
    • It have a perfect amount of freedom.




⌨️ Programing

🐚 Interactive shell

#TODO

List of shell and Alternative Shells

Note I rank these shells only by it's interactive usage and some light shell scripting.

Note This list doesn't include specs comparison. For that, take a look at Comparison of command shells.

Xonsh !

  • Basically Python (yes, the real interactive Python) with better shell integration.
  • What make this (IMHO) better than Powershell is because:
    • Python is already a general purpose full-fresh programing language.
    • Python is a popular alternative to Bash in shell scripting.
    • Xonsh come with many interactive features which Powershell lacking.

Elvish

  • This shell is like if Powershell's modern language features are combined with FISH's interactive features.
  • It's built-in menu system is extremely powerful, it can become a tab completion selector, command/directory history searcher and even a files manager.

FISH

  • It's the most popular non-POSIX shell.
  • It's lived up to its name as a "friendly interactive shell" because it have many interactive features without requiring extensive configuration.

Powershell

  • Is it a shell with modern language features? Nah! More like a C# variant with shell syntax.
  • It's consistent and well design but doesn't offer many interactive features compare to other shell.

Zsh

  • Because it's (mostly) compatible with Bash, Zsh's the most popular shell out there.
  • By default it doesn't offer much interactive features and most must be enable manually or installed through plugins.
  • Luckily Zsh is extremely extendable because of it's plugins ecosystem by its dedicated community.
  • It's took a lot of time and effort to config but even then you might still feel unsatisfied.

Bash

  • It's too old and barebone in term of interactive features, use anything else but it.

📢 Honorable Mention

Hilbish

  • Basicly using Lua as shell, still WIP and unusable.

Nushell

  • It's an alternative to Powershell, still WIP and unusable.

📜 Scripting language

List of scripting languages

Ruby !

  • Because of the significant similarity to shell script, it's the best alternative to shell script.
  • It's take the convenient design of Python and improve upon it, no more off-side rule or list comprehension.
  • Ruby give user more options but still extremely consistent at the same time.
  • If I want, I can quickly switch my project to Crystal (a language that have ~90% syntax to Ruby) for the product's speed and size...

Lua

  • "Lua is the most underrated programing language"
    • It's super tiny and portable.
    • It's design is more simple than Python.
    • And probably the fastest scripting language.
  • But I still prefer the convenient of Ruby.

Python

  • It's one of the most popular scripting language, it's easy to write but run a bit slow.
  • Although it isn't as portable as shell script, it's still pre-install on many big OS or come with many popular software.

Shell

  • Any POSIX compliance shell that encouraging users write portable shell scripts (e.g: Dash), this mean the products can be easily install and run on any *NIX OS without much dependencies.
  • The language is quite easy to write small CLI utilities but if the product has more than 50 lines of code it will be really frustrating to maintain, for that reason I now switch to some more main stream scripting language.

    But if you still want to write shell script I highly recommend you to use shellharden or shellcheck.

Perl

  • Although it's better than Bash, Perl is less portable than Bash and have many Criticism.

Bash

  • Doesn't better much than Dash and doesn't even that portable.




🧰 Utilities

➡️ Shell prompt

#TODO

I realized that I don't need a bloat prompt, most of the information it's show are unnecessary or something I comfortable writing a quick command to check if I want.

  • All I want out of a prompt is to display the current working directory, which I can easily achieve in my shell config.
  • My shell have an event hook that print out the exit code of the program if it's not 0.
My old ranking

If you looking for a way to write your own prompt with language other than the shell you are using, check out DIYship.


ℹ️ Sysfetch

List of fetch tools

I have realized that I didn't actually need a dedicated tool to get my system information. I only need it to show flex my rice on Reddit, so I just write a new fetch script and use it when taking screenshot for my rice.

My old ranking
  • Bfetch : This is just a framework to display your own sysfetch script, a bit slow.
  • Neofetch : Bloat but have everything that you need to fetch out of your system.
  • Pfetch : Lighter and Faster than Neofetch but with less feature.

❇️ Terminal multiplexers / session management

List of terminal multiplexers

I no longer found a terminal multiplexers or session management useful anymore. If I want, I just use a job control provided by the command shell or just open another terminal if on a WM.

📢 Honorable Mention

  • Tab : It's like Abduco but with more features.
  • VTM : A beautiful terminal multiplexer with a full floating/tiling window manager + blur...

✂️ Media manipulation

  • FFmpeg : Can manipulate image/video/audio and convert between them. Although for image it isn't as advance as ImageMagick, it can do anything that I need.
  • ImageMagick : Very powerful but can only manipulate image.

📢 Honorable Mention

  • Autotyler : An autotile conversion tool for turning small/incomplete autotile tilesets into complete, fleshed-out ones.
  • Gifski : Gifski converts video frames to GIF animations using pngquant's fancy features for efficient cross-frame palettes and temporal dithering. It produces animated GIFs that use thousands of colors per frame.

📥 Download tool

Because now I move from writing shell script to Ruby, i use net/http and don't often need a download tool. But when i do, i would use Curl.

Q: Why not use Wget2 or Aria2?

A: Just look at this Download tool's comparison table.

Also check out Awesome console services!


🎨 Color schemes manager

I don't need a color schemes manager anymore. I realize that:

  1. Most of my software are:
  • GUI applications that aren't easy/impossible to theme.
  • TUI applications configured to utilize the terminal default colors therefore adapt automatically when the terminal change colors.
  1. The only two things that I want to manage their appearance are the terminal and the windows manager. Which I want a lot of control not just over their color but also font, opacity... That writing my own script to manage would be a way better approach.
  2. I don't change my color schemes much often.
My old ranking
  • Flavours : A manager/builder for Base16: the biggest color scheme ecosystem, but can only set 8 terminal's colors.
  • Wpgtk : Pywal with some more feature and can set 16 terminal's colors.
  • Pywal : A pretty good schemes manager has supported a decent amount of software, but can only set 8 terminal's colors.
  • BUI : It's was created for my personal uses, at that point i thought that config with environment variables would be a good idea... It's not, please don't use this, it's very janky.