Getting darker
The nights are getting darker but that means more chance for star gazing.
Testing out new toys for the bicycle
Practicalliλ︎
The start of the month usually requires maintenance updates to Practicalli projects, especially with dependency and GitHub action version updates.
The scheduled version check GitHub workflow checks library dependencies and GitHub actions for newer versions.
Update dependency versionsλ︎
:update/dependency-versions
is a new alias that runs liquidz/antiz tool with options set to automatically update all files.
This new alias includes the same exclusions at the search/outdated
(which perhaps should be updated to :search/dependency-versions
)
New alias - :update/dependency-versions
:update/dependency-versions
{:replace-paths ["."]
:replace-deps {com.github.liquidz/antq {:mvn/version "2.11.1276"}
org.slf4j/slf4j-nop {:mvn/version "2.0.17"}}
:exec-fn antq.tool/outdated
:exec-args {:directory ["."] ; default
:exclude ["org.clojure/tools.deps.alpha"
"org.clojure/clojurescript"]
;; :focus ["com.github.liquidz/antq"]
:skip ["boot" "leiningen"]
:reporter "table" ; json edn format
:verbose false
:upgrade true
:force true}}
Added a dependencies-update
task to the Makefile of each repository and renamed the outdated
task to dependencies-outdated
Updated Dependency checking tasks in Makefile
dependencies-outdated: ## Report new versions of library dependencies and GitHub action
$(info -- Search for outdated libraries ---------)
- clojure -T:search/outdated > $(OUTDATED_FILE)
dependencies-update: ## Update all library dependencies and GitHub action
$(info -- Search for outdated libraries ---------)
- clojure -T:update/dependency-versions > $(OUTDATED_FILE)
Garuda Linuxλ︎
I think I have Hyprland configured as I wish, although I'll probably find more tweaks to make.
OBS Studio is used to capture screencasts and custom resolutions can configured per collection, e.g. widescreen, 1920x960 (often used for tv series), etc.
The codecs used for the output are a little limited, so perhaps there are plugins I can used to extend the codecs used in capture.
In the recording section, I can specify Opus as the audio, but I can only set a specific bitrate in the streaming section, which only supports AAC codec for audio.
Garuda Linux ISO Release 2025-09-07
Keybindingsλ︎
I created my own keybindings configuration to tweak hyprland to be very close to the i3 Window Manager setup in Regolith Desktop.
I source this keyboard config in the ~/.config/hypr/hyprland.conf
file as the last entry.
Notable changes
- MainMod + Space for Wofi menu launcher (Garuda uses Wofi, not rofi), comment MainMod binding for Wofi menu.
- MainMod + Alt + [1..0] moves a window and focus to the desktop number. MainMod + Shift + [1..0] still moves just the window, keeping the focus on the current desktop.
Duplicating key bindings in config will duplicate the action
If a key binding is defined twice in the hyprland configuration, it will trigger both actions.
If the key binding executes the same action, then that action is called twice.
E.g. defining move window to numbered desktop twice, will move two windows to that numbered desktop.
Themesλ︎
Garuda Linux installs custom themes in /usr/share/wallpapers/garuda-wallpapers/
. While these are interesting I prefer the hyprland wallpapers.
G-Hyprland includes scripts to set the path for custom scripts. It uses the directory ~/custom_wallpapers/photos/
when selecting custom path in the G-Hyprland backgrounds menu. This seems a very weird choice, given there a Pictures directory is created for each user account when they first login.
I updated the custom path in the ~/.config/hypr/brain/config/background/scripts/slideshow_custom.conf
file. It is not possible to specify the path when selecting the custom path option in G-Hyprland menu.
[default]
path = "~/Pictures/wallpaper/hyprland/"
transition-time = 600
After a restart of the wpaperd tool, MainMod+Shift+C, hyprland wallpapers are cycled through every 5 minutes.
I will add further awesome wallpapers from the NWG-Shell install on the other laptop I have that runs Hyprland.
Login themeλ︎
G-Hyprland uses the Sweets theme for the login screen.
I like the screen design and it has been customised with Garuda wallpaper. I tweaked the Sweet theme to use a hyprland wallpaper instead.
Ideally I would create my own Login theme for SDDM and copy it to /usr/share/sddm/themes/
Neovimλ︎
0.11.4 version of neovim has been release{target=_blank).
The news for this release covers breaking changes and new features. Well worth a read.
Updated on Garuda linux as part of an overall package update, i.e. sudo garuda-update
.
Garuda Linux update 2025-09-04
sudo garuda-update
[sudo] password for practicalli:
:: Synchronising package databases...
garuda is up to date
core is up to date
extra 7.9 MiB 8.03 MiB/s 00:01 [------------------------------------------------------------------] 100%
multilib is up to date
chaotic-aur is up to date
--> Refreshing mirrorlists using rate-mirrors, please be patient..🍵
:: Synchronising package databases...
garuda downloading...
core downloading...
extra downloading...
multilib downloading...
chaotic-aur downloading...
spawn pacman -Su
:: Starting full system upgrade...
warning: snapper-tools: local (1.3.1-1.6) is newer than chaotic-aur (1.3.1-1)
resolving dependencies...
looking for conflicting packages...
warning: dependency cycle detected:
warning: qt6-multimedia-ffmpeg will be installed before its qt6-multimedia dependency
Package (119) Old Version New Version Net Change Download Size
extra/alembic 1.8.8-2 1.8.8-3 0.00 MiB 0.82 MiB
extra/aom 3.12.1-1 3.13.0-1 0.53 MiB 2.91 MiB
extra/aquamarine 0.9.3-1 0.9.4-1 0.00 MiB 0.36 MiB
extra/blender 17:4.5.2-1 17:4.5.2-2 -0.76 MiB 151.36 MiB
extra/bolt 0.9.9-1 0.9.10-1 0.00 MiB 0.15 MiB
extra/calibre 8.7.0-1 8.7.0-2 1.28 MiB 34.68 MiB
extra/chmlib 0.40-8 0.40-9 0.00 MiB 0.02 MiB
extra/chromaprint 1.5.1-10 1.6.0-1 0.01 MiB 0.05 MiB
extra/chromium 139.0.7258.138-1 139.0.7258.154-1 29.15 MiB 115.34 MiB
extra/clojure 1.12.1.1561-2 1.12.2.1565-1 0.11 MiB 14.28 MiB
chaotic-aur/downgrade 11.5.2-1 11.5.4-1 0.00 MiB 0.03 MiB
extra/exiv2 0.28.5-1 0.28.7-1 0.27 MiB 2.86 MiB
extra/eza 0.23.0-1 0.23.1-1 0.01 MiB 0.58 MiB
extra/fastfetch 2.50.2-1 2.51.1-1 0.01 MiB 0.49 MiB
garuda/firedragon 1:11.30.0_1-2 1:12.2.1-1 -1.57 MiB 113.28 MiB
extra/firefox 142.0-1 142.0.1-1 0.08 MiB 76.67 MiB
extra/fluidsynth 2.4.7-1 2.4.8-1 0.00 MiB 0.25 MiB
extra/fwupd 2.0.13-1 2.0.14-1 0.08 MiB 5.17 MiB
extra/fzf 0.65.1-1 0.65.2-1 0.00 MiB 1.51 MiB
garuda/garuda-hardware-tool 0.2.1-6 0.2.2-1 0.00 MiB 0.00 MiB
garuda/garuda-health 1.7.3-1 1.7.4-1 0.00 MiB 0.01 MiB
garuda/garuda-setup-assistant 4.2.0-1 4.2.0-1.4 0.00 MiB 0.05 MiB
garuda/garuda-system-maintenance 3.0.2-1 3.0.2-1.1 0.00 MiB 0.06 MiB
extra/gegl 0.4.62-1 0.4.62-2 0.04 MiB 4.09 MiB
extra/gimp 3.0.4-3 3.0.4-4 0.04 MiB 22.01 MiB
extra/gnu-netcat 0.7.1-11 0.7.1-12 0.00 MiB 0.03 MiB
extra/gperftools 2.17-1 2.17.2-1 0.01 MiB 0.49 MiB
extra/gst-libav 1.26.5-1 1.26.5-2 0.00 MiB 0.10 MiB
extra/gst-plugins-bad 1.26.5-1 1.26.5-2 0.00 MiB 1.12 MiB
extra/gst-plugins-bad-libs 1.26.5-1 1.26.5-2 0.00 MiB 2.86 MiB
extra/gst-plugins-base 1.26.5-1 1.26.5-2 0.00 MiB 0.21 MiB
extra/gst-plugins-base-libs 1.26.5-1 1.26.5-2 0.00 MiB 2.35 MiB
extra/gst-plugins-good 1.26.5-1 1.26.5-2 0.00 MiB 2.21 MiB
extra/gst-plugins-ugly 1.26.5-1 1.26.5-2 0.00 MiB 0.17 MiB
extra/gstreamer 1.26.5-1 1.26.5-2 0.02 MiB 2.02 MiB
extra/gstreamer-vaapi 1.26.5-1 1.26.5-2 0.00 MiB 0.31 MiB
extra/harfbuzz 11.4.4-1 11.4.5-1 0.00 MiB 1.11 MiB
extra/harfbuzz-icu 11.4.4-1 11.4.5-1 0.00 MiB 0.01 MiB
extra/hypridle 0.1.6-6 0.1.7-1 0.01 MiB 0.10 MiB
extra/hyprutils 0.8.3-1 0.8.4-1 0.00 MiB 0.11 MiB
extra/imagemagick 7.1.2.2-1 7.1.2.3-1 0.00 MiB 8.66 MiB
extra/imath 3.1.12-4 3.2.1-1 0.20 MiB 3.91 MiB
extra/inxi 3.3.38.1-1 3.3.39.1-1 0.01 MiB 0.35 MiB
extra/kdenlive 25.08.0-1 25.08.0-2 0.00 MiB 19.44 MiB
extra/lame 3.100-5 3.100-6 0.03 MiB 0.33 MiB
multilib/lib32-harfbuzz 11.4.4-1 11.4.5-1 0.00 MiB 0.92 MiB
multilib/lib32-libtirpc 1.3.6-2 1.3.7-1 0.00 MiB 0.07 MiB
multilib/lib32-mesa 1:25.2.1-1 1:25.2.1-5 2.78 MiB 11.28 MiB
multilib/lib32-pcre2 10.45-1 10.46-1 -0.01 MiB 0.49 MiB
multilib/lib32-vulkan-intel 1:25.2.1-1 1:25.2.1-5 0.00 MiB 4.35 MiB
multilib/lib32-vulkan-mesa-layers 1:25.2.1-1 1:25.2.1-5 0.00 MiB 0.44 MiB
multilib/lib32-vulkan-radeon 1:25.2.1-1 1:25.2.1-5 0.00 MiB 3.00 MiB
extra/libei 1.4.1-1 1.5.0-1 0.00 MiB 0.10 MiB
extra/libiec61883 1.2.0-8 1.2.0-9 0.01 MiB 0.03 MiB
extra/libinput 1.29.0-1 1.29.1-1 0.00 MiB 0.33 MiB
extra/libsysprof-capture 48.0-7 48.1-2 0.00 MiB 0.05 MiB
core/libtirpc 1.3.6-2 1.3.7-1 0.00 MiB 0.17 MiB
extra/liburing 2.11-1 2.12-1 0.01 MiB 0.20 MiB
extra/libwireplumber 0.5.10-1 0.5.11-1 0.01 MiB 0.27 MiB
extra/libxfixes 6.0.1-2 6.0.2-1 0.00 MiB 0.01 MiB
core/linux-api-headers 6.16-1 6.16-2 0.83 MiB 1.45 MiB
extra/linux-zen 6.16.3.zen1-1 6.16.4.zen1-1 -0.03 MiB 147.55 MiB
extra/linux-zen-headers 6.16.3.zen1-1 6.16.4.zen1-1 0.00 MiB 53.45 MiB
extra/mathjax 3.2.2-2 4.0.0-1 -4.47 MiB 1.20 MiB
extra/mesa 1:25.2.1-2 1:25.2.1-5 2.89 MiB 11.21 MiB
extra/neovim 0.11.3-1 0.11.4-1 0.05 MiB 6.83 MiB
extra/nftables 1:1.1.4-2 1:1.1.5-1 0.00 MiB 0.42 MiB
extra/nodejs 24.6.0-1 24.7.0-1 0.11 MiB 16.69 MiB
extra/noto-fonts 1:2025.08.01-1 1:2025.09.01-1 0.00 MiB 27.16 MiB
extra/npm 11.5.2-1 11.6.0-1 0.00 MiB 1.55 MiB
extra/opencolorio 2.4.2-1 2.4.2-2 0.86 MiB 2.41 MiB
extra/opencv 4.12.0-3 4.12.0-4 0.00 MiB 28.71 MiB
extra/openexr 3.3.5-1 3.3.5-2 0.00 MiB 0.95 MiB
extra/openimageio 3.0.9.1-1 3.0.9.1-2 0.04 MiB 4.19 MiB
extra/openshadinglanguage 1.14.7.0-1 1.14.7.0-2 0.01 MiB 2.10 MiB
extra/opentimelineio 0.17.0-2 0.17.0-3 0.06 MiB 0.87 MiB
extra/openvdb 12.1.0-1 12.1.0-2 0.00 MiB 11.04 MiB
core/pcre2 10.45-1 10.46-1 -0.01 MiB 1.57 MiB
chaotic-aur/plasma5-themes-sweet-full-git r426.43d600b-1 r428.54fed24-1 0.00 MiB 2.98 MiB
extra/pyside6 6.9.1-2 6.9.2-1 0.01 MiB 8.92 MiB
extra/python-more-itertools 10.7.0-1 10.8.0-1 0.04 MiB 0.12 MiB
extra/python-pyqt6 6.9.1-1 6.9.1-2 0.03 MiB 3.87 MiB
extra/python-soupsieve 2.7-1 2.8-1 0.00 MiB 0.08 MiB
extra/qt6-5compat 6.9.1-1 6.9.2-1 0.00 MiB 0.46 MiB
extra/qt6-base 6.9.1-5 6.9.2-1 0.10 MiB 14.35 MiB
extra/qt6-declarative 6.9.1-3 6.9.2-1 0.01 MiB 15.38 MiB
extra/qt6-imageformats 6.9.1-1 6.9.2-1 0.00 MiB 0.07 MiB
extra/qt6-multimedia 6.9.1-1 6.9.2-3 0.05 MiB 1.15 MiB
extra/qt6-multimedia-ffmpeg 6.9.1-1 6.9.2-3 0.04 MiB 0.53 MiB
extra/qt6-networkauth 6.9.1-1 6.9.2-1 0.00 MiB 0.12 MiB
extra/qt6-positioning 6.9.1-1 6.9.2-1 0.00 MiB 0.37 MiB
extra/qt6-shadertools 6.9.1-1 6.9.2-1 0.00 MiB 1.58 MiB
extra/qt6-speech 6.9.1-1 6.9.2-1 0.00 MiB 0.13 MiB
extra/qt6-svg 6.9.1-1 6.9.2-1 -0.01 MiB 0.27 MiB
extra/qt6-translations 6.9.1-1 6.9.2-1 0.74 MiB 1.89 MiB
extra/qt6-wayland 6.9.1-1 6.9.2-1 0.02 MiB 1.23 MiB
extra/qt6-webchannel 6.9.1-1 6.9.2-1 0.00 MiB 0.13 MiB
extra/qt6-webengine 6.9.1-3 6.9.2-2 0.00 MiB 87.14 MiB
extra/qt6ct 0.10-4 0.10-5 0.00 MiB 0.17 MiB
chaotic-aur/rate-mirrors 0.20.0-2 0.22.0-1 -0.07 MiB 3.80 MiB
extra/sdl3 3.2.20-1 3.2.22-1 -0.40 MiB 1.38 MiB
extra/shiboken6 6.9.1-2 6.9.2-1 0.00 MiB 1.30 MiB
extra/svt-av1 3.1.0-1 3.1.2-1 0.00 MiB 1.96 MiB
extra/swappy 1.7.1-1 1.8.0-1 0.00 MiB 0.03 MiB
extra/udisks2 2.10.1-6 2.10.2-1 0.00 MiB 0.73 MiB
extra/upower 1.90.9-1 1.90.10-1 0.02 MiB 0.15 MiB
extra/usd 25.08-3 25.08-4 0.00 MiB 25.14 MiB
extra/uv 0.8.13-1 0.8.15-1 3.33 MiB 13.45 MiB
extra/uwsm 0.23.2-1 0.23.3-1 0.01 MiB 0.08 MiB
extra/vulkan-intel 1:25.2.1-2 1:25.2.1-5 0.04 MiB 4.39 MiB
extra/vulkan-mesa-layers 1:25.2.1-2 1:25.2.1-5 0.00 MiB 0.43 MiB
extra/vulkan-radeon 1:25.2.1-2 1:25.2.1-5 0.02 MiB 2.97 MiB
extra/vulkan-swrast 1:25.2.1-2 1:25.2.1-5 0.02 MiB 2.08 MiB
chaotic-aur/wayland-protocols-git 1.45.r9.g9730142-1 1.45.r12.gfff667c-1 0.00 MiB 0.17 MiB
extra/webkit2gtk-4.1 2.48.5-1 2.48.6-1 0.00 MiB 33.51 MiB
extra/wireplumber 0.5.10-1 0.5.11-1 0.08 MiB 0.25 MiB
extra/xcb-util-cursor 0.1.5-1 0.1.6-1 0.00 MiB 0.01 MiB
core/xfsprogs 6.15.0-1 6.16.0-1 0.01 MiB 1.34 MiB
extra/yt-dlp 2025.08.22-1 2025.08.27-1 0.00 MiB 4.94 MiB
Total Download Size: 1172.98 MiB
Total Installed Size: 3869.70 MiB
Net Upgrade Size: 36.81 MiB
Post update hookλ︎
After all the packages have been installed, Garuda Linux runs a post install transaction hook to ensure key parts of the system are correct and manage snapshots.
Garuda Linux Post Update hook output
:: Running post-transaction hooks...
( 1/28) Restoring Linux kernel modules...
++ uname -r
+ KVER=6.16.3-zen1-1-zen
+ test -e /usr/lib/modules/backup/6.16.3-zen1-1-zen
+ rsync -AHXal --ignore-existing /usr/lib/modules/backup/6.16.3-zen1-1-zen /usr/lib/modules/
+ rm -rf /usr/lib/modules/backup
( 2/28) Creating system user accounts...
( 3/28) Reloading system manager configuration...
( 4/28) Reloading user manager configuration...
( 5/28) Updating udev hardware database...
( 6/28) Restarting marked services...
( 7/28) Creating temporary files...
( 8/28) Reloading device manager configuration...
( 9/28) Arming ConditionNeedsUpdate...
(10/28) Updating the MIME type database...
(11/28) Updating module dependencies...
(12/28) Checking for package with missing dependencies...
(13/28) Updating initramfs with dracut
:: Building initramfs for linux-zen (6.16.4-zen1-1-zen)
:: Building fallback initramfs for linux-zen (6.16.4-zen1-1-zen)
(14/28) Updating linux initcpios...
(15/28) Foreign/AUR package notification
puddletag 2.5.0-1
(16/28) Orphaned package notification...
mathjax 4.0.0-1
(17/28) Checking for .pacnew and .pacsave files...
(18/28) GRUB update after transactions...
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/garuda/theme.txt
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot: initramfs-linux-zen-fallback.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Garuda Linux on /dev/nvme0n1p2
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2025-09-04 12:34:18 | @/.snapshots/108/snapshot | pre | pacman -Su |
Found snapshot: 2025-09-04 12:22:57 | @/.snapshots/107/snapshot | post | aribb25 ffmpeg4.4 ftgl glm libcddb libgoom2 libkate libmfx liboggz libti |
Found snapshot: 2025-09-04 12:22:54 | @/.snapshots/106/snapshot | pre | pacman -S vlc vlc-plugins-all |
Found snapshot: 2025-09-04 12:22:07 | @/.snapshots/105/snapshot | post | vlc-git |
Found snapshot: 2025-09-04 12:22:06 | @/.snapshots/104/snapshot | pre | pacman -R vlc-git |
Found snapshot: 2025-09-03 11:56:53 | @/.snapshots/103/snapshot | post | python-pip |
Found snapshot: 2025-09-03 11:56:52 | @/.snapshots/102/snapshot | pre | pacman -S python-pip |
Found 7 snapshot(s)
Unmount /tmp/grub-btrfs.uwdym4sSfk .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done
(19/28) Reloading system bus configuration...
(20/28) Checking for old perl modules...
(21/28) Copy FireDragon Distribution Settings
(22/28) Copy Firefox Distribution Settings
(23/28) Updating fontconfig cache...
(24/28) Updating icon theme caches...
(25/28) Updating the info directory file...
(26/28) Updating the desktop file MIME type cache...
(27/28) Performing snapper post snapshots for the following configurations...
==> root: 109
(28/28) Syncing all file systems...
System updated! 🐧
--- System Health Check Report ---
22/23 checks run in 0.97 seconds ⌛
Powered by garuda-health 🦅
--- LOW ---
- Old Btrfs snapshots found that can be deleted (fix available)
--- INFO ---
- A reboot is pending (update applied since last reboot)
Run garuda-health --fix to apply fixes.
Garuda Linux Health checkλ︎
A heath check report is generated at the end of a package update.
Post package update system health check report
The report had a low priority notice that stated "Old Btrfs snapshots found that can be deleted (fix available)"
The report stated to run garuda-health --fix
to apply the fixes, so this was done.
Then a system rebot was done (from the power button on the waybar).
Run garuda-health --fix
❯ sudo garuda-health --fix
[sudo] password for practicalli:
--- System Health Check Report ---
22/23 checks run in 0.89 seconds ⌛
Powered by garuda-health 🦅
--- LOW ---
- Old Btrfs snapshots found that can be deleted (fix available)
--- INFO ---
- A reboot is pending (update applied since last reboot)
Run garuda-health --fix to apply fixes.
--- Applying Fixes ---
Fixing "Old Btrfs snapshots found that can be deleted":
The following command will be executed:
sudo snapper-tools delete-old
Continue? [y/N]: y
Old Btrfs snapshots removed successfully.
--- Re-running checks after applying fixes ---
--- System Health Check Report ---
22/23 checks run in 0.80 seconds ⌛
Powered by garuda-health 🦅
--- INFO ---
- A reboot is pending (update applied since last reboot)
Clojureλ︎
Installed Clojure CLI on Arch Linux using the clojure package.
Some interesting differences
- installs in
/usr/share/clojure
- provides the
` script to set
CLOJURE_HOME` environment variable (is this run each time a user logs in?)
Clojure package install output
sudo pacman -S clojure
[sudo] password for practicalli:
resolving dependencies...
looking for conflicting packages...
Package (1) New Version Net Change Download Size
extra/clojure 1.12.1.1561-2 16.50 MiB 14.19 MiB
Total Download Size: 14.19 MiB
Total Installed Size: 16.50 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
clojure-1.12.1.1561-2-any 14.2 MiB 12.3 MiB/s 00:01
[--------------------------------------------------------------------------------------------------------] 100%
(1/1) checking keys in keyring [--------------------------------------------------------------------------------------------------------] 100%
(1/1) checking package integrity [--------------------------------------------------------------------------------------------------------] 100%
(1/1) loading package files [--------------------------------------------------------------------------------------------------------] 100%
(1/1) checking for file conflicts [--------------------------------------------------------------------------------------------------------] 100%
(1/1) checking available disk space [--------------------------------------------------------------------------------------------------------] 100%
:: Running pre-transaction hooks...
(1/2) Rejecting pacman transaction if running in snapshot...
(2/2) Performing snapper pre snapshots for the following configurations...
==> root: 98
:: Processing package changes...
(1/1) installing clojure [--------------------------------------------------------------------------------------------------------] 100%
Re-login or source /etc/profile.d/clojure.sh
Optional dependencies for clojure
leiningen: automate clojure projects
rlwrap: friendly shell with readline support
:: Running post-transaction hooks...
(1/6) Arming ConditionNeedsUpdate...
(2/6) Foreign/AUR package notification
puddletag 2.5.0-1
(3/6) Orphaned package notification...
=> No orphans found.
(4/6) Checking for .pacnew and .pacsave files...
(5/6) Performing snapper post snapshots for the following configurations...
==> root: 99
(6/6) Syncing all file systems...
Post Installλ︎
Install output says to run the /etc/profile.d/clojure.sh
script to use the clojure
command in the current shell session or start a new shell session.
Test clojure cli on the command line
❯ clojure
Downloading: org/clojure/clojure/1.12.1/clojure-1.12.1.pom from central
Downloading: org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.pom from central
Downloading: org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.pom from central
Downloading: org/clojure/pom.contrib/1.2.0/pom.contrib-1.2.0.pom from central
Downloading: org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar from central
Downloading: org/clojure/clojure/1.12.1/clojure-1.12.1.jar from central
Downloading: org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar from central
Clojure 1.12.1
user=>
Additional tools for Clojureλ︎
Clone Practicalli Clojure CLI Config for aliases to provide simple commands to use with common Clojure tools.
tools.edn config not included
A tools/config.edn configuration is created when first running clojure
or the wrapper script clj
.
An example configuration from Clojure CLI clojure-1.12.1.1561-2 release
{:lib io.github.clojure/tools.tools
:coord {:git/tag "v0.3.4"
:git/sha "0e9e6c8b409ac916ad6f2ec5bc075bbcb09545c0"}}
Practicalli Clojure CLI does not include a configuration file as it would require additional work to maintain a Git history for both users and the project maintainer.
Java Restricted Methodλ︎
After updating Practicalli Clojure CLI Config I tested the creation and running of a Clojure project, using the Practicalli Project Templaces (deps-new library).
The command successfully created a project in the playground
directory.
Chainging into the playground
directory, the REPL was run using make repl
command.
Java warning: restricted method
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::loadLibrary has been called by org.fusesource.hawtjni.runtime.Library in an unnamed module (file:/home/practicalli/.m2/repository/org/fusesource/jansi/jansi/1.16/jansi-1.16.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled
I believe this is happening as Arch Linux installed Java 24 by default.
Java Version installed on Arch Linux
TODO: investigate which part of the Clojure project is causing the warning and discover a suitable resolution.
Java warning: restricted method when running Clojure REPL from Practicalli Template project
---------------------------------------------------------
Loading custom user namespace tools...
---------------------------------------------------------
---------------------------------------------------------
Namesapece Management:
(namespace/refresh) ; refresh all changed namespaces
(namespace/refresh-all) ; refresh all namespaces
Hotload libraries: ; Clojure 1.12.x
(add-lib 'library-name)
(add-libs '{domain/library-name {:mvn/version "v1.2.3"}})
(sync-deps) ; load dependencies from deps.edn - deps-* lsp snippets for adding library
Portal Inspector: - portal started by default, listening to all evaluations
(inspect/clear) ; clear all values in portal
(remove-tap #'inspect/submit) ; stop sending to portal
(inspect/close) ; close portal
Mulog Publisher: - mulog publisher started by default
(mulog-events/stop) ; stop publishing log events
(help) ; print help text
---------------------------------------------------------
Set REPL refresh directories to (src resources)
nREPL server started on port 37769 on host localhost - nrepl://localhost:37769
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::loadLibrary has been called by org.fusesource.hawtjni.runtime.Library in an unnamed module (file:/home/practicalli/.m2/repository/org/fusesource/jansi/jansi/1.16/jansi-1.16.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled
[Rebel readline] Type :repl/help for online help info
user=>
VLC Media Playerλ︎
Vlc is an excellent media player (music, video, streaming, etc.) and supports a wide range of formats (codecs & containers)
In Arch Linux VLC is a split package in that the media player has been split from the plugins that support different codecs and containers.
Installing VLC package by itself may be disappointing, so one or more plugins should also be installed.
For a minimal footprint, only the specific codec plugins can be installed, e.g. sudp pacman -S vlc-plugin-codec-name
Arch also has meta packages to bulk install plugins:
vlc-plugins-base
vlc-plugins-all
Install Vlc and all plugins
sudo pacman -S vlc vlc-plugins-all
resolving dependencies...
looking for conflicting packages...
Package (97) New Version Net Change Download Size
extra/aribb25 0.2.7-3 0.09 MiB 0.03 MiB
extra/ffmpeg4.4 4.4.6-2 23.46 MiB 8.52 MiB
extra/ftgl 2.4.0-3 2.28 MiB 0.31 MiB
extra/glm 1.0.1-1 20.34 MiB 3.42 MiB
extra/libcddb 1.3.2-7 0.15 MiB 0.04 MiB
extra/libgoom2 2k4-5 0.21 MiB 0.09 MiB
extra/libkate 0.4.3-1 0.52 MiB 0.15 MiB
extra/libmfx 23.2.2-4 0.28 MiB 0.06 MiB
extra/liboggz 1.1.3-1 2.12 MiB 0.32 MiB
extra/libtiger 0.3.4-8 0.06 MiB 0.02 MiB
extra/libvlc 3.0.21-28 2.17 MiB 0.66 MiB
extra/live-media 2025.05.24-1 2.51 MiB 0.53 MiB
extra/projectm 3.1.12-5 25.94 MiB 2.13 MiB
extra/python-wxpython 1:4.2.3-3 52.95 MiB 9.51 MiB
extra/sdl12-compat 1.2.68-2 0.64 MiB 0.13 MiB
extra/sdl_image 1.2.12-9 0.06 MiB 0.03 MiB
extra/vlc-cli 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-gui-qt 3.0.21-28 3.12 MiB 1.03 MiB
extra/vlc-plugin-a52dec 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-aalib 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-alsa 3.0.21-28 0.05 MiB 0.02 MiB
extra/vlc-plugin-aom 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-archive 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-aribb24 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-aribb25 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-ass 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-avahi 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-bluray 3.0.21-28 0.07 MiB 0.03 MiB
extra/vlc-plugin-caca 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-cddb 3.0.21-28 0.06 MiB 0.03 MiB
extra/vlc-plugin-chromecast 3.0.21-28 0.15 MiB 0.07 MiB
extra/vlc-plugin-dav1d 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-dbus 3.0.21-28 0.08 MiB 0.03 MiB
extra/vlc-plugin-dbus-screensaver 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-dca 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-dvb 3.0.21-28 0.42 MiB 0.18 MiB
extra/vlc-plugin-dvd 3.0.21-28 0.08 MiB 0.04 MiB
extra/vlc-plugin-faad2 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-ffmpeg 3.0.21-28 0.27 MiB 0.09 MiB
extra/vlc-plugin-firewire 3.0.21-28 0.04 MiB 0.02 MiB
extra/vlc-plugin-flac 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-fluidsynth 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-freetype 3.0.21-28 0.07 MiB 0.04 MiB
extra/vlc-plugin-gme 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-gnutls 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-gstreamer 3.0.21-28 0.04 MiB 0.02 MiB
extra/vlc-plugin-inflate 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-jack 3.0.21-28 0.04 MiB 0.02 MiB
extra/vlc-plugin-journal 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-jpeg 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-kate 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-kwallet 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-libsecret 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-lirc 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-live555 3.0.21-28 0.06 MiB 0.03 MiB
extra/vlc-plugin-lua 3.0.21-28 0.95 MiB 0.30 MiB
extra/vlc-plugin-mad 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-matroska 3.0.21-28 0.44 MiB 0.18 MiB
extra/vlc-plugin-mdns 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-modplug 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-mpeg2 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-mpg123 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-mtp 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-musepack 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-nfs 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-notify 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-ogg 3.0.21-28 0.13 MiB 0.06 MiB
extra/vlc-plugin-opus 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-png 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-pulse 3.0.21-28 0.08 MiB 0.02 MiB
extra/vlc-plugin-quicksync 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-samplerate 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-sdl 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-sftp 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-shout 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-smb 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-soxr 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-speex 3.0.21-28 0.04 MiB 0.02 MiB
extra/vlc-plugin-srt 3.0.21-28 0.04 MiB 0.01 MiB
extra/vlc-plugin-svg 3.0.21-28 0.03 MiB 0.01 MiB
extra/vlc-plugin-tag 3.0.21-28 0.10 MiB 0.04 MiB
extra/vlc-plugin-theora 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-twolame 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-udev 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-upnp 3.0.21-28 0.06 MiB 0.03 MiB
extra/vlc-plugin-vorbis 3.0.21-28 0.03 MiB 0.02 MiB
extra/vlc-plugin-vpx 3.0.21-28 0.02 MiB 0.01 MiB
extra/vlc-plugin-x264 3.0.21-28 0.09 MiB 0.02 MiB
extra/vlc-plugin-x265 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-xml 3.0.21-28 0.01 MiB 0.01 MiB
extra/vlc-plugin-zvbi 3.0.21-28 0.12 MiB 0.05 MiB
extra/vlc-plugins-base 3.0.21-28 7.54 MiB 1.92 MiB
extra/vlc-plugins-extra 3.0.21-28 0.05 MiB 0.02 MiB
extra/vlc-plugins-video-output 3.0.21-28 0.64 MiB 0.15 MiB
extra/vlc-plugins-visualization 3.0.21-28 0.11 MiB 0.04 MiB
extra/vlc 3.0.21-28 40.06 MiB 6.08 MiB
extra/vlc-plugins-all 3.0.21-28 0.00 MiB 0.00 MiB
Total Download Size: 37.06 MiB
Total Installed Size: 189.76 MiB
Pythonλ︎
I occasionally use Python tools and often forget the basics of effectively working with the language, e.g. virtual environments (as there are breaking changes between python2 and python3)
The setup of python includes
- install python3 (python2 should be avoided as everything should be using python3 now)
- install python-pip (or alternatives)
- create a virtual environment (recommended as it keeps python and its dependencies separate)
- run python or pip from virtual environment
Create a virtual environmentλ︎
A python virtual environment includes binaries and libraries for a specific version of python and the project being used.
python -m venv /path/to/preferred/location/
creates a virtual environment
NOTE: this approach is used for Material for MkDocs which generated the static website for Practicalli books.
Install Python dependenciesλ︎
Python projects typically define their library dependencies in a requirements.txt
file.
python-pip
or pip
in a python virtual environment is used to manage requirements (add, delete, download, etc)
Install python library dependencies from a requirements.txt file (relative virtual environment)
UV claims to be a faster and more complete tool than python pip, replacing the need for pip-tools, pipx, poetry, pyenv, twine, virtualenv, etc.
UV has a pip interface so in theory I could do uv pip install -r requirements.txt
instead of the above command. More reading and testing required about the UV tool required.
Bicycle maintenanceλ︎
- electric pump
- TPU tubes
- a good clean (my chain is silver)
- good lubricant (local bike shop)
AliExpressλ︎
- Deliveries take about 10 days
- Better returns policy than Amazon (90 days)
- Quick refunds for small items (less than 5 GBP)
- A few items have been missing recently
Thank you.