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:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"
|
||||
)
|
||||
Reference in New Issue
Block a user