Skip to content

Coming back to life

Monday was a very productive day after vising the Doctors surgery to give yet another blood sample.

I am enjoying using Hyprland on an old Lenovo Thinkpad X1 and using it to update my weekly Practicalli Journal entries. I feel a long way off using Hyprland as my normal work laptop, but I do like the simplicity and eye candy that Hyprland and HyDE provides to the Linux desktop.

Hyprland tweaks and notes continue throughout the month (year). This week I investigated how the padding around Kitty is configured in Hyprland.

Having a spare laptop for the sofa means I can watch TV and relax while still capturing the highlights of the day.

Currently I am watching Star Treck The Original Series. I am really enjoying Star Trek TOS, more than I expected. It has been several decades since I last saw some episodes.

Discussed options for running a clojure workshop with minimal setup

Set up a Python local environment and installed Material for MkDocs on Arch Linux.

After a very sleepy weekend, my knee and hip are feeling almost normal again. The aim for this week is to walk at least 45 minutes each day.

Clojure workshopλ︎

Discussed options for running a low setup workshop environment in the Clojurians Slack channel.

maria.cloud was used as part of ClojureBridge London with relatively simple code using the Clojure standard library. Maria Cloud worked well for those new to coding and people who enjoyed a visual learning environment.

Gitpod allows a custom development environment to be defined which can be accessed via a browser. lsp-gitpod is one example of a pre-configured Emacs setup in Gitpod, although any editor or journal tooling could be configured instead.

Next Journal is relevant for a data science specific workshop and a custom environment can be created and access through the web.

I assume both these could take some time to configure and test, although once one configuration has been created it should be reusable and easier to create other custom config.

Limitations on free use of Gitpod and Next Journal should be investigated.

Hyprlandλ︎

An early annoyance with Hyprland (before using HyDE) was using the kitty terminal. Text in the kitty app was too close to the hyprland window boarder.

HyDE adds a ~/.config/kitty/hyde.conf configuration file that includes a window_padding_width key that sets a very wide margin of 25 by default.

The padding looks a little strange as it doesnt match with the everforest them I currently use with Neovim.

Kitty terminal padding in Hyprland with HyDE configuration

I am experimenting with a smaller padding, although the ideal approach would be to match themes between HyDE, Kitty and Neovim.

Kitty config added by HyDE

~/.config/kitty/hyde.conf
# This is the configuration file for kitty terminal
# For more information, see https://sw.kovidgoyal.net/kitty/conf.html
# For your custom configurations, put it in ./kitty.conf
font_family CaskaydiaCove Nerd Font Mono
bold_font auto
italic_font auto
bold_italic_font auto
enable_audio_bell no
font_size 9.0
# window_padding_width 25
window_padding_width 12
include theme.conf
#background_opacity 0.60
#hide_window_decorations yes
#confirm_os_window_close 0

Arch Linuxλ︎

Material for MkDocs is used for the Practicalli books and blog websites. Python PIP is used to install MkDocs and associated plugins.

In Arch Linux, Python was installed already (either by default of as a dependency of another package).

Create a Python virtual environment (this is recommended because Python be cray-cray :smiley-face:)

Create Python Virtual Environment for user account

python3 -m venv ~/.local/venv/

Python Pip was installed manually

Install Python Pip on Arch Linux

sudo pacman -Sy python-pip

MkDocs plugins are installed via Python Pip from within the users Python virtual environment.

Install Material for MkDocs

~/.local/venv/bin/pip install mkdocs-material mkdocs-callouts mkdocs-glightbox mkdocs-git-revision-date-localized-plugin mkdocs-redirects mkdocs-rss-plugin pillow cairosvg
Output from Material for MkDocs
Collecting mkdocs-material
  Downloading mkdocs_material-9.5.50-py3-none-any.whl.metadata (18 kB)
Collecting mkdocs-callouts
  Downloading mkdocs_callouts-1.16.0-py3-none-any.whl.metadata (4.7 kB)
Collecting mkdocs-glightbox
  Downloading mkdocs_glightbox-0.4.0-py3-none-any.whl.metadata (6.1 kB)
Collecting mkdocs-git-revision-date-localized-plugin
  Downloading mkdocs_git_revision_date_localized_plugin-1.3.0-py3-none-any.whl.metadata (6.2 kB)
Collecting mkdocs-redirects
  Downloading mkdocs_redirects-1.2.2-py3-none-any.whl.metadata (5.2 kB)
