Geekices

Status on userrepository changes

It took me a while to update you about the latest changes to my Arch and Arch-compatible Linux distributions repository. But first, let me apologize for the delay: work, personal life and, for about 3 weeks now, a horrible back pain (that just doesn’t stop, even with an handful of medication) have kept me from doing this in the time frame I expected.

First on the “agenda”, I experimented with increasing the zstd compression level for the packages like I said I would do in my last post about the repository. The trade-off was not worth it: the increase in packaging time was far superior to the small decrease in package size. So, I’ll keep the zstd compression level to “-12” in the foreseeable future.

Also, up to a few days ago, I would manually update the packages and, from time to time, do a full build. Now, I’m using a cron job and pueue to manage the tasks and it always does a full build.

If you don’t know pueue, this application is a command-line task management tool for sequential and parallel execution of long-running tasks. Besides adding tasks, you can watch the logs for them, the exit codes and even follow what the task is doing (just like using “tail -f /destination/file“). But pueue can do much more. Go check it out at Github.

Userrepository.eu also has a few more packages. For example: vimtips, wego, wttr, plymouth and performance-tweaks. All of them are at AUR and at the Git repository where I have userrepository.eu sources, if you want to take a look at the commits (just ignore some of the commit messages, because I can be lazy with them at times ^^’).

One last thing: please become a Patron if you want to support userrepository.eu. Even €1 will help cover the monthly expenses, just over €15. If I get enough patrons, I’ll be able to upgrade the virtual machine to one with better specs, which will allow a higher package compression level, shorter build times and maybe even packaged kernels. Thank you!


Geekices

My tools of trade in a Linux system

With no special order:

Desktop environments and/or window managers

  • plasma (to me, the best desktop environment for any free software operating system)
  • i3wm (paired with picom [https://github.com/ibhagwan/picom] for transparency, blur and rounded corners)

Terminal emulators

  • konsole (I’ve grown very fond if this terminal emulator since I switched to the plasma desktop, and it has blur for the blings ;))
  • urxvt-unicode (with tabbedex, so I can have tabs with it)

Text editors

  • micro (my favorite and because it supports gui keybinds, although it’s a cli text editor)
  • nano (simple and super useful, available by default in a lot of linux distributions)
  • vim (I have a custom mode for writing markdown text)
  • gedit (for when I need a text editor with a gui)

Note taking

  • qownnotes

Browsers

  • firefox (my favorite for around a decade and an half. I actually used the 0.x versions)
  • chromium
  • brave
  • falkon

Multimedia

  • gimp (and a fork named glimpse)
  • darktable
  • lightzone (like darktable)
  • jpegoptim
  • optipng
  • oxipng
  • youtube-dl

System tools

  • htop
  • gotop
  • cat
  • scat (for when I need to ‘cat’ a file with syntax highlight)
  • less
  • watch (I like to keep a pane opened on tmux with the hardware temperature [watch -n1 ‘sensors -A | egrep “edge|temp”‘])
  • openssh
  • dotdrop (for the dotfiles backup)
  • tmux (I love this terminal multiplexer)
  • tmuxinator (useful if you want to open tmux with any number of panes by default)
  • broot (a cli file manager with vim-like keybinds and commands)
  • fzf integrated with bash (because fuzzy search rocks)
  • pacman (because I use EndeavourOS, basically Arch with a graphical installer)

What about you? What are your tools of trade in a Linux system?


Geekices

Improving boot time

Today, I’ve decided to try and improve the boot time of my laptop, running EndeavourOS. There was no special reason for it other than “Why not?”.

The first thing I made was disabling or masking the following systemd services:

  • systemd-resolved disabled
  • tlp disabled
  • NetworkManager-wait-online disabled
  • lvm2-monitor masked
  • org.cups.cupsd disabled
  • packagekit masked
  • bluetooth disabled (I rarely use the laptop’s bluetooth)
  • blueman-mechanism disabled

With this, I was able to save a few milliseconds and decrease the enabled systemd units to 15, but the impact was negligible.

brunomiguel@kepler: ~
└─ $: systemctl list-unit-files --state=enabled --no-pager
UNIT FILE STATE VENDOR PRESET
autovt@.service enabled disabled
avahi-daemon.service enabled disabled
dbus-org.freedesktop.Avahi.service enabled disabled
dbus-org.freedesktop.nm-dispatcher.service enabled disabled
display-manager.service enabled disabled
getty@.service enabled enabled
haveged.service enabled disabled
NetworkManager-dispatcher.service enabled disabled
NetworkManager.service enabled disabled
sddm.service enabled disabled
systemd-swap.service enabled disabled
unbound.service enabled disabled
avahi-daemon.socket enabled disabled
remote-fs.target enabled enabled
roothints.timer enabled disabled

15 unit files listed.

To further improve the boot time, I tested bfq, kyber and mq-deadline I/O schedulers. From the three, the last one allowed to shave off another few milliseconds to the boot time. Next, and last, I changed the mkinitcpio ramdisk compression to lz4 with the default compression options.

With this changes, I went from 17.040 to 15.511 seconds, decreasing a bit more than one and an half seconds in the boot time.

brunomiguel@kepler: ~
└─ $: systemd-analyze time
Startup finished in 10.145s (firmware) + 1.616s (loader) + 2.027s (kernel) + 3.250s (userspace) = 17.040s
graphical.target reached after 2.934s in userspace

brunomiguel@kepler: ~
└─ $: systemd-analyze time
Startup finished in 10.175s (firmware) + 686ms (loader) + 2.041s (kernel) + 2.608s (userspace) = 15.511s
graphical.target reached after 2.529s in userspace

In the future, I might replace GRUB2 with systemd-boot, possibly decreasing the boot time even more.

This was tested in a AMD A9-9420 CPU with the linux-zen kernel. Your mileage may vary depending on your hardware.


Geekices

MintBox 3 disponível

O MintBox3, o computador desenvolvido pela Compulab em parceria com o projeto Linux Mint, chegou. O equipamento está disponível em duas edições, Basic e Pro, e vem com a versão mais recente da distribuição, Linux Mint 19.3 Tricia, pré-instalada.

Esta é a quinta interação do MintBox. A estética mantém-se semelhante às versões anteriores e apresenta uma boa capacidade de processamento, para além de algumas características interessantes, como uma quantidade bastante grande de portas USB (9 na versão Basic e 10 na versão Pro).

No que toca a especificações, elas são as seguintes:

Basic

  • CPU: Intel i5 9500
  • RAM: 16GB DDR4 2666MHz
  • Disco: 256GB NVMe Samsung
  • Gráfica: Intel UHD 630
  • Rede: Dual Gbit Ethernet e WiFi 802.11ac

Pro

  • CPU: Intel i9 9900K
  • RAM: 32GB Dual channel DDR4 2666MHz
  • Disco: 1TB NVMe Samsung
  • Gráfica: Intel 630 UHD e Nvidia GeForce GTX 1660 Ti 6GB
  • Rede: Dual Gbit Ethernet e WiFi 802.11ac

A versão Basic começa nos 1399 dólares e a Pro nos 2499 dólares. Estes preços não são lá muito simpáticos mas, ainda assim, uma boa forma de apoiar o projeto Linux Mint e de conseguir utilizar o Google Chrome sem que o computador se “engasgue” muito.