#VoidLinux refused to boot from #Ventoy. I dd’d it.

Feel free to block the hashtag if you don’t want to see more post of me kinda live (but turn-based) tinkering with Void on a real hardware.

#NotFullyLiveVoidPosting

Although this is clearly a UEFI system, I had to create an MBR with only one partition (no swap) to install. Otherwise I would get GRUB errors no matter what partitioning scheme I tried. 🤷

#NotFullyLiveVoidPosting

Aside: Logitech K240 is not a particularly comfortable combo, but it is a keyboard and a mouse that work with a dongle, no need for Bluetooth, which is not there yet, and is quite small, so it is convenient backup to have. Case in point: me doing this.

#NotFullyLiveVoidPosting

`sudo xbps-install -Su`

`sudo xbps-install dbus-elogind elogind polkit mesa-dri sway foot xorg-fonts`

`sudo ln -s /etc/sv/dbus /var/service/`

`sudo ln -s /etc/sv/polkitd /var/service/`

`sudo reboot`

Login, `sway`

The minimalist #Sway installation is done.

#NotFullyLiveVoidPosting

I don’t write everything I do, but I have reinstalled it a few times to try some things. The goal is to poke at it, you know :)

For example, I’m now on a version with a swap partition. I know there is a debate, and I don’t know enough to care one way or the other.

#NotFullyLiveVoidPosting

`sudo xbps-install wmenu clipman font-adobe-source-code-pro gdu btop micro fastfetch nushell syncthing`

`mkdir ~/.config/foot/`

`cp /etc/xdg/foot/foot.ini ~/.config/foot/foot.ini`

`micro ~/.config/foot/foot.ini`

Default shell: `shell=/usr/bin/nu`. It is possible to set #nushell as the login shell, but I would say it is unnecessary and on Void would require adding environment variables to `$nu.env-path` (https://github.com/nushell/nushell/issues/7941), which is annoying.

#NotFullyLiveVoidPosting

nushell doesnt inherit /etc/locale.conf when used as a login shell · Issue #7941 · nushell/nushell

Describe the bug I set nushell as my login shell and then found that ncmpcpp no longer displays UTF-8 characters. I tracked this down to the missing LANG environment variable that is supposed to be...

GitHub

`wmenu` just works.

`clipman` https://wiki.archlinux.org/title/Sway#Clipboard Not sure about that command, but clipboard works without it. Maybe it is for history and stuff?

Also, that’s your autostart: just `exec [command]` (`exec syncthing --no-browser`). Very simple. Pretty cool.

#NotFullyLiveVoidPosting

Sway - ArchWiki

`sudo micro /etc/default/libc-locales`

Uncomment some stuff.

`sudo xbps-reconfigure glibc-locales --force`

`sudo micro /etc/locale.conf`

Add/Change `LC_TIME=`. Reboot.

That way I can have English language for text and everything, but not have to stare at that AM/PM nonsense.

I am also very curious about the `xbps-reconfigure`. Seems like a very good idea for fixing problems, but that’s theoretical at this point.

#NotFullyLiveVoidPosting

Ok, I’m done for today, not sure when I’ll be in the mood to continue (it’s for fun first and foremost!). Tomorrow? Shrug. But here is a joke for you:

How minimalist is #VoidLinux? If you install a web browser, the number of packages doubles!

#NotFullyLiveVoidPosting

I fell into another hole. You see, there is no #OhMyPosh in #VoidLinux, only #StarshipPrompt. So I thought about it… And now I have styled my prompt in #Nushell itself, no other stuff necessary.

It doesn’t do anything fancy, just picks colors based on hostname and also shows status of a git directory. So 100% the same as my Oh My Posh config.

#NotFullyLiveVoidPosting

#Xfce flavor of #VoidLinux live image boots from #Ventoy fine. Peculiar.

#NotFullyLiveVoidPosting

