Merge branch 'refactor-archiso' into dev
65
scripts/max-cpu-temp
Executable file
|
|
@ -0,0 +1,65 @@
|
|||
#!/bin/env python3
|
||||
#
|
||||
|
||||
import json
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
CPU_REGEX = re.compile(r'(core|k\d+)temp', re.IGNORECASE)
|
||||
NON_TEMP_REGEX = re.compile(r'^(fan|in|curr)', re.IGNORECASE)
|
||||
|
||||
def get_data():
|
||||
cmd = ('sensors', '-j')
|
||||
data = {}
|
||||
raw_data = []
|
||||
|
||||
try:
|
||||
proc = subprocess.run(
|
||||
args=cmd,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
encoding='utf-8',
|
||||
check=True,
|
||||
)
|
||||
except subprocess.CalledProcessError:
|
||||
return data
|
||||
|
||||
for line in proc.stdout.splitlines():
|
||||
if line.strip() == ',':
|
||||
# Assuming malformatted line caused by missing data
|
||||
continue
|
||||
raw_data.append(line)
|
||||
|
||||
try:
|
||||
data = json.loads('\n'.join(raw_data))
|
||||
except json.JSONDecodeError:
|
||||
# Still broken, just return the empty dict
|
||||
pass
|
||||
|
||||
return data
|
||||
|
||||
def get_max_temp(data):
|
||||
cpu_temps = []
|
||||
max_cpu_temp = '??° C'
|
||||
for adapter, sources in data.items():
|
||||
if not CPU_REGEX.search(adapter):
|
||||
continue
|
||||
sources.pop('Adapter', None)
|
||||
|
||||
for labels in sources.values():
|
||||
for label, temp in sorted(labels.items()):
|
||||
if 'input' not in label or NON_TEMP_REGEX.search(label):
|
||||
continue
|
||||
cpu_temps.append(temp)
|
||||
|
||||
# Format data
|
||||
if cpu_temps:
|
||||
max_cpu_temp = int(max(cpu_temps))
|
||||
max_cpu_temp = f'{max_cpu_temp:02d}° C'
|
||||
|
||||
# Done
|
||||
return max_cpu_temp
|
||||
|
||||
if __name__ == '__main__':
|
||||
sensor_data = get_data()
|
||||
print(get_max_temp(sensor_data))
|
||||
|
|
@ -10,6 +10,9 @@ sudo sed -i -r "s/^(Server = )/#\1/" /etc/pacman.conf
|
|||
# Disable signature checks
|
||||
sudo sed -i -r "s/^SigLevel.*/SigLevel = Never/" /etc/pacman.conf
|
||||
|
||||
# Init Pacman keyring
|
||||
sudo systemctl start pacman-init.service
|
||||
|
||||
# Refresh package databases
|
||||
sudo pacman -Sy
|
||||
|
||||
|
|
|
|||
33
scripts/resize-and-run
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
|
||||
# Magic numbers:
|
||||
## Width: | 20 | term_x | 20 | 180 (conky) | 20 |
|
||||
## Height: | 24 | 10 (titlebar) | term_y | 24 | 30 (Tint2) |
|
||||
## X Offset: 20 - 5 (shadow?)
|
||||
## Y Offset: 24 - 5 (shadow?)
|
||||
conky_width=180
|
||||
gap_x=20
|
||||
gap_y=24
|
||||
picom_shadow=5
|
||||
tint2_height=30
|
||||
titlebar_height=10
|
||||
|
||||
source ~/.screen_data
|
||||
|
||||
if [[ "${dpi}" -ge 192 ]]; then
|
||||
conky_width=360
|
||||
gap_x=40
|
||||
gap_y=48
|
||||
picom_shadow=5
|
||||
tint2_height=60
|
||||
titlebar_height=20
|
||||
fi
|
||||
|
||||
offset_x=$(echo "$gap_x - $picom_shadow" | bc)
|
||||
offset_y=$(echo "$gap_y - $picom_shadow" | bc)
|
||||
term_width="$(echo "$width_px - ($gap_x * 3) - $conky_width" | bc)"
|
||||
term_height="$(echo "$height_px - ($gap_y * 2) - $titlebar_height - $tint2_height" | bc)"
|
||||
|
||||
sleep 0.1s
|
||||
wmctrl -r :ACTIVE: -e "0,$offset_x,$offset_y,$term_width,$term_height" && "$@"
|
||||
4
scripts/start-max
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
|
||||
wmctrl -r:ACTIVE: -b toggle,maximized_vert,maximized_horz && "$@"
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
## WizardKit: GUI exit script
|
||||
# Inspired by: https://github.com/cramermarius/rofi-menus/blob/master/scripts/powermenu.sh
|
||||
|
||||
actions="Restart\nPoweroff\nLogout"
|
||||
temp_file="$(mktemp --suffix=.png)"
|
||||
|
||||
# Show blurred background
|
||||
import -window root "${temp_file}"
|
||||
convert "${temp_file}" -blur 0x4 "${temp_file}"
|
||||
feh -F "${temp_file}" &
|
||||
feh_pid="$!"
|
||||
|
||||
# Show menu
|
||||
selection="$(echo -e "$actions" | rofi -i -lines 3 -dmenu -p "Power Menu")"
|
||||
|
||||
# Done
|
||||
kill "${feh_pid}"
|
||||
case $selection in
|
||||
Logout)
|
||||
wk-power-command logout
|
||||
;;
|
||||
Poweroff)
|
||||
wk-power-command poweroff
|
||||
;;
|
||||
Restart)
|
||||
wk-power-command reboot
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
@ -8,17 +8,17 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
# Prep
|
||||
DATE="$(date +%F)"
|
||||
DATETIME="$(date +%F_%H%M)"
|
||||
DATE="$(date +%Y-%m-%d)"
|
||||
DATETIME="$(date +%Y-%m-%d_%H%M)"
|
||||
ROOT_DIR="$(realpath $(dirname "$0")/..)"
|
||||
BUILD_DIR="$ROOT_DIR/setup/BUILD"
|
||||
LIVE_DIR="$BUILD_DIR/live"
|
||||
LOG_DIR="$BUILD_DIR/logs"
|
||||
OUT_DIR="$ROOT_DIR/setup/OUT"
|
||||
PROFILE_DIR="$BUILD_DIR/archiso-profile"
|
||||
REPO_DIR="$BUILD_DIR/repo"
|
||||
SKEL_DIR="$LIVE_DIR/airootfs/etc/skel"
|
||||
SKEL_DIR="$PROFILE_DIR/airootfs/etc/skel"
|
||||
TEMP_DIR="$BUILD_DIR/temp"
|
||||
MIRRORLIST_SOURCE='https://www.archlinux.org/mirrorlist/?country=US&protocol=http&protocol=https&ip_version=4&use_mirror_status=on'
|
||||
MIRRORLIST_SOURCE='https://archlinux.org/mirrorlist/?country=US&protocol=http&protocol=https&ip_version=4&use_mirror_status=on'
|
||||
if command -v nano >/dev/null 2>&1; then
|
||||
EDITOR=nano
|
||||
elif command -v vim >/dev/null 2>&1; then
|
||||
|
|
@ -42,7 +42,7 @@ function ask() {
|
|||
}
|
||||
|
||||
function cleanup() {
|
||||
for d in "$TEMP_DIR" "$LIVE_DIR"; do
|
||||
for d in "$TEMP_DIR" "$PROFILE_DIR"; do
|
||||
if [[ -d "$d" ]]; then
|
||||
if ask "Remove: ${d}?"; then
|
||||
rm -Rf "$d"
|
||||
|
|
@ -74,27 +74,19 @@ function load_settings() {
|
|||
|
||||
function copy_live_env() {
|
||||
echo "Copying Archlinux files..."
|
||||
rsync -aI /usr/share/archiso/configs/releng/ "$LIVE_DIR/"
|
||||
|
||||
# Remove items
|
||||
rm "$LIVE_DIR/airootfs/etc/systemd/scripts/choose-mirror"
|
||||
rmdir "$LIVE_DIR/airootfs/etc/systemd/scripts" --ignore-fail-on-non-empty
|
||||
rm "$LIVE_DIR/airootfs/etc/systemd/system/choose-mirror.service"
|
||||
rm "$LIVE_DIR/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount"
|
||||
rm "$LIVE_DIR/airootfs/etc/systemd/system/pacman-init.service"
|
||||
rm "$LIVE_DIR/airootfs/etc/udev/rules.d/81-dhcpcd.rules"
|
||||
rmdir "$LIVE_DIR/airootfs/etc/udev/rules.d" --ignore-fail-on-non-empty
|
||||
rmdir "$LIVE_DIR/airootfs/etc/udev" --ignore-fail-on-non-empty
|
||||
rm "$LIVE_DIR/isolinux"/*.cfg
|
||||
rm "$LIVE_DIR/syslinux"/*.cfg "$LIVE_DIR/syslinux"/*.png
|
||||
rsync -aI "$ROOT_DIR/setup/linux/profile_base/" "$PROFILE_DIR/"
|
||||
|
||||
# Add items
|
||||
rsync -aI "$ROOT_DIR/setup/linux/include/" "$LIVE_DIR/"
|
||||
if [[ "${1:-}" != "--minimal" ]]; then
|
||||
rsync -aI "$ROOT_DIR/setup/linux/include_x/" "$LIVE_DIR/"
|
||||
rsync -aI "$ROOT_DIR/setup/linux/profile_gui/" "$PROFILE_DIR/"
|
||||
fi
|
||||
mkdir -p "$LIVE_DIR/airootfs/usr/local/bin"
|
||||
rsync -aI "$ROOT_DIR/scripts/" "$LIVE_DIR/airootfs/usr/local/bin/"
|
||||
mkdir -p "$PROFILE_DIR/airootfs/usr/local/bin"
|
||||
rsync -aI "$ROOT_DIR/scripts/" "$PROFILE_DIR/airootfs/usr/local/bin/"
|
||||
|
||||
# Update profiledef.sh to set proper permissions for executable files
|
||||
for _file in $(find "$PROFILE_DIR/airootfs" -executable -type f | sed "s%$PROFILE_DIR/airootfs%%" | sort); do
|
||||
sed -i "\$i\ [\"$_file\"]=\"0:0:0755\"" "$PROFILE_DIR/profiledef.sh"
|
||||
done
|
||||
}
|
||||
|
||||
function run_elevated() {
|
||||
|
|
@ -123,71 +115,67 @@ function update_live_env() {
|
|||
username="tech"
|
||||
label="${KIT_NAME_SHORT}_LINUX"
|
||||
|
||||
# MOTD
|
||||
sed -i -r "s/KIT_NAME_SHORT/$KIT_NAME_SHORT/" "$PROFILE_DIR/profiledef.sh"
|
||||
sed -i -r "s/KIT_NAME_FULL/$KIT_NAME_SHORT/" "$PROFILE_DIR/profiledef.sh"
|
||||
sed -i -r "s/SUPPORT_URL/$KIT_NAME_SHORT/" "$PROFILE_DIR/profiledef.sh"
|
||||
|
||||
# Boot config (legacy)
|
||||
mkdir -p "$LIVE_DIR/arch"
|
||||
cp "$ROOT_DIR/images/Pxelinux.png" "$LIVE_DIR/arch/pxelinux.png"
|
||||
cp "$ROOT_DIR/images/Syslinux.png" "$LIVE_DIR/arch/syslinux.png"
|
||||
sed -i -r "s/_+/$KIT_NAME_FULL/" "$LIVE_DIR/syslinux/wk_head.cfg"
|
||||
mkdir -p "$PROFILE_DIR/arch"
|
||||
cp "$ROOT_DIR/images/Pxelinux.png" "$PROFILE_DIR/arch/pxelinux.png"
|
||||
cp "$ROOT_DIR/images/Syslinux.png" "$PROFILE_DIR/arch/syslinux.png"
|
||||
sed -i -r "s/__+/$KIT_NAME_FULL/" "$PROFILE_DIR/syslinux/syslinux.cfg"
|
||||
mkdir -p "$TEMP_DIR" 2>/dev/null
|
||||
curl -Lo "$TEMP_DIR/wimboot.zip" "http://git.ipxe.org/releases/wimboot/wimboot-latest.zip"
|
||||
7z e -aoa "$TEMP_DIR/wimboot.zip" -o"$LIVE_DIR/arch/boot" 'wimboot*/LICENSE.txt' 'wimboot*/README.txt' 'wimboot*/wimboot'
|
||||
7z e -aoa "$TEMP_DIR/wimboot.zip" -o"$PROFILE_DIR/arch/boot" 'wimboot*/LICENSE.txt' 'wimboot*/README.txt' 'wimboot*/wimboot'
|
||||
|
||||
# Boot config (UEFI)
|
||||
mkdir -p "$LIVE_DIR/EFI/boot"
|
||||
cp "/usr/share/refind/refind_x64.efi" "$LIVE_DIR/EFI/boot/bootx64.efi"
|
||||
cp "$ROOT_DIR/images/rEFInd.png" "$LIVE_DIR/EFI/boot/rEFInd.png"
|
||||
rsync -aI "/usr/share/refind/drivers_x64/" "$LIVE_DIR/EFI/boot/drivers_x64/"
|
||||
rsync -aI "/usr/share/refind/icons/" "$LIVE_DIR/EFI/boot/icons/" --exclude "/usr/share/refind/icons/svg"
|
||||
sed -i "s/%ARCHISO_LABEL%/${label}/" "$LIVE_DIR/EFI/boot/refind.conf"
|
||||
|
||||
# Customize_airootfs.sh
|
||||
sed -i -r 's/set -e -u/set -o errexit\nset -o errtrace\nset -o nounset\nset -o pipefail/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
mkdir -p "$PROFILE_DIR/EFI/boot"
|
||||
cp "/usr/share/refind/refind_x64.efi" "$PROFILE_DIR/EFI/boot/bootx64.efi"
|
||||
cp "$ROOT_DIR/images/rEFInd.png" "$PROFILE_DIR/EFI/boot/rEFInd.png"
|
||||
rsync -aI "/usr/share/refind/drivers_x64/" "$PROFILE_DIR/EFI/boot/drivers_x64/"
|
||||
rsync -aI "/usr/share/refind/icons/" "$PROFILE_DIR/EFI/boot/icons/" --exclude "/usr/share/refind/icons/svg"
|
||||
sed -i "s/%ARCHISO_LABEL%/${label}/" "$PROFILE_DIR/EFI/boot/refind.conf"
|
||||
|
||||
# Memtest86
|
||||
mkdir -p "$LIVE_DIR/EFI/memtest86/Benchmark"
|
||||
mkdir -p "$PROFILE_DIR/EFI/memtest86/Benchmark"
|
||||
mkdir -p "$TEMP_DIR/memtest86"
|
||||
curl -Lo "$TEMP_DIR/memtest86/memtest86-usb.zip" "https://www.memtest86.com/downloads/memtest86-usb.zip"
|
||||
7z e -aoa "$TEMP_DIR/memtest86/memtest86-usb.zip" -o"$TEMP_DIR/memtest86" "memtest86-usb.img"
|
||||
7z e -aoa "$TEMP_DIR/memtest86/memtest86-usb.img" -o"$TEMP_DIR/memtest86" "MemTest86.img"
|
||||
7z x -aoa "$TEMP_DIR/memtest86/MemTest86.img" -o"$TEMP_DIR/memtest86"
|
||||
rm "$TEMP_DIR/memtest86/EFI/BOOT/BOOTIA32.efi"
|
||||
mv "$TEMP_DIR/memtest86/EFI/BOOT/BOOTX64.efi" "$LIVE_DIR/EFI/memtest86/memtestx64.efi"
|
||||
mv "$TEMP_DIR/memtest86/EFI/BOOT"/* "$LIVE_DIR/EFI/memtest86"/
|
||||
mv "$TEMP_DIR/memtest86/help"/* "$LIVE_DIR/EFI/memtest86"/
|
||||
mv "$TEMP_DIR/memtest86/license.rtf" "$LIVE_DIR/EFI/memtest86"/
|
||||
mv "$TEMP_DIR/memtest86/EFI/BOOT/BOOTX64.efi" "$PROFILE_DIR/EFI/memtest86/memtestx64.efi"
|
||||
mv "$TEMP_DIR/memtest86/EFI/BOOT"/* "$PROFILE_DIR/EFI/memtest86"/
|
||||
mv "$TEMP_DIR/memtest86/help"/* "$PROFILE_DIR/EFI/memtest86"/
|
||||
mv "$TEMP_DIR/memtest86/license.rtf" "$PROFILE_DIR/EFI/memtest86"/
|
||||
|
||||
# build.sh
|
||||
if ! grep -iq 'wizardkit additions' "$LIVE_DIR/build.sh"; then
|
||||
sed -i -r 's/^(run_once make_iso)$/# wizardkit additions\n\1/' "$LIVE_DIR/build.sh"
|
||||
sed -i "/# wizardkit additions/r $ROOT_DIR/setup/linux/build_additions.txt" "$LIVE_DIR/build.sh"
|
||||
fi
|
||||
#if ! grep -iq 'wizardkit additions' "$PROFILE_DIR/build.sh"; then
|
||||
# sed -i -r 's/^(run_once make_iso)$/# wizardkit additions\n\1/' "$PROFILE_DIR/build.sh"
|
||||
# sed -i "/# wizardkit additions/r $ROOT_DIR/setup/linux/build_additions.txt" "$PROFILE_DIR/build.sh"
|
||||
#fi
|
||||
|
||||
# Hostname
|
||||
echo "$hostname" > "$LIVE_DIR/airootfs/etc/hostname"
|
||||
echo "127.0.1.1 $hostname.localdomain $hostname" >> "$LIVE_DIR/airootfs/etc/hosts"
|
||||
echo "$hostname" > "$PROFILE_DIR/airootfs/etc/hostname"
|
||||
echo "127.0.1.1 $hostname.localdomain $hostname" >> "$PROFILE_DIR/airootfs/etc/hosts"
|
||||
|
||||
# Live packages
|
||||
while read -r p; do
|
||||
sed -i "/$p/d" "$LIVE_DIR/packages.x86_64"
|
||||
done < "$ROOT_DIR/setup/linux/packages/live_remove"
|
||||
cat "$ROOT_DIR/setup/linux/packages/live_add" >> "$LIVE_DIR/packages.x86_64"
|
||||
if [[ "${1:-}" == "--minimal" ]]; then
|
||||
cat "$ROOT_DIR/setup/linux/packages/live_add_min" >> "$LIVE_DIR/packages.x86_64"
|
||||
else
|
||||
cat "$ROOT_DIR/setup/linux/packages/live_add_x" >> "$LIVE_DIR/packages.x86_64"
|
||||
cp "$ROOT_DIR/setup/linux/packages/base" "$PROFILE_DIR/packages.x86_64"
|
||||
if [[ "${1:-}" != "--minimal" ]]; then
|
||||
cat "$ROOT_DIR/setup/linux/packages/gui" >> "$PROFILE_DIR/packages.x86_64"
|
||||
fi
|
||||
echo "[custom]" >> "$LIVE_DIR/pacman.conf"
|
||||
echo "SigLevel = Optional TrustAll" >> "$LIVE_DIR/pacman.conf"
|
||||
echo "Server = file://$REPO_DIR" >> "$LIVE_DIR/pacman.conf"
|
||||
echo "" >> "$LIVE_DIR/pacman.conf"
|
||||
echo "[custom]" >> "$PROFILE_DIR/pacman.conf"
|
||||
echo "SigLevel = Optional TrustAll" >> "$PROFILE_DIR/pacman.conf"
|
||||
echo "Server = file://$REPO_DIR" >> "$PROFILE_DIR/pacman.conf"
|
||||
|
||||
# Mirrors
|
||||
sed -i -r 's/^(.*mirrorlist.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "curl -o '/etc/pacman.d/mirrorlist' '$MIRRORLIST_SOURCE'" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "sed -i 's/#Server/Server/g' /etc/pacman.d/mirrorlist" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
mkdir -p "$PROFILE_DIR/airootfs/etc/pacman.d"
|
||||
curl -Lo "$PROFILE_DIR/airootfs/etc/pacman.d/mirrorlist" "$MIRRORLIST_SOURCE"
|
||||
sed -i 's/#Server/Server/g' "$PROFILE_DIR/airootfs/etc/pacman.d/mirrorlist"
|
||||
|
||||
# MOTD
|
||||
sed -i -r "s/_+/$KIT_NAME_FULL Linux Environment/" "$LIVE_DIR/airootfs/etc/motd"
|
||||
sed -i -r "s/_+/$KIT_NAME_FULL Linux Environment/" "$PROFILE_DIR/airootfs/etc/motd"
|
||||
|
||||
# Oh My ZSH
|
||||
git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git "$SKEL_DIR/.oh-my-zsh"
|
||||
|
|
@ -197,64 +185,51 @@ function update_live_env() {
|
|||
if [[ "${1:-}" != "--minimal" ]]; then
|
||||
# Openbox theme
|
||||
git clone --depth=1 https://github.com/addy-dclxvi/Openbox-Theme-Collections.git "$TEMP_DIR/ob-themes"
|
||||
mkdir -p "$LIVE_DIR/airootfs/usr/share/themes"
|
||||
cp -a "$TEMP_DIR/ob-themes/Triste-Orange" "$LIVE_DIR/airootfs/usr/share/themes/"
|
||||
mkdir -p "$PROFILE_DIR/airootfs/usr/share/themes"
|
||||
cp -a "$TEMP_DIR/ob-themes/Triste-Orange" "$PROFILE_DIR/airootfs/usr/share/themes/"
|
||||
|
||||
# Rofi
|
||||
## Probably don't need the exact commit but it'll be fine
|
||||
mkdir -p "$PROFILE_DIR/airootfs/usr/share/fonts/"
|
||||
curl -Lo \
|
||||
"$PROFILE_DIR/airootfs/usr/share/fonts/Fantasque-Sans-Mono-Nerd-Font.ttf" \
|
||||
"https://github.com/adi1090x/rofi/raw/9c4093c665326bb08d6affc7e16d18d8f25c4452/fonts/Fantasque-Sans-Mono-Nerd-Font.ttf"
|
||||
curl -Lo \
|
||||
"$PROFILE_DIR/airootfs/usr/share/fonts/Feather.ttf" \
|
||||
"https://github.com/adi1090x/rofi/raw/9c4093c665326bb08d6affc7e16d18d8f25c4452/fonts/Feather.ttf"
|
||||
fi
|
||||
|
||||
# Services
|
||||
sed -i -r 's/^(.*pacman-init.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
sed -i -r 's/^(.*choose-mirror.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
|
||||
# Shutdown stall fix
|
||||
echo "sed -i -r 's/^.*(DefaultTimeoutStartSec)=.*$/\1=15s/' /etc/systemd/system.conf" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "sed -i -r 's/^.*(DefaultTimeoutStopSec)=.*$/\1=15s/' /etc/systemd/system.conf" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
|
||||
# SSH
|
||||
mkdir -p "$SKEL_DIR/.ssh"
|
||||
ssh-keygen -b 4096 -C "$username@$hostname" -N "" -f "$SKEL_DIR/.ssh/id_rsa"
|
||||
echo 'rm /root/.ssh/id*' >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo 'rm /root/.zlogin' >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
sed -i -r '/.*PermitRootLogin.*/d' "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "sed -i -r '/.*PermitRootLogin.*/d' /etc/ssh/sshd_config" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
if ! grep -qv "^#" "$ROOT_DIR/setup/linux/authorized_keys"; then
|
||||
echo "WARNING: No authorized SSH keys found." 1>&2
|
||||
fi
|
||||
cp "$ROOT_DIR/setup/linux/authorized_keys" "$SKEL_DIR/.ssh/authorized_keys"
|
||||
|
||||
# Root user
|
||||
echo "echo 'root:$ROOT_PASSWORD' | chpasswd" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
|
||||
# Sudo
|
||||
echo "echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "root:$(echo "$ROOT_PASSWORD" | openssl passwd -6 -stdin):14871::::::" >> "$PROFILE_DIR/airootfs/etc/shadow"
|
||||
|
||||
# Tech user
|
||||
echo "groupadd -r autologin" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "useradd -m -s /bin/zsh -G autologin,power,storage,wheel -U $username" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "echo '$username:$TECH_PASSWORD' | chpasswd" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "tech:$(echo "$TECH_PASSWORD" | openssl passwd -6 -stdin):14871::::::" >> "$PROFILE_DIR/airootfs/etc/shadow"
|
||||
|
||||
# Tech user autologin
|
||||
mkdir -p "$LIVE_DIR/airootfs/etc/systemd/system/getty@tty1.service.d"
|
||||
echo "[Service]" > "$LIVE_DIR/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf"
|
||||
echo "ExecStart=" >> "$LIVE_DIR/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf"
|
||||
echo "ExecStart=-/sbin/agetty --autologin $username --noclear %I 38400 linux" >> "$LIVE_DIR/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf"
|
||||
|
||||
# Timezone
|
||||
echo "ln -sf '/usr/share/zoneinfo/$LINUX_TIME_ZONE' '/etc/localtime'" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo 'sed -i "s/#FallbackNTP/NTP/" /etc/systemd/timesyncd.conf' >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
|
||||
# udevil fix
|
||||
echo "mkdir /media" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
# Timezonew
|
||||
ln -sf "/usr/share/zoneinfo/$LINUX_TIME_ZONE" "$PROFILE_DIR/airootfs/etc/localtime"
|
||||
|
||||
if [[ "${1:-}" != "--minimal" ]]; then
|
||||
# VNC password
|
||||
echo "mkdir '/home/$username/.vnc'" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
echo "echo '$TECH_PASSWORD' | vncpasswd -f > '/home/$username/.vnc/passwd'" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
mkdir "$SKEL_DIR/.vnc"
|
||||
echo "$TECH_PASSWORD" | vncpasswd -f > "$SKEL_DIR/.vnc/passwd"
|
||||
|
||||
# Wallpaper
|
||||
mkdir -p "$LIVE_DIR/airootfs/usr/share/wallpaper"
|
||||
cp "$ROOT_DIR/images/Linux.png" "$LIVE_DIR/airootfs/usr/share/wallpaper/burned.in"
|
||||
mkdir -p "$PROFILE_DIR/airootfs/usr/share/wallpaper"
|
||||
cp "$ROOT_DIR/images/Linux.png" "$PROFILE_DIR/airootfs/usr/share/wallpaper/burned.in"
|
||||
fi
|
||||
|
||||
# WiFi
|
||||
cp "$ROOT_DIR/setup/linux/known_networks" "$LIVE_DIR/airootfs/root/known_networks"
|
||||
echo "add-known-networks --user=$username" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
# TODO
|
||||
#cp "$ROOT_DIR/setup/linux/known_networks" "$PROFILE_DIR/airootfs/root/known_networks"
|
||||
#echo "add-known-networks --user=$username" >> "$PROFILE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
}
|
||||
|
||||
function update_repo() {
|
||||
|
|
@ -268,7 +243,7 @@ function update_repo() {
|
|||
# Archive current files
|
||||
if [[ -d "$REPO_DIR" ]]; then
|
||||
mkdir -p "$BUILD_DIR/Archive" 2>/dev/null
|
||||
archive="$BUILD_DIR/Archive/$(date "+%F_%H%M%S")"
|
||||
archive="$BUILD_DIR/Archive/$(date "+%Y-%m-%d_%H%M%S")"
|
||||
mv -bv "$REPO_DIR" "$archive"
|
||||
fi
|
||||
sleep 1s
|
||||
|
|
@ -282,15 +257,18 @@ function update_repo() {
|
|||
curl -LsfO https://aur.archlinux.org/cgit/aur.git/snapshot/$p.tar.gz
|
||||
tar xf $p.tar.gz
|
||||
pushd $p >/dev/null
|
||||
if [[ "$p" == "hfsprogs" ]]; then
|
||||
sed -i 's!http://cavan.codon.org.uk/\~mjg59/diskdev_cmds!https://sources.voidlinux.org/hfsprogs-540.1.linux3!' "$TEMP_DIR/hfsprogs/PKGBUILD"
|
||||
fi
|
||||
makepkg -d
|
||||
popd >/dev/null
|
||||
mv -n $p/*xz "$REPO_DIR"/
|
||||
mv -n $p/*zst "$REPO_DIR"/
|
||||
done < "$ROOT_DIR/setup/linux/packages/aur"
|
||||
popd >/dev/null
|
||||
|
||||
# Build custom repo database
|
||||
pushd "$REPO_DIR" >/dev/null
|
||||
repo-add custom.db.tar.gz *xz
|
||||
repo-add custom.db.tar.gz *zst
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
|
|
@ -326,7 +304,7 @@ function build_linux() {
|
|||
# Rerun script as root to start Archiso build process
|
||||
run_elevated "$(realpath "$0")" --build-iso
|
||||
# Cleanup
|
||||
mv -nv "$LIVE_DIR" "${LIVE_DIR}.${version}"
|
||||
mv -nv "$PROFILE_DIR" "${PROFILE_DIR}.${version}"
|
||||
perl-rename -v "s/(${KIT_NAME_SHORT}-Linux)-(${DATE}.*)/\1-${version}-\2/" "$OUT_DIR"/*
|
||||
done
|
||||
}
|
||||
|
|
@ -338,12 +316,6 @@ function build_iso() {
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Set permissions
|
||||
echo "Setting permissions..."
|
||||
chown root:root "$LIVE_DIR" -R
|
||||
chmod 700 "$LIVE_DIR/airootfs/etc/skel/.ssh"
|
||||
chmod 600 "$LIVE_DIR/airootfs/etc/skel/.ssh/id_rsa"
|
||||
|
||||
# Removing cached (and possibly outdated) custom repo packages
|
||||
for package in $(cat "$ROOT_DIR/setup/linux/packages/aur"); do
|
||||
for p in /var/cache/pacman/pkg/*${package}*; do
|
||||
|
|
@ -356,14 +328,19 @@ function build_iso() {
|
|||
# Build ISO
|
||||
prefix="${KIT_NAME_SHORT}-Linux"
|
||||
label="${KIT_NAME_SHORT}_LINUX"
|
||||
"$LIVE_DIR/build.sh" -N "$prefix" -V "$DATE" -L "$label" -w "$TEMP_DIR/Linux" -o "$OUT_DIR" -v | tee -a "$LOG_DIR/$DATETIME.log"
|
||||
#mkarchiso -w "$BUILD_DIR/work" -o "$OUT_DIR" -v "$PROFILE_DIR" | tee -a "$LOG_DIR/$DATETIME.log"
|
||||
mkarchiso -w /tmp/archiso-tmp -o "$OUT_DIR" -v "$PROFILE_DIR" | tee -a "$LOG_DIR/$DATETIME.log"
|
||||
|
||||
# Cleanup
|
||||
echo "Removing temp files..."
|
||||
rm "$TEMP_DIR/Linux" -Rf | tee -a "$LOG_DIR/$DATETIME.log"
|
||||
#sudo umount -R "$BUILD_DIR/work" || true
|
||||
#sudo rm -rf "$BUILD_DIR/work"
|
||||
sudo umount -R /tmp/archiso-tmp || true
|
||||
sudo rm -rf /tmp/archiso-tmp
|
||||
|
||||
echo "Reverting permissions..."
|
||||
chown $REAL_USER:$REAL_USER "$LIVE_DIR" -R
|
||||
chown $REAL_USER:$REAL_USER "$PROFILE_DIR" -R
|
||||
chown $REAL_USER:$REAL_USER "$OUT_DIR" -R
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
wklinux
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
en_US.UTF-8 UTF-8
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
/usr/lib/systemd/system/NetworkManager.service
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
PATH /%INSTALL_DIR%/boot/syslinux/
|
||||
DEFAULT loadconfig
|
||||
|
||||
LABEL loadconfig
|
||||
CONFIG /%INSTALL_DIR%/boot/syslinux/wk.cfg
|
||||
APPEND /%INSTALL_DIR%/
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
DEFAULT loadconfig
|
||||
|
||||
LABEL loadconfig
|
||||
CONFIG wk.cfg
|
||||
APPEND ../../
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
DEFAULT select
|
||||
|
||||
LABEL select
|
||||
COM32 boot/syslinux/whichsys.c32
|
||||
APPEND -pxe- pxe -sys- sys -iso- iso
|
||||
|
||||
LABEL iso
|
||||
CONFIG boot/syslinux/wk_iso.cfg
|
||||
|
||||
LABEL pxe
|
||||
CONFIG boot/syslinux/wk_pxe.cfg
|
||||
|
||||
LABEL sys
|
||||
CONFIG boot/syslinux/wk_sys.cfg
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# http://hdt-project.org/
|
||||
LABEL hdt
|
||||
MENU LABEL Hardware Information (HDT)
|
||||
COM32 boot/syslinux/hdt.c32
|
||||
APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
INCLUDE boot/syslinux/wk_head.cfg
|
||||
|
||||
INCLUDE boot/syslinux/wk_iso_linux.cfg
|
||||
#DISABLED_UPSTREAM_BUG#INCLUDE boot/syslinux/wk_hdt.cfg
|
||||
|
||||
INCLUDE boot/syslinux/wk_tail.cfg
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
LABEL wk_iso_linux
|
||||
TEXT HELP
|
||||
A live Linux environment
|
||||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% loglevel=3
|
||||
|
||||
LABEL wk_iso_linux_i3
|
||||
TEXT HELP
|
||||
A live Linux environment (i3)
|
||||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux (i3)
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% loglevel=3 i3
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL wk_iso_linux_cli
|
||||
TEXT HELP
|
||||
A live Linux environment (CLI)
|
||||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux (CLI)
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% loglevel=4 nomodeset nox
|
||||
SYSAPPEND 3
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
INCLUDE boot/syslinux/wk_head.cfg
|
||||
MENU BACKGROUND pxelinux.png
|
||||
|
||||
INCLUDE boot/syslinux/wk_pxe_linux.cfg
|
||||
#UFD-WINPE#INCLUDE boot/syslinux/wk_pxe_winpe.cfg
|
||||
#DISABLED_UPSTREAM_BUG#INCLUDE boot/syslinux/wk_hdt.cfg
|
||||
|
||||
INCLUDE boot/syslinux/wk_tail.cfg
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
LABEL wk_http_linux
|
||||
TEXT HELP
|
||||
A live Linux environment
|
||||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux (PXE)
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ loglevel=3
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL wk_http_linux_i3
|
||||
TEXT HELP
|
||||
A live Linux environment (i3)
|
||||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux (PXE) (i3)
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ loglevel=3 i3
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL wk_http_linux_cli
|
||||
TEXT HELP
|
||||
A live Linux environment (CLI)
|
||||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux (PXE) (CLI)
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ loglevel=4 nomodeset nox
|
||||
SYSAPPEND 3
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
LABEL wk_http_winpe
|
||||
TEXT HELP
|
||||
A live Windows environment
|
||||
* Create partition backups, Install Windows, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Windows PE (PXE)
|
||||
COM32 boot/syslinux/linux.c32
|
||||
APPEND boot/wimboot gui initrdfile=winpe/x86_64/bootmgr,winpe/x86_64/BCD,winpe/x86_64/boot.sdi,winpe/x86_64/boot.wim
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
INCLUDE boot/syslinux/wk_head.cfg
|
||||
|
||||
INCLUDE boot/syslinux/wk_sys_linux.cfg
|
||||
#UFD-WINPE#INCLUDE boot/syslinux/wk_sys_winpe.cfg
|
||||
#DISABLED_UPSTREAM_BUG#INCLUDE boot/syslinux/wk_hdt.cfg
|
||||
|
||||
INCLUDE boot/syslinux/wk_tail.cfg
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
LABEL wk_winpe
|
||||
TEXT HELP
|
||||
A live Windows environment
|
||||
* Create partition backups, Install Windows, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Windows PE
|
||||
COM32 boot/syslinux/linux.c32
|
||||
APPEND boot/wimboot gui initrdfile=../sources/bootmgr,../sources/BCD,../sources/boot.sdi,../sources/boot.wim
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
MENU SEPARATOR
|
||||
|
||||
LABEL reboot
|
||||
MENU LABEL Reboot
|
||||
COM32 boot/syslinux/reboot.c32
|
||||
|
||||
LABEL poweroff
|
||||
MENU LABEL Power Off
|
||||
COM32 boot/syslinux/poweroff.c32
|
||||
|
|
@ -1,335 +0,0 @@
|
|||
# This file has been auto-generated by i3-config-wizard(1).
|
||||
# It will not be overwritten, so edit it as you like.
|
||||
#
|
||||
# Should you change your keyboard layout some time, delete
|
||||
# this file and re-run i3-config-wizard(1).
|
||||
#
|
||||
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $alt Mod1
|
||||
set $ctrl Control
|
||||
set $mod Mod4
|
||||
|
||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
||||
new_window pixel 1
|
||||
new_float normal
|
||||
|
||||
# Hide borders
|
||||
hide_edge_borders none
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 5%+ #increase sound volume
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 5%- #decrease sound volume
|
||||
bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle # mute sound
|
||||
|
||||
# alt+tab navi
|
||||
bindsym $alt+Tab workspace next
|
||||
bindsym $alt+Shift+Tab workspace prev
|
||||
|
||||
# change borders
|
||||
bindsym $mod+u border none
|
||||
bindsym $mod+y border pixel 1
|
||||
bindsym $mod+n border normal
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
#font Inconsolata:monospace 8
|
||||
font pango:Noto Sans Mono 10, FontAwesome 10
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Before i3 v4.8, we used to recommend this one as the default:
|
||||
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||
# The font above is very space-efficient, that is, it looks good, sharp and
|
||||
# clear in small sizes. However, its unicode glyph coverage is limited, the old
|
||||
# X core fonts rendering does not support right-to-left and this being a bitmap
|
||||
# font, it doesn’t scale on retina/hidpi displays.
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+q kill
|
||||
bindsym $alt+F4 kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
#bindsym $mod+Shift+d exec dmenu_run
|
||||
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||
# installed.
|
||||
#bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop
|
||||
bindsym $mod+r exec "rofi -combi-modi window,drun,run -show combi -modi combi"
|
||||
bindsym $ctrl+$alt+r exec "rofi -combi-modi window,drun,run -show combi -modi combi"
|
||||
|
||||
# misc app shortcuts
|
||||
bindsym $ctrl+$alt+d exec "urxvt -title 'Hardware Diagnostics' -e hw-diags"
|
||||
bindsym $ctrl+$alt+f exec "thunar ~"
|
||||
bindsym $ctrl+$alt+i exec "hardinfo"
|
||||
bindsym $ctrl+$alt+m exec "urxvt -title 'Mount All Volumes' -e mount-all-volumes gui"
|
||||
bindsym $ctrl+$alt+s exec "urxvt -title 'Hardware Diagnostics' -e hw-diags --quick"
|
||||
bindsym $ctrl+$alt+t exec "urxvt"
|
||||
bindsym $ctrl+$alt+v exec "urxvt -title 'Hardware Sensors' -e hw-sensors"
|
||||
bindsym $ctrl+$alt+w exec "firefox"
|
||||
bindsym $mod+d exec "urxvt -title 'Hardware Diagnostics' -e hw-diags"
|
||||
bindsym $mod+f exec "thunar ~"
|
||||
bindsym $mod+i exec "hardinfo"
|
||||
bindsym $mod+m exec "urxvt -title 'Mount All Volumes' -e mount-all-volumes gui"
|
||||
bindsym $mod+s exec "urxvt -title 'Hardware Diagnostics' -e hw-diags --quick"
|
||||
bindsym $mod+t exec "urxvt"
|
||||
bindsym $mod+v exec "urxvt -title 'Hardware Sensors' -e hw-sensors"
|
||||
bindsym $mod+w exec "firefox"
|
||||
|
||||
focus_follows_mouse no
|
||||
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# workspace back and forth (with/without active container)
|
||||
workspace_auto_back_and_forth yes
|
||||
bindsym $mod+b workspace back_and_forth
|
||||
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
|
||||
|
||||
# split orientation
|
||||
bindsym $mod+Shift+h split h
|
||||
bindsym $mod+Shift+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+Shift+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+Shift+s layout stacking
|
||||
bindsym $mod+Shift+w layout tabbed
|
||||
bindsym $mod+Shift+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
#bindsym $mod+a focus parent
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# Workspace names
|
||||
set $ws1 "一"
|
||||
set $ws2 "二"
|
||||
set $ws3 "三"
|
||||
set $ws4 "四"
|
||||
set $ws5 "五"
|
||||
set $ws6 "六"
|
||||
set $ws7 "七"
|
||||
set $ws8 "八"
|
||||
set $ws9 "九"
|
||||
set $ws10 "十"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Ctrl+1 move container to workspace $ws1
|
||||
bindsym $mod+Ctrl+2 move container to workspace $ws2
|
||||
bindsym $mod+Ctrl+3 move container to workspace $ws3
|
||||
bindsym $mod+Ctrl+4 move container to workspace $ws4
|
||||
bindsym $mod+Ctrl+5 move container to workspace $ws5
|
||||
bindsym $mod+Ctrl+6 move container to workspace $ws6
|
||||
bindsym $mod+Ctrl+7 move container to workspace $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace $ws8
|
||||
bindsym $mod+Ctrl+9 move container to workspace $ws9
|
||||
bindsym $mod+Ctrl+0 move container to workspace $ws10
|
||||
|
||||
# move focused container to workspace and follow
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
|
||||
|
||||
# Open specific applications in floating mode
|
||||
for_window [class="Galculator"] floating enable border normal 5
|
||||
for_window [class="Nitrogen"] floating enable sticky enable border normal 5
|
||||
for_window [class="Thunar"] floating enable border normal 5
|
||||
for_window [class="mpv"] floating enable border normal 5
|
||||
for_window [title="Event Tester"] floating enable border normal 5
|
||||
for_window [title="Firefox"] floating enable border normal 5
|
||||
for_window [title="Hardware Diagnostics"] floating enable
|
||||
for_window [title="Hardware Sensors"] floating enable
|
||||
for_window [title="Mount All Volumes"] floating enable border normal 5
|
||||
for_window [title="Network Connections"] floating enable border normal 5
|
||||
for_window [title="Screen Layout Editor"] floating enable border normal 5
|
||||
for_window [title="Slack"] floating enable border normal 5
|
||||
for_window [title="System Information"] floating enable border normal 5
|
||||
for_window [title="Volume Control"] floating enable border normal 5
|
||||
for_window [title="Zenmap"] floating enable border normal 5
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
# reload the configuration file
|
||||
#bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
#bindsym $mod+Shift+r restart
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+Shift+r mode "resize"
|
||||
|
||||
# "System" menu
|
||||
bindsym $ctrl+$alt+x mode "$mode_system"
|
||||
bindsym $mod+x mode "$mode_system"
|
||||
set $mode_system (l)ock, (e)xit, (r)eboot, (s)hutdown, (c)onfig, (i)3
|
||||
mode "$mode_system" {
|
||||
bindsym l exec --no-startup-id i3lock, mode "default"
|
||||
bindsym e exit, mode "default"
|
||||
bindsym r exec reboot, mode "default"
|
||||
bindsym s exec poweroff, mode "default"
|
||||
bindsym c reload, mode "default"
|
||||
bindsym i restart, mode "default"
|
||||
|
||||
# exit system mode: "Enter" or "Escape"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 10
|
||||
gaps outer 4
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
# gaps inner|outer current|all set|plus|minus <px>
|
||||
# gaps inner all set 10
|
||||
# gaps outer all plus 5
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
|
||||
smart_borders on
|
||||
|
||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_inner" {
|
||||
bindsym plus gaps inner current plus 5
|
||||
bindsym minus gaps inner current minus 5
|
||||
bindsym 0 gaps inner current set 0
|
||||
|
||||
bindsym Shift+plus gaps inner all plus 5
|
||||
bindsym Shift+minus gaps inner all minus 5
|
||||
bindsym Shift+0 gaps inner all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_outer" {
|
||||
bindsym plus gaps outer current plus 5
|
||||
bindsym minus gaps outer current minus 5
|
||||
bindsym 0 gaps outer current set 0
|
||||
|
||||
bindsym Shift+plus gaps outer all plus 5
|
||||
bindsym Shift+minus gaps outer all minus 5
|
||||
bindsym Shift+0 gaps outer all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
position bottom
|
||||
separator_symbol " "
|
||||
status_command i3status
|
||||
height 26
|
||||
}
|
||||
|
||||
exec urxvt -title "Initializing..." -e /home/tech/.update_x
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
# i3status configuration file.
|
||||
# see "man i3status" for documentation.
|
||||
|
||||
# It is important that this file is edited as UTF-8.
|
||||
# The following line should contain a sharp s:
|
||||
# ß
|
||||
# If the above line is not correctly displayed, fix your editor first!
|
||||
|
||||
general {
|
||||
colors = true
|
||||
interval = 5
|
||||
}
|
||||
|
||||
#order += "disk /"
|
||||
order += "wireless _first_"
|
||||
order += "ethernet _first_"
|
||||
order += "cpu_usage"
|
||||
order += "battery all"
|
||||
#order += "volume master"
|
||||
order += "tztime local"
|
||||
#order += "tztime utc"
|
||||
|
||||
cpu_usage {
|
||||
format = " %usage"
|
||||
max_threshold = 90
|
||||
#format_above_threshold = " %usage"
|
||||
degraded_threshold = 75
|
||||
#format_above_degraded_threshold = " %usage"
|
||||
}
|
||||
|
||||
wireless _first_ {
|
||||
format_up = " (%quality at %essid) %ip"
|
||||
format_down = " Down"
|
||||
}
|
||||
|
||||
ethernet _first_ {
|
||||
# if you use %speed, i3status requires root privileges
|
||||
format_up = " %ip"
|
||||
format_down = " Down"
|
||||
}
|
||||
|
||||
battery all {
|
||||
integer_battery_capacity = true
|
||||
format = "%status %percentage"
|
||||
format_down = ""
|
||||
status_chr = ""
|
||||
status_bat = ""
|
||||
status_unk = ""
|
||||
status_full = ""
|
||||
path = "/sys/class/power_supply/BAT%d/uevent"
|
||||
low_threshold = 25
|
||||
threshold_type = percentage
|
||||
}
|
||||
|
||||
volume master {
|
||||
format = " %volume"
|
||||
format_muted = " muted"
|
||||
device = "default"
|
||||
}
|
||||
|
||||
tztime local {
|
||||
format = "%F %H:%M"
|
||||
}
|
||||
|
||||
tztime utc {
|
||||
format = "%H:%M"
|
||||
timezone = "UTC"
|
||||
}
|
||||
|
||||
load {
|
||||
format = "%1min"
|
||||
}
|
||||
|
||||
disk "/" {
|
||||
format = "%avail"
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
! rofi theme
|
||||
rofi.color-enabled: true
|
||||
! bg border separator
|
||||
rofi.color-window: argb:d02d3036, #2d3036, #d64937
|
||||
! bg fg bg-alt hl-bg hl-fg
|
||||
rofi.color-normal: argb:d02d3036, #d8d8d8, argb:d02d3036, #2d3036, #d64937
|
||||
rofi.color-active: argb:d0222222, #d64937, argb:d0222222, #d64937, #d8d8d8
|
||||
rofi.color-urgent: argb:d0888888, #d8d8d8, argb:d0888888, #888888, #d64937
|
||||
|
||||
rofi.font: Noto Sans 12
|
||||
|
||||
rofi.separator-style: solid
|
||||
rofi.hide-scrollbar: true
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/env bash
|
||||
#
|
||||
## Start desktop apps based on WM
|
||||
|
||||
# Start common apps
|
||||
picom --backend xrender --xrender-sync --xrender-sync-fence &
|
||||
sleep 1s
|
||||
x0vncserver -display :0 -passwordfile $HOME/.vnc/passwd -AlwaysShared &
|
||||
conky &
|
||||
nm-applet &
|
||||
volumeicon &
|
||||
|
||||
# Start WM specific apps
|
||||
if ! [[ "${I3SOCK:-}" == "" ]]; then
|
||||
# i3
|
||||
i3-msg restart
|
||||
else
|
||||
# openbox
|
||||
openbox --restart
|
||||
tint2 &
|
||||
cbatticon --hide-notification &
|
||||
fi
|
||||
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
aic94xx-firmware
|
||||
bash-pipes
|
||||
hfsprogs
|
||||
i3lock-fancy-git
|
||||
iwgtk
|
||||
ldmtool
|
||||
macbook12-spi-driver-dkms
|
||||
mprime
|
||||
openbox-patched
|
||||
pipes.sh
|
||||
smartmontools-svn
|
||||
testdisk-wip
|
||||
ttf-font-awesome-4
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
aic94xx-firmware
|
||||
alsa-utils
|
||||
amd-ucode
|
||||
antiword
|
||||
bash-pipes
|
||||
base
|
||||
bc
|
||||
bluez
|
||||
bluez-utils
|
||||
|
|
@ -16,10 +17,12 @@ diffutils
|
|||
dmidecode
|
||||
dos2unix
|
||||
e2fsprogs
|
||||
edk2-shell
|
||||
hexedit
|
||||
hfsprogs
|
||||
htop
|
||||
inetutils
|
||||
intel-ucode
|
||||
iwd
|
||||
jfsutils
|
||||
ldmtool
|
||||
|
|
@ -27,6 +30,7 @@ ldns
|
|||
less
|
||||
lha
|
||||
libewf
|
||||
linux
|
||||
linux-firmware
|
||||
lm_sensors
|
||||
lvm2
|
||||
|
|
@ -35,12 +39,15 @@ man-db
|
|||
man-pages
|
||||
mdadm
|
||||
mediainfo
|
||||
memtest86+
|
||||
mkinitcpio
|
||||
mkinitcpio-archiso
|
||||
mprime
|
||||
nano
|
||||
ncdu
|
||||
networkmanager
|
||||
p7zip
|
||||
perl
|
||||
pipes.sh
|
||||
progsreiserfs
|
||||
python
|
||||
python-docopt
|
||||
|
|
@ -50,12 +57,16 @@ python-requests
|
|||
reiserfsprogs
|
||||
rfkill
|
||||
rng-tools
|
||||
rsync
|
||||
rxvt-unicode-terminfo
|
||||
smartmontools-svn
|
||||
speedtest-cli
|
||||
sudo
|
||||
sysfsutils
|
||||
syslinux
|
||||
systemd-sysvcompat
|
||||
terminus-font
|
||||
termite-terminfo
|
||||
testdisk-wip
|
||||
texinfo
|
||||
tmux
|
||||
|
|
@ -5,8 +5,10 @@ curl
|
|||
dos2unix
|
||||
git
|
||||
gtk-doc
|
||||
gtk3
|
||||
hwloc
|
||||
imlib2
|
||||
iwd
|
||||
json-glib
|
||||
lhasa
|
||||
libbsd
|
||||
|
|
@ -28,3 +30,4 @@ rsync
|
|||
startup-notification
|
||||
subversion
|
||||
syslinux
|
||||
tigervnc
|
||||
|
|
|
|||
|
|
@ -13,15 +13,12 @@ gparted
|
|||
gpicview-gtk3
|
||||
gsmartcontrol
|
||||
hardinfo
|
||||
i3-gaps
|
||||
i3lock-fancy-git
|
||||
i3status
|
||||
iwgtk
|
||||
leafpad
|
||||
libinput
|
||||
mesa-demos
|
||||
mkvtoolnix-cli
|
||||
mpv
|
||||
network-manager-applet
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
openbox-patched
|
||||
|
|
@ -31,16 +28,18 @@ qemu-guest-agent
|
|||
rofi
|
||||
rxvt-unicode
|
||||
spice-vdagent
|
||||
termite
|
||||
thunar
|
||||
tigervnc
|
||||
tint2
|
||||
tk
|
||||
ttf-font-awesome-4
|
||||
ttf-hack
|
||||
ttf-inconsolata
|
||||
veracrypt
|
||||
virtualbox-guest-modules-arch
|
||||
virtualbox-guest-utils
|
||||
volumeicon
|
||||
wmctrl
|
||||
xarchiver
|
||||
xf86-input-libinput
|
||||
xf86-video-amdgpu
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
linux-headers
|
||||
macbook12-spi-driver-dkms
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
arch-install-scripts
|
||||
b43-fwcutter
|
||||
darkhttpd
|
||||
gpm
|
||||
grml-zsh-config
|
||||
grub
|
||||
irssi
|
||||
mc
|
||||
openvpn
|
||||
ppp
|
||||
pptpclient
|
||||
refind-efi
|
||||
rp-pppoe
|
||||
smartmontools
|
||||
speedtouch
|
||||
testdisk
|
||||
wpa_actiond
|
||||
vim-minimal
|
||||
vpnc
|
||||
wvdial
|
||||
xl2tpd
|
||||
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
|
@ -22,20 +22,20 @@ menuentry "MemTest86" {
|
|||
|
||||
menuentry "Linux" {
|
||||
icon /EFI/boot/icons/wk_arch.png
|
||||
loader /arch/boot/x86_64/vmlinuz
|
||||
loader /arch/boot/x86_64/vmlinuz-linux
|
||||
initrd /arch/boot/intel_ucode.img
|
||||
initrd /arch/boot/amd_ucode.img
|
||||
initrd /arch/boot/x86_64/archiso.img
|
||||
initrd /arch/boot/x86_64/initramfs-linux.img
|
||||
options "archisobasedir=arch archisolabel=%ARCHISO_LABEL% copytoram loglevel=3"
|
||||
submenuentry "Linux (CLI)" {
|
||||
add_options "nox"
|
||||
}
|
||||
#UFD-MINIMAL#submenuentry "Linux (Minimal)" {
|
||||
#UFD-MINIMAL# loader /arch_minimal/vmlinuz
|
||||
#UFD-MINIMAL# loader /arch_minimal/vmlinuz-linux
|
||||
#UFD-MINIMAL# initrd
|
||||
#UFD-MINIMAL# initrd /arch/boot/intel_ucode.img
|
||||
#UFD-MINIMAL# initrd /arch/boot/amd_ucode.img
|
||||
#UFD-MINIMAL# initrd /arch_minimal/archiso.img
|
||||
#UFD-MINIMAL# initrd /arch_minimal/initramfs-linux.img
|
||||
#UFD-MINIMAL# options
|
||||
#UFD-MINIMAL# options "archisobasedir=arch_minimal archisolabel=%ARCHISO_LABEL% copytoram loglevel=3"
|
||||
#UFD-MINIMAL#}
|
||||
|
|
@ -49,10 +49,10 @@ menuentry "Linux" {
|
|||
|
||||
#UFD-DGPU#menuentry "Mac dGPU Disable Tool" {
|
||||
#UFD-DGPU# icon /EFI/boot/icons/dgpu.png
|
||||
#UFD-DGPU# loader /dgpu/vmlinuz
|
||||
#UFD-DGPU# loader /dgpu/vmlinuz-linux
|
||||
#UFD-DGPU# initrd /arch/boot/intel_ucode.img
|
||||
#UFD-DGPU# initrd /arch/boot/amd_ucode.img
|
||||
#UFD-DGPU# initrd /dgpu/archiso.img
|
||||
#UFD-DGPU# initrd /dgpu/initramfs-linux.img
|
||||
#UFD-DGPU# options "archisobasedir=dgpu archisolabel=%ARCHISO_LABEL% nomodeset"
|
||||
#UFD-DGPU#}
|
||||
|
||||
|
Before Width: | Height: | Size: 538 B After Width: | Height: | Size: 538 B |
|
Before Width: | Height: | Size: 720 B After Width: | Height: | Size: 720 B |
8
setup/linux/profile_base/airootfs/etc/group
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
root:x:0:root
|
||||
adm:x:4:tech
|
||||
wheel:x:10:tech
|
||||
uucp:x:14:tech
|
||||
power:x:98:tech
|
||||
autologin:x:975:tech
|
||||
storage:x:988:tech
|
||||
tech:x:1000:
|
||||
2
setup/linux/profile_base/airootfs/etc/gshadow
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
root:!!::root
|
||||
tech:!!::
|
||||
70
setup/linux/profile_base/airootfs/etc/mkinitcpio.conf
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# 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=()
|
||||
|
||||
# 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=()
|
||||
|
||||
# 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.
|
||||
FILES=()
|
||||
|
||||
# HOOKS
|
||||
# This is the most important setting in this file. The HOOKS control the
|
||||
# modules and scripts added to the image, and what happens at boot time.
|
||||
# Order is important, and it is recommended that you do not change the
|
||||
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
|
||||
# help on a given hook.
|
||||
# 'base' is _required_ unless you know precisely what you are doing.
|
||||
# 'udev' is _required_ in order to automatically load modules
|
||||
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
|
||||
# Examples:
|
||||
## This setup specifies all modules in the MODULES setting above.
|
||||
## No raid, lvm2, or encrypted root is needed.
|
||||
# HOOKS=(base)
|
||||
#
|
||||
## This setup will autodetect all modules for your system and should
|
||||
## work as a sane default
|
||||
# HOOKS=(base udev autodetect block filesystems)
|
||||
#
|
||||
## This setup will generate a 'full' image which supports most systems.
|
||||
## No autodetection is done.
|
||||
# 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 block mdadm encrypt filesystems)
|
||||
#
|
||||
## This setup loads an lvm2 volume group on a usb device.
|
||||
# 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 modconf memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard)
|
||||
|
||||
# COMPRESSION
|
||||
# Use this to compress the initramfs image. By default, gzip compression
|
||||
# is used. Use 'cat' to create an uncompressed image.
|
||||
#COMPRESSION="gzip"
|
||||
#COMPRESSION="bzip2"
|
||||
#COMPRESSION="lzma"
|
||||
COMPRESSION="xz"
|
||||
#COMPRESSION="lzop"
|
||||
#COMPRESSION="lz4"
|
||||
#COMPRESSION="zstd"
|
||||
|
||||
# COMPRESSION_OPTIONS
|
||||
# Additional options for the compressor
|
||||
#COMPRESSION_OPTIONS=()
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# mkinitcpio preset file for the 'linux' package on archiso
|
||||
|
||||
PRESETS=('archiso')
|
||||
|
||||
ALL_kver='/boot/vmlinuz-linux'
|
||||
ALL_config='/etc/mkinitcpio.conf'
|
||||
|
||||
archiso_image="/boot/initramfs-linux.img"
|
||||
2
setup/linux/profile_base/airootfs/etc/passwd
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
root:x:0:0:root:/root:/usr/bin/zsh
|
||||
tech:x:1000:1000::/home/tech:/usr/bin/zsh
|
||||
1
setup/linux/profile_base/airootfs/etc/shadow
Normal file
|
|
@ -0,0 +1 @@
|
|||
root::14871::::::
|
||||
|
|
@ -11,7 +11,7 @@ alias du='du -sch --apparent-size'
|
|||
alias fix-perms='find -type d -exec chmod 755 "{}" \; && find -type f -exec chmod 644 "{}" \;'
|
||||
alias hexedit='hexedit --color'
|
||||
alias hw-info='sudo hw-info | less -S'
|
||||
alias ip='ip -br -color'
|
||||
alias ip='ip -br -c'
|
||||
alias less='less -S'
|
||||
alias ls='ls --color=auto'
|
||||
alias mkdir='mkdir -p'
|
||||
116
setup/linux/profile_base/airootfs/etc/ssh/sshd_config
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
|
||||
|
||||
# This is the sshd server system-wide configuration file. See
|
||||
# sshd_config(5) for more information.
|
||||
|
||||
# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
|
||||
|
||||
# The strategy used for options in the default sshd_config shipped with
|
||||
# OpenSSH is to specify options with their default value where
|
||||
# possible, but leave them commented. Uncommented options override the
|
||||
# default value.
|
||||
|
||||
#Port 22
|
||||
#AddressFamily any
|
||||
#ListenAddress 0.0.0.0
|
||||
#ListenAddress ::
|
||||
|
||||
#HostKey /etc/ssh/ssh_host_rsa_key
|
||||
#HostKey /etc/ssh/ssh_host_ecdsa_key
|
||||
#HostKey /etc/ssh/ssh_host_ed25519_key
|
||||
|
||||
# Ciphers and keying
|
||||
#RekeyLimit default none
|
||||
|
||||
# Logging
|
||||
#SyslogFacility AUTH
|
||||
#LogLevel INFO
|
||||
|
||||
# Authentication:
|
||||
|
||||
#LoginGraceTime 2m
|
||||
PermitRootLogin no
|
||||
#StrictModes yes
|
||||
#MaxAuthTries 6
|
||||
#MaxSessions 10
|
||||
|
||||
PubkeyAuthentication yes
|
||||
|
||||
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
||||
# but this is overridden so installations will only check .ssh/authorized_keys
|
||||
AuthorizedKeysFile .ssh/authorized_keys
|
||||
|
||||
#AuthorizedPrincipalsFile none
|
||||
|
||||
#AuthorizedKeysCommand none
|
||||
#AuthorizedKeysCommandUser nobody
|
||||
|
||||
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
||||
#HostbasedAuthentication no
|
||||
# Change to yes if you don't trust ~/.ssh/known_hosts for
|
||||
# HostbasedAuthentication
|
||||
#IgnoreUserKnownHosts no
|
||||
# Don't read the user's ~/.rhosts and ~/.shosts files
|
||||
#IgnoreRhosts yes
|
||||
|
||||
# To disable tunneled clear text passwords, change to no here!
|
||||
PasswordAuthentication yes
|
||||
PermitEmptyPasswords no
|
||||
|
||||
# Change to no to disable s/key passwords
|
||||
ChallengeResponseAuthentication no
|
||||
|
||||
# Kerberos options
|
||||
#KerberosAuthentication no
|
||||
#KerberosOrLocalPasswd yes
|
||||
#KerberosTicketCleanup yes
|
||||
#KerberosGetAFSToken no
|
||||
|
||||
# GSSAPI options
|
||||
#GSSAPIAuthentication no
|
||||
#GSSAPICleanupCredentials yes
|
||||
|
||||
# Set this to 'yes' to enable PAM authentication, account processing,
|
||||
# and session processing. If this is enabled, PAM authentication will
|
||||
# be allowed through the ChallengeResponseAuthentication and
|
||||
# PasswordAuthentication. Depending on your PAM configuration,
|
||||
# PAM authentication via ChallengeResponseAuthentication may bypass
|
||||
# the setting of "PermitRootLogin without-password".
|
||||
# If you just want the PAM account and session checks to run without
|
||||
# PAM authentication, then enable this but set PasswordAuthentication
|
||||
# and ChallengeResponseAuthentication to 'no'.
|
||||
UsePAM yes
|
||||
|
||||
#AllowAgentForwarding yes
|
||||
#AllowTcpForwarding yes
|
||||
#GatewayPorts no
|
||||
#X11Forwarding no
|
||||
#X11DisplayOffset 10
|
||||
#X11UseLocalhost yes
|
||||
#PermitTTY yes
|
||||
PrintMotd no # pam does that
|
||||
#PrintLastLog yes
|
||||
#TCPKeepAlive yes
|
||||
#PermitUserEnvironment no
|
||||
#Compression delayed
|
||||
#ClientAliveInterval 0
|
||||
#ClientAliveCountMax 3
|
||||
#UseDNS no
|
||||
#PidFile /run/sshd.pid
|
||||
#MaxStartups 10:30:100
|
||||
#PermitTunnel no
|
||||
#ChrootDirectory none
|
||||
#VersionAddendum none
|
||||
|
||||
# no default banner path
|
||||
#Banner none
|
||||
|
||||
# override default of no subsystems
|
||||
Subsystem sftp /usr/lib/ssh/sftp-server
|
||||
|
||||
# Example of overriding settings on a per-user basis
|
||||
#Match User anoncvs
|
||||
# X11Forwarding no
|
||||
# AllowTcpForwarding no
|
||||
# PermitTTY no
|
||||
# ForceCommand cvs server
|
||||
|
|
@ -0,0 +1 @@
|
|||
%wheel ALL=(ALL) NOPASSWD: ALL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[Journal]
|
||||
Storage=volatile
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[Login]
|
||||
HandleSuspendKey=ignore
|
||||
HandleHibernateKey=ignore
|
||||
HandleLidSwitch=ignore
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[Match]
|
||||
Name=en*
|
||||
Name=eth*
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
IPv6PrivacyExtensions=yes
|
||||
|
||||
[DHCP]
|
||||
RouteMetric=512
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[Match]
|
||||
Name=wlp*
|
||||
Name=wlan*
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
IPv6PrivacyExtensions=yes
|
||||
|
||||
[DHCP]
|
||||
RouteMetric=1024
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
[Manager]
|
||||
DefaultTimeoutStartSec=15s
|
||||
DefaultTimeoutStopSec=15s
|
||||
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd.service
|
||||
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-resolved.service
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[Unit]
|
||||
Description=Temporary /etc/pacman.d/gnupg directory
|
||||
|
||||
[Mount]
|
||||
What=tmpfs
|
||||
Where=/etc/pacman.d/gnupg
|
||||
Type=tmpfs
|
||||
Options=mode=0755
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty --autologin tech --noclear %I 38400 linux
|
||||
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/iwd.service
|
||||
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd.service
|
||||
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-resolved.service
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[Unit]
|
||||
Description=Initializes Pacman keyring
|
||||
Wants=haveged.service
|
||||
After=haveged.service
|
||||
Requires=etc-pacman.d-gnupg.mount
|
||||
After=etc-pacman.d-gnupg.mount
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/bin/pacman-key --init
|
||||
ExecStart=/usr/bin/pacman-key --populate archlinux
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd.socket
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[Time]
|
||||
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
|
||||
12
setup/linux/profile_base/airootfs/root/customize_airootfs.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/env bash
|
||||
#
|
||||
# Warning: customize_airootfs.sh is deprecated! Support for it will be removed in a future archiso version.
|
||||
|
||||
set -o errexit
|
||||
set -o errtrace
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
|
||||
locale-gen
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
title Arch Linux (x86_64, UEFI)
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
|
||||
5
setup/linux/profile_base/efiboot/loader/loader.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
timeout 3
|
||||
default archiso-x86_64-linux.conf
|
||||
14
setup/linux/profile_base/pacman.conf
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
[options]
|
||||
HoldPkg = pacman glibc
|
||||
Architecture = auto
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
18
setup/linux/profile_base/profiledef.sh
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2034
|
||||
|
||||
iso_name="KIT_NAME_SHORT-Linux"
|
||||
iso_label="KIT_NAME_SHORT_LINUX"
|
||||
iso_publisher="SUPPORT_URL"
|
||||
iso_application="KIT_NAME_FULL Linux Environment"
|
||||
iso_version="$(date +%Y-%m-%d)"
|
||||
install_dir="arch"
|
||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
|
||||
arch="x86_64"
|
||||
pacman_conf="pacman.conf"
|
||||
file_permissions=(
|
||||
["/etc/shadow"]="0:0:0400"
|
||||
["/etc/gshadow"]="0:0:0400"
|
||||
["/etc/skel/.ssh"]="0:0:0700"
|
||||
["/etc/skel/.ssh/id_rsa"]="0:0:0600"
|
||||
)
|
||||
|
|
@ -4,8 +4,9 @@ A live Linux environment
|
|||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux
|
||||
#INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram loglevel=3
|
||||
|
||||
LABEL wk_linux_cli
|
||||
|
|
@ -14,8 +15,8 @@ A live Linux environment (CLI)
|
|||
* HW diagnostics, file-based backups, data recovery, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Linux (CLI)
|
||||
LINUX boot/x86_64/vmlinuz
|
||||
INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram nox
|
||||
SYSAPPEND 3
|
||||
|
||||
|
|
@ -25,8 +26,8 @@ SYSAPPEND 3
|
|||
#UFD-MINIMAL# * HW diagnostics, file-based backups, data recovery, etc
|
||||
#UFD-MINIMAL#ENDTEXT
|
||||
#UFD-MINIMAL#MENU LABEL Linux (Minimal)
|
||||
#UFD-MINIMAL#LINUX ../arch_minimal/vmlinuz
|
||||
#UFD-MINIMAL#INITRD boot/intel_ucode.img,boot/amd_ucode.img,../arch_minimal/archiso.img
|
||||
#UFD-MINIMAL#LINUX ../arch_minimal/vmlinuz-linux
|
||||
#UFD-MINIMAL#INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,../arch_minimal/initramfs-linux.img
|
||||
#UFD-MINIMAL#APPEND archisobasedir=arch_minimal archisolabel=%ARCHISO_LABEL% copytoram loglevel=3
|
||||
#UFD-MINIMAL#SYSAPPEND 3
|
||||
|
||||
8
setup/linux/profile_base/syslinux/memtest.cfg
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# http://www.memtest.org/
|
||||
LABEL memtest
|
||||
MENU LABEL Memtest86+
|
||||
TEXT HELP
|
||||
Perform RAM diagnostics
|
||||
* This utility is not recommended for testing DDR4 RAM
|
||||
ENDTEXT
|
||||
LINUX /%INSTALL_DIR%/boot/memtest
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
SERIAL 0 38400
|
||||
UI boot/syslinux/vesamenu.c32
|
||||
UI vesamenu.c32
|
||||
MENU TITLE _______
|
||||
MENU BACKGROUND syslinux.png
|
||||
|
||||
|
|
@ -23,8 +23,8 @@ MENU COLOR disabled 37;44 #50ffffff #a0000000 none
|
|||
MENU COLOR unsel 37;44 #50ffffff #a0000000 none
|
||||
MENU COLOR help 37;40 #c0ffffff #a0000000 none
|
||||
MENU COLOR tabmsg 30;44 #a0000000 #a0000000 none
|
||||
menu color cmdmark 1;36;44 #9033ccff #a0000000 none
|
||||
menu color cmdline 37;40 #c0ffffff #a0000000 none
|
||||
MENU COLOR cmdmark 1;36;44 #9033ccff #a0000000 none
|
||||
MENU COLOR cmdline 37;40 #c0ffffff #a0000000 none
|
||||
MENU COLOR timeout_msg 37;40 #80ffffff #a0000000 none
|
||||
MENU COLOR timeout 1;37;40 #c0ffffff #a0000000 none
|
||||
MENU COLOR msg07 37;40 #90ffffff #a0000000 none
|
||||
|
|
@ -33,11 +33,21 @@ MENU COLOR tabmsg 31;40 #30ffffff #a0000000 none
|
|||
# Start entries
|
||||
MENU SEPARATOR
|
||||
|
||||
# http://www.memtest.org/
|
||||
LABEL memtest
|
||||
MENU LABEL Memtest86+
|
||||
TEXT HELP
|
||||
Perform RAM diagnostics
|
||||
* This utility is not recommended for testing DDR4 RAM
|
||||
ENDTEXT
|
||||
LINUX boot/memtest
|
||||
MENU CLEAR
|
||||
|
||||
DEFAULT memtest
|
||||
TIMEOUT 0
|
||||
|
||||
INCLUDE memtest.cfg
|
||||
INCLUDE linux.cfg
|
||||
#UFD-WINPE#INCLUDE winpe.cfg
|
||||
|
||||
MENU SEPARATOR
|
||||
|
||||
LABEL reboot
|
||||
MENU LABEL Reboot
|
||||
COM32 reboot.c32
|
||||
|
||||
LABEL poweroff
|
||||
MENU LABEL Power Off
|
||||
COM32 poweroff.c32
|
||||
8
setup/linux/profile_base/syslinux/winpe.cfg
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
LABEL wk_winpe
|
||||
TEXT HELP
|
||||
A live Windows environment
|
||||
* Create partition backups, Install Windows, etc
|
||||
ENDTEXT
|
||||
MENU LABEL Windows PE
|
||||
COM32 linux.c32
|
||||
APPEND /%INSTALL_DIR%/boot/wimboot gui initrdfile=/sources/bootmgr,/sources/BCD,/sources/boot.sdi,/sources/boot.wim
|
||||
|
|
@ -20,6 +20,7 @@ conky.config = {
|
|||
border_inner_margin = 5,
|
||||
border_outer_margin = 0,
|
||||
border_width = 2,
|
||||
default_graph_height = 24,
|
||||
draw_borders = false,
|
||||
draw_graph_borders = true,
|
||||
show_graph_range = false,
|
||||
|
|
@ -48,7 +49,7 @@ conky.config = {
|
|||
draw_outline = false,
|
||||
draw_shades = false,
|
||||
extra_newline = false,
|
||||
font = 'Inconsolata:bold:size=9',
|
||||
font = 'Droid Sans:bold:size=9',
|
||||
uppercase = false,
|
||||
use_xft = true,
|
||||
|
||||
|
|
@ -79,12 +80,10 @@ Date:${alignr}${time %F}
|
|||
Time:${alignr}${time %H:%M}
|
||||
Uptime:${alignr}${uptime_short}
|
||||
|
||||
CPU: ${if_match ${cpu cpu0}<10} ${cpu cpu0}\
|
||||
${else}${if_match ${cpu cpu0}<100} ${cpu cpu0}\
|
||||
${else}${cpu cpu0}${endif}${endif}% Used${alignr}${freq_g} GHz
|
||||
${cpugraph cpu0 ${gap_x},${width} ${color} ${color}}
|
||||
CPU: ${exec "max-cpu-temp"}${alignr}${freq_g} GHz
|
||||
${cpugraph cpu0}
|
||||
RAM: ${mem} Used${alignr}${memmax}
|
||||
${memgraph ${gap_x},${width} ${color} ${color}}
|
||||
${memgraph}
|
||||
|
||||
#Network
|
||||
${alignc}S H O R T C U T K E Y S
|
||||