Debian Linux returns
Discovered Neovim GitSigns plugin could be used to stage specific lines, as well as hunks.
Material for MkDocs is the static site generator tool used to create all the Practical.li websites. This project is now in maintenance mode and a project called Zensical is under active development. It seems that there should be a fairly smooth migration of existing projects to the new tool :crossed_fingers:
This summer has been an adventure with the new shiny Hyprland wayland compositor and tiling window manager. Whist Hyprland (and associated tools) can be made very beautiful, I find it has some major productivity limitations compared to i3 tiling window manager.
I've switched back my main laptop to using Debian Linux, using Sway Wayland Compositor via Regoligh Desktop as Sway works the same way as i3 (at least from a user perspective).
The evaluation of Terminal UI tools is proving much more successful and I have found some nice system tools to use (better than the GUI tools that come with Gnome desktop).
I use the keyboard for everything except graphics & video editing work, and the occasional link in the browser if its a busy page. Using a tiling window manager has helped me keep my fingers on the keyboard where they work the fastest.
I common keyboard combination I used is to copy the URL from a browser window into one of the Practicalli books, or this very journal.
Superand one of h j k l keys to navigate to the browser window (SPCfollowed by a number if the browser is on a different desktop)Ctrl+lto highlight the current page URL in location bar.Ctrl+cto copy the URL into the clip boardSuperand one of h j k l keys to navigate to the Neovim windowpto paste the URL into the Neovim buffer
Practicalliλ︎
There is a new 0.9.7 release of Material for MkDocs, which unfortunately is the last ever release.
The maintainers of Material for MkDocs are now developing Zensical, a complete re-write of the static site generator.
Hopefully it uses the same additional markup attributes as Material for MkDocs (or I will have a lot of rewriting to do :sad-face: ).
Initial investigation suggests that Zensical will be feature compatible with Material for MkDocs, although not all features may be present until a 1.0.0 release of Zensical.
It seems prudent to test Zensical on Practicalli Journal and plan to migrate everything else in the new year if all goes well (and Zensical 1.0.0 has been released).
NOTE: The 0.9.7 release may be why the Practicalli Journal site is not building via the CI workflow (as it uses the latest release by default).
Neovimλ︎
AstroNvim includes git signs which allows staging of the current hunk or the whole buffer from within the buffer.
Selecting one or more lines and using SPC g s would stage only those lines in the visual selection, even if they were only part of a hunk. This allows changes to be staged that are only part of a hunk and not the whole hunk.
Neogit also allows staging of individually selected lines, although the V key binding must be used for visual select.
Staging specific lines in the buffer is much simpler, now I know it has that capacity.
TUIsλ︎
This week I have been looking at file system explorer tools.
xplrλ︎
xplr is a minimal file explorer, configurable using Lua language. It is useful for navigating and filtering to find files and directories.
xplr uses vim-style key bindings for navigation, i.e. 'hjkl'
superfileλ︎
superfile is a multi-panel file explorer with file contents preview.
Includes an install script to add superfile to /usr/local/bin if sudo permissions, or ~/.local/bin if not.
Currently installed by downloading and extracting the spf file from the latest GitHub release.
TODO: read the tutorial TODO: configure hotkeys suitable for a vim / neovim user (mentioned in the first start info box).
rangerλ︎
I have been using ranger TUI as a file explorer for many years and it also works within Emacs (I havent tried Neovim yet).
ranger is a long standing project and still actively maintained (although is feature complete so doesn't require new features).
I enjoy the vim-style key bindings for navigate and the ability to preview files.
NOTE: unless I find something even nicer, range remains my default TUI for file navigation.
Vim-like file managerλ︎
Vifm is a curses based Vim-like file manager extended with some useful ideas from mutt.
Vifm provides more complete vim-style key bindings, modes, options, registers, commands and other tools you would expect when in Vim.
Yazi has image preview support for Kitty and many other terminals (assuming it uses the Kitty Graphics support).
Yazi - Fast Terminal File Managerλ︎
Yazi project describes itself as a blasingly fast terminal file manager.
I will test this tool out on some of my larger projects, such as Practicalli Graphic Design which has a great many files, large and small.
Debian Linuxλ︎
Debian Linux is relatively easy to install, as the wizard asks a few simple questions (timezone, lanaguage & keyboard layout, username & password, etc.).
Once Debian Linux is installed, then discovering the world of available packages can take time, as there are thousands of packages available.
Debian provides tasksel command during the initial install and it can also be used post install to add significant functionality.
Experienced Debian Linux users should already know what packages they wish to install. Using apt is very simple (even if you only vaguely remember the names of things, as package names will "tab-complete" and show all packages matching the package name or partial name).
Boot diskλ︎
Caligula is my preferred tool for creating a USB bootable disk from the Debian install image.
I could use cp ~/Downloads/debian-13.1.0-amd64-netinst.iso /dev/sda command to copy the image to the USB drive, but Caligula gives excellent visual feedback.
Burn Debian ISO with Caligula
caligula burn ~/Downloads/debian-13.1.0-amd64-netinst.iso
Input file: /home/practicalli/Downloads/debian-13.1.0-amd64-netinst.iso
Detected compression format: no compression
> Is this okay? Yes
> What is the file's hash?
Input is empty
? What is the file's hash? <canceled>
> Select target disk sda | USB DISK 2.0 - 4.1 GB (disk, removable: yes)
Input: /home/practicalli/Downloads/debian-13.1.0-amd64-netinst.iso
Size: 821.0 MB
Compression: no compression
Output: sda
Model: USB DISK 2.0
Size: 4.1 GB
Block size: 512 B
Type: disk
Path: /dev/sda
Removable: yes
> Is this okay? Yes
> We don't have permissions on /dev/sda. Escalate using sudo? Yes
Installλ︎
Download the latest Trixie (current release) ISO image. This is a net-install image which is very small as it downloads most of the packages from a Debian package mirror during the install.
Select timezone,
I used the ncurses install wizard as the install is quite simple and only a few pieces of information to provide.
In the tasksel menu at the end, I also selected "SSH Server" so I can copy files over sftp between computers.
Regolithλ︎
On first boot (Gnome desktop) I opened Firefox and searched for Regolight Desktop.
Following the install guide
- add the Regolith packages signing key
- add the Regolith personal package archive (PPA)
- update apt packages list
- install regolith, X11 and Wayland (Sway)
Reboot the Operating System.
When the login prompt displays, select the Practicalli user account and use the cog in the bottom right corner to select Regolith/Wayland (or Regolith/X11).
Create a post install scriptλ︎
# Source - https://stackoverflow.com/
# Posted by xejrx721, modified by community. See post 'Timeline' for change history
# Retrieved 2025-11-11, License - CC BY-SA 4.0
list=$(echo -e "abc.deb\njkl.deb\npqr.deb\nxyz.deb")
for i in $list; do apt-get install ./$i; done
In addition to using the -y flag for yes answers you will also want to set DEBIAN_FRONTEND=noninteractive to prevent debconf setting questions from popping up.
If there are only a few packages to add, then a self-contained script
#!/bin/bash
pkgs=(libreoffice firefox virtualbox vlc)
sudo apt-get -y --ignore-missing install "${pkgs[@]}"
apt-getwill skip packages already installed--ignore-missingskips packages that are not available- use
apt-getfor scripting as it is a low-level back-end interface, without the TextUI enhancements ofaptthat are not needed for scriptiing (assumption).
For a longer list of packages, create a post-install-packages.list file and add all the package names to that file, one on each line.
Install all the packages with one simple command
NOTE: using a separate file keeps a record of packages installed (assuming they exist) and the file can easily be added too and the command run again to only install the new package names.
TODO: automatically remove package files from cache once they are installed
Aptλ︎
Currently the apt binary supports the following commands:
listsimilar to dpkg list and used with flags--installedor--upgradable.searchsearch and sort results alphabetically (instead of apt-cache).showsimplify results fromapt-cache show, e.g. hides less important details (e.g. hashes).updatecolor output enabled version ofapt-get update, apt update also shows the number of upgradeable packages (if any).install,removeadds progress output during thedpkg run.upgradethe same asapt-get upgrade --with-new-pkgs.*full-upgrademore meaningful name fordist-upgrade.edit-sourceseditsources.listusing$EDITOR.policylikeapt-cache policy
SSH Clientsλ︎
Installing SSH Server package sets up security keys to ensure identity of a computer being connected to can be checked.
When using ssh or sftp command is used to open a connection to a computer, the identity (fingerprint) of the remote computer will be checked against identities already known, saved in the ~/.ssh/known_hosts file in the account of the current user.
If the remote computer does not have an entry in the known_hosts file, the user is prompted to confirm they want to connect. The fingerprint of the remote computer should be displayed. If the fingerprint is accepted, the connection is opened and the remote computer identity is saved in the known_hosts file.
The identity of a remote computer includes its IP address.
If a remote computer is reinstalled, new keys will be generated and SSH commands will return a "Remote Host Identification Has Changed" error.
❯ ssh practicalli@rogueone
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:******+************************************.
Please contact your system administrator.
Add correct host key in /home/practicalli/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/practicalli/.ssh/known_hosts:3
remove with:
ssh-keygen -f '/home/practicalli/.ssh/known_hosts' -R 'rogueone'
Host key for rogueone has changed and you have requested strict checking.
Host key verification failed.
The warning includes the command to remove the previous identitity of the remote computer from the known_hosts file.
The ssh-keygen command with the -R flag removes entries related to the IP address of the remote computer.
Remove remote computer from known_hosts by IP address
Output: Removing remote computer by IP address
Output: Removing remote computer by IP address
Goodbye Hyprlandλ︎
I have removed Hyprland from my work computers and reverted to the stable and low maintenance Debian Linux distribution (Debian Linux 13 - Trixie - at the time of writing this journal).
Whilst I appreciate all the great work that has gone into Hyprland (and Wayland), it still feels too bleeding edge for my taste and required many more maintenance tasks (hyprland breaking changes, Arch Linux rolling release, learning the intricacies & limitations of Btrfs).
Garuda Linux reduced the installation work for an Arch Linux & Hyprland (and many other packages) desktop environment, but there were some neiche choices that were not that easy to circumvent.
Challenges in more detailλ︎
Arch Linux has packages for Hyprland and includes a basic Hyprland setup from the Arch Linux install wizard.
- Arch requires more maintenance (this is inevitable for a rolling release, especially with rapidly evolving software like hyprland)
Btrfs (Butter FS) file system is great for creating snapshots for rolling back when issues are experienced after package updates. If you have lots of free space, then this is a very useful tool to manage issues with Arch Linux packages.
- Btrfs uses additional space to keep snapshots
- maintenance is required to remove older snap-shots
- requires a minimum of 10 Gb free space on the main storage to successfully restore from a snapshot (in practice I suggest at least 15-20GB is available)
Hyprland
- not a complete desktop environment
- limited window layout modes (master and the other one) - I3 allowed more control over positioning windows and defining splits
- sddm is very configurable, but only as the system level (no user level customisation, except to choose a theme - so if you dont like the login background you need to hack the system config for a theme or create your own theme and install it at the system level).
Fish shell
- syntax differences (declaring variables, running some commands)
Cyclingλ︎
Two rides this week.
On Thursday we rode to Speedgate Cafe and I noticed a noise coming from the rear of my bike. A quick inspection when arriving at the cafe and there was a significant crack on the rear wheel, all the way around one of the spoke nipples. Part of the wheel had also come away, leaving a bit of a hole.
I spent the cafe break re-balancing the rear wheel and discovered several other spokes were loose. Those spokes seemed to have damaged nipples as they would not tighten or loosen. After about 20 minutes of delicately tweaking all the spokes that would adjust, the wheel was running straight enough to get me home.
On Friday I visited Coney Hall Cycle shop and acquired a new Bontrager Affinity TLR wheel as a replacement for the Mavic Aksium that came with the Ribble SL bicycle. Although the wheel was new, it only cost 135 GBP.
The owner of the shop even swapped the disc brake over from the Mavic to Bontrager wheel for me at no cost (showing me how to do it in the process).
Saturday club ride was a good test for the new wheel. It was running very well, although my gears are a little sluggish. I think the chain needs replacing (and maybe tweak the gearing).
Thank you.
