Sxmo Project Goals and the sxmo_migrate.sh on Upgrades Flaw

In every release of Sxmo, we have a message in the release notes stating the following:

This release brings a lot of changes to sxmo configuration files and hooks. Leaving your old configs can cause many issues so we recommend you run sxmo_migrate.sh as soon as you upgrade.

Users often do not read the release notes and join the irc channel to ask why their installs broke. Exploring this issue should explain Sxmo project goals to new users while providing context for Sxmo requiring this annoying manual intervention from the user. Moreover, in the upcoming postmarketOS stable release, we have a major improvement to this issue.

[Read more]

Onboarding New Contributors: Good First Issue Label

People sometimes ask me “how do I get into contributing to Free software”. Contributing to Free software can be as difficult as starting a new job - you don’t know where to start, the abbreviations everyone uses are foreign to you, and you’re worried about embarrassing yourself 1. Your motivation might vary but I got into Free software to learn and because it is fun! Here is how I started contributing to Free software and maybe this post can provide Free software maintainers info on how to have a more welcoming project for newcomers:

[Read more]

Ditch plex/jellyfin/kodi (or worse Netflix)! My favorite mpv scripts

mpv is my favorite video player. It has a lot of user scripts written in a variety of programming languages. Many people install jellyfin, plex, or kodi to emulate a netflix-like experience. Here's how I am able to emulate a netflix-like experience with mpv using user scripts:

skiptofade.lua

skiptofade.lua skips til a black screen appears. This allows you to skip intros to shows very easily by pressing a keybinding. The default keybinding to run this macro is b.

Stuck on grub menu after Luks Full Disk Encryption (coreboot)

I used ivyra1n to install skulls with seabios payload on my x230. However, after installing coreboot, I could not boot into a lot of distros after installing with their full disk encryption 1 . Here is fix and a potential workaround.

So I recently decided to try out Devuan because I don't like systemd on Debian. I followed devuan's Full Disk Ecryption guide. The install went fine, I booted and pressed enter on "Devuan GNU/Linux" in the grub menu. After which, my computer display froze like this:

[Read more]

Sourcehut multiple documentation versions

When using man.sr.ht for Sxmo’s documentation we wanted to have three versions:

  1. Documentation for the latest tagged stable release of the code in edge
  2. Documentation for the latest git HEAD version of the code
  3. Documentation for the latest tagged stable release in postmarketOS stable

Having three versions allows us to document features as we add them to the git HEAD or postmarketOS edge. Additionally, we want to serve up an HTML version of both versions so that users of the git HEAD can read how the new features work and users of the stable releases don’t get information about features that don’t exist.

[Read more]

Setup xinitrc (startx) and connect to DBUS (set DBUS_SESSION_BUS_ADDRESS) on Debian 11

I recently installed Debian 11 on a workstation and the .xinitrc I usually use on Gentoo (with openrc) and Alpine (also openrc) did not properly setup dbus ($DBUS_SESSION_BUS_ADDRESS env variable was empty). I tried putting export $(dbus-launch) in my .xinitrc as stackexchange recommended but this did not fix the dbus environmental variables being unset. $DBUS_SESSION_BUS_ADDRESS not being set is problematic as pinentry-gnome3 will not launch.

The fix comes from examining the example xinitrc with cat /etc/X11/xinit/xinitrc on Debian:

[Read more]

Sxmo Alpineconf 2021 Presentation

I recently gave a talk about Sxmo at Alpineconf. Sxmo is a collection of simple and suckless X programs and scripts used together to create a fully functional mobile UI adhering to the Unix philosophy for the Pinephone. I have been co-maintaining and contributing the project for a year now and it was fun to share our progress with the community.

You can watch a presentation of our project here:

[Read more]

How and Why the Benefits of Mass Surveillence are Overestimated While the Costs are Undermined

How much surveillance till we are safe?

Proponents of the current mass surveillance state are quick to point out that there is a trade off between security and privacy. The argument is - we live in such a dangerous world, we need to trade all if not most of our privacy for some sense of security. However, in this "trade off", there is no criterion for when the surveillance state has failed. Recall in January 2021, thousands of Trump supporters raided the capitol hill building. No one in the mainstream media has suggested that the world's most well funded and well equiped mass surveillance state had failed at preventing this insurrection. Quite the opposite, every single national threat is treated as an advertisement for further privacy violations even though previous privacy violations have not delivered on their promises of security. There must be discussion of a criterion for when the surveillance state has overstepped and criterion for ending the surveillance program in order to properly address this trade off. When politicians bring up security without this criterion, it is a method of sandbagging and fearmongering to prevent further discussion.

sendxmpp as a replacement for mail(1)

Tools like cron use mail(1) to notify the server admin of failing services. It is trivial to configure postfix to only send mail. However, moving to my new server, the mail port (port 25) is blocked by my internet service provider and I cannot send email from my network. I could use something like msmtp to have my email service provider (migadu, gmail, etc.) send my emails for me but I would be using up my daily outgoing message quota. To avoid running into this limit, I looked to employ a different protocol - xmpp.

[Read more]

GoAccess - You do not need proprietary javascript to get analytics

I run noscript in my web browser to block javascript by default. I often come across blogs that are fully functional with javascript disabled but ask to run some javascript. The javascript the blog asks to run is usually used to provide the webmaster with analytics about the users. The automatic loading of proprietary javascript is especially problematic if the javascript is served by a third party domain. Since you cannot control the security or personal ethics of the third party domain, you are putting your users at risk of downloading malware. The loading and execution of javascript also increases the load times of your website.

[Read more]