Skip to content

Practicalli working

Much cooler week and my ankle is feeling sore, so more focus on work this week.

Aims:

  • update Practicalli Clojure hot loading examples
  • continue eval of shuttle and rust experiments
  • new cleats for the black & red Lake shoes

Debian Linuxλ︎

Lenovo Extreme X1 latest bios version: 1.50 released 2025/07/03

An ISO image has been downloaded to write to a USB memory stick, enabling the Lenovo Bios updater to run. blah.

Video playbackλ︎

On the Lenovo X1 Extreme laptop I experience some very intermittent playback latency (choppyness) on playback from streaming services, e.g. Amazon Prime.

A web search resulted in a stack overflow question about choppy youtube playback which referred to Debian Wiki Firefox page, hardware video accelleration and Debian Hardware Video Acceleration

I added the Nvidia VAAPI driver and tweaked a configuration in Firefox.

In tests I am unsure if hardware video acceleration made any significant difference, although I will continue to use this setup. I think other processes were actually consuming significant resources

Install nvidia-vaapi-driver
❯ sudo apt install nvidia-vaapi-driver
[sudo] password for practicalli:
The following packages were automatically installed and are no longer required:
  linux-image-6.12.27-amd64  python3-mutagen  python3-pycryptodome  python3-websockets
Use 'sudo apt autoremove' to remove them.

Installing:
  nvidia-vaapi-driver

Summary:
  Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 121
  Download size: 35.8 kB
  Space needed: 105 kB / 70.9 GB available

Get:1 http://deb.debian.org/debian trixie/main amd64 nvidia-vaapi-driver amd64 0.0.13-1 [35.8 kB]
Fetched 35.8 kB in 0s (447 kB/s)
Selecting previously unselected package nvidia-vaapi-driver:amd64.
(Reading database ... 334793 files and directories currently installed.)
Preparing to unpack .../nvidia-vaapi-driver_0.0.13-1_amd64.deb ...
Unpacking nvidia-vaapi-driver:amd64 (0.0.13-1) ...
Setting up nvidia-vaapi-driver:amd64 (0.0.13-1) ...

To use the hardware acceleration, Firefox should have one of the following environment variables set

  • MOZ_X11_EGL=1 for X11
  • MOZ_ENABLE_WAYLAND=1 for Wayland/Xwayland

Running X11

Exec=env MOZ_X11_EGL=1 /usr/bin/firefox-esr

The firefox command is a script that launches firefox-esr.

Firefox script to launch Firefox ESR
#!/bin/sh

FIREFOX="$(command -v firefox)"
[ -x "$FIREFOX.real" ] && exec "$FIREFOX.real" "$@"

exec firefox-esr "$@"

Performance managementλ︎

Arch Linux has an article on Lenovo Thinkpad X1 Extreme with

Heat managementλ︎

Dynamic Platform and Thermal Framework implementation was introduced in Linux kernel 5.12 which is use by thermald to manage thermal and power policies. Linux Kernel 6.1 onward is highly recommended.

Install Thermal daemon
❯ sudo apt install thermald
[sudo] password for practicalli:
The following packages were automatically installed and are no longer required:
  linux-image-6.12.27-amd64  python3-mutagen  python3-pycryptodome  python3-websockets
Use 'sudo apt autoremove' to remove them.

Installing:
  thermald

Summary:
  Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 121
  Download size: 246 kB
  Space needed: 720 kB / 69.8 GB available

Get:1 http://deb.debian.org/debian trixie/main amd64 thermald amd64 2.5.9-1 [246 kB]
Fetched 246 kB in 0s (1,153 kB/s)
Selecting previously unselected package thermald.
(Reading database ... 334797 files and directories currently installed.)
Preparing to unpack .../thermald_2.5.9-1_amd64.deb ...
Unpacking thermald (2.5.9-1) ...
Setting up thermald (2.5.9-1) ...
Created symlink '/etc/systemd/system/dbus-org.freedesktop.thermald.service' → '/usr/lib/systemd/system/thermald.service'.
Created symlink '/etc/systemd/system/multi-user.target.wants/thermald.service' → '/usr/lib/systemd/system/thermald.service'.
Processing triggers for dbus (1.16.2-2) ...
Processing triggers for man-db (2.13.1-1) ...

Suspendλ︎

The Extreme laptop wasn't always recovering from suspended state.

Suspend issues are often related to older firmware and kernel versions.

Ensure a recent kernel (>= 6.1) is used.

In the Bios, set sleep state as "Windows and Linux" or "Linux S3". Disable Thunderbolt 4 in the BIOS for older setups.

Neovimλ︎

Updated AstroNvim plugins.

Testing out adding configuration files for Markdown lint tool.

Does Marksman replace the need for MarkdownLint? I does not seem so.

Reviewed configuration for Marksman and there seemed no reason to change the defaults.

Configure Format & Lintersλ︎

Copied the Markdown-lint configuration file used for the Practicalli books to ~/.config/markdown-lint.jsonc so that it is in a known place for any other tools.

Used config from AstroNvim Discord community

Tweaked the location of the file, otherwise its the same code.

AstroNvim updateλ︎