Instead of installing a browser, I just downloaded an AppImage of Ungoogled Chromium. https://ungoogled-software.github.io/ungoogled-chromium-binaries/ It just needed the `nss` package (AFAIK there’s no easy way to find that out, just to look up the library it yells about).

Then I made my own KDE Connect. Well, not really: it’s just a couple of commands that save and load the clipboard (with `wl-clipboard`) into a file that is synced with Syncthing. Good enough for a minimalist setup I’m trying to achieve.

#NotFullyLiveVoidPosting

Downloads for ungoogled-chromium

Oops, broke my `fstab`: simple typo and I forgot to create a directory for the mount point. #Rescuezilla to the zilla!

BTW, one of the things I want to do with #NotFullyLiveVoidPosting is not ignore mistakes and frustrations. But I don’t want to be like “and then I spend half an hour staring at very unhelpful documentation” because it’s not that interesting, we all know that documentation is bad most of the time.

Screenshot! This was a bit annoying because I wanted to have a readable naming scheme. So now it is a script that gets the name of a focused window from `swaymsg` (main pain), then creates a sub-directory and then asks `grim` to take a screenshot and output it to that sub-directory.

I know you can use `grim` to take a screenshot of a specific window, but I think that would be overkill.

#NotFullyLiveVoidPosting

Everyone’s favorite thing under #Linux, setting up audio!

`sudo xbps-install pipewire`

`sudo mkdir -p /etc/pipewire/pipewire.conf.d`

`ln -s /usr/share/examples/wireplumber/10-wireplumber.conf /etc/pipewire/pipewire.conf.d/`

`ln -s /usr/share/examples/pipewire/20-pipewire-pulse.conf /etc/pipewire/pipewire.conf.d/`

`exec pipewire` → Sway’s config, reboot.

`wpctl status`

`wpctl set-default {sink ID}`

`wpctl set-volume {sink ID} 1` (not %, it goes to 1)

😰 It works.

#NotFullyLiveVoidPosting

I don’t need anything fancy like volume control because I use physical knobs for that: https://mastodon.online/@alsorew/111781749957683644

#NotFullyLiveVoidPosting

Andrew (@[email protected])

Today I re-implemented my #audio setup. Nothing fancy, but useful. 1st, the #PC has two outputs, Default (catches everything and is set to a low volume, so nothing can accidentally get TOO LOUD) and Media (media players, where having the full range is important because some things can be quiet). 2nd, these things go into a little box that can generously be called an audio #mixer: 4 mini-jack inputs and 1 mini-jack output, so it is a standalone and I can control the volume for my 🎧 with knobs.

Mastodon

#Geekbench shows increase (85760 → 92829, ~8%) in Vulkan GPU performance from Windows 11. https://browser.geekbench.com/user/434938

Sure.

#NotFullyLiveVoidPosting

Alsorew's Profile - Geekbench

Hey, look who’s back!

First, #VoidLinux updated without a hitch, despite being dormant for almost a year (really?! Wow!). But I didn’t – I’d completely forgotten my sway and foot shortcuts, so I installed #KDEPlasma instead (`kde-plasma` and `kde-baseapps`). It’s graphical, I know it, I like it. Then I installed `pulseaudio` to fix the sound. Enabled SDDM. And #WezTerm, why not.

#NotFullyLiveVoidPosting

#syncthing was a hassle. I’m not sure why, as I’m dealing with multiple unfamiliar variables here – `runit` and `chpst` – but after installing `socklog` (#VoidLinux is really minimal, y’all!), I guess setting `env` before everything else was the key. In the end, my `run` file looks like this:

#!/bin/sh

exec 2>&1
exec env HOME=/home/andrew \
chpst -u andrew:andrew \
/usr/bin/syncthing serve --no-browser --logflags=0

https://github.com/syncthing/syncthing/tree/main/etc/linux-runit was not helpful.

#NotFullyLiveVoidPosting

syncthing/etc/linux-runit at main · syncthing/syncthing

