#laclin — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #laclin, aggregated by home.social.
-
Subject: Linux browser and distro development
I re-added Epiphany [aka GNOME Web] to my Linux distro, Laclin, today after some years.
Screenshot: Epiphany git-current, 64-bit version, running in Laclin.
The latest snapshot runs well except for crashes that occur during scrolling. That'll need to be fixed in order for the browser to be a daily driver. But it's nice to have another alternative to Chromium and Firefox derivatives. Especially since #Epiphany will probably work in the 32-bit version of #Laclin. Chromium and post-Quantum Firefox derivatives won't work.
Epiphany now runs on top of Gtk4-based webkitgtk4 API 6, the successor to Gtk3-based webkit2gtk3 API 4. It supports modern websites, including those with a heavy dependence on JavaScript. FWIW This post was itself made using Epiphany.
The primary deficiency of Epiphany, the crashes aside, is that [as with other non-Mozilla browsers] it isn't able to run uBlock Origin. It does include a built-in ad blocker and popup blocker that supports custom block lists.
One other issue is that, in non-GNOME distros such as my own, Epiphany doesn't offer a simple way to set up a web proxy. However, "proxychains-ng" [a Linux CLI proxy support tool] works fine for the purpose.
To build Epiphany git-current, I needed to build 3 new packages first -- "blueprint-compiler", "libportal", and "webkitgtk4" -- as well as update a few GNOME-related libraries such as "gtk4" and "libadwaita".
Technical note: My Linux #distro continues to support "webkit2gtk3" concurrently with its successor "webkitgtk4". The distro's philosophy is to support multiple series in some cases even where the different series conflict. So, we include, for example, Gtk1, Gtk2, Gtk3, and Gtk4; Qt3, Qt4, Qt5, and Qt6; and ffmpeg 2 through 8. -
No, but my Linux distro includes a boss key because, why not. [See screenshot.] Actually, I think that this is referred to as a "Show Desktop" button, but I'm not sure that I see the difference.
In the 1990s, my CEO at IPT would have been outraged if he'd thought that people were sneaking game time on the sly. But I don't recall that he minded when we set up the office openly, just for a few days, so that everybody could blast away in Doom. I think that we even ran extra cables.
We must have used DOS TCP packet drivers. The details are lost to time, but I remember that it worked pretty well.
A young developer named Leon, now an aging CEO in Norway, brought his two daughters to the office for a visit. We booted up a DOS game called "Katie's Farm" for them and they apparently talked for days about picking strawberries in the game. Nobody minded that.
However, if somebody had been caught using a boss key, that would have been the end of them.
I thought of boss keys, myself, primarily as humor. Wouldn't an approaching boss see you move quickly to hit just the one key? I suppose that somebody with nerves of steel would be able to bluff their way through it.
Link to a copy of Katie's Farm:
https://tinyurl.com/katies-farm
Screenshot: Boss key in #Laclin Linux with the desktop running BEWorld, a video game that has the distinction of being written entirely in Tcl [even the music data and other assets].
#DOS #games -
Topic: Linux distro development
I've just completed a full rebuild of my Linux distro, Laclin, and I thought I'd comment on a worthwhile point.
Today, the vast majority of 64-bit #Linux #distros support 32-bit mode primarily as a set of 32-bit libraries, referred to as "multilibs", that are used to permit the builds of 32-bit components.
Relatively few 64-bit distros permit the user to boot into a true 32-bit desktop, 32-bit kernel plus 32-bit applications, that might run on 32-bit boxes that are decades old.
I haven't seen a reason to drop support for true 32-bit mode. It's only a little more work compared to "multilibs" to build a complete tree of 32-bit executables. So, my distro does precisely that.
#Laclin is able to boot into any of the following modes: 64-bit kernel plus 64-bit programs, 64-bit kernel plus 32-bit programs [this mode is useful for 32-bit cross-compiles as compilers are able to use more RAM], and 32-bit kernel plus 32-bit programs [true 32-bit mode].
In true 32-bit mode, most things work normally. You can read email using Thunderbird, edit documents using LibreOffice, play videos and music, edit images using The GIMP, and browse the Web using the WebKitGTK mini-browser [which works even with modern websites].
The main things that are missing are support for Chromium and Firefox derivatives and all programs written in Rust.
So, why not support this mode?
Illustration: The attached JPEG is a screenshot of Laclin Linux booted into true 32-bit mode. The applications shown are 32-bit versions that will run, in some cases, on boxes that are decades old. -
Subject: Accessibility for visually impaired Linux CLI users
Illustration: XFCE Terminal running in #Laclin #Linux with the change described below.
This article may be of interest to Linux users with slight visual impairment. It assumes basic knowledge of CLI [middle school level and up].
The following change will make the menus for Gtk3 programs more readable in some cases. In other cases, it won't make a difference as menus have been properly configured in other ways.
Gtk4 programs are addressed further down. Note: superuser isn't required to make the change.
First, execute:
mkdir -p $HOME/.config/gtk-3.0Next, edit the following text file: [create the file if it doesn't exist]
$HOME/.config/gtk-3.0/gtk.cssAdd the following settings or modify existing settings to match:
menubar > menuitem label { color: #0000aa; font-size: 5mm; font-weight: bold; } menu menuitem label { color: #0000aa; font-size: 5mm; font-weight: bold; }Save the file and restart Gtk3 programs.
A similar change should work for Gtk4 programs. To address those programs, substitute "gtk-4.0" for "gtk-3.0" in the instructions.
Easy to overlook: If you're running programs in Firejail, remember to create and/or modify "gtk.css" files in the appropriate Firejail directories. For example, if you're running "hexchat" in Firejail, the "gtk.css" file to create and/or modify for that program might be:
$HOME/.firejail/hexchat/.config/gtk-3.0/gtk.cssFor readers who have LinkedIn accounts, a LinkedIn version of this post is online at:
-
Screenshot: Laclin desktop. To see it in a larger size, right-click on the image and select Open Image in New Tab or similar.
@mason : I encourage you to continue with your #Linux distro even if it needs to be a one-person project. There will be all sorts of spin-offs from the project.
I'll add more in the coming months to the #Laclin site about how that distro is unique. I can say here that:
* My distro fits in a pants pocket -- it boots from SSD or Flash. To me, a laptop is just another peripheral.
* For cloud deployment, Laclin can run in a chroot on top of Debian on a dedi. So, cloud installation is almost as easy as unzipping a few ZIP files. The ZIP files add up to about 200GB, though, so plenty of disk space is needed.
* For improved security, there are nearly no foreign binaries. I build nearly everything from source. This includes the web browsers -- UChromium, LibreWolf, Tor Browser, and my own browser, AlbusLuna -- as well as LibreOffice. Firmware and old game EXEs might be the only exceptions to the rule.
* Nearly every package can be built offline. This includes packages based on Go, Haskell, Rust, and other languages that usually require Internet access.
* The size of the distro is comparable to that of a typical Debian install, but it's super-light.
* The core desktop executable is only 100KB in size. But the distro has a Start menu, launch buttons, a taskbar, workspaces, a systray, alt-tab, and single-instance support.
Does anybody truly need more?
* I collect and maintain obscure programs that deserve to be distributed and used. The distro includes dozens of unique tools of my own design as well.
* One of my hobbies is to transcode videos to optimum file size, dimensions, and sharpness. I pad some videos with black borders to prevent devices from upscaling them.
I also normalize audio and add readable yellow subtitles below the videos [as opposed to in them].
I use neural nets -- in my distro and not online AIs -- to upscale both videos and images. Note: I use the images for movie posters. The neural nets work with old CPUs and don't require GPUs.
So, the distro includes an OldCoder video toolset which handles all of that.
* The distro can, of course, play and/or rip BluRay discs [older type and not Ultra HD] as well as DVDs.
* I plan to add a number of other major distros to my distro as containers. It'll be a Porting Center on a Stick.
* Built-in servers include Angie and a Fediverse instance. Angie is an enhanced Nginx that handles certs for you. The Fediverse instance is Pleroma-BE plus my own fork of Soapbox-FE.
This post is being posted using Laclin and that same Fediverse instance. Laclin is running in a chroot on top of Debian on a relatively light dedi.
* The package system permits conflicting libraries and program releases to coexist. So, for example, every OpenJDK from 15 to 20 is preinstalled. OpenJDK 08 as well in case you'd like to run Java programs from 2000.
* I've migrated much of the distro from "gcc" to "clang". I hope to go a step further and migrate from "glibc" to "musl" as well. Note: This is based on multiple factors and isn't an implied criticism of "gcc" or "glibc".
* The distro will be useful after the coming apocalypse because the goal is to build everything right into the system. Source code, Wikipedia, WikiHow, street maps, books, music, and puzzles and games. No Internet will be needed.
Of course, after the apocalypse, it might be difficult to obtain laptops, SSDs and Flash sticks, and electricity. But, still. I love my distro. -
I added Bluetooth support to my #Linux distro, #Laclin, this weekend. It's years overdue, but I can finally use a single headset both for distro work and for multiple phones.
To try out a Bluetooth headset, I used my favorite #music player, Audacious, and a new player, Qmmp. Note: Qmmp has been around since 2007, but it's new to me. It went into the distro only today.
Qmmp is inspired by, and strongly resembles, Winamp and XMMS. I find the default window to be too dark and small to use. However, if the "KGP_Win98" skin is used and double-size mode is turned on, the Qmmp GUI is quite readable and fun to play with.
Points worth noting:
1. Qmmp supports all standard sound formats and some lesser-known formats.
2. MIDI support is included. To enable MIDI support, distro maintainers need to build a library named "wildmidi", install "freepats", and fiddle with configuration settings for both "wildmidi" and Qmmp. However, the resulting sound is pretty good. As a bonus, "wildmidi" comes with its own CLI MIDI player.
3. Qmmp is a music player, but you can pass a video file to it. In this case, Qmmp acts as a GUI front-end to MPlayer. Note: To make this work, turn on the MPlayer plugin in Settings.
4. You need to download a standard Qmmp skins ZIP file separately. It provides about 133 skins. XMMS and Winamp 2 skins are supported as well. There are apparently 1,000s of them.
5. The program supports a number of special features, either built-in or via plug-ins. Examples include a ReplayGain scanner, an equalizer, a visual analyzer, a playback history log, and conversion of audio files to other formats. -
Topic: #gamedev
ScummVM is a games system that is similar to #MAME though not quite the same. It supports a wide range of old games, largely commercial, that were sold for different platforms in the past.
I built #ScummVM from source in my #Linux distro, #Laclin, today. I had no trouble with the build. I recommend the program to other distro developers.
The ScummVM source tree may be obtained as follows:
git clone https://github.com/scummvm/scummvm.gitYou don't need the ".git" subdirectories in the tree. You can delete them and this will save nearly 2GB of disk space.
Before a build can be done, you may need to install the devel versions of a number of packages, including the following:
alsa, curl, faad2, fluidsynth, fribidi, giflib5, gtk3, jpeg, libflac, libmad, libmpeg2, libogg, libpng, libvorbis, sdl2, theora, timidity, xorg, and other graphics and multimedia libraries.
I haven't found a formal requirements list in the ScummVM source tree yet. That is one possible issue for other developers. In my case, my distro has all of the devel packages preloaded -- the distro is monolithic -- so it wasn't an issue for me.
This is a "configure"-based FOSS project. The build procedure that I used was similar to the following:
mkdir -p /opt/scummvm bash ./configure \ --prefix=/opt/scummvm \ --disable-all-unstable-engines \ --enable-optimizations make -j4 make installTo make the program work, I needed to create the following configuration file:
$HOME/.config/scummvm/scummvm.ini
which looked initially like this:
[scummvm] scaler=hq scale_factor=2 gfx_mode=hq2x mute=false versioninfo=2.9.0gitTo take a screenshot, one presses Alt+S. The screenshot is saved in the current working directory.
That is most of it. Half an hour and a new game system is in place.