Fonts + kitty config in the desktop

- tanin-eww: ship Fuji kitty.conf into skel (~/.config/kitty)
- add missing font deps to tanin-eww + tanin-desktop:
  ttc-iosevka-aile (bar's 'Iosevka Aile' UI font) + ttf-nerd-fonts-symbols
  ('Symbols Nerd Font' icon fallback). ttf-iosevka-nerd covers kitty.
- start archiso profile under iso/ (releng-base + overrides; systemd-boot,
  btrfs+snapshots, plymouth, linux-zen, Calamares clone-install)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 19:51:25 +02:00
parent 3757b13800
commit d32383ee6c
23 changed files with 446 additions and 15 deletions
@@ -0,0 +1,54 @@
# Calamares for TANINUX (camel). Model: clone the live system to the target with
# unpackfs, then configure bootloader (systemd-boot), services (greetd), set up
# snapper + Flathub, and strip the live-only installer bits.
---
modules-search: [ local, /usr/lib/calamares/modules ]
instances:
- id: snapper
module: shellprocess
config: shellprocess-snapper.conf
- id: flathub
module: shellprocess
config: shellprocess-flathub.conf
- id: striplive
module: shellprocess
config: shellprocess-striplive.conf
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- users
- summary
- exec:
- partition
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- luksbootkeyfile
- users
- networkcfg
- hwclock
- shellprocess@snapper
- shellprocess@flathub
- shellprocess@striplive
- packages # remove live-only packages (calamares, cage)
- services-systemd # enable greetd + NetworkManager on the target
- mkinitcpio # regenerate initramfs (plymouth hook)
- bootloader # systemd-boot, kernel cmdline 'quiet splash'
- umount
- show:
- finished
branding: tanin
prompt-install: true
dont-chroot: false
oem-setup: false
disable-cancel: false
+25
View File
@@ -0,0 +1,25 @@
# pacman.conf for the LIVE system and (via unpackfs) the installed target.
# [tanin]'s DB-signing key is imported into the keyring by customize_airootfs.sh,
# so Optional TrustAll verifies cleanly here (unlike the build conf which uses Never).
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
ParallelDownloads = 5
Color
ILoveCandy
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[tanin]
SigLevel = Optional TrustAll
Server = https://git.openbureau.ch/api/packages/karim/arch/tanin/$arch
@@ -0,0 +1,32 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsBNBGo1eZsBCADJBsWkBZL08x/4d/mftfd30rcRkQJVDX3eEMHaZWeUSLfGt5Hj
m7fYnwnBK29g04UTCjDKRGsvOqukAJQUXGLpLxSPJwsUH+kVKv+8/RCXtrQ6HTCN
auyZGQ3ST8kcAQ+7jntumTehBt+z4LRGMow71W2JL1oqkMK9hEgAA7dqwEWN4K0w
DMSd9iZOpN5PPdvVlTsvxU6JflfyLOS3W+geyL2+zFQWMmCcAqkPxTH6yNAfaoLI
OGR4Mg6MXXdAXbzQKI90445fWGsUX/Ch5ZSWJhJ3wqjUM3r99PErL+C/p0r5wTqv
LFkjZvauI+oLUZwXrP93qfzTG/iChBG+5sJLABEBAAHNDyhBcmNoIFJlZ2lzdHJ5
KcLAuwQTAQgAbwWCajV5mwILBwkQtv3zViBq9PY1FAAAAAAAHAAQc2FsdEBub3Rh
dGlvbnMub3BlbnBncGpzLm9yZ/ekKg/zx/iqmv/2hOAR9m8CFQgCFgACGQECmwMC
HgEWIQRj8EFYeTI/a/4Pv7K2/fNWIGr09gAAdPIIAI4b/4C83biB4yD10w/u9Feb
s4fn0nauZ/ayZ1JJaq20Ss2pBZaqETxNdIi9sQpno9BXhBRaNdd6k7YIUK7XTylr
lk6V6Rhz6NIquGZHmfp1oszL4FjLUM9QoFWQaRY76psBNHWto/GgPpq8GFtVxmVj
NhOpm/7EcGhniBS+engub7vazVpEIqPycKBBbKSxTvo3hVqsSJpaR2vB1aiLedvY
luYfu/OIhT7SOOdjYTT18kMJxlwwSnhbl1cl47Jcd/1iQB5nwrWnZy28osfsIhEd
4lxppWcgQDXWbzBV57HiTbfnNCncmBIhoTmCKRxosWJPiligeqsqoty/B7lBx47O
wE0EajV5mwEIAO800GVtfe0ZWs+LljaKgkrwWi/u+dsVFgRNWdmqtOBWdszVdxyz
M0LsNMHHOxAWFfjFFbSO9D06aHgmvzLH0c+fgaJeliXFMYS9nOKS7Q6djnjoYtZc
CPxac0JlcLiysHyBdatjHHZr6KZvGaoSobzEfASpfYpScvEyGvi3KN2xD6ssw7AY
GiPof+vAmsfDn0OFo1WRk7eEnoT7JvUx3RrDatXLvBcQRf+49AJvf2lBv0c4tnc8
9O71wleTHZjL8x0oc3tFDCMBfSGmLzpOaTtgwCPI99yzHeGJGP7JyjUWSAi6WkX4
COLPhufJC/pJSrvoLa1MzUBU+jfTkJnn8ZkAEQEAAcLArAQYAQgAYAWCajV5mwkQ
tv3zViBq9PY1FAAAAAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZzPl
jzz26YEAPcqM+A/M9x8CmwwWIQRj8EFYeTI/a/4Pv7K2/fNWIGr09gAAtaMH/3hS
njGRszJFLsFNUYzgKdv1YYIENsFzSsu00CztKUrYVQxAEOK22mB3a9/3jPlJFSkS
WR8D2rbC2/HUKhRnHomb8Mri6HzVmGEORuE5kNnZd3ij+Dnv7EsNC7DXmuoCZaFI
FKYinsLEpo0bZOACaJpGTH4HqNM49Mrq2vREnuDtPdHGEYOs/+VqBt7tpmpIxGLd
TsJNtdroThqle9ghaCwcSqF4YatTGsNpQI68OmkmQc1ybxhzpRdwajrdTrio2pI9
ZkfLRBu7pRjn5ekDX4JUNkC1VyO4BuZutjtFRh8YAB0TbFfPmdn3i4/gI2u5rSi1
UT+fYccVqz5tKm/iXTY=
=6SFS
-----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,3 @@
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin root --noclear %I 38400 linux
@@ -0,0 +1,6 @@
# Live ISO: on the first console (tty1), launch the TANINUX installer.
# (On an installed system this file isn't present — Calamares' shellprocess
# strips the live-only bits from the target.)
if [[ "$(tty)" == /dev/tty1 ]] && [[ -z "${WAYLAND_DISPLAY:-}" ]] && ! pgrep -x cage >/dev/null 2>&1; then
exec tanin-installer
fi
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Runs once inside the airootfs chroot during mkarchiso.
set -e -u
# --- locale ---
sed -i 's/#\(en_US\.UTF-8 UTF-8\)/\1/' /etc/locale.gen
locale-gen
# --- trust the [tanin] DB-signing key (so Optional TrustAll verifies) ---
pacman-key --init
pacman-key --populate archlinux
pacman-key --add /etc/pacman.d/tanin-repo.gpg
pacman-key --lsign-key 63F0415879323F6BFE0FBFB2B6FDF356206AF4F6
# --- services in the LIVE image ---
systemctl enable NetworkManager.service
# Live boots to a console on tty1 that auto-launches the installer (cage +
# calamares) via getty autologin + /root/.bash_profile. No display-manager.
systemctl set-default multi-user.target
# greetd is for the TARGET only (Calamares enables it post-install).
systemctl disable greetd.service 2>/dev/null || true
# --- plymouth: add the hook so the target initramfs shows the splash ---
# (Calamares regenerates the initramfs on the target; this drop-in is carried
# over by unpackfs. 'quiet splash' goes on the kernel cmdline at install time.)
if ! grep -q plymouth /etc/mkinitcpio.conf 2>/dev/null; then
sed -i 's/^\(HOOKS=.*\)\(udev\)/\1\2 plymouth/' /etc/mkinitcpio.conf 2>/dev/null || true
fi
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
# Launch the Calamares installer fullscreen in a cage kiosk compositor (Wayland,
# straight on DRM — no display-manager needed in the live session).
exec cage -s -- calamares
+55
View File
@@ -0,0 +1,55 @@
# TANINUX additions — appended to releng's packages.x86_64 by bootstrap-profile.sh.
# (bootstrap also swaps the live kernel linux -> linux-zen.)
# The live ISO IS the installable system (Calamares clones it via unpackfs).
# --- the whole TANINUX desktop (niri/eww/greeter/theme/apps from [tanin]) ---
tanin-desktop
# --- kernel (zen) ---
linux-zen
linux-zen-headers
# --- Btrfs + automatic snapshots (pre-update rollback via snapper) ---
btrfs-progs
snapper
snap-pac
# --- boot splash ---
plymouth
# --- live installer (removed from target by Calamares' packages module) ---
calamares
cage
# --- target bootloader = systemd-boot (part of systemd) + UEFI var tool ---
efibootmgr
# --- partitioning / filesystems ---
gptfdisk
dosfstools
e2fsprogs
# --- preinstalled apps (decided) ---
firefox
thunderbird
kitty # extra terminal (foot stays the niri/eww default)
nautilus
flatpak # Flathub remote configured post-install
# paru # AUR helper — MUST be rebuilt into [tanin] first (else build fails)
# --- media bundle ---
mpv
loupe
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
gstreamer-vaapi
# --- fonts & emoji ---
noto-fonts
noto-fonts-emoji
noto-fonts-cjk
# --- utilities ---
file-roller
+25
View File
@@ -0,0 +1,25 @@
# Build-time pacman.conf for mkarchiso (pulls live packages incl. tanin-desktop).
# Replaces releng's pacman.conf. [tanin] is added so the airootfs can include
# our packages. SigLevel=Never on [tanin] keeps the BUILD simple (no keyring
# bootstrap during mkarchiso); the LIVE/target keyring trusts the key properly
# (see airootfs/etc/pacman.conf + customize_airootfs.sh).
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
ParallelDownloads = 5
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[tanin]
SigLevel = Never
Server = https://git.openbureau.ch/api/packages/karim/arch/tanin/$arch
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# TANINUX (camel) archiso profile — overrides releng's profiledef.sh.
# shellcheck disable=SC2034
iso_name="taninux"
iso_label="TANINUX_$(date +%Y%m)"
iso_publisher="TANINUX <https://taninux.kgva.ch>"
iso_application="TANINUX (camel) — niri/eww desktop · live + Calamares installer"
iso_version="$(date +%Y.%m.%d)"
install_dir="tanin"
buildmodes=('iso')
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
arch="x86_64"
pacman_conf="pacman.conf"
airootfs_image_type="squashfs"
airootfs_image_tool_options=('-comp' 'zstd' '-Xcompression-level' '19' '-b' '1M')
bootstrap_tarball_compression=('zstd' '-c' '-T0' '--auto-threads=logical' '--long' '-19')
file_permissions=(
["/etc/shadow"]="0:0:400"
["/etc/gshadow"]="0:0:400"
["/root"]="0:0:750"
["/root/customize_airootfs.sh"]="0:0:755"
["/usr/local/bin/tanin-installer"]="0:0:755"
)