From: Paul Hänsch Date: Thu, 12 Feb 2026 09:47:23 +0000 (+0100) Subject: common laptop configuration X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=a2edb62ef13426f1c74c685d59f8e9adf3969fb8;p=blast common laptop configuration --- diff --git a/common_laptop.mk b/common_laptop.mk new file mode 100644 index 0000000..83eb3c3 --- /dev/null +++ b/common_laptop.mk @@ -0,0 +1,133 @@ +# mainuser=... +# fsuid=... +# +# Hardware Spcific +packages += grub-efi firmware-iwlwifi firmware-brcm80211 + +subvol=/mnt/trixie +release=trixie + +define SOURCES := +deb http://deb.debian.org/debian ${release} main non-free-firmware +deb http://deb.debian.org/debian-security/ ${release}-security main +endef + +## Comma separated list of config modules from modules/ directory +modules=xfce,gimp #,approx + +## Packages +packages = +packages += alsa-utils audacity aqbanking-tools +packages += blender +packages += chromium chromium-sandbox cifs-utils claws-mail claws-mail-pgpinline claws-mail-pgpmime claws-mail-vcalendar-plugin clementine cryptsetup cups cups-browsed +packages += debootstrap dosfstools dvdauthor dvd+rw-tools +packages += eject exfat-fuse exfatprogs +packages += firefox-esr firefox-esr-l10n-de fonts-liberation fonts-liberation2 frei0r-plugins +packages += gdebi gimp git gnome-keyring gnumeric gparted gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-x gwenview +packages += hunspell hunspell-de-de hyphen-de +packages += inkscape inkscape-tutorials +packages += k3b k3b-i18n kate kbd kcalc kdenlive kde-style-breeze kmymoney krita krita-l10n +packages += libnss3-tools libblockdev-crypto3 libk3b-extracodecs libreoffice libreoffice-gnome libreoffice-gtk3 libreoffice-l10n-de libreoffice-style-breeze locales lvm2 lightdm +packages += man-db marble mdadm mesa-utils mousepad +packages += ncat netcat-openbsd network-manager-gnome network-manager-ssh-gnome nscd ntfs-3g ntpsec-ntpdate +packages += obs-studio okular openssh-client os-prober +packages += p7zip-full pavucontrol pciutils pulseaudio pulseaudio-module-bluetooth +packages += qt6-gtk-platformtheme +packages += rdesktop recordmydesktop +packages += samba-common-bin sane-airscan skanlite synaptic +packages += thunar-volman thunderbird thunderbird-l10n-de tmux +packages += unace unrar-free usermode +packages += va-driver-all vdpau-driver-all vim vlc +packages += wget +packages += x264 xdotool xfce4-goodies xfce4-power-manager-plugins xfce4-screenshooter xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-wacom xserver-xorg-video-all +packages += yt-dlp +packages += zenity +packages += linux-image-amd64 + +# Games - Common +# packages += extremetuxracer +# packages += fillets-ng freeciv freeciv-client-sdl +packages += gnome-2048 gunroar +# packages += hedgewars hex-a-hop +packages += kpat +# packages += supertux supertuxkart +packages += torus-trooper +# packages += wesnoth-1.16 wesnoth-1.16-httt wesnoth-music + +# Games - Minetest +# packages += minetest minetest-server +# packages += minetest-mod-3d-armor +# packages += minetest-mod-craftguide minetest-mod-ethereal +# packages += minetest-mod-mesecons minetest-mod-mobs-redo +# packages += minetest-mod-pipeworks minetest-mod-protector +# packages += minetest-mod-unified-inventory + +# Games - Teenage / Adult +# packages += 0ad flare-game openarena warzone2100 + +define ffpolicies:= +{ "policies": { + "DisablePocket": true +} } +endef +export ffpolicies + +## Hostname for the generated machine +hostname=${mainuser}-${release} + +## Root password will be salted and encrypted in image +# rootpass=topsecret +# rootpass=root + +users=${mainuser} + +timezone=Europe/Berlin + +## Comma separated list of locales, first one will become default locale +locales=de_DE.UTF-8,en_US.UTF-8 + +## Keyboard as used in debconfs keyboard-configuration/variant +## Use debconf-get-selections to find out the exact string +# keyboard=German +keyboard=de + +CFGROOT = cfg_root/ + +.PHONY: _fstab _sudo +_target: _fstab _sudo + +_sudo: _config cfg_root + chroot cfg_root adduser ${mainuser} sudo + +_fstab: _config cfg_root + mkdir -p cfg_root/mnt/fsroot + printf '%s 0 0\n' \ + 'UUID=${fsuid} / btrfs auto,rw,subvol=trixie' \ + 'UUID=${fsuid} /home btrfs auto,rw,subvol=home' \ + 'UUID=${fsuid} /mnt/fsroot btrfs auto,rw,nofail' \ + 'LABEL=SYSTEM /boot/efi vfat auto,ro,nofail' \ + 'LABEL=SWAP swap swap sw,nofail' \ + >cfg_root/etc/fstab + + +.PHONY: _ntpdate _ffpolicies +_config: _ntpdate _ffpolicies + +_ffpolicies: ${CFGROOT} .FORCE + mkdir -p "${CFGROOT}/etc/firefox/policies/" \ + "${CFGROOT}/etc/firefox-esr/policies/" \ + "${CFGROOT}/usr/share/firefox/distribution/" \ + "${CFGROOT}/usr/share/firefox-esr/distribution/" + printf '%s\n' "$${ffpolicies}" \ + | tee "${CFGROOT}/etc/firefox/policies/policies.json" \ + "${CFGROOT}/etc/firefox-esr/policies/policies.json" \ + "${CFGROOT}/usr/share/firefox/distribution/policies.json" \ + "${CFGROOT}/usr/share/firefox-esr/distribution/policies.json" + +_ntpdate: ${CFGROOT} .FORCE + printf '%s\n' \ + '@reboot /usr/sbin/ntpdate fritz.box' \ + '*/5 * * * * sleep '$$((RANDOM / 109))'; /usr/sbin/ntpdate fritz.box' \ + >>"${CFGROOT}/var/spool/cron/crontabs/root" + chmod 0600 "${CFGROOT}/var/spool/cron/crontabs/root" + chroot "${CFGROOT}" systemctl enable cron