Open Source Continuous File Synchronization. Contribute to syncthing/syncthing development by creating an account on GitHub.

GitHub

It was all for this…

I installed `gamescope`, `MangoHud` (case sensitive) and `MangoHud-mangoapp` (you need that one), as well as their 32-bit counterparts, just in case.

Then I ran the script from https://github.com/shahnawazshahin/steam-using-gamescope-guide Then I panicked because, while it was doing its thing with #gamescope, the screen went completely blank. But it works now and I have my own #SteamMachine already. SDDM logs in automatically, I can switch to the desktop and #MangoHud works.

#NotFullyLiveVoidPosting

I also added a repository to #VoidLinux: just a file with one line. Really easy!

https://github.com/xJayMorex/ProtonPlus-void

#ProtonPlus is just a fancier-looking #ProtonUp.

#NotFullyLiveVoidPosting

Sorta todo for later:
• gamepad (I hate `udev`);
• testing a couple of games to check if I forgot anything;
• the hardest, but not impossible part – figuring out if I can install the #DeckyLoader on #VoidLinux;
• Haiku in VM. JK.

Don’t plan on playing anything on it yet. It’s amazing how many games I’m interested in can run on much less powerful machines, including my phone. I just was in the mood for tinkering, for those few games that require a more powerful PC.

#NotFullyLiveVoidPosting

I take it back about #syncthing https://github.com/syncthing/syncthing/tree/main/etc/linux-runit Mostly: it should be simply `export SYNCTHING="/usr/bin/syncthing`.

Decided to use my old #SteamController, which made it easy. The #VoidLinux `steam-udev-rules` package is useful for this. Or does it work without it? Shrug.

I made #DeckyLoader work with #runit, but it’s store is currently unavailable (just for me?) so I can’t test it. I also don’t know how it is updated.

So, now Haiku. Still JK.

#NotFullyLiveVoidPosting

syncthing/etc/linux-runit at main · syncthing/syncthing

Open Source Continuous File Synchronization. Contribute to syncthing/syncthing development by creating an account on GitHub.

GitHub

Copying the plugin folders manually worked. Not many of them will be useful, but I tested SteamGridDB and ProtonDB Badges.

I also tried installing a previous version of #DeckyLoader to see if it would update, but it broke. So I’ll leave it for now. I’m thinking of writing a script for automatic installation, #runit and all, which shouldn’t be hard. However, doing everything by hand is also not that difficult. As usual, feel free to ask.

#NotFullyLiveVoidPosting

https://docs.voidlinux.org/installation/guides/fde.html

I followed this guide in a VM. It worked flawlessly, but it’s a lot! In the end, you don’t even have a user account. However, it’s a good foundation for a laptop that can leave your house. And that’s what I’m preparing this setup for. I need to test what I can simplify for myself. I also need to look into different file systems. If I’m redoing everything, it’s a good opportunity to make improvements.

#NotFullyLiveVoidPosting

Full Disk Encryption - The Void Linux Handbook

Don’t be like me and spend an embarrassing amount of time trying to figure out how to run a #runit service as a user. I guess #kanatakbd uses `cmd` to run another program (`wtype`), but permissions still interfere… 🤷 at this point I gave up.

What you *should* do is to create a user-level service: https://docs.voidlinux.org/config/services/user-services.html Then it’s simple: make a dir, put a `run` in it (`log/run` optional), and you’re done. Is it a service or a #nushell script? Both! Runit is great!

#NotFullyLiveVoidPosting

Per-User Services - The Void Linux Handbook

It also makes scheduling way simpler. Want something repeated every hour? Add a `sleep` to your script. It will do what needs to be done, wait, stop, and then `runit` will start it up again.

For more complex tasks (“do something on Sundays at 5 in the morning”, for example), swap `sleep` with `snooze`. While both `cron` and `snooze` were written by aliens who are afraid of human language, it’s easy to do a dry run of `snooze` and see if your incantation is correct.

#NotFullyLiveVoidPosting