Userrepository using mirrors

For a few months, I considered using the mirror service from Fosshost in The service results from a partnership between Fosshost and Fastly, giving projects access to several PoP’s around the globe.

Finally, a few days ago, I enabled the service. I also created a package with the mirror’s list, userrepository-mirrors, available in my repository and AUR. The package has all the instructions for enabling the mirrors and what to do if you already have userrepository in your /etc/pacman.conf configuration.

The mirror service syncs every 4 hours. After each build, partial or full, the updated packages will be pushed to the servers with rsync.

If you’re wondering why it took me so long, the answer is simple: fibromyalgia and pain 24/7.


How to disable a D-Bus service

In some situations, you might want to disable a D-Bus service. One of those is, for example, when you use Dunst (a notification daemon) with a window manager. Still, you don’t want it to replace the notification daemon from your desktop environment.

To disable it, you just need to add .disabled to the end of the target file name. Example:

sudo mv /usr/share/dbus-1/services/org.knopwob.dunst.service /usr/share/dbus-1/services/org.knopwob.dunst.service.disabled

In the above example, Dunst will no longer replace Plasma Desktop notification daemon when using that amazing desktop environment, and all will be good with the world again. Victory! 🙂


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. 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 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 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!


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 [] 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


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


  • 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?


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
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 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 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 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.