website/content/post/linux-setup/index.md
2024-09-24 20:38:45 +02:00

8.7 KiB
Raw Blame History

---linux title: My linux userspace description: A collection of tools i use in my workflow image: linux.png date: 2023-09-07 00:00:00+0000 categories: - Linux - Programming tags: - linux - arch - suckless - terminal

This is a simple collection of all the main tools that i have installed on my system. I do not consider the setup complete yet, but i have already collected enough pieces of software that justify start keeping track of them.

I make heavy use of Luke Smith's LARBS, a script that i recently forked and changed to better suit my needs.

You can find my version of LARBS here. In an ideal future, there will be a changelog with all the changes that i did from the base(d) version.

Why Arch Linux?

I don't have enough time to compile Gentoo.

Distribution: artix

Artix is basically arch only without that piece of cringeware that is systemd. When it comes to replacing it you have a number of choices that range from decent to very fucking good, i have only ever used runit but you're free to chose something else of course.

Visit the Artix website and check all the neat infos they have:

"Q. Do you hate systemd? A. No, we don't. In fact, we love systemd. But we would never use such a sucky piece of bloatware near anywhere we cared about security"

Disk encryption:

In all my devices i encrypt the root partition with a LUKS-formatted partition.

Window manager: dwm

"dwm is a dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. In tiled layout windows are managed in a master and stacking area. The master area contains the window which currently needs most attention, whereas the stacking area contains all other windows. In monocle layout all windows are maximised to the screen size. In floating layout windows can be resized and moved freely. Dialog windows are always managed floating, regardless of the layout applied." There is a ton of customization possible and patches that you can compile to modify the behaviour of the window manager, it's very lightweight and runs very well even on my 2008 T400, can't recommend it enough.

Status bar: dwmblocks

dwmblocks is a modular status bar for dwm written in C, if you run the LARBS script, dwm will arrive with a bunch of very well done scripts for all your general needs. You can also find pre-made scripts all over the world wide web. It's super minimalistic, super customizable and super light, love it.

Menu: dmenu

"dmenu is a fast and lightweight dynamic menu for X. It reads arbitrary text from stdin, and creates a menu with one item for each line. The user can then select an item, through the arrow keys or typing a part of the name, and the line is printed to stdout. dmenu_run is a wrapper that ships with the dmenu distribution that allows its use as an application launcher." I haven't dabbled particularly with dmenu since it comes with everything you need already outside of the box, it's cool and it supports a ton of stuff, like pass and other shit.

File manager: lf

lf (as in "list files") is a terminal file manager written in Go with a heavy inspiration from ranger file manager. See faq for more information and tutorial for a gentle introduction with screencasts. super light, super easy to config, and, of course, supports vim bindings

Email client: neomutt

neomutt is a command line mail reader, has a ton of cool features, its super light and, of course, uses vim bindings. You can use mutt-wizard to easily setup your email accounts. 10+

Battery utility: battop

battop is an interactive battery viewer written in rust that works from the terminal, it gives you all the basic battery info you want to know using a series of graphs, its very lightweight and supports multiple batteries (if you have a thinkpad you know what im talking about)

Battery optimization: TLP

TLP is a feature-rich command line utility for Linux, saving laptop battery power without the need to delve deeper into technical details. TLPs default settings are already optimized for battery life and implement Powertops recommendations out of the box. So you may just install and forget it. Nevertheless TLP is highly customizable to fulfill your specific requirements.

P.S. i still can't manage to make the TLP service work properly with runit, so if you want to create a highy customized config you might want to stick to systemd

Task manager: htop

Again, if you ever want to be taken into consideration by the cool guys and gals of the ricing sub-scene you have to have this process viewer. All jokes aside htop is a neat piece of software, very light and super useful, written in the mighty C language.

Text editor: neovim

Ok, big boys time, I use neovim as my main text editor both to play around in linux and to write code.\ I use the AstroVim setup, it's a very "IDE-like" setup and you can go much more minimalistic if you need to. That being said i am constantly hopping among major neovim configs so this might very well change in the future. I didn't customize the setup very much just:

  • relative lines set to true
  • catcapuccin as my theme
  • path_display not truncated
  • telescope search with hidden files enabled
  • random nerdfont installed using this guide (i will probably copy it just in case this site cease to exists)
  • macro changes
  • lazygit for git version control
  • minor bindings changes
  • minor treesitter changes
  • other stuff I'm too lazy to remember

Does this setup suck for your usecase? Remove it with:

rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim

Calendar: calcurse

calcurse is a calendar and scheduling application. Terminal based, has a configurable notification system, uses vim bindings. Cool stuff.

RSS reader: newsboat

newsboat is an RSS/Atom feed reader for the terminal. Super easy to setup and use, uses vim bindings.
Here are the things i follow as of right now.

Browser: Librewolf

Librewolf is a custom and independent version of Firefox, with the primary goals of privacy, security and user freedom.

Audio: puslemixer

Pulsemixer is a self-sufficient single-file python app that doesn't require any extra libraries. A great CLI mixer.

Note taking: Logseq

logseq is an open-source note taking application that i enjoy using (mainly at work), it supports markdown, tasks management, whiteboards and PDFs annotations.

Network Manager: nmtui

A text based network interface for NetworkManager, easy to use, configure and modify.

Shell history: hiSHtory

hiSHtory stores a history of all your commands, the directory in which you used them, if they succeeded, the time of execution and more. This is stored locally and e2e encrypted.
You can query them via the hishtory CLI, it offers a wide range of personalization options and a ton of advanced features like:

  • AI shell assistance
  • Custom columns
  • Web UI
  • Filtering duplicate entries
  • Syncing

and more. I like it.

Backups: Pika Backup

Pika Backup is, as of right now, the easiest way i found to backup my Linux system. It allows you to do incremental backups, encrypt them, schedule them and run them remotely. It uses BorgBackup under the hood and is part of Gnome cirle apps.

SWAG: neofetch

Do i need to say more? You can have it start at login to flex on r/unixporn, normal linux users will be most likely disgusted (rightfully so)