AstroNvim update - SPC p a
  Updated (9)
    ● astrocommunity 0.1ms  start
        d451f1d fix(vimtex): add two missing `which-key` descriptions (#1576) (5 days ago)
        2521d25 feat(vscode): add "Close all tabs except current" mapping (#1579) (5 days ago)
        36577ef fix(jj): properly handle cases where `neo-tree` and `telescope` are not available (#1580) (6 days ago)

    ● AstroNvim 0.34ms  start
        4a27d42 chore(main): release 5.3.5 (30 hours ago)
        2d687bd chore(snapshot): update `lazy_snapshot` (2 days ago)
        e72c9a0 fix(snacks): Fix Snacks notifier icons (3 days ago)
        047c941 fix(astrocore): fix incorrect which-key mapping label to indicate buffer local mapping (8 days ago)

    ● astroui 104.03ms  astrocore
        4943abb chore(main): release 3.1.5 (5 hours ago)
        82ce741 chore(build): auto-generate vimdoc (5 hours ago)
        5447ea0 perf(lazygit): optimize lazygit setting (5 hours ago)

    ● catppuccin 5.48ms colorscheme catppuccin-mocha  astrocore
        e762a47 docs: auto generate vimdoc (7 hours ago)
        aac17a6 feat: make bg of `FloatBorder` same as `NormalFloat` (#877) (7 hours ago)
        82f3dce feat(buffon): add to auto integration list (#878) (32 hours ago)
        44bd5ea feat: automatic integration detection (#871) (34 hours ago)
        c6f2e83 docs: auto generate vimdoc (34 hours ago)
        ae1bac4 feat(buffon): add buffon.nvim integration (#855) (34 hours ago)
        784e529 fix(octo): clear OctoFilePanelFileName hl group (#875) (34 hours ago)
        49de2b7 chore(deps): update stefanzweifel/git-auto-commit-action action to v6 (#868) (34 hours ago)

    ● conjure 20.72ms  lua
        0ac12d4 Merge pull request #688 from seamusriordan/stop-guile-repl-completions-when-pending-eval (4 days ago)
        deb3273 Prevent Guile REPL completions when eval is pending (8 days ago)

    ● neogit 48.66ms  User AstroGitFile
        5541018 Merge pull request #1764 from phanen/fix-tabonly (2 days ago)
        6f12b8e fix: handle when there's only one tabpage (5 days ago)
        62136c6 Bugfix: When staging/unstaging a new file with the cursor over the _hunk_, an error was raised. This now stages/unstages the entire file. (5 days ago)

    ○ nvim-paredit  clojure  scheme  fennel  commonlisp
        86ef02e Merge pull request #101 from freightheave/master (2 days ago)
        5294e29 remove extraneous api fn (3 days ago)
        cd234f2 Add move to top level form head (10 days ago)

    ○ octo.nvim  Octo
        17331ce Merge pull request #1122 from storopoli/review_commits-file_panel-review_diff (33 hours ago)
        8de795d Merge pull request #1133 from storopoli/snacks/assignees (33 hours ago)
        ecdf11a Merge pull request #1143 from pwntester/copy-sha (33 hours ago)
        7e3f79d Merge pull request #1119 from storopoli/snacks/commits (2 days ago)
        f152cea Merge branch 'master' into snacks/commits (2 days ago)
        658d5fb Merge pull request #1138 from pwntester/merge-method (2 days ago)
        1d53433 Merge pull request #1125 from storopoli/feat/comment-reply (2 days ago)
        9118b71 Merge branch 'master' into feat/comment-reply (2 days ago)
        f5c11bf Merge pull request #1131 from jcarlos7121/master (2 days ago)
        3308aeb Merge branch 'master' into master (2 days ago)
        6845ab4 Merge pull request #1132 from storopoli/fix/remove_assignee (2 days ago)
        92b7f89 Merge branch 'master' into merge-method (2 days ago)
        f9a8d45 rename type (2 days ago)
        d1730e8 copy sha bug (2 days ago)
        97e0019 typehint merge method (7 days ago)
        fa44c79 Merge branch 'master' into snacks/assignees (7 days ago)
        af71e4b fix: add proper empty lines after the quoted body (9 days ago)
        ae6e238 feat: comment reply (9 days ago)
        aa0ac68 feat: add review_commits to file_panel and review_diff (9 days ago)
        75c2e65 fix: remove_assignee not implemented (9 days ago)
        69e5437 feat(snacks): `assignee` picker (9 days ago)
        57d14c1 feat(snacks): add review_commits picker (9 days ago)
        52522da feat(snacks): add commits picker (9 days ago)
        2609630 Improve wording for merge queue commands on README (9 days ago)

    ● rainbow-delimiters.nvim 1.59ms  User AstroFile

  Updates (5)
    ● mason.nvim 12.04ms  Lazy load  nvim-treesitter
    ● neoconf.nvim 7.11ms  nvim-lspconfig
    ● none-ls.nvim 31.42ms  User AstroFile
    ○ nvim-dap  mason-nvim-dap.nvim
    ○ nvim-dap-ui  nvim-dap

Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li