Linux System Configuration

From The Brainwrecked Wiki
Jump to navigation Jump to search
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