about summary refs log tree commit diff
path: root/etc
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>1970-01-01 03:00:00 +0300
committerAzat Bahawi <azat@bahawi.net>2022-09-20 11:52:07 +0300
commit962c35425636e3f942fd8a624369a7c53748f47e (patch)
treec69e76f6c4cdd7f9f66d02a02ee683fe4d5426e7 /etc
chore: init HEAD master
Diffstat (limited to 'etc')
-rw-r--r--etc/UPower/UPower.conf94
-rw-r--r--etc/X11/xorg.conf.d/intel.conf5
-rw-r--r--etc/X11/xorg.conf.d/thinkpad.conf14
-rw-r--r--etc/buildkernel.conf8
-rw-r--r--etc/conf.d/acpid6
-rw-r--r--etc/conf.d/adjtimex9
-rw-r--r--etc/conf.d/agetty11
-rw-r--r--etc/conf.d/alsasound15
-rw-r--r--etc/conf.d/bootmisc15
-rw-r--r--etc/conf.d/busybox-ntpd6
-rw-r--r--etc/conf.d/busybox-watchdog9
-rw-r--r--etc/conf.d/consolefont18
-rw-r--r--etc/conf.d/devfs8
-rw-r--r--etc/conf.d/device-mapper1
-rw-r--r--etc/conf.d/display-manager13
-rw-r--r--etc/conf.d/dmcrypt112
-rw-r--r--etc/conf.d/dmesg3
l---------etc/conf.d/earlyoom1
-rw-r--r--etc/conf.d/elogind7
-rw-r--r--etc/conf.d/fancontrol16
-rw-r--r--etc/conf.d/fcron7
-rw-r--r--etc/conf.d/fsck40
-rw-r--r--etc/conf.d/git-daemon19
-rw-r--r--etc/conf.d/haveged9
-rw-r--r--etc/conf.d/hdparm26
-rw-r--r--etc/conf.d/hostname2
-rw-r--r--etc/conf.d/hwclock20
-rw-r--r--etc/conf.d/ip6tables27
-rw-r--r--etc/conf.d/iptables27
-rw-r--r--etc/conf.d/irqbalance19
-rw-r--r--etc/conf.d/keymaps23
-rw-r--r--etc/conf.d/killprocs6
-rw-r--r--etc/conf.d/lm_sensors4
-rw-r--r--etc/conf.d/localmount10
-rw-r--r--etc/conf.d/lvm9
-rw-r--r--etc/conf.d/modules22
-rw-r--r--etc/conf.d/mtab13
-rw-r--r--etc/conf.d/net7
-rw-r--r--etc/conf.d/net-online18
-rw-r--r--etc/conf.d/netmount47
-rw-r--r--etc/conf.d/nfs38
-rw-r--r--etc/conf.d/nfsclient18
-rw-r--r--etc/conf.d/ntpd7
-rw-r--r--etc/conf.d/openvpn18
-rw-r--r--etc/conf.d/pciparm28
-rw-r--r--etc/conf.d/pydoc-2.76
-rw-r--r--etc/conf.d/pydoc-3.96
-rw-r--r--etc/conf.d/rpcbind4
-rw-r--r--etc/conf.d/rsyncd5
-rw-r--r--etc/conf.d/saslauthd19
-rw-r--r--etc/conf.d/smapi20
-rw-r--r--etc/conf.d/smartd4
-rw-r--r--etc/conf.d/sshd33
-rw-r--r--etc/conf.d/stmpfiles-dev2
-rw-r--r--etc/conf.d/stmpfiles-setup2
-rw-r--r--etc/conf.d/svnserve10
-rw-r--r--etc/conf.d/swap13
-rw-r--r--etc/conf.d/syncthing24
-rw-r--r--etc/conf.d/syslog-ng43
-rw-r--r--etc/conf.d/udev9
-rw-r--r--etc/conf.d/udev-settle5
-rw-r--r--etc/conf.d/udev-trigger32
-rw-r--r--etc/conf.d/urandom5
-rw-r--r--etc/dispatch-conf.conf65
-rw-r--r--etc/doas.conf16
-rw-r--r--etc/eclean/distfiles.exclude7
-rw-r--r--etc/eclean/packages.exclude4
-rw-r--r--etc/env.d/00glibc1
-rw-r--r--etc/env.d/00manpager1
-rw-r--r--etc/env.d/02locale3
-rw-r--r--etc/env.d/04gcc-x86_64-pc-linux-gnu4
-rw-r--r--etc/env.d/05binutils2
-rw-r--r--etc/env.d/09sandbox1
-rw-r--r--etc/env.d/30gnupg1
-rw-r--r--etc/env.d/37fontconfig1
-rw-r--r--etc/env.d/50baselayout9
-rw-r--r--etc/env.d/50emacs1
-rw-r--r--etc/env.d/50ncurses1
-rw-r--r--etc/env.d/50package-manager3
-rw-r--r--etc/env.d/70less2
-rw-r--r--etc/env.d/98ca-certificates1
-rw-r--r--etc/env.d/99editor4
-rw-r--r--etc/env.d/99gentoolkit-env1
-rw-r--r--etc/env.d/99pager3
-rw-r--r--etc/env.d/binutils/config-x86_64-pc-linux-gnu1
-rw-r--r--etc/env.d/binutils/x86_64-pc-linux-gnu-2.37_p13
-rw-r--r--etc/env.d/gcc/config-x86_64-pc-linux-gnu1
-rw-r--r--etc/env.d/gcc/x86_64-pc-linux-gnu-11.2.08
-rw-r--r--etc/filesystems14
l---------etc/fonts/conf.d/09-texlive.conf1
l---------etc/fonts/conf.d/10-hinting-slight.conf1
l---------etc/fonts/conf.d/10-sub-pixel-rgb.conf1
l---------etc/fonts/conf.d/11-lcdfilter-default.conf1
l---------etc/fonts/conf.d/30-metric-aliases.conf1
l---------etc/fonts/conf.d/40-nonlatin.conf1
l---------etc/fonts/conf.d/45-generic.conf1
l---------etc/fonts/conf.d/45-latin.conf1
l---------etc/fonts/conf.d/49-sansserif.conf1
l---------etc/fonts/conf.d/50-user.conf1
l---------etc/fonts/conf.d/51-local.conf1
l---------etc/fonts/conf.d/60-generic.conf1
l---------etc/fonts/conf.d/60-latin.conf1
l---------etc/fonts/conf.d/63-source-pro.conf1
l---------etc/fonts/conf.d/65-nonlatin.conf1
l---------etc/fonts/conf.d/66-ja-ipafonts.conf1
l---------etc/fonts/conf.d/80-delicious.conf1
l---------etc/fonts/conf.d/90-synthetic.conf1
-rw-r--r--etc/fonts/conf.d/README23
-rw-r--r--etc/fstab5
-rw-r--r--etc/fuse.conf17
-rw-r--r--etc/genkernel.conf314
-rw-r--r--etc/hdparm.conf4
-rw-r--r--etc/issue6
-rw-r--r--etc/laptop-mode/conf.d/intel-hda-powersave.conf39
-rw-r--r--etc/laptop-mode/conf.d/intel-sata-powermgmt.conf39
-rw-r--r--etc/laptop-mode/laptop-mode.conf381
-rw-r--r--etc/locale.gen9
-rw-r--r--etc/login.defs500
-rw-r--r--etc/logrotate.conf42
-rw-r--r--etc/logrotate.d/elog-save-summary10
-rw-r--r--etc/logrotate.d/mpd9
-rw-r--r--etc/logrotate.d/openrc4
-rw-r--r--etc/logrotate.d/rsyncd9
-rw-r--r--etc/logrotate.d/syslog-ng83
-rw-r--r--etc/modprobe.d/aliases.conf42
-rw-r--r--etc/modprobe.d/alsa.conf38
-rw-r--r--etc/modprobe.d/blacklist.conf1
-rw-r--r--etc/modprobe.d/i386.conf4
-rw-r--r--etc/modprobe.d/iwlwifi.conf1
-rw-r--r--etc/modprobe.d/thinkpad.conf2
-rw-r--r--etc/modules-load.d/acpi.conf1
-rw-r--r--etc/modules-load.d/thinkpad.conf2
-rw-r--r--etc/mpd.conf58
-rwxr-xr-xetc/pm/config.d/sleep.d/50_hdparm-pm14
-rw-r--r--etc/pm/config.d/thinkpad_acpi1
-rw-r--r--etc/portage/env/ccache.conf3
-rw-r--r--etc/portage/env/debug.conf3
-rw-r--r--etc/portage/env/gcc.conf5
-rw-r--r--etc/portage/env/llvm.conf7
-rw-r--r--etc/portage/env/tmp.conf1
-rw-r--r--etc/portage/make.conf42
l---------etc/portage/make.profile1
-rw-r--r--etc/portage/modules1
-rw-r--r--etc/portage/package.accept_keywords/00-misc.conf8
-rw-r--r--etc/portage/package.accept_keywords/10-overlay.conf0
-rw-r--r--etc/portage/package.accept_keywords/99-auto.conf0
-rw-r--r--etc/portage/package.env/00-misc.conf17
-rw-r--r--etc/portage/package.env/99-auto.conf0
-rw-r--r--etc/portage/package.mask/00-misc.conf0
-rw-r--r--etc/portage/package.mask/50-python.conf6
-rw-r--r--etc/portage/package.mask/99-auto.conf0
-rw-r--r--etc/portage/package.unmask/00-misc.conf0
-rw-r--r--etc/portage/package.unmask/99-auto.conf0
-rw-r--r--etc/portage/package.use/00-misc-category.conf73
-rw-r--r--etc/portage/package.use/05-misc-virtual.conf2
-rw-r--r--etc/portage/package.use/10-misc-package.conf80
-rw-r--r--etc/portage/package.use/20-emacs.conf18
-rw-r--r--etc/portage/package.use/30-lib-static.conf18
-rw-r--r--etc/portage/package.use/30-lib.conf38
-rw-r--r--etc/portage/package.use/40-dev.conf34
-rw-r--r--etc/portage/package.use/50-javascript.conf1
-rw-r--r--etc/portage/package.use/50-lua.conf10
-rw-r--r--etc/portage/package.use/50-perl.conf4
-rw-r--r--etc/portage/package.use/50-python.conf50
-rw-r--r--etc/portage/package.use/60-qt.conf11
-rw-r--r--etc/portage/package.use/99-auto.conf0
-rw-r--r--etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch12
-rw-r--r--etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch14
-rw-r--r--etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch648
-rw-r--r--etc/portage/patches/sys-apps/pmount/btrfs.patch12
-rw-r--r--etc/portage/patches/sys-power/suspend/gcc-10.patch93
-rw-r--r--etc/portage/patches/x11-misc/xsnow/compositor.patch1501
-rw-r--r--etc/portage/repos.conf/eselect-repo.conf12
-rw-r--r--etc/portage/repos.conf/gentoo.conf19
-rw-r--r--etc/portage/savedconfig/app-shells/fzy-1.0-r114
-rw-r--r--etc/portage/savedconfig/media-gfx/sxiv-9999130
-rw-r--r--etc/portage/savedconfig/sys-apps/busybox-1.33.1-r11200
-rw-r--r--etc/portage/savedconfig/sys-kernel/linux-firmware-999999991
-rw-r--r--etc/portage/savedconfig/x11-misc/dmenu-999918
-rw-r--r--etc/portage/savedconfig/x11-misc/slock-1.412
-rw-r--r--etc/portage/savedconfig/x11-terms/st-9999323
-rw-r--r--etc/portage/savedconfig/x11-wm/dwm-999999
-rw-r--r--etc/portage/smart-live-rebuild.conf2
-rw-r--r--etc/python-exec/python-exec.conf28
l---------etc/runlevels/boot/binfmt1
l---------etc/runlevels/boot/bootmisc1
l---------etc/runlevels/boot/elogind1
l---------etc/runlevels/boot/fsck1
l---------etc/runlevels/boot/hostname1
l---------etc/runlevels/boot/hwclock1
l---------etc/runlevels/boot/keymaps1
l---------etc/runlevels/boot/localmount1
l---------etc/runlevels/boot/loopback1
l---------etc/runlevels/boot/modules1
l---------etc/runlevels/boot/mtab1
l---------etc/runlevels/boot/opentmpfiles-setup1
l---------etc/runlevels/boot/procfs1
l---------etc/runlevels/boot/root1
l---------etc/runlevels/boot/save-keymaps1
l---------etc/runlevels/boot/save-termencoding1
l---------etc/runlevels/boot/stmpfiles-setup1
l---------etc/runlevels/boot/swap1
l---------etc/runlevels/boot/sysctl1
l---------etc/runlevels/boot/termencoding1
l---------etc/runlevels/boot/urandom1
l---------etc/runlevels/default/dbus1
l---------etc/runlevels/default/earlyoom1
l---------etc/runlevels/default/fcron1
l---------etc/runlevels/default/haveged1
l---------etc/runlevels/default/hdparm1
l---------etc/runlevels/default/iwd1
l---------etc/runlevels/default/laptop_mode1
l---------etc/runlevels/default/mpd1
l---------etc/runlevels/default/net.eth01
l---------etc/runlevels/default/net.wlan01
l---------etc/runlevels/default/ntpd1
l---------etc/runlevels/default/smartd1
l---------etc/runlevels/default/syslog-ng1
l---------etc/runlevels/default/thinkfan1
l---------etc/runlevels/default/uksmd1
l---------etc/runlevels/shutdown/killprocs1
l---------etc/runlevels/shutdown/mount-ro1
l---------etc/runlevels/shutdown/savecache1
l---------etc/runlevels/sysinit/cgroups1
l---------etc/runlevels/sysinit/devfs1
l---------etc/runlevels/sysinit/dmesg1
l---------etc/runlevels/sysinit/kmod-static-nodes1
l---------etc/runlevels/sysinit/opentmpfiles-dev1
l---------etc/runlevels/sysinit/stmpfiles-dev1
l---------etc/runlevels/sysinit/sysfs1
l---------etc/runlevels/sysinit/udev1
l---------etc/runlevels/sysinit/udev-trigger1
-rw-r--r--etc/sysctl.conf60
-rw-r--r--etc/sysctl.d/00protected-links.conf2
-rw-r--r--etc/sysctl.d/10vm.conf5
-rw-r--r--etc/sysctl.d/20inotify.conf1
-rw-r--r--etc/sysctl.d/README13
-rw-r--r--etc/syslog-ng/syslog-ng.conf115
-rw-r--r--etc/thinkfan.conf107
-rw-r--r--etc/timezone1
-rw-r--r--etc/udev/rules.d/60-bfq.rules3
-rw-r--r--etc/udev/rules.d/80-net-name-slot.rules0
-rw-r--r--etc/udev/udev.conf3
243 files changed, 7840 insertions, 0 deletions
diff --git a/etc/UPower/UPower.conf b/etc/UPower/UPower.conf
new file mode 100644
index 0000000..e2c6a69
--- /dev/null
+++ b/etc/UPower/UPower.conf
@@ -0,0 +1,94 @@
+# Only the system vendor should modify this file, ordinary users
+# should not have to change anything.
+
+[UPower]
+
+# Enable the Watts Up Pro device.
+#
+# The Watts Up Pro contains a generic FTDI USB device without a specific
+# vendor and product ID. When we probe for WUP devices, we can cause
+# the user to get a perplexing "Device or resource busy" error when
+# attempting to use their non-WUP device.
+#
+# The generic FTDI device is known to also be used on:
+#
+# - Sparkfun FT232 breakout board
+# - Parallax Propeller
+#
+# default=false
+EnableWattsUpPro=false
+
+# Don't poll the kernel for battery level changes.
+#
+# Some hardware will send us battery level changes through
+# events, rather than us having to poll for it. This option
+# allows disabling polling for hardware that sends out events.
+#
+# default=false
+NoPollBatteries=false
+
+# Do we ignore the lid state
+#
+# Some laptops are broken. The lid state is either inverted, or stuck
+# on or off. We can't do much to fix these problems, but this is a way
+# for users to make the laptop panel vanish, a state that might be used
+# by a couple of user-space daemons. On Linux systems, see also
+# logind.conf(5).
+#
+# default=false
+IgnoreLid=false
+
+# Policy for warnings and action based on battery levels
+#
+# Whether battery percentage based policy should be used. The default
+# is to use the time left, change to true to use the percentage, which
+# should work around broken firmwares. It is also more reliable than
+# the time left (frantically saving all your files is going to use more
+# battery than letting it rest for example).
+# default=true
+UsePercentageForPolicy=true
+
+# When UsePercentageForPolicy is true, the levels at which UPower will
+# consider the battery low, critical, or take action for the critical
+# battery level.
+#
+# This will also be used for batteries which don't have time information
+# such as that of peripherals.
+#
+# If any value is invalid, or not in descending order, the defaults
+# will be used.
+#
+# Defaults:
+# PercentageLow=10
+# PercentageCritical=3
+# PercentageAction=2
+PercentageLow=10
+PercentageCritical=3
+PercentageAction=2
+
+# When UsePercentageForPolicy is false, the time remaining at which UPower
+# will consider the battery low, critical, or take action for the critical
+# battery level.
+#
+# If any value is invalid, or not in descending order, the defaults
+# will be used.
+#
+# Defaults:
+# TimeLow=1200
+# TimeCritical=300
+# TimeAction=120
+TimeLow=1200
+TimeCritical=300
+TimeAction=120
+
+# The action to take when "TimeAction" or "PercentageAction" above has been
+# reached for the batteries (UPS or laptop batteries) supplying the computer
+#
+# Possible values are:
+# PowerOff
+# Hibernate
+# HybridSleep
+#
+# If HybridSleep isn't available, Hibernate will be used
+# If Hibernate isn't available, PowerOff will be used
+CriticalPowerAction=HybridSleep
diff --git a/etc/X11/xorg.conf.d/intel.conf b/etc/X11/xorg.conf.d/intel.conf
new file mode 100644
index 0000000..9a749d4
--- /dev/null
+++ b/etc/X11/xorg.conf.d/intel.conf
@@ -0,0 +1,5 @@
+Section "Device"
+	Identifier "intel"
+	Driver "intel"
+	Option "AccelMethod" "sna"
+EndSection
diff --git a/etc/X11/xorg.conf.d/thinkpad.conf b/etc/X11/xorg.conf.d/thinkpad.conf
new file mode 100644
index 0000000..8d3f9ab
--- /dev/null
+++ b/etc/X11/xorg.conf.d/thinkpad.conf
@@ -0,0 +1,14 @@
+Section "InputClass"
+	Identifier "ThinkPad TrackPoint"
+	MatchProduct "TPPS/2 IBM TrackPoint"
+	MatchDevicePath "/dev/input/event*"
+	Driver "libinput"
+	Option "EmulateWheel" "true"
+	Option "EmulateWheelButton" "2"
+	Option "Emulate3Buttons" "false"
+	Option "XAxisMapping" "6 7"
+	Option "YAxisMapping" "4 5"
+	Option "AccelerationNumerator" "2"
+	Option "AccelerationDenominator" "1"
+	Option "AccelerationThreshold" "4"
+EndSection
diff --git a/etc/buildkernel.conf b/etc/buildkernel.conf
new file mode 100644
index 0000000..ae1440e
--- /dev/null
+++ b/etc/buildkernel.conf
@@ -0,0 +1,8 @@
+ADDITIONALKERNELCMDS="quiet acpi_enforce_resources=lax pcie_aspm=force root_trim=yes i915.enable_rc6=7 i915.enable_fbc=1 scsi_mod.use_blk_mq=1 dm_mod.use_blk_mq=1 mitigations=off"
+CMDLINE_REAL_RESUME="/dev/mapper/sg-swap"
+CMDLINE_REAL_ROOT="/dev/mapper/sg-root"
+COMPRESSINITRAMFS=0
+CRYPTPARTUUID="ca948045-447f-4046-82e1-f56f6245dd38"
+EFIPARTUUID="bbe6ea66-16b7-5e41-995e-48ae3c955aa0"
+INITSYSTEM="openrc"
+LUKSKEYFILE=""
diff --git a/etc/conf.d/acpid b/etc/conf.d/acpid
new file mode 100644
index 0000000..9aadb4c
--- /dev/null
+++ b/etc/conf.d/acpid
@@ -0,0 +1,6 @@
+# /etc/conf.d/acpid: config file for /etc/init.d/acpid
+
+# Options to pass to the acpid daemon.
+# See the acpid(8) man page for more info.
+
+ACPID_ARGS=""
diff --git a/etc/conf.d/adjtimex b/etc/conf.d/adjtimex
new file mode 100644
index 0000000..5e97214
--- /dev/null
+++ b/etc/conf.d/adjtimex
@@ -0,0 +1,9 @@
+#  /etc/conf.d/adjtimex - configuration file for adjtimex(8)
+#
+#  you may adjust these values manually or by calling /usr/sbin/adjtimexconfig
+#
+#  This file is sourced by /etc/init.d/adjtimex
+#
+TICK=9998
+FREQ=1336887
+
diff --git a/etc/conf.d/agetty b/etc/conf.d/agetty
new file mode 100644
index 0000000..03acee6
--- /dev/null
+++ b/etc/conf.d/agetty
@@ -0,0 +1,11 @@
+# make agetty quiet
+#quiet="yes"
+
+# Set the baud rate of the terminal line
+#baud=""
+
+# set the terminal type
+#term_type="linux"
+
+# extra options to pass to agetty for this port
+#agetty_options=""
diff --git a/etc/conf.d/alsasound b/etc/conf.d/alsasound
new file mode 100644
index 0000000..6fec8f5
--- /dev/null
+++ b/etc/conf.d/alsasound
@@ -0,0 +1,15 @@
+# RESTORE_ON_START:
+# Do you want to restore your mixer settings?  If not, your cards will be
+# muted.
+# no - Do not restore state
+# yes - Restore state
+
+RESTORE_ON_START="yes"
+
+# SAVE_ON_STOP:
+# Do you want to save changes made to your mixer volumes when alsasound
+# stops? 
+# no - Do not save state
+# yes - Save state
+
+SAVE_ON_STOP="yes"
diff --git a/etc/conf.d/bootmisc b/etc/conf.d/bootmisc
new file mode 100644
index 0000000..dd5b08e
--- /dev/null
+++ b/etc/conf.d/bootmisc
@@ -0,0 +1,15 @@
+# List of /tmp directories we should clean up
+clean_tmp_dirs="/tmp"
+
+# Should we wipe the tmp paths completely or just selectively remove known
+# locks / files / etc... ?
+wipe_tmp="YES"
+
+# Write the initial dmesg log into /var/log/dmesg after boot
+# This may be useful if you need the kernel boot log afterwards
+log_dmesg="YES"
+
+# Save the previous dmesg log to dmesg.old
+# This may be useful if you need to compare the current boot to the
+# previous one.
+#previous_dmesg=no
diff --git a/etc/conf.d/busybox-ntpd b/etc/conf.d/busybox-ntpd
new file mode 100644
index 0000000..f50d4c2
--- /dev/null
+++ b/etc/conf.d/busybox-ntpd
@@ -0,0 +1,6 @@
+# Config file for /etc/init.d/busybox-ntpd
+
+# run "/sbin/ntpd --help" to see all possible options.
+
+# Get time from specified server and run in background
+NTPD_OPTS="-N -p pool.ntp.org"
diff --git a/etc/conf.d/busybox-watchdog b/etc/conf.d/busybox-watchdog
new file mode 100644
index 0000000..bd6aec0
--- /dev/null
+++ b/etc/conf.d/busybox-watchdog
@@ -0,0 +1,9 @@
+# Config file for /etc/init.d/busybox-watchdog
+
+# run "/sbin/watchdog --help" to see all possible options.
+
+# Periodically write to watchdog device
+WATCHDOG_OPTS="/dev/watchdog"
+
+# optionally set the nice-level
+#SSD_NICELEVEL="-20"
diff --git a/etc/conf.d/consolefont b/etc/conf.d/consolefont
new file mode 100644
index 0000000..e01ae84
--- /dev/null
+++ b/etc/conf.d/consolefont
@@ -0,0 +1,18 @@
+# The consolefont service is not activated by default. If you need to
+# use it, you should run "rc-update add consolefont boot" as root.
+#
+# consolefont specifies the default font that you'd like Linux to use on the
+# console.  You can find a good selection of fonts in /usr/share/consolefonts;
+# you shouldn't specify the trailing ".psf.gz", just the font name below.
+# To use the default console font, comment out the CONSOLEFONT setting below.
+consolefont="default8x16"
+
+# consoletranslation is the charset map file to use.  Leave commented to use
+# the default one.  Have a look in /usr/share/consoletrans for a selection of
+# map files you can use.
+#consoletranslation="8859-1_to_uni"
+
+# unicodemap is the unicode map file to use. Leave commented to use the
+# default one. Have a look in /usr/share/unimaps for a selection of map files
+# you can use.
+#unicodemap="iso01"
diff --git a/etc/conf.d/devfs b/etc/conf.d/devfs
new file mode 100644
index 0000000..51f8037
--- /dev/null
+++ b/etc/conf.d/devfs
@@ -0,0 +1,8 @@
+# OpenRC will attempt each of the following in succession to mount /dev.
+#
+# 1. If there is an entry for /dev in fstab, it will be used.
+# 2. If devtmpfs is defined in the kernel, it will be used.
+# 3. If tmpfs is defined in the kernel, it will be used.
+#
+# Set this to yes if you do not want OpenRC to attempt to mount /dev.
+# skip_mount_dev="NO"
diff --git a/etc/conf.d/device-mapper b/etc/conf.d/device-mapper
new file mode 100644
index 0000000..bc7a251
--- /dev/null
+++ b/etc/conf.d/device-mapper
@@ -0,0 +1 @@
+RC_AFTER="lvm"
diff --git a/etc/conf.d/display-manager b/etc/conf.d/display-manager
new file mode 100644
index 0000000..25d57e9
--- /dev/null
+++ b/etc/conf.d/display-manager
@@ -0,0 +1,13 @@
+# We always try and start the DM on a static VT. The various DMs normally
+# default to using VT7. If you wish to use the display-manager init
+# script, then you should ensure that the VT checked is the same VT your
+# DM wants to use.
+# We do this check to ensure that you haven't accidentally configured
+# something to run on the VT in your /etc/inittab file so that
+# you don't get a dead keyboard.
+CHECKVT=7
+
+# What display manager do you use ?
+#     [ xdm | greetd | gdm | sddm | gpe | lightdm | entrance ]
+# NOTE: If this is set in /etc/rc.conf, that setting will override this one.
+DISPLAYMANAGER="xdm"
diff --git a/etc/conf.d/dmcrypt b/etc/conf.d/dmcrypt
new file mode 100644
index 0000000..96c523e
--- /dev/null
+++ b/etc/conf.d/dmcrypt
@@ -0,0 +1,112 @@
+# /etc/conf.d/dmcrypt
+
+# For people who run dmcrypt on top of some other layer (like raid),
+# use rc_need to specify that requirement.  See the runscript(8) man
+# page for more information.
+
+#--------------------
+# Instructions
+#--------------------
+
+# Note regarding the syntax of this file.  This file is *almost* bash,
+# but each line is evaluated separately.  Separate swaps/targets can be
+# specified.  The init-script which reads this file assumes that a
+# swap= or target= line starts a new section, similar to lilo or grub
+# configuration.
+
+# Note when using gpg keys and /usr on a separate partition, you will
+# have to copy /usr/bin/gpg to /bin/gpg so that it will work properly
+# and ensure that gpg has been compiled statically.
+# See http://bugs.gentoo.org/90482 for more information.
+
+# Note that the init-script which reads this file detects whether your
+# partition is LUKS or not. No mkfs is run unless you specify a makefs
+# option.
+
+# Global options:
+#----------------
+
+# How long to wait for each timeout (in seconds).
+dmcrypt_key_timeout=1
+
+# Max number of checks to perform (see dmcrypt_key_timeout).
+#dmcrypt_max_timeout=300
+
+# Number of password retries.
+dmcrypt_retries=5
+
+# Arguments:
+#-----------
+# target=<name>                      == Mapping name for partition.
+# swap=<name>                        == Mapping name for swap partition.
+# source='<dev>'                     == Real device for partition.
+#                                    Note: You can (and should) specify a tag like UUID
+#                                    for blkid (see -t option).  This is safer than using
+#                                    the full path to the device.
+# key='</path/to/keyfile>[:<mode>]'  == Fullpath from / or from inside removable media.
+# remdev='<dev>'                     == Device that will be assigned to removable media.
+# gpg_options='<opts>'               == Default are --quiet --decrypt
+# options='<opts>'                   == cryptsetup, for LUKS you can only use --readonly
+# loop_file='<file>'                 == Loopback file.
+#                                    Note: If you omit $source, then a free loopback will
+#                                    be looked up automatically.
+# pre_mount='cmds'                   == commands to execute before mounting partition.
+# post_mount='cmds'                  == commands to execute after mounting partition.
+# wait=5                             == wait given amount of seconds for source to appear
+#-----------
+# Supported Modes
+# gpg					== decrypt and pipe key into cryptsetup.
+#						Note: new-line character must not be part of key.
+#						Command to erase \n char: 'cat key | tr -d '\n' > cleanKey'
+
+#--------------------
+# dm-crypt examples
+#--------------------
+
+## swap
+# Swap partitions. These should come first so that no keys make their
+# way into unencrypted swap.
+# If no options are given, they will default to: -c aes -h sha1 -d /dev/urandom
+# If no makefs is given then mkswap will be assumed
+#swap=crypt-swap
+#source='/dev/hda2'
+
+## /home with passphrase
+#target=crypt-home
+#source='/dev/hda5'
+
+## /home with regular keyfile
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey'
+
+## /home with gpg protected key
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey:gpg'
+
+## /home with regular keyfile on removable media(such as usb-stick)
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey'
+#remdev='/dev/sda1'
+
+## /home with gpg protected key on removable media(such as usb-stick)
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey:gpg'
+#remdev='/dev/sda1'
+
+## /tmp with regular keyfile
+#target=crypt-tmp
+#source='/dev/hda6'
+#key='/full/path/to/tmpkey'
+#pre_mount='/sbin/mkreiserfs -f -f ${dev}'
+#post_mount='chown root:root ${mount_point}; chmod 1777 ${mount_point}'
+
+## Loopback file example
+#target='crypt-loop-home'
+#source='/dev/loop0'
+#loop_file='/mnt/crypt/home'
+
+# The file must be terminated by a newline.  Or leave this comment last.
diff --git a/etc/conf.d/dmesg b/etc/conf.d/dmesg
new file mode 100644
index 0000000..cd4b8b3
--- /dev/null
+++ b/etc/conf.d/dmesg
@@ -0,0 +1,3 @@
+# Sets the level at which logging of messages is done to the
+# console.  See dmesg(1) for more info.
+dmesg_level="1"
diff --git a/etc/conf.d/earlyoom b/etc/conf.d/earlyoom
new file mode 120000
index 0000000..f5e8c76
--- /dev/null
+++ b/etc/conf.d/earlyoom
@@ -0,0 +1 @@
+../default/earlyoom
\ No newline at end of file
diff --git a/etc/conf.d/elogind b/etc/conf.d/elogind
new file mode 100644
index 0000000..716e145
--- /dev/null
+++ b/etc/conf.d/elogind
@@ -0,0 +1,7 @@
+# /etc/conf.d/elogind: config file for /etc/init.d/elogind
+
+# this is the elogind executable
+ELOGIND_EXEC="/lib64/elogind/elogind"
+
+# this is where elogind will store its pid file
+ELOGIND_PIDFILE="/run/elogind.pid"
diff --git a/etc/conf.d/fancontrol b/etc/conf.d/fancontrol
new file mode 100644
index 0000000..a716958
--- /dev/null
+++ b/etc/conf.d/fancontrol
@@ -0,0 +1,16 @@
+# /etc/conf.d/fancontrol
+
+# Configuration file
+#FANCONTROL_CONFIGFILE="/etc/fancontrol"
+
+# You can use this configuration option to pass additional options to the
+# start-stop-daemon, see start-stop-daemon(8) for more details.
+# Per default we forces fancontrol into background and wait 1000ms after we
+# have started the service to ensure that the daemon is really up and
+# running.
+#FANCONTROL_SSDARGS="--background --wait 1000"
+
+# The termination timeout (start-stop-daemon parameter "retry") ensures
+# that the service will be terminated within a given time (60 + 5 seconds
+# per default) when you are stopping the service.
+#FANCONTROL_TERMTIMEOUT="TERM/60/KILL/5"
diff --git a/etc/conf.d/fcron b/etc/conf.d/fcron
new file mode 100644
index 0000000..ea907d8
--- /dev/null
+++ b/etc/conf.d/fcron
@@ -0,0 +1,7 @@
+# /etc/conf.d/fcron
+
+# Options to fcron
+# See fcron(8) for more details
+# Notes:
+# * Do not specify another CONFIGFILE
+#FCRON_OPTS=""
diff --git a/etc/conf.d/fsck b/etc/conf.d/fsck
new file mode 100644
index 0000000..30131ea
--- /dev/null
+++ b/etc/conf.d/fsck
@@ -0,0 +1,40 @@
+# Pass any arguments to fsck.
+# By default we preen.
+# Linux systems also force -C0 and -T.
+# If fsck_args is not specified then Linux systems also use -A
+# (and -R if / is rw)
+#fsck_args="-p"
+
+# We can also specify the passno in /etc/fstab to check
+# If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can
+# do an fsck outside of the normal scope, say for /home.
+# Here are some exampes:-
+#fsck_passno="=1 =2"
+#fsck_passno=">1"
+#fsck_passno="<2"
+
+# If passno is not enough granularity, you can also specify mountpoints to
+# check. This should NOT be used for the default non-multiplexed fsck, or your
+# system might not be checked. Additionally, it is mutually exclusive with
+# the fsck_passno setting.
+#fsck_mnt=""
+#fsck_mnt="/home"
+
+# Most modern fs's don't require a full fsck on boot, but for those that do
+# it may be advisable to skip this when running on battery.
+# WARNING: Do not turn this off if you have any JFS partitions.
+fsck_on_battery="YES"
+
+# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
+# The end result of this is that if any periodic non-root filesystem checks are
+# scheduled, under normal circumstances the actual check will happen during
+# shutdown rather than at next boot.
+# This is useful when periodic filesystem checks are causing undesirable
+# delays at startup, but such delays at shutdown are acceptable.
+fsck_shutdown="NO"
+
+# fsck_abort_on_errors can be set to no to cause fsck to not abort on
+# errors.
+# This is useful when periodic filesystem checks are causing undesirable
+# aborts.
+fsck_abort_on_errors="YES"
diff --git a/etc/conf.d/git-daemon b/etc/conf.d/git-daemon
new file mode 100644
index 0000000..69b209f
--- /dev/null
+++ b/etc/conf.d/git-daemon
@@ -0,0 +1,19 @@
+# conf.d file for git-daemon
+#
+# Please check man 1 git-daemon for more information about the options
+# git-daemon accepts. You MUST edit this to include your repositories you wish
+# to serve.
+#
+# Some of the meaningful options are:
+#   --syslog      --- Enables syslog logging
+#   --verbose     --- Enables verbose logging
+#   --export-all  --- Exports all repositories
+#   --port=XXXX   --- Starts in port XXXX instead of 9418
+#
+GITDAEMON_OPTS="--syslog --base-path=/var/git"
+
+# To run an anonymous git safely, the following user should be able to only
+# read your Git repositories. It should not be able to write to anywhere on
+# your system, esp. not the repositories.
+GIT_USER="nobody"
+GIT_GROUP="nobody"
diff --git a/etc/conf.d/haveged b/etc/conf.d/haveged
new file mode 100644
index 0000000..a8520a3
--- /dev/null
+++ b/etc/conf.d/haveged
@@ -0,0 +1,9 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+WATERMARK=1024
+
+# -r0 is added always
+HAVEGED_OPTS="-w ${WATERMARK} -v 1"
+
+# vim:ft=gentoo-conf-d:
diff --git a/etc/conf.d/hdparm b/etc/conf.d/hdparm
new file mode 100644
index 0000000..a1ae626
--- /dev/null
+++ b/etc/conf.d/hdparm
@@ -0,0 +1,26 @@
+# /etc/conf.d/hdparm: config file for /etc/init.d/hdparm
+
+#
+# Note that options such as -y which force *immediate* power saving options
+# should generally not be placed here.  The hdparm init.d script may run at
+# anytime with respect to other init.d scripts that do system wide drive
+# scans (like the hald script), so they will merely get spun right back up.
+# If you wish to use these options, please use the local.start init.d script
+# instead so that you're guaranteed that it will run last.
+#
+
+# You can either set hdparm arguments for each drive using hdX_args,
+# discX_args, cdromX_args and genericX_args, e.g.
+#
+# hda_args="-d1 -X66"
+# disc1_args="-d1"
+# cdrom0_args="-d1"
+
+# or you can set options for all PATA drives
+pata_all_args="-d1"
+
+# or you can set options for all SATA drives
+sata_all_args=""
+
+# or, you can set hdparm options for all drives
+all_args=""
diff --git a/etc/conf.d/hostname b/etc/conf.d/hostname
new file mode 100644
index 0000000..1dd8a63
--- /dev/null
+++ b/etc/conf.d/hostname
@@ -0,0 +1,2 @@
+# Hostname fallback if /etc/hostname does not exist
+hostname="olorin"
diff --git a/etc/conf.d/hwclock b/etc/conf.d/hwclock
new file mode 100644
index 0000000..77eb1aa
--- /dev/null
+++ b/etc/conf.d/hwclock
@@ -0,0 +1,20 @@
+# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as
+# Greenwich Mean Time).  If that clock is set to the local time, then
+# set CLOCK to "local".  Note that if you dual boot with Windows, then
+# you should set it to "local".
+clock="UTC"
+
+# If you want the hwclock script to set the system time (software clock)
+# to match the current hardware clock during bootup, leave this
+# commented out.
+# However, you can set this to "NO" if you are running a modern kernel
+# and using NTP to synchronize your system clock.
+clock_hctosys="YES"
+
+# If you do not want to set the hardware clock to the current system
+# time (software clock) during shutdown, set this to no.
+clock_systohc="YES"
+
+# If you wish to pass any other arguments to hwclock during bootup,
+# you may do so here. Alpha users may wish to use --arc or --srm here.
+clock_args=""
diff --git a/etc/conf.d/ip6tables b/etc/conf.d/ip6tables
new file mode 100644
index 0000000..e608f41
--- /dev/null
+++ b/etc/conf.d/ip6tables
@@ -0,0 +1,27 @@
+# /etc/conf.d/ip6tables
+
+# Set wait option for xtables lock in seconds
+# DEFAULT: 60
+#IPTABLES_LOCK_WAIT_TIME="60"
+
+# Set wait interval option for xtables lock in microseconds
+# DEFAULT: 1000
+#IPTABLES_LOCK_WAIT_INTERVAL="1000"
+
+# Location in which ip6tables initscript will save set rules on
+# service shutdown
+IP6TABLES_SAVE="/var/lib/ip6tables/rules-save"
+
+# Options to pass to ip6tables-save and ip6tables-restore 
+SAVE_RESTORE_OPTIONS="-c"
+
+# Save state on stopping ip6tables
+SAVE_ON_STOP="yes"
+
+# If you need to log ip6tables messages as soon as ip6tables starts,
+# AND your logger does NOT depend on the network, then you may wish
+# to uncomment the next line.
+# If your logger depends on the network, and you uncomment this line
+# you will create an unresolvable circular dependency during startup.
+# After commenting or uncommenting this line, you must run 'rc-update -u'.
+#rc_use="logger"
diff --git a/etc/conf.d/iptables b/etc/conf.d/iptables
new file mode 100644
index 0000000..d5055e0
--- /dev/null
+++ b/etc/conf.d/iptables
@@ -0,0 +1,27 @@
+# /etc/conf.d/iptables
+
+# Set wait option for xtables lock in seconds
+# DEFAULT: 60
+#IPTABLES_LOCK_WAIT_TIME="60"
+
+# Set wait interval option for xtables lock in microseconds
+# DEFAULT: 1000
+#IPTABLES_LOCK_WAIT_INTERVAL="1000"
+
+# Location in which iptables initscript will save set rules on
+# service shutdown
+IPTABLES_SAVE="/var/lib/iptables/rules-save"
+
+# Options to pass to iptables-save and iptables-restore 
+SAVE_RESTORE_OPTIONS="-c"
+
+# Save state on stopping iptables
+SAVE_ON_STOP="yes"
+
+# If you need to log iptables messages as soon as iptables starts,
+# AND your logger does NOT depend on the network, then you may wish
+# to uncomment the next line.
+# If your logger depends on the network, and you uncomment this line
+# you will create an unresolvable circular dependency during startup.
+# After commenting or uncommenting this line, you must run 'rc-update -u'.
+#rc_use="logger"
diff --git a/etc/conf.d/irqbalance b/etc/conf.d/irqbalance
new file mode 100644
index 0000000..2761cfc
--- /dev/null
+++ b/etc/conf.d/irqbalance
@@ -0,0 +1,19 @@
+# /etc/conf.d/irqbalance: config file for /etc/init.d/irqbalance
+
+# Additional options to pass to irqbalance itself.
+IRQBALANCE_OPTS=""
+
+# These are envvars used by irqbalance itself, so make sure the "export"
+# is retained.  For more info, please see the irqbalance manpage.
+
+# Run irqbalance once and then exit
+#export IRQBALANCE_ONESHOT="0"
+
+# Include debug messages in output
+#export IRQBALANCE_DEBUG="0"
+
+# List of cpus to not include in balancing
+#export IRQBALANCE_BANNED_CPUS=""
+
+# List of interrupts to not include in balancing
+#export IRQBALANCE_BANNED_INTERRUPTS=""
diff --git a/etc/conf.d/keymaps b/etc/conf.d/keymaps
new file mode 100644
index 0000000..e454433
--- /dev/null
+++ b/etc/conf.d/keymaps
@@ -0,0 +1,23 @@
+# Use keymap to specify the default console keymap.  There is a complete tree
+# of keymaps in /usr/share/keymaps to choose from.
+keymap="us"
+
+# Should we first load the 'windowkeys' console keymap?  Most x86 users will
+# say "yes" here.  Note that non-x86 users should leave it as "no".
+# Loading this keymap will enable VT switching (like ALT+Left/Right)
+# using the special windows keys on the linux console.
+windowkeys="YES"
+
+# The maps to load for extended keyboards.  Most users will leave this as is.
+extended_keymaps=""
+#extended_keymaps="backspace keypad euro2"
+
+# Tell dumpkeys(1) to interpret character action codes to be
+# from the specified character set.
+# This only matters if you set unicode="yes" in /etc/rc.conf.
+# For a list of valid sets, run `dumpkeys --help`
+dumpkeys_charset=""
+
+# Some fonts map AltGr-E to the currency symbol instead of the Euro.
+# To fix this, set to "yes"
+fix_euro="NO"
diff --git a/etc/conf.d/killprocs b/etc/conf.d/killprocs
new file mode 100644
index 0000000..76a2bc9
--- /dev/null
+++ b/etc/conf.d/killprocs
@@ -0,0 +1,6 @@
+# If you wish to pass any options to kill_all during shutdown,
+# you should do so here.
+#
+# The setting is called killall5_opts because the options here are meant
+# to be identical to those you could pass to killall5.
+killall5_opts=""
diff --git a/etc/conf.d/lm_sensors b/etc/conf.d/lm_sensors
new file mode 100644
index 0000000..bae2ea0
--- /dev/null
+++ b/etc/conf.d/lm_sensors
@@ -0,0 +1,4 @@
+# /etc/conf.d/lm_sensors
+
+# NOTE:
+# For module loading please use /etc/modules-load.d/lm_sensors.conf
diff --git a/etc/conf.d/localmount b/etc/conf.d/localmount
new file mode 100644
index 0000000..25ca3cd
--- /dev/null
+++ b/etc/conf.d/localmount
@@ -0,0 +1,10 @@
+# Stop the unmounting of certain points.
+# This could be useful for some NFS related work.
+#no_umounts="/dir1:/var/dir2"
+#
+# Mark certain mount points as critical.
+# This contains a space separated list of mount points which should be
+# considered critical. If one of these mount points cannot be mounted,
+# localmount will fail.
+# By default, this is empty.
+#critical_mounts="/home /var"
diff --git a/etc/conf.d/lvm b/etc/conf.d/lvm
new file mode 100644
index 0000000..b29e170
--- /dev/null
+++ b/etc/conf.d/lvm
@@ -0,0 +1,9 @@
+# If LVM is built with udev, you must ensure udev is running first!
+# Otherwise it will hang
+rc_need="udev"
+
+# LVM should normally only be started after mdraid is available
+# this is because LVM physical volumes are very often MD devices.
+rc_after="mdraid"
+
+# vim: ft=gentoo-conf-d
diff --git a/etc/conf.d/modules b/etc/conf.d/modules
new file mode 100644
index 0000000..d13ff89
--- /dev/null
+++ b/etc/conf.d/modules
@@ -0,0 +1,22 @@
+# Linux users can define a list of modules for a specific kernel version,
+# a released kernel version, a main kernel version or all kernel versions.
+# The most specific versioned variable will take precedence.
+# FreeBSD users can only use the modules="foo bar" setting.
+#modules_2_6_23_gentoo_r5="ieee1394 ohci1394"
+#modules_2_6_23="tun ieee1394"
+#modules_2_6="tun"
+#modules_2="ipv6"
+#modules="ohci1394"
+
+# Linux users can give the modules some arguments if needed, per version
+# if necessary.
+# Again, the most specific versioned variable will take precedence.
+# This is not supported on FreeBSD.
+#module_ieee1394_args="debug"
+#module_ieee1394_args_2_6_23_gentoo_r5="debug2"
+#module_ieee1394_args_2_6_23="debug3"
+#module_ieee1394_args_2_6="debug4"
+#module_ieee1394_args_2="debug5"
+
+# You should consult your kernel documentation and configuration
+# for a list of modules and their options.
diff --git a/etc/conf.d/mtab b/etc/conf.d/mtab
new file mode 100644
index 0000000..f58fad6
--- /dev/null
+++ b/etc/conf.d/mtab
@@ -0,0 +1,13 @@
+# As far as we are aware, there are no modern linux tools or use cases
+# which require /etc/mtab to be a separate file from /proc/self/mounts,
+# so this setting should be commented out.
+# If it is set to yes, please comment it out and run this command:
+# # rc-service mtab restart
+# In the future, the mtab service will be removed since we are not aware
+# of any need to manipulate /etc/mtab as a separate file from
+# /proc/self/mounts.
+# If you have a technical reason we should keep this support, please
+# open an issue at https://github.com/openrc/openrc/issues and let us
+# know about your situation.
+# This setting controls whether /etc/mtab is a file or symbolic link.
+# mtab_is_file=no
diff --git a/etc/conf.d/net b/etc/conf.d/net
new file mode 100644
index 0000000..4e33756
--- /dev/null
+++ b/etc/conf.d/net
@@ -0,0 +1,7 @@
+modules="!dhclient !dhcpcd udhcpc"
+
+modules_wlan0="!wireless iwd"
+config_wlan0="dhcp"
+
+modules_eth0="!ifplugd netplug"
+config_eth0="dhcp"
diff --git a/etc/conf.d/net-online b/etc/conf.d/net-online
new file mode 100644
index 0000000..9abe9ea
--- /dev/null
+++ b/etc/conf.d/net-online
@@ -0,0 +1,18 @@
+# The interfaces setting controls which interfaces the net-online
+# service considers in deciding whether the network is active. The
+# default is all interfaces that support ethernet.
+#interfaces=""
+
+# This setting controls whether a ping test is included in the test for
+# network connectivity after all interfaces are active.
+#include_ping_test=no
+
+# This setting is the host to attempt to ping if the above is yes.
+# The default is google.com.
+#ping_test_host=some.host.name
+
+# The timeout setting controls how long the net-online service waits
+# for the network to be configured.
+# The default is 120 seconds.
+# if this is set to 0, the wait is infinite.
+#timeout=120
diff --git a/etc/conf.d/netmount b/etc/conf.d/netmount
new file mode 100644
index 0000000..e759adf
--- /dev/null
+++ b/etc/conf.d/netmount
@@ -0,0 +1,47 @@
+# You will need to set the dependencies in the netmount script to match
+# the network configuration tools you are using. This should be done in
+# this file by following the examples below, and not by changing the
+# service script itself.
+#
+# Each of these examples is meant to be used separately. So, for
+# example, do not set rc_need to something like "net.eth0 dhcpcd".
+#
+# If you are using newnet and configuring your interfaces with static
+# addresses with the network script, you  should use this setting.
+#
+#rc_need="network"
+#
+# If you are using oldnet, you must list the specific net.* services you
+# need.
+#
+# This example assumes all of your netmounts can be reached on
+# eth0.
+#
+#rc_need="net.eth0"
+#
+# This example assumes some of your netmounts are on eth1 and some
+# are on eth2.
+#
+#rc_need="net.eth1 net.eth2"
+#
+# If you are using a dynamic network management tool like
+# NetworkManager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to
+# manage the network interfaces with the routes to your netmounts, you
+# should list that tool.
+#
+#rc_need="NetworkManager"
+#rc_need="dhcpcd"
+#rc_need="wicd"
+#
+# The default setting is designed to be backward compatible with our
+# current setup, but you are highly discouraged from using this. In
+# other words, please change it to be more suited to your system.
+#
+rc_need="net"
+#
+# Mark certain mount points as critical.
+# This contains aspace separated list of mount points which should be
+# considered critical. If one of these mount points cannot be mounted,
+# netmount will fail.
+# By default, this is empty.
+#critical_mounts="/home /var"
diff --git a/etc/conf.d/nfs b/etc/conf.d/nfs
new file mode 100644
index 0000000..9dc1405
--- /dev/null
+++ b/etc/conf.d/nfs
@@ -0,0 +1,38 @@
+# /etc/conf.d/nfs
+
+# If you wish to set the port numbers for lockd,
+# please see /etc/sysctl.conf
+
+# Optional services to include in default `/etc/init.d/nfs start`
+# For NFSv4 users, you'll want to add "rpc.idmapd" here.
+NFS_NEEDED_SERVICES=""
+
+# Options to pass to rpc.nfsd
+OPTS_RPC_NFSD="8"
+
+# Options to pass to rpc.mountd
+# ex. OPTS_RPC_MOUNTD="-p 32767"
+OPTS_RPC_MOUNTD=""
+
+# Options to pass to rpc.statd
+# ex. OPTS_RPC_STATD="-p 32765 -o 32766"
+OPTS_RPC_STATD=""
+
+# Options to pass to rpc.idmapd
+OPTS_RPC_IDMAPD=""
+
+# Options to pass to rpc.gssd
+OPTS_RPC_GSSD=""
+
+# Options to pass to rpc.svcgssd
+OPTS_RPC_SVCGSSD=""
+
+# Options to pass to rpc.rquotad (requires sys-fs/quota)
+OPTS_RPC_RQUOTAD=""
+
+# Timeout (in seconds) for exportfs
+EXPORTFS_TIMEOUT=30
+
+# Options to set in the nfsd filesystem (/proc/fs/nfsd/).
+# Format is <option>=<value>.  Multiple options are allowed.
+#OPTS_NFSD="nfsv4leasetime=30 max_block_size=4096"
diff --git a/etc/conf.d/nfsclient b/etc/conf.d/nfsclient
new file mode 100644
index 0000000..49e493a
--- /dev/null
+++ b/etc/conf.d/nfsclient
@@ -0,0 +1,18 @@
+# You need to decide which nfs protocol version you want to use.
+# If you are unsure, leave these alone.
+#
+# If you are using only nfsv4, uncomment this line:
+#
+#rc_need="!rpc.statd"
+#
+# If you are using only nfsv3, uncomment this line:
+#
+rc_need="!rpc.idmapd"
+# 
+# You will need to set the dependencies in the nfsclient script to match
+# the network configuration tools you are using. This should be done in
+# this file by following the examples below, and not by changing the
+# service script itself.  See /etc/conf.d/netmount for more examples.
+#
+# This is a safe default.
+rc_after="net"
diff --git a/etc/conf.d/ntpd b/etc/conf.d/ntpd
new file mode 100644
index 0000000..48cee3c
--- /dev/null
+++ b/etc/conf.d/ntpd
@@ -0,0 +1,7 @@
+# /etc/conf.d/ntpd: config file for openntpd's ntpd
+
+# See ntpd(8) man page ... some popular options:
+#  -s   Set the time immediately at startup
+#       (Note: may cause up to a 15 second startup delay
+#        if ntp servers not reachable)
+NTPD_OPTS="-v"
diff --git a/etc/conf.d/openvpn b/etc/conf.d/openvpn
new file mode 100644
index 0000000..72510c3
--- /dev/null
+++ b/etc/conf.d/openvpn
@@ -0,0 +1,18 @@
+# OpenVPN automatically creates an /etc/resolv.conf (or sends it to
+# resolvconf) if given DNS information by the OpenVPN server.
+# Set PEER_DNS="no" to stop this.
+PEER_DNS="yes"
+
+# OpenVPN can run in many modes. Most people will want the init script
+# to automatically detect the mode and try and apply a good default
+# configuration and setup scripts. However, there are cases where the
+# OpenVPN configuration looks like a client, but it's really a peer or
+# something else. DETECT_CLIENT controls this behaviour.
+DETECT_CLIENT="yes"
+
+# If DETECT_CLIENT is no and you have your own scripts to re-enter the openvpn
+# init script (ie, it first becomes "inactive" and the script then starts the
+# script again to make it "started") then you can state this below.
+# In other words, unless you understand service dependencies and are a
+# competent shell scripter, don't set this.
+RE_ENTER="no"
diff --git a/etc/conf.d/pciparm b/etc/conf.d/pciparm
new file mode 100644
index 0000000..f036b15
--- /dev/null
+++ b/etc/conf.d/pciparm
@@ -0,0 +1,28 @@
+# PCI tweaking article:
+# http://www.gentoo.org/doc/en/articles/hardware-stability-p2.xml
+#
+# Apply to all devices:
+# PCIPARM_ALL="...."
+# Cards also can be addressed by vid:pid or by bus:slot.func
+# (see setpci man page relative to -d and -s options)
+# PCIPARM_(BUS|VENDOR)_#="...."
+# Where # is sequentially numbered from zero.
+
+# Examples:
+# "open up" the PCI bus by allowing fairly long bursts
+# for all devices, increasing performance
+# (equivalent to: setpci -v -d *:* latency_timer=b0)
+#PCIPARM_ALL="latency_timer=b0"
+
+# maximize latency timers for network and audio,
+# allowing them to transmit more data per burst,
+# preventing buffer over/under-run conditions
+#PCIPARM_BUS_0="00:04.0 latency_timer=ff"
+#PCIPARM_BUS_1="01:04.0 latency_timer=ff"
+#PCIPARM_VENDOR_0="1057:3410 latency_timer=ff"
+
+# -v : whether to be verbose about changes
+# -D : dry-run, no commit
+# -f : do not warn if the change is already set
+# (see the setpci manpage for more advanced options)
+SETPCI_OPT="-f"
diff --git a/etc/conf.d/pydoc-2.7 b/etc/conf.d/pydoc-2.7
new file mode 100644
index 0000000..77fad81
--- /dev/null
+++ b/etc/conf.d/pydoc-2.7
@@ -0,0 +1,6 @@
+# /etc/init.d/pydoc.conf
+
+# This file contains the configuration for pydoc's internal webserver.
+
+# Default port for Python's pydoc server.
+PYDOC2_7_PORT="7464"
diff --git a/etc/conf.d/pydoc-3.9 b/etc/conf.d/pydoc-3.9
new file mode 100644
index 0000000..be5dc32
--- /dev/null
+++ b/etc/conf.d/pydoc-3.9
@@ -0,0 +1,6 @@
+# /etc/init.d/pydoc.conf
+
+# This file contains the configuration for pydoc's internal webserver.
+
+# Default port for Python's pydoc server.
+PYDOC3_9_PORT="7464"
diff --git a/etc/conf.d/rpcbind b/etc/conf.d/rpcbind
new file mode 100644
index 0000000..ddc0917
--- /dev/null
+++ b/etc/conf.d/rpcbind
@@ -0,0 +1,4 @@
+# /etc/conf.d/rpcbind
+ 
+# Options for `rpcbind`.
+#RPCBIND_OPTS="-l"
diff --git a/etc/conf.d/rsyncd b/etc/conf.d/rsyncd
new file mode 100644
index 0000000..c3d897e
--- /dev/null
+++ b/etc/conf.d/rsyncd
@@ -0,0 +1,5 @@
+# /etc/conf.d/rsyncd: config file for /etc/init.d/rsyncd
+
+# see man pages for rsync or run `rsync --help`
+# for valid cmdline options
+#RSYNC_OPTS=""
diff --git a/etc/conf.d/saslauthd b/etc/conf.d/saslauthd
new file mode 100644
index 0000000..dd487b0
--- /dev/null
+++ b/etc/conf.d/saslauthd
@@ -0,0 +1,19 @@
+# Config file for /etc/init.d/saslauthd and systemd unit
+
+# PLEASE READ THIS IF YOU ARE USING SYSTEMD
+# Please note that systemd does not expand shell variables
+# thus, something like FOO="${FOO} bar" won't work.
+
+# Specify the authentications mechanism.
+# **NOTE** For a list see: saslauthd -v
+# Since 2.1.19, add "-r" to options for old behavior,
+# ie. reassemble user and realm to user@realm form.
+#
+# Specify the hostname for remote IMAP server using:
+# "-O localhost".
+# Specify the number of worker processes to create using:
+# "-n <N>".
+# Enable credential cache, set cache size and timeout using:
+# "-c -s <cache size, like 128> -t <timeout seconds>".
+# 
+SASLAUTHD_OPTS="-a pam"
diff --git a/etc/conf.d/smapi b/etc/conf.d/smapi
new file mode 100644
index 0000000..9a6ed94
--- /dev/null
+++ b/etc/conf.d/smapi
@@ -0,0 +1,20 @@
+# /etc/conf.d/smapi: config file for /etc/init.d/smapi
+
+# use '/etc/init.d/smapi info' at any time to check the thresholds
+# currently used by the driver
+# Note that the kernel does some sanity checking on the values and
+# will not accept any combination of values you may try to set up.
+# (i.e. stop value lower than start) So if the output of info does
+# not match what you wanted the driver probably did not like your
+# configuration.
+
+# default thresholds for '/etc/init.d/smapi start'
+SMAPI_THRESH_START="0"
+SMAPI_THRESH_STOP="100"
+# values to be used for '/etc/init.d/smapi low'
+SMAPI_LOW_THRESH_START="${SMAPI_THRESH_START}"
+SMAPI_LOW_THRESH_STOP="${SMAPI_THRESH_STOP}"
+
+# values to be used for '/etc/init.d/smapi high'
+SMAPI_HIGH_THRESH_START="0"
+SMAPI_HIGH_THRESH_STOP="100"
diff --git a/etc/conf.d/smartd b/etc/conf.d/smartd
new file mode 100644
index 0000000..4b7db4d
--- /dev/null
+++ b/etc/conf.d/smartd
@@ -0,0 +1,4 @@
+# /etc/conf.d/smartd: config file for /etc/init.d/smartd
+
+# Insert any other options needed
+SMARTD_OPTS=""
diff --git a/etc/conf.d/sshd b/etc/conf.d/sshd
new file mode 100644
index 0000000..cf43037
--- /dev/null
+++ b/etc/conf.d/sshd
@@ -0,0 +1,33 @@
+# /etc/conf.d/sshd: config file for /etc/init.d/sshd
+
+# Where is your sshd_config file stored?
+
+SSHD_CONFDIR="${RC_PREFIX%/}/etc/ssh"
+
+
+# Any random options you want to pass to sshd.
+# See the sshd(8) manpage for more info.
+
+SSHD_OPTS=""
+
+
+# Wait one second (length chosen arbitrarily) to see if sshd actually
+# creates a PID file, or if it crashes for some reason like not being
+# able to bind to the address in ListenAddress.
+
+#SSHD_SSD_OPTS="--wait 1000"
+
+
+# Pid file to use (needs to be absolute path).
+
+#SSHD_PIDFILE="${RC_PREFIX%/}/run/sshd.pid"
+
+
+# Path to the sshd binary (needs to be absolute path).
+
+#SSHD_BINARY="${RC_PREFIX%/}/usr/sbin/sshd"
+
+
+# Path to the ssh-keygen binary (needs to be absolute path).
+
+#SSHD_KEYGEN_BINARY="${RC_PREFIX%/}/usr/bin/ssh-keygen"
diff --git a/etc/conf.d/stmpfiles-dev b/etc/conf.d/stmpfiles-dev
new file mode 100644
index 0000000..2ec4b5f
--- /dev/null
+++ b/etc/conf.d/stmpfiles-dev
@@ -0,0 +1,2 @@
+# Extra options to pass to stmpfiles
+#stmpfiles_opts=""
diff --git a/etc/conf.d/stmpfiles-setup b/etc/conf.d/stmpfiles-setup
new file mode 100644
index 0000000..2ec4b5f
--- /dev/null
+++ b/etc/conf.d/stmpfiles-setup
@@ -0,0 +1,2 @@
+# Extra options to pass to stmpfiles
+#stmpfiles_opts=""
diff --git a/etc/conf.d/svnserve b/etc/conf.d/svnserve
new file mode 100644
index 0000000..83997ce
--- /dev/null
+++ b/etc/conf.d/svnserve
@@ -0,0 +1,10 @@
+# The commented variables in this file are the defaults that are used
+# in the init-script.  You don't need to uncomment them except to
+# customize them to different values.
+
+# Options for svnserve
+#SVNSERVE_OPTS="--root=/var/svn"
+
+# User and group as which to run svnserve
+#SVNSERVE_USER="svn"
+#SVNSERVE_GROUP="svnusers"
diff --git a/etc/conf.d/swap b/etc/conf.d/swap
new file mode 100644
index 0000000..17bd034
--- /dev/null
+++ b/etc/conf.d/swap
@@ -0,0 +1,13 @@
+# If you are only using local swap partitions, you should not change
+# this file. Otherwise, you need to uncomment the below rc_before line
+# followed by the appropriate rc_need line.
+#rc_before="!localmount"
+#
+# If you are using swap files stored on local file systems, uncomment
+# this line.
+#rc_need="localmount"
+#
+# If you are using swap files stored on network file systems or swap
+# partitions stored on network block devices such as iSCSI, uncomment
+# this line.
+#rc_need="netmount"
diff --git a/etc/conf.d/syncthing b/etc/conf.d/syncthing
new file mode 100644
index 0000000..5c1f338
--- /dev/null
+++ b/etc/conf.d/syncthing
@@ -0,0 +1,24 @@
+# /etc/conf.d/syncthing: config file for /etc/init.d/syncthing
+
+# User and group as which to run
+SYNCTHING_USER="syncthing"
+SYNCTHING_GROUP="syncthing"
+
+# Configuration directory
+SYNCTHING_HOMEDIR="/var/lib/syncthing"
+
+# Log file location
+SYNCTHING_LOGFILE="/var/log/syncthing/syncthing.log"
+
+# umask used to create files
+# The default allows group access
+SYNCTHING_UMASK=007
+
+# I/O nice level of syncthing
+SYNCTHING_IONICE="3"
+
+# Nice level of syncthing
+SYNCTHING_NICE="3"
+
+# Extra options for syncthing
+#SYNCTHING_OPTS=""
diff --git a/etc/conf.d/syslog-ng b/etc/conf.d/syslog-ng
new file mode 100644
index 0000000..9ddeda7
--- /dev/null
+++ b/etc/conf.d/syslog-ng
@@ -0,0 +1,43 @@
+# Config file for /etc/init.d/syslog-ng
+
+# If you are not using network logging, this entire section should be
+# commented out. Otherwise, choose one of the settings below based on
+# how you are configuring your network.
+#
+# If you are using the net.* scripts to configure your network, you should
+# set rc_need to match the interface through which your logging server
+# can be reached.
+#rc_need="net.eth0"
+#
+# If you are using an interface manager like wicd, dhcpcd in standalone
+# mode, networkmanager, etc to control your interfaces, set rc_need to
+# the name of that service.
+# rc_need="dhcpcd"
+#rc_need="networkmanager"
+#
+# If you are using newnet and configuring your interface statically with
+# the network script, you should use this setting.
+#rc_need="network"
+#
+# You can use this setting, but I do not recommend relying on it.
+#rc_need="net"
+#
+# You may also want to uncomment the following if you are using network
+# logging.
+#rc_use="stunnel"
+
+# For very customized setups these variables can be adjusted as needed
+# but for most situations they should remain commented:
+# SYSLOG_NG_CONFIGFILE=/etc/syslog-ng/syslog-ng.conf
+# SYSLOG_NG_CONTROLFILE=${SYSLOG_NG_STATEFILE_DIR}/syslog-ng.ctl
+# SYSLOG_NG_STATEFILE_DIR=/var/lib/syslog-ng
+# SYSLOG_NG_STATEFILE=${SYSLOG_NG_STATEFILE_DIR}/syslog-ng.persist
+# SYSLOG_NG_PIDFILE_DIR=/run
+# SYSLOG_NG_PIDFILE=${SYSLOG_NG_PIDFILE_DIR}/syslog-ng.pid
+# SYSLOG_NG_GROUP=root
+# SYSLOG_NG_USER=root
+
+# Put any additional options for syslog-ng here.
+# See syslog-ng(8) for more information.
+
+SYSLOG_NG_OPTS=""
diff --git a/etc/conf.d/udev b/etc/conf.d/udev
new file mode 100644
index 0000000..a714032
--- /dev/null
+++ b/etc/conf.d/udev
@@ -0,0 +1,9 @@
+# /etc/conf.d/udev: config file for udev
+
+# Add extra command line options to udevd, use with care
+# udevd --help for possible values
+#udev_opts=""
+
+# Run udevd --debug and write output to /run/udevdebug.log
+# Should not be kept on as it fills diskspace slowly
+#udev_debug="YES"
diff --git a/etc/conf.d/udev-settle b/etc/conf.d/udev-settle
new file mode 100644
index 0000000..cb995e4
--- /dev/null
+++ b/etc/conf.d/udev-settle
@@ -0,0 +1,5 @@
+# /etc/conf.d/udev-settle: config file for udev-settle
+
+# Timeout in seconds to wait for processing of uevents at boot.
+# There should be no need to change this.
+#udev_settle_timeout=120
diff --git a/etc/conf.d/udev-trigger b/etc/conf.d/udev-trigger
new file mode 100644
index 0000000..5850b8b
--- /dev/null
+++ b/etc/conf.d/udev-trigger
@@ -0,0 +1,32 @@
+# /etc/conf.d/udev-trigger: config file for udev-trigger
+
+# udev can trigger coldplug events which cause services to start and
+# kernel modules to be loaded.
+# Services are deferred to start in the boot runlevel.
+# Set rc_coldplug="NO" if you don't want this.
+# If you want module coldplugging but not coldplugging of services then you
+# can disable service coldplugging in baselayout/openrc config files.
+# The setting is named different in different versions.
+# in /etc/rc.conf: rc_hotplug="!*" or
+# in /etc/conf.d/rc: rc_plug_services="!*"
+#rc_coldplug="YES"
+
+# We can create a /dev/root symbolic link to point to the root device in
+# some situations. This is on by default because some software relies on
+# it,. However, this software should be fixed to not do this.
+# For more information, see
+# https://bugs.gentoo.org/show_bug.cgi?id=438380.
+# If you are not using any affected software, you do not need this, so
+# feel free to turn it off.
+#rc_dev_root_symlink="YES"
+
+# Run udevadmin monitor to get a log of all events
+# in /run/udevmonitor.log
+#udev_monitor="YES"
+
+# Keep udevmonitor running after populating /dev.
+#udev_monitor_keep_running="no"
+
+# Set cmdline options for udevmonitor.
+# could be some of --env --kernel --udev
+#udev_monitor_opts="--env"
diff --git a/etc/conf.d/urandom b/etc/conf.d/urandom
new file mode 100644
index 0000000..f721a24
--- /dev/null
+++ b/etc/conf.d/urandom
@@ -0,0 +1,5 @@
+# Sometimes you want to have urandom start before "localmount"
+# (say for crypt swap), so you will need to customize this
+# behavior.  If you have /var on a separate partition, then
+# make sure this path lives on your root device somewhere.
+urandom_seed="/var/lib/misc/random-seed"
diff --git a/etc/dispatch-conf.conf b/etc/dispatch-conf.conf
new file mode 100644
index 0000000..278ef19
--- /dev/null
+++ b/etc/dispatch-conf.conf
@@ -0,0 +1,65 @@
+#
+# dispatch-conf.conf
+#
+
+# Directory to archive replaced configs
+archive-dir=${EPREFIX}/etc/config-archive
+
+# Use rcs for storing files in the archive directory?
+# NOTE: You should install dev-vcs/rcs before enabling this option.
+# WARNING: When configured to use rcs, read and execute permissions of
+# archived files may be inherited from the first check in of a working
+# file, as documented in the ci(1) man page. This means that even if
+# the permissions of the working file have since changed, the older
+# permissions of the first check in may be inherited. As mentioned in
+# the ci(1) man page, users can control access to RCS files by setting
+# the permissions of the directory containing the files (see
+# archive-dir above).
+# (yes or no)
+use-rcs=no
+
+# Diff for display
+# %s old file
+# %s new file
+# If using colordiff instead of diff, the less -R option may be required
+# for correct display.
+diff="diff -Nu '%s' '%s'"
+
+# Set the pager for use with diff commands (this will
+# cause the PAGER environment variable to be ignored).
+# Setting pager="cat" will disable pager usage.
+pager=""
+
+# Default options used if less is the pager
+less-opts="--no-init --quit-if-one-screen"
+
+# Diff for interactive merges.
+# %s output file
+# %s old file
+# %s new file
+merge="sdiff --suppress-common-lines --output='%s' '%s' '%s'"
+
+# Automerge files comprising only CVS interpolations (e.g. Header or Id)
+# (yes or no)
+replace-cvs=yes
+
+# Automerge files comprising only whitespace and/or comments
+# (yes or no)
+replace-wscomments=yes
+
+# Automerge files that the user hasn't modified
+# (yes or no)
+replace-unmodified=yes
+
+# Ignore a version that is identical to the previously merged version,
+# even though it is different from the current user modified version
+# Note that emerge already has a similar feature enabled by default,
+# which can be disabled by the emerge --noconfmem option.
+# (yes or no)
+ignore-previously-merged=no
+
+# Per-session log file of changes made to configuration files
+#log-file=/var/log/dispatch-conf.log
+
+# List of frozen files for which dispatch-conf will automatically zap updates
+frozen-files="/etc/portage/repo.postsync.d/example"
diff --git a/etc/doas.conf b/etc/doas.conf
new file mode 100644
index 0000000..717e093
--- /dev/null
+++ b/etc/doas.conf
@@ -0,0 +1,16 @@
+permit nopass keepenv root
+
+permit nopass :wheel 
+
+permit nopass :portage cmd eix-diff
+permit nopass :portage cmd eix-sync
+permit nopass :portage cmd eix-update
+permit nopass setenv { USE ACCEPT_KEYWORDS PYTHON_TARGETS PYTHON_SINGLE_TARGET FEATURES CFLAGS CXXFLAGS LDFLAGS MAKEOPTS } :portage cmd ebuild
+permit nopass setenv { USE ACCEPT_KEYWORDS PYTHON_TARGETS PYTHON_SINGLE_TARGET FEATURES CFLAGS CXXFLAGS LDFLAGS MAKEOPTS } :portage cmd emerge
+
+permit nopass :docker cmd rc-service args docker start
+permit nopass :docker cmd rc-service args docker stop
+permit nopass :fcron cmd rc-service args fcron start
+permit nopass :fcron cmd rc-service args fcron stop
+permit nopass :syncthing cmd rc-service args syncthing start
+permit nopass :syncthing cmd rc-service args syncthing stop
diff --git a/etc/eclean/distfiles.exclude b/etc/eclean/distfiles.exclude
new file mode 100644
index 0000000..1c6eaf4
--- /dev/null
+++ b/etc/eclean/distfiles.exclude
@@ -0,0 +1,7 @@
+# /etc/eclean/distfiles.exclude
+# In this file you can list some categories or cat/pkg-name for which you want
+# to protect distfiles from "ecleaning". You can also name some specific files.
+# See `man eclean` for syntax details.
+metadata.dtd
+metadata.xsd
+portage-\d\d\d\d\d\d\d\d\.tar\.bz2
diff --git a/etc/eclean/packages.exclude b/etc/eclean/packages.exclude
new file mode 100644
index 0000000..8277155
--- /dev/null
+++ b/etc/eclean/packages.exclude
@@ -0,0 +1,4 @@
+# /etc/eclean/packages.exclude
+# In this file you can list some categories or cat/pkg-name for which you want
+# to protect binary packages from "ecleaning".
+# See `man eclean` for syntax details.
diff --git a/etc/env.d/00glibc b/etc/env.d/00glibc
new file mode 100644
index 0000000..1171153
--- /dev/null
+++ b/etc/env.d/00glibc
@@ -0,0 +1 @@
+LDPATH="include ld.so.conf.d/*.conf"
diff --git a/etc/env.d/00manpager b/etc/env.d/00manpager
new file mode 100644
index 0000000..2b06352
--- /dev/null
+++ b/etc/env.d/00manpager
@@ -0,0 +1 @@
+MANPAGER=manpager
diff --git a/etc/env.d/02locale b/etc/env.d/02locale
new file mode 100644
index 0000000..fc9f7c6
--- /dev/null
+++ b/etc/env.d/02locale
@@ -0,0 +1,3 @@
+# Configuration file for eselect
+# This file has been automatically generated.
+LANG="en_US.utf8"
diff --git a/etc/env.d/04gcc-x86_64-pc-linux-gnu b/etc/env.d/04gcc-x86_64-pc-linux-gnu
new file mode 100644
index 0000000..2e189ea
--- /dev/null
+++ b/etc/env.d/04gcc-x86_64-pc-linux-gnu
@@ -0,0 +1,4 @@
+# Autogenerated by 'gcc-config'.
+GCC_SPECS=""
+MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/11.2.0/man"
+INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/11.2.0/info"
diff --git a/etc/env.d/05binutils b/etc/env.d/05binutils
new file mode 100644
index 0000000..3b639ad
--- /dev/null
+++ b/etc/env.d/05binutils
@@ -0,0 +1,2 @@
+MANPATH=/usr/share/binutils-data/x86_64-pc-linux-gnu/2.37_p1/man
+INFOPATH=/usr/share/binutils-data/x86_64-pc-linux-gnu/2.37_p1/info
diff --git a/etc/env.d/09sandbox b/etc/env.d/09sandbox
new file mode 100644
index 0000000..9181eb0
--- /dev/null
+++ b/etc/env.d/09sandbox
@@ -0,0 +1 @@
+CONFIG_PROTECT_MASK="/etc/sandbox.d"
diff --git a/etc/env.d/30gnupg b/etc/env.d/30gnupg
new file mode 100644
index 0000000..2f8f3ac
--- /dev/null
+++ b/etc/env.d/30gnupg
@@ -0,0 +1 @@
+CONFIG_PROTECT=/usr/share/gnupg/qualified.txt
diff --git a/etc/env.d/37fontconfig b/etc/env.d/37fontconfig
new file mode 100644
index 0000000..c52433b
--- /dev/null
+++ b/etc/env.d/37fontconfig
@@ -0,0 +1 @@
+CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"
diff --git a/etc/env.d/50baselayout b/etc/env.d/50baselayout
new file mode 100644
index 0000000..c81ab9a
--- /dev/null
+++ b/etc/env.d/50baselayout
@@ -0,0 +1,9 @@
+# /etc/env.d/50baselayout
+# Do not edit this file
+
+PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin"
+ROOTPATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin"
+MANPATH="/usr/local/share/man:/usr/share/man"
+INFOPATH="/usr/share/info"
+CONFIG_PROTECT_MASK="/etc/gentoo-release"
+LDPATH='/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib'
diff --git a/etc/env.d/50emacs b/etc/env.d/50emacs
new file mode 100644
index 0000000..40e847b
--- /dev/null
+++ b/etc/env.d/50emacs
@@ -0,0 +1 @@
+INFOPATH=/usr/share/info/emacs-27
diff --git a/etc/env.d/50ncurses b/etc/env.d/50ncurses
new file mode 100644
index 0000000..495f2cc
--- /dev/null
+++ b/etc/env.d/50ncurses
@@ -0,0 +1 @@
+CONFIG_PROTECT_MASK="/etc/terminfo"
diff --git a/etc/env.d/50package-manager b/etc/env.d/50package-manager
new file mode 100644
index 0000000..162ee92
--- /dev/null
+++ b/etc/env.d/50package-manager
@@ -0,0 +1,3 @@
+# Configuration file for eselect
+# This file has been automatically generated.
+PACKAGE_MANAGER="portage"
diff --git a/etc/env.d/70less b/etc/env.d/70less
new file mode 100644
index 0000000..b737af9
--- /dev/null
+++ b/etc/env.d/70less
@@ -0,0 +1,2 @@
+LESSOPEN="|lesspipe %s"
+LESS="-R -M --shift 5"
diff --git a/etc/env.d/98ca-certificates b/etc/env.d/98ca-certificates
new file mode 100644
index 0000000..55e9fad
--- /dev/null
+++ b/etc/env.d/98ca-certificates
@@ -0,0 +1 @@
+CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"
diff --git a/etc/env.d/99editor b/etc/env.d/99editor
new file mode 100644
index 0000000..b1cb576
--- /dev/null
+++ b/etc/env.d/99editor
@@ -0,0 +1,4 @@
+# Configuration file for eselect
+# This file has been automatically generated.
+EDITOR="vim"
+VISUAL="vim"
diff --git a/etc/env.d/99gentoolkit-env b/etc/env.d/99gentoolkit-env
new file mode 100644
index 0000000..3933874
--- /dev/null
+++ b/etc/env.d/99gentoolkit-env
@@ -0,0 +1 @@
+CONFIG_PROTECT_MASK="/etc/revdep-rebuild"
diff --git a/etc/env.d/99pager b/etc/env.d/99pager
new file mode 100644
index 0000000..d7e3c9e
--- /dev/null
+++ b/etc/env.d/99pager
@@ -0,0 +1,3 @@
+# Configuration file for eselect
+# This file has been automatically generated.
+PAGER="less"
diff --git a/etc/env.d/binutils/config-x86_64-pc-linux-gnu b/etc/env.d/binutils/config-x86_64-pc-linux-gnu
new file mode 100644
index 0000000..f29901d
--- /dev/null
+++ b/etc/env.d/binutils/config-x86_64-pc-linux-gnu
@@ -0,0 +1 @@
+CURRENT=2.37_p1
diff --git a/etc/env.d/binutils/x86_64-pc-linux-gnu-2.37_p1 b/etc/env.d/binutils/x86_64-pc-linux-gnu-2.37_p1
new file mode 100644
index 0000000..a32e215
--- /dev/null
+++ b/etc/env.d/binutils/x86_64-pc-linux-gnu-2.37_p1
@@ -0,0 +1,3 @@
+TARGET="x86_64-pc-linux-gnu"
+VER="2.37_p1"
+LIBPATH="/usr/lib64/binutils/x86_64-pc-linux-gnu/2.37_p1"
diff --git a/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/etc/env.d/gcc/config-x86_64-pc-linux-gnu
new file mode 100644
index 0000000..58bed88
--- /dev/null
+++ b/etc/env.d/gcc/config-x86_64-pc-linux-gnu
@@ -0,0 +1 @@
+CURRENT=x86_64-pc-linux-gnu-11.2.0
diff --git a/etc/env.d/gcc/x86_64-pc-linux-gnu-11.2.0 b/etc/env.d/gcc/x86_64-pc-linux-gnu-11.2.0
new file mode 100644
index 0000000..b9aa91d
--- /dev/null
+++ b/etc/env.d/gcc/x86_64-pc-linux-gnu-11.2.0
@@ -0,0 +1,8 @@
+GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/11.2.0"
+LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0"
+MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/11.2.0/man"
+INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/11.2.0/info"
+STDCXX_INCDIR="g++-v11"
+CTARGET="x86_64-pc-linux-gnu"
+GCC_SPECS=""
+MULTIOSDIRS="../lib64"
diff --git a/etc/filesystems b/etc/filesystems
new file mode 100644
index 0000000..521ab1c
--- /dev/null
+++ b/etc/filesystems
@@ -0,0 +1,14 @@
+# /etc/filesystems
+#
+# This file defines the filesystems search order used by a
+# 'mount -t auto' command.
+#
+
+# Uncomment the following line if your modular kernel has vfat
+# support and you want mount to try vfat.
+vfat
+
+# Keep the last '*' intact as it directs mount to use the
+# filesystems list available at /proc/filesystems also.
+# Don't remove it unless you REALLY know what you are doing!
+*
diff --git a/etc/fonts/conf.d/09-texlive.conf b/etc/fonts/conf.d/09-texlive.conf
new file mode 120000
index 0000000..0f9ccd5
--- /dev/null
+++ b/etc/fonts/conf.d/09-texlive.conf
@@ -0,0 +1 @@
+/etc/fonts/conf.avail/09-texlive.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/10-hinting-slight.conf b/etc/fonts/conf.d/10-hinting-slight.conf
new file mode 120000
index 0000000..5488142
--- /dev/null
+++ b/etc/fonts/conf.d/10-hinting-slight.conf
@@ -0,0 +1 @@
+../conf.avail/10-hinting-slight.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/10-sub-pixel-rgb.conf b/etc/fonts/conf.d/10-sub-pixel-rgb.conf
new file mode 120000
index 0000000..c90d3b7
--- /dev/null
+++ b/etc/fonts/conf.d/10-sub-pixel-rgb.conf
@@ -0,0 +1 @@
+/etc/fonts/conf.avail/10-sub-pixel-rgb.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/11-lcdfilter-default.conf b/etc/fonts/conf.d/11-lcdfilter-default.conf
new file mode 120000
index 0000000..07413bc
--- /dev/null
+++ b/etc/fonts/conf.d/11-lcdfilter-default.conf
@@ -0,0 +1 @@
+/etc/fonts/conf.avail/11-lcdfilter-default.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/30-metric-aliases.conf b/etc/fonts/conf.d/30-metric-aliases.conf
new file mode 120000
index 0000000..6809157
--- /dev/null
+++ b/etc/fonts/conf.d/30-metric-aliases.conf
@@ -0,0 +1 @@
+../conf.avail/30-metric-aliases.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/40-nonlatin.conf b/etc/fonts/conf.d/40-nonlatin.conf
new file mode 120000
index 0000000..efb8230
--- /dev/null
+++ b/etc/fonts/conf.d/40-nonlatin.conf
@@ -0,0 +1 @@
+../conf.avail/40-nonlatin.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/45-generic.conf b/etc/fonts/conf.d/45-generic.conf
new file mode 120000
index 0000000..1f25c2c
--- /dev/null
+++ b/etc/fonts/conf.d/45-generic.conf
@@ -0,0 +1 @@
+../conf.avail/45-generic.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/45-latin.conf b/etc/fonts/conf.d/45-latin.conf
new file mode 120000
index 0000000..c400905
--- /dev/null
+++ b/etc/fonts/conf.d/45-latin.conf
@@ -0,0 +1 @@
+../conf.avail/45-latin.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/49-sansserif.conf b/etc/fonts/conf.d/49-sansserif.conf
new file mode 120000
index 0000000..0262faa
--- /dev/null
+++ b/etc/fonts/conf.d/49-sansserif.conf
@@ -0,0 +1 @@
+../conf.avail/49-sansserif.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/50-user.conf b/etc/fonts/conf.d/50-user.conf
new file mode 120000
index 0000000..967e33e
--- /dev/null
+++ b/etc/fonts/conf.d/50-user.conf
@@ -0,0 +1 @@
+../conf.avail/50-user.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/51-local.conf b/etc/fonts/conf.d/51-local.conf
new file mode 120000
index 0000000..58fc313
--- /dev/null
+++ b/etc/fonts/conf.d/51-local.conf
@@ -0,0 +1 @@
+../conf.avail/51-local.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/60-generic.conf b/etc/fonts/conf.d/60-generic.conf
new file mode 120000
index 0000000..aba0e09
--- /dev/null
+++ b/etc/fonts/conf.d/60-generic.conf
@@ -0,0 +1 @@
+../conf.avail/60-generic.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/60-latin.conf b/etc/fonts/conf.d/60-latin.conf
new file mode 120000
index 0000000..4827df3
--- /dev/null
+++ b/etc/fonts/conf.d/60-latin.conf
@@ -0,0 +1 @@
+../conf.avail/60-latin.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/63-source-pro.conf b/etc/fonts/conf.d/63-source-pro.conf
new file mode 120000
index 0000000..6f34b0d
--- /dev/null
+++ b/etc/fonts/conf.d/63-source-pro.conf
@@ -0,0 +1 @@
+/etc/fonts/conf.avail/63-source-pro.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/65-nonlatin.conf b/etc/fonts/conf.d/65-nonlatin.conf
new file mode 120000
index 0000000..d99e17a
--- /dev/null
+++ b/etc/fonts/conf.d/65-nonlatin.conf
@@ -0,0 +1 @@
+../conf.avail/65-nonlatin.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/66-ja-ipafonts.conf b/etc/fonts/conf.d/66-ja-ipafonts.conf
new file mode 120000
index 0000000..abab1bf
--- /dev/null
+++ b/etc/fonts/conf.d/66-ja-ipafonts.conf
@@ -0,0 +1 @@
+/etc/fonts/conf.avail/66-ja-ipafonts.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/80-delicious.conf b/etc/fonts/conf.d/80-delicious.conf
new file mode 120000
index 0000000..22d6770
--- /dev/null
+++ b/etc/fonts/conf.d/80-delicious.conf
@@ -0,0 +1 @@
+../conf.avail/80-delicious.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/90-synthetic.conf b/etc/fonts/conf.d/90-synthetic.conf
new file mode 120000
index 0000000..a25f312
--- /dev/null
+++ b/etc/fonts/conf.d/90-synthetic.conf
@@ -0,0 +1 @@
+../conf.avail/90-synthetic.conf
\ No newline at end of file
diff --git a/etc/fonts/conf.d/README b/etc/fonts/conf.d/README
new file mode 100644
index 0000000..6a774c5
--- /dev/null
+++ b/etc/fonts/conf.d/README
@@ -0,0 +1,23 @@
+conf.d/README
+
+Each file in this directory is a fontconfig configuration file.  Fontconfig
+scans this directory, loading all files of the form [0-9][0-9]*.conf.
+These files are normally installed in /usr/share/fontconfig/conf.avail
+and then symlinked here, allowing them to be easily installed and then
+enabled/disabled by adjusting the symlinks.
+
+The files are loaded in numeric order, the structure of the configuration
+has led to the following conventions in usage:
+
+ Files begining with:	Contain:
+ 
+ 00 through 09		Font directories
+ 10 through 19		system rendering defaults (AA, etc)
+ 20 through 29		font rendering options
+ 30 through 39		family substitution
+ 40 through 49		generic identification, map family->generic
+ 50 through 59		alternate config file loading
+ 60 through 69		generic aliases, map generic->family
+ 70 through 79		select font (adjust which fonts are available)
+ 80 through 89		match target="scan" (modify scanned patterns)
+ 90 through 99		font synthesis
diff --git a/etc/fstab b/etc/fstab
new file mode 100644
index 0000000..c4d6238
--- /dev/null
+++ b/etc/fstab
@@ -0,0 +1,5 @@
+tmpfs                                     /tmp        tmpfs size=4G,noatime                                                                                                                                    0 0
+/dev/mapper/sg-swap                       none        swap  defaults,noatime,discard                                                                                                                           0 0
+/dev/mapper/sg-root                       /           f2fs  rw,active_logs=6,background_gc=on,no_heap,acl,user_xattr,inline_xattr,inline_data,inline_dentry,flush_merge,mode=adaptive,fsync_mode=posix,discard 0 0
+/dev/mapper/sg-home                       /home       f2fs  rw,active_logs=6,background_gc=on,no_heap,acl,user_xattr,inline_xattr,inline_data,inline_dentry,flush_merge,mode=adaptive,fsync_mode=posix,discard 0 0
+UUID=45c75bf0-c76b-40ed-8ab4-bc23248c779b /media/blue btrfs defaults,compress=zstd                                                                                                                             0 0
diff --git a/etc/fuse.conf b/etc/fuse.conf
new file mode 100644
index 0000000..c292f74
--- /dev/null
+++ b/etc/fuse.conf
@@ -0,0 +1,17 @@
+# The file /etc/fuse.conf allows for the following parameters:
+#
+# user_allow_other - Using the allow_other mount option works fine as root, in
+# order to have it work as user you need user_allow_other in /etc/fuse.conf as
+# well. (This option allows users to use the allow_other option.) You need
+# allow_other if you want users other than the owner to access a mounted fuse.
+# This option must appear on a line by itself. There is no value, just the
+# presence of the option.
+
+user_allow_other
+
+
+# mount_max = n - this option sets the maximum number of mounts.
+# Currently (2014) it must be typed exactly as shown
+# (with a single space before and after the equals sign).
+
+#mount_max = 1000
diff --git a/etc/genkernel.conf b/etc/genkernel.conf
new file mode 100644
index 0000000..c9e3e3a
--- /dev/null
+++ b/etc/genkernel.conf
@@ -0,0 +1,314 @@
+# Configuration file for genkernel
+
+# This file is sourced by genkernel at startup and determines which options
+# we will be using to compile our kernel.  The order of precidence is simple,
+# with the internal settings being least important, configuration file
+# settings next, and command line options being most important.
+
+# =========Common Command Line Option Defaults=========
+
+# Should we install to $BOOTDIR?  Default is "no" because genkernel is used in
+# catalyst and stage building.
+#INSTALL="yes"
+
+# Run 'make oldconfig' before compiling this kernel?
+OLDCONFIG="yes"
+
+# Run 'make menuconfig' before compiling this kernel?
+MENUCONFIG="no"
+
+# Run 'make nconfig' (ncurses 'menuconfig') before compiling this kernel?
+NCONFIG="no"
+
+# Note, that two previous lines are mutual exclusive (logically), while
+# MENUCONFIG has a higher priority if both them is enabled.
+
+# Run 'make clean' before compilation?
+# If set to NO, implies MRPROPER WILL NOT be run
+# Also, if clean is NO, it won't copy over any configuration
+# file, it will use what's there.
+CLEAN="yes"
+
+# Run 'make mrproper' before configuration/compilation?
+MRPROPER="yes"
+
+# Override the arch detection?
+#ARCH_OVERRIDE="x86"
+
+# Mount BOOTDIR automatically if it isn't mounted?
+MOUNTBOOT="yes"
+
+# Make symlinks in BOOTDIR automatically?
+#SYMLINK="no"
+
+# Merge kernel config fragment
+#MERGE_KCONFIG="yes"
+# Kernel config fragment(s) to merge
+#KCONFIG_FRAGMENT=( "/etc/default/genkernel_kconfig_fragment" )
+
+# Save the new configuration in /etc/kernels upon
+# successfull compilation
+SAVE_CONFIG="yes"
+
+# Use Color output in Genkernel?
+USECOLOR="yes"
+
+# Clear build cache dir
+#CLEAR_CACHE_DIR="yes"
+
+# Clear all tmp files and caches after genkernel has run
+#POSTCLEAR="1"
+
+# Genkernel uses an independent configuration for MAKEOPTS, and does not source
+# /etc/make.conf . You can override the default setting by uncommenting and
+# tweaking the following line. Default setting is set up by
+# ${GK_SHARE}/${ARCH_OVERRIDE}/config.sh . The recommended value for -j
+# argument is: <number of processors>*<number of cores per processor>+1
+#MAKEOPTS="-j2"
+
+# Add in LVM support from static binaries if they exist on the system, or
+# compile static LVM binaries if static ones do not exist.
+#LVM="no"
+
+# Add in Luks support. Needs sys-fs/cryptsetup with -dynamic installed.
+#LUKS="no"
+
+# Add in GnuPG support
+#GPG="no"
+
+# Add DMRAID support.
+#DMRAID="no"
+
+# Include (or suppresses the inclusion of) busybox in the initrd or initramfs.
+# If included, busybox is rebuilt if the cached copy is out of date.
+#BUSYBOX="yes"
+
+# Use udev instead of mdev as the default device manager for the initramfs.
+# If you use systemd and perhaps lvm, you _must_ keep this turned on.
+#UDEV="yes"
+
+# Includes mdadm/mdmon binaries in initramfs.
+# Without sys-fs/mdadm[static] installed, this will build a static mdadm.
+#MDADM="no"
+
+# Specify a custom mdadm.conf.
+# By default the ramdisk will be built *without* an mdadm.conf and will auto-detect
+# arrays during bootup.  Usually, this should not be needed.
+#MDADM_CONFIG="/etc/mdadm.conf"
+
+# Add Multipath support.
+#MULTIPATH="no"
+
+# Add iSCSI support.
+#ISCSI="no"
+
+# Add e2fsprogs support.
+#E2FSPROGS="no"
+
+# Install firmware onto root filesystem
+# Will conflict with sys-kernel/linux-firmware package
+#FIRMWARE_INSTALL="no"
+
+# Enable copying of firmware into initramfs
+#FIRMWARE="no"
+# Specify directory to pull from
+# FIRMWARE_SRC="/lib/firmware"
+# Specify specific firmware files to include. This overrides FIRMWARE_SRC
+# FIRMWARE_FILES=""
+
+# Add new kernel to grub?
+#BOOTLOADER="grub"
+
+# Enable splashutils in early space (initrd). Default is "no".
+#SPLASH="yes"
+
+# Use this splash theme. If commented out - the "default" name theme is used.
+# Also, SPLASH="yes" needs to be enabled for this one to one work.
+# This supersedes the "SPLASH_THEME" option of /etc/conf.d/splash (in early space).
+#SPLASH_THEME="gentoo"
+
+# Installs, or not, plymouth into the initramfs. If "splash" will be
+# passed at boot, plymouth will be activated.
+# PLYMOUTH="yes"
+
+# Embeds the given plymouth theme into the initramfs.
+# PLYMOUTH_THEME="text"
+
+# =========Keymap Settings=========
+#
+# Force keymap selection at boot
+#DOKEYMAPAUTO="yes"
+
+
+# Disables keymap selection support
+#KEYMAP="0"
+
+
+# =========Low Level Compile Settings=========
+#
+# GNU Make to use for kernel.  See also the --kernel-make command line option.
+#KERNEL_MAKE="make"
+
+# Compiler to use for the kernel (e.g. distcc).  See also the --kernel-cc
+# command line option.
+#KERNEL_CC="gcc"
+
+# Assembler to use for the kernel.  See also the --kernel-as command line
+# option.
+#KERNEL_AS="as"
+
+# Linker to use for the kernel.  See also the --kernel-ld command line option.
+#KERNEL_LD="ld"
+
+# GNU Make to use for the utilities.  See also the --utils-make command line
+# option.
+#UTILS_MAKE="make"
+
+# Compiler to use for the utilities (e.g. distcc).  See also the --utils-cc
+# command line option.
+#UTILS_CC="gcc"
+
+# Assembler to use for the utilities.  See also the --utils-as command line
+# option.
+#UTILS_AS="as"
+
+# Linker to use for the utilities.  See also the --utils-ld command line
+# option.
+#UTILS_LD="ld"
+
+# =========GENKERNEL LOCATION CONFIGURATION============
+# Variables:
+#   %%ARCH%%  - Final determined architecture
+#   %%CACHE%% - Final determined cache location
+
+# Set genkernel's temporary work directory.  Default is /var/tmp/genkernel
+#TMPDIR="/var/tmp/genkernel"
+
+# Set the boot directory, default is /boot
+#BOOTDIR="/boot"
+
+# Default share directory location
+GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"
+
+# Location of the default cache
+CACHE_DIR="/var/cache/genkernel"
+# Location of DISTDIR, where our source tarballs are stored
+DISTDIR="/var/lib/genkernel/src"
+# Log output file
+LOGFILE="/var/log/genkernel.log"
+# Debug Level
+LOGLEVEL=1
+
+# =========COMPILED UTILS CONFIGURATION============
+#
+# Default location of kernel source
+DEFAULT_KERNEL_SOURCE="/usr/src/linux"
+# Default kernel config (only use to override using
+# arch/%%ARCH%%/kernel-config-${VER}.${PAT} !)
+#DEFAULT_KERNEL_CONFIG="${GK_SHARE}/arch/%%ARCH%%/kernel-config"
+
+# Specifies a user created busybox config
+#BUSYBOX_CONFIG="/path/to/file"
+#BUSYBOX_APPLETS="[ ash sh mount uname echo cut cat"
+
+# NOTE: Since genkernel 3.4.41 the version of
+#   busybox, lvm, mdadm, .. have been moved to
+#   /usr/share/genkernel/defaults/software.sh in order to
+#   reduce the merging you have to do during etc-update.
+#   You can still override these settings in here.
+
+
+# =========MISC KERNEL CONFIGURATION============
+#
+# Tag the kernel and ramdisk with a name:
+# If not defined the option defaults to
+# 'genkernel'
+#KNAME="genkernel"
+
+# Append a text to the kernel/initrd's name,
+# usefull to add a unique key like the actual date
+#KAPPENDNAME="-$(date +%Y%m%d-%H%M%S)"
+
+
+# This option is only valid if kerncache is
+# defined. If there is a valid kerncache no checks
+# will be made against a kernel source tree
+#KERNEL_SOURCES="0"
+
+
+# Build a static (monolithic kernel)
+#BUILD_STATIC="1"
+
+
+# Make and install kernelz image (PowerPC)
+#GENZIMAGE="1"
+
+
+# File to output a .tar.bz2'd kernel contents
+# of /lib/modules/ and the kernel config
+# NOTE: This is created before the callbacks
+# are run!
+#KERNCACHE="/path/to/file"
+
+
+# Prefix to kernel module destination, modules
+# will be installed in <prefix>/lib/modules
+# (.conf equivalent of --module-prefix=<dir>)
+#INSTALL_MOD_PATH=""
+
+
+# =========MISC INITRD CONFIGURATION============
+#
+# Copy all kernel modules to the ramdisk
+#ALLRAMDISKMODULES="1"
+
+
+# Don't copy any modules to the ramdisk
+#RAMDISKMODULES="0"
+
+
+# File to output a .tar.bz2'd kernel and ramdisk:
+# No modules outside of the ramdisk will be
+# included...
+#MINKERNPACKAGE="/path/to/file.bz2"
+
+
+# File to output a .tar.bz2'd modules after the
+# callbacks have run
+#MODULESPACKAGE="/path/to/file.bz2"
+
+
+# Directory structure to include in the initramfs,
+# only available on >=2.6 kernels
+#INITRAMFS_OVERLAY=""
+
+
+# Build the generated initramfs into the kernel instead of
+# keeping it as a separate file
+#INTEGRATED_INITRAMFS="1"
+
+
+# Compress generated initramfs
+#COMPRESS_INITRD="yes"
+# Types of compression: best, xz, lzma, bzip2, gzip, lzop, lz4, fastest
+# "best" selects the best available compression method
+# "fastest" selects the fastest available compression method
+#COMPRESS_INITRD_TYPE="best"
+
+
+# Create a self-contained env in the initramfs
+#NETBOOT="1"
+
+
+# =========MISC BOOT CONFIGURATION============
+#
+# Specify a default for real_root=
+#REAL_ROOT="/dev/one/two/gentoo"
+
+################################################
+## genkernel-next-70 uses old busybox
+## See https://bugs.gentoo.org/719968#c9
+BUSYBOX_VER="1.32.0"
+BUSYBOX_SRCTAR="/var/cache/distfiles/busybox-1.32.0.tar.bz2"
+#################################################
+
diff --git a/etc/hdparm.conf b/etc/hdparm.conf
new file mode 100644
index 0000000..05b713e
--- /dev/null
+++ b/etc/hdparm.conf
@@ -0,0 +1,4 @@
+/dev/sdb {
+    apm = 255
+    apm_battery = 255
+}
diff --git a/etc/issue b/etc/issue
new file mode 100644
index 0000000..c33fc67
--- /dev/null
+++ b/etc/issue
@@ -0,0 +1,6 @@
+              _/                      _/           
+     _/_/    _/    _/_/    _/  _/_/      _/_/_/    
+  _/    _/  _/  _/    _/  _/_/      _/  _/    _/   
+ _/    _/  _/  _/    _/  _/        _/  _/    _/    
+  _/_/    _/    _/_/    _/        _/  _/    _/     
+
diff --git a/etc/laptop-mode/conf.d/intel-hda-powersave.conf b/etc/laptop-mode/conf.d/intel-hda-powersave.conf
new file mode 100644
index 0000000..1e7fb8a
--- /dev/null
+++ b/etc/laptop-mode/conf.d/intel-hda-powersave.conf
@@ -0,0 +1,39 @@
+#
+# Configuration file for Laptop Mode Tools module intel-hda-powersave.
+#
+# For more information, consult the laptop-mode.conf(8) manual page.
+#
+
+
+###############################################################################
+# Intel HDA power saving settings
+# -------------------------------
+#
+#__COMMENT Enable this setting to save some power with your Intel HDA Audio Chipset
+#__COMMENT device.
+#
+###############################################################################
+
+# Enable debug mode for this module
+# Set to 1 if you want to debug this module
+DEBUG=0
+
+# Control INTEL HDA audio chipset power?
+# Set to 0 to disable
+CONTROL_INTEL_HDA_POWER="auto"
+
+# Handle power savings for Intel HDA under specific circumstances
+BATT_INTEL_HDA_POWERSAVE=1
+LM_AC_INTEL_HDA_POWERSAVE=0
+NOLM_AC_INTEL_HDA_POWERSAVE=0
+
+# Number of seconds to wait before you want the device to time out
+INTEL_HDA_DEVICE_TIMEOUT=2
+
+# Disable controller on Device timeout
+# This saves more power
+# However you might want to disable this if you get annoyed by the 
+# "click" sound when the device wakes up again
+#
+# Set this to 1 to enable power savings for the controller also
+INTEL_HDA_DEVICE_CONTROLLER=1
diff --git a/etc/laptop-mode/conf.d/intel-sata-powermgmt.conf b/etc/laptop-mode/conf.d/intel-sata-powermgmt.conf
new file mode 100644
index 0000000..10ec8c0
--- /dev/null
+++ b/etc/laptop-mode/conf.d/intel-sata-powermgmt.conf
@@ -0,0 +1,39 @@
+#
+# Configuration file for Laptop Mode Tools module intel-sata-powermgmt.
+#
+# For more information, consult the laptop-mode.conf(8) manual page.
+#
+
+
+###############################################################################
+# Intel SATA power management settings
+# ------------------------------------
+#
+#__COMMENT If you enable this setting, laptop mode tools will automatically enable the
+#__COMMENT link power management mode of Intel AHCI compliant SATA chipsets.
+#__COMMENT On newer kernels (4.6+), it can also help enable AHCI Runtime PM savings
+#
+###############################################################################
+
+# Enable debug mode for this module
+# Set to 1 if you want to debug this module
+DEBUG=0
+
+# Control Intel SATA chipset power management?
+# Set to 0 to disable
+CONTROL_INTEL_SATA_POWER="0"
+
+
+# Enable AHCI Runtime PM
+# This feature was added with Linux kernels 4.6+
+CONTROL_AHCI_RUNTIME_PM=0
+
+# Handle power management of the Intel SATA host controller under specific
+# circumstances. Legal values are "min_power" (maximum power saving at the
+# expense of higher latencies), "medium_power" (reduce latencies to a minimum
+# while still trying to enable power-saving features), "max_performance" (power
+# management is disabled). Note that setting any level besides
+# "max_performance" also disables device hotplug.
+BATT_SATA_POLICY=min_power
+LM_AC_SATA_POLICY=max_performance
+NOLM_AC_SATA_POLICY=max_performance
diff --git a/etc/laptop-mode/laptop-mode.conf b/etc/laptop-mode/laptop-mode.conf
new file mode 100644
index 0000000..c47b55d
--- /dev/null
+++ b/etc/laptop-mode/laptop-mode.conf
@@ -0,0 +1,381 @@
+###############################################################################
+#
+# Configuration for Laptop Mode Tools
+# -----------------------------------
+#
+# There is a "system" to the configuration setting names:
+#    CONTROL_something=0/1   Determines whether Laptop Mode Tools controls 
+#                            something
+#    LM_something=value      Value of "something" when laptop mode is active
+#    NOLM_something=value    Value of "something" when laptop mode is NOT
+#                            active
+#    AC_something=value      Value of "something" when the computer is running
+#                            on AC power
+#    BATT_something=value    Value of "something" when the computer is running
+#                            on battery power
+#
+# There can be combinations of LM_/NOLM_ and AC_/BATT_ prefixes, but the
+# available prefixes are different for each setting. The available ones are 
+# documented in the manual page, laptop-mode.conf(8). If there is no LM_/
+# NOLM_ in a setting name, then the value is used independently of laptop
+# mode state, and similarly, if there is no AC_/BATT_, then the value is used
+# independently of power state.
+#
+# Some options only work on ACPI systems. They are marked ACPI-ONLY.
+#
+# Note that this configuration file is a fragment of shell script: you
+# can use all the features of the shell scripting language to achieve your
+# desired configuration.
+#
+# 
+# Modules
+# -------
+#
+# Laptop Mode Tools modules have separate configuration files, that can be
+# found in /etc/laptop-mode/conf.d. Please look through these configuration
+# files as well, there are many useful power saving tools in there!
+#
+###############################################################################
+
+
+###############################################################################
+# Enable/Disable laptop-mode-tools execution
+# ------------------------------------------
+# Set it to 0 to completely disable laptop-mode-tools from running
+###############################################################################
+#
+ENABLE_LAPTOP_MODE_TOOLS=1
+
+
+###############################################################################
+# Configuration debugging
+# -----------------------
+###############################################################################
+
+#
+# Set this to 1 if you want to see a lot of information when you start/stop 
+# laptop_mode.
+#
+VERBOSE_OUTPUT=0
+
+# Set this to 1 if you want to log messages to syslog
+LOG_TO_SYSLOG=1
+
+# Run in shell debug mode
+# Enable this if you would like to execute the entire laptop-mode-tools program
+# in shell debug mode. Warning: This will create a lot of text output
+# If you are debugging an individual module, perhaps you would want to enable
+# each module specific debug mode (available in module conf files)
+DEBUG=0
+
+###############################################################################
+# When to enable laptop mode
+# --------------------------
+#
+# "Laptop mode" is the mode in which laptop mode tools makes the computer
+# consume less power. This includes the kernel "laptop_mode" feature, which
+# allows your hard drives to spin down, as well as various other settings which
+# can be tweaked by laptop mode tools. You can enable or disable all of these
+# settings using the CONTROL_... options further down in this config file.
+###############################################################################
+
+
+#
+# Enable laptop mode power saving, when on battery power.
+#
+ENABLE_LAPTOP_MODE_ON_BATTERY=1
+
+
+#
+# Enable laptop mode power savings, even when on AC power.
+# This is useful when running as a headless machine, in low power mode
+#
+ENABLE_LAPTOP_MODE_ON_AC=0
+
+
+#
+# Enable laptop mode when the laptop's lid is closed, even when we're on AC
+# power? (ACPI-ONLY)
+#
+ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=0
+
+
+#
+# Enable all simple zero-configuration auto modules
+# This option enables all simple modules (listed below) without requiring
+# the user to enable each module individually
+#
+# List of modules which can be automatically enabled with this setting are:
+#
+# ac97-powersave
+# cpufreq
+# dpms-standby
+# eee-superhe
+# ethernet
+# exec-commands
+# hal-polling
+# hdparm
+# intel-hda-powersave
+# intel-sata-powermgmt
+# nmi-watchdog
+# pcie-aspm
+# runtime-pm
+# sched-mc-power-savings
+# sched-smt-power-savings
+# terminal-blanking
+# wireless-ipw-power
+# wireless-iwl-power
+# wireless-power
+#
+# Set this to 1 to enable all simple zero-configuration auto modules listed above.
+#
+# NOTE: You can explicitly enable/disable any of the above modules by changing their
+# values in the individual settings file
+#
+ENABLE_AUTO_MODULES=1
+
+
+
+###############################################################################
+# When to enable data loss sensitive features
+# -------------------------------------------
+#
+# When data loss sensitive features are disabled, laptop mode tools acts as if
+# laptop mode were disabled, for those features only.
+#
+# Data loss sensitive features include:
+# - laptop_mode (i.e., delayed writes)
+# - hard drive write cache
+#
+# All of the options that follow can be set to 0 in order to prevent laptop
+# mode tools from using them to stop data loss sensitive features. Use this
+# when you have a battery that reports the wrong information, that confuses
+# laptop mode tools.
+#
+# Disabling data loss sensitive features is ACPI-ONLY, and it only works if
+# your battery gives off frequent ACPI events to indicate a change in battery
+# level.
+#
+# NOTE: If your battery does NOT give off battery events often enough, you can
+# enable the battery-level-polling module to make this work. Look at the
+# file /etc/laptop-mode/conf.d/battery-level-polling.conf for more information.
+#
+###############################################################################
+
+
+#
+# Disable all data loss sensitive features when the battery level (in % of the
+# battery capacity) reaches this value.
+#
+MINIMUM_BATTERY_CHARGE_PERCENT=3
+
+
+#
+# Disable data loss sensitive features when the battery reports its state
+# as "critical".
+#
+DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL=1
+
+
+#
+# Ignore the alarm value reported by your batteries. In some instances a
+# a battery will report an abnormally high alarm value, resulting in data-loss
+# sensitive features being disabled prematurely.
+#
+DISABLE_BATTERY_ALARM_CHECK=0
+
+
+###############################################################################
+# Controlled hard drives and partitions
+# -------------------------------------
+#
+# For spinning down your hard drives, laptop mode will remount file systems and
+# adjust hard drive spindown timeouts. These parameters specify which
+# devices and partitions are affected by laptop mode.
+###############################################################################
+
+
+#
+# The drives that laptop mode controls.
+# Separate them by a space, e.g. HD="/dev/hda /dev/hdb". The default is a
+# wildcard, which will get you all your IDE and SCSI/SATA drives.
+#
+HD="/dev/[hs]d[abcdefgh]"
+
+
+#
+# The partitions (or mount points) that laptop mode controls.
+# Separate the values by spaces. Use "auto" to indicate all partitions on drives
+# listed in HD. You can add things to "auto", e.g. "auto /dev/hdc3". You can
+# also specify mount points, e.g. "/mnt/data".
+#
+PARTITIONS="auto /dev/mapper/* /dev/dm-*"
+
+
+#
+# If this is enabled, laptop mode tools will assume that SCSI drives are
+# really SATA drives that only _look_ like SCSI drives, and will use hdparm
+# to control them. Set this to 0 if you have /dev/sd devices and you want
+# laptop mode tools to use the "sdparm" command to control them. 
+#
+ASSUME_SCSI_IS_SATA=1
+
+
+###############################################################################
+# Hard drive behaviour settings
+# -----------------------------
+#
+# These settings specify how laptop mode tools will adjust the various
+# parameters of your hard drives and file systems.
+###############################################################################
+
+
+#
+# Maximum time, in seconds, of work that you are prepared to lose when your
+# system crashes or power runs out. This is the maximum time that Laptop Mode
+# will keep unsaved data waiting in memory before spinning up your hard drive.
+#
+LM_BATT_MAX_LOST_WORK_SECONDS=600
+LM_AC_MAX_LOST_WORK_SECONDS=360
+
+
+#
+# Should laptop mode tools control readahead?
+#
+CONTROL_READAHEAD=1
+
+
+#
+# Read-ahead, in kilobytes. You can spin down the disk while playing MP3/OGG
+# by setting the disk readahead to a reasonable size, e.g. 3072 (3 MB).
+# Effectively, the disk will read a complete MP3 at once, and will then spin 
+# down while the MP3/OGG is playing. Don't set this too high, because the 
+# readahead is applied to _all_ files that are read from disk.
+#
+LM_READAHEAD=3072
+NOLM_READAHEAD=128
+
+
+#
+# Should laptop mode tools add the "noatime" option to the mount options when 
+# laptop mode is enabled?
+#
+CONTROL_NOATIME=0
+
+# Should laptop use relatime instead of noatime? The "relatime" mount option has
+# more standards-compliant semantics, and allows more applications to work,
+# while retaining a low level of atime updates (i.e., disk writes).
+USE_RELATIME=1
+
+
+#
+# Should laptop mode tools control the hard drive idle timeout settings?
+#
+CONTROL_HD_IDLE_TIMEOUT=1
+
+
+#
+# Idle timeout values. (hdparm -S)
+# Default is 2 hours on AC (NOLM_HD_IDLE_TIMEOUT_SECONDS=7200) and 20 seconds
+# for battery and for AC with laptop mode on.
+#
+LM_AC_HD_IDLE_TIMEOUT_SECONDS=20
+LM_BATT_HD_IDLE_TIMEOUT_SECONDS=20
+NOLM_HD_IDLE_TIMEOUT_SECONDS=7200
+
+
+#
+# Should laptop mode tools control the hard drive power management settings?
+#
+# Set to 0 to disable
+CONTROL_HD_POWERMGMT="0"
+
+
+#
+# Power management for HD (hdparm -B values)
+#
+BATT_HD_POWERMGMT=1
+LM_AC_HD_POWERMGMT=254
+NOLM_AC_HD_POWERMGMT=254
+
+
+#
+# Should laptop mode tools control the hard drive write cache settings?
+#
+CONTROL_HD_WRITECACHE=0
+
+
+#
+# Write cache settings for HD (hdparm -W values)
+#
+NOLM_AC_HD_WRITECACHE=1
+NOLM_BATT_HD_WRITECACHE=0
+LM_HD_WRITECACHE=0
+
+
+
+
+###############################################################################
+# Settings you probably don't want to touch
+# -----------------------------------------
+#
+# It is usually not necessary to change these parameters. They are included
+# for completeness' sake.
+###############################################################################
+
+
+#
+# Change mount options on partitions in PARTITIONS? You don't really want to
+# disable this. If you do, then your hard drives will probably not spin down
+# anymore.
+#
+CONTROL_MOUNT_OPTIONS=1
+
+
+#
+# Dirty synchronous ratio.  At this percentage of dirty pages the process
+# which calls write() does its own writeback.
+#
+LM_DIRTY_RATIO=60
+NOLM_DIRTY_RATIO=40
+
+
+#
+# Allowed dirty background ratio, in percent.  Once DIRTY_RATIO has been
+# exceeded, the kernel will wake pdflush which will then reduce the amount
+# of dirty memory to dirty_background_ratio.  Set this nice and low, so once
+# some writeout has commenced, we do a lot of it.
+#
+LM_DIRTY_BACKGROUND_RATIO=1
+NOLM_DIRTY_BACKGROUND_RATIO=10
+
+
+#
+# kernel default settings -- don't touch these unless you know what you're 
+# doing.
+#
+DEF_UPDATE=5
+DEF_XFS_AGE_BUFFER=15
+DEF_XFS_SYNC_INTERVAL=30
+DEF_XFS_BUFD_INTERVAL=1
+DEF_MAX_AGE=30
+
+
+#
+# This must be adjusted manually to the value of HZ in the running kernel
+# on 2.4, until the XFS people change their 2.4 external interfaces to work in
+# centisecs. This can be automated, but it's a work in progress that still
+# needs some fixes. On 2.6 kernels, XFS uses USER_HZ instead of HZ for
+# external interfaces, and that is currently always set to 100. So you don't
+# need to change this on 2.6.
+#
+XFS_HZ=100
+
+
+#
+# Seconds laptop mode has to to wait after the disk goes idle before doing
+# a sync.
+#
+LM_SECONDS_BEFORE_SYNC=2
+
+
diff --git a/etc/locale.gen b/etc/locale.gen
new file mode 100644
index 0000000..0077658
--- /dev/null
+++ b/etc/locale.gen
@@ -0,0 +1,9 @@
+C.UTF8 UTF-8
+en_US ISO-8859-1
+en_US.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ja_JP.UTF-8 UTF-8
+ru_RU ISO-8859-5
+ru_RU.KOI8-R KOI8-R
+ru_RU.UTF-8 UTF-8
+tt_RU UTF-8
diff --git a/etc/login.defs b/etc/login.defs
new file mode 100644
index 0000000..b5ba765
--- /dev/null
+++ b/etc/login.defs
@@ -0,0 +1,500 @@
+#
+# /etc/login.defs - Configuration control definitions for the shadow package.
+#
+#	$Id$
+#
+
+#
+# Delay in seconds before being allowed another attempt after a login failure
+# Note: When PAM is used, some modules may enforce a minimum delay (e.g.
+#       pam_unix(8) enforces a 2s delay)
+#
+FAIL_DELAY		0
+
+#
+# Enable logging and display of /var/log/faillog login(1) failure info.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#FAILLOG_ENAB		yes
+
+#
+# Enable display of unknown usernames when login(1) failures are recorded.
+#
+LOG_UNKFAIL_ENAB	no
+
+#
+# Enable logging of successful logins
+#
+LOG_OK_LOGINS		no
+
+#
+# Enable logging and display of /var/log/lastlog login(1) time info.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#LASTLOG_ENAB		yes
+
+#
+# Limit the highest user ID number for which the lastlog entries should
+# be updated.
+#
+# No LASTLOG_UID_MAX means that there is no user ID limit for writing
+# lastlog entries.
+#
+#LASTLOG_UID_MAX
+
+#
+# Enable checking and display of mailbox status upon login.
+#
+# Disable if the shell startup files already check for mail
+# ("mailx -e" or equivalent).
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#MAIL_CHECK_ENAB		yes
+
+#
+# Enable additional checks upon password changes.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#OBSCURE_CHECKS_ENAB	yes
+
+#
+# Enable checking of time restrictions specified in /etc/porttime.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#PORTTIME_CHECKS_ENAB	yes
+
+#
+# Enable setting of ulimit, umask, and niceness from passwd(5) gecos field.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#QUOTAS_ENAB		yes
+
+#
+# Enable "syslog" logging of su(1) activity - in addition to sulog file logging.
+# SYSLOG_SG_ENAB does the same for newgrp(1) and sg(1).
+#
+SYSLOG_SU_ENAB		yes
+SYSLOG_SG_ENAB		yes
+
+#
+# If defined, either full pathname of a file containing device names or
+# a ":" delimited list of device names.  Root logins will be allowed only
+# from these devices.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#CONSOLE		/etc/securetty
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#CONSOLE	console:tty01:tty02:tty03:tty04
+
+#
+# If defined, all su(1) activity is logged to this file.
+#
+#SULOG_FILE	/var/log/sulog
+
+#
+# If defined, ":" delimited list of "message of the day" files to
+# be displayed upon login.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#MOTD_FILE	/etc/motd
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#MOTD_FILE	/etc/motd:/usr/lib/news/news-motd
+
+#
+# If defined, this file will be output before each login(1) prompt.
+#
+#ISSUE_FILE	/etc/issue
+
+#
+# If defined, file which maps tty line to TERM environment parameter.
+# Each line of the file is in a format similar to "vt100  tty01".
+#
+#TTYTYPE_FILE	/etc/ttytype
+
+#
+# If defined, login(1) failures will be logged here in a utmp format.
+# last(1), when invoked as lastb(1), will read /var/log/btmp, so...
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#FTMP_FILE	/var/log/btmp
+
+#
+# If defined, name of file whose presence will inhibit non-root
+# logins.  The content of this file should be a message indicating
+# why logins are inhibited.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#NOLOGINS_FILE	/etc/nologin
+
+#
+# If defined, the command name to display when running "su -".  For
+# example, if this is defined as "su" then ps(1) will display the
+# command as "-su".  If not defined, then ps(1) will display the
+# name of the shell actually being run, e.g. something like "-sh".
+#
+SU_NAME		su
+
+#
+# *REQUIRED*
+#   Directory where mailboxes reside, _or_ name of file, relative to the
+#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
+#
+MAIL_DIR	/var/spool/mail
+#MAIL_FILE	.mail
+
+#
+# If defined, file which inhibits all the usual chatter during the login
+# sequence.  If a full pathname, then hushed mode will be enabled if the
+# user's name or shell are found in the file.  If not a full pathname, then
+# hushed mode will be enabled if the file exists in the user's home directory.
+#
+HUSHLOGIN_FILE	.hushlogin
+#HUSHLOGIN_FILE	/etc/hushlogins
+
+#
+# If defined, either a TZ environment parameter spec or the
+# fully-rooted pathname of a file containing such a spec.
+#
+#ENV_TZ		TZ=CST6CDT
+#ENV_TZ		/etc/tzname
+
+#
+# If defined, an HZ environment parameter spec.
+#
+# for Linux/x86
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#ENV_HZ		HZ=100
+# For Linux/Alpha...
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#ENV_HZ		HZ=1024
+
+#
+# *REQUIRED*  The default PATH settings, for superuser and normal users.
+#
+# (they are minimal, add the rest in the shell startup files)
+ENV_SUPATH	PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ENV_PATH	PATH=/bin:/usr/bin
+
+#
+# Terminal permissions
+#
+#	TTYGROUP	Login tty will be assigned this group ownership.
+#	TTYPERM		Login tty will be set to this permission.
+#
+# If you have a write(1) program which is "setgid" to a special group
+# which owns the terminals, define TTYGROUP as the number of such group
+# and TTYPERM as 0620.  Otherwise leave TTYGROUP commented out and
+# set TTYPERM to either 622 or 600.
+#
+TTYGROUP	tty
+TTYPERM		0600
+
+#
+# Login configuration initializations:
+#
+#	ERASECHAR	Terminal ERASE character ('\010' = backspace).
+#	KILLCHAR	Terminal KILL character ('\025' = CTRL/U).
+#	ULIMIT		Default "ulimit" value.
+#
+# The ERASECHAR and KILLCHAR are used only on System V machines.
+# The ULIMIT is used only if the system supports it.
+# (now it works with setrlimit too; ulimit is in 512-byte units)
+#
+# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
+#
+ERASECHAR	0177
+KILLCHAR	025
+#ULIMIT		2097152
+
+# Default initial "umask" value used by login(1) on non-PAM enabled systems.
+# Default "umask" value for pam_umask(8) on PAM enabled systems.
+# UMASK is also used by useradd(8) and newusers(8) to set the mode for new
+# home directories if HOME_MODE is not set.
+# 022 is the default value, but 027, or even 077, could be considered
+# for increased privacy. There is no One True Answer here: each sysadmin
+# must make up their mind.
+UMASK		022
+
+# HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
+# home directories.
+# If HOME_MODE is not set, the value of UMASK is used to create the mode.
+#HOME_MODE	0700
+
+#
+# Password aging controls:
+#
+#	PASS_MAX_DAYS	Maximum number of days a password may be used.
+#	PASS_MIN_DAYS	Minimum number of days allowed between password changes.
+#	PASS_MIN_LEN	Minimum acceptable password length.
+#	PASS_WARN_AGE	Number of days warning given before a password expires.
+#
+PASS_MAX_DAYS	99999
+PASS_MIN_DAYS	0
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#PASS_MIN_LEN	5
+PASS_WARN_AGE	7
+
+#
+# If "yes", the user must be listed as a member of the first gid 0 group
+# in /etc/group (called "root" on most Linux systems) to be able to "su"
+# to uid 0 accounts.  If the group doesn't exist or is empty, no one
+# will be able to "su" to uid 0.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#SU_WHEEL_ONLY	no
+
+#
+# If compiled with cracklib support, sets the path to the dictionaries
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#CRACKLIB_DICTPATH	/var/cache/cracklib/cracklib_dict
+
+#
+# Min/max values for automatic uid selection in useradd(8)
+#
+UID_MIN			 1000
+UID_MAX			60000
+# System accounts
+SYS_UID_MIN		  101
+SYS_UID_MAX		  999
+# Extra per user uids
+SUB_UID_MIN		   100000
+SUB_UID_MAX		600100000
+SUB_UID_COUNT		    65536
+
+#
+# Min/max values for automatic gid selection in groupadd(8)
+#
+GID_MIN			 1000
+GID_MAX			60000
+# System accounts
+SYS_GID_MIN		  101
+SYS_GID_MAX		  999
+# Extra per user group ids
+SUB_GID_MIN		   100000
+SUB_GID_MAX		600100000
+SUB_GID_COUNT		    65536
+
+#
+# Max number of login(1) retries if password is bad
+#
+LOGIN_RETRIES		5
+
+#
+# Max time in seconds for login(1)
+#
+LOGIN_TIMEOUT		60
+
+#
+# Maximum number of attempts to change password if rejected (too easy)
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#PASS_CHANGE_TRIES	5
+
+#
+# Warn about weak passwords (but still allow them) if you are root.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#PASS_ALWAYS_WARN	yes
+
+#
+# Number of significant characters in the password for crypt().
+# Default is 8, don't change unless your crypt() is better.
+# Ignored if MD5_CRYPT_ENAB set to "yes".
+#
+#PASS_MAX_LEN		8
+
+#
+# Require password before chfn(1)/chsh(1) can make any changes.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#CHFN_AUTH		yes
+
+#
+# Which fields may be changed by regular users using chfn(1) - use
+# any combination of letters "frwh" (full name, room number, work
+# phone, home phone).  If not defined, no changes are allowed.
+# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
+#
+CHFN_RESTRICT		rwh
+
+#
+# Password prompt (%s will be replaced by user name).
+#
+# XXX - it doesn't work correctly yet, for now leave it commented out
+# to use the default which is just "Password: ".
+#LOGIN_STRING		"%s's Password: "
+
+#
+# Only works if compiled with MD5_CRYPT defined:
+# If set to "yes", new passwords will be encrypted using the MD5-based
+# algorithm compatible with the one used by recent releases of FreeBSD.
+# It supports passwords of unlimited length and longer salt strings.
+# Set to "no" if you need to copy encrypted passwords to other systems
+# which don't understand the new algorithm.  Default is "no".
+#
+# Note: If you use PAM, it is recommended to use a value consistent with
+# the PAM modules configuration.
+#
+# This variable is deprecated. You should use ENCRYPT_METHOD instead.
+#
+#MD5_CRYPT_ENAB	no
+
+#
+# Only works if compiled with ENCRYPTMETHOD_SELECT defined:
+# If set to MD5, MD5-based algorithm will be used for encrypting password
+# If set to SHA256, SHA256-based algorithm will be used for encrypting password
+# If set to SHA512, SHA512-based algorithm will be used for encrypting password
+# If set to BCRYPT, BCRYPT-based algorithm will be used for encrypting password
+# If set to YESCRYPT, YESCRYPT-based algorithm will be used for encrypting password
+# If set to DES, DES-based algorithm will be used for encrypting password (default)
+# MD5 and DES should not be used for new hashes, see crypt(5) for recommendations.
+# Overrides the MD5_CRYPT_ENAB option
+#
+# Note: If you use PAM, it is recommended to use a value consistent with
+# the PAM modules configuration.
+#
+#ENCRYPT_METHOD DES
+
+#
+# Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
+#
+# Define the number of SHA rounds.
+# With a lot of rounds, it is more difficult to brute-force the password.
+# However, more CPU resources will be needed to authenticate users if
+# this value is increased.
+#
+# If not specified, the libc will choose the default number of rounds (5000),
+# which is orders of magnitude too low for modern hardware.
+# The values must be within the 1000-999999999 range.
+# If only one of the MIN or MAX values is set, then this value will be used.
+# If MIN > MAX, the highest value will be used.
+#
+#SHA_CRYPT_MIN_ROUNDS 5000
+#SHA_CRYPT_MAX_ROUNDS 5000
+
+#
+# Only works if ENCRYPT_METHOD is set to BCRYPT.
+#
+# Define the number of BCRYPT rounds.
+# With a lot of rounds, it is more difficult to brute-force the password.
+# However, more CPU resources will be needed to authenticate users if
+# this value is increased.
+#
+# If not specified, 13 rounds will be attempted.
+# If only one of the MIN or MAX values is set, then this value will be used.
+# If MIN > MAX, the highest value will be used.
+#
+#BCRYPT_MIN_ROUNDS 13
+#BCRYPT_MAX_ROUNDS 13
+
+#
+# Only works if ENCRYPT_METHOD is set to YESCRYPT.
+#
+# Define the YESCRYPT cost factor.
+# With a higher cost factor, it is more difficult to brute-force the password.
+# However, more CPU time and more memory will be needed to authenticate users
+# if this value is increased.
+#
+# If not specified, a cost factor of 5 will be used.
+# The value must be within the 1-11 range.
+#
+#YESCRYPT_COST_FACTOR 5
+
+#
+# List of groups to add to the user's supplementary group set
+# when logging in from the console (as determined by the CONSOLE
+# setting).  Default is none.
+#
+# Use with caution - it is possible for users to gain permanent
+# access to these groups, even when not logged in from the console.
+# How to do it is left as an exercise for the reader...
+#
+#CONSOLE_GROUPS		floppy:audio:cdrom
+
+#
+# Should login be allowed if we can't cd to the home directory?
+# Default is no.
+#
+DEFAULT_HOME	yes
+
+#
+# The pwck(8) utility emits a warning for any system account with a home
+# directory that does not exist.  Some system accounts intentionally do
+# not have a home directory.  Such accounts may have this string as
+# their home directory in /etc/passwd to avoid a spurious warning.
+#
+NONEXISTENT	/nonexistent
+
+#
+# If this file exists and is readable, login environment will be
+# read from it.  Every line should be in the form name=value.
+#
+# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.
+#ENVIRON_FILE	/etc/environment
+
+#
+# If defined, this command is run when removing a user.
+# It should remove any at/cron/print jobs etc. owned by
+# the user to be removed (passed as the first argument).
+#
+#USERDEL_CMD	/usr/sbin/userdel_local
+
+#
+# Enable setting of the umask group bits to be the same as owner bits
+# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is
+# the same as gid, and username is the same as the primary group name.
+#
+# This also enables userdel(8) to remove user groups if no members exist.
+#
+USERGROUPS_ENAB yes
+
+#
+# If set to a non-zero number, the shadow utilities will make sure that
+# groups never have more than this number of users on one line.
+# This permits to support split groups (groups split into multiple lines,
+# with the same group ID, to avoid limitation of the line length in the
+# group file).
+#
+# 0 is the default value and disables this feature.
+#
+#MAX_MEMBERS_PER_GROUP	0
+
+#
+# If useradd(8) should create home directories for users by default (non
+# system users only).
+# This option is overridden with the -M or -m flags on the useradd(8)
+# command-line.
+#
+CREATE_HOME yes
+
+#
+# Force use shadow, even if shadow passwd & shadow group files are
+# missing.
+#
+#FORCE_SHADOW    yes
+
+#
+# Allow newuidmap and newgidmap when running under an alternative
+# primary group.
+#
+#GRANT_AUX_GROUP_SUBIDS yes
+
+#
+# Prevents an empty password field to be interpreted as "no authentication
+# required".
+# Set to "yes" to prevent for all accounts
+# Set to "superuser" to prevent for UID 0 / root (default)
+# Set to "no" to not prevent for any account (dangerous, historical default)
+
+PREVENT_NO_AUTH superuser
+
+#
+# Select the HMAC cryptography algorithm.
+# Used in pam_timestamp module to calculate the keyed-hash message
+# authentication code.
+#
+# Note: It is recommended to check hmac(3) to see the possible algorithms
+# that are available in your system.
+#
+#HMAC_CRYPTO_ALGO SHA512
diff --git a/etc/logrotate.conf b/etc/logrotate.conf
new file mode 100644
index 0000000..d25e023
--- /dev/null
+++ b/etc/logrotate.conf
@@ -0,0 +1,42 @@
+#
+# Default logrotate(8) configuration file for Gentoo Linux.
+# See "man logrotate" for details.
+
+# rotate log files weekly.
+weekly
+#daily
+
+# keep 4 weeks worth of backlogs.
+rotate 4
+
+# create new (empty) log files after rotating old ones.
+create
+
+# use date as a suffix of the rotated file.
+dateext
+
+# compress rotated log files.
+compress
+
+notifempty
+nomail
+noolddir
+
+# packages can drop log rotation information into this directory.
+include /etc/logrotate.d
+
+# no packages own wtmp and btmp -- we'll rotate them here.
+/var/log/wtmp {
+    monthly
+    create 0664 root utmp
+    minsize 1M
+    rotate 1
+}
+/var/log/btmp {
+    missingok
+    monthly
+    create 0600 root utmp
+    rotate 1
+}
+
+# system-specific logs may also be configured here.
diff --git a/etc/logrotate.d/elog-save-summary b/etc/logrotate.d/elog-save-summary
new file mode 100644
index 0000000..f2cfc66
--- /dev/null
+++ b/etc/logrotate.d/elog-save-summary
@@ -0,0 +1,10 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Rotate the log created by the save_summary elog module.
+
+/var/log/portage/elog/summary.log {
+    su portage portage
+    missingok
+    nocreate
+    delaycompress
+}
diff --git a/etc/logrotate.d/mpd b/etc/logrotate.d/mpd
new file mode 100644
index 0000000..597c4fb
--- /dev/null
+++ b/etc/logrotate.d/mpd
@@ -0,0 +1,9 @@
+/var/lib/mpd/log {
+	missingok
+	weekly
+	delaycompress
+	compress
+	postrotate
+	/etc/init.d/mpd --quiet reload
+	endscript
+}
diff --git a/etc/logrotate.d/openrc b/etc/logrotate.d/openrc
new file mode 100644
index 0000000..5e5e64b
--- /dev/null
+++ b/etc/logrotate.d/openrc
@@ -0,0 +1,4 @@
+/var/log/rc.log {
+	missingok
+	notifempty
+}
diff --git a/etc/logrotate.d/rsyncd b/etc/logrotate.d/rsyncd
new file mode 100644
index 0000000..ec8a982
--- /dev/null
+++ b/etc/logrotate.d/rsyncd
@@ -0,0 +1,9 @@
+/var/log/rsync.log {
+	compress
+	maxage 365
+	rotate 7
+	size 1024k
+	notifempty
+	missingok
+	copytruncate
+}
diff --git a/etc/logrotate.d/syslog-ng b/etc/logrotate.d/syslog-ng
new file mode 100644
index 0000000..8bf2f39
--- /dev/null
+++ b/etc/logrotate.d/syslog-ng
@@ -0,0 +1,83 @@
+#
+# Syslog-ng logrotate snippet for Hardened Gentoo Linux
+# contributed by Maciej Grela
+#
+# Updated bug #284669
+
+# Generic
+/var/log/debug /var/log/syslog /var/log/kern.log {
+    delaycompress
+    sharedscripts
+    missingok
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# System services
+/var/log/cron.log /var/log/daemon.log /var/log/lpr.log /var/log/uucp.log {
+    delaycompress
+    sharedscripts
+    missingok
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# User log
+/var/log/user.log {
+    delaycompress
+    sharedscripts
+    missingok
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# News system
+/var/log/news/news.crit /var/log/news/news.err /var/log/news/news.notice {
+    delaycompress
+    sharedscripts
+    missingok
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# Mail system
+/var/log/mail.log /var/log/mail.info /var/log/mail.err /var/log/mail.warn {
+    delaycompress
+    sharedscripts
+    missingok
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# Hardened logs
+/var/log/avc.log /var/log/audit.log /var/log/pax.log /var/log/grsec.log {
+    delaycompress
+    sharedscripts
+    missingok
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# Authentication
+/var/log/auth.log {
+    delaycompress
+    sharedscripts
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
+
+# the rest
+/var/log/messages {
+    delaycompress
+    sharedscripts
+    postrotate
+        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
+    endscript
+}
diff --git a/etc/modprobe.d/aliases.conf b/etc/modprobe.d/aliases.conf
new file mode 100644
index 0000000..202a93b
--- /dev/null
+++ b/etc/modprobe.d/aliases.conf
@@ -0,0 +1,42 @@
+# Aliases to tell insmod/modprobe which modules to use 
+
+# Uncomment the network protocols you don't want loaded:
+# alias net-pf-1 off		# Unix
+# alias net-pf-2 off		# IPv4
+# alias net-pf-3 off		# Amateur Radio AX.25
+# alias net-pf-4 off		# IPX
+# alias net-pf-5 off		# DDP / appletalk
+# alias net-pf-6 off		# Amateur Radio NET/ROM
+# alias net-pf-9 off		# X.25
+# alias net-pf-10 off		# IPv6
+# alias net-pf-11 off		# ROSE / Amateur Radio X.25 PLP
+# alias net-pf-19 off		# Acorn Econet
+
+alias char-major-10-175	agpgart
+alias char-major-10-200	tun
+alias char-major-81	bttv
+alias char-major-108	ppp_generic
+alias /dev/ppp		ppp_generic
+alias tty-ldisc-3	ppp_async
+alias tty-ldisc-14	ppp_synctty
+alias ppp-compress-21	bsd_comp
+alias ppp-compress-24	ppp_deflate
+alias ppp-compress-26	ppp_deflate
+
+# Crypto modules
+alias loop-xfer-gen-0	loop_gen
+alias loop-xfer-3	loop_fish2
+alias loop-xfer-gen-10	loop_gen
+alias cipher-2		des
+alias cipher-3		fish2
+alias cipher-4		blowfish
+alias cipher-6		idea
+alias cipher-7		serp6f
+alias cipher-8		mars6
+alias cipher-11		rc62
+alias cipher-15		dfc2
+alias cipher-16		rijndael
+alias cipher-17		rc5
+
+# Support for i2c and lm_sensors
+alias char-major-89    i2c-dev
diff --git a/etc/modprobe.d/alsa.conf b/etc/modprobe.d/alsa.conf
new file mode 100644
index 0000000..40e99df
--- /dev/null
+++ b/etc/modprobe.d/alsa.conf
@@ -0,0 +1,38 @@
+# Alsa kernel modules' configuration file.
+
+# ALSA portion
+alias char-major-116 snd
+# OSS/Free portion
+alias char-major-14 soundcore
+
+##
+## IMPORTANT:
+## You need to customise this section for your specific sound card(s)
+## and then run `update-modules' command.
+## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
+##
+##  ALSA portion
+## alias snd-card-0 snd-interwave
+## alias snd-card-1 snd-ens1371
+##  OSS/Free portion
+## alias sound-slot-0 snd-card-0
+## alias sound-slot-1 snd-card-1
+##
+
+# OSS/Free portion - card #1
+alias sound-service-0-0 snd-mixer-oss
+alias sound-service-0-1 snd-seq-oss
+alias sound-service-0-3 snd-pcm-oss
+alias sound-service-0-8 snd-seq-oss
+alias sound-service-0-12 snd-pcm-oss
+##  OSS/Free portion - card #2
+## alias sound-service-1-0 snd-mixer-oss
+## alias sound-service-1-3 snd-pcm-oss
+## alias sound-service-1-12 snd-pcm-oss
+
+alias /dev/mixer snd-mixer-oss
+alias /dev/dsp snd-pcm-oss
+alias /dev/midi snd-seq-oss
+
+# Set this to the correct number of cards.
+options snd cards_limit=1
diff --git a/etc/modprobe.d/blacklist.conf b/etc/modprobe.d/blacklist.conf
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/etc/modprobe.d/blacklist.conf
@@ -0,0 +1 @@
+
diff --git a/etc/modprobe.d/i386.conf b/etc/modprobe.d/i386.conf
new file mode 100644
index 0000000..b89459f
--- /dev/null
+++ b/etc/modprobe.d/i386.conf
@@ -0,0 +1,4 @@
+alias parport_lowlevel parport_pc
+alias char-major-10-144 nvram
+alias binfmt-0064 binfmt_aout
+alias char-major-10-135 rtc
diff --git a/etc/modprobe.d/iwlwifi.conf b/etc/modprobe.d/iwlwifi.conf
new file mode 100644
index 0000000..c920c66
--- /dev/null
+++ b/etc/modprobe.d/iwlwifi.conf
@@ -0,0 +1 @@
+options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8
diff --git a/etc/modprobe.d/thinkpad.conf b/etc/modprobe.d/thinkpad.conf
new file mode 100644
index 0000000..4c68376
--- /dev/null
+++ b/etc/modprobe.d/thinkpad.conf
@@ -0,0 +1,2 @@
+options snd-hda-intel model=thinkpad
+options thinkpad_acpi fan_control=1
diff --git a/etc/modules-load.d/acpi.conf b/etc/modules-load.d/acpi.conf
new file mode 100644
index 0000000..7dbc900
--- /dev/null
+++ b/etc/modules-load.d/acpi.conf
@@ -0,0 +1 @@
+acpi_call
diff --git a/etc/modules-load.d/thinkpad.conf b/etc/modules-load.d/thinkpad.conf
new file mode 100644
index 0000000..7cf3288
--- /dev/null
+++ b/etc/modules-load.d/thinkpad.conf
@@ -0,0 +1,2 @@
+thinkpad_ec
+tp_smapi
diff --git a/etc/mpd.conf b/etc/mpd.conf
new file mode 100644
index 0000000..d8047bc
--- /dev/null
+++ b/etc/mpd.conf
@@ -0,0 +1,58 @@
+music_directory         "/var/lib/mpd/music"
+
+playlist_directory      "/var/lib/mpd/playlists"
+
+log_level               "default"
+log_file                "/dev/null"
+
+pid_file                "/var/lib/mpd/mpd.pid"
+
+state_file              "/var/lib/mpd/state"
+state_file_interval     "60"
+
+sticker_file            "/var/lib/mpd/sticker.db"
+
+restore_paused          "yes"
+
+user                    "mpd"
+group                   "audio"
+
+auto_update             "no"
+
+follow_outside_symlinks "yes"
+follow_inside_symlinks  "yes"
+
+replaygain              "album"
+replaygain_preamp       "0"
+replaygain_limit        "yes"
+
+volume_normalization    "no"
+
+filesystem_charset      "UTF-8"
+
+bind_to_address         "/var/lib/mpd/mpd.socket"
+#bind_to_address         "localhost"
+#port                    "6600"
+
+connection_timeout      "10"
+max_connections         "10"
+max_playlist_length     "2048"
+max_command_list_size   "2048"
+max_output_buffer_size  "8192"
+
+zeroconf_enabled        "no"
+
+database {
+    plugin              "simple"
+    path                "/var/lib/mpd/database.gz"
+    compress            "yes"
+}
+
+audio_output {
+    type                "alsa"
+    name                "ALSA"
+    mixer_type          "software"
+    mixer_control       "PCM"
+}
+
+# vim:filetype=conf
diff --git a/etc/pm/config.d/sleep.d/50_hdparm-pm b/etc/pm/config.d/sleep.d/50_hdparm-pm
new file mode 100755
index 0000000..1082243
--- /dev/null
+++ b/etc/pm/config.d/sleep.d/50_hdparm-pm
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+. "${PM_FUNCTIONS}"
+
+case "$1" in
+    thaw|resume)
+        sleep 2
+        hdparm -B 255 /dev/sdb
+        ;;
+    *)
+        ;;
+esac
+
+exit $NA
diff --git a/etc/pm/config.d/thinkpad_acpi b/etc/pm/config.d/thinkpad_acpi
new file mode 100644
index 0000000..6e1ed62
--- /dev/null
+++ b/etc/pm/config.d/thinkpad_acpi
@@ -0,0 +1 @@
+SUSPEND_MODULES="thinkpad_acpi"
diff --git a/etc/portage/env/ccache.conf b/etc/portage/env/ccache.conf
new file mode 100644
index 0000000..70e42c0
--- /dev/null
+++ b/etc/portage/env/ccache.conf
@@ -0,0 +1,3 @@
+CCACHE_DIR="/var/cache/ccache"
+CCACHE_SIZE="8G"
+FEATURES="${FEATURES} ccache"
diff --git a/etc/portage/env/debug.conf b/etc/portage/env/debug.conf
new file mode 100644
index 0000000..c8c8d83
--- /dev/null
+++ b/etc/portage/env/debug.conf
@@ -0,0 +1,3 @@
+CFLAGS="${CFLAGS} -ggdb"
+CXXFLAGS="${CXXFLAGS} -ggdb"
+FEATURES="${FEATURES} installsources splitdebug -nostrip compressdebug"
diff --git a/etc/portage/env/gcc.conf b/etc/portage/env/gcc.conf
new file mode 100644
index 0000000..43cc122
--- /dev/null
+++ b/etc/portage/env/gcc.conf
@@ -0,0 +1,5 @@
+AR="gcc-ar"
+CC="gcc"
+CXX="g++"
+NM="gcc-nm"
+RANLIB="gcc-ranlib"
diff --git a/etc/portage/env/llvm.conf b/etc/portage/env/llvm.conf
new file mode 100644
index 0000000..f2571ff
--- /dev/null
+++ b/etc/portage/env/llvm.conf
@@ -0,0 +1,7 @@
+AR="llvm-ar"
+CC="clang"
+CXX="clang++"
+CXXFLAGS="${CXXFLAGS} -stdlib=libc++"
+LDFLAGS="${LDFLAGS} -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind"
+NM="llvm-nm"
+RANLIB="llvm-ranlib"
diff --git a/etc/portage/env/tmp.conf b/etc/portage/env/tmp.conf
new file mode 100644
index 0000000..0d8ade7
--- /dev/null
+++ b/etc/portage/env/tmp.conf
@@ -0,0 +1 @@
+PORTAGE_TMPDIR="/var/tmp"
diff --git a/etc/portage/make.conf b/etc/portage/make.conf
new file mode 100644
index 0000000..104c00a
--- /dev/null
+++ b/etc/portage/make.conf
@@ -0,0 +1,42 @@
+CFLAGS="-march=native -O2 -pipe"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${FFLAGS}"
+F77FLAGS="${FFLAGS}"
+
+CPU_FLAGS_X86="avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ### i5-2520M
+
+MAKEOPTS="-j5"
+
+GENTOO_MIRRORS="https://mirror.yandex.ru/gentoo-distfiles/"
+
+PORTAGE_LOGDIR="/var/log/portage"
+PORTAGE_ELOG_CLASSES="*"
+PORTAGE_ELOG_SYSTEM="echo:warn,error,qa save:*"
+
+PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
+PORTAGE_NICENESS=3
+
+PORTAGE_TMPDIR="/tmp"
+#PORTAGE_TMPDIR="/var/tmp"
+
+EMERGE_DEFAULT_OPTS="--alert=y --ask=y --backtrack=10000 --color=y --ignore-built-slot-operator-deps=y --keep-going=y --quiet-build=y --quiet-fail=y --verbose=y --with-bdeps=y"
+
+CLEAN_DELAY=0
+EMERGE_WARNING_DELAY=0
+
+EBEEP_IGNORE=1
+EPAUSE_IGNORE=1
+
+FEATURES="-assume-digests -binpkg-decompress -binpkg-dostrip -binpkg-logs -binpkg-multi-insatnce -buildpkg -buildsyspkg -candy -case-insensitive-fs -ccache cgroup clean-logs collision-protect -compress-build-logs -compress-index -compressdebug config-protect-if-modified -digest -distcc distlocks -downgrade-backup ebuild-locks fail-clean -fakeroot fixlafiles -force-mirror -force-prefix -getbinpkg -icecream -installsources ipc-sandbox -keeptemp -keepwork -lmirror merge-sync metadata-transfer -mirror multilib-strict network-sandbox -network-sandbox-proxy news -noauto -noclean -nodoc -noinfo -noman -nostrip -notitles parallel-fetch parallel-install pid-sandbox -pkgdir-index-trusted -prelink-checksums preserve-libs protect-owned python-trace qa-unresolved-soname-deps sandbox -sesandbox sfperms sign -skiprocheck split-elog split-log -splitdebug -strict -stricter -suidctl -test -test-fail-continue unknown-features-filter unknown-features-warn -unmerge-backup unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync -webrsync-gpg xattr"
+
+ACCEPT_KEYWORDS="amd64 ~amd64"
+ACCEPT_LICENSE="*"
+
+LC_COLLATE="C"
+LC_CTYPE="C"
+LC_MESSAGES="C"
+
+PAX_MARKINGS="XT"
+
+USE="-*" ### To make my life even more miserable...
diff --git a/etc/portage/make.profile b/etc/portage/make.profile
new file mode 120000
index 0000000..7f2eaa8
--- /dev/null
+++ b/etc/portage/make.profile
@@ -0,0 +1 @@
+../../var/db/repos/gentoo/profiles/default/linux/amd64/17.1/no-multilib
\ No newline at end of file
diff --git a/etc/portage/modules b/etc/portage/modules
new file mode 100644
index 0000000..677b254
--- /dev/null
+++ b/etc/portage/modules
@@ -0,0 +1 @@
+portdbapi.auxdbmodule = portage.cache.sqlite.database
diff --git a/etc/portage/package.accept_keywords/00-misc.conf b/etc/portage/package.accept_keywords/00-misc.conf
new file mode 100644
index 0000000..6ac1d01
--- /dev/null
+++ b/etc/portage/package.accept_keywords/00-misc.conf
@@ -0,0 +1,8 @@
+app-admin/eclean-kernel **
+media-sound/mpdscribble **
+sys-kernel/linux-firmware **
+x11-misc/dmenu **
+x11-misc/slock **
+x11-misc/xgetres **
+x11-terms/st **
+x11-wm/dwm **
diff --git a/etc/portage/package.accept_keywords/10-overlay.conf b/etc/portage/package.accept_keywords/10-overlay.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.accept_keywords/10-overlay.conf
diff --git a/etc/portage/package.accept_keywords/99-auto.conf b/etc/portage/package.accept_keywords/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.accept_keywords/99-auto.conf
diff --git a/etc/portage/package.env/00-misc.conf b/etc/portage/package.env/00-misc.conf
new file mode 100644
index 0000000..4d0f4b1
--- /dev/null
+++ b/etc/portage/package.env/00-misc.conf
@@ -0,0 +1,17 @@
+dev-java/icedtea        tmp.conf
+dev-java/openjdk        tmp.conf
+dev-lang/ghc            tmp.conf
+dev-lang/rust           tmp.conf
+dev-qt/qtwebengine      tmp.conf
+sys-devel/clang         tmp.conf
+sys-devel/gcc           tmp.conf
+sys-devel/llvm          tmp.conf
+
+dev-libs/editline       debug.conf
+dev-libs/libedit        debug.conf
+sys-libs/glibc          debug.conf
+sys-libs/musl           debug.conf
+sys-libs/ncurses        debug.conf
+sys-libs/slang          debug.conf
+x11-libs/libX*          debug.conf
+x11-libs/xcb*           debug.conf
diff --git a/etc/portage/package.env/99-auto.conf b/etc/portage/package.env/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.env/99-auto.conf
diff --git a/etc/portage/package.mask/00-misc.conf b/etc/portage/package.mask/00-misc.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.mask/00-misc.conf
diff --git a/etc/portage/package.mask/50-python.conf b/etc/portage/package.mask/50-python.conf
new file mode 100644
index 0000000..f4336b9
--- /dev/null
+++ b/etc/portage/package.mask/50-python.conf
@@ -0,0 +1,6 @@
+#dev-lang/python:2.7
+dev-lang/python:3.6
+dev-lang/python:3.7
+dev-lang/python:3.8
+#dev-lang/python:3.9
+dev-lang/python:3.10
diff --git a/etc/portage/package.mask/99-auto.conf b/etc/portage/package.mask/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.mask/99-auto.conf
diff --git a/etc/portage/package.unmask/00-misc.conf b/etc/portage/package.unmask/00-misc.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.unmask/00-misc.conf
diff --git a/etc/portage/package.unmask/99-auto.conf b/etc/portage/package.unmask/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.unmask/99-auto.conf
diff --git a/etc/portage/package.use/00-misc-category.conf b/etc/portage/package.use/00-misc-category.conf
new file mode 100644
index 0000000..19d5216
--- /dev/null
+++ b/etc/portage/package.use/00-misc-category.conf
@@ -0,0 +1,73 @@
+*/* L10N: en
+*/* VIDEO_CARDS: intel i915 i965
+*/* acl
+*/* aio
+*/* asm
+*/* caps
+*/* cron
+*/* elogind
+*/* filecaps
+*/* gmp
+*/* http2
+*/* hwdb
+*/* jemalloc
+*/* jumbo-build
+*/* kmod
+*/* libbsd
+*/* logrotate
+*/* lto
+*/* native-extensions
+*/* native-symlinks
+*/* openmp
+*/* openrc
+*/* pam
+*/* pgo
+*/* threads
+*/* udev
+*/* urandom
+*/* xattr
+
+*/* system-av1
+*/* system-binutils
+*/* system-boost
+*/* system-cmark
+*/* system-ffmpeg
+*/* system-harfbuzz
+*/* system-heimdal
+*/* system-icu
+*/* system-ipxe
+*/* system-jpeg
+*/* system-jsoncpp
+*/* system-lcms
+*/* system-leveldb
+*/* system-libcxx
+*/* system-libevent
+*/* system-libvpx
+*/* system-libyaml
+*/* system-llvm
+*/* system-lua
+*/* system-lz4
+*/* system-mathjax
+*/* system-mesa
+*/* system-numpy
+*/* system-python
+*/* system-qemu
+*/* system-seabios
+*/* system-sqlite
+*/* system-ssl
+*/* system-tbb
+*/* system-webp
+*/* system-zlib
+
+media-*/*       alsa
+
+media-fonts/*   X
+media-libs/*    X
+x11-*/*         X xinerama
+
+app-dicts/*     L10N: en en-US en-GB ja la ru tt
+app-i18n/*      L10N: en en-US en-GB ja la ru tt
+media-fonts/*   L10N: *
+
+net-*/*         ipv6 ssl
+www-*/*         ipv6 ssl
diff --git a/etc/portage/package.use/05-misc-virtual.conf b/etc/portage/package.use/05-misc-virtual.conf
new file mode 100644
index 0000000..bde2b60
--- /dev/null
+++ b/etc/portage/package.use/05-misc-virtual.conf
@@ -0,0 +1,2 @@
+virtual/* -*
+virtual/* ABI_X86: 64
diff --git a/etc/portage/package.use/10-misc-package.conf b/etc/portage/package.use/10-misc-package.conf
new file mode 100644
index 0000000..640dd52
--- /dev/null
+++ b/etc/portage/package.use/10-misc-package.conf
@@ -0,0 +1,80 @@
+app-admin/doas persist
+app-admin/eclean-kernel zstd
+app-admin/pass X dmenu git
+app-admin/pass-otp qrcode
+app-arch/alien bzip2
+app-arch/dpkg bzip2
+app-arch/pigz symlink
+app-arch/rpm zstd
+app-arch/tar minimal
+app-arch/xz-utils extra-filters
+app-crypt/gnupg bzip2 readline ssl user-socket tofu
+app-crypt/p11-kit asn1 trust
+app-crypt/pinentry ncurses
+app-laptop/laptop-mode-tools acpi
+app-misc/abduco savedconfig
+app-misc/ca-certificates cacert
+app-portage/eix sqlite
+app-portage/gemato gpg
+app-portage/portage-utils qmanifest qtegrity
+app-shells/fzy savedconfig
+app-shells/zsh unicode
+app-text/aspell L10N: en ru
+app-text/editorconfig-core-c cli
+app-text/hunspell L10N: en ru
+app-text/mupdf X
+media-gfx/imv X gif jpeg png
+media-gfx/sxiv exif gif jpeg png savedconfig
+media-sound/alsa-utils ncurses
+media-sound/mpd flac id3tag mpg123 sqlite unicode zlib
+media-video/ffmpeg X bzip2 chromium dav1d encode fdk fontconfig gpl hardcoded-tables vorbis libass libdrm librtmp libxml2 lzma libv4l mp3 network opus opengl openssl theora v4l vaapi vpx x264 x265 xvid zlib
+media-video/mpv X archive drm egl cli gbm jpeg lcms libass opengl tools vaapi zlib
+media-video/rtmpdump ssl
+net-analyzer/tcpdump drop-root
+net-firewall/iptables conntrack netlink nftables pcap
+net-fs/nfs-utils libmount
+net-misc/aria2 bittorrent libuv libxml2
+net-misc/curl alt-svc brotli hsts openssl zstd CURL_SSL: openssl
+net-misc/freerdp X
+net-misc/mosh client
+net-misc/openssh X hpn scp
+net-misc/rsync xxhash zstd
+net-vpn/openvpn down-root lzo openssl plugins
+net-vpn/wireguard-tools wg-quick
+net-wireless/aircrack-ng airdrop-ng airgraph-ng experimental netlink sqlite
+net-wireless/iwd client
+sys-apps/busybox ipv6
+sys-apps/dbus X
+sys-apps/debianutils installkernel
+sys-apps/ethtool netlink
+sys-apps/hwids net pci usb
+sys-apps/hwloc X cpuid libudev netloc pci xml
+sys-apps/iproute2 iptables ipv6
+sys-apps/man-db manpager
+sys-apps/net-tools arp hostname ipv6
+sys-apps/openrc netifrc
+sys-apps/portage gentoo-dev ipc native-extensions rsync-verify
+sys-apps/shadow su
+sys-apps/smartmontools daemon
+sys-apps/util-linux logger
+sys-auth/pambase passwdqc sha512
+sys-firmware/intel-microcode hostonly split-ucode
+sys-fs/btrfs-progs zstd
+sys-fs/cryptsetup openssl
+sys-fs/e2fsprogs fuse
+sys-fs/lvm2 thin
+sys-fs/ntfs3g ntfsprogs
+sys-fs/squashfs-tools* lz4 lzma lzo xz zstd
+sys-fs/squashfs-tools-ng tools
+sys-kernel/genkernel-next cryptsetup
+sys-kernel/linux-firmware redistributable savedconfig
+sys-process/fcron system-crontab
+sys-process/htop hwloc lm-sensors unicode
+sys-process/procps kill ncurses
+x11-base/xorg-drivers INPUT_DEVICES: libinput
+x11-base/xorg-server xorg
+x11-drivers/xf86-video-intel dri sna xvmc
+x11-misc/dmenu savedconfig
+x11-misc/slock savedconfig
+x11-terms/st savedconfig
+x11-wm/dwm savedconfig
diff --git a/etc/portage/package.use/20-emacs.conf b/etc/portage/package.use/20-emacs.conf
new file mode 100644
index 0000000..271fd61
--- /dev/null
+++ b/etc/portage/package.use/20-emacs.conf
@@ -0,0 +1,18 @@
+*/emacs* gui
+
+app-editors/emacs dynamic-loading
+app-editors/emacs gif
+app-editors/emacs harfbuzz
+app-editors/emacs inotify
+app-editors/emacs jpeg
+app-editors/emacs json
+app-editors/emacs libxml2
+app-editors/emacs png
+app-editors/emacs source
+app-editors/emacs ssl
+app-editors/emacs wide-int
+app-editors/emacs xft
+app-editors/emacs xpm
+app-editors/emacs zlib
+
+net-mail/mu emacs
diff --git a/etc/portage/package.use/30-lib-static.conf b/etc/portage/package.use/30-lib-static.conf
new file mode 100644
index 0000000..898ec4c
--- /dev/null
+++ b/etc/portage/package.use/30-lib-static.conf
@@ -0,0 +1,18 @@
+app-arch/bzip2      static-libs
+app-arch/libarchive static-libs
+app-arch/lz4        static-libs
+app-arch/xz-utils   static-libs
+app-arch/zstd       static-libs
+dev-libs/jansson    static-libs
+dev-libs/jemalloc   static-libs
+dev-libs/json-c     static-libs
+dev-libs/libbsd     static-libs
+dev-libs/libedit    static-libs
+dev-libs/libsodium  static-libs
+dev-libs/lzo        static-libs
+net-libs/czmq       static-libs
+net-libs/libnet     static-libs
+net-libs/nghttp2    static-libs
+net-libs/zeromq     static-libs
+net-libs/zmqpp      static-libs
+sys-libs/zlib       static-libs
diff --git a/etc/portage/package.use/30-lib.conf b/etc/portage/package.use/30-lib.conf
new file mode 100644
index 0000000..20bfcff
--- /dev/null
+++ b/etc/portage/package.use/30-lib.conf
@@ -0,0 +1,38 @@
+app-arch/libarchive bzip2 lz4 lzma lzo zlib zstd
+dev-libs/boost bzip2 context icu lzma nls tools zlib zstd
+dev-libs/elfutils bzip2 lzma utils zstd
+dev-libs/glib mime
+dev-libs/gmime crypt
+dev-libs/jemalloc lazy-lock xmalloc
+dev-libs/libpcre jit unicode
+dev-libs/libpcre2 jit pcre16 pcre32 unicode
+dev-libs/libverto libevent
+dev-libs/libxml2 icu
+media-libs/dav1d 10bit 8bit
+media-libs/freetype adobe-cff cleartype_hinting harfbuzz png
+media-libs/gd fontconfig jpeg png truetype zlib
+media-libs/harfbuzz glib graphite icu truetype
+media-libs/imlib2 gif jpeg png
+media-libs/libass harfbuzz fontconfig
+media-libs/libepoxy egl
+media-libs/libsdl2 kms opengl sound video xinerama
+media-libs/libtheora encode
+media-libs/libvpx svc
+media-libs/mesa classic dri3 egl gbm zstd
+media-libs/opencv contrib contribxfeatures2d download features2d jpeg png v4l
+media-libs/opusfile float
+media-libs/sdl2-image gif jpeg png
+media-libs/sdl2-mixer flac mp3 opus vorbis wav
+media-libs/x264 interlaced
+media-libs/x265 10bit 12bit
+net-libs/czmq http-client http-server
+net-libs/libmicrohttpd epoll thread-names
+net-libs/libpcap netlink
+net-libs/zeromq pgm sodium unwind
+sys-libs/libomp hwloc offload ompt
+sys-libs/ncurses unicode
+sys-libs/readline unicode utils
+sys-libs/timezone-data leaps-timezone
+sys-libs/zlib minizip
+x11-libs/libva drm
+x11-libs/libxcb xkb
diff --git a/etc/portage/package.use/40-dev.conf b/etc/portage/package.use/40-dev.conf
new file mode 100644
index 0000000..babdff8
--- /dev/null
+++ b/etc/portage/package.use/40-dev.conf
@@ -0,0 +1,34 @@
+### GNU
+sys-devel/binutils gold plugins
+sys-devel/gcc graphite jit lto nptl pgo sanitize vtv zstd
+sys-devel/gdb client lzma multitarget source-highlight xml xxhash
+sys-devel/gettext git
+sys-libs/glibc static-pie
+
+### LLVM
+*/* LLVM_TARGETS: AArch64 X86
+dev-util/lldb libedit
+sys-devel/clang default-compiler-rt default-libcxx default-lld static-analyzer xml
+sys-devel/clang-runtime compiler-rt libcxx sanitize
+sys-devel/llvm exegesis libedit libffi xar xml
+sys-libs/compiler-rt* clang
+sys-libs/compiler-rt-sanitizers asan cfi dfsan gwp-asan hwasan libfuzzer lsan memprof msan profile safestack scudo tsan ubsan xray
+sys-libs/libcxx libcxxabi
+sys-libs/libcxx* libunwind
+
+dev-util/ltrace unwind
+dev-util/perf demangle libpfm slang unwind
+dev-util/pkgconf pkg-config
+dev-util/strace unwind
+
+dev-vcs/git blksha1 curl gpg webdav
+dev-vcs/mercurial gpg
+dev-vcs/subversion sasl
+
+app-emulation/* seccomp
+app-emulation/containerd btrfs device-mapper
+app-emulation/docker btrfs device-mapper
+app-emulation/lxc ssl tools
+app-emulation/podman btrfs fuse rootless
+app-emulation/qemu alsa capstone fdt io-uring pin-upstream-blobs sdl sdl-image vde vhost-net vhost-user-fs virtfs zstd QEMU_SOFTMMU_TARGETS: aarch64 x86_64 QEMU_USER_TARGETS: aarch64 x86_64
+app-emulation/runc ambient kmem
diff --git a/etc/portage/package.use/50-javascript.conf b/etc/portage/package.use/50-javascript.conf
new file mode 100644
index 0000000..b6de8f4
--- /dev/null
+++ b/etc/portage/package.use/50-javascript.conf
@@ -0,0 +1 @@
+net-libs/nodejs icu -lto ssl
diff --git a/etc/portage/package.use/50-lua.conf b/etc/portage/package.use/50-lua.conf
new file mode 100644
index 0000000..135b389
--- /dev/null
+++ b/etc/portage/package.use/50-lua.conf
@@ -0,0 +1,10 @@
+media-video/mpv lua
+
+app-text/texlive-core     luajittex
+dev-texlive/texlive-basic luajittex
+
+dev-lua/*           LUA_TARGETS: luajit
+
+app-editors/neovim  LUA_SINGLE_TARGET: luajit
+dev-lua/*           LUA_SINGLE_TARGET: luajit
+media-video/mpv     LUA_SINGLE_TARGET: luajit
diff --git a/etc/portage/package.use/50-perl.conf b/etc/portage/package.use/50-perl.conf
new file mode 100644
index 0000000..6bc4427
--- /dev/null
+++ b/etc/portage/package.use/50-perl.conf
@@ -0,0 +1,4 @@
+dev-lang/perl minimal
+dev-perl/*    minimal
+
+sys-apps/moreutils perl
diff --git a/etc/portage/package.use/50-python.conf b/etc/portage/package.use/50-python.conf
new file mode 100644
index 0000000..bec4248
--- /dev/null
+++ b/etc/portage/package.use/50-python.conf
@@ -0,0 +1,50 @@
+dev-lang/python-exec-conf PYTHON_TARGETS: python3_9
+dev-lang/python:2.7 xml
+dev-lang/python:3.9 ipv6 ncurses readline sqlite ssl xml
+
+app-arch/brotli     python
+dev-libs/libxml2    python
+dev-util/lldb       python
+net-wireless/lorcon python
+sys-devel/gdb       python
+
+dev-python/PyQt5 dbus declarative gui multimedia network opengl printsupport ssl svg sql webchannel widgets
+dev-python/pyyaml libyaml
+dev-python/rarfile compressed
+
+app-admin/eclean-kernel         PYTHON_TARGETS: python3_9
+app-arch/brotli                 PYTHON_TARGETS: python3_9
+app-emulation/docker-compose    PYTHON_TARGETS: python3_9
+app-emulation/qemu              PYTHON_TARGETS: python3_9
+app-portage/*                   PYTHON_TARGETS: python3_9
+dev-libs/libxml2                PYTHON_TARGETS: python3_9
+dev-python/*                    PYTHON_TARGETS: python3_9
+dev-util/cppcheck               PYTHON_TARGETS: python3_9
+dev-util/meson*                 PYTHON_TARGETS: python3_9
+dev-util/perf                   PYTHON_TARGETS: python3_9
+dev-util/pkgcheck               PYTHON_TARGETS: python3_9
+dev-util/scons                  PYTHON_TARGETS: python3_9
+dev-vcs/mercurial               PYTHON_TARGETS: python3_9
+media-video/mpv                 PYTHON_TARGETS: python3_9
+media-video/subliminal          PYTHON_TARGETS: python3_9
+net-misc/youtube-dl             PYTHON_TARGETS: python3_9
+net-wireless/aircrack-ng        PYTHON_TARGETS: python3_9
+net-wireless/lorcon             PYTHON_TARGETS: python3_9
+sys-apps/pkgcore                PYTHON_TARGETS: python3_9
+sys-apps/portage                PYTHON_TARGETS: python3_9
+virtual/*                       PYTHON_TARGETS: python3_9
+www-client/qutebrowser          PYTHON_TARGETS: python3_9
+x11-base/xcb-proto              PYTHON_TARGETS: python3_9
+
+app-eselect/eselect-repository  PYTHON_SINGLE_TARGET: python3_9
+app-text/asciidoc               PYTHON_SINGLE_TARGET: python3_9
+dev-util/bear                   PYTHON_SINGLE_TARGET: python3_9
+dev-util/cvise                  PYTHON_SINGLE_TARGET: python3_9
+dev-util/glib-utils             PYTHON_SINGLE_TARGET: python3_9
+dev-util/include-what-you-use   PYTHON_SINGLE_TARGET: python3_9
+dev-util/itstool                PYTHON_SINGLE_TARGET: python3_9
+dev-util/lldb                   PYTHON_SINGLE_TARGET: python3_9
+dev-util/rr                     PYTHON_SINGLE_TARGET: python3_9
+sys-apps/usbutils               PYTHON_SINGLE_TARGET: python3_9
+sys-devel/clang                 PYTHON_SINGLE_TARGET: python3_9
+sys-devel/gdb                   PYTHON_SINGLE_TARGET: python3_9
diff --git a/etc/portage/package.use/60-qt.conf b/etc/portage/package.use/60-qt.conf
new file mode 100644
index 0000000..b5bef56
--- /dev/null
+++ b/etc/portage/package.use/60-qt.conf
@@ -0,0 +1,11 @@
+dev-qt/* X
+dev-qt/* alsa
+dev-qt/* dbus
+dev-qt/* qml
+dev-qt/* widgets
+dev-qt/qtcore icu
+dev-qt/qtdeclarative jit
+dev-qt/qtgui gif jpeg png
+dev-qt/qtnetwork ssl
+dev-qt/qtsql postgres sqlite
+dev-qt/qtwidgets png
diff --git a/etc/portage/package.use/99-auto.conf b/etc/portage/package.use/99-auto.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/portage/package.use/99-auto.conf
diff --git a/etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch b/etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch
new file mode 100644
index 0000000..7b74439
--- /dev/null
+++ b/etc/portage/patches/app-admin/haskell-updater/emerge-no-ask.patch
@@ -0,0 +1,12 @@
+diff --git a/Distribution/Gentoo/PkgManager.hs b/Distribution/Gentoo/PkgManager.hs
+index 8e8cf0a..e7a3cef 100644
+--- a/Distribution/Gentoo/PkgManager.hs
++++ b/Distribution/Gentoo/PkgManager.hs
+@@ -95,6 +95,7 @@ defaultPMFlags               :: PkgManager -> [String]
+ defaultPMFlags Portage       = [ "--oneshot"
+                                , "--keep-going"
+                                , "--complete-graph"
++                               , "--ask=n"
+                                ]
+ defaultPMFlags PkgCore       = [ "--deep"
+                                , "--oneshot"
diff --git a/etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch b/etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch
new file mode 100644
index 0000000..80886ef
--- /dev/null
+++ b/etc/portage/patches/media-libs/opencv-4.5.0/ade_tar.patch
@@ -0,0 +1,14 @@
+diff --git i/modules/gapi/cmake/DownloadADE.cmake w/modules/gapi/cmake/DownloadADE.cmake
+index ee1b645..26d1ce4 100644
+--- i/modules/gapi/cmake/DownloadADE.cmake
++++ w/modules/gapi/cmake/DownloadADE.cmake
+@@ -1,7 +1,7 @@
+ set(ade_src_dir "${OpenCV_BINARY_DIR}/3rdparty/ade")
+-set(ade_filename "v0.1.1f.zip")
++set(ade_filename "v0.1.1f.tar.gz")
+ set(ade_subdir "ade-0.1.1f")
+-set(ade_md5 "b624b995ec9c439cbc2e9e6ee940d3a2")
++set(ade_md5 "07749ec1fb889049bd81518925efd224")
+ ocv_download(FILENAME ${ade_filename}
+              HASH ${ade_md5}
+              URL
diff --git a/etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch b/etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch
new file mode 100644
index 0000000..c4dfc9a
--- /dev/null
+++ b/etc/portage/patches/sys-apps/coreutils-8.32-r1/advcpmv-0.8-8.32.patch
@@ -0,0 +1,648 @@
+diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
+--- coreutils-8.32/src/copy.c	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/copy.c	2020-05-23 13:25:09.286684100 +0200
+@@ -129,6 +129,72 @@
+   dev_t dev;
+ };
+ 
++struct progress_status {
++  int iCountDown;
++  char ** cProgressField;
++  struct timeval last_time;
++  int last_size, iBarLength;
++  struct stat src_open_sb;
++};
++
++/* Begin progress Mod*/
++static void file_progress_bar ( char * _cDest, int _iBarLength, long _lProgress, long _lTotal )
++{
++    double dPercent = (double) _lProgress / (double) _lTotal * 100.f;
++    sprintf( _cDest + ( _iBarLength - 6), "%4.1f", dPercent );
++    _cDest[_iBarLength - 2] = ' ';
++
++    int i;
++    for ( i=1; i<=_iBarLength - 9; i++)
++    {
++        if ( dPercent > (double) (i-1) / (_iBarLength - 10) * 100.f )
++        {
++            _cDest[i] = '=';
++        }
++        else
++        {
++            _cDest[i] = ' ';
++        }
++    }
++    for ( i=1; i<_iBarLength - 9; i++)
++    {
++        if ( ( _cDest[i+1] == ' ' ) && ( _cDest[i] == '=' ) )
++            _cDest[i] = '>' ;
++    }
++}
++
++int file_size_format ( char * _cDst, long _lSize, int _iCounter )
++{
++  int iCounter = _iCounter;
++  double dSize = ( double ) _lSize;
++  while ( dSize >= 1000. )
++  {
++    dSize /= 1024.;
++    iCounter++;
++  }
++
++  /* get unit */
++  char * sUnit;
++  if ( iCounter == 0 )
++    sUnit = "B";
++  else if ( iCounter == 1 )
++    sUnit = "KiB";
++  else if ( iCounter == 2 )
++    sUnit = "MiB";
++  else if ( iCounter == 3 )
++    sUnit = "GiB";
++  else if ( iCounter == 4 )
++    sUnit = "TiB";
++  else
++    sUnit = "N/A";
++
++  /* write number */
++  return sprintf ( _cDst, "%5.1f %s", dSize, sUnit );
++}
++/* END progress mod */
++
++
++
+ /* Initial size of the cp.dest_info hash table.  */
+ #define DEST_INFO_INITIAL_CAPACITY 61
+ 
+@@ -261,7 +327,8 @@
+              size_t hole_size, bool punch_holes,
+              char const *src_name, char const *dst_name,
+              uintmax_t max_n_read, off_t *total_n_read,
+-             bool *last_write_made_hole)
++             bool *last_write_made_hole,
++             struct progress_status *s_progress)
+ {
+   *last_write_made_hole = false;
+   *total_n_read = 0;
+@@ -270,6 +337,83 @@
+ 
+   while (max_n_read)
+     {
++
++    if (progress) {
++          /* BEGIN progress mod */
++          /* update countdown */
++          s_progress->iCountDown--;
++          char * sProgressBar = s_progress->cProgressField[5];
++          if ( s_progress->iCountDown < 0 )
++            s_progress->iCountDown = 100;
++
++          /* just print one line with the percentage, but not always */
++          if ( s_progress->iCountDown == 0 )
++          {
++            /* calculate current speed */
++            struct timeval cur_time;
++            gettimeofday ( & cur_time, NULL );
++            int cur_size = g_iTotalWritten + *total_n_read / 1024;
++            int usec_elapsed = cur_time.tv_usec - s_progress->last_time.tv_usec;
++            double sec_elapsed = ( double ) usec_elapsed / 1000000.f;
++            sec_elapsed += ( double ) ( cur_time.tv_sec - s_progress->last_time.tv_sec );
++            int copy_speed = ( int ) ( ( double ) ( cur_size - s_progress->last_size )
++              / sec_elapsed );
++            char s_copy_speed[20];
++            file_size_format ( s_copy_speed, copy_speed, 1 );
++            /* update vars */
++            s_progress->last_time = cur_time;
++            s_progress->last_size = cur_size;
++
++            /* how many time has passed since the start? */
++            int isec_elapsed = cur_time.tv_sec - g_oStartTime.tv_sec;
++            int sec_remaining = ( int ) ( ( double ) isec_elapsed / cur_size
++              * g_iTotalSize ) - isec_elapsed;
++            int min_remaining = sec_remaining / 60;
++            sec_remaining -= min_remaining * 60;
++            int hours_remaining = min_remaining / 60;
++            min_remaining -= hours_remaining * 60;
++            /* print out */
++            sprintf ( s_progress->cProgressField[3],
++              "Copying at %s/s (about %uh %um %us remaining)", s_copy_speed,
++              hours_remaining, min_remaining, sec_remaining );
++
++            int fs_len;
++            if ( g_iTotalFiles > 1 )
++            {
++              /* global progress bar */
++              file_progress_bar ( s_progress->cProgressField[2], s_progress->iBarLength,
++                                  g_iTotalWritten + *total_n_read / 1024, g_iTotalSize );
++
++              /* print the global status */
++              fs_len = file_size_format ( s_progress->cProgressField[1] + s_progress->iBarLength - 21,
++                                              g_iTotalWritten + *total_n_read / 1024, 1 );
++              s_progress->cProgressField[1][s_progress->iBarLength - 21 + fs_len] = ' ';
++            }
++
++            /* current progress bar */
++            file_progress_bar ( sProgressBar, s_progress->iBarLength, *total_n_read, s_progress->src_open_sb.st_size );
++
++            /* print the status */
++            fs_len = file_size_format ( s_progress->cProgressField[4] + s_progress->iBarLength - 21, *total_n_read, 0 );
++            s_progress->cProgressField[4][s_progress->iBarLength - 21 + fs_len] = ' ';
++
++            /* print the field */
++            int it;
++            for ( it = g_iTotalFiles>1 ? 0 : 3; it < 6; it++ )
++            {
++              printf ( "\033[K%s\n", s_progress->cProgressField[it] );
++              if ( strlen ( s_progress->cProgressField[it] ) < s_progress->iBarLength )
++                printf ( "" );
++            }
++            if ( g_iTotalFiles > 1 )
++              printf ( "\r\033[6A" );
++            else
++              printf ( "\r\033[3A" );
++            fflush ( stdout );
++          }
++          /* END progress mod */
++      }
++
+       ssize_t n_read = read (src_fd, buf, MIN (max_n_read, buf_size));
+       if (n_read < 0)
+         {
+@@ -354,6 +498,14 @@
+          certain files in /proc or /sys with linux kernels.  */
+     }
+ 
++    /* BEGIN progress mod */
++    if (progress) {
++          /* update total size */
++          g_iTotalWritten += *total_n_read / 1024;
++          g_iFilesCopied++;
++    }
++    /* END progress mod */
++
+   /* Ensure a trailing hole is created, so that subsequent
+      calls of sparse_copy() start at the correct offset.  */
+   if (make_hole && ! create_hole (dest_fd, dst_name, punch_holes, psize))
+@@ -422,7 +574,9 @@
+              size_t hole_size, off_t src_total_size,
+              enum Sparse_type sparse_mode,
+              char const *src_name, char const *dst_name,
+-             bool *require_normal_copy)
++             bool *require_normal_copy,
++             int iCountDown, char ** cProgressField, struct timeval last_time,
++             int last_size, int iBarLength, struct stat src_open_sb)
+ {
+   struct extent_scan scan;
+   off_t last_ext_start = 0;
+@@ -553,10 +707,16 @@
+               last_ext_len = ext_len;
+               bool read_hole;
+ 
++              struct timeval a;
++              struct stat b;
++
++              struct progress_status s_progress={iCountDown, cProgressField, last_time, last_size, iBarLength, src_open_sb};
++
++
+               if ( ! sparse_copy (src_fd, dest_fd, buf, buf_size,
+                                   sparse_mode == SPARSE_ALWAYS ? hole_size: 0,
+                                   true, src_name, dst_name, ext_len, &n_read,
+-                                  &read_hole))
++                                  &read_hole,&s_progress))
+                 goto fail;
+ 
+               dest_pos = ext_start + n_read;
+@@ -1305,6 +1465,70 @@
+       buf_alloc = xmalloc (buf_size + buf_alignment);
+       buf = ptr_align (buf_alloc, buf_alignment);
+ 
++      /* BEGIN progress mod */
++      /* create a field of 6 lines */
++      char ** cProgressField = ( char ** ) calloc ( 6, sizeof ( char * ) );
++      /* get console width */
++      int iBarLength = 80;
++      struct winsize win;
++      if ( ioctl (STDOUT_FILENO, TIOCGWINSZ, (char *) &win) == 0 && win.ws_col > 0 )
++         iBarLength = win.ws_col;
++      /* create rows */
++      int it;
++      for ( it = 0; it < 6; it++ )
++      {
++        cProgressField[it] = ( char * ) malloc ( iBarLength + 1 );
++        /* init with spaces */
++        int j;
++        for ( j = 0; j < iBarLength; j++ )
++          cProgressField[it][j] = ' ';
++        cProgressField[it][iBarLength] = '\0';
++      }
++
++      /* global progress bar? */
++      if ( g_iTotalFiles > 1 )
++      {
++        /* init global progress bar */
++        cProgressField[2][0] = '[';
++        cProgressField[2][iBarLength - 8] = ']';
++        cProgressField[2][iBarLength - 7] = ' ';
++        cProgressField[2][iBarLength - 1] = '%';
++
++        /* total size */
++        cProgressField[1][iBarLength - 11] = '/';
++        file_size_format ( cProgressField[1] + iBarLength - 9, g_iTotalSize, 1 );
++
++        /* show how many files were written */
++        int sum_length = sprintf ( cProgressField[1], "%d files copied so far...", g_iFilesCopied );
++        cProgressField[1][sum_length] = ' ';
++      }
++
++      /* truncate filename? */
++      int fn_length;
++      if ( strlen ( src_name ) > iBarLength - 22 )
++        fn_length =
++          sprintf ( cProgressField[4], "...%s", src_name + ( strlen ( src_name ) - iBarLength + 25 ) );
++      else
++        fn_length = sprintf ( cProgressField[4], "%s", src_name );
++      cProgressField[4][fn_length] = ' ';
++
++      /* filesize */
++      cProgressField[4][iBarLength - 11] = '/';
++      file_size_format ( cProgressField[4] + iBarLength - 9, src_open_sb.st_size, 0 );
++
++      int iCountDown = 1;
++      char * sProgressBar = cProgressField[5];
++      sProgressBar[0] = '[';
++      sProgressBar[iBarLength - 8] = ']';
++      sProgressBar[iBarLength - 7] = ' ';
++      sProgressBar[iBarLength - 1] = '%';
++
++      /* this will always save the time in between */
++      struct timeval last_time;
++      gettimeofday ( & last_time, NULL );
++      int last_size = g_iTotalWritten;
++      /* END progress mod */
++
+       if (sparse_src)
+         {
+           bool normal_copy_required;
+@@ -1316,7 +1540,9 @@
+           if (extent_copy (source_desc, dest_desc, buf, buf_size, hole_size,
+                            src_open_sb.st_size,
+                            make_holes ? x->sparse_mode : SPARSE_NEVER,
+-                           src_name, dst_name, &normal_copy_required))
++                           src_name, dst_name, &normal_copy_required,
++                           iCountDown, cProgressField, last_time, last_size,
++                           iBarLength, src_open_sb))
+             goto preserve_metadata;
+ 
+           if (! normal_copy_required)
+@@ -1328,11 +1554,12 @@
+ 
+       off_t n_read;
+       bool wrote_hole_at_eof;
++      struct progress_status s_progress = { iCountDown, cProgressField, last_time, last_size, iBarLength, src_open_sb};
+       if (! sparse_copy (source_desc, dest_desc, buf, buf_size,
+                          make_holes ? hole_size : 0,
+                          x->sparse_mode == SPARSE_ALWAYS, src_name, dst_name,
+                          UINTMAX_MAX, &n_read,
+-                         &wrote_hole_at_eof))
++                         &wrote_hole_at_eof, &s_progress))
+         {
+           return_val = false;
+           goto close_src_and_dst_desc;
+@@ -1343,6 +1570,14 @@
+           return_val = false;
+           goto close_src_and_dst_desc;
+         }
++       /* BEGIN progress mod */
++      if (progress) {
++            int i;
++            for ( i = 0; i < 6; i++ )
++              free ( cProgressField[i] );
++            free ( cProgressField );
++      }
++      /* END progress mod */
+     }
+ 
+ preserve_metadata:
+Only in coreutils-8.32-patched/src: copy.c.orig
+diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h
+--- coreutils-8.32/src/copy.h	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/copy.h	2020-05-23 13:25:09.286684100 +0200
+@@ -234,6 +234,9 @@
+      Create destination directories as usual. */
+   bool symbolic_link;
+ 
++  /* If true, draw a nice progress bar on screen */
++  bool progress_bar;
++
+   /* If true, do not copy a nondirectory that has an existing destination
+      with the same or newer modification time. */
+   bool update;
+@@ -304,4 +307,15 @@
+ bool chown_failure_ok (struct cp_options const *) _GL_ATTRIBUTE_PURE;
+ mode_t cached_umask (void);
+ 
++/* BEGIN OF PROGRESS MOD */
++int file_size_format ( char * _cDst, long _lSize, int _iCounter );
++
++__attribute__((__common__)) long g_iTotalSize;
++__attribute__((__common__)) long g_iTotalWritten;
++__attribute__((__common__)) int g_iFilesCopied;
++__attribute__((__common__)) struct timeval g_oStartTime;
++__attribute__((__common__)) int g_iTotalFiles;
++__attribute__((__common__)) bool progress;
++/* END OF PROGRESS MOD */
++
+ #endif
+Only in coreutils-8.32-patched/src: copy.h.orig
+diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c
+--- coreutils-8.32/src/cp.c	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/cp.c	2020-05-23 13:25:09.286684100 +0200
+@@ -131,6 +131,7 @@
+   {"symbolic-link", no_argument, NULL, 's'},
+   {"target-directory", required_argument, NULL, 't'},
+   {"update", no_argument, NULL, 'u'},
++  {"progress-bar", no_argument, NULL, 'g'},
+   {"verbose", no_argument, NULL, 'v'},
+   {GETOPT_SELINUX_CONTEXT_OPTION_DECL},
+   {GETOPT_HELP_OPTION_DECL},
+@@ -170,6 +171,7 @@
+   -f, --force                  if an existing destination file cannot be\n\
+                                  opened, remove it and try again (this option\n\
+                                  is ignored when the -n option is also used)\n\
++  -g, --progress-bar           add a progress bar\n\
+   -i, --interactive            prompt before overwrite (overrides a previous -n\
+ \n\
+                                   option)\n\
+@@ -635,6 +637,70 @@
+         die (EXIT_FAILURE, 0, _("target %s is not a directory"),
+              quoteaf (file[n_files - 1]));
+     }
++    struct timeval start_time;
++    if (progress) {
++        /* BEGIN progress mod */
++        g_iTotalSize = 0;
++        g_iTotalFiles = 0;
++        g_iFilesCopied = 0;
++        g_iTotalWritten = 0;
++
++        /* save time */
++        gettimeofday ( & start_time, NULL );
++        g_oStartTime = start_time;
++
++        printf ( "Calculating total size... \r" );
++        fflush ( stdout );
++        long iTotalSize = 0;
++        int iFiles = n_files;
++        if ( ! target_directory )
++          iFiles = n_files - 1;
++        int j;
++
++        /* how many files are we copying */
++        char command[1024];
++        sprintf( command, "find \"%s\" -type f | wc -l", file[0]);
++        FILE *fp ;
++        char output[1024];
++        fp = popen(command,"r");
++        if ( fp == NULL || fgets(output, sizeof(output)-1, fp) == NULL)
++            printf("failed to run find.\n");
++        else
++            g_iTotalFiles = atoi( output ) ;
++
++        for (j = 0; j < iFiles; j++)
++        {
++          /* call du -s for each file */
++          /* create command */
++          char command[1024];
++          sprintf ( command, "du -s \"%s\"", file[j] );
++          /* TODO: replace all quote signs in file[i] */
++
++          FILE *fp;
++          char output[1024];
++
++          /* run command */
++          fp = popen(command, "r");
++          if (fp == NULL || fgets(output, sizeof(output)-1, fp) == NULL) {
++            printf("failed to run du.\n" );
++          }
++          else
++          {
++            /* isolate size */
++            strchr ( output, '\t' )[0] = '\0';
++            iTotalSize += atol ( output );
++
++            printf ( "Calculating total size... %ld\r", iTotalSize );
++            fflush ( stdout );
++          }
++
++          /* close */
++          pclose(fp);
++        }
++        g_iTotalSize = iTotalSize;
++        /* END progress mod */
++    }
++
+ 
+   if (target_directory)
+     {
+@@ -777,6 +843,46 @@
+       ok = copy (source, new_dest, 0, x, &unused, NULL);
+     }
+ 
++    if (progress) {
++        /* BEGIN progress mod */
++        /* remove everything */
++        int i;
++        if ( g_iTotalFiles > 1 )
++        {
++          for ( i = 0; i < 6; i++ )
++            printf ( "\033[K\n" );
++          printf ( "\r\033[6A" );
++        }
++        else
++        {
++          for ( i = 0; i < 3; i++ )
++            printf ( "\033[K\n" );
++          printf ( "\r\033[3A" );
++        }
++
++        /* save time */
++        struct timeval end_time;
++        gettimeofday ( & end_time, NULL );
++        int usec_elapsed = end_time.tv_usec - start_time.tv_usec;
++        double sec_elapsed = ( double ) usec_elapsed / 1000000.f;
++        sec_elapsed += ( double ) ( end_time.tv_sec - start_time.tv_sec );
++
++        /* get total size */
++        char sTotalWritten[20];
++        file_size_format ( sTotalWritten, g_iTotalSize, 1 );
++        /* TODO: using g_iTotalWritten would be more correct, but is less accurate */
++
++        /* calculate speed */
++        int copy_speed = ( int ) ( ( double ) g_iTotalWritten / sec_elapsed );
++        char s_copy_speed[20];
++        file_size_format ( s_copy_speed, copy_speed, 1 );
++
++        /* good-bye message */
++        printf ( "%d files (%s) copied in %.1f seconds (%s/s).\n", g_iFilesCopied, sTotalWritten,
++                 sec_elapsed, s_copy_speed );
++        /* END progress mod */
++    }
++
+   return ok;
+ }
+ 
+@@ -812,6 +918,7 @@
+   x->recursive = false;
+   x->sparse_mode = SPARSE_AUTO;
+   x->symbolic_link = false;
++  x->progress_bar = false;
+   x->set_mode = false;
+   x->mode = 0;
+ 
+@@ -950,7 +1057,7 @@
+   selinux_enabled = (0 < is_selinux_enabled ());
+   cp_option_init (&x);
+ 
+-  while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:TZ",
++  while ((c = getopt_long (argc, argv, "abdfgHilLnprst:uvxPRS:TZ",
+                            long_opts, NULL))
+          != -1)
+     {
+@@ -1007,6 +1114,10 @@
+           x.unlink_dest_after_failed_open = true;
+           break;
+ 
++        case 'g':
++          progress = true;
++          break;
++
+         case 'H':
+           x.dereference = DEREF_COMMAND_LINE_ARGUMENTS;
+           break;
+diff -aur coreutils-8.32/src/mv.c coreutils-8.32-patched/src/mv.c
+--- coreutils-8.32/src/mv.c	2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32-patched/src/mv.c	2020-05-23 13:25:09.286684100 +0200
+@@ -66,6 +66,7 @@
+   {"target-directory", required_argument, NULL, 't'},
+   {"update", no_argument, NULL, 'u'},
+   {"verbose", no_argument, NULL, 'v'},
++  {"progress-ar", no_argument, NULL, 'g'},
+   {GETOPT_HELP_OPTION_DECL},
+   {GETOPT_VERSION_OPTION_DECL},
+   {NULL, 0, NULL, 0}
+@@ -168,10 +169,86 @@
+ static bool
+ do_move (const char *source, const char *dest, const struct cp_options *x)
+ {
++  struct timeval start_time;
++
+   bool copy_into_self;
+   bool rename_succeeded;
++  if(progress && x->rename_errno != 0) {
++    /* BEGIN progress mod */
++    g_iTotalSize = 0;
++    g_iFilesCopied = 0;
++    g_iTotalWritten = 0;
++
++    gettimeofday (& start_time, NULL);
++    g_oStartTime = start_time;
++
++    printf ("Calculating total size... \r");
++    fflush (stdout);
++    long iTotalSize = 0;
++    /* call du -s for each file */
++    /* create command */
++    char command[1024];
++    sprintf ( command, "du -s '%s'", source );
++    /* TODO: replace all quote signs in file[i] */
++
++    FILE *fp;
++    char output[1024];
++
++    /* run command */
++    fp = popen(command, "r");
++    if (fp == NULL || fgets(output, sizeof(output)-1, fp) == NULL) {
++      //printf("failed to run du.\n" );
++    }
++    else
++    {
++      /* isolate size */
++      strchr ( output, '\t' )[0] = '\0';
++      iTotalSize += atol ( output );
++      printf ( "Calculating total size... %ld\r", iTotalSize );
++      fflush ( stdout );
++    }
++
++    /* close */
++    pclose(fp);
++    g_iTotalSize = iTotalSize;
++    /* END progress mod */
++
++  }
++
+   bool ok = copy (source, dest, false, x, &copy_into_self, &rename_succeeded);
+ 
++  if (progress && (x->rename_errno != 0 && ok)) {
++    /* BEGIN progress mod */
++    /* remove everything */
++    int i;
++    int limit = (g_iTotalFiles > 1 ? 6 : 3);
++    for ( i = 0; i < limit; i++ )
++      printf ( "\033[K\n" );
++    printf ( "\r\033[3A" );
++
++    /* save time */
++    struct timeval end_time;
++    gettimeofday ( & end_time, NULL );
++    int usec_elapsed = end_time.tv_usec - start_time.tv_usec;
++    double sec_elapsed = ( double ) usec_elapsed / 1000000.f;
++    sec_elapsed += ( double ) ( end_time.tv_sec - start_time.tv_sec );
++
++    /* get total size */
++    char sTotalWritten[20];
++    file_size_format ( sTotalWritten, g_iTotalSize, 1 );
++    /* TODO: using g_iTotalWritten would be more correct, but is less accurate */
++
++    /* calculate speed */
++    int copy_speed = ( int ) ( ( double ) g_iTotalWritten / sec_elapsed );
++    char s_copy_speed[20];
++    file_size_format ( s_copy_speed, copy_speed, 1 );
++
++    /* good-bye message */
++    printf ( "%d files (%s) moved in %.1f seconds (%s/s).\n", g_iFilesCopied, sTotalWritten,
++             sec_elapsed, s_copy_speed );
++    /* END progress mod */
++  }
++
+   if (ok)
+     {
+       char const *dir_to_remove;
+@@ -306,6 +383,7 @@
+ \n\
+   -b                           like --backup but does not accept an argument\n\
+   -f, --force                  do not prompt before overwriting\n\
++  -g, --progress-bar           add progress-bar\n\
+   -i, --interactive            prompt before overwrite\n\
+   -n, --no-clobber             do not overwrite an existing file\n\
+ If you specify more than one of -i, -f, -n, only the final one takes effect.\n\
+@@ -361,7 +439,7 @@
+   /* Try to disable the ability to unlink a directory.  */
+   priv_set_remove_linkdir ();
+ 
+-  while ((c = getopt_long (argc, argv, "bfint:uvS:TZ", long_options, NULL))
++  while ((c = getopt_long (argc, argv, "bfint:uvgS:TZ", long_options, NULL))
+          != -1)
+     {
+       switch (c)
+@@ -407,6 +485,11 @@
+         case 'v':
+           x.verbose = true;
+           break;
++
++        case 'g':
++          progress = true;
++          break;
++
+         case 'S':
+           make_backups = true;
+           backup_suffix = optarg;
diff --git a/etc/portage/patches/sys-apps/pmount/btrfs.patch b/etc/portage/patches/sys-apps/pmount/btrfs.patch
new file mode 100644
index 0000000..098e086
--- /dev/null
+++ b/etc/portage/patches/sys-apps/pmount/btrfs.patch
@@ -0,0 +1,12 @@
+diff --git a/src/fs.c b/src/fs.c
+index 65ea0c7..6758d63 100644
+--- a/src/fs.c
++++ b/src/fs.c
+@@ -29,6 +29,7 @@ static struct FS supported_fs[] = {
+     { "ext3", "nodev,noauto,nosuid,user,errors=remount-ro", 0, NULL, 0 },
+     { "ext2", "nodev,noauto,nosuid,user,errors=remount-ro", 0, NULL, 0 },
+     { "ext4", "nodev,noauto,nosuid,user,errors=remount-ro", 0, NULL, 0 },
++    { "btrfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
+     { "reiserfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
+     { "reiser4", "nodev,noauto,nosuid,user", 0, NULL, 0 },
+     { "xfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
diff --git a/etc/portage/patches/sys-power/suspend/gcc-10.patch b/etc/portage/patches/sys-power/suspend/gcc-10.patch
new file mode 100644
index 0000000..00da540
--- /dev/null
+++ b/etc/portage/patches/sys-power/suspend/gcc-10.patch
@@ -0,0 +1,93 @@
+diff -Nupr suspend~/s2ram-x86.h suspend/s2ram-x86.h
+--- suspend~/s2ram-x86.h	2012-09-15 22:23:44.000000000 +0200
++++ suspend/s2ram-x86.h	2020-05-14 19:04:21.979507630 +0200
+@@ -18,9 +18,9 @@
+ /* Item size */
+ #define ITEMSZ  1024
+ 
+-char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
++extern char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
+ 
+-int flags, force, fb_nosuspend, no_kms_flag;
++extern int flags, force, fb_nosuspend, no_kms_flag;
+ 
+ #define HACKS_LONG_OPTS \
+ 	{\
+diff -Nupr suspend~/s2ram-x86.c suspend/s2ram-x86.c
+--- suspend~/s2ram-x86.c	2012-09-15 22:23:44.000000000 +0200
++++ suspend/s2ram-x86.c	2020-05-14 19:33:34.683394349 +0200
+@@ -38,6 +38,10 @@ static int vbe_mode = -1, dmi_scanned;
+ #define S2RAM_NOFB	126
+ #define S2RAM_UNKNOWN	127
+ 
++/* extern in s2ram-{{arch}}.h */
++char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
++int flags, force, fb_nosuspend, no_kms_flag;
++
+ void identify_machine(void)
+ {
+ 	if (!dmi_scanned) {
+diff -Nupr suspend~/load.c suspend/load.c
+--- suspend~/load.c	2020-05-14 18:54:12.683547000 +0200
++++ suspend/load.c	2020-05-14 19:15:39.056797202 +0200
+@@ -549,7 +549,7 @@ static int decrypt_key(struct image_head
+ 		memcpy(key, res, KEY_SIZE);
+ 		memcpy(ivec, res + KEY_SIZE, CIPHER_BLOCK);
+ 	} else {
+-		fprintf(stderr,"The main key has invalid length %i, need %i\n", s, KEY_SIZE + CIPHER_BLOCK);
++		fprintf(stderr,"The main key has invalid length %zu, need %i\n", s, KEY_SIZE + CIPHER_BLOCK);
+ 		ret = -ENODATA;
+ 	}
+ 	gcry_free(res);
+diff -Nupr suspend~/vbetool/vbetool.c suspend/vbetool/vbetool.c
+--- suspend~/vbetool/vbetool.c	2012-09-15 22:23:44.000000000 +0200
++++ suspend/vbetool/vbetool.c	2020-05-14 19:14:21.587468876 +0200
+@@ -320,7 +320,7 @@ char *__save_state(int *psize)
+ 
+ 	memset(&r, 0, sizeof(r));
+ 
+-	fprintf(stderr, "Allocated buffer at %p (base is 0x%x)\n", buffer,
++	fprintf(stderr, "Allocated buffer at %p (base is 0x%zx)\n", buffer,
+ 			LRMI_base_addr());
+ 
+ 	r.eax = 0x4f04;
+diff -Nupr suspend~/vbetool/vbetool.c suspend/vbetool/vbetool.c
+--- suspend~/vbetool/vbetool.c	2020-05-14 20:16:16.880562075 +0200
++++ suspend/vbetool/vbetool.c	2020-05-14 20:50:20.563096451 +0200
+@@ -243,9 +243,9 @@ void restore_state_from(char *data)
+ 	r.eax = 0x4f04;
+ 	r.ecx = 0xf;		/* all states */
+ 	r.edx = 2;		/* restore state */
+-	r.es = (unsigned int) (data - LRMI_base_addr()) >> 4;
+-	r.ebx = (unsigned int) (data - LRMI_base_addr()) & 0xf;
+-	r.ds = 0x0040;
++	r.es  = (unsigned short) (((data - (char*) LRMI_base_addr()) >> 4) & 0xffff);
++	r.ebx = (unsigned int)    ((data - (char*) LRMI_base_addr()) & 0xf);
++	r.ds  = 0x0040;
+ 
+ 	if (!LRMI_int(0x10, &r)) {
+ 		fprintf(stderr,
+@@ -327,9 +327,9 @@ char *__save_state(int *psize)
+ 	r.ecx = 0xf;		/* all states */
+ 	r.edx = 1;		/* save state */
+ 	
+-	r.es = (unsigned int) (buffer - LRMI_base_addr()) >> 4;
+-	r.ebx = (unsigned int) (buffer - LRMI_base_addr()) & 0xf;
+-	r.ds = 0x0040;
++	r.es  = (unsigned short) (((buffer - (char*) LRMI_base_addr()) >> 4) & 0xffff);
++	r.ebx = (unsigned int)    ((buffer - (char*) LRMI_base_addr()) & 0xf);
++	r.ds  = 0x0040;
+ 
+ 	fprintf(stderr, "ES: 0x%04X EBX: 0x%04X\n", r.es, r.ebx);
+ 
+@@ -525,8 +525,8 @@ int do_get_panel_id(int just_dimensions)
+     .ebx = 0x0001
+   };
+   struct panel_id *id = LRMI_alloc_real(sizeof(struct panel_id));
+-  r.es = (unsigned short)(((int)(id-LRMI_base_addr()) >> 4) & 0xffff);
+-  r.edi = (unsigned long)(id-LRMI_base_addr()) & 0xf;
++  r.es  = (unsigned short) (((id - LRMI_base_addr()) >> 4) & 0xffff);
++  r.edi = (unsigned long)   ((id - LRMI_base_addr()) & 0xf);
+ 
+   if(sizeof(struct panel_id) != 32)
+     return fprintf(stderr, "oops: panel_id, sizeof struct panel_id != 32, it's %ld...\n", sizeof(struct panel_id)), 7;
diff --git a/etc/portage/patches/x11-misc/xsnow/compositor.patch b/etc/portage/patches/x11-misc/xsnow/compositor.patch
new file mode 100644
index 0000000..7ecedf0
--- /dev/null
+++ b/etc/portage/patches/x11-misc/xsnow/compositor.patch
@@ -0,0 +1,1501 @@
+diff -rupN ./xsnow-1.42/make2.com xsnow-comp-tmp/make2.com
+--- ./xsnow-1.42/make2.com	1995-11-19 06:53:27.000000000 -0500
++++ xsnow-comp-tmp/make2.com	1969-12-31 19:00:00.000000000 -0500
+@@ -1,51 +0,0 @@
+-$! Compile and link Xsnow under VMS 
+-$!
+-$! Get compiler info
+-$!
+-$ CFLAGS = "/optimize"
+-$ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "" -
+-        .and. CFLAGS - "/VAXC" .eqs. CFLAGS
+-$ all_cflags = CFLAGS
+-$ if decc then all_cflags = "/DECC/PREFIX=ALL " + all_cflags
+-$!
+-$!      Build the option-file
+-$!
+-$ open/write optf xsnow.opt
+-$ write optf "xsnow"
+-$ if .not.decc then write optf "SYS$SHARE:ucx$ipc/lib"
+-$ write optf "Identification=""Xsnow 1.39""
+-$!
+-$!
+-$!  Find out which X-Version we're running.  This will fail for older
+-$!  VMS versions (i.e., v5.5-1).  Therefore, choose DECWindows XUI for
+-$!  default.
+-$!
+-$ On Error Then GoTo XUI
+-$ @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version
+-$ if f$extract(4,3,decw$version).eqs."1.0"
+-$ then
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$ endif
+-$ if f$extract(4,3,decw$version).eqs."1.1"
+-$ then
+-$   write optf "sys$share:decw$xmulibshr.exe/share"
+-$   write optf "sys$share:decw$xtshr.exe/share"
+-$ endif
+-$ if f$extract(4,3,decw$version).eqs."1.2"
+-$ then
+-$   write optf "sys$share:decw$xmulibshrr5.exe/share"
+-$   write optf "sys$share:decw$xtlibshrr5.exe/share"
+-$ endif
+-$ GoTo MAIN
+-$!
+-$XUI:
+-$!
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$MAIN:
+-$!
+-$ write optf "sys$share:decw$xlibshr.exe/share"
+-$ if .not.decc then write optf "SYS$SHARE:VAXCRTL/SHARE"
+-$ close optf
+-$ cc'all_cflags' xsnow.c
+-$ link xsnow.opt/opt
+-$ exit
+diff -rupN ./xsnow-1.42/make.com xsnow-comp-tmp/make.com
+--- ./xsnow-1.42/make.com	1995-11-19 06:53:27.000000000 -0500
++++ xsnow-comp-tmp/make.com	1969-12-31 19:00:00.000000000 -0500
+@@ -1,85 +0,0 @@
+-$! Compile and link Xsnow under VMS 
+-$!
+-$! Get compiler info
+-$!
+-$ XSNOW_VERSION = "Xsnow 1.37"
+-$ 
+-$ echo := write sys$output
+-$ echo " --- This is a command procedure to build ''XSNOW_VERSION' ---"
+-$ 
+-$ CFLAGS = "/OPTIMIZE"
+-$ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "" -
+-        .and. CFLAGS - "/VAXC" .eqs. CFLAGS
+-$ all_cflags = CFLAGS
+-$ if decc then all_cflags = "/DECC/PREFIX=ALL " + all_cflags
+-$!
+-$!      Build the option-file
+-$!
+-$ open/write optf xsnow.opt
+-$ write optf "xsnow"
+-$ if .not.decc 
+-$ then 
+-$ 	if f$trnlmn("MULTINET").nes.""
+-$ 	then
+-$ 		! Try first the SHARE in MULTINET:
+-$		write optf "MULTINET:UCX$IPC_SHR/SHARE"
+-$ 	else
+-$ 		! Well, try the OLB then ...
+-$ 		if f$search("SYS$SHARE:UCX$IPC.OLB").nes."" 
+-$ 		then write optf "SYS$SHARE:ucx$ipc/lib"
+-$ 		endif
+-$ 	endif
+-$ endif
+-$ write optf "Identification=""''XSNOW_VERSION'""
+-$!
+-$!
+-$!  Find out which X-Version we're running.  This will fail for older
+-$!  VMS versions (i.e., v5.5-1).  Therefore, choose DECWindows XUI for
+-$!  default.
+-$!
+-$ On Error Then GoTo XUI
+-$ IF F$SEARCH("SYS$UPDATE:DECW$GET_IMAGE_VERSION.COM").NES.""
+-$ THEN
+-$  @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version
+-$  if f$extract(4,3,decw$version).eqs."1.0"
+-$  then
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$  endif
+-$  if f$extract(4,3,decw$version).eqs."1.1"
+-$  then
+-$   write optf "sys$share:decw$xmulibshr.exe/share"
+-$   write optf "sys$share:decw$xtshr.exe/share"
+-$  endif
+-$  if f$extract(4,3,decw$version).eqs."1.2"
+-$  then
+-$   write optf "sys$share:decw$xmulibshrr5.exe/share"
+-$   write optf "sys$share:decw$xtlibshrr5.exe/share"
+-$  endif
+-$  GoTo MAIN
+-$ ENDIF
+-$!
+-$XUI:
+-$!
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$MAIN:
+-$!
+-$ set noon
+-$ write optf "sys$share:decw$xlibshr.exe/share"
+-$ if .not.decc then write optf "SYS$SHARE:VAXCRTL/SHARE"
+-$ close optf
+-$ echo " . Compiling Xsnow "
+-$ cc'all_cflags' xsnow.c
+-$ echo " . Linking Xsnow"
+-$ on error then goto ERR
+-$ link xsnow.opt/opt
+-$ echo ""
+-$ echo "Xsnow is ready."
+-$ echo "  XSNOW :== $''f$env("DEFAULT")'XSNOW"
+-$ echo ""
+-$ XSNOW :== $'f$env("DEFAULT")'XSNOW
+-$ exit
+-$ 
+-$ ERR:
+-$  echo ""
+-$  echo "An error occur while linking Xsnow - Sorry"
+-$ EXIT
+diff -rupN ./xsnow-1.42/Makefile xsnow-comp-tmp/Makefile
+--- ./xsnow-1.42/Makefile	2001-12-15 18:43:31.000000000 -0500
++++ xsnow-comp-tmp/Makefile	1969-12-31 19:00:00.000000000 -0500
+@@ -1,957 +0,0 @@
+-# Makefile generated by imake - do not edit!
+-# $TOG: imake.c /main/104 1998/03/24 12:45:15 kaleb $
+-
+-# ----------------------------------------------------------------------
+-# Makefile generated from "Imake.tmpl" and <Imakefile>
+-# $TOG: Imake.tmpl /main/249 1997/10/13 15:28:56 kaleb $
+-#
+-#
+-#
+-#
+-# $XFree86: xc/config/cf/Imake.tmpl,v 3.87 2000/12/02 19:06:57 herrb Exp $
+-# ----------------------------------------------------------------------
+-
+-all::
+-
+-.SUFFIXES: .i
+-
+-# $TOG: Imake.cf /main/30 1998/04/28 13:55:25 barstow $
+-
+-# $XFree86: xc/config/cf/Imake.cf,v 3.63 2000/11/06 19:24:00 dawes Exp $
+-
+-# Keep cpp from replacing path elements containing 1/i586/i686
+-
+-#  for compatibility with 3.3.x
+-
+-# -----------------------------------------------------------------------
+-# site-specific configuration parameters that need to come before
+-# the platform-specific parameters - edit site.def to change
+-
+-# site:  $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+-
+-# site:  $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+-
+-# $XFree86: xc/config/cf/xf86site.def,v 3.170 2000/12/14 16:38:45 dawes Exp $
+-
+-# ----------------------------------------------------------------------
+-# platform-specific configuration parameters - edit linux.cf to change
+-
+-# platform:  $TOG: linux.cf /main/47 1998/04/17 11:32:51 mgreess
+-
+-# platform:  $XFree86: xc/config/cf/linux.cf,v 3.157 2000/12/14 17:00:46 dawes Exp $
+-
+-# operating system:  SuSE Linux [ELF] (2.4.0)
+-# libc:	(6.2.0)
+-# binutils:	(30)
+-
+-# $TOG: lnxLib.rules /main/14 1998/03/16 11:15:30 mgreess $
+-# $XFree86: xc/config/cf/lnxLib.rules,v 3.38 2000/06/15 20:49:56 dawes Exp $
+-
+-# $XFree86: xc/config/cf/xfree86.cf,v 3.338 2000/12/14 16:59:06 dawes Exp $
+-
+-# $TOG: xfree86.cf /main/38 1997/10/22 13:01:59 kaleb $
+-
+-AFB_DEFS = -DUSE_AFB
+-
+-DRIVERSDKDIR = $(USRLIBDIR)/Server
+-DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
+-DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
+-
+-       XF86SRC = $(SERVERSRC)/hw/xfree86
+-    XF86COMSRC = $(XF86SRC)/common
+- XF86PARSERSRC = $(XF86SRC)/parser
+-     XF86OSSRC = $(XF86SRC)/os-support
+- XF86DRIVERSRC = $(XF86SRC)/drivers
+-     DRIVERSRC = $(XF86DRIVERSRC)
+-
+-        XFREE86DOCDIR = $(DOCDIR)
+-      XFREE86PSDOCDIR = $(DOCPSDIR)
+-    XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
+-XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
+-
+-# $XConsortium: xf86.rules /main/9 1996/10/31 14:54:26 kaleb $
+-# $XFree86: xc/config/cf/xf86.rules,v 3.32 2000/10/30 23:02:06 tsi Exp $
+-
+-# ----------------------------------------------------------------------
+-# site-specific configuration parameters that go after
+-# the platform-specific parameters - edit site.def to change
+-
+-# site:  $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+-
+-# site:  $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+-
+-# ---------------------------------------------------------------------
+-# Imake rules for building libraries, programs, scripts, and data files
+-# rules:  $TOG: Imake.rules /main/227 1998/02/02 12:07:57 kaleb $
+-#
+-#
+-#
+-#
+-# rules:  $XFree86: xc/config/cf/Imake.rules,v 3.86 2000/12/12 17:05:30 dawes Exp $
+-
+- _NULLCMD_ = @ echo -n
+-
+-GLIDE2INCDIR = /usr/include/glide
+-
+-GLIDE3INCDIR = /usr/include/glide3
+-
+-GLIDE3LIBNAME = glide3
+-
+-TKLIBNAME =
+-
+-TKLIBDIR =
+-
+-TCLLIBNAME =
+-
+-TCLIBDIR =
+-
+-          PATHSEP = /
+-            SHELL = /bin/sh -e
+-
+-              TOP = .
+-      CURRENT_DIR = .
+-
+-            IMAKE = imake
+-           DEPEND = gccmakedep
+-        MKDIRHIER = mkdir -p
+-          REVPATH = revpath
+-    EXPORTLISTGEN =
+-             RMAN = rman
+-      RMANOPTIONS = -f HTML
+-        CONFIGSRC = $(TOP)/config
+-         IMAKESRC = $(CONFIGSRC)/imake
+-        DEPENDSRC = $(CONFIGSRC)/util
+-
+-          INCROOT = /usr/X11R6/include
+-        USRLIBDIR = /usr/X11R6/lib
+-           VARDIR = /var
+-        VARLIBDIR = $(VARDIR)/lib
+-  SYSTEMUSRLIBDIR = /usr/lib
+-  SYSTEMUSRINCDIR = /usr/include
+-         SHLIBDIR = /usr/X11R6/lib
+-       LINTLIBDIR = $(USRLIBDIR)/lint
+-          MANPATH = /usr/X11R6/man
+-    MANSOURCEPATH = $(MANPATH)/man
+-           MANDIR = $(MANSOURCEPATH)1
+-        LIBMANDIR = $(MANSOURCEPATH)3
+-       FILEMANDIR = $(MANSOURCEPATH)5
+-       MISCMANDIR = $(MANSOURCEPATH)$(MISCMANSUFFIX)
+-     DRIVERMANDIR = $(MANSOURCEPATH)$(DRIVERMANSUFFIX)
+-     LOGDIRECTORY = $(VARDIR)/log
+-
+-        VARRUNDIR = $(VARDIR)/run
+-
+-         VARDBDIR = /var/lib
+-
+-               AR = ar clq
+-  BOOTSTRAPCFLAGS =
+-               CC = gcc
+-               AS = as
+-
+-.SUFFIXES: .cc
+-
+-              CXX = c++
+-          CXXFILT = c++filt
+-           CXXLIB =
+-    CXXDEBUGFLAGS = -O2
+-CXXDEPENDINCLUDES =
+- CXXEXTRA_DEFINES =
+-CXXEXTRA_INCLUDES =
+-   CXXSTD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(CXXPROJECT_DEFINES)
+-       CXXOPTIONS =
+-      CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
+-       CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(CXXEXTRA_DEFINES) $(DEFINES)
+-         CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
+-
+-         COMPRESS = compress
+-          GZIPCMD = gzip
+-              CPP = /lib/cpp $(STD_CPP_DEFINES)
+-           RAWCPP = /lib/cpp -undef $(STD_CPP_OPTIONS)
+-    PREPROCESSCMD = gcc -E $(STD_CPP_DEFINES)
+-          INSTALL = install
+-     INSTALLFLAGS = -c
+-               LD = ld
+-              LEX = flex -l
+-               M4 = m4
+-          M4FLAGS =
+-           LEXLIB = -lfl
+-             YACC = bison -y
+-           CCYACC = bison -y
+-             LINT = lint
+-      LINTLIBFLAG = -C
+-         LINTOPTS = -axz
+-               LN = ln -s
+-             MAKE = make
+-               MV = mv -f
+-               CP = cp
+-
+-           RANLIB = ranlib
+-  RANLIBINSTFLAGS =
+-
+-               RM = rm -f
+-             PERL = perl
+-         PERLOPTS =
+-        MANSUFFIX = 1x
+-     LIBMANSUFFIX = 3x
+-    FILEMANSUFFIX = 5x
+-    MISCMANSUFFIX = 7
+-  DRIVERMANSUFFIX = 4
+-          MANDEFS = -D__filemansuffix__=$(FILEMANSUFFIX) -D__miscmansuffix__=$(MISCMANSUFFIX) -D__drivermansuffix__=$(DRIVERMANSUFFIX) -D__projectroot__=$(PROJECTROOT)
+-
+-            TROFF = groff -Tps
+-            NROFF = nroff
+-         MSMACROS = -ms
+-        MANMACROS = -man
+-              TBL = tbl
+-              EQN = eqn
+-             NEQN = neqn
+-              COL = col
+-         COLFLAGS = -b
+-            MODCC = gcc
+-           MODCPP = /lib/cpp
+-        MODCFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREAD_CFLAGS) $(ALLDEFINES)
+-            MODAS = as
+-       MODASFLAGS =
+-            MODLD = ld
+-       MODLDFLAGS =
+-MODLDCOMBINEFLAGS = -r
+-            MODAR = ar clq
+-        MODRANLIB =
+-
+-     STD_INCLUDES =
+-  STD_CPP_OPTIONS = -traditional
+-  STD_CPP_DEFINES = -traditional -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(PROJECT_DEFINES)
+-      STD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(PROJECT_DEFINES)
+- EXTRA_LOAD_FLAGS =
+-  EXTRA_LDOPTIONS =
+-  EXTRA_LIBRARIES =
+-             TAGS = ctags
+-
+-   PARALLELMFLAGS =
+-
+-    SHAREDCODEDEF =
+-         SHLIBDEF =
+-
+-     SHLIBLDFLAGS = -shared
+-
+-         PICFLAGS = -fPIC
+-
+-      CXXPICFLAGS = -fPIC
+-
+-    PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
+-
+-     INSTPGMFLAGS =
+-
+-     INSTBINFLAGS = -m 0755
+-     INSTUIDFLAGS = -m 4711
+-     INSTLIBFLAGS = -m 0644
+-     INSTINCFLAGS = -m 0444
+-     INSTMANFLAGS = -m 0444
+-     INSTDATFLAGS = -m 0444
+-    INSTKMEMFLAGS = -m 4711
+-
+-      PROJECTROOT = /usr/X11R6
+-
+-      CDEBUGFLAGS = -O2
+-        CCOPTIONS =
+-
+-      ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES)
+-       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES)
+-           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
+-        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+-         LDPRELIB = -L$(USRLIBDIR)
+-        LDPOSTLIB =
+-        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)  $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+-     CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+-
+-           LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+-
+-           CCLINK = $(CC)
+-
+-          CXXLINK = $(CXX)
+-
+-     LDSTRIPFLAGS = -x
+-   LDCOMBINEFLAGS = -r
+-      DEPENDFLAGS =
+-
+-# Not sure this belongs here
+-         TKLIBDIR =
+-         TKINCDIR =
+-        TKLIBNAME =
+-        TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
+-        TCLLIBDIR =
+-        TCLINCDIR =
+-       TCLLIBNAME =
+-       TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
+-
+-        MACROFILE = linux.cf
+-           RM_CMD = $(RM)
+-
+-    IMAKE_DEFINES =
+-
+-         IRULESRC = $(CONFIGDIR)
+-        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
+-
+-     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl 			$(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) 			$(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xf86site.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
+-
+-# $TOG: X11.rules /main/4 1997/04/30 15:23:24 kaleb $
+-
+-# $XFree86: xc/config/cf/X11.rules,v 1.5 2000/11/06 19:24:00 dawes Exp $
+-
+-# ----------------------------------------------------------------------
+-# X Window System Build Parameters and Rules
+-# $TOG: X11.tmpl /main/308 1998/06/16 15:14:24 msr $
+-#
+-#
+-#
+-#
+-# $XFree86: xc/config/cf/X11.tmpl,v 1.93 2000/12/15 18:18:04 keithp Exp $
+-
+-STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
+-
+-FCHOWN_DEFINES = -DHAS_FCHOWN
+-
+-# -----------------------------------------------------------------------
+-# X Window System make variables; these need to be coordinated with rules
+-
+-             XTOP = $(TOP)
+-           BINDIR = /usr/X11R6/bin
+-     BUILDINCROOT = $(TOP)/exports
+-      BUILDINCDIR = $(BUILDINCROOT)/include
+-      BUILDINCTOP = ../..
+-      BUILDLIBDIR = $(TOP)/exports/lib
+-      BUILDLIBTOP = ../..
+-      BUILDBINDIR = $(TOP)/exports/bin
+-      BUILDBINTOP = ../..
+-   BUILDMODULEDIR = $(BUILDLIBDIR)/modules
+-   BUILDMODULETOP = $(BUILDLIBTOP)/..
+-    XBUILDINCROOT = $(XTOP)/exports
+-     XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
+-     XBUILDINCTOP = ../../..
+-     XBUILDBINDIR = $(XBUILDINCROOT)/bin
+-           INCDIR = $(INCROOT)
+-           ADMDIR = /usr/adm
+-           LIBDIR = $(USRLIBDIR)/X11
+-       LIBEXECDIR = /usr/X11R6/libexec
+-        MODULEDIR = $(USRLIBDIR)/modules
+-   TOP_X_INCLUDES =
+-
+-        ETCX11DIR = /etc/X11
+-
+-          CONFDIR = $(ETCX11DIR)
+-
+-           DOCDIR = $(LIBDIR)/doc
+-       DOCHTMLDIR = $(DOCDIR)/html
+-         DOCPSDIR = $(DOCDIR)/PostScript
+-          FONTDIR = $(LIBDIR)/fonts
+-     ENCODINGSDIR = $(FONTDIR)/encodings
+-         XINITDIR = $(LIBDIR)/xinit
+-           XDMDIR = /etc/X11/xdm
+-        XDMVARDIR = $(VARLIBDIR)/xdm
+-           TWMDIR = $(LIBDIR)/twm
+-           XSMDIR = $(LIBDIR)/xsm
+-           NLSDIR = $(LIBDIR)/nls
+-       XLOCALEDIR = $(LIBDIR)/locale
+-        PEXAPIDIR = $(LIBDIR)/PEX
+-      LBXPROXYDIR = $(LIBDIR)/lbxproxy
+-  PROXYMANAGERDIR = $(LIBDIR)/proxymngr
+-        XPRINTDIR = $(LIBDIR)/xserver
+-      XAPPLOADDIR = $(LIBDIR)/app-defaults
+-       FONTCFLAGS = -t
+-
+-     INSTAPPFLAGS = $(INSTDATFLAGS)
+-
+-              RGB = $(BINDIR)/rgb
+-            FONTC = $(BINDIR)/bdftopcf
+-        MKFONTDIR = $(BINDIR)/mkfontdir
+-      MKHTMLINDEX = $(BINDIR)/mkhtmlindex
+-          UCS2ANY = $(BINDIR)/ucs2any.pl
+-      BDFTRUNCATE = $(BINDIR)/bdftruncate.pl
+-     UCSMAPPREFIX = $(FONTDIR)/util/map-
+-
+-     HTMLINDEXCMD = HtmlIndexCmd
+-
+-       DOCUTILSRC = $(XTOP)/doc/util
+-        CLIENTSRC = $(TOP)/clients
+-          DEMOSRC = $(TOP)/demos
+-       XDOCMACROS = $(DOCUTILSRC)/macros.t
+-       XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
+-       PROGRAMSRC = $(TOP)/programs
+-           LIBSRC = $(XTOP)/lib
+-          FONTSRC = $(XTOP)/fonts
+-     ENCODINGSSRC = $(FONTSRC)/encodings
+-       INCLUDESRC = $(BUILDINCROOT)/include
+-      XINCLUDESRC = $(INCLUDESRC)/X11
+-        SERVERSRC = $(XTOP)/programs/Xserver
+-       CONTRIBSRC = $(XTOP)/../contrib
+-   UNSUPPORTEDSRC = $(XTOP)/unsupported
+-           DOCSRC = $(XTOP)/doc
+-           RGBSRC = $(XTOP)/programs/rgb
+-      BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
+-     MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
+-    FONTSERVERSRC = $(PROGRAMSRC)/xfs
+-       FONTINCSRC = $(XTOP)/include/fonts
+-        EXTINCSRC = $(XTOP)/include/extensions
+-      FTSOURCEDIR = $(TOP)/extras/FreeType
+-     XTTSOURCEDIR = $(TOP)/extras/X-TrueType
+-       MESASRCDIR = $(TOP)/extras/Mesa
+-  OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
+-        PSWRAPSRC = $(XTOP)/config/pswrap
+-     TRANSCOMMSRC = $(LIBSRC)/xtrans
+-   TRANS_INCLUDES = -I$(TRANSCOMMSRC)
+- CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES)
+-
+-       XENVLIBDIR = $(USRLIBDIR)
+-   CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR)
+-
+-# $TOG: lnxLib.tmpl /main/7 1998/03/20 14:26:41 mgreess $
+-# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.12 1999/06/27 14:07:17 dawes Exp $
+-
+-          XLIBSRC = $(LIBSRC)/X11
+-
+-SOXLIBREV = 6.2
+-DEPXONLYLIB =
+-XONLYLIB =  -lX11
+-
+-LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
+-
+-         XLIBONLY = $(XONLYLIB)
+-
+-      XEXTLIBSRC = $(LIBSRC)/Xext
+-
+-SOXEXTREV = 6.4
+-DEPEXTENSIONLIB =
+-EXTENSIONLIB =  -lXext
+-
+-LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
+-
+-LINTEXTENSIONLIB = $(LINTEXTENSION)
+-          DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
+-             XLIB = $(EXTENSIONLIB) $(XONLYLIB)
+-         LINTXLIB = $(LINTXONLYLIB)
+-
+-    XSSLIBSRC = $(LIBSRC)/Xss
+-
+-DEPXSSLIB = $(USRLIBDIR)/libXss.a
+-XSSLIB =  -lXss
+-
+-LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
+-
+-    XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
+-
+-SOXXF86MISCREV = 1.0
+-DEPXXF86MISCLIB =
+-XXF86MISCLIB =  -lXxf86misc
+-
+-LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
+-
+-    XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
+-
+-SOXXF86VMREV = 1.0
+-DEPXXF86VMLIB =
+-XXF86VMLIB =  -lXxf86vm
+-
+-LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
+-
+-    XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
+-
+-SOXXF86DGAREV = 1.0
+-DEPXXF86DGALIB =
+-XXF86DGALIB =  -lXxf86dga
+-
+-LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
+-
+-    XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
+-
+-DEPXXF86RUSHLIB = $(USRLIBDIR)/libXxf86rush.a
+-XXF86RUSHLIB =  -lXxf86rush
+-
+-LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
+-
+-    XVLIBSRC = $(LIBSRC)/Xv
+-
+-SOXVREV = 1.0
+-DEPXVLIB =
+-XVLIB =  -lXv
+-
+-LINTXV = $(LINTLIBDIR)/llib-lXv.ln
+-
+-    XINERAMALIBSRC = $(LIBSRC)/Xinerama
+-
+-DEPXINERAMALIB = $(USRLIBDIR)/libXinerama.a
+-XINERAMALIB =  -lXinerama
+-
+-LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+-
+-    XINERAMALIBSRC = $(LIBSRC)/Xinerama
+-
+-DEPXINERAMALIB = $(USRLIBDIR)/libXinerama.a
+-XINERAMALIB =  -lXinerama
+-
+-LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+-
+-    DPSLIBSRC = $(LIBSRC)/dps
+-
+-SODPSREV = 1.0
+-DEPDPSLIB =
+-DPSLIB =  -ldps
+-
+-LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
+-
+-    DPSTKLIBSRC = $(LIBSRC)/dpstk
+-
+-SODPSTKREV = 1.0
+-DEPDPSTKLIB =
+-DPSTKLIB =  -ldpstk
+-
+-LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
+-
+-    PSRESLIBSRC = $(LIBSRC)/psres
+-
+-SOPSRESREV = 1.0
+-DEPPSRESLIB =
+-PSRESLIB =  -lpsres
+-
+-LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
+-
+-    GLXLIBSRC = $(LIBSRC)/GL
+-
+-SOGLREV = 1.2
+-DEPGLXLIB =
+-GLXLIB =  -lGL
+-
+-LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
+-
+-    GLWIDGETSRC = $(LIBSRC)/GLw
+-
+-DEPGLWLIB = $(USRLIBDIR)/libGLw.a
+-GLWLIB =  -lGLw
+-
+-LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
+-
+-    XRENDERLIBSRC = $(LIBSRC)/Xrender
+-
+-SOXRENDERREV = 1.0
+-DEPXRENDERLIB =
+-XRENDERLIB =  -lXrender
+-
+-LINTXRENDER = $(LINTLIBDIR)/llib-lXrender.ln
+-
+-    XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
+-
+-DEPXFONTCACHELIB = $(USRLIBDIR)/libXfontcache.a
+-XFONTCACHELIB =  -lXfontcache
+-
+-LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
+-
+-         XAUTHSRC = $(LIBSRC)/Xau
+-
+-DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
+-XAUTHLIB =  -lXau
+-
+-LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
+-
+-      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
+-
+-DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a
+-XDMCPLIB =  -lXdmcp
+-
+-LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
+-
+-           XMUSRC = $(LIBSRC)/Xmu
+-
+-SOXMUREV = 6.2
+-DEPXMULIB =
+-XMULIB =  -lXmu
+-
+-LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
+-
+-       OLDXLIBSRC = $(LIBSRC)/oldX
+-
+-DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
+-OLDXLIB =  -loldX
+-
+-LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
+-
+-         XPLIBSRC = $(LIBSRC)/Xp
+-
+-SOXPREV = 6.2
+-DEPXPLIB =
+-XPLIB =  -lXp
+-
+-LINTXP = $(LINTLIBDIR)/llib-lXp.ln
+-
+-       TOOLKITSRC = $(LIBSRC)/Xt
+-
+-SOXTREV = 6.0
+-DEPXTOOLONLYLIB =
+-XTOOLONLYLIB =  -lXt
+-
+-LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
+-
+-      DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
+-         XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
+-     LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
+-
+-       XALIBSRC = $(LIBSRC)/Xa
+-
+-SOXAREV = 1.0
+-DEPXALIB =
+-XALIB =  -lXa
+-
+-LINTXA = $(LINTLIBDIR)/llib-lXa.ln
+-
+-       AWIDGETSRC = $(LIBSRC)/Xaw
+-
+-SOXAWREV = 7.0
+-DEPXAWLIB =
+-XAWLIB =  -lXaw
+-
+-LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
+-
+-       AWIDGET6SRC = $(LIBSRC)/Xaw6
+-
+-SOXAW6REV = 6.1
+-DEPXAW6LIB =
+-XAW6LIB =  -lXaw
+-
+-LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
+-
+-         XILIBSRC = $(LIBSRC)/Xi
+-
+-SOXINPUTREV = 6.0
+-DEPXILIB =
+-XILIB =  -lXi
+-
+-LINTXI = $(LINTLIBDIR)/llib-lXi.ln
+-
+-      XTESTLIBSRC = $(LIBSRC)/Xtst
+-
+-SOXTESTREV = 6.1
+-DEPXTESTLIB =
+-XTESTLIB =  -lXtst
+-
+-LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
+-
+-        PEXLIBSRC = $(LIBSRC)/PEX5
+-
+-SOPEXREV = 6.0
+-DEPPEXLIB =
+-PEXLIB =  -lPEX5
+-
+-LINTPEX = $(LINTLIBDIR)/llib-lPEX5.ln
+-
+-        XIELIBSRC = $(LIBSRC)/XIE
+-
+-SOXIEREV = 6.0
+-DEPXIELIB =
+-XIELIB =  -lXIE
+-
+-LINTXIE = $(LINTLIBDIR)/llib-lXIE.ln
+-
+-      PHIGSLIBSRC = $(LIBSRC)/PHIGS
+-
+-DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a
+-PHIGSLIB =  -lphigs
+-
+-LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln
+-
+-DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
+-XBSDLIB =  -lXbsd
+-
+-LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
+-
+-           ICESRC = $(LIBSRC)/ICE
+-
+-SOICEREV = 6.3
+-DEPICELIB =
+-ICELIB =  -lICE
+-
+-LINTICE = $(LINTLIBDIR)/llib-lICE.ln
+-
+-            SMSRC = $(LIBSRC)/SM
+-
+-SOSMREV = 6.0
+-DEPSMLIB =
+-SMLIB =  -lSM
+-
+-LINTSM = $(LINTLIBDIR)/llib-lSM.ln
+-
+-           XKEYSRC = $(LIBSRC)/Xkey
+-
+-SOXKEYREV = 6.0
+-DEPXKEYLIB =
+-XKEYLIB =  -lXkey
+-
+-LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
+-
+-         FSLIBSRC = $(LIBSRC)/FS
+-
+-DEPFSLIB = $(USRLIBDIR)/libFS.a
+-FSLIB =  -lFS
+-
+-LINTFS = $(LINTLIBDIR)/llib-lFS.ln
+-
+-         FONTLIBSRC = $(LIBSRC)/font
+-
+-SOFONTREV = 1.3
+-DEPFONTLIB =
+-FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC)  -lXfont
+-
+-LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+-#
+-SOFONTREV = 1.3
+-DEPXFONTLIB =
+-XFONTLIB =  -lXfont
+-
+-LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+-
+-     FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
+-
+-DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
+-FONTSTUBLIB =  -lfntstubs
+-
+-LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
+-         DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
+-            FONTLIB = $(XFONTLIB) $(FONTSTUBLIB)
+-
+-          XPMLIBSRC = $(LIBSRC)/Xpm
+-
+-SOXPMREV = 4.11
+-DEPXPMLIB =
+-XPMLIB =  -lXpm
+-
+-LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
+-
+-          XFTLIBSRC = $(LIBSRC)/Xft
+-
+-SOXFTREV = 1.0
+-DEPXFTLIB =
+-XFTLIB =  -lXft
+-
+-LINTXFT = $(LINTLIBDIR)/llib-lXft.ln
+-
+-FREETYPE2DIR = freetype-2.0.1
+-FREETYPE2LIBDIR = freetype-2.0.1/lib
+-FREETYPE2INCDIR = freetype-2.0.1/include/freetype2
+-FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)
+-FREETYPE2LIB = -L$(FREETYPE2LIBDIR) -lfreetype
+-FREETYPE2DEFINES = -DFREETYPE2
+-
+-    XKBFILELIBSRC = $(LIBSRC)/xkbfile
+-
+-DEPXKBFILELIB = $(USRLIBDIR)/libxkbfile.a
+-XKBFILELIB =  -lxkbfile
+-
+-LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
+-
+-     XKBCOMPCMD = $(BINDIR)/xkbcomp
+-
+-    XKBUILIBSRC = $(LIBSRC)/xkbui
+-
+-DEPXKBUILIB = $(USRLIBDIR)/libxkbui.a
+-XKBUILIB =  -lxkbui
+-
+-LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
+-
+-          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
+-
+-         DEPLIBS1 = $(DEPLIBS)
+-         DEPLIBS2 = $(DEPLIBS)
+-         DEPLIBS3 = $(DEPLIBS)
+-         DEPLIBS4 = $(DEPLIBS)
+-         DEPLIBS5 = $(DEPLIBS)
+-         DEPLIBS6 = $(DEPLIBS)
+-         DEPLIBS7 = $(DEPLIBS)
+-         DEPLIBS8 = $(DEPLIBS)
+-         DEPLIBS9 = $(DEPLIBS)
+-         DEPLIBS10 = $(DEPLIBS)
+-
+-XMULIBONLY = -lXmu
+-XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
+-
+-        CONFIGDIR = $(LIBDIR)/config
+-
+-    USRLIBDIRPATH = $(USRLIBDIR)
+-        LDPRELIBS = -L$(USRLIBDIR)
+-       LDPOSTLIBS =
+-     TOP_INCLUDES = -I$(INCROOT) $(TOP_X_INCLUDES)
+-  PROJECT_DEFINES =
+-
+-CXXPROJECT_DEFINES =
+-
+-# ----------------------------------------------------------------------
+-# start of Imakefile
+-
+-SYS_LIBRARIES = -lm -lXpm
+-LOCAL_LIBRARIES = $(XLIB)
+-DEPLIBS = $(DEPXLIB)
+-SRCS = xsnow.c toon_root.c xsnow.h vroot.h
+-OBJS = xsnow.o toon_root.o
+-
+- PROGRAM = xsnow
+-
+-all:: xsnow
+-
+-xsnow: $(OBJS) $(DEPLIBS)
+-	$(RM) $@
+-	$(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS)  $(EXTRA_LOAD_FLAGS)
+-
+-install:: xsnow
+-	@if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \
+-	else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS)  xsnow $(DESTDIR)$(BINDIR)/xsnow
+-
+-install.man:: xsnow.man
+-	@if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \
+-	else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xsnow.man $(DESTDIR)$(MANDIR)/xsnow.$(MANSUFFIX)
+-
+-depend::
+-	$(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
+-
+-lint:
+-	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
+-lint1:
+-	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
+-
+-clean::
+-	$(RM) xsnow
+-
+-# ----------------------------------------------------------------------
+-# common rules for all Makefiles - do not edit
+-
+-.c.i:
+-	$(RM) $@
+-	 $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
+-
+-.SUFFIXES: .s
+-
+-.c.s:
+-	$(RM) $@
+-	 $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
+-
+-emptyrule::
+-
+-clean::
+-	$(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut  "#"*
+-
+-Makefile::
+-	-@if [ -f Makefile ]; then set -x; \
+-	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
+-	else exit 0; fi
+-	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+-
+-tags::
+-	$(TAGS) -w *.[ch]
+-	$(TAGS) -xw *.[ch] > TAGS
+-
+-man_keywords::
+-
+-html_index::
+-
+-# ----------------------------------------------------------------------
+-# empty rules for directories that do not have SUBDIRS - do not edit
+-
+-install::
+-	@echo "install in $(CURRENT_DIR) done"
+-
+-install.man::
+-	@echo "install.man in $(CURRENT_DIR) done"
+-
+-install.sdk::
+-	@echo "install.sdk in $(CURRENT_DIR) done"
+-
+-Makefiles::
+-
+-includes::
+-
+-depend::
+-
+-# ----------------------------------------------------------------------
+-# dependencies generated by makedepend
+-
+-# DO NOT DELETE
+-xsnow.o: xsnow.c /usr/X11R6/include/X11/Intrinsic.h \
+- /usr/X11R6/include/X11/Xlib.h /usr/include/sys/types.h \
+- /usr/include/features.h /usr/include/sys/cdefs.h \
+- /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stddef.h \
+- /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+- /usr/include/sys/select.h /usr/include/bits/select.h \
+- /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+- /usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
+- /usr/X11R6/include/X11/Xosdefs.h /usr/X11R6/include/X11/Xutil.h \
+- /usr/X11R6/include/X11/Xresource.h /usr/include/string.h \
+- /usr/X11R6/include/X11/Core.h /usr/X11R6/include/X11/Composite.h \
+- /usr/X11R6/include/X11/Constraint.h /usr/X11R6/include/X11/Object.h \
+- /usr/X11R6/include/X11/RectObj.h /usr/X11R6/include/X11/Xos.h \
+- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+- /usr/include/sys/stat.h /usr/include/bits/stat.h \
+- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+- /usr/include/bits/confname.h /usr/include/getopt.h \
+- /usr/include/sys/time.h /usr/include/bits/time.h \
+- /usr/X11R6/include/X11/Xarch.h /usr/X11R6/include/X11/xpm.h \
+- /usr/include/stdio.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stdarg.h \
+- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+- /usr/include/bits/wchar.h /usr/include/gconv.h \
+- /usr/include/bits/stdio_lim.h /usr/include/math.h \
+- /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h \
+- /usr/include/bits/mathcalls.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/float.h \
+- /usr/include/signal.h /usr/include/bits/signum.h \
+- /usr/include/bits/siginfo.h /usr/include/bits/wordsize.h \
+- /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \
+- /usr/include/asm/sigcontext.h /usr/include/bits/sigstack.h \
+- /usr/include/ucontext.h /usr/include/sys/ucontext.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/limits.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/syslimits.h \
+- /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+- /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+- /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+- /usr/include/bits/waitstatus.h /usr/include/alloca.h xsnow.h \
+- pixmaps/snow00.xbm pixmaps/snow01.xbm pixmaps/snow02.xbm \
+- pixmaps/snow03.xbm pixmaps/snow04.xbm pixmaps/snow05.xbm \
+- pixmaps/snow06.xbm pixmaps/tannenbaum.xbm pixmaps/BigSanta1.XPM \
+- pixmaps/BigSanta2.XPM pixmaps/BigSanta3.XPM pixmaps/BigSanta4.XPM \
+- pixmaps/BigSantaRudolf1.XPM pixmaps/BigSantaRudolf2.XPM \
+- pixmaps/BigSantaRudolf3.XPM pixmaps/BigSantaRudolf4.XPM \
+- pixmaps/MediumSanta1.XPM pixmaps/MediumSanta2.XPM \
+- pixmaps/MediumSanta3.XPM pixmaps/MediumSanta4.XPM \
+- pixmaps/MediumSantaRudolf1.XPM pixmaps/MediumSantaRudolf2.XPM \
+- pixmaps/MediumSantaRudolf3.XPM pixmaps/MediumSantaRudolf4.XPM \
+- pixmaps/RegularSanta1.XPM pixmaps/RegularSanta2.XPM \
+- pixmaps/RegularSanta3.XPM pixmaps/RegularSanta4.XPM \
+- pixmaps/RegularSantaRudolf1.XPM pixmaps/RegularSantaRudolf2.XPM \
+- pixmaps/RegularSantaRudolf3.XPM pixmaps/RegularSantaRudolf4.XPM \
+- toon.h /usr/X11R6/include/X11/extensions/shape.h
+-toon_root.o: toon_root.c toon.h /usr/X11R6/include/X11/Intrinsic.h \
+- /usr/X11R6/include/X11/Xlib.h /usr/include/sys/types.h \
+- /usr/include/features.h /usr/include/sys/cdefs.h \
+- /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stddef.h \
+- /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+- /usr/include/sys/select.h /usr/include/bits/select.h \
+- /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+- /usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
+- /usr/X11R6/include/X11/Xosdefs.h /usr/X11R6/include/X11/Xutil.h \
+- /usr/X11R6/include/X11/Xresource.h /usr/include/string.h \
+- /usr/X11R6/include/X11/Core.h /usr/X11R6/include/X11/Composite.h \
+- /usr/X11R6/include/X11/Constraint.h /usr/X11R6/include/X11/Object.h \
+- /usr/X11R6/include/X11/RectObj.h /usr/X11R6/include/X11/Xos.h \
+- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+- /usr/include/sys/stat.h /usr/include/bits/stat.h \
+- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+- /usr/include/bits/confname.h /usr/include/getopt.h \
+- /usr/include/sys/time.h /usr/include/bits/time.h \
+- /usr/X11R6/include/X11/Xarch.h /usr/X11R6/include/X11/xpm.h \
+- /usr/X11R6/include/X11/extensions/shape.h \
+- /usr/X11R6/include/X11/Xatom.h /usr/X11R6/include/X11/Xproto.h \
+- /usr/X11R6/include/X11/Xmd.h /usr/X11R6/include/X11/Xprotostr.h \
+- /usr/include/stdio.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stdarg.h \
+- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+- /usr/include/bits/wchar.h /usr/include/gconv.h \
+- /usr/include/bits/stdio_lim.h
+diff -rupN ./xsnow-1.42/PATCH_LICENSE xsnow-comp-tmp/PATCH_LICENSE
+--- ./xsnow-1.42/PATCH_LICENSE	1969-12-31 19:00:00.000000000 -0500
++++ xsnow-comp-tmp/PATCH_LICENSE	2016-02-27 19:47:13.444837394 -0500
+@@ -0,0 +1,21 @@
++The MIT License (MIT)
++
++Copyright (c) 2016 Austin Anderson
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
+diff -rupN ./xsnow-1.42/xsnow.c xsnow-comp-tmp/xsnow.c
+--- ./xsnow-1.42/xsnow.c	2001-12-15 18:44:47.000000000 -0500
++++ xsnow-comp-tmp/xsnow.c	2016-02-27 19:47:13.448170769 -0500
+@@ -212,7 +212,8 @@
+ 	etc.
+ */
+ #define VERSION "Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)\n\
+-WWW: http://www.euronet.nl/~rja/Xsnow/\n"
++WWW: http://www.euronet.nl/~rja/Xsnow/\n\
++Compositor patch v1 https://github.com/protractorninja/xsnow-comp-patch\n"
+ 
+ #ifdef VMS
+ #include <socket.h>
+@@ -253,6 +254,7 @@ typedef int ErrorHandler();
+ #endif
+ Display *display;
+ int screen;
++Window snowWin;
+ Window rootWin;
+ char toon_message[TOON_MESSAGE_LENGTH] = "";
+ Window Parent;
+@@ -272,6 +274,7 @@ int NoKeepSnow = 0;
+ int NoKeepSBot = 0;
+ int NoKeepSWin = 0;
+ int NoPopuphandling = 1;
++int ForceNewWindow = 0;
+ int NoWind = 0;
+ unsigned int borderWidth = 0;
+ int SnowOffset = 0;
+@@ -321,6 +324,7 @@ XRectangle AddRect;
+ unsigned int RunCounter = 0;
+ int SantaUpdateFactor = 3;
+ /* Forward decls */
++int  HasCompositor();
+ void Usage();
+ void SigHandler();
+ void SigHupHandler();
+@@ -506,6 +510,9 @@ char *av[];
+ 				printf("\nThis is %s\n\n", VERSION);
+ 				exit(0);
+ 			}
++			else if (strcmp(arg, "-nouseroot") == 0) {
++				ForceNewWindow = 1;
++			}
+ 			else {
+ 				Usage();
+ 			}
+@@ -553,10 +560,29 @@ char *av[];
+ 		}
+ 		screen = DefaultScreen(display);
+ 		rootWin = ToonGetRootWindow(display, screen, &Parent);
+-		black = BlackPixel(display, screen);
+-		white = WhitePixel(display, screen);
+ 		display_width = DisplayWidth(display, screen);
+ 		display_height = DisplayHeight(display, screen);
++		if (HasCompositor(display, screen) || ForceNewWindow) {
++			NoSanta = 1;
++			XVisualInfo vinfo;
++			XMatchVisualInfo(display, DefaultScreen(display), 32, TrueColor, &vinfo);
++			XSetWindowAttributes attr;
++			attr.colormap = XCreateColormap(display, rootWin, vinfo.visual, AllocNone);
++			attr.border_pixel = 0;
++			attr.background_pixel = 0;
++			attr.override_redirect = 1;
++			snowWin = XCreateWindow(display, rootWin, 0, 0, display_width, display_height, 0, vinfo.depth, InputOutput, vinfo.visual, CWColormap | CWBorderPixel | CWBackPixel | CWOverrideRedirect, &attr);
++			XClassHint* hint = XAllocClassHint();
++			hint->res_name = "xsnow";
++			hint->res_class = "xsnow";
++			XSetClassHint(display, snowWin, hint);
++			XMapRaised(display, snowWin);
++			XLowerWindow(display, snowWin);
++		} else {
++			snowWin = rootWin;
++		}
++		black = BlackPixel(display, screen);
++		white = WhitePixel(display, screen);
+ 		center_x = display_width / 2;
+ 		center_y = display_height / 2;
+ 		current_snow_height = display_height;
+@@ -566,13 +592,13 @@ char *av[];
+ 		}
+ 		for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) {
+ 			rp = &snowPix[flake];
+-			rp->pixmap = XCreateBitmapFromData(display, rootWin,
++			rp->pixmap = XCreateBitmapFromData(display, snowWin,
+ 						rp->snowBits, rp->width, rp->height);
+ 			if (rp->height > MaxSnowFlakeHeight) MaxSnowFlakeHeight = rp->height;
+ 		}
+ 		snowflakes = (Snow *)malloc(sizeof(Snow) * MAXSNOWFLAKES);
+ 		tp = &tannenbaumPix[0];
+-		tp->pixmap = XCreateBitmapFromData(display, rootWin,
++		tp->pixmap = XCreateBitmapFromData(display, snowWin,
+ 						tp->tannenbaumBits, tp->width, tp->height);
+ 		InitSantaPixymaps();
+ 		redPix =   AllocNamedColor(redColor, black);
+@@ -581,21 +607,21 @@ char *av[];
+ 		blackPix = AllocNamedColor(blackColor, black);
+ 		snowcPix = AllocNamedColor(snowColor, white);   
+ 		trPix = AllocNamedColor(trColor, black);
+-		gc = XCreateGC(display, rootWin, 0, NULL);
++		gc = XCreateGC(display, snowWin, 0, NULL);
+ 		XGetGCValues(display, gc, 0, &xgcv);
+ 		XSetForeground(display, gc, blackPix);
+ 		XSetFillStyle(display, gc, FillStippled);
+ 		if(strcmp(bgColor,"none") != 0) {
+ 			bgPix = AllocNamedColor(bgColor, white);
+-			XSetWindowBackground(display, rootWin, bgPix);
+-			XClearWindow(display, rootWin);
++			XSetWindowBackground(display, snowWin, bgPix);
++			XClearWindow(display, snowWin);
+ 			XFlush(display);
+ 			if (!UseFillForClear) {
+ 				printf("\nNote: when using backgrounds of one color also specifying\n");
+ 				printf("      -solidbg MAY greatly improve performance!\n");
+ 			}
+ 			else {
+-				ClearSnowGC = XCreateGC(display, rootWin, 0L, &xgcv);
++				ClearSnowGC = XCreateGC(display, snowWin, 0L, &xgcv);
+ 				XCopyGC(display,gc,0,ClearSnowGC);
+ 				XSetForeground(display,ClearSnowGC, bgPix);
+ 			}
+@@ -608,13 +634,13 @@ char *av[];
+ 			exit(1);
+ 		}
+ 		for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) {
+-			SnowGC[flake] = XCreateGC(display, rootWin, 0L, &xgcv);
++			SnowGC[flake] = XCreateGC(display, snowWin, 0L, &xgcv);
+ 			XCopyGC(display,gc,0,SnowGC[flake]);
+ 			XSetStipple(display, SnowGC[flake], snowPix[flake].pixmap);
+ 			XSetForeground(display,SnowGC[flake],snowcPix);
+ 			XSetFillStyle(display, SnowGC[flake], FillStippled);
+ 		}
+-		TreesGC = XCreateGC(display, rootWin, 0L, &xgcv);
++		TreesGC = XCreateGC(display, snowWin, 0L, &xgcv);
+ 		XCopyGC(display,gc,0,TreesGC);
+ 		XSetStipple(display, TreesGC, tannenbaumPix[0].pixmap);
+ 		XSetForeground(display,TreesGC,trPix);
+@@ -678,7 +704,7 @@ rc = MWR(1);
+ 														ev.xconfigure.width,
+ 														ev.xconfigure.height,
+ 														ev.xconfigure.border_width,
+-														(rootWin == ev.xconfigure.event)  
++														(snowWin == ev.xconfigure.event)  
+ 												);
+ 									printf("ConfigureNotify calling DDLT\n");
+ 									#endif
+@@ -772,7 +798,7 @@ rc = MWR(1);
+ 		XDestroyRegion(PrevWr);
+ 		XDestroyRegion(WDR);
+ 		XDestroyRegion(rscrr);
+-		XClearWindow(display, rootWin);
++		XClearWindow(display, snowWin);
+ 		XCloseDisplay(display);
+ 		exit(0);
+ }		/* End of the snow */
+@@ -809,6 +835,7 @@ Usage()
+ 		USEPRT("       -nokeepsnowonwindows\n");
+ 		USEPRT("       -nokeepsnowonscreen\n");
+ 		USEPRT("       -nonopopup\n");
++		USEPRT("       -nouseroot\n");
+ 		USEPRT("       -version\n\n");
+ 		USEPRT("Recommended: xsnow -bg SkyBlue3\n");
+ 		exit(1);
+@@ -827,7 +854,7 @@ SigHupHandler()
+ 	XSetForeground(display,FurGC,trPix);
+ 	XSetFillStyle(display,FurGC, FillSolid);
+ 	XSetRegion(display,FurGC,snscr);
+-	XFillRectangle(display,rootWin,FurGC,0,0,display_width,display_height);
++	XFillRectangle(display,snowWin,FurGC,0,0,display_width,display_height);
+ 	XFlush(display);
+ 	signal(SIGHUP, Sig_Hup_ptr);
+ }
+@@ -1002,7 +1029,7 @@ int rx;
+ 		Snow *snow;
+ 		snow = &snowflakes[rx];
+ 		XSetTSOrigin(display, SnowGC[snow->whatFlake], snow->intX, snow->intY);
+-		XFillRectangle(display, rootWin, SnowGC[snow->whatFlake],
++		XFillRectangle(display, snowWin, SnowGC[snow->whatFlake],
+ 				 snow->intX, snow->intY,
+ 				 snowPix[snow->whatFlake].width, snowPix[snow->whatFlake].height);
+ }
+@@ -1015,13 +1042,13 @@ int rx;
+ 		snow = &snowflakes[rx];
+ 	 
+ 		if (UseFillForClear) {
+-			XFillRectangle(display, rootWin, ClearSnowGC,
++			XFillRectangle(display, snowWin, ClearSnowGC,
+ 								 snow->intX, snow->intY,
+ 								 snowPix[snow->whatFlake].width, 
+ 								 snowPix[snow->whatFlake].height);
+ 			}
+ 		else {
+-			XClearArea(display, rootWin, 
++			XClearArea(display, snowWin, 
+ 								 snow->intX, snow->intY,
+ 								 snowPix[snow->whatFlake].width, 
+ 								 snowPix[snow->whatFlake].height,
+@@ -1050,7 +1077,7 @@ DrawTannenbaum(x,y)
+ int x,y;
+ {
+ 		XSetTSOrigin(display, TreesGC, x,y);
+-		XFillRectangle(display, rootWin, TreesGC,
++		XFillRectangle(display, snowWin, TreesGC,
+ 				 x,y,
+ 				 tannenbaumPix[0].width, tannenbaumPix[0].height);
+ }
+@@ -1065,49 +1092,49 @@ void InitSantaPixymaps()
+ 	switch (SantaSize) {
+ 		case 0:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*RegularSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*RegularSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+ 		case 1:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*MediumSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*MediumSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+ 		case 2:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*BigSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*BigSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+@@ -1196,7 +1223,7 @@ DrawSanta() {
+ 											SantaX,SantaY);
+ 	rc = XCopyArea(			display,
+ 											SantaPixmap[CurrentSanta],
+-											rootWin,
++											snowWin,
+ 											gc,
+ 											0,0,SantaWidth,SantaHeight,
+ 											SantaX,SantaY);
+@@ -1209,7 +1236,7 @@ DrawSanta() {
+ void
+ EraseSanta()
+ {
+-	XClearArea(display, rootWin,
++	XClearArea(display, snowWin,
+ 						 SantaX , SantaY,     
+ 						 SantaWidth,SantaHeight,
+ 						 False);
+@@ -1245,6 +1272,17 @@ Pixel dfltPix;
+ 	return pix;
+ }
+ /* ------------------------------------------------------------------ */ 
++int
++HasCompositor(dpy, screen)
++Display * dpy;
++int screen;
++{
++    char prop_name[20];
++    snprintf(prop_name, 20, "_NET_WM_CM_S%d", screen);
++    Atom prop_atom = XInternAtom(dpy, prop_name, False);
++    return XGetSelectionOwner(dpy, prop_atom) != None;
++}
++/* ------------------------------------------------------------------ */ 
+ void sig_alarm()
+ {
+ 		int rand=RandInt(100);
+@@ -1405,7 +1443,7 @@ int DDLT() {
+ 		printf("DDLT: diffR: (%d,%d,%d,%d)\n",
+ 						DiffRect.x,DiffRect.y,DiffRect.x+DiffRect.width,DiffRect.y+DiffRect.height); 
+ 		#endif
+-	  if (0) XClearArea(display, rootWin,
++	  if (0) XClearArea(display, snowWin,
+ 	             				DiffRect.x,
+ 	             				DiffRect.y,
+ 	             				DiffRect.width,              
+@@ -1470,7 +1508,7 @@ int ClearX, ClearY;
+ 		#if debug
+ 		printf("HEAr: clearing (%d,%d,%d,%d)\n", AddX,AddY,AddRect.width,AddRect.height);
+ 		#endif
+-	  XClearArea(display, rootWin,
++	  XClearArea(display, snowWin,
+ 	             AddX,
+ 	             AddY,
+ 	             AddRect.width,              
+@@ -1479,3 +1517,4 @@ int ClearX, ClearY;
+ 	  XSubtractRegion(snscr,SubR, snscr);
+ 	XDestroyRegion(SubR);
+ }
++/* vim: set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab : */
+diff -rupN ./xsnow-1.42/xsnow.hlp xsnow-comp-tmp/xsnow.hlp
+--- ./xsnow-1.42/xsnow.hlp	2000-12-19 15:26:36.000000000 -0500
++++ xsnow-comp-tmp/xsnow.hlp	2016-02-27 19:47:13.448170769 -0500
+@@ -99,6 +99,12 @@
+  all windows, then specify this option. Symptom would be that no snow is
+  kept on any window, but only at the screen bottom
+ 
++    -nouseroot
++ Do not draw on the desktop's root window; instead, create a new window
++ underneath all others and draw there. Should be automatically enabled if
++ you are using a compositing window manger. Also useful if you want to set
++ a background color (with -bg) that won't remain after xsnow exits.
++
+     -version
+  Prints the current Xsnow version.
+ 
+diff -rupN ./xsnow-1.42/xsnow.man xsnow-comp-tmp/xsnow.man
+--- ./xsnow-1.42/xsnow.man	2001-12-15 18:11:04.000000000 -0500
++++ xsnow-comp-tmp/xsnow.man	2016-02-27 19:47:13.448170769 -0500
+@@ -107,6 +107,12 @@ nature. If however, you use an Xserver t
+ all windows, then specify this option. Symptom would be that no snow
+ is kept on any window, but only at the screen bottom.
+ .TP 8
++-nouseroot
++Do not draw on the desktop's root window; instead, create a new window
++underneath all others and draw there. Should be automatically enabled if
++you are using a compositing window manger. Also useful if you want to set
++a background color (with -bg) that won't remain after xsnow exits.
++.TP 8
+ -version
+ Prints the current Xsnow version and does not start Xsnow.
+ The current version (of this man page) is 1.42, December 14th 2001
diff --git a/etc/portage/repos.conf/eselect-repo.conf b/etc/portage/repos.conf/eselect-repo.conf
new file mode 100644
index 0000000..f6bf3d2
--- /dev/null
+++ b/etc/portage/repos.conf/eselect-repo.conf
@@ -0,0 +1,12 @@
+# created by eselect-repo
+
+[azahi]
+location = /var/db/repos/azahi
+sync-type = git
+sync-uri = https://github.com/azahi/azahi-overlay.git
+
+[ricerlay]
+location = /var/db/repos/ricerlay
+sync-type = git
+sync-uri = https://github.com/gentoo-mirror/ricerlay.git
+
diff --git a/etc/portage/repos.conf/gentoo.conf b/etc/portage/repos.conf/gentoo.conf
new file mode 100644
index 0000000..3836cf5
--- /dev/null
+++ b/etc/portage/repos.conf/gentoo.conf
@@ -0,0 +1,19 @@
+[DEFAULT]
+main-repo = gentoo
+
+[gentoo]
+auto-sync = yes
+location = /var/db/repos/gentoo
+sync-allow-hardlinks = no
+sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
+sync-openpgp-key-refresh-retry-count = 40
+sync-openpgp-key-refresh-retry-delay-exp-base = 2
+sync-openpgp-key-refresh-retry-delay-max = 60
+sync-openpgp-key-refresh-retry-delay-mult = 4
+sync-openpgp-key-refresh-retry-overall-timeout = 1200
+sync-rsync-verify-jobs = 1
+sync-rsync-verify-max-age = 24
+sync-rsync-verify-metamanifest = yes
+sync-type = rsync
+sync-uri = rsync://rsync.ru.gentoo.org/gentoo-portage
+sync-webrsync-verify-signature = true
diff --git a/etc/portage/savedconfig/app-shells/fzy-1.0-r1 b/etc/portage/savedconfig/app-shells/fzy-1.0-r1
new file mode 100644
index 0000000..411f7ca
--- /dev/null
+++ b/etc/portage/savedconfig/app-shells/fzy-1.0-r1
@@ -0,0 +1,14 @@
+#define TTY_COLOR_HIGHLIGHT TTY_COLOR_YELLOW
+
+#define SCORE_GAP_LEADING -0.005
+#define SCORE_GAP_TRAILING -0.005
+#define SCORE_GAP_INNER -0.01
+#define SCORE_MATCH_CONSECUTIVE 1.0
+#define SCORE_MATCH_SLASH 0.9
+#define SCORE_MATCH_WORD 0.8
+#define SCORE_MATCH_CAPITAL 0.7
+#define SCORE_MATCH_DOT 0.6
+
+#define KEYTIMEOUT 25
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/media-gfx/sxiv-9999 b/etc/portage/savedconfig/media-gfx/sxiv-9999
new file mode 100644
index 0000000..7b64c15
--- /dev/null
+++ b/etc/portage/savedconfig/media-gfx/sxiv-9999
@@ -0,0 +1,130 @@
+#ifdef _WINDOW_CONFIG
+
+enum {
+	WIN_WIDTH  = 800,
+	WIN_HEIGHT = 600
+};
+
+#endif
+#ifdef _IMAGE_CONFIG
+
+static const float zoom_levels[] = {
+	 12.5,  25.0,  50.0,  75.0,
+	100.0, 150.0, 200.0, 400.0, 800.0
+};
+
+enum { SLIDESHOW_DELAY = 5 };
+
+static const double GAMMA_MAX   = 10.0;
+static const int    GAMMA_RANGE = 32;
+
+static const int PAN_FRACTION = 5;
+
+static const bool ANTI_ALIAS = true;
+
+static const bool ALPHA_LAYER = false;
+
+#endif
+#ifdef _THUMBS_CONFIG
+
+static const int thumb_sizes[] = { 32, 64, 96, 128, 160 };
+
+static const int THUMB_SIZE = 3;
+
+#endif
+#ifdef _MAPPINGS_CONFIG
+
+static const keymap_t keys[] = {
+	/* modifiers    key               function              argument */
+	{ 0,            XK_q,             g_quit,               None },
+	{ 0,            XK_Return,        g_switch_mode,        None },
+	{ 0,            XK_f,             g_toggle_fullscreen,  None },
+	{ 0,            XK_b,             g_toggle_bar,         None },
+	{ ControlMask,  XK_x,             g_prefix_external,    None },
+	{ 0,            XK_g,             g_first,              None },
+	{ 0,            XK_G,             g_n_or_last,          None },
+	{ 0,            XK_r,             g_reload_image,       None },
+	{ 0,            XK_D,             g_remove_image,       None },
+	{ ControlMask,  XK_h,             g_scroll_screen,      DIR_LEFT },
+	{ ControlMask,  XK_Left,          g_scroll_screen,      DIR_LEFT },
+	{ ControlMask,  XK_j,             g_scroll_screen,      DIR_DOWN },
+	{ ControlMask,  XK_Down,          g_scroll_screen,      DIR_DOWN },
+	{ ControlMask,  XK_k,             g_scroll_screen,      DIR_UP },
+	{ ControlMask,  XK_Up,            g_scroll_screen,      DIR_UP },
+	{ ControlMask,  XK_l,             g_scroll_screen,      DIR_RIGHT },
+	{ ControlMask,  XK_Right,         g_scroll_screen,      DIR_RIGHT },
+	{ 0,            XK_plus,          g_zoom,               +1 },
+	{ 0,            XK_KP_Add,        g_zoom,               +1 },
+	{ 0,            XK_minus,         g_zoom,               -1 },
+	{ 0,            XK_KP_Subtract,   g_zoom,               -1 },
+	{ 0,            XK_m,             g_toggle_image_mark,  None },
+	{ 0,            XK_M,             g_mark_range,         None },
+	{ ControlMask,  XK_m,             g_reverse_marks,      None },
+	{ ControlMask,  XK_u,             g_unmark_all,         None },
+	{ 0,            XK_N,             g_navigate_marked,    +1 },
+	{ 0,            XK_P,             g_navigate_marked,    -1 },
+	{ 0,            XK_braceleft,     g_change_gamma,       -1 },
+	{ 0,            XK_braceright,    g_change_gamma,       +1 },
+	{ ControlMask,  XK_g,             g_change_gamma,        0 },
+
+	{ 0,            XK_h,             t_move_sel,           DIR_LEFT },
+	{ 0,            XK_Left,          t_move_sel,           DIR_LEFT },
+	{ 0,            XK_j,             t_move_sel,           DIR_DOWN },
+	{ 0,            XK_Down,          t_move_sel,           DIR_DOWN },
+	{ 0,            XK_k,             t_move_sel,           DIR_UP },
+	{ 0,            XK_Up,            t_move_sel,           DIR_UP },
+	{ 0,            XK_l,             t_move_sel,           DIR_RIGHT },
+	{ 0,            XK_Right,         t_move_sel,           DIR_RIGHT },
+	{ 0,            XK_R,             t_reload_all,         None },
+
+	{ 0,            XK_n,             i_navigate,           +1 },
+	{ 0,            XK_n,             i_scroll_to_edge,     DIR_LEFT | DIR_UP },
+	{ 0,            XK_space,         i_navigate,           +1 },
+	{ 0,            XK_p,             i_navigate,           -1 },
+	{ 0,            XK_p,             i_scroll_to_edge,     DIR_LEFT | DIR_UP },
+	{ 0,            XK_BackSpace,     i_navigate,           -1 },
+	{ 0,            XK_bracketright,  i_navigate,           +10 },
+	{ 0,            XK_bracketleft,   i_navigate,           -10 },
+	{ ControlMask,  XK_6,             i_alternate,          None },
+	{ ControlMask,  XK_n,             i_navigate_frame,     +1 },
+	{ ControlMask,  XK_p,             i_navigate_frame,     -1 },
+	{ ControlMask,  XK_space,         i_toggle_animation,   None },
+	{ 0,            XK_h,             i_scroll,             DIR_LEFT },
+	{ 0,            XK_Left,          i_scroll,             DIR_LEFT },
+	{ 0,            XK_j,             i_scroll,             DIR_DOWN },
+	{ 0,            XK_Down,          i_scroll,             DIR_DOWN },
+	{ 0,            XK_k,             i_scroll,             DIR_UP },
+	{ 0,            XK_Up,            i_scroll,             DIR_UP },
+	{ 0,            XK_l,             i_scroll,             DIR_RIGHT },
+	{ 0,            XK_Right,         i_scroll,             DIR_RIGHT },
+	{ 0,            XK_H,             i_scroll_to_edge,     DIR_LEFT },
+	{ 0,            XK_J,             i_scroll_to_edge,     DIR_DOWN },
+	{ 0,            XK_K,             i_scroll_to_edge,     DIR_UP },
+	{ 0,            XK_L,             i_scroll_to_edge,     DIR_RIGHT },
+	{ 0,            XK_equal,         i_set_zoom,           100 },
+	{ 0,            XK_w,             i_fit_to_win,         SCALE_DOWN },
+	{ 0,            XK_W,             i_fit_to_win,         SCALE_FIT },
+	{ 0,            XK_e,             i_fit_to_win,         SCALE_WIDTH },
+	{ 0,            XK_E,             i_fit_to_win,         SCALE_HEIGHT },
+	{ 0,            XK_less,          i_rotate,             DEGREE_270 },
+	{ 0,            XK_greater,       i_rotate,             DEGREE_90 },
+	{ 0,            XK_question,      i_rotate,             DEGREE_180 },
+	{ 0,            XK_bar,           i_flip,               FLIP_HORIZONTAL },
+	{ 0,            XK_underscore,    i_flip,               FLIP_VERTICAL },
+	{ 0,            XK_a,             i_toggle_antialias,   None },
+	{ 0,            XK_A,             i_toggle_alpha,       None },
+	{ 0,            XK_s,             i_slideshow,          None },
+};
+
+static const button_t buttons[] = {
+	/* modifiers    button            function              argument */
+	{ 0,            1,                i_cursor_navigate,    None },
+	{ 0,            2,                i_drag,               DRAG_ABSOLUTE },
+	{ 0,            3,                g_switch_mode,        None },
+	{ 0,            4,                g_zoom,               +1 },
+	{ 0,            5,                g_zoom,               -1 },
+};
+
+#endif
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/sys-apps/busybox-1.33.1-r1 b/etc/portage/savedconfig/sys-apps/busybox-1.33.1-r1
new file mode 100644
index 0000000..48365bf
--- /dev/null
+++ b/etc/portage/savedconfig/sys-apps/busybox-1.33.1-r1
@@ -0,0 +1,1200 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.33.1
+# Tue Aug 17 14:34:57 2021
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Settings
+#
+CONFIG_DESKTOP=y
+CONFIG_EXTRA_COMPAT=y
+CONFIG_FEDORA_COMPAT=y
+CONFIG_INCLUDE_SUSv2=y
+CONFIG_LONG_OPTS=y
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_LFS=y
+CONFIG_PAM=y
+CONFIG_FEATURE_DEVPTS=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_PID_FILE_PATH="/run"
+CONFIG_BUSYBOX=y
+CONFIG_FEATURE_SHOW_SCRIPT=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_INSTALL_NO_USR=y
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+CONFIG_FEATURE_PREFER_APPLETS=y
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_SYSLOG_INFO=y
+CONFIG_FEATURE_SYSLOG=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_STACK_OPTIMIZATION_386=y
+CONFIG_STATIC_LIBGCC=y
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_DEBUG_SANITIZE is not set
+CONFIG_UNIT_TEST=y
+# CONFIG_WERROR is not set
+CONFIG_WARN_SIMPLE_MSG=y
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Library Tuning
+#
+# CONFIG_FEATURE_USE_BSS_TAIL is not set
+CONFIG_FLOAT_DURATION=y
+CONFIG_FEATURE_RTMINMAX=y
+CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+CONFIG_SHA3_SMALL=1
+CONFIG_FEATURE_FAST_TOP=y
+CONFIG_FEATURE_ETC_NETWORKS=y
+CONFIG_FEATURE_ETC_SERVICES=y
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=255
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y
+CONFIG_FEATURE_REVERSE_SEARCH=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+CONFIG_FEATURE_USERNAME_COMPLETION=y
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_EDITING_WINCH=y
+CONFIG_FEATURE_EDITING_ASK_TERMINAL=y
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+CONFIG_UNICODE_COMBINING_WCHARS=y
+CONFIG_UNICODE_WIDE_WCHARS=y
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+CONFIG_UNICODE_PRESERVE_BROKEN=y
+CONFIG_FEATURE_NON_POSIX_CP=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_USE_SENDFILE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_FEATURE_SKIP_ROOTFS=y
+# CONFIG_MONOTONIC_SYSCALL is not set
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_FEATURE_AR_CREATE=y
+CONFIG_UNCOMPRESS=y
+CONFIG_GUNZIP=y
+CONFIG_ZCAT=y
+CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
+CONFIG_BUNZIP2=y
+CONFIG_BZCAT=y
+CONFIG_UNLZMA=y
+CONFIG_LZCAT=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZCAT=y
+CONFIG_XZ=y
+CONFIG_BZIP2=y
+CONFIG_BZIP2_SMALL=8
+CONFIG_FEATURE_BZIP2_DECOMPRESS=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+CONFIG_GZIP=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_GZIP_FAST=0
+CONFIG_FEATURE_GZIP_LEVELS=y
+CONFIG_FEATURE_GZIP_DECOMPRESS=y
+CONFIG_LZOP=y
+CONFIG_UNLZOP=y
+CONFIG_LZOPCAT=y
+CONFIG_LZOP_COMPR_HIGH=y
+# CONFIG_RPM is not set
+# CONFIG_RPM2CPIO is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_TO_COMMAND=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNZIP=y
+CONFIG_FEATURE_UNZIP_CDF=y
+CONFIG_FEATURE_UNZIP_BZIP2=y
+CONFIG_FEATURE_UNZIP_LZMA=y
+CONFIG_FEATURE_UNZIP_XZ=y
+CONFIG_FEATURE_LZMA_FAST=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_FEATURE_CATN=y
+CONFIG_FEATURE_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_FEATURE_CP_REFLINK=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_FEATURE_DATE_NANO=y
+CONFIG_FEATURE_DATE_COMPAT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_FEATURE_DD_STATUS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_EXPAND=y
+CONFIG_UNEXPAND=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FACTOR=y
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+# CONFIG_HOSTID is not set
+CONFIG_ID=y
+CONFIG_GROUPS=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LINK=y
+CONFIG_LN=y
+# CONFIG_LOGNAME is not set
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_WIDTH=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+CONFIG_SHA3SUM=y
+
+#
+# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+CONFIG_MKDIR=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MKTEMP=y
+CONFIG_MV=y
+CONFIG_NICE=y
+CONFIG_NL=y
+CONFIG_NOHUP=y
+CONFIG_NPROC=y
+# CONFIG_OD is not set
+CONFIG_PASTE=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_SEQ=y
+CONFIG_SHRED=y
+CONFIG_SHUF=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_FEATURE_STAT_FILESYSTEM=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_FEATURE_SYNC_FANCY=y
+CONFIG_FSYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_TEST1=y
+CONFIG_TEST2=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TIMEOUT=y
+CONFIG_TOUCH=y
+CONFIG_FEATURE_TOUCH_NODEREF=y
+CONFIG_FEATURE_TOUCH_SUSV3=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TRUNCATE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNAME_OSNAME="GNU/Linux"
+CONFIG_BB_ARCH=y
+CONFIG_UNIQ=y
+CONFIG_UNLINK=y
+CONFIG_USLEEP=y
+# CONFIG_UUDECODE is not set
+CONFIG_BASE32=y
+CONFIG_BASE64=y
+# CONFIG_UUENCODE is not set
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_W=y
+CONFIG_USERS=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options
+#
+CONFIG_FEATURE_VERBOSE=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_FGCONSOLE=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_SETFONT=y
+CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR=""
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Debian Utilities
+#
+CONFIG_PIPE_PROGRESS=y
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_WHICH=y
+
+#
+# klibc-utils
+#
+CONFIG_MINIPS=y
+CONFIG_NUKE=y
+CONFIG_RESUME=y
+CONFIG_RUN_INIT=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_REGEX_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_UNDO=y
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_EXECUTABLE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_EXEC_PLUS=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_QUIT=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_EMPTY=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_FEATURE_FIND_LINKS=y
+CONFIG_GREP=y
+CONFIG_EGREP=y
+CONFIG_FGREP=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
+CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y
+CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y
+
+#
+# Init Utilities
+#
+# CONFIG_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_GINIT=y
+CONFIG_HALT=y
+CONFIG_POWEROFF=y
+CONFIG_REBOOT=y
+CONFIG_FEATURE_WAIT_FOR_INIT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+CONFIG_LINUXRC=y
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=0
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_INIT_QUIET=y
+CONFIG_FEATURE_INIT_COREDUMPS=y
+CONFIG_INIT_TERMINAL_TYPE="linux"
+CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+CONFIG_USE_BB_PWD_GRP=y
+CONFIG_USE_BB_SHADOW=y
+CONFIG_USE_BB_CRYPT=y
+CONFIG_USE_BB_CRYPT_SHA=y
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_ADDUSER=y
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_LAST_ID=60000
+CONFIG_FIRST_SYSTEM_ID=100
+CONFIG_LAST_SYSTEM_ID=999
+CONFIG_CHPASSWD=y
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
+CONFIG_CRYPTPW=y
+CONFIG_MKPASSWD=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=y
+CONFIG_LOGIN=y
+CONFIG_LOGIN_SESSION_AS_CHILD=y
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY=y
+# CONFIG_SULOGIN is not set
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+CONFIG_TUNE2FS=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODPROBE_SMALL=y
+CONFIG_DEPMOD=y
+CONFIG_INSMOD=y
+CONFIG_LSMOD=y
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+CONFIG_MODINFO=y
+CONFIG_MODPROBE=y
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+CONFIG_RMMOD=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKDISCARD=y
+CONFIG_BLKID=y
+CONFIG_FEATURE_BLKID_TYPE=y
+CONFIG_BLOCKDEV=y
+CONFIG_CAL=y
+CONFIG_CHRT=y
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FALLOCATE=y
+CONFIG_FATATTR=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+CONFIG_FEATURE_FDISK_WRITABLE=y
+CONFIG_FEATURE_AIX_LABEL=y
+CONFIG_FEATURE_SGI_LABEL=y
+CONFIG_FEATURE_SUN_LABEL=y
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FLOCK=y
+CONFIG_FDFLUSH=y
+CONFIG_FREERAMDISK=y
+# CONFIG_FSCK_MINIX is not set
+CONFIG_FSFREEZE=y
+CONFIG_FSTRIM=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+CONFIG_HD=y
+CONFIG_XXD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IONICE=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_FANCY=y
+CONFIG_LOSETUP=y
+CONFIG_LSPCI=y
+CONFIG_LSUSB=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_FEATURE_MDEV_DAEMON=y
+CONFIG_MESG=y
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
+CONFIG_MKE2FS=y
+CONFIG_MKFS_EXT2=y
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_MKFS_REISER=y
+CONFIG_MKDOSFS=y
+CONFIG_MKFS_VFAT=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_UUID=y
+CONFIG_MORE=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+CONFIG_FEATURE_MOUNT_VERBOSE=y
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_FEATURE_MOUNT_OTHERTAB=y
+CONFIG_MOUNTPOINT=y
+CONFIG_NOLOGIN=y
+CONFIG_NOLOGIN_DEPENDENCIES=y
+CONFIG_NSENTER=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+CONFIG_RENICE=y
+CONFIG_REV=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SCRIPTREPLAY=y
+CONFIG_SETARCH=y
+CONFIG_LINUX32=y
+CONFIG_LINUX64=y
+CONFIG_SETPRIV=y
+CONFIG_FEATURE_SETPRIV_DUMP=y
+CONFIG_FEATURE_SETPRIV_CAPABILITIES=y
+CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y
+CONFIG_SETSID=y
+CONFIG_SWAPON=y
+CONFIG_FEATURE_SWAPON_DISCARD=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWAPOFF=y
+CONFIG_FEATURE_SWAPONOFF_LABEL=y
+CONFIG_SWITCH_ROOT=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+# CONFIG_FEATURE_TASKSET_CPULIST is not set
+CONFIG_UEVENT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+CONFIG_UNSHARE=y
+CONFIG_WALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_BCACHE=y
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_EROFS=y
+CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_LFS=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_MINIX=y
+CONFIG_FEATURE_VOLUMEID_NILFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+CONFIG_FEATURE_VOLUMEID_UBIFS=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
+CONFIG_BC=y
+# CONFIG_DC is not set
+CONFIG_FEATURE_DC_BIG=y
+# CONFIG_FEATURE_DC_LIBM is not set
+CONFIG_FEATURE_BC_INTERACTIVE=y
+CONFIG_FEATURE_BC_LONG_OPTIONS=y
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+CONFIG_FEATURE_CHAT_TTY_HIFI=y
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y
+CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
+CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
+CONFIG_FEATURE_CHAT_CLR_ABORT=y
+CONFIG_CONSPY=y
+CONFIG_CROND=y
+CONFIG_FEATURE_CROND_D=y
+CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
+CONFIG_FEATURE_CROND_SPECIAL_TIMES=y
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+# CONFIG_CRONTAB is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_DEVMEM=y
+# CONFIG_FBSPLASH is not set
+CONFIG_FLASH_ERASEALL=y
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASHCP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_HEXEDIT=y
+CONFIG_I2CGET=y
+CONFIG_I2CSET=y
+CONFIG_I2CDUMP=y
+CONFIG_I2CDETECT=y
+CONFIG_I2CTRANSFER=y
+# CONFIG_INOTIFYD is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_TRUNCATE=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_ASK_TERMINAL=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=y
+CONFIG_FEATURE_LESS_RAW=y
+CONFIG_FEATURE_LESS_ENV=y
+CONFIG_LSSCSI=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+CONFIG_MAN=y
+CONFIG_MICROCOM=y
+CONFIG_MIM=y
+CONFIG_MT=y
+CONFIG_NANDWRITE=y
+CONFIG_NANDDUMP=y
+CONFIG_PARTPROBE=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETFATTR=y
+CONFIG_SETSERIAL=y
+CONFIG_STRINGS=y
+CONFIG_TIME=y
+CONFIG_TS=y
+CONFIG_TTYSIZE=y
+CONFIG_UBIATTACH=y
+CONFIG_UBIDETACH=y
+CONFIG_UBIMKVOL=y
+CONFIG_UBIRMVOL=y
+CONFIG_UBIRSVOL=y
+CONFIG_UBIUPDATEVOL=y
+CONFIG_UBIRENAME=y
+CONFIG_VOLNAME=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_UNIX_LOCAL=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+CONFIG_VERBOSE_RESOLUTION_ERRORS=y
+CONFIG_FEATURE_TLS_SHA1=y
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+CONFIG_FEATURE_BRCTL_FANCY=y
+CONFIG_FEATURE_BRCTL_SHOW=y
+# CONFIG_DNSD is not set
+CONFIG_ETHER_WAKE=y
+CONFIG_FTPD=y
+CONFIG_FEATURE_FTPD_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
+CONFIG_FEATURE_FTPD_AUTHENTICATION=y
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+CONFIG_DNSDOMAINNAME=y
+CONFIG_HTTPD=y
+CONFIG_FEATURE_HTTPD_RANGES=y
+CONFIG_FEATURE_HTTPD_SETUID=y
+CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
+CONFIG_FEATURE_HTTPD_AUTH_MD5=y
+CONFIG_FEATURE_HTTPD_CGI=y
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y
+CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
+CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
+CONFIG_FEATURE_HTTPD_PROXY=y
+CONFIG_FEATURE_HTTPD_GZIP=y
+CONFIG_FEATURE_HTTPD_ETAG=y
+CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y
+CONFIG_FEATURE_HTTPD_DATE=y
+CONFIG_FEATURE_HTTPD_ACL_IP=y
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFPLUGD=y
+CONFIG_IFUP=y
+CONFIG_IFDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPNEIGH=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_NEIGH=y
+CONFIG_FEATURE_IP_RARE_PROTOCOLS=y
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FAKEIDENTD is not set
+CONFIG_NAMEIF=y
+CONFIG_FEATURE_NAMEIF_EXTENDED=y
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NETCAT=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NC_110_COMPAT=y
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_FEATURE_NSLOOKUP_BIG=y
+CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
+CONFIG_NTPD=y
+CONFIG_FEATURE_NTPD_SERVER=y
+CONFIG_FEATURE_NTPD_CONF=y
+CONFIG_FEATURE_NTP_AUTH=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+# CONFIG_SLATTACH is not set
+CONFIG_SSL_CLIENT=y
+CONFIG_TC=y
+CONFIG_FEATURE_TC_INGRESS=y
+# CONFIG_TCPSVD is not set
+# CONFIG_UDPSVD is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_FEATURE_TELNET_WIDTH=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_FEATURE_TELNETD_INETD_WAIT=y
+CONFIG_TFTP=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+CONFIG_FEATURE_TFTP_HPA_COMPAT=y
+CONFIG_TFTPD=y
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_TFTP_DEBUG is not set
+CONFIG_TLS=y
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=y
+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
+CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
+CONFIG_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_FEATURE_WGET_HTTPS=y
+CONFIG_FEATURE_WGET_OPENSSL=y
+CONFIG_WHOIS=y
+CONFIG_ZCIP=y
+CONFIG_UDHCPD=y
+CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC=y
+CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
+CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
+CONFIG_DUMPLEASES=y
+CONFIG_DHCPRELAY=y
+CONFIG_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC6=y
+CONFIG_FEATURE_UDHCPC6_RFC3646=y
+CONFIG_FEATURE_UDHCPC6_RFC4704=y
+CONFIG_FEATURE_UDHCPC6_RFC4833=y
+CONFIG_FEATURE_UDHCPC6_RFC5970=y
+
+#
+# Common options for DHCP applets
+#
+CONFIG_FEATURE_UDHCP_PORT=y
+CONFIG_UDHCP_DEBUG=2
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_FEATURE_UDHCP_RFC3397=y
+CONFIG_FEATURE_UDHCP_8021Q=y
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+CONFIG_LPQ=y
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+CONFIG_SENDMAIL=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_IOSTAT=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_LSOF=y
+CONFIG_MPSTAT=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PKILL=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+CONFIG_FEATURE_POWERTOP_INTERACTIVE=y
+CONFIG_PS=y
+# CONFIG_FEATURE_PS_WIDE is not set
+# CONFIG_FEATURE_PS_LONG is not set
+CONFIG_FEATURE_PS_TIME=y
+CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS=y
+CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y
+CONFIG_PSTREE=y
+CONFIG_PWDX=y
+# CONFIG_SMEMCAP is not set
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_INTERACTIVE=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
+CONFIG_WATCH=y
+CONFIG_FEATURE_SHOW_THREADS=y
+
+#
+# Runit Utilities
+#
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+CONFIG_SVC=y
+CONFIG_SVOK=y
+# CONFIG_SVLOGD is not set
+# CONFIG_CHCON is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SESTATUS is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_SETSEBOOL is not set
+
+#
+# Shells
+#
+CONFIG_SH_IS_ASH=y
+# CONFIG_SH_IS_HUSH is not set
+# CONFIG_SH_IS_NONE is not set
+# CONFIG_BASH_IS_ASH is not set
+# CONFIG_BASH_IS_HUSH is not set
+CONFIG_BASH_IS_NONE=y
+CONFIG_SHELL_ASH=y
+CONFIG_ASH=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_INTERNAL_GLOB=y
+CONFIG_ASH_BASH_COMPAT=y
+# CONFIG_ASH_BASH_SOURCE_CURDIR is not set
+CONFIG_ASH_BASH_NOT_FOUND_HOOK=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+CONFIG_ASH_IDLE_TIMEOUT=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_ECHO=y
+CONFIG_ASH_PRINTF=y
+CONFIG_ASH_TEST=y
+CONFIG_ASH_HELP=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_CTTYHACK=y
+# CONFIG_HUSH is not set
+CONFIG_SHELL_HUSH=y
+CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
+CONFIG_HUSH_LINENO_VAR=y
+CONFIG_HUSH_BASH_SOURCE_CURDIR=y
+CONFIG_HUSH_INTERACTIVE=y
+CONFIG_HUSH_SAVEHISTORY=y
+CONFIG_HUSH_JOB=y
+CONFIG_HUSH_TICK=y
+CONFIG_HUSH_IF=y
+CONFIG_HUSH_LOOPS=y
+CONFIG_HUSH_CASE=y
+CONFIG_HUSH_FUNCTIONS=y
+CONFIG_HUSH_LOCAL=y
+CONFIG_HUSH_RANDOM_SUPPORT=y
+CONFIG_HUSH_MODE_X=y
+CONFIG_HUSH_ECHO=y
+CONFIG_HUSH_PRINTF=y
+CONFIG_HUSH_TEST=y
+CONFIG_HUSH_HELP=y
+CONFIG_HUSH_EXPORT=y
+CONFIG_HUSH_EXPORT_N=y
+CONFIG_HUSH_READONLY=y
+CONFIG_HUSH_KILL=y
+CONFIG_HUSH_WAIT=y
+CONFIG_HUSH_COMMAND=y
+CONFIG_HUSH_TRAP=y
+CONFIG_HUSH_TYPE=y
+CONFIG_HUSH_TIMES=y
+CONFIG_HUSH_READ=y
+CONFIG_HUSH_SET=y
+CONFIG_HUSH_UNSET=y
+CONFIG_HUSH_ULIMIT=y
+CONFIG_HUSH_UMASK=y
+CONFIG_HUSH_GETOPTS=y
+CONFIG_HUSH_MEMLEAK=y
+
+#
+# Options common to all shells
+#
+CONFIG_FEATURE_SH_MATH=y
+CONFIG_FEATURE_SH_MATH_64=y
+CONFIG_FEATURE_SH_MATH_BASE=y
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+CONFIG_FEATURE_SH_STANDALONE=y
+CONFIG_FEATURE_SH_NOFORK=y
+CONFIG_FEATURE_SH_READ_FRAC=y
+CONFIG_FEATURE_SH_HISTFILESIZE=y
+CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y
+
+#
+# System Logging Utilities
+#
+# CONFIG_KLOGD is not set
+# CONFIG_FEATURE_KLOGD_KLOGCTL is not set
+# CONFIG_LOGGER is not set
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+# CONFIG_SYSLOGD is not set
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_SYSLOGD_CFG is not set
+# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
+# CONFIG_FEATURE_KMSG_SYSLOG is not set
diff --git a/etc/portage/savedconfig/sys-kernel/linux-firmware-99999999 b/etc/portage/savedconfig/sys-kernel/linux-firmware-99999999
new file mode 100644
index 0000000..f7321d1
--- /dev/null
+++ b/etc/portage/savedconfig/sys-kernel/linux-firmware-99999999
@@ -0,0 +1 @@
+iwlwifi-6000-4.ucode
diff --git a/etc/portage/savedconfig/x11-misc/dmenu-9999 b/etc/portage/savedconfig/x11-misc/dmenu-9999
new file mode 100644
index 0000000..34b49df
--- /dev/null
+++ b/etc/portage/savedconfig/x11-misc/dmenu-9999
@@ -0,0 +1,18 @@
+static int topbar = 1;
+static const char *fonts[] = {
+	"UW Ttyp0:pixelsize=14:style=Regular:antialias=false",
+	"Efont Biwidth:pixelsize=14:style=Regular:antialias=false",
+	"Efont Fixed:pixelsize=14:style=Regular:antialias=false",
+	"Misc Fixed:antialias=false",
+};
+static const char *prompt = NULL;
+static const char *colors[SchemeLast][2] = {
+	[SchemeNorm] = { "#c5c8c6", "#161719" },
+	[SchemeSel] = { "#161719", "#c5c8c6" },
+};
+
+static unsigned int lines = 0;
+
+static const char worddelimiters[] = " ";
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/x11-misc/slock-1.4 b/etc/portage/savedconfig/x11-misc/slock-1.4
new file mode 100644
index 0000000..12caede
--- /dev/null
+++ b/etc/portage/savedconfig/x11-misc/slock-1.4
@@ -0,0 +1,12 @@
+static const char *user		= "nobody";
+static const char *group	= "nobody";
+
+static const char *colorname[NUMCOLS] = {
+	[INIT] =   "#161719",
+	[INPUT] =  "#c5c8c6",
+	[FAILED] = "#cc6666",
+};
+
+static const int failonclear = 1;
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/x11-terms/st-9999 b/etc/portage/savedconfig/x11-terms/st-9999
new file mode 100644
index 0000000..1dfdd91
--- /dev/null
+++ b/etc/portage/savedconfig/x11-terms/st-9999
@@ -0,0 +1,323 @@
+static char *font = "UW Ttyp0:pixelsize=14:style=Regular:antialias=false";
+static int borderpx = 4;
+
+static char *shell = "/bin/sh";
+char *utmp = NULL;
+
+char *scroll = NULL;
+char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
+
+char *vtiden = "\033[?6c";
+
+static float cwscale = 1.0;
+static float chscale = 1.0;
+
+wchar_t *worddelimiters = L" ";
+
+static unsigned int doubleclicktimeout = 300;
+static unsigned int tripleclicktimeout = 600;
+
+int allowaltscreen = 1;
+
+int allowwindowops = 0;
+
+static double minlatency = 8;
+static double maxlatency = 33;
+
+static unsigned int blinktimeout = 800;
+
+static unsigned int cursorthickness = 1;
+
+static int bellvolume = 0;
+
+char *termname = "xterm-256color";
+
+unsigned int tabspaces = 4;
+
+static char *colorname[] = {
+	"#161719",
+	"#cc6666",
+	"#b5bd68",
+	"#f0c674",
+	"#81a2be",
+	"#b294bb",
+	"#8abeb7",
+	"#c5c8c6",
+
+	"#969896",
+	"#cc6666",
+	"#b5bd68",
+	"#f0c674",
+	"#81a2be",
+	"#b294bb",
+	"#8abeb7",
+	"#ffffff",
+};
+
+unsigned int defaultfg = 7;
+unsigned int defaultbg = 0;
+static unsigned int defaultcs = 7;
+static unsigned int defaultrcs = 0;
+
+static unsigned int cursorshape = 2;
+
+static unsigned int cols = 80;
+static unsigned int rows = 24;
+
+static unsigned int mouseshape = XC_xterm;
+static unsigned int mousefg = 7;
+static unsigned int mousebg = 0;
+
+static unsigned int defaultattr = 11;
+
+static uint forcemousemod = ShiftMask;
+
+static MouseShortcut mshortcuts[] = {
+	{ XK_ANY_MOD,	Button2,	selpaste,	{ .i = 0 }, 1 },
+	{ ShiftMask,	Button4,	ttysend,	{ .s = "\033[5;2~" } },
+	{ XK_ANY_MOD,	Button4,	ttysend,	{ .s = "\031" } },
+	{ ShiftMask,	Button5,	ttysend,	{ .s = "\033[6;2~" } },
+	{ XK_ANY_MOD,	Button5,	ttysend,	{ .s = "\005" } },
+};
+
+#define MODKEY Mod1Mask
+#define TERMMOD (ControlMask|ShiftMask)
+
+static Shortcut shortcuts[] = {
+	{ XK_ANY_MOD,	XK_Break,		sendbreak,		{ .i =  0} },
+	{ ControlMask,	XK_Print,		toggleprinter,	{ .i =  0} },
+	{ ShiftMask,	XK_Print,		printscreen,	{ .i =  0} },
+	{ XK_ANY_MOD,	XK_Print,		printsel,		{ .i =  0} },
+	{ TERMMOD,		XK_Prior,		zoom,			{ .f = +1} },
+	{ TERMMOD,		XK_Next,		zoom,			{ .f = -1} },
+	{ TERMMOD,		XK_Home,		zoomreset,		{ .f =  0} },
+	{ TERMMOD,		XK_C,			clipcopy,		{ .i =  0} },
+	{ TERMMOD,		XK_V,			clippaste,		{ .i =  0} },
+	{ TERMMOD,		XK_Y,			selpaste,		{ .i =  0} },
+	{ ShiftMask,	XK_Insert,		selpaste,		{ .i =  0} },
+	{ TERMMOD,		XK_Num_Lock,	numlock,		{ .i =  0} },
+};
+
+static KeySym mappedkeys[] = { -1 };
+
+static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
+
+static Key key[] = {
+	{ XK_KP_Home,       ShiftMask,      "\033[2J",       0,   -1 },
+	{ XK_KP_Home,       ShiftMask,      "\033[1;2H",     0,   +1 },
+	{ XK_KP_Home,       XK_ANY_MOD,     "\033[H",        0,   -1 },
+	{ XK_KP_Home,       XK_ANY_MOD,     "\033[1~",       0,   +1 },
+	{ XK_KP_Up,         XK_ANY_MOD,     "\033Ox",       +1,    0 },
+	{ XK_KP_Up,         XK_ANY_MOD,     "\033[A",        0,   -1 },
+	{ XK_KP_Up,         XK_ANY_MOD,     "\033OA",        0,   +1 },
+	{ XK_KP_Down,       XK_ANY_MOD,     "\033Or",       +1,    0 },
+	{ XK_KP_Down,       XK_ANY_MOD,     "\033[B",        0,   -1 },
+	{ XK_KP_Down,       XK_ANY_MOD,     "\033OB",        0,   +1 },
+	{ XK_KP_Left,       XK_ANY_MOD,     "\033Ot",       +1,    0 },
+	{ XK_KP_Left,       XK_ANY_MOD,     "\033[D",        0,   -1 },
+	{ XK_KP_Left,       XK_ANY_MOD,     "\033OD",        0,   +1 },
+	{ XK_KP_Right,      XK_ANY_MOD,     "\033Ov",       +1,    0 },
+	{ XK_KP_Right,      XK_ANY_MOD,     "\033[C",        0,   -1 },
+	{ XK_KP_Right,      XK_ANY_MOD,     "\033OC",        0,   +1 },
+	{ XK_KP_Prior,      ShiftMask,      "\033[5;2~",     0,    0 },
+	{ XK_KP_Prior,      XK_ANY_MOD,     "\033[5~",       0,    0 },
+	{ XK_KP_Begin,      XK_ANY_MOD,     "\033[E",        0,    0 },
+	{ XK_KP_End,        ControlMask,    "\033[J",       -1,    0 },
+	{ XK_KP_End,        ControlMask,    "\033[1;5F",    +1,    0 },
+	{ XK_KP_End,        ShiftMask,      "\033[K",       -1,    0 },
+	{ XK_KP_End,        ShiftMask,      "\033[1;2F",    +1,    0 },
+	{ XK_KP_End,        XK_ANY_MOD,     "\033[4~",       0,    0 },
+	{ XK_KP_Next,       ShiftMask,      "\033[6;2~",     0,    0 },
+	{ XK_KP_Next,       XK_ANY_MOD,     "\033[6~",       0,    0 },
+	{ XK_KP_Insert,     ShiftMask,      "\033[2;2~",    +1,    0 },
+	{ XK_KP_Insert,     ShiftMask,      "\033[4l",      -1,    0 },
+	{ XK_KP_Insert,     ControlMask,    "\033[L",       -1,    0 },
+	{ XK_KP_Insert,     ControlMask,    "\033[2;5~",    +1,    0 },
+	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[4h",      -1,    0 },
+	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[2~",      +1,    0 },
+	{ XK_KP_Delete,     ControlMask,    "\033[M",       -1,    0 },
+	{ XK_KP_Delete,     ControlMask,    "\033[3;5~",    +1,    0 },
+	{ XK_KP_Delete,     ShiftMask,      "\033[2K",      -1,    0 },
+	{ XK_KP_Delete,     ShiftMask,      "\033[3;2~",    +1,    0 },
+	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[P",       -1,    0 },
+	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[3~",      +1,    0 },
+	{ XK_KP_Multiply,   XK_ANY_MOD,     "\033Oj",       +2,    0 },
+	{ XK_KP_Add,        XK_ANY_MOD,     "\033Ok",       +2,    0 },
+	{ XK_KP_Enter,      XK_ANY_MOD,     "\033OM",       +2,    0 },
+	{ XK_KP_Enter,      XK_ANY_MOD,     "\r",           -1,    0 },
+	{ XK_KP_Subtract,   XK_ANY_MOD,     "\033Om",       +2,    0 },
+	{ XK_KP_Decimal,    XK_ANY_MOD,     "\033On",       +2,    0 },
+	{ XK_KP_Divide,     XK_ANY_MOD,     "\033Oo",       +2,    0 },
+	{ XK_KP_0,          XK_ANY_MOD,     "\033Op",       +2,    0 },
+	{ XK_KP_1,          XK_ANY_MOD,     "\033Oq",       +2,    0 },
+	{ XK_KP_2,          XK_ANY_MOD,     "\033Or",       +2,    0 },
+	{ XK_KP_3,          XK_ANY_MOD,     "\033Os",       +2,    0 },
+	{ XK_KP_4,          XK_ANY_MOD,     "\033Ot",       +2,    0 },
+	{ XK_KP_5,          XK_ANY_MOD,     "\033Ou",       +2,    0 },
+	{ XK_KP_6,          XK_ANY_MOD,     "\033Ov",       +2,    0 },
+	{ XK_KP_7,          XK_ANY_MOD,     "\033Ow",       +2,    0 },
+	{ XK_KP_8,          XK_ANY_MOD,     "\033Ox",       +2,    0 },
+	{ XK_KP_9,          XK_ANY_MOD,     "\033Oy",       +2,    0 },
+	{ XK_Up,            ShiftMask,      "\033[1;2A",     0,    0 },
+	{ XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0 },
+	{ XK_Up,         ShiftMask|Mod1Mask,"\033[1;4A",     0,    0 },
+	{ XK_Up,            ControlMask,    "\033[1;5A",     0,    0 },
+	{ XK_Up,      ShiftMask|ControlMask,"\033[1;6A",     0,    0 },
+	{ XK_Up,       ControlMask|Mod1Mask,"\033[1;7A",     0,    0 },
+	{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A",  0,    0 },
+	{ XK_Up,            XK_ANY_MOD,     "\033[A",        0,   -1 },
+	{ XK_Up,            XK_ANY_MOD,     "\033OA",        0,   +1 },
+	{ XK_Down,          ShiftMask,      "\033[1;2B",     0,    0 },
+	{ XK_Down,          Mod1Mask,       "\033[1;3B",     0,    0 },
+	{ XK_Down,       ShiftMask|Mod1Mask,"\033[1;4B",     0,    0 },
+	{ XK_Down,          ControlMask,    "\033[1;5B",     0,    0 },
+	{ XK_Down,    ShiftMask|ControlMask,"\033[1;6B",     0,    0 },
+	{ XK_Down,     ControlMask|Mod1Mask,"\033[1;7B",     0,    0 },
+	{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0,    0 },
+	{ XK_Down,          XK_ANY_MOD,     "\033[B",        0,   -1 },
+	{ XK_Down,          XK_ANY_MOD,     "\033OB",        0,   +1 },
+	{ XK_Left,          ShiftMask,      "\033[1;2D",     0,    0 },
+	{ XK_Left,          Mod1Mask,       "\033[1;3D",     0,    0 },
+	{ XK_Left,       ShiftMask|Mod1Mask,"\033[1;4D",     0,    0 },
+	{ XK_Left,          ControlMask,    "\033[1;5D",     0,    0 },
+	{ XK_Left,    ShiftMask|ControlMask,"\033[1;6D",     0,    0 },
+	{ XK_Left,     ControlMask|Mod1Mask,"\033[1;7D",     0,    0 },
+	{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0,    0 },
+	{ XK_Left,          XK_ANY_MOD,     "\033[D",        0,   -1 },
+	{ XK_Left,          XK_ANY_MOD,     "\033OD",        0,   +1 },
+	{ XK_Right,         ShiftMask,      "\033[1;2C",     0,    0 },
+	{ XK_Right,         Mod1Mask,       "\033[1;3C",     0,    0 },
+	{ XK_Right,      ShiftMask|Mod1Mask,"\033[1;4C",     0,    0 },
+	{ XK_Right,         ControlMask,    "\033[1;5C",     0,    0 },
+	{ XK_Right,   ShiftMask|ControlMask,"\033[1;6C",     0,    0 },
+	{ XK_Right,    ControlMask|Mod1Mask,"\033[1;7C",     0,    0 },
+	{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0,   0 },
+	{ XK_Right,         XK_ANY_MOD,     "\033[C",        0,   -1 },
+	{ XK_Right,         XK_ANY_MOD,     "\033OC",        0,   +1 },
+	{ XK_ISO_Left_Tab,  ShiftMask,      "\033[Z",        0,    0 },
+	{ XK_Return,        Mod1Mask,       "\033\r",        0,    0 },
+	{ XK_Return,        XK_ANY_MOD,     "\r",            0,    0 },
+	{ XK_Insert,        ShiftMask,      "\033[4l",      -1,    0 },
+	{ XK_Insert,        ShiftMask,      "\033[2;2~",    +1,    0 },
+	{ XK_Insert,        ControlMask,    "\033[L",       -1,    0 },
+	{ XK_Insert,        ControlMask,    "\033[2;5~",    +1,    0 },
+	{ XK_Insert,        XK_ANY_MOD,     "\033[4h",      -1,    0 },
+	{ XK_Insert,        XK_ANY_MOD,     "\033[2~",      +1,    0 },
+	{ XK_Delete,        ControlMask,    "\033[M",       -1,    0 },
+	{ XK_Delete,        ControlMask,    "\033[3;5~",    +1,    0 },
+	{ XK_Delete,        ShiftMask,      "\033[2K",      -1,    0 },
+	{ XK_Delete,        ShiftMask,      "\033[3;2~",    +1,    0 },
+	{ XK_Delete,        XK_ANY_MOD,     "\033[P",       -1,    0 },
+	{ XK_Delete,        XK_ANY_MOD,     "\033[3~",      +1,    0 },
+	{ XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0 },
+	{ XK_BackSpace,     Mod1Mask,       "\033\177",      0,    0 },
+	{ XK_Home,          ShiftMask,      "\033[2J",       0,   -1 },
+	{ XK_Home,          ShiftMask,      "\033[1;2H",     0,   +1 },
+	{ XK_Home,          XK_ANY_MOD,     "\033[H",        0,   -1 },
+	{ XK_Home,          XK_ANY_MOD,     "\033[1~",       0,   +1 },
+	{ XK_End,           ControlMask,    "\033[J",       -1,    0 },
+	{ XK_End,           ControlMask,    "\033[1;5F",    +1,    0 },
+	{ XK_End,           ShiftMask,      "\033[K",       -1,    0 },
+	{ XK_End,           ShiftMask,      "\033[1;2F",    +1,    0 },
+	{ XK_End,           XK_ANY_MOD,     "\033[4~",       0,    0 },
+	{ XK_Prior,         ControlMask,    "\033[5;5~",     0,    0 },
+	{ XK_Prior,         ShiftMask,      "\033[5;2~",     0,    0 },
+	{ XK_Prior,         XK_ANY_MOD,     "\033[5~",       0,    0 },
+	{ XK_Next,          ControlMask,    "\033[6;5~",     0,    0 },
+	{ XK_Next,          ShiftMask,      "\033[6;2~",     0,    0 },
+	{ XK_Next,          XK_ANY_MOD,     "\033[6~",       0,    0 },
+	{ XK_F1,            XK_NO_MOD,      "\033OP" ,       0,    0 },
+	{ XK_F1, /* F13 */  ShiftMask,      "\033[1;2P",     0,    0 },
+	{ XK_F1, /* F25 */  ControlMask,    "\033[1;5P",     0,    0 },
+	{ XK_F1, /* F37 */  Mod4Mask,       "\033[1;6P",     0,    0 },
+	{ XK_F1, /* F49 */  Mod1Mask,       "\033[1;3P",     0,    0 },
+	{ XK_F1, /* F61 */  Mod3Mask,       "\033[1;4P",     0,    0 },
+	{ XK_F2,            XK_NO_MOD,      "\033OQ" ,       0,    0 },
+	{ XK_F2, /* F14 */  ShiftMask,      "\033[1;2Q",     0,    0 },
+	{ XK_F2, /* F26 */  ControlMask,    "\033[1;5Q",     0,    0 },
+	{ XK_F2, /* F38 */  Mod4Mask,       "\033[1;6Q",     0,    0 },
+	{ XK_F2, /* F50 */  Mod1Mask,       "\033[1;3Q",     0,    0 },
+	{ XK_F2, /* F62 */  Mod3Mask,       "\033[1;4Q",     0,    0 },
+	{ XK_F3,            XK_NO_MOD,      "\033OR" ,       0,    0 },
+	{ XK_F3, /* F15 */  ShiftMask,      "\033[1;2R",     0,    0 },
+	{ XK_F3, /* F27 */  ControlMask,    "\033[1;5R",     0,    0 },
+	{ XK_F3, /* F39 */  Mod4Mask,       "\033[1;6R",     0,    0 },
+	{ XK_F3, /* F51 */  Mod1Mask,       "\033[1;3R",     0,    0 },
+	{ XK_F3, /* F63 */  Mod3Mask,       "\033[1;4R",     0,    0 },
+	{ XK_F4,            XK_NO_MOD,      "\033OS" ,       0,    0 },
+	{ XK_F4, /* F16 */  ShiftMask,      "\033[1;2S",     0,    0 },
+	{ XK_F4, /* F28 */  ControlMask,    "\033[1;5S",     0,    0 },
+	{ XK_F4, /* F40 */  Mod4Mask,       "\033[1;6S",     0,    0 },
+	{ XK_F4, /* F52 */  Mod1Mask,       "\033[1;3S",     0,    0 },
+	{ XK_F5,            XK_NO_MOD,      "\033[15~",      0,    0 },
+	{ XK_F5, /* F17 */  ShiftMask,      "\033[15;2~",    0,    0 },
+	{ XK_F5, /* F29 */  ControlMask,    "\033[15;5~",    0,    0 },
+	{ XK_F5, /* F41 */  Mod4Mask,       "\033[15;6~",    0,    0 },
+	{ XK_F5, /* F53 */  Mod1Mask,       "\033[15;3~",    0,    0 },
+	{ XK_F6,            XK_NO_MOD,      "\033[17~",      0,    0 },
+	{ XK_F6, /* F18 */  ShiftMask,      "\033[17;2~",    0,    0 },
+	{ XK_F6, /* F30 */  ControlMask,    "\033[17;5~",    0,    0 },
+	{ XK_F6, /* F42 */  Mod4Mask,       "\033[17;6~",    0,    0 },
+	{ XK_F6, /* F54 */  Mod1Mask,       "\033[17;3~",    0,    0 },
+	{ XK_F7,            XK_NO_MOD,      "\033[18~",      0,    0 },
+	{ XK_F7, /* F19 */  ShiftMask,      "\033[18;2~",    0,    0 },
+	{ XK_F7, /* F31 */  ControlMask,    "\033[18;5~",    0,    0 },
+	{ XK_F7, /* F43 */  Mod4Mask,       "\033[18;6~",    0,    0 },
+	{ XK_F7, /* F55 */  Mod1Mask,       "\033[18;3~",    0,    0 },
+	{ XK_F8,            XK_NO_MOD,      "\033[19~",      0,    0 },
+	{ XK_F8, /* F20 */  ShiftMask,      "\033[19;2~",    0,    0 },
+	{ XK_F8, /* F32 */  ControlMask,    "\033[19;5~",    0,    0 },
+	{ XK_F8, /* F44 */  Mod4Mask,       "\033[19;6~",    0,    0 },
+	{ XK_F8, /* F56 */  Mod1Mask,       "\033[19;3~",    0,    0 },
+	{ XK_F9,            XK_NO_MOD,      "\033[20~",      0,    0 },
+	{ XK_F9, /* F21 */  ShiftMask,      "\033[20;2~",    0,    0 },
+	{ XK_F9, /* F33 */  ControlMask,    "\033[20;5~",    0,    0 },
+	{ XK_F9, /* F45 */  Mod4Mask,       "\033[20;6~",    0,    0 },
+	{ XK_F9, /* F57 */  Mod1Mask,       "\033[20;3~",    0,    0 },
+	{ XK_F10,           XK_NO_MOD,      "\033[21~",      0,    0 },
+	{ XK_F10, /* F22 */ ShiftMask,      "\033[21;2~",    0,    0 },
+	{ XK_F10, /* F34 */ ControlMask,    "\033[21;5~",    0,    0 },
+	{ XK_F10, /* F46 */ Mod4Mask,       "\033[21;6~",    0,    0 },
+	{ XK_F10, /* F58 */ Mod1Mask,       "\033[21;3~",    0,    0 },
+	{ XK_F11,           XK_NO_MOD,      "\033[23~",      0,    0 },
+	{ XK_F11, /* F23 */ ShiftMask,      "\033[23;2~",    0,    0 },
+	{ XK_F11, /* F35 */ ControlMask,    "\033[23;5~",    0,    0 },
+	{ XK_F11, /* F47 */ Mod4Mask,       "\033[23;6~",    0,    0 },
+	{ XK_F11, /* F59 */ Mod1Mask,       "\033[23;3~",    0,    0 },
+	{ XK_F12,           XK_NO_MOD,      "\033[24~",      0,    0 },
+	{ XK_F12, /* F24 */ ShiftMask,      "\033[24;2~",    0,    0 },
+	{ XK_F12, /* F36 */ ControlMask,    "\033[24;5~",    0,    0 },
+	{ XK_F12, /* F48 */ Mod4Mask,       "\033[24;6~",    0,    0 },
+	{ XK_F12, /* F60 */ Mod1Mask,       "\033[24;3~",    0,    0 },
+	{ XK_F13,           XK_NO_MOD,      "\033[1;2P",     0,    0 },
+	{ XK_F14,           XK_NO_MOD,      "\033[1;2Q",     0,    0 },
+	{ XK_F15,           XK_NO_MOD,      "\033[1;2R",     0,    0 },
+	{ XK_F16,           XK_NO_MOD,      "\033[1;2S",     0,    0 },
+	{ XK_F17,           XK_NO_MOD,      "\033[15;2~",    0,    0 },
+	{ XK_F18,           XK_NO_MOD,      "\033[17;2~",    0,    0 },
+	{ XK_F19,           XK_NO_MOD,      "\033[18;2~",    0,    0 },
+	{ XK_F20,           XK_NO_MOD,      "\033[19;2~",    0,    0 },
+	{ XK_F21,           XK_NO_MOD,      "\033[20;2~",    0,    0 },
+	{ XK_F22,           XK_NO_MOD,      "\033[21;2~",    0,    0 },
+	{ XK_F23,           XK_NO_MOD,      "\033[23;2~",    0,    0 },
+	{ XK_F24,           XK_NO_MOD,      "\033[24;2~",    0,    0 },
+	{ XK_F25,           XK_NO_MOD,      "\033[1;5P",     0,    0 },
+	{ XK_F26,           XK_NO_MOD,      "\033[1;5Q",     0,    0 },
+	{ XK_F27,           XK_NO_MOD,      "\033[1;5R",     0,    0 },
+	{ XK_F28,           XK_NO_MOD,      "\033[1;5S",     0,    0 },
+	{ XK_F29,           XK_NO_MOD,      "\033[15;5~",    0,    0 },
+	{ XK_F30,           XK_NO_MOD,      "\033[17;5~",    0,    0 },
+	{ XK_F31,           XK_NO_MOD,      "\033[18;5~",    0,    0 },
+	{ XK_F32,           XK_NO_MOD,      "\033[19;5~",    0,    0 },
+	{ XK_F33,           XK_NO_MOD,      "\033[20;5~",    0,    0 },
+	{ XK_F34,           XK_NO_MOD,      "\033[21;5~",    0,    0 },
+	{ XK_F35,           XK_NO_MOD,      "\033[23;5~",    0,    0 },
+};
+
+static uint selmasks[] = {
+	[SEL_RECTANGULAR] = Mod1Mask,
+};
+
+static char ascii_printable[] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+
+/* vim: filetype=c */
diff --git a/etc/portage/savedconfig/x11-wm/dwm-9999 b/etc/portage/savedconfig/x11-wm/dwm-9999
new file mode 100644
index 0000000..dd96d8d
--- /dev/null
+++ b/etc/portage/savedconfig/x11-wm/dwm-9999
@@ -0,0 +1,99 @@
+static const unsigned int borderpx	= 1;
+static const unsigned int snap		= 32;
+static const int showbar			= 1;
+static const int topbar				= 1;
+
+static const char *fonts[] = { 
+	"UW Ttyp0:pixelsize=14:style=Regular:antialias=false",
+	"Efont Biwidth:pixelsize=14:style=Regular:antialias=false",
+	"Efont Fixed:pixelsize=14:style=Regular:antialias=false",
+	"Misc Fixed",
+};
+
+static const char *colors[][3] = {
+	[SchemeNorm] = {
+		"#c5c8c6",
+		"#161719",
+		"#161719",
+	},
+	[SchemeSel] = {
+		"#161719",
+		"#c5c8c6",
+		"#c5c8c6",
+	},
+};
+
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+static const Rule rules[] = {
+	{ "Emacs",           NULL, NULL, 1 << 0, 0, -1 },
+	{ "jetbrains-clion", NULL, NULL, 1 << 2, 0, -1 },
+	{ "qutebrowser",     NULL, NULL, 1 << 1, 0, -1 },
+};
+
+static const float mfact		= 0.666;
+static const int nmaster		= 1;
+static const int resizehints	= 0;
+static const int lockfullscreen	= 1;
+
+static const Layout layouts[] = {
+	{ "[]=", tile },
+	{ "><>", NULL },
+	{ "[M]", monocle },
+};
+
+#define MODKEY Mod4Mask
+#define TAGKEYS(KEY,TAG) \
+	{ MODKEY,                       KEY, view,       { .ui = 1 << TAG } }, \
+	{ MODKEY|ControlMask,           KEY, toggleview, { .ui = 1 << TAG } }, \
+	{ MODKEY|ShiftMask,             KEY, tag,        { .ui = 1 << TAG } }, \
+	{ MODKEY|ControlMask|ShiftMask, KEY, toggletag,  { .ui = 1 << TAG } },
+
+static char dmenumon[2] = "0";
+static const char *dmenucmd[] = { NULL };
+
+static Key keys[] = {
+	{ MODKEY,           XK_b,      togglebar,      {0} },
+	{ MODKEY,           XK_j,      focusstack,     {.i = +1 } },
+	{ MODKEY,           XK_k,      focusstack,     {.i = -1 } },
+	{ MODKEY|ShiftMask, XK_k,      incnmaster,     {.i = +1 } },
+	{ MODKEY|ShiftMask, XK_j,      incnmaster,     {.i = -1 } },
+	{ MODKEY,           XK_comma,  setmfact,       {.f = -0.05} },
+	{ MODKEY,           XK_period, setmfact,       {.f = +0.05} },
+	{ MODKEY,           XK_p,      zoom,           {0} },
+	{ MODKEY,           XK_Tab,    view,           {0} },
+	{ MODKEY,           XK_d,      killclient,     {0} },
+	{ MODKEY,           XK_t,      setlayout,      {.v = &layouts[0]} },
+	{ MODKEY,           XK_m,      setlayout,      {.v = &layouts[1]} },
+	{ MODKEY,           XK_f,      setlayout,      {.v = &layouts[2]} },
+	{ MODKEY,           XK_o,      togglefloating, {0} },
+	{ MODKEY,           XK_h,      focusmon,       {.i = -1 } },
+	{ MODKEY,           XK_l,      focusmon,       {.i = +1 } },
+	{ MODKEY|ShiftMask, XK_h,      tagmon,         {.i = -1 } },
+	{ MODKEY|ShiftMask, XK_l,      tagmon,         {.i = +1 } },
+	{ MODKEY|ShiftMask, XK_q,      quit,           {0} },
+	TAGKEYS(            XK_1,                      0)
+	TAGKEYS(            XK_2,                      1)
+	TAGKEYS(            XK_3,                      2)
+	TAGKEYS(            XK_4,                      3)
+	TAGKEYS(            XK_5,                      4)
+	TAGKEYS(            XK_6,                      5)
+	TAGKEYS(            XK_7,                      6)
+	TAGKEYS(            XK_8,                      7)
+	TAGKEYS(            XK_9,                      8)
+};
+
+static Button buttons[] = {
+	{ ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
+	{ ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
+	{ ClkWinTitle,          0,              Button2,        zoom,           {0} },
+	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
+	{ ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
+	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
+	{ ClkTagBar,            0,              Button1,        view,           {0} },
+	{ ClkTagBar,            0,              Button3,        toggleview,     {0} },
+	{ ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
+	{ ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
+};
+
+/* vim: filetype=c */
diff --git a/etc/portage/smart-live-rebuild.conf b/etc/portage/smart-live-rebuild.conf
new file mode 100644
index 0000000..675537b
--- /dev/null
+++ b/etc/portage/smart-live-rebuild.conf
@@ -0,0 +1,2 @@
+[smart-live-rebuild]
+jobs = 1
diff --git a/etc/python-exec/python-exec.conf b/etc/python-exec/python-exec.conf
new file mode 100644
index 0000000..4a550fd
--- /dev/null
+++ b/etc/python-exec/python-exec.conf
@@ -0,0 +1,28 @@
+#/etc/python-exec/python-exec.conf
+# python-exec global preference configuration
+#
+# This file specifies global Python preference for python-exec. It
+# determines which implementations will be used when wrapped Python
+# scripts or generic Python wrappers (such as /usr/bin/python) are
+# started with no implementation override (EPYTHON).
+#
+# The global configuration can be overriden for each wrapped script
+# in /etc/python-exec/<script-name>.conf. If this override exists,
+# the global configuration is not used at all.
+#
+# The preference file should list Python implementations, one per line,
+# in EPYTHON-format (e.g. python3.5), in order of preference. The most
+# preferred implementation should be listed first. The program will use
+# the most preferred implementation that is supported by it.
+#
+# If none of the listed implementations are supported, python-exec will
+# attempt to use the remaining supported implementations in default
+# order.
+#
+# A specific implementation can be disabled by preceding it with
+# a hyphen (-). In this case, the implementation will never be used.
+# If no other implementation is supported by the program, it will fail
+# to start.
+#
+# Note: this file can be modified by calls to 'eselect python'.
+python3.9
diff --git a/etc/runlevels/boot/binfmt b/etc/runlevels/boot/binfmt
new file mode 120000
index 0000000..9ad7841
--- /dev/null
+++ b/etc/runlevels/boot/binfmt
@@ -0,0 +1 @@
+/etc/init.d/binfmt
\ No newline at end of file
diff --git a/etc/runlevels/boot/bootmisc b/etc/runlevels/boot/bootmisc
new file mode 120000
index 0000000..01ec1a7
--- /dev/null
+++ b/etc/runlevels/boot/bootmisc
@@ -0,0 +1 @@
+/etc/init.d/bootmisc
\ No newline at end of file
diff --git a/etc/runlevels/boot/elogind b/etc/runlevels/boot/elogind
new file mode 120000
index 0000000..4675b9e
--- /dev/null
+++ b/etc/runlevels/boot/elogind
@@ -0,0 +1 @@
+/etc/init.d/elogind
\ No newline at end of file
diff --git a/etc/runlevels/boot/fsck b/etc/runlevels/boot/fsck
new file mode 120000
index 0000000..4f6434e
--- /dev/null
+++ b/etc/runlevels/boot/fsck
@@ -0,0 +1 @@
+/etc/init.d/fsck
\ No newline at end of file
diff --git a/etc/runlevels/boot/hostname b/etc/runlevels/boot/hostname
new file mode 120000
index 0000000..2920d24
--- /dev/null
+++ b/etc/runlevels/boot/hostname
@@ -0,0 +1 @@
+/etc/init.d/hostname
\ No newline at end of file
diff --git a/etc/runlevels/boot/hwclock b/etc/runlevels/boot/hwclock
new file mode 120000
index 0000000..84d9672
--- /dev/null
+++ b/etc/runlevels/boot/hwclock
@@ -0,0 +1 @@
+/etc/init.d/hwclock
\ No newline at end of file
diff --git a/etc/runlevels/boot/keymaps b/etc/runlevels/boot/keymaps
new file mode 120000
index 0000000..df077e3
--- /dev/null
+++ b/etc/runlevels/boot/keymaps
@@ -0,0 +1 @@
+/etc/init.d/keymaps
\ No newline at end of file
diff --git a/etc/runlevels/boot/localmount b/etc/runlevels/boot/localmount
new file mode 120000
index 0000000..e80b1d9
--- /dev/null
+++ b/etc/runlevels/boot/localmount
@@ -0,0 +1 @@
+/etc/init.d/localmount
\ No newline at end of file
diff --git a/etc/runlevels/boot/loopback b/etc/runlevels/boot/loopback
new file mode 120000
index 0000000..22878c6
--- /dev/null
+++ b/etc/runlevels/boot/loopback
@@ -0,0 +1 @@
+/etc/init.d/loopback
\ No newline at end of file
diff --git a/etc/runlevels/boot/modules b/etc/runlevels/boot/modules
new file mode 120000
index 0000000..4886563
--- /dev/null
+++ b/etc/runlevels/boot/modules
@@ -0,0 +1 @@
+/etc/init.d/modules
\ No newline at end of file
diff --git a/etc/runlevels/boot/mtab b/etc/runlevels/boot/mtab
new file mode 120000
index 0000000..c388afe
--- /dev/null
+++ b/etc/runlevels/boot/mtab
@@ -0,0 +1 @@
+/etc/init.d/mtab
\ No newline at end of file
diff --git a/etc/runlevels/boot/opentmpfiles-setup b/etc/runlevels/boot/opentmpfiles-setup
new file mode 120000
index 0000000..de9fd72
--- /dev/null
+++ b/etc/runlevels/boot/opentmpfiles-setup
@@ -0,0 +1 @@
+/etc/init.d/opentmpfiles-setup
\ No newline at end of file
diff --git a/etc/runlevels/boot/procfs b/etc/runlevels/boot/procfs
new file mode 120000
index 0000000..9b81c85
--- /dev/null
+++ b/etc/runlevels/boot/procfs
@@ -0,0 +1 @@
+/etc/init.d/procfs
\ No newline at end of file
diff --git a/etc/runlevels/boot/root b/etc/runlevels/boot/root
new file mode 120000
index 0000000..3bd4594
--- /dev/null
+++ b/etc/runlevels/boot/root
@@ -0,0 +1 @@
+/etc/init.d/root
\ No newline at end of file
diff --git a/etc/runlevels/boot/save-keymaps b/etc/runlevels/boot/save-keymaps
new file mode 120000
index 0000000..ab5731b
--- /dev/null
+++ b/etc/runlevels/boot/save-keymaps
@@ -0,0 +1 @@
+/etc/init.d/save-keymaps
\ No newline at end of file
diff --git a/etc/runlevels/boot/save-termencoding b/etc/runlevels/boot/save-termencoding
new file mode 120000
index 0000000..b04665d
--- /dev/null
+++ b/etc/runlevels/boot/save-termencoding
@@ -0,0 +1 @@
+/etc/init.d/save-termencoding
\ No newline at end of file
diff --git a/etc/runlevels/boot/stmpfiles-setup b/etc/runlevels/boot/stmpfiles-setup
new file mode 120000
index 0000000..1c9a75c
--- /dev/null
+++ b/etc/runlevels/boot/stmpfiles-setup
@@ -0,0 +1 @@
+/etc/init.d/stmpfiles-setup
\ No newline at end of file
diff --git a/etc/runlevels/boot/swap b/etc/runlevels/boot/swap
new file mode 120000
index 0000000..3873ba8
--- /dev/null
+++ b/etc/runlevels/boot/swap
@@ -0,0 +1 @@
+/etc/init.d/swap
\ No newline at end of file
diff --git a/etc/runlevels/boot/sysctl b/etc/runlevels/boot/sysctl
new file mode 120000
index 0000000..b4ac535
--- /dev/null
+++ b/etc/runlevels/boot/sysctl
@@ -0,0 +1 @@
+/etc/init.d/sysctl
\ No newline at end of file
diff --git a/etc/runlevels/boot/termencoding b/etc/runlevels/boot/termencoding
new file mode 120000
index 0000000..f7d1d33
--- /dev/null
+++ b/etc/runlevels/boot/termencoding
@@ -0,0 +1 @@
+/etc/init.d/termencoding
\ No newline at end of file
diff --git a/etc/runlevels/boot/urandom b/etc/runlevels/boot/urandom
new file mode 120000
index 0000000..0bae59f
--- /dev/null
+++ b/etc/runlevels/boot/urandom
@@ -0,0 +1 @@
+/etc/init.d/urandom
\ No newline at end of file
diff --git a/etc/runlevels/default/dbus b/etc/runlevels/default/dbus
new file mode 120000
index 0000000..a9e632a
--- /dev/null
+++ b/etc/runlevels/default/dbus
@@ -0,0 +1 @@
+/etc/init.d/dbus
\ No newline at end of file
diff --git a/etc/runlevels/default/earlyoom b/etc/runlevels/default/earlyoom
new file mode 120000
index 0000000..8cb3686
--- /dev/null
+++ b/etc/runlevels/default/earlyoom
@@ -0,0 +1 @@
+/etc/init.d/earlyoom
\ No newline at end of file
diff --git a/etc/runlevels/default/fcron b/etc/runlevels/default/fcron
new file mode 120000
index 0000000..abf3941
--- /dev/null
+++ b/etc/runlevels/default/fcron
@@ -0,0 +1 @@
+/etc/init.d/fcron
\ No newline at end of file
diff --git a/etc/runlevels/default/haveged b/etc/runlevels/default/haveged
new file mode 120000
index 0000000..0ec5343
--- /dev/null
+++ b/etc/runlevels/default/haveged
@@ -0,0 +1 @@
+/etc/init.d/haveged
\ No newline at end of file
diff --git a/etc/runlevels/default/hdparm b/etc/runlevels/default/hdparm
new file mode 120000
index 0000000..bb73a94
--- /dev/null
+++ b/etc/runlevels/default/hdparm
@@ -0,0 +1 @@
+/etc/init.d/hdparm
\ No newline at end of file
diff --git a/etc/runlevels/default/iwd b/etc/runlevels/default/iwd
new file mode 120000
index 0000000..d2f59c0
--- /dev/null
+++ b/etc/runlevels/default/iwd
@@ -0,0 +1 @@
+/etc/init.d/iwd
\ No newline at end of file
diff --git a/etc/runlevels/default/laptop_mode b/etc/runlevels/default/laptop_mode
new file mode 120000
index 0000000..eb6cdba
--- /dev/null
+++ b/etc/runlevels/default/laptop_mode
@@ -0,0 +1 @@
+/etc/init.d/laptop_mode
\ No newline at end of file
diff --git a/etc/runlevels/default/mpd b/etc/runlevels/default/mpd
new file mode 120000
index 0000000..3dac296
--- /dev/null
+++ b/etc/runlevels/default/mpd
@@ -0,0 +1 @@
+/etc/init.d/mpd
\ No newline at end of file
diff --git a/etc/runlevels/default/net.eth0 b/etc/runlevels/default/net.eth0
new file mode 120000
index 0000000..f1754b4
--- /dev/null
+++ b/etc/runlevels/default/net.eth0
@@ -0,0 +1 @@
+/etc/init.d/net.eth0
\ No newline at end of file
diff --git a/etc/runlevels/default/net.wlan0 b/etc/runlevels/default/net.wlan0
new file mode 120000
index 0000000..4f37ee9
--- /dev/null
+++ b/etc/runlevels/default/net.wlan0
@@ -0,0 +1 @@
+/etc/init.d/net.wlan0
\ No newline at end of file
diff --git a/etc/runlevels/default/ntpd b/etc/runlevels/default/ntpd
new file mode 120000
index 0000000..1342392
--- /dev/null
+++ b/etc/runlevels/default/ntpd
@@ -0,0 +1 @@
+/etc/init.d/ntpd
\ No newline at end of file
diff --git a/etc/runlevels/default/smartd b/etc/runlevels/default/smartd
new file mode 120000
index 0000000..bab767a
--- /dev/null
+++ b/etc/runlevels/default/smartd
@@ -0,0 +1 @@
+/etc/init.d/smartd
\ No newline at end of file
diff --git a/etc/runlevels/default/syslog-ng b/etc/runlevels/default/syslog-ng
new file mode 120000
index 0000000..83ec2ac
--- /dev/null
+++ b/etc/runlevels/default/syslog-ng
@@ -0,0 +1 @@
+/etc/init.d/syslog-ng
\ No newline at end of file
diff --git a/etc/runlevels/default/thinkfan b/etc/runlevels/default/thinkfan
new file mode 120000
index 0000000..990003e
--- /dev/null
+++ b/etc/runlevels/default/thinkfan
@@ -0,0 +1 @@
+/etc/init.d/thinkfan
\ No newline at end of file
diff --git a/etc/runlevels/default/uksmd b/etc/runlevels/default/uksmd
new file mode 120000
index 0000000..abf0286
--- /dev/null
+++ b/etc/runlevels/default/uksmd
@@ -0,0 +1 @@
+/etc/init.d/uksmd
\ No newline at end of file
diff --git a/etc/runlevels/shutdown/killprocs b/etc/runlevels/shutdown/killprocs
new file mode 120000
index 0000000..a26adc1
--- /dev/null
+++ b/etc/runlevels/shutdown/killprocs
@@ -0,0 +1 @@
+/etc/init.d/killprocs
\ No newline at end of file
diff --git a/etc/runlevels/shutdown/mount-ro b/etc/runlevels/shutdown/mount-ro
new file mode 120000
index 0000000..87cc256
--- /dev/null
+++ b/etc/runlevels/shutdown/mount-ro
@@ -0,0 +1 @@
+/etc/init.d/mount-ro
\ No newline at end of file
diff --git a/etc/runlevels/shutdown/savecache b/etc/runlevels/shutdown/savecache
new file mode 120000
index 0000000..6235c7e
--- /dev/null
+++ b/etc/runlevels/shutdown/savecache
@@ -0,0 +1 @@
+/etc/init.d/savecache
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/cgroups b/etc/runlevels/sysinit/cgroups
new file mode 120000
index 0000000..f19ac82
--- /dev/null
+++ b/etc/runlevels/sysinit/cgroups
@@ -0,0 +1 @@
+/etc/init.d/cgroups
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/devfs b/etc/runlevels/sysinit/devfs
new file mode 120000
index 0000000..73fcdfc
--- /dev/null
+++ b/etc/runlevels/sysinit/devfs
@@ -0,0 +1 @@
+/etc/init.d/devfs
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/dmesg b/etc/runlevels/sysinit/dmesg
new file mode 120000
index 0000000..d23267e
--- /dev/null
+++ b/etc/runlevels/sysinit/dmesg
@@ -0,0 +1 @@
+/etc/init.d/dmesg
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/kmod-static-nodes b/etc/runlevels/sysinit/kmod-static-nodes
new file mode 120000
index 0000000..d250729
--- /dev/null
+++ b/etc/runlevels/sysinit/kmod-static-nodes
@@ -0,0 +1 @@
+/etc/init.d/kmod-static-nodes
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/opentmpfiles-dev b/etc/runlevels/sysinit/opentmpfiles-dev
new file mode 120000
index 0000000..528f1a2
--- /dev/null
+++ b/etc/runlevels/sysinit/opentmpfiles-dev
@@ -0,0 +1 @@
+/etc/init.d/opentmpfiles-dev
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/stmpfiles-dev b/etc/runlevels/sysinit/stmpfiles-dev
new file mode 120000
index 0000000..5687319
--- /dev/null
+++ b/etc/runlevels/sysinit/stmpfiles-dev
@@ -0,0 +1 @@
+/etc/init.d/stmpfiles-dev
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/sysfs b/etc/runlevels/sysinit/sysfs
new file mode 120000
index 0000000..887522b
--- /dev/null
+++ b/etc/runlevels/sysinit/sysfs
@@ -0,0 +1 @@
+/etc/init.d/sysfs
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/udev b/etc/runlevels/sysinit/udev
new file mode 120000
index 0000000..1ecced2
--- /dev/null
+++ b/etc/runlevels/sysinit/udev
@@ -0,0 +1 @@
+/etc/init.d/udev
\ No newline at end of file
diff --git a/etc/runlevels/sysinit/udev-trigger b/etc/runlevels/sysinit/udev-trigger
new file mode 120000
index 0000000..af8d7d3
--- /dev/null
+++ b/etc/runlevels/sysinit/udev-trigger
@@ -0,0 +1 @@
+/etc/init.d/udev-trigger
\ No newline at end of file
diff --git a/etc/sysctl.conf b/etc/sysctl.conf
new file mode 100644
index 0000000..c1a074d
--- /dev/null
+++ b/etc/sysctl.conf
@@ -0,0 +1,60 @@
+# /etc/sysctl.conf
+#
+# For more information on how this file works, please see
+# the manpages sysctl(8) and sysctl.conf(5).
+#
+# In order for this file to work properly, you must first
+# enable 'Sysctl support' in the kernel.
+#
+# Look in /proc/sys/ for all the things you can setup.
+#
+
+# Disables packet forwarding
+net.ipv4.ip_forward = 1
+# Disables IP dynaddr
+#net.ipv4.ip_dynaddr = 0
+# Disable ECN
+#net.ipv4.tcp_ecn = 0
+# Enables source route verification
+#net.ipv4.conf.default.rp_filter = 1
+# Enable reverse path
+#net.ipv4.conf.all.rp_filter = 1
+
+# Enable SYN cookies (yum!)
+# http://cr.yp.to/syncookies.html
+#net.ipv4.tcp_syncookies = 1
+
+# Enable people in the specified (min, max) group range to send ICMP_ECHO
+# messages (i.e. ping) and receive ICMP_ECHOREPLY responses.  This allows
+# you to run non-suid and non-caps `ping`, but it also means anyone with
+# a gid in this range can send those packets (not just via `ping`).
+#net.ipv4.ping_group_range = 100 100
+
+# Disable source route
+#net.ipv4.conf.all.accept_source_route = 0
+#net.ipv4.conf.default.accept_source_route = 0
+
+# Disable redirects
+#net.ipv4.conf.all.accept_redirects = 0
+#net.ipv4.conf.default.accept_redirects = 0
+
+# Disable secure redirects
+#net.ipv4.conf.all.secure_redirects = 0
+#net.ipv4.conf.default.secure_redirects = 0
+
+# Ignore ICMP broadcasts
+#net.ipv4.icmp_echo_ignore_broadcasts = 1
+
+# Disables the magic-sysrq key
+#kernel.sysrq = 0
+# When the kernel panics, automatically reboot in 3 seconds
+#kernel.panic = 3
+# Allow for more PIDs (cool factor!); may break some programs
+#kernel.pid_max = 999999
+
+# You should compile nfsd into the kernel or add it
+# to modules.autoload for this to work properly
+# TCP Port for lock manager
+#fs.nfs.nlm_tcpport = 0
+# UDP Port for lock manager
+#fs.nfs.nlm_udpport = 0
diff --git a/etc/sysctl.d/00protected-links.conf b/etc/sysctl.d/00protected-links.conf
new file mode 100644
index 0000000..5e4d7c6
--- /dev/null
+++ b/etc/sysctl.d/00protected-links.conf
@@ -0,0 +1,2 @@
+fs.protected_symlinks = 1
+fs.protected_hardlinks = 1
diff --git a/etc/sysctl.d/10vm.conf b/etc/sysctl.d/10vm.conf
new file mode 100644
index 0000000..9e4d916
--- /dev/null
+++ b/etc/sysctl.d/10vm.conf
@@ -0,0 +1,5 @@
+vm.dirty_background_bytes = 4194304
+vm.dirty_background_ratio = 5
+vm.dirty_bytes = 4194304
+vm.dirty_ratio = 10
+vm.vfs_cache_pressure = 50
diff --git a/etc/sysctl.d/20inotify.conf b/etc/sysctl.d/20inotify.conf
new file mode 100644
index 0000000..57c955a
--- /dev/null
+++ b/etc/sysctl.d/20inotify.conf
@@ -0,0 +1 @@
+fs.inotify.max_user_watches = 524288
diff --git a/etc/sysctl.d/README b/etc/sysctl.d/README
new file mode 100644
index 0000000..ca3e030
--- /dev/null
+++ b/etc/sysctl.d/README
@@ -0,0 +1,13 @@
+Kernel system variables configuration files
+
+Files found under the /etc/sysctl.d directory that end with .conf are
+parsed within sysctl(8) at boot time.  If you want to set kernel variables
+you can either edit /etc/sysctl.conf or make a new file.
+
+The filename isn't important, but don't make it a package name as it may clash
+with something the package builder needs later. The file name must end
+with .conf, or it will not be read.
+
+The recommended location for local system settings is /etc/sysctl.d/local.conf
+but as long as you follow the rules for the name of the file, anything will
+work. see the sysctl.conf(5) man page for details of the format.
diff --git a/etc/syslog-ng/syslog-ng.conf b/etc/syslog-ng/syslog-ng.conf
new file mode 100644
index 0000000..1aee9e5
--- /dev/null
+++ b/etc/syslog-ng/syslog-ng.conf
@@ -0,0 +1,115 @@
+@version: 3.33
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# https://bugs.gentoo.org/426814
+@include "scl.conf"
+
+#
+# Syslog-ng configuration file, compatible with default hardened installations.
+#
+
+options {
+	threaded(yes);
+	chain_hostnames(no);
+	stats_freq(43200);
+};
+
+source src {
+    system();
+    internal();
+};
+
+source kernsrc {
+    file("/proc/kmsg");
+};
+
+#source net { udp(); };
+#log { source(net); destination(net_logs); };
+#destination net_logs { file("/var/log/HOSTS/$HOST/$YEAR$MONTH$DAY.log"); };
+
+destination authlog { file("/var/log/auth.log"); };
+destination _syslog { file("/var/log/syslog"); };
+destination cron { file("/var/log/cron.log"); };
+destination daemon { file("/var/log/daemon.log"); };
+destination kern { file("/var/log/kern.log"); };
+destination lpr { file("/var/log/lpr.log"); };
+destination user { file("/var/log/user.log"); };
+destination uucp { file("/var/log/uucp.log"); };
+#destination ppp { file("/var/log/ppp.log"); };
+destination mail { file("/var/log/mail.log"); };
+
+destination avc { file("/var/log/avc.log"); };
+destination audit { file("/var/log/audit.log"); };
+destination pax { file("/var/log/pax.log"); };
+destination grsec { file("/var/log/grsec.log"); };
+
+destination mailinfo { file("/var/log/mail.info"); };
+destination mailwarn { file("/var/log/mail.warn"); };
+destination mailerr { file("/var/log/mail.err"); };
+
+destination newscrit { file("/var/log/news/news.crit"); };
+destination newserr { file("/var/log/news/news.err"); };
+destination newsnotice { file("/var/log/news/news.notice"); };
+
+destination debug { file("/var/log/debug"); };
+destination messages { file("/var/log/messages"); };
+destination console { usertty("root"); };
+destination console_all { file("/dev/tty12"); };
+#destination loghost { udp("loghost" port(999)); };
+
+destination xconsole { pipe("/dev/xconsole"); };
+
+filter f_auth { facility(auth); };
+filter f_authpriv { facility(auth, authpriv); };
+filter f_syslog { not facility(authpriv, mail); };
+filter f_cron { facility(cron); };
+filter f_daemon { facility(daemon); };
+filter f_kern { facility(kern); };
+filter f_lpr { facility(lpr); };
+filter f_mail { facility(mail); };
+filter f_user { facility(user); };
+filter f_uucp { facility(uucp); };
+#filter f_ppp { facility(ppp); };
+filter f_news { facility(news); };
+filter f_debug { not facility(auth, authpriv, news, mail); };
+filter f_messages { level(info..warn)
+	and not facility(auth, authpriv, mail, news); };
+filter f_emergency { level(emerg); };
+
+filter f_info { level(info); };
+
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_crit { level(crit); };
+filter f_err { level(err); };
+
+filter f_avc { message(".*avc: .*"); };
+filter f_audit { message("^(\\[.*\..*\] |)audit.*") and not message(".*avc: .*"); };
+filter f_pax { message("^(\\[.*\..*\] |)PAX:.*"); };
+filter f_grsec { message("^(\\[.*\..*\] |)grsec:.*"); };
+
+log { source(src); filter(f_authpriv); destination(authlog); };
+log { source(src); filter(f_syslog); destination(_syslog); };
+log { source(src); filter(f_cron); destination(cron); };
+log { source(src); filter(f_daemon); destination(daemon); };
+log { source(kernsrc); filter(f_kern); destination(kern); destination(console_all); };
+log { source(src); filter(f_lpr); destination(lpr); };
+log { source(src); filter(f_mail); destination(mail); };
+log { source(src); filter(f_user); destination(user); };
+log { source(src); filter(f_uucp); destination(uucp); };
+log { source(kernsrc); filter(f_pax); destination(pax); };
+log { source(kernsrc); filter(f_grsec); destination(grsec); };
+log { source(kernsrc); filter(f_audit); destination(audit); };
+log { source(kernsrc); filter(f_avc); destination(avc); };
+log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); };
+log { source(src); filter(f_mail); filter(f_warn); destination(mailwarn); };
+log { source(src); filter(f_mail); filter(f_err); destination(mailerr); };
+log { source(src); filter(f_news); filter(f_crit); destination(newscrit); };
+log { source(src); filter(f_news); filter(f_err); destination(newserr); };
+log { source(src); filter(f_news); filter(f_notice); destination(newsnotice); };
+log { source(src); filter(f_debug); destination(debug); };
+log { source(src); filter(f_messages); destination(messages); };
+log { source(src); filter(f_emergency); destination(console); };
+#log { source(src); filter(f_ppp); destination(ppp); };
+log { source(src); destination(console_all); };
diff --git a/etc/thinkfan.conf b/etc/thinkfan.conf
new file mode 100644
index 0000000..1784896
--- /dev/null
+++ b/etc/thinkfan.conf
@@ -0,0 +1,107 @@
+######################################################################
+## thinkfan 0.9 example config file
+## ================================
+##
+## ATTENTION: There is only very basic sanity checking on the configuration.
+## That means you can set your temperature limits as insane as you like. You
+## can do anything stupid, e.g. turn off your fan when your CPU reaches 70°C.
+##
+## That's why this program is called thinkfan: You gotta think for yourself.
+##
+#######################################################################
+##
+## This file shows how to use sensor-specific temperature limits.
+## First of all, you need to specify temperature inputs. On a Thinkpad, you can
+## just use:
+##
+#tp_thermal /proc/acpi/ibm/thermal  # provides us with 16 temperature inputs
+
+##
+## On other systems, you have to specify a file in /sys/class/hwmon for each
+## sensor you want to use. They are numbered in their order of appearance.
+## For example:
+#
+# hwmon /sys/class/hwmon5/temp2_input           #1
+# hwmon /sys/class/hwmon0/device/temp3_input    #2
+#
+## If you want to read temperatures directly from the hard disk, thinkfan needs
+## to be compiled with -DUSE_ATASMART. Then you can do:
+#
+# atasmart /dev/sda                             #3
+# ...
+#
+## You can have as many temperature inputs as you like. You should at get the
+## temperature from the CPU, the GPU and the hard disk.
+#
+hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input
+hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input
+hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_input
+
+#
+## Next we specify the fan we want to use. On a Thinkpad, this is:
+#
+tp_fan /proc/acpi/ibm/fan
+
+#
+## On anything other than a Thinkpad you'll probably use some PWM control file
+## in /sys/class/hwmon. Remember that fan levels range from 0 to 255 and that
+## they're just a number, not including the word "level" as seen below.
+## A sysfs fan would be specified like this:
+#
+# pwm_fan /sys/class/hwmon/hwmon2/device/pwm1
+#
+## But remember you can only have one fan.
+
+#
+## Then you need to specify the temperature limits for each of the sensors.
+## A dot means that the corresponding sensor should be ignored. The length of the
+## UPPER and LOWER limits must be the same as the number of temperatures. In this
+## example, /proc/acpi/ibm/thermal contains 16 sensors (on older thinkpads,
+## there may be only 8), some of which are unused (hence the dots).
+## A sysfs temperature input always contains only one sensor, so if you specify
+## 5 sysfs files above, the length of your limits must be 5, too.
+#
+## I've come up with these preliminary settings for my Thinkpad T61p. They probably
+## don't make sense for anything else, so you most definitely have to work
+## something out for yourself.
+#
+{ "level 0"   # the fan level
+# ^-------^   This works for /proc/acpi/ibm/thermal.
+#             for a PWM fan in /sys/class/hwmon it would have to be just
+#             0 or "0".
+#
+#    Sensor count:
+#    1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16
+#    ==============================================
+    (0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0)      # LOWER limit
+    (54 42 42 54 42 .  42 .  42 46 54 .  .  .  .  .)      # UPPER limit
+}
+
+{ "level 1"
+# ^-------^ For a PWM fan you may have to use something around 30 to get the
+# same speed.
+    (46 39 39 48 39 .  39 .  41 44 46 .  .  .  .  .)
+    (58 45 45 60 45 .  45 .  45 47 56 .  .  .  .  .)
+}
+
+{ "level 3"
+    (52 43 43 57 43 .  43 .  43 45 51 .  .  .  .  .)
+    (62 48 48 67 48 .  48 .  48 48 57 .  .  .  .  .)
+}
+
+{ "level 5"
+    (56 46 46 65 46 .  46 .  46 46 52 .  .  .  .  .)
+    (66 49 49 69 49 .  49 .  49 49 58 .  .  .  .  .)
+}
+
+{ "level 7"
+    (63 47 47 67 47 .  47 .  47 47 50 .  .  .  .  .)
+    (73 55 55 83 60 .  60 .  60 60 64 .  .  .  .  .)
+}
+
+{ "level disengaged" # nice idea: "level auto" can also be used.
+                     # but again: only numbers for sysfs.
+    (69 50 50 75 55 .  55 .  55 55 55 .  .  .  .  .)
+    (99 99 99 99 99 .  99 .  99 99 99 .  .  .  .  .)
+}
+
diff --git a/etc/timezone b/etc/timezone
new file mode 100644
index 0000000..94394e5
--- /dev/null
+++ b/etc/timezone
@@ -0,0 +1 @@
+Europe/Moscow
diff --git a/etc/udev/rules.d/60-bfq.rules b/etc/udev/rules.d/60-bfq.rules
new file mode 100644
index 0000000..5565b93
--- /dev/null
+++ b/etc/udev/rules.d/60-bfq.rules
@@ -0,0 +1,3 @@
+ACTION=="add|change", KERNEL=="nvme[0-9]n[0-9]", ATTR{queue/scheduler}="none"
+ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
+ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"
diff --git a/etc/udev/rules.d/80-net-name-slot.rules b/etc/udev/rules.d/80-net-name-slot.rules
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/etc/udev/rules.d/80-net-name-slot.rules
diff --git a/etc/udev/udev.conf b/etc/udev/udev.conf
new file mode 100644
index 0000000..47d1433
--- /dev/null
+++ b/etc/udev/udev.conf
@@ -0,0 +1,3 @@
+# see udev.conf(5) for details
+
+#udev_log="info"

Consider giving Nix/NixOS a try! <3