commit 68c85f4a1a15b16191e04adb6b671f00c96bd4ed Author: meliurwen Date: Mon Jun 6 09:51:50 2022 +0200 Initial commit diff --git a/install-chroot.sh b/install-chroot.sh new file mode 100755 index 0000000..53ebbcd --- /dev/null +++ b/install-chroot.sh @@ -0,0 +1,171 @@ +#!/bin/sh + +set -e + +apt install \ + debootstrap \ + squashfs-tools \ + xorriso \ + isolinux \ + syslinux-efi \ + grub-pc-bin \ + grub-efi-amd64-bin \ + mtools \ + dosfstools + +mkdir -p /srv/LIVE_BOOT + +debootstrap \ + --arch=amd64 \ + --variant=minbase \ + --merged-usr \ + sid \ + /srv/LIVE_BOOT/chroot \ + http://deb.debian.org/debian/ + +# Copy the filesystem tree +cp -R $PWD/root/* /srv/LIVE_BOOT/chroot + +# Run script in chroot +chroot /srv/LIVE_BOOT/chroot /srv/entrypoint.sh + +# Clean the installation +rm -rf /srv/LIVE_BOOT/chroot/srv/* + +# Change password to the users +echo "Setting passwords for users..." +echo "root:root" | chpasswd --root /srv/LIVE_BOOT/chroot +echo "live-user:root" | chpasswd --root /srv/LIVE_BOOT/chroot + +# Create directories that will contain files for our live environment files and scratch files. +bash -c "mkdir -p /srv/LIVE_BOOT/{staging/{EFI/boot,boot/grub/x86_64-efi,isolinux,live},tmp}" + +# Compress the chroot environment into a Squash filesystem. +# I'm using blocks of 1MiB with xz for x86 +mksquashfs \ + /srv/LIVE_BOOT/chroot \ + /srv/LIVE_BOOT/staging/live/filesystem.squashfs \ + -e boot \ + -b 1M \ + -comp xz \ + -Xbcj x86 + +# Copy the kernel and initramfs from inside the chroot to the live directory. +cp /srv/LIVE_BOOT/chroot/boot/vmlinuz-* \ + /srv/LIVE_BOOT/staging/live/vmlinuz && \ +cp /srv/LIVE_BOOT/chroot/boot/initrd.img-* \ + /srv/LIVE_BOOT/staging/live/initrd + +# Prepare Boot Loader Menus + +# Create an ISOLINUX (Syslinux) boot menu. This boot menu is used when booting in BIOS/legacy mode. +cat <<'EOF' >/srv/LIVE_BOOT/staging/isolinux/isolinux.cfg +UI vesamenu.c32 + +MENU TITLE Boot Menu +DEFAULT linux +TIMEOUT 600 +MENU RESOLUTION 640 480 +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std + +LABEL linux + MENU LABEL Debian Live [BIOS/ISOLINUX] + MENU DEFAULT + KERNEL /live/vmlinuz + APPEND initrd=/live/initrd boot=live + +LABEL linux + MENU LABEL Debian Live [BIOS/ISOLINUX] (nomodeset) + MENU DEFAULT + KERNEL /live/vmlinuz + APPEND initrd=/live/initrd boot=live nomodeset +EOF + +# Create a second, similar, boot menu for GRUB. This boot menu is used when booting in EFI/UEFI mode. +cat <<'EOF' >/srv/LIVE_BOOT/staging/boot/grub/grub.cfg +search --set=root --file /DEBIAN_CUSTOM + +set default="0" +set timeout=30 + +# If X has issues finding screens, experiment with/without nomodeset. + +menuentry "Debian Live [EFI/GRUB]" { + linux ($root)/live/vmlinuz boot=live + initrd ($root)/live/initrd +} + +menuentry "Debian Live [EFI/GRUB] (nomodeset)" { + linux ($root)/live/vmlinuz boot=live nomodeset + initrd ($root)/live/initrd +} +EOF + +# Create a third boot config. +# This config will be an early configuration file that is embedded inside GRUB in the EFI partition. +# This finds the root and loads the GRUB config from there. +cat <<'EOF' >/srv/LIVE_BOOT/tmp/grub-standalone.cfg +search --set=root --file /DEBIAN_CUSTOM +set prefix=($root)/boot/grub/ +configfile /boot/grub/grub.cfg +EOF + +# Create a special file in staging named DEBIAN_CUSTOM. +# This file will be used to help GRUB figure out which device contains our live filesystem. +# This file name must be unique and must match the file name in our grub.cfg config. +touch /srv/LIVE_BOOT/staging/DEBIAN_CUSTOM + +# Prepare Boot Loader Files + +# Copy BIOS/legacy boot required files into our workspace. +cp /usr/lib/ISOLINUX/isolinux.bin "/srv/LIVE_BOOT/staging/isolinux/" && \ +cp /usr/lib/syslinux/modules/bios/* "/srv/LIVE_BOOT/staging/isolinux/" + +# Copy EFI/modern boot required files into our workspace. +cp -r /usr/lib/grub/x86_64-efi/* "/srv/LIVE_BOOT/staging/boot/grub/x86_64-efi/" + +# Generate an EFI bootable GRUB image. +grub-mkstandalone \ + --format=x86_64-efi \ + --output=/srv/LIVE_BOOT/tmp/bootx64.efi \ + --locales="" \ + --fonts="" \ + "boot/grub/grub.cfg=/srv/LIVE_BOOT/tmp/grub-standalone.cfg" + +# Create a FAT16 UEFI boot disk image containing the EFI bootloader. +# Note the use of the mmd and mcopy commands to copy our UEFI boot loader named bootx64.efi. +(cd /srv/LIVE_BOOT/staging/EFI/boot && \ + dd if=/dev/zero of=efiboot.img bs=1M count=20 && \ + mkfs.vfat efiboot.img && \ + mmd -i efiboot.img efi efi/boot && \ + mcopy -vi efiboot.img /srv/LIVE_BOOT/tmp/bootx64.efi ::efi/boot/ +) + +# Create Bootable ISO/CD +xorriso \ + -as mkisofs \ + -iso-level 3 \ + -o "/srv/LIVE_BOOT/debian-custom.iso" \ + -full-iso9660-filenames \ + -volid "DEBIAN_CUSTOM" \ + -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \ + -eltorito-boot \ + isolinux/isolinux.bin \ + -no-emul-boot \ + -boot-load-size 4 \ + -boot-info-table \ + --eltorito-catalog isolinux/isolinux.cat \ + -eltorito-alt-boot \ + -e /EFI/boot/efiboot.img \ + -no-emul-boot \ + -isohybrid-gpt-basdat \ + -append_partition 2 0xef /srv/LIVE_BOOT/staging/EFI/boot/efiboot.img \ + "/srv/LIVE_BOOT/staging" diff --git a/root/etc/apt/sources.list b/root/etc/apt/sources.list new file mode 100644 index 0000000..43559f2 --- /dev/null +++ b/root/etc/apt/sources.list @@ -0,0 +1 @@ +deb http://deb.debian.org/debian sid main contrib non-free diff --git a/root/etc/apt/sources.list.d/eracolatore.list b/root/etc/apt/sources.list.d/eracolatore.list new file mode 100644 index 0000000..e380379 --- /dev/null +++ b/root/etc/apt/sources.list.d/eracolatore.list @@ -0,0 +1 @@ +deb https://deb.eracolatore.tk/debian ./ diff --git a/root/etc/apt/trusted.gpg.d/eracolatore.asc b/root/etc/apt/trusted.gpg.d/eracolatore.asc new file mode 100644 index 0000000..4d95370 --- /dev/null +++ b/root/etc/apt/trusted.gpg.d/eracolatore.asc @@ -0,0 +1,64 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGFgXSEBEAC0ALO2LwPUuM8EnSn2Bcpic7/PEhd0yqel7mlog4x0/dgGb+EF +trRqkwlJDgrOE0Y4XjYil9WFHuwPaHAwJh4BfPyASL5rjA4qgM4whXr44rIwW82t +E/mY3aXahangTNwh3EtscJsINa5vnycKPRIMWiPIumi9OBfXb/8wuUX03CRJpDYi +M0R7YLmlokmlCvU8HRKb0b59fNFeQL26uloFc9Mx7xJYpYGgwO8TeUwiGOQyWhkm +H3nkUECRPsCd4x2hIUyF+gVxZKwIKiEH8UtNeO/kZKD/c+vDPOOVaCOnKDEreyTX +VyewyvQ+kQhUAjno3/rwxc9qXgh5twk0aH3aAwBSjStXDe0SXw4L0ZuJ4nBnOV3P +pjt8Z4aNYrZ5wgeGSvP31ZR0WxbmDzREYm9JZpwgK4xk84kyOMuS/9OQ7tzlb8zm +HYOR0DxzxoyZWw/BRD4D1h2JhQP1I/lCbsWLFde4HTplcWRmwCU6imxMcbhTgcsc +AGqgkhHNLRvgzmijYAVaaUz3Cu9xYeuH5jCtDvnvjcuz4Lljiaz0jwMvGV8b6ZwG +w7bP7x2/CP+FVlbTGG7nnfBBCJ6/rVdS1nsC8Awx5Jnqxi0ZKneKj53DGgt562fS +Wagu+Lk22d2kxidb3JvVeulyZk3Mf3r9tMj/rnIQJU2wSsOAEKeFoA4uwQARAQAB +tDFKb2UgVGVzdGVyICh3aXRoIHN0dXBpZCBwYXNzcGhyYXNlKSA8am9lQGZvby5i +YXI+iQJOBBMBCgA4FiEEySsb8ypM1CcNF6vaHIj+aSZshi0FAmFgXSECGwMFCwkI +BwIGFQoJCAsCBBYCAwECHgECF4AACgkQHIj+aSZshi2rKA//eDBYXQ8A6k2AZ2MB +cFlHPmK0TQlNrAgXozx08A+JCtZDWZK811WiCNRG3KNFSQ4K/htZm1K2xHwDw0b2 +XXrRTy96wzf4VlC7Zugns0wcDPAFC4V1Z/R141UXgTp2btNSCmrZR3aCQmPLAPct +PBf2xA5CiSwavDwIOsvzbRc6Mxz4reOrI6Z8TdAG70mxDUvLLjAgHcXe0+0+8vuQ +fqf3/BQQfeCzCwt+nz9TMFPnJWi35d8+oNluWh/C6XKStVnVOx6CiRTebYhsThCa +fpnhrj/bJInTMdwmCeszw17oYjrNjBtEST16cdFIHVPRpuEutbXNggiAm3DpHdLV +/lmZXQQOPsfJuhDNx4QJzJL/gRx6aBxT/kgIffyIzmF/+/VGvsGi2rE/q1qjU8sV +cZsLP/kpRMZE0vTEgr1KuB+jPTqdCrgsAe2Tc/SQrIu2fBlAtyei4PT/+/B2xK9h +b2B8kz27hrkffs5yS1VnsU+CxlYknvGkMvaT5NqYJbcRu8pjQgTvCg1R3lKVU2vZ +MI8m/QDJ1f5wQ4fQqEYk6N7J2Ox5pUNRTtHxWeN0/bko7W7jn0D+2GBK7jWG0RTu +rcnPBKFDMwh7uGlkm7A5puO6d+IJGx+uWBlopliJYMO7Da6PVFtcPcioePwpEfaP +KQ3RTwUGmF6s7kt1mFYNtazoAom5Ag0EYWBdIQEQALOmev7b+jH22L15Q7Hy5/Vz +UEqUfxMfbwk7+2CpGeFX3kVuHaUYvu2T1PCz+VCDXdttOeylrYO70Vreuw/0DQR1 +/akHR5juJzW+kSw7BXjiFbDk4RvTs+1F3sEP/Sn6+Z4izIQmxeE+olLrE6ZY/XW6 +udkCfMAu5L79CKpy4wbYhaz9W4j0/yfLPWLM7VVftZojvJ6tSSydzSUone0Fo4cM +7MCUfMbk6h/YxncySIItlgdtQU5zKPndmcGerU2rKuxgIjgxUGCmqpy9+f3XqN/H +nz35185pbhfROtuvVdaZ84jsLw2mRnMkDbQuGTN0iKg/GKpgQr6VFN13bHUw29w+ +d9lRLYVi0JeQLyjqDFqkEcq6rVtsew/XkjlgahXiGQqt1xOQdHOWQ32IIhJmV9s6 +QJA+nFCbvO1fQvRwmP7timq/xCfNhL/mJuAmgghJLBqU+ts8k1SMDwWjfFi35XrE +ESSfk74AFsEQmYm6XocK4UCoyi/eG9jkkf4Ldt72+tk29Fbwwci90agdGf6xHQJx +y3M/AHHMNJ3KgQSNzXf9WoSAVUW+mIqm+sOwhzMeh/KbkrbG2qMF/iTljjjGS0c7 +Dq4HPd1PhBt3ABcRKa3EURjdddTV05h1+SkGgb2NPeFajCOURRPi05Ltm1NfI2wY +Zz+yS6Rm8XM0fNYCHZrZABEBAAGJBGwEGAEKACAWIQTJKxvzKkzUJw0Xq9ociP5p +JmyGLQUCYWBdIQIbAgJACRAciP5pJmyGLcF0IAQZAQoAHRYhBBb7OY5EJzeuJc5h +k9sDmuzwhJTUBQJhYF0hAAoJENsDmuzwhJTUe64P/jzVM7LuBGA5vWpOlJv/2aGn +yGLVDXI0s1CjZ3b+BfbJD62TQKn7u3MeAUXhJwnMLt5yuJz+ThRkKxCH609C7doU +g4IpLIToTYdIItSvngPYTFZav0GWIxLAGxrEqQMWAPbp5YG7i63QtZKDa1mu/I/K +bXDNab5R2RHGF2G+unFCD7+dgCm2fZO2M+jwyqbOCCbnVdiQQ1Ny2fhqIpdqYuQg +/+AoocVHsTvrPPCmfdS3xaK11hoLE1PgQh+DddHXkTwQZ++WsU9OK1zedY4UMsGQ +25RjahxGVFMlNFzs25JDytdTZjdcWPD4BMNcLYt77qFKe2Hp4BPde8OEYyxkG9da +s+WCMzEFtsVZidQHRaG2JITPEuJVl4pU67jx62MHgdn1IE1wXCta0nhM0yVsb2hh +4J6sxr13/gp7Qs6WgpudNJVwt70Y+oJ2qASa5vlUygkWez69xcy3RxYg0QqHnQ1w +Jr2invgOxsUxC6tV9c+TDcB6LSaSvzzjHgjEJqSSzECDNfTTxj+3qKnmRYEY3GOM +sKO/bm/wYtzIdcdayBwBvGOBLQoMdDHSQYAPdpqSYCD3grgqXpC/nxyVrnESpA0C +R/QVGjyEKGPeCPP0DPcjmBm9pjFtdsZHgwFvGv+OX3boRWkJKLzT6YeVbknDjWYD +aIz8wnGD1wV8VzI1xnThjo8P/jaATR1xZfWxcTAHDdJ/eJ6nprjZE/tSakQ05JuL +1njBCPUiiPKTQXhXRYTd/SQyB15ozLK1D2wZV698FysyrGnIbnKrhCTdmngat6Je +eba+gFrsJs2RTvekSZUORHrYGwne/xVTtrLab/KeLmzzfIiCdE/i2YZLjSd5MLzo +XNlNUOOP7zYiECPe4gaMaubjtRuUPWrn7wzHvIXUq/LFQPk7rR8WVXHvVTlm4iPv +vkfA4TGHEeX5C1sMVZi/vgqnu4MMwB8lUAepfdufbkUsyQ4kpunxeXXjvEZTwMvD +rsQwwd4+Mz+idDm9xlbHZT1oAlwAUwtn+WzyyDtcVQQtW6T/j6/vEJJq0BaoC+nw +SB9pdNLf6ZbsEIw1HUMTjATTQg7sLDnH3NQ7H4wNQ8CnImHNHoVl9njij82LMXs6 +IB8yjWCxEF/pfF+RVeD3w+gqwHCB1HqINz2CqcuuTFX447KO2Of+4EOCIYDyh21f +xDByT/fae6WwHqvNEGCTLz3yqITUNy7vgtda4BD2bSp2inJXVIGHwybVGhqgbJpm +TseH0dcWvmFH/qCzRsfZDpg6GQ4uW+hfEP+I4+HhnKeZStkcxXYCSe4Mos4qDSBf +D8vYVEPFIFGVfS6O5XcWjAP60xetbAx+cOpOEZtYm+297m3YxC0tEvWkGM4l97bb +XwvL +=dA8h +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/etc/chromium-ungoogled/00-default.conf b/root/etc/chromium-ungoogled/00-default.conf new file mode 100644 index 0000000..1341171 --- /dev/null +++ b/root/etc/chromium-ungoogled/00-default.conf @@ -0,0 +1,19 @@ +# Default settings for chromium-ungoogled. +# This file is sourced by /usr/bin/chromium-ungoogled +# See: https://github.com/ungoogled-software/ungoogled-chromium/blob/master/docs/flags.md + +# Options to pass to chromium-ungoogled: + +CHROMIUM_ONLY_FLAGS="\ +--force-dark-mode \ +--ignore-gpu-blocklist \ +--enable-gpu-rasterization \ +--enable-zero-copy" + +CHROMIUM_UNGOOGLED_FLAGS="$CHROMIUM_ONLY_FLAGS \ +--disable-search-engine-collection \ +--show-avatar-button=incognito-and-guest \ +--disable-sharing-hub \ +--hide-sidepanel-button \ +--bookmark-bar-ntp=never \ +--remove-grab-handle" diff --git a/root/etc/default/console-setup b/root/etc/default/console-setup new file mode 100644 index 0000000..dc3ea7f --- /dev/null +++ b/root/etc/default/console-setup @@ -0,0 +1,16 @@ +# CONFIGURATION FILE FOR SETUPCON + +# Consult the console-setup(5) manual page. + +ACTIVE_CONSOLES="/dev/tty[1-6]" + +CHARMAP="UTF-8" + +CODESET="Lat15" +FONTFACE="Fixed" +FONTSIZE="8x16" + +VIDEOMODE= + +# The following is an example how to use a braille font +# FONT='lat9w-08.psf.gz brl-8x8.psf' diff --git a/root/etc/default/hwclock b/root/etc/default/hwclock new file mode 100644 index 0000000..44b0431 --- /dev/null +++ b/root/etc/default/hwclock @@ -0,0 +1,2 @@ +# Settings for the hwclock init script. +# See hwclock(5) for supported settings. diff --git a/root/etc/default/keyboard b/root/etc/default/keyboard new file mode 100644 index 0000000..e271dbb --- /dev/null +++ b/root/etc/default/keyboard @@ -0,0 +1,10 @@ +# KEYBOARD CONFIGURATION FILE + +# Consult the keyboard(5) manual page. + +XKBMODEL="pc105" +XKBLAYOUT="it" +XKBVARIANT="" +XKBOPTIONS="" + +BACKSPACE="guess" diff --git a/root/etc/default/locale b/root/etc/default/locale new file mode 100644 index 0000000..e65f2bc --- /dev/null +++ b/root/etc/default/locale @@ -0,0 +1 @@ +# File generated by update-locale diff --git a/root/etc/default/nss b/root/etc/default/nss new file mode 100644 index 0000000..c43e88b --- /dev/null +++ b/root/etc/default/nss @@ -0,0 +1,37 @@ +# /etc/default/nss +# This file can theoretically contain a bunch of customization variables +# for Name Service Switch in the GNU C library. For now there are only +# four variables: +# +# NETID_AUTHORITATIVE +# If set to TRUE, the initgroups() function will accept the information +# from the netid.byname NIS map as authoritative. This can speed up the +# function significantly if the group.byname map is large. The content +# of the netid.byname map is used AS IS. The system administrator has +# to make sure it is correctly generated. +#NETID_AUTHORITATIVE=TRUE +# +# SERVICES_AUTHORITATIVE +# If set to TRUE, the getservbyname{,_r}() function will assume +# services.byservicename NIS map exists and is authoritative, particularly +# that it contains both keys with /proto and without /proto for both +# primary service names and service aliases. The system administrator +# has to make sure it is correctly generated. +#SERVICES_AUTHORITATIVE=TRUE +# +# SETENT_BATCH_READ +# If set to TRUE, various setXXent() functions will read the entire +# database at once and then hand out the requests one by one from +# memory with every getXXent() call. Otherwise each getXXent() call +# might result into a network communication with the server to get +# the next entry. +#SETENT_BATCH_READ=TRUE +# +# ADJUNCT_AS_SHADOW +# If set to TRUE, the passwd routines in the NIS NSS module will not +# use the passwd.adjunct.byname tables to fill in the password data +# in the passwd structure. This is a security problem if the NIS +# server cannot be trusted to send the passwd.adjuct table only to +# privileged clients. Instead the passwd.adjunct.byname table is +# used to synthesize the shadow.byname table if it does not exist. +ADJUNCT_AS_SHADOW=TRUE diff --git a/root/etc/default/useradd b/root/etc/default/useradd new file mode 100644 index 0000000..2cb8167 --- /dev/null +++ b/root/etc/default/useradd @@ -0,0 +1,37 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DSHELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/sh +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +# GROUP=100 +# +# The default home directory. Same as DHOME for adduser +# HOME=/home +# +# The number of days after a password expires until the account +# is permanently disabled +# INACTIVE=-1 +# +# The default expire date +# EXPIRE= +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=no + diff --git a/root/etc/hostname b/root/etc/hostname new file mode 100644 index 0000000..8d089e8 --- /dev/null +++ b/root/etc/hostname @@ -0,0 +1 @@ +debian-live diff --git a/root/etc/hosts b/root/etc/hosts new file mode 100644 index 0000000..b737fab --- /dev/null +++ b/root/etc/hosts @@ -0,0 +1,9 @@ +127.0.0.1 localhost +127.0.1.1 debian-live + +# The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters diff --git a/root/etc/locale.gen b/root/etc/locale.gen new file mode 100644 index 0000000..ad27497 --- /dev/null +++ b/root/etc/locale.gen @@ -0,0 +1,9 @@ +# This file lists locales that you wish to have built. You can find a list +# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add +# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change +# this file, you need to rerun locale-gen. + + +en_GB.UTF-8 UTF-8 +en_US.UTF-8 UTF-8 +it_IT.UTF-8 UTF-8 diff --git a/root/etc/rc.local b/root/etc/rc.local new file mode 100755 index 0000000..427b066 --- /dev/null +++ b/root/etc/rc.local @@ -0,0 +1,16 @@ +#!/bin/sh -e +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Ensure that the script will "exit 0" on success or any other +# value on error. +# +# To enable or disable this script, just change the execution +# bits. +# +# By default, this script does nothing. + +# Turn Numlock on for the TTYs +for tty in /dev/tty[1-6]; do + /usr/bin/setleds -D +num < $tty +done diff --git a/root/srv/apt.list b/root/srv/apt.list new file mode 100644 index 0000000..51851b7 --- /dev/null +++ b/root/srv/apt.list @@ -0,0 +1,132 @@ +# Meliurwen's base environment +# Description: All the packages needed for a minimal fully working environment +# Target: debian/sid +# Usage: apt-get --no-install-recommends install $(grep -vE "^\s*#" | sed -e 's/#.*//' | tr "\n" " ") + +# Network +iproute2 # ip command +wpasupplicant +wireless-tools +network-manager # Automatically handle network connections +ca-certificates + +# Drivers +firmware-iwlwifi # Module for Intel wifi cards +firmware-misc-nonfree # Intel graphics driver + +# Locales, Languages and Keyboard Layouts +locales +console-setup # Keyboard Layout + +# Audio and brightness +brightnessctl +brightness-udev # udevadm control --reload-rules && udevadm trigger && usermod -aG video ${USER} +rtkit # Not essential for pipewire, but it helps avoid some crashes # systemctl enable rtkit +pipewire +pipewire-pulse # systemctl --user --now enable pipewire pipewire-pulse && systemctl --user daemon-reload +#pipewire-media-session # deprecated in favor of wireplumber +wireplumber +pipewire-audio-client-libraries +pulseaudio-utils +alsa-utils + +# Hardware Tuning Services +tlp # systemctl enable tlp && systemctl start tlp +tlp-rdw +thinkfan # systemctl enable thinkfan && systemctl start thinkfan + +# Extra services +openssh-client +openssh-server # systemctl disable ssh && systemctl stop ssh +openssh-sftp-server + +# Core utilities +curl +wget +git +git-lfs +stow +nano +htop +iotop +powertop +nload +screen +less +bsdmainutils # cal, whois, mailutils... commands +dnsutils # dig +iputils-ping # ping +man +sudo # usermod -a -G sudo "$USER" +unzip + +# Non-essential but very useful program +zsh +terminfo # ~/.zshrc dependency +zsh-syntax-highlighting # ZSH Plugin +zsh-autosuggestions # ZSH Plugin + +haveged # Useful for some programs at boot that needs a good entropy + +# X Server +xinit # startx and xinit +x11-xserver-utils +xserver-xorg-video-fbdev +xserver-xorg-video-vesa +xserver-xorg-input-all # Input devices (mouse, keyboard, touchpad, etc..) +xserver-xorg-video-intel + +xwallpaper +numlockx + +# Desktop core apps +i3-wm +i3lock +polybar +rofi +dunst +picom +rxvt-unicode +pavucontrol +nemo +network-manager-gnome +network-manager-openvpn-gnome # optional +gnome-icon-theme +policykit-1-gnome # Graphical password prompt for gparted, synaptic, etc... + +# Polybar scripts +socat # mpv +jq # mpv +procps # mpv + +# dunst config in i3 +gettext-base # for envsubst in dunstrc template + +# Desktop core utilites +mpv +sxiv +#gedit +mousepad +engrampa +zathura +#deepin-screenshot # Dropped by Deepin devs and then removed by Debian repos +xclip # needed for deepin-screenshot hack to work + +# Meta Dependecies (dotvenv) +gawk # dconfman dependency +dconf-cli # dconfman dependency +dconf-editor # dconf GTK GUI + +# Admin Tools +baobab +gparted +synaptic +mate-calc + +# Browser Extensions +webext-ublock-origin-chromium + +# Custom Repo Apps +adwaita-pink-dark +chromium-ungoogled +chromium-widevine-plugin diff --git a/root/srv/background.jpg b/root/srv/background.jpg new file mode 100644 index 0000000..085c899 Binary files /dev/null and b/root/srv/background.jpg differ diff --git a/root/srv/entrypoint.sh b/root/srv/entrypoint.sh new file mode 100755 index 0000000..c0fd8bb --- /dev/null +++ b/root/srv/entrypoint.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +set -e + +export DEBIAN_FRONTEND=noninteractive + +apt-get update + +apt-get -qq --no-install-recommends install ca-certificates + +apt-get update + +apt-get -qq --no-install-recommends install \ + linux-image-amd64 \ + live-boot \ + systemd-sysv + +# https://wiki.debian.org/it/Keyboard +apt-get -qq --no-install-recommends install console-setup locales + +# Locales +locale-gen + +# Timezone +# Older systems +#echo "Europe/Rome" > /etc/timezone +#dpkg-reconfigure -f noninteractive tzdata + +# Newer systems +ln -fs /usr/share/zoneinfo/Europe/Rome /etc/localtime +dpkg-reconfigure -f noninteractive tzdata + +apt-get -qq --no-install-recommends install $(grep -vE "^\s*#" /srv/apt.list | sed -e 's/#.*//' | tr "\n" " ") + +apt-get -qq --no-install-recommends install sudo +useradd live-user --shell /bin/zsh --create-home --user-group --groups sudo + +# Configuration +# brightnessctl +usermod -aG video live-user +# pipewire +#systemctl enable rtkit + +systemctl enable tlp +systemctl enable thinkfan +systemctl disable ssh + +# systemd rc-local compatibility +systemctl enable rc-local + +apt-get clean + +su live-user -s /srv/get_dotfiles.sh diff --git a/root/srv/get_dotfiles.sh b/root/srv/get_dotfiles.sh new file mode 100755 index 0000000..852126f --- /dev/null +++ b/root/srv/get_dotfiles.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +set -e + +cd "$HOME" + +rm "$HOME/.profile" + +mkdir -p "$HOME/.local/share/backgrounds" +cp /srv/background.jpg "$HOME/.local/share/backgrounds/" + +mkdir -p "$HOME/.config" +printf "LANG=it_IT.UTF-8\nLANGUAGE=it_IT:en_US:en\n" > "$HOME/.config/locale.conf" + +git clone https://gitlab.com/meliurwen/dotfiles.git .dotfiles + +cd .dotfiles + +cat ".mousepad/mousepad.dconf" | dbus-run-session dconf load "/org/xfce/mousepad/" +cat ".nemo/nemo.dconf" | dbus-run-session dconf load "/org/nemo/" + +stow --restow --no-folding */ + +mkdir -p /tmp/deb-live/fonts +wget https://raw.githubusercontent.com/Keyamoon/IcoMoon-Free/master/Font/IcoMoon-Free.ttf -O /tmp/deb-live/fonts/IcoMoon-Free.ttf +wget https://raw.githubusercontent.com/google/material-design-icons/master/font/MaterialIcons-Regular.ttf -O /tmp/deb-live/fonts/MaterialIcons-Regular.ttf +wget https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/ProggyClean/SlashedZero/complete/ProggyCleanTTSZ%20Nerd%20Font%20Complete%20Mono.ttf -O "/tmp/deb-live/fonts/ProggyCleanTTSZ Nerd Font Complete Mono.ttf" +wget https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/Ubuntu/Bold/complete/Ubuntu%20Bold%20Nerd%20Font%20Complete.ttf -O "/tmp/deb-live/fonts/Ubuntu Bold Nerd Font Complete.ttf" +wget https://fonts.google.com/download?family=Noto%20Emoji -O /tmp/deb-live/noto-emoji.zip && unzip -p /tmp/deb-live/noto-emoji.zip static/NotoEmoji-Regular.ttf > /tmp/deb-live/fonts/NotoEmoji-Regular.ttf +mkdir -p "$HOME/.local/share/fonts" +cp /tmp/deb-live/fonts/* "$HOME/.local/share/fonts/" + +mkdir -p /tmp/deb-live/consolefonts +wget https://raw.githubusercontent.com/powerline/fonts/master/Terminus/PSF/ter-powerline-v12n.psf.gz -O "/tmp/deb-live/consolefonts/ter-powerline-v12n.psf.gz" +mkdir -p "$HOME/.local/share/consolefonts" +cp /tmp/deb-live/consolefonts/* "$HOME/.local/share/consolefonts/" + +# Reload locally installed fonts +fc-cache -f -v + +# Installing zsh plugins +ln -s /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh $HOME/.config/zsh/plugins/zsh-autosuggestions.zsh +ln -s /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh $HOME/.config/zsh/plugins/zsh-syntax-highlighting.zsh + +# Enabling Pipewire +systemctl --user --now enable pipewire pipewire-pulse || echo "pipewire should be enabled now..."