Collecting mkdocs-rss-plugin
  Downloading mkdocs_rss_plugin-1.17.1-py2.py3-none-any.whl.metadata (7.6 kB)
Collecting pillow
  Downloading pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (9.1 kB)
Collecting cairosvg
  Downloading CairoSVG-2.7.1-py3-none-any.whl.metadata (2.7 kB)
Collecting babel~=2.10 (from mkdocs-material)
  Downloading babel-2.16.0-py3-none-any.whl.metadata (1.5 kB)
Collecting colorama~=0.4 (from mkdocs-material)
  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
Collecting jinja2~=3.0 (from mkdocs-material)
  Downloading jinja2-3.1.5-py3-none-any.whl.metadata (2.6 kB)
Collecting markdown~=3.2 (from mkdocs-material)
  Downloading Markdown-3.7-py3-none-any.whl.metadata (7.0 kB)
Collecting mkdocs-material-extensions~=1.3 (from mkdocs-material)
  Downloading mkdocs_material_extensions-1.3.1-py3-none-any.whl.metadata (6.9 kB)
Collecting mkdocs~=1.6 (from mkdocs-material)
  Downloading mkdocs-1.6.1-py3-none-any.whl.metadata (6.0 kB)
Collecting paginate~=0.5 (from mkdocs-material)
  Downloading paginate-0.5.7-py2.py3-none-any.whl.metadata (11 kB)
Collecting pygments~=2.16 (from mkdocs-material)
  Downloading pygments-2.19.1-py3-none-any.whl.metadata (2.5 kB)
Collecting pymdown-extensions~=10.2 (from mkdocs-material)
  Downloading pymdown_extensions-10.14-py3-none-any.whl.metadata (3.0 kB)
Collecting regex>=2022.4 (from mkdocs-material)
  Downloading regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB)
Collecting requests~=2.26 (from mkdocs-material)
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting GitPython (from mkdocs-git-revision-date-localized-plugin)
  Downloading GitPython-3.1.44-py3-none-any.whl.metadata (13 kB)
Collecting pytz (from mkdocs-git-revision-date-localized-plugin)
  Downloading pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting cachecontrol<1,>=0.14 (from cachecontrol[filecache]<1,>=0.14->mkdocs-rss-plugin)
  Downloading cachecontrol-0.14.2-py3-none-any.whl.metadata (3.1 kB)
Collecting cairocffi (from cairosvg)
  Downloading cairocffi-1.7.1-py3-none-any.whl.metadata (3.3 kB)
Collecting cssselect2 (from cairosvg)
  Downloading cssselect2-0.7.0-py3-none-any.whl.metadata (2.9 kB)
Collecting defusedxml (from cairosvg)
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB)
Collecting tinycss2 (from cairosvg)
  Downloading tinycss2-1.4.0-py3-none-any.whl.metadata (3.0 kB)
Collecting msgpack<2.0.0,>=0.5.2 (from cachecontrol<1,>=0.14->cachecontrol[filecache]<1,>=0.14->mkdocs-rss-plugin)
  Downloading msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.4 kB)
Collecting filelock>=3.8.0 (from cachecontrol[filecache]<1,>=0.14->mkdocs-rss-plugin)
  Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)
Collecting gitdb<5,>=4.0.1 (from GitPython->mkdocs-git-revision-date-localized-plugin)
  Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB)
Collecting MarkupSafe>=2.0 (from jinja2~=3.0->mkdocs-material)
  Downloading MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
Collecting click>=7.0 (from mkdocs~=1.6->mkdocs-material)
  Downloading click-8.1.8-py3-none-any.whl.metadata (2.3 kB)
Collecting ghp-import>=1.0 (from mkdocs~=1.6->mkdocs-material)
  Downloading ghp_import-2.1.0-py3-none-any.whl.metadata (7.2 kB)
Collecting mergedeep>=1.3.4 (from mkdocs~=1.6->mkdocs-material)
  Downloading mergedeep-1.3.4-py3-none-any.whl.metadata (4.3 kB)
Collecting mkdocs-get-deps>=0.2.0 (from mkdocs~=1.6->mkdocs-material)
  Downloading mkdocs_get_deps-0.2.0-py3-none-any.whl.metadata (4.0 kB)
Collecting packaging>=20.5 (from mkdocs~=1.6->mkdocs-material)
  Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pathspec>=0.11.1 (from mkdocs~=1.6->mkdocs-material)
  Downloading pathspec-0.12.1-py3-none-any.whl.metadata (21 kB)
