Description |
Alpine |
Arch |
Debian |
Void
|
Laptop Lid Switch Fix
|
/etc/elogind/logind.conf
...
HandleLidSwitch=ignore
...
|
|
/etc/systemd/logind.conf
...
HandleLidSwitch=ignore
...
|
|
/etc/elogind/logind.conf
...
HandleLidSwitch=ignore
...
|
|
Time Zone
|
ln -s /etc/zoneinfo/<Country>/<City> /etc/localtime
|
ln -s /usr/share/zoneinfo/<Country>/<City> /etc/localtime
|
Locale Availability
|
apk add musl-locales
|
${EDITOR} /etc/locale.gen;
locale-gen
|
Locale Selection
|
/etc/profile.d/locale.sh
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_COLLATE=POSIX
LC_MESSAGES=C
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
|
|
/etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_COLLATE=POSIX
LC_MESSAGES=C
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
|
|
Keymap
|
setup-keymap
|
/etc/vconsole.conf
KEYMAP=us
FONT=Lat2-Terminus16
|
|
dpkg-reconfigure keyboard-configuration
setupcon
|
/etc/rc.conf
...
KEYMAP=us
...
FONT=Lat2-Terminus16
...
|
|
Console Font
|
${EDITOR} /etc/conf.d/consolefont;
rc-update add consolefont boot
|
dpkg-reconfigure console-setup
|
Hostname
|
echo "hostname" > /etc/hostname
|
Hosts
|
/etc/hosts
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 localhost.local.lan localhost
::1 localhost.local.lan localhost
127.0.1.1 hostname.local.lan hostname
|
|
Initramfs
|
${EDITOR} /etc/mkinitfs.conf; mkinitfs
|
/etc/mkinitcpio.conf
...
# Open-source drivers
MODULES+=(amdgpu i915 nouveau radeon)
# Proprietary NVIDIA
MODULES+=(nvidia nvidia_drm nvidia_modeset nvidia_uvm)
# QEMU virtual machines
MODULES+=(bochs_drm cirrus qxl virtio-gpu)
...
HOOKS=(base udev autodetect)
HOOKS+=(modconf block filesystems keyboard fsck)
HOOKS+=(keymap consolefont)
...
# Only for filesystems already compressed with zstd
COMPRESSION="cat"
...
mkinitcpio -P
|
|
User Creation
|
useradd -m -u <nnnn> -g users -G wheel,games,video,audio,optical,storage,scanner,power <username>
|
Passwords
|
passwd <username>
|
Package Manager
|
|
/etc/pacman.conf
...
# If using ArchZFS, sometimes ArchZFS is behind Official Arch
IgnorePkg = <kernel> <kernel>-headers zfs-<kernel> zfs-utils
...
# Misc options
ILoveCandy
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5
...
[multilib]
Include = /etc/pacman.d/mirrorlist
...
[archzfs]
Include = /etc/pacman.d/archzfs-mirrorlist
[zfs-<kernel>] # zfs-linux|zfs-linux-lts|zfs-linux-zen
Server = http://kernels.archzfs.com/$repo/
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
[andontie-aur]
Server = https://aur.andontie.net/$arch
/etc/pacman.d/archzfs-mirrorlist
# France (origin)
Server = http://archzfs.com/$repo/$arch
# Germany/Duetschland
Server = http://mirror.sum7.eu/archlinux/archzfs/$repo/$arch
Server = https://mirror.biocrafting.net/archlinux/archzfs/$repo/$arch
# India
Server = https://mirror.in.themindsmaze.com/archzfs/$repo/$arch
# United States
Server = https://zxcvfdsa.com/archzfs/$repo/$arch
# ArchZFS
pacman-key --recv-key DDF7DB817396A49B2A2723F7403BD972F75D9D76
pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76
# Andontie AUR
pacman-key --recv-key B545E9B7CD906FE3
pacman-key --lsign-key B545E9B7CD906FE3
# Chaotic AUR (only needed if chaotic-keyring is not installed)
pacman-key --recv-key 3056513887B78AEB
pacman-key --lsign-key 3056513887B78AEB
|
|
|
For Debian:
/etc/apt/sources.list
deb http://deb.debian.org/debian <release> main contrib nonfree
deb http://deb.debian.org/debian <release>-updates main contrib nonfree
deb http://deb.debian.org/debian <release>-security main contrib nonfree
deb http://deb.debian.org/debian <release>-backports main contrib nonfree
deb-src http://deb.debian.org/debian <release> main contrib nonfree
deb-src http://deb.debian.org/debian <release>-updates main contrib nonfree
deb-src http://deb.debian.org/debian <release>-security main contrib nonfree
deb-src http://deb.debian.org/debian <release>-backports main contrib nonfree
|
|
For Ubuntu:
/etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ <release> main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ <release>-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ <release>-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ <release>-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu <release> partner
deb-src http://archive.ubuntu.com/ubuntu/ <release> main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ <release>-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ <release>-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ <release>-backports main restricted universe multiverse
deb-src http://archive.canonical.com/ubuntu <release> partner
|
|
To enable multilib on Debian-based distros:
dpkg --add-architecture i386
|
NanoRC
|
/etc/nanorc
set boldtext
set casesensitive
set constantshow
set locking
set whitespace "»·"
set titlecolor bold,lightwhite,blue
set promptcolor lightwhite,lightblack
set statuscolor bold,lightwhite,green
set errorcolor bold,lightwhite,red
set spotlightcolor black,lime
set selectedcolor lightwhite,magenta
set stripecolor ,yellow
set scrollercolor cyan
set numbercolor cyan
set keycolor cyan
set functioncolor green
include /usr/share/nano/*.nanorc
include /usr/share/nano-syntax-highlighting/*.nanorc
|
/root/.nanorc
# nano < 5.0 (Ubuntu 20.04 = 4.8)
set titlecolor brightwhite,magenta
set statuscolor brightwhite,magenta
set errorcolor brightwhite,red
# 6.0 < nano >=5.0 (Debian 11 Bullseye = 5.2)
# set titlecolor bold,lightwhite,magenta
# set statuscolor bold,lightwhite,magenta
# set errorcolor bold,lightwhite,red
# set scrollercolor magenta
# nano >=6.0 (Arch, Void)
# set promptcolor black,yellow
# set spotlightcolor black,orange
# All of nano
set selectedcolor brightwhite,cyan
set stripecolor ,yellow
set numbercolor magenta
set keycolor brightmagenta
set functioncolor magenta
|
|
|
sudo
|
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/0_privilege
echo '%users ALL=(ALL) NOPASSWD:/usr/bin/dmidecode -t 17' > /etc/sudoers.d/dmidecode
echo 'Defaults passprompt="[sudo] password for %U: "' > /etc/sudoers.d/prompt
echo 'Defaults rootpw' > /etc/sudoers.d/rootpw
|
|
PolicyKit rootpw
|
/etc/polkit-1/rules.d/49-rootpw_global.rules
// Always authenticate Admins by prompting for the root password
// similar to the rootpw option in sudo
polkit.addAdminRule(function(action, subject) {
return ["unix-user:root"];
});
|
|
/etc/polkit-1/localauthority.conf.d/49-rootpw_global.rules
// Always authenticate Admins by prompting for the root password
// similar to the rootpw option in sudo
polkit.addAdminRule(function(action, subject) {
return ["unix-user:root"];
});
|
|
Sticky bit directories
|
/etc/sysctl.d/stickybit.conf
# Allow the creation regular files in world-writable sticky directories
# when the file owner doesn't match that of the directory
fs.protected_regular=0
|
|
NTP Client ([Open]NTP)
|
/etc/ntpd.conf
server [server1]
server [server2]
server [server3]
restrict default kod limited nomodify nopeer noquery notrap
restrict 127.0.0.1
restrict ::1
driftfile /var/lib/ntp/ntp.drift
|
|
NTP Client (systemd-timesyncd)
|
|
/etc/systemd/timesyncd.conf
...
[Time]
NTP=[your-local-server]
FallbackNTP=[closest-remote-server]
...
timedatectl set-ntp true
|
|
NTP Server
|
/etc/ntpd.conf
server [server1]
server [server2]
server [server3]
server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict default kod nomodify notrap noquery
restrict 192.168.10.0 mask 255.255.255.0 kod nomodify notrap
restrict 127.0.0.1
restrict ::1
driftfile /var/lib/ntp/ntp.drift
|
|
Plymouth
|
|
cd /usr/share/plymouth
cp arch-logo.png themes/spinner/watermark.png
cd themes
cp -r <theme> <theme>-custom
cd <theme>-custom
mv <theme>.plymouth <theme>-custom.plymouth
|
/usr/share/plymouht/themes/<theme>-custom/<theme>.plymouth
...
WatermarkHorizontalAlignment=.5
WatermarkVerticalAlignment=.6
...
|
/etc/plymouth/plymouth.conf
...
Theme=<theme>-custom
...
|
/etc/sysctl.d/20-quiet-printk.conf
kernel.printk = 3 3 3 3
|
setterm -cursor on >> /etc/issue
/etc/mkinitcpio.conf
...
HOOKS=(...udev plymouth autodetect...)
...
mkinitcpio -P
|
|
SMARTd
|
/etc/smartd.conf
...
DEVICESCAN -n standby,15,q -s (S/../.././02)
...
|
|
Limit Logs
|
|
/etc/systemd/journald.conf
...
SystemMaxUse=64M
...
|
|
Reduced service timeout
|
|
/etc/systemd/system.conf
...
DefaultTimeoutStartSec=30s
DefaultTimeoutStopSec=15s
...
|
|
systemd-resolved local host name resolution
|
|
/etc/nsswitch.conf
...
hosts: files mymachines myhostname resolve dns
...
|
/etc/systemd/resolved.conf
...
Domains=your.local.domain
...
|
|
systemd-resolved with avahi
|
|
/etc/systemd/resolved.conf
...
MulticastDNS=no
...
|
|
Default Editor
|
/etc/profile.d/editor.sh
export EDITOR=nano
|
|
Video Acceleration
|
/etc/profile.d/video-accel.sh
#!/usr/bin/env sh
gmn() {
lscpu | grep Model: | sed 's/\s\+//g' | cut -d: -f2
}
case "$(lsmod)" in
*amdgpu*) ldn=radeonsi; vdn=$ldn;;
i915*) [ $(gmn) -gt 60 ] && ldn=iHD || ldn=i965; vdn=va_gl;;
*nouveau*) ldn=nouveau; vdn=$ldn;;
*nvidia*) ldn=vdpau; vdn=nvidia;;
esac
[ -n "$ldn" ] && export LIBVA_DRIVER_NAME=$ldn
[ -n "$vdn" ] && export VDPAU_DRIVER=$vdn
|
|