updated install script

This commit is contained in:
lelgenio 2019-11-24 03:54:02 -03:00
parent 9acb1250df
commit 3d8a7cf5e0
1 changed files with 208 additions and 472 deletions

View File

@ -42,10 +42,10 @@
DRIVE='/dev/sda'
# Hostname of the installed machine.
HOSTNAME='host100'
HOSTNAME='arch'
# Encrypt everything (except /boot). Leave blank to disable.
ENCRYPT_DRIVE='FALSE'
ENCRYPT_DRIVE=''
# Passphrase used to encrypt the drive (leave blank to be prompted).
DRIVE_PASSPHRASE=''
@ -69,6 +69,8 @@ TMP_ON_TMPFS='TRUE'
KEYMAP='br'
# KEYMAP='dvorak'
LANG=pt_BR.UTF-8
# Choose your video driver
# For Intel
VIDEO_DRIVER="i915"
@ -79,12 +81,8 @@ VIDEO_DRIVER="i915"
# For generic stuff
#VIDEO_DRIVER="vesa"
# Wireless device, leave blank to not use wireless and use DHCP instead.
WIRELESS_DEVICE="wlan0"
# For tc4200's
#WIRELESS_DEVICE="eth1"
setup() {
# Setup{{{
setup() {#{{{
local boot_dev="$DRIVE"1
local lvm_dev="$DRIVE"2
@ -135,20 +133,102 @@ setup() {
unmount_filesystems
echo 'Done! Reboot system.'
fi
}
}#}}}
partition_drive() {#{{{
local dev="$1"; shift
configure() {
# 100 MB /boot partition, everything else under LVM
parted -s "$dev" \
mklabel gpt \
mkpart boot 1 100M \
mkpart lvm 100M 100% \
set 1 boot on\
set 2 lvm on
}#}}}
encrypt_drive() {#{{{
local dev="$1"; shift
local passphrase="$1"; shift
local name="$1"; shift
echo -en "$passphrase" | cryptsetup luksFormat "$dev"
echo -en "$passphrase" | cryptsetup luksOpen "$dev" lvm
}#}}}
setup_lvm() {#{{{
local partition="$1"; shift
local volgroup="$1"; shift
pvcreate "$partition"
vgcreate "$volgroup" "$partition"
# Create a 1GB swap partition
lvcreate -C y -L1G "$volgroup" -n swap
# Use the rest of the space for root
lvcreate -L '30G' "$volgroup" -n root
lvcreate -l '+100%FREE' "$volgroup" -n home
# Enable the new volumes
vgchange -ay
}#}}}
format_filesystems() {#{{{
local boot_dev="$1"; shift
mkfs.fat -L boot "$boot_dev"
mkfs.ext4 -L root /dev/vg00/root
mkfs.ext4 -L home /dev/vg00/home
mkswap /dev/vg00/swap
}#}}}
mount_filesystems() {#{{{
local boot_dev="$1"; shift
mount /dev/vg00/root /mnt
mkdir /mnt/boot
mount "$boot_dev" /mnt/boot
swapon /dev/vg00/swap
}#}}}
install_base() {#{{{
pacstrap /mnt base base-devel\
linux-zen linux-firmware\
networkmanager git
local packages=''
# On Intel processors
packages+=' intel-ucode'
if [ "$VIDEO_DRIVER" = "i915" ]
then
packages+=' xf86-video-intel libva-intel-driver'
elif [ "$VIDEO_DRIVER" = "nouveau" ]
then
packages+=' xf86-video-nouveau'
elif [ "$VIDEO_DRIVER" = "radeon" ]
then
packages+=' xf86-video-ati'
elif [ "$VIDEO_DRIVER" = "vesa" ]
then
packages+=' xf86-video-vesa'
fi
pacstrap /mnt $packages
}#}}}
unmount_filesystems() {#{{{
umount /mnt/boot
umount /mnt
swapoff /dev/vg00/swap
vgchange -an
if [ -n "$ENCRYPT_DRIVE" ]
then
cryptsetup luksClose lvm
fi
}#}}}
#}}}
# Configuration{{{
configure() {#{{{
local boot_dev="$DRIVE"1
local lvm_dev="$DRIVE"2
echo 'Installing additional packages'
install_packages
echo 'Installing packer'
install_packer
echo 'Installing AUR packages'
install_aur_packages
echo 'Building locate database'
update_locate
echo 'Clearing package tarballs'
clean_packages
@ -163,7 +243,7 @@ configure() {
set_timezone "$TIMEZONE"
echo 'Setting locale'
set_locale
set_localet
echo 'Setting console keymap'
set_keymap
@ -192,12 +272,6 @@ configure() {
echo 'Configuring slim'
set_slim
if [ -n "$WIRELESS_DEVICE" ]
then
echo 'Configuring netcfg'
set_netcfg
fi
if [ -z "$ROOT_PASSWORD" ]
then
echo 'Enter the root password:'
@ -218,204 +292,74 @@ configure() {
echo 'Creating initial user'
create_user "$USER_NAME" "$USER_PASSWORD"
echo 'Building locate database'
update_locate
echo 'Installing AUR packages'
install_aur_packages
rm /setup.sh
}
}#}}}
install_aur_packages() {#{{{
partition_drive() {
local dev="$1"; shift
sudo pacman -S --needed \
git pacman-contrib \
base base-devel \
linux-zen linux-firmware
# 100 MB /boot partition, everything else under LVM
parted -s "$dev" \
mklabel msdos \
mkpart primary ext2 1 100M \
mkpart primary ext2 100M 100% \
set 1 boot on \
set 2 LVM on
}
encrypt_drive() {
local dev="$1"; shift
local passphrase="$1"; shift
local name="$1"; shift
echo -en "$passphrase" | cryptsetup -c aes-xts-plain -y -s 512 luksFormat "$dev"
echo -en "$passphrase" | cryptsetup luksOpen "$dev" lvm
}
setup_lvm() {
local partition="$1"; shift
local volgroup="$1"; shift
pvcreate "$partition"
vgcreate "$volgroup" "$partition"
# Create a 1GB swap partition
lvcreate -C y -L1G "$volgroup" -n swap
# Use the rest of the space for root
lvcreate -L '30G' "$volgroup" -n root
lvcreate -l '+100%FREE' "$volgroup" -n home
# Enable the new volumes
vgchange -ay
}
format_filesystems() {
local boot_dev="$1"; shift
mkfs.ext2 -L boot "$boot_dev"
mkfs.ext4 -L root /dev/vg00/root
mkfs.ext4 -L home /dev/vg00/root
mkswap /dev/vg00/swap
}
mount_filesystems() {
local boot_dev="$1"; shift
mount /dev/vg00/root /mnt
mkdir /mnt/boot
mount "$boot_dev" /mnt/boot
swapon /dev/vg00/swap
}
install_base() {
echo 'Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
pacstrap /mnt base base-devel
pacstrap /mnt syslinux
}
unmount_filesystems() {
umount /mnt/boot
umount /mnt
swapoff /dev/vg00/swap
vgchange -an
if [ -n "$ENCRYPT_DRIVE" ]
# getting yay
if [ ! -x /bin/yay ];
then
cryptsetup luksClose lvm
fi
}
install_packages() {
local packages=''
# General utilities/libraries
packages+=' alsa-utils cpupower gvim mlocate net-tools ntp openssh p7zip pkgfile powertop python python2 rfkill rsync sudo unrar unzip wget zip systemd-sysvcompat zsh grml-zsh-config'
# Development packages
packages+=' apache-ant cmake gdb git maven mercurial subversion tcpdump valgrind wireshark-gtk'
# Netcfg
if [ -n "$WIRELESS_DEVICE" ]
then
packages+=' netcfg ifplugd dialog wireless_tools wpa_actiond wpa_supplicant'
git clone http://aur.archlinux.org/yay.git ~/yay
cd ~/yay
makepkg -si
cd -
fi
# Java stuff
packages+=' icedtea-web-java7 jdk7-openjdk jre7-openjdk'
# Install a lot of things
yay -Syu --noconfirm --needed \
sway light mako pulseaudio pavolume-git udiskie wofi-hg \
httpie jq python-keepmenu-git\
ttf-hack inter-font\
grim slurp wl-clipboard\
materia-custom-accent papirus-icon-theme-git\
papirus-folders-git capitaine-cursors \
termite neovim ranger mimeo atool\
zsh powerline-fonts\
qutebrowser \
steam lutris \
gimp kdenlive mpv mpd mpc ncmpcpp
# Libreoffice
packages+=' libreoffice-calc libreoffice-en-US libreoffice-gnome libreoffice-impress libreoffice-writer hunspell-en hyphen-en mythes-en'
# Misc programs
packages+=' mpv dosfstools ntfsprogs'
# Fonts
packages+=' ttf-dejavu ttf-liberation'
# On Intel processors
packages+=' intel-ucode'
# For laptops
packages+=' xf86-input-synaptics'
# Extra packages for tc4200 tablet
#packages+=' ipw2200-fw xf86-input-wacom'
if [ "$VIDEO_DRIVER" = "i915" ]
then
packages+=' xf86-video-intel libva-intel-driver'
elif [ "$VIDEO_DRIVER" = "nouveau" ]
then
packages+=' xf86-video-nouveau'
elif [ "$VIDEO_DRIVER" = "radeon" ]
then
packages+=' xf86-video-ati'
elif [ "$VIDEO_DRIVER" = "vesa" ]
then
packages+=' xf86-video-vesa'
fi
pacman -Sy --noconfirm $packages
}
install_packer() {
mkdir /foo
cd /foo
curl https://aur.archlinux.org/packages/pa/packer/packer.tar.gz | tar xzf -
cd packer
makepkg -si --noconfirm --asroot
cd /
rm -rf /foo
}
install_aur_packages() {
mkdir /foo
export TMPDIR=/foo
packer -S --noconfirm android-udev
packer -S --noconfirm chromium-pepper-flash-stable
packer -S --noconfirm chromium-libpdf-stable
unset TMPDIR
rm -rf /foo
}
clean_packages() {
}#}}}
clean_packages() {#{{{
yes | pacman -Scc
}
update_pkgfile() {
}#}}}
update_pkgfile() {#{{{
pkgfile -u
}
set_hostname() {
}#}}}
set_hostname() {#{{{
local hostname="$1"; shift
echo "$hostname" > /etc/hostname
}
set_timezone() {
local timezone="$1"; shift
ln -sT "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
}
set_locale() {
echo 'LANG="en_US.UTF-8"' >> /etc/locale.conf
echo 'LC_COLLATE="C"' >> /etc/locale.conf
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
}
set_keymap() {
echo "KEYMAP=$KEYMAP" > /etc/vconsole.conf
}
set_hosts() {
local hostname="$1"; shift
cat > /etc/hosts <<EOF
127.0.0.1 localhost.localdomain localhost $hostname
::1 localhost.localdomain localhost $hostname
EOF
}
}#}}}
set_timezone() {#{{{
local timezone="$1"; shift
set_fstab() {
ln -sT "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
}#}}}
set_locale() {#{{{
echo "LANG=$LANG" >> /etc/locale.conf
echo "LC_COLLATE=C" >> /etc/locale.conf
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "$LANG UTF-8" >> /etc/locale.gen
locale-gen
}#}}}
set_keymap() {#{{{
echo "KEYMAP=$KEYMAP" > /etc/vconsole.conf
}#}}}
set_fstab() {#{{{
local tmp_on_tmpfs="$1"; shift
local boot_dev="$1"; shift
@ -427,18 +371,14 @@ set_fstab() {
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/vg00/swap none swap sw 0 0
/dev/vg00/root / ext4 defaults,relatime 0 1
/dev/vg00/swap none swap sw 0 0
/dev/vg00/root / ext4 rw,relatime 0 1
/dev/vg00/home /home ext4 rw,relatime 0 2
UUID=$boot_uuid /boot ext2 defaults,relatime 0 2
EOF
}
set_modules_load() {
echo 'microcode' > /etc/modules-load.d/intel-ucode.conf
}
set_initcpio() {
}#}}}
set_initcpio() {#{{{
local vid
if [ "$VIDEO_DRIVER" = "i915" ]
@ -458,31 +398,26 @@ set_initcpio() {
encrypt="encrypt"
fi
# Set MODULES with your video driver
cat > /etc/mkinitcpio.conf <<EOF
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES="ext4 $vid"
# MODULES=(piix ide_disk reiserfs)
MODULES=(ext4 $vid)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=""
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options
# like so:
# FILES="/etc/modprobe.d/modprobe.conf"
FILES=""
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
@ -496,30 +431,26 @@ FILES=""
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS="base udev autodetect pata scsi sata filesystems"
#
## This is identical to the above, except the old ide subsystem is
## used for IDE devices instead of the new pata subsystem.
# HOOKS="base udev autodetect ide scsi sata filesystems"
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS="base udev pata scsi sata usb filesystems"
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS="base udev pata mdadm encrypt filesystems"
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev usb lvm2 filesystems"
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block keymap keyboard $encrypt lvm2 resume filesystems fsck"
HOOKS=(base udev autodetect modconf block $encrypt lvm2 filesystems keyboard fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
@ -529,34 +460,26 @@ HOOKS="base udev autodetect modconf block keymap keyboard $encrypt lvm2 resume f
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=""
#COMPRESSION_OPTIONS=()
EOF
mkinitcpio -p linux
}
set_daemons() {
mkinitcpio -P
}#}}}
set_daemons() {#{{{
local tmp_on_tmpfs="$1"; shift
systemctl enable cronie.service cpupower.service ntpd.service slim.service
if [ -n "$WIRELESS_DEVICE" ]
then
systemctl enable net-auto-wired.service net-auto-wireless.service
else
systemctl enable dhcpcd@eth0.service
fi
systemctl enable cronie.service NetworkManager.service
if [ -z "$tmp_on_tmpfs" ]
then
systemctl mask tmp.mount
fi
}
set_syslinux() {
}#}}}
set_bootctl() {#{{{
local lvm_dev="$1"; shift
local lvm_uuid=$(get_uuid "$lvm_dev")
@ -565,90 +488,23 @@ set_syslinux() {
if [ -n "$ENCRYPT_DRIVE" ]
then
# Load in resources
crypt="cryptdevice=/dev/disk/by-uuid/$lvm_uuid:lvm"
crypt="root=UUID=$lvm_uuid"
fi
cat > /boot/syslinux/syslinux.cfg <<EOF
# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
#
# Comboot modules:
# * menu.c32 - provides a text menu
# * vesamenu.c32 - provides a graphical menu
# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
# * hdt.c32 - hardware detection tool
# * reboot.c32 - reboots the system
# * poweroff.com - shutdown the system
#
# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
# If /usr and /boot are on the same file system, symlink the files instead
# of copying them.
#
# If you do not use a menu, a 'boot:' prompt will be shown and the system
# will boot automatically after 5 seconds.
#
# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
# The wiki provides further configuration examples
cat > /boot/loader/entries/arch.conf <<EOF
title arch
DEFAULT arch
PROMPT 0 # Set to 1 if you always want to display the boot: prompt
TIMEOUT 50
# You can create syslinux keymaps with the keytab-lilo tool
#KBDMAP de.ktl
linux vmlinuz-linux-zen
initrd intel-ucode.img
initrd initramfs-linux-zen.img
# Menu Configuration
# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
UI menu.c32
#UI vesamenu.c32
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU TITLE Arch Linux
#MENU BACKGROUND splash.png
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
# boot sections follow
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*
LABEL arch
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
APPEND root=/dev/vg00/root ro $crypt resume=/dev/vg00/swap quiet
INITRD ../initramfs-linux.img
LABEL archfallback
MENU LABEL Arch Linux Fallback
LINUX ../vmlinuz-linux
APPEND root=/dev/vg00/root ro $crypt resume=/dev/vg00/swap
INITRD ../initramfs-linux-fallback.img
LABEL hdt
MENU LABEL HDT (Hardware Detection Tool)
COM32 hdt.c32
LABEL reboot
MENU LABEL Reboot
COM32 reboot.c32
LABEL off
MENU LABEL Power Off
COMBOOT poweroff.com
options $crypt
#options quiet splash loglevel=3 rd.udev.log_priority=3 vt.global_cursor_default=0 $crypt
EOF
syslinux-install_update -iam
}
set_sudoers() {
bootctl install
}#}}}
set_sudoers() {#{{{
cat > /etc/sudoers <<EOF
## sudoers file.
##
@ -679,6 +535,7 @@ set_sudoers() {
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
##
## Defaults specification
@ -707,12 +564,18 @@ set_sudoers() {
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!/sbin/reboot !log_output
# Defaults!REBOOT !log_output
##
## Runas alias specification
@ -724,182 +587,55 @@ set_sudoers() {
root ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL
# %sudo ALL=(ALL) ALL
## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw # Ask for the password of the target user
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
%rfkill ALL=(ALL) NOPASSWD: /usr/sbin/rfkill
%network ALL=(ALL) NOPASSWD: /usr/bin/netcfg, /usr/bin/wifi-menu
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d
EOF
chmod 440 /etc/sudoers
}
set_slim() {
cat > /etc/slim.conf <<EOF
# Path, X server and arguments (if needed)
# Note: -xauth $authfile is automatically appended
default_path /bin:/usr/bin:/usr/local/bin
default_xserver /usr/bin/X
xserver_arguments -nolisten tcp vt07
# Commands for halt, login, etc.
halt_cmd /sbin/poweroff
reboot_cmd /sbin/reboot
console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
suspend_cmd /usr/bin/systemctl hybrid-sleep
# Full path to the xauth binary
xauth_path /usr/bin/xauth
# Xauth file for server
authfile /var/run/slim.auth
# Activate numlock when slim starts. Valid values: on|off
# numlock on
# Hide the mouse cursor (note: does not work with some WMs).
# Valid values: true|false
# hidecursor false
# This command is executed after a succesful login.
# you can place the %session and %theme variables
# to handle launching of specific commands in .xinitrc
# depending of chosen session and slim theme
#
# NOTE: if your system does not have bash you need
# to adjust the command according to your preferred shell,
# i.e. for freebsd use:
# login_cmd exec /bin/sh - ~/.xinitrc %session
# login_cmd exec /bin/bash -login ~/.xinitrc %session
login_cmd exec /bin/zsh -l ~/.xinitrc %session
# Commands executed when starting and exiting a session.
# They can be used for registering a X11 session with
# sessreg. You can use the %user variable
#
# sessionstart_cmd some command
# sessionstop_cmd some command
# Start in daemon mode. Valid values: yes | no
# Note that this can be overriden by the command line
# options "-d" and "-nodaemon"
# daemon yes
# Available sessions (first one is the default).
# The current chosen session name is replaced in the login_cmd
# above, so your login command can handle different sessions.
# see the xinitrc.sample file shipped with slim sources
sessions foo
# Executed when pressing F11 (requires imagemagick)
#screenshot_cmd import -window root /slim.png
# welcome message. Available variables: %host, %domain
welcome_msg %host
# Session message. Prepended to the session name when pressing F1
# session_msg Session:
# shutdown / reboot messages
shutdown_msg The system is shutting down...
reboot_msg The system is rebooting...
# default user, leave blank or remove this line
# for avoid pre-loading the username.
#default_user simone
# Focus the password field on start when default_user is set
# Set to "yes" to enable this feature
#focus_password no
# Automatically login the default user (without entering
# the password. Set to "yes" to enable this feature
#auto_login no
# current theme, use comma separated list to specify a set to
# randomly choose from
#current_theme default
current_theme archlinux-simplyblack
# Lock file
lockfile /run/lock/slim.lock
# Log file
logfile /var/log/slim.log
EOF
}
set_netcfg() {
cat > /etc/network.d/wired <<EOF
CONNECTION='ethernet'
DESCRIPTION='Ethernet with DHCP'
INTERFACE='eth0'
IP='dhcp'
EOF
chmod 600 /etc/network.d/wired
cat > /etc/conf.d/netcfg <<EOF
# Enable these netcfg profiles at boot time.
# - prefix an entry with a '@' to background its startup
# - set to 'last' to restore the profiles running at the last shutdown
# - set to 'menu' to present a menu (requires the dialog package)
# Network profiles are found in /etc/network.d
NETWORKS=()
# Specify the name of your wired interface for net-auto-wired
WIRED_INTERFACE="eth0"
# Specify the name of your wireless interface for net-auto-wireless
WIRELESS_INTERFACE="$WIRELESS_DEVICE"
# Array of profiles that may be started by net-auto-wireless.
# When not specified, all wireless profiles are considered.
#AUTO_PROFILES=("profile1" "profile2")
EOF
}
set_root_password() {
}#}}}
set_root_password() {#{{{
local password="$1"; shift
echo -en "$password\n$password" | passwd
}
create_user() {
}#}}}
create_user() {#{{{
local name="$1"; shift
local password="$1"; shift
useradd -m -s /bin/zsh -G adm,systemd-journal,wheel,rfkill,games,network,video,audio,optical,floppy,storage,scanner,power,adbusers,wireshark "$name"
echo -en "$password\n$password" | passwd "$name"
}
update_locate() {
}#}}}
update_locate() {#{{{
updatedb
}
get_uuid() {
}#}}}
get_uuid() {#{{{
blkid -o export "$1" | grep UUID | awk -F= '{print $2}'
}
}#}}}
#}}}
set -ex
if [ "$1" == "chroot" ]
then
configure
elif [ "$1" == "pkg" ]
then
install_aur_packages
else
setup
fi
# vim:foldmethod=marker