Collecting pyyaml-env-tag>=0.1 (from mkdocs~=1.6->mkdocs-material)
  Downloading pyyaml_env_tag-0.1-py3-none-any.whl.metadata (4.1 kB)
Collecting pyyaml>=5.1 (from mkdocs~=1.6->mkdocs-material)
  Downloading PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting watchdog>=2.0 (from mkdocs~=1.6->mkdocs-material)
  Downloading watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl.metadata (44 kB)
Collecting charset-normalizer<4,>=2 (from requests~=2.26->mkdocs-material)
  Downloading charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)
Collecting idna<4,>=2.5 (from requests~=2.26->mkdocs-material)
  Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting urllib3<3,>=1.21.1 (from requests~=2.26->mkdocs-material)
  Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests~=2.26->mkdocs-material)
  Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB)
Collecting cffi>=1.1.0 (from cairocffi->cairosvg)
  Downloading cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting webencodings (from cssselect2->cairosvg)
  Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB)
Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg)
  Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Collecting python-dateutil>=2.8.1 (from ghp-import>=1.0->mkdocs~=1.6->mkdocs-material)
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython->mkdocs-git-revision-date-localized-plugin)
  Downloading smmap-5.0.2-py3-none-any.whl.metadata (4.3 kB)
Collecting platformdirs>=2.2.0 (from mkdocs-get-deps>=0.2.0->mkdocs~=1.6->mkdocs-material)
  Downloading platformdirs-4.3.6-py3-none-any.whl.metadata (11 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.1->ghp-import>=1.0->mkdocs~=1.6->mkdocs-material)
  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Downloading mkdocs_material-9.5.50-py3-none-any.whl (8.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.6/8.6 MB 12.7 MB/s eta 0:00:00
Downloading mkdocs_callouts-1.16.0-py3-none-any.whl (8.6 kB)
Downloading mkdocs_glightbox-0.4.0-py3-none-any.whl (31 kB)
Downloading mkdocs_git_revision_date_localized_plugin-1.3.0-py3-none-any.whl (22 kB)
Downloading mkdocs_redirects-1.2.2-py3-none-any.whl (6.1 kB)
Downloading mkdocs_rss_plugin-1.17.1-py2.py3-none-any.whl (29 kB)
Downloading pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl (4.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 5.5 MB/s eta 0:00:00
Downloading CairoSVG-2.7.1-py3-none-any.whl (43 kB)
Downloading babel-2.16.0-py3-none-any.whl (9.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 8.7 MB/s eta 0:00:00
Downloading cachecontrol-0.14.2-py3-none-any.whl (21 kB)
Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Downloading GitPython-3.1.44-py3-none-any.whl (207 kB)
Downloading jinja2-3.1.5-py3-none-any.whl (134 kB)
Downloading Markdown-3.7-py3-none-any.whl (106 kB)
Downloading mkdocs-1.6.1-py3-none-any.whl (3.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 7.3 MB/s eta 0:00:00
Downloading mkdocs_material_extensions-1.3.1-py3-none-any.whl (8.7 kB)
Downloading paginate-0.5.7-py2.py3-none-any.whl (13 kB)
Downloading pygments-2.19.1-py3-none-any.whl (1.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 7.7 MB/s eta 0:00:00
Downloading pymdown_extensions-10.14-py3-none-any.whl (264 kB)
Downloading regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (796 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 796.9/796.9 kB 7.3 MB/s eta 0:00:00
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Downloading cairocffi-1.7.1-py3-none-any.whl (75 kB)
Downloading cssselect2-0.7.0-py3-none-any.whl (15 kB)
Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB)
Downloading tinycss2-1.4.0-py3-none-any.whl (26 kB)
Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)
Downloading cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB)
Downloading charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144 kB)
Downloading click-8.1.8-py3-none-any.whl (98 kB)
Downloading filelock-3.16.1-py3-none-any.whl (16 kB)
Downloading ghp_import-2.1.0-py3-none-any.whl (11 kB)
Downloading gitdb-4.0.12-py3-none-any.whl (62 kB)
Downloading idna-3.10-py3-none-any.whl (70 kB)
Downloading MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)
Downloading mergedeep-1.3.4-py3-none-any.whl (6.4 kB)
Downloading mkdocs_get_deps-0.2.0-py3-none-any.whl (9.5 kB)
Downloading msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (399 kB)
Downloading packaging-24.2-py3-none-any.whl (65 kB)
Downloading pathspec-0.12.1-py3-none-any.whl (31 kB)
Downloading PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (759 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 759.5/759.5 kB 7.6 MB/s eta 0:00:00
Downloading pyyaml_env_tag-0.1-py3-none-any.whl (3.9 kB)
Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Downloading watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl (79 kB)
Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Downloading platformdirs-4.3.6-py3-none-any.whl (18 kB)
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Downloading smmap-5.0.2-py3-none-any.whl (24 kB)
Downloading pycparser-2.22-py3-none-any.whl (117 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: webencodings, pytz, paginate, mkdocs-glightbox, watchdog, urllib3, tinycss2, smmap, six, regex, pyyaml, pygments, pycparser, platformdirs, pillow, pathspec, packaging, msgpack, mkdocs-material-extensions, mergedeep, MarkupSafe, markdown, idna, filelock, defusedxml, colorama, click, charset-normalizer, certifi, babel, requests, pyyaml-env-tag, python-dateutil, pymdown-extensions, mkdocs-get-deps, jinja2, gitdb, cssselect2, cffi, GitPython, ghp-import, cairocffi, cachecontrol, mkdocs, cairosvg, mkdocs-rss-plugin, mkdocs-redirects, mkdocs-material, mkdocs-git-revision-date-localized-plugin, mkdocs-callouts
Successfully installed GitPython-3.1.44 MarkupSafe-3.0.2 babel-2.16.0 cachecontrol-0.14.2 cairocffi-1.7.1 cairosvg-2.7.1 certifi-2024.12.14 cffi-1.17.1 charset-normalizer-3.4.1 click-8.1.8 colorama-0.4.6 cssselect2-0.7.0 defusedxml-0.7.1 filelock-3.16.1 ghp-import-2.1.0 gitdb-4.0.12 idna-3.10 jinja2-3.1.5 markdown-3.7 mergedeep-1.3.4 mkdocs-1.6.1 mkdocs-callouts-1.16.0 mkdocs-get-deps-0.2.0 mkdocs-git-revision-date-localized-plugin-1.3.0 mkdocs-glightbox-0.4.0 mkdocs-material-9.5.50 mkdocs-material-extensions-1.3.1 mkdocs-redirects-1.2.2 mkdocs-rss-plugin-1.17.1 msgpack-1.1.0 packaging-24.2 paginate-0.5.7 pathspec-0.12.1 pillow-11.1.0 platformdirs-4.3.6 pycparser-2.22 pygments-2.19.1 pymdown-extensions-10.14 python-dateutil-2.9.0.post0 pytz-2024.2 pyyaml-6.0.2 pyyaml-env-tag-0.1 regex-2024.11.6 requests-2.32.3 six-1.17.0 smmap-5.0.2 tinycss2-1.4.0 urllib3-2.3.0 watchdog-6.0.0 webencodings-0.5.1

Build the Material for MkDocs book via the python virtual environment

Run Material for MkDocs via Python Virtual Environment

~/.local/venv/bin/activate; mkdocs serve --dev-addr localhost:7777

docs task in Practicalli Dotfiles Makefile

Practicalli dotfiles contains a Makefile with a docs task that runs the Material for MkDocs server locally, using the users Python virtual environment.

Debian Linux install of Python virtual environment and Pip

Material for MkDocsλ︎

Reviewing the Basic Blogs page of the Material for MkDocs document site there were several metadata tags I will adopt in all my blog posts.

  • draft: true|false highlights the post is a draft and only shows when running the local server, so is not deployed to the live websites that use the build command.
  • date: created: 2025-01-26 the date the post was created
  • date: updated: 2025-01-26 to highlight when the article was last changed, e.g. for a significant update
  • pin: true pins the article to the top of the index page, e.g. for important articles that you wish to highlight to all viewers (sponsors only).
  • ``

Material for MkDocs post metadata

---
title: Coming back to life
date:
  created: 2025-01-20
  updated: 2025-01-24
authors:
  - practicalli
categories:
  - practicalli
tags:
  - archlinux
  - hyprland
  - mkdocs
draft: true
---

Healthλ︎

Completed a good walk every day so far

  • Monday: over an hours walk to the Doctors surgery for a blood teat.
  • Tuesday: 3 hours walk to the hospital to get a yearly eye screening
  • Wednesday: a walk in the park

Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li