Compare commits

8 Commits
master ... dev

35 changed files with 2406 additions and 304 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/profile/work
/profile/out

View File

@@ -1,2 +1,4 @@
# nwarch # nwarch
Inspired by [Archcraft](https://github.com/archcraft-os/archcraft).
This project is still in development and is not working yet.

View File

@@ -0,0 +1,3 @@
EDITOR=vim
BROWSER=firefox
TERMINAL=kitty

View File

@@ -0,0 +1,19 @@
root:x:0:root
sys:x:3:bin,liveuser
network:x:90:liveuser
power:x:98:liveuser
adm:x:999:liveuser
lp:x:992:liveuser
wheel:x:998:liveuser
uucp:x:987:liveuser
optical:x:990:liveuser
scanner:x:991:liveuser
rfkill:x:983:liveuser
video:x:986:liveuser
storage:x:988:liveuser
audio:x:995:liveuser
users:x:985:liveuser
nopasswdlogin:x:966:liveuser
autologin:x:967:liveuser
liveuser:x:1000:

View File

@@ -0,0 +1,18 @@
root:::root
sys:!!::liveuser
network:!!::liveuser
power:!!::liveuser
adm:!!::liveuser
lp:!!::liveuser
wheel:!!::liveuser
uucp:!!::liveuser
optical:!!::liveuser
scanner:!!::liveuser
rfkill:!!::liveuser
video:!!::liveuser
storage:!!::liveuser
audio:!!::liveuser
users:!!::liveuser
nopasswdlogin:!::liveuser
autologin:!::liveuser
liveuser:!::

View File

@@ -1,3 +1,3 @@
HOOKS=(base udev microcode modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) HOOKS=(base udev microcode plymouth modconf kms memdisk archiso archiso_loop_mnt block filesystems keyboard)
COMPRESSION="xz" COMPRESSION="xz"
COMPRESSION_OPTIONS=(-9e) COMPRESSION_OPTIONS=(-9e)

View File

@@ -1 +1,2 @@
root:x:0:0:root:/root:/usr/bin/zsh root:x:0:0:root:/root:/usr/bin/zsh
liveuser:x:1000:1000::/home/liveuser:/usr/bin/zsh

View File

@@ -0,0 +1,38 @@
[General]
InputMethod=
Namespaces=
Numlock=off
[Theme]
DisableAvatarsThreshold=7
EnableAvatars=true
FacesDir=/usr/share/sddm/faces
ThemeDir=/usr/share/sddm/themes
[Users]
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
HideShells=
HideUsers=
RememberLastSession=true
RememberLastUser=true
ReuseSession=true
[Wayland]
EnableHiDPI=true
SessionCommand=/usr/share/sddm/scripts/wayland-session
SessionDir=/usr/share/wayland-sessions
SessionLogFile=.local/share/sddm/wayland-session.log
[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=true
MinimumVT=1
ServerArguments=-nolisten tcp
ServerPath=/usr/bin/X
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
UserAuthFile=.Xauthority
XauthPath=/usr/bin/xauth
XephyrPath=/usr/bin/Xephyr

View File

@@ -0,0 +1,11 @@
[Autologin]
Relogin=false
Session=xfce
[General]
HaltCommand=/usr/bin/systemctl poweroff
RebootCommand=/usr/bin/systemctl reboot
[Users]
MaximumUid=60513
MinimumUid=1000

View File

@@ -1 +1,2 @@
root::14871:::::: root::14871::::::
liveuser:$6$QQZhg0k5X4cK23Qn$Si0idBhE8rT8tkBHaRNhSSuGsAC3ZPOr5Kp/4LEdb9zP.4rKJOUhTxQcu.ggkPlkcirg/LRCx7UUUj4DFerYT0:14871::::::

View File

@@ -0,0 +1,2 @@
Defaults env_reset,pwfeedback,insults

View File

@@ -0,0 +1,2 @@
%wheel ALL=(ALL) NOPASSWD: ALL

View File

@@ -0,0 +1 @@
/usr/lib/systemd/system/default.target

View File

@@ -0,0 +1 @@
/usr/lib/systemd/system/sddm.service

View File

@@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM

View File

@@ -1,13 +0,0 @@
[Unit]
Description=Unmute All Sound Card Controls For Use With The Live Arch Environment
# This needs to run after the audio device becomes available.
Wants=systemd-udev-settle.service
After=systemd-udev-settle.service sound.target
ConditionKernelCommandLine=accessibility=on
[Service]
Type=oneshot
ExecStart=/usr/local/bin/livecd-sound -u
[Install]
WantedBy=sound.target

View File

@@ -1,20 +0,0 @@
[Unit]
Description=Screen reader service
After=livecd-alsa-unmuter.service
Before=getty@tty1.service
ConditionKernelCommandLine=accessibility=on
[Service]
Type=oneshot
TTYPath=/dev/tty13
ExecStartPre=/usr/bin/chvt 13
ExecStart=/usr/local/bin/livecd-sound -p
ExecStartPost=/usr/bin/chvt 1
ExecStartPost=systemctl start espeakup.service
StandardInput=tty
TTYVHangup=yes
TTYVTDisallocate=yes
RemainAfterExit=true
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1 @@
/usr/lib/systemd/system/NetworkManager.service

View File

@@ -1 +0,0 @@
/usr/lib/systemd/system/iwd.service

View File

@@ -1 +0,0 @@
/etc/systemd/system/livecd-talk.service

View File

@@ -1 +0,0 @@
/usr/lib/systemd/system/systemd-networkd.service

View File

@@ -0,0 +1 @@
/usr/lib/systemd/system/wpa_supplicant.service

View File

@@ -1 +0,0 @@
/usr/lib/systemd/system/systemd-networkd-wait-online.service

View File

@@ -1 +0,0 @@
../livecd-alsa-unmuter.service

View File

@@ -1,6 +0,0 @@
# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
# network-online.target gets needlessly delayed.
# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any

View File

@@ -1,5 +0,0 @@
#!/bin/sh
#
# SPDX-License-Identifier: GPL-3.0-or-later
exec lynx 'https://wiki.archlinux.org/title/Installation_guide'

View File

@@ -1,239 +0,0 @@
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
usage() {
cat <<-_EOF_
live cd sound helper script.
Usage: livecdsound [OPTION]
OPTIONS
-u, --unmute unmute all sound cards
-p, --pick select a card for speetch output
-h, --help Show this usage message
_EOF_
}
bugout() {
printf "/usr/local/bin/livecdsound: programming error"
stat_fail
}
echo_card_indices() {
if [[ -f /proc/asound/cards ]]; then
sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
fi
}
# The following functions try to set many controls.
# No card has all the controls and so some of the attempts are bound to fail.
# Because of this, the functions can't return useful status values.
# $1 <card id>
# $2 <control>
# $3 <level>
unmute_and_set_level() {
[[ -n "$3" && -n "$2" && -n "$1" ]] || bugout
systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute
return 0
}
# $1 <card id>
# $2 <control>
mute_and_zero_level() {
[[ -n "$1" && -n "$2" ]] || bugout
systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute
return 0
}
# $1 <card ID>
# $2 <control>
# $3 "on" | "off"
switch_control() {
[[ -n "$3" && -n "$1" ]] || bugout
systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3"
return 0
}
# $1 <card ID>
sanify_levels_on_card() {
unmute_and_set_level "$1" "Front" "80%"
unmute_and_set_level "$1" "Master" "80%"
unmute_and_set_level "$1" "Master Mono" "80%"
unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B
unmute_and_set_level "$1" "Playback" "80%"
unmute_and_set_level "$1" "Headphone" "100%"
unmute_and_set_level "$1" "PCM" "80%"
unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969
unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx
unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24
unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24
unmute_and_set_level "$1" "Synth" "80%"
unmute_and_set_level "$1" "CD" "80%"
unmute_and_set_level "$1" "PC Speaker" "100%"
mute_and_zero_level "$1" "Mic"
mute_and_zero_level "$1" "IEC958" # Ubuntu #19648
# Intel P4P800-MX
switch_control "$1" "Master Playback Switch" on
switch_control "$1" "Master Surround" on
# Trident/YMFPCI/emu10k1:
unmute_and_set_level "$1" "Wave" "80%"
unmute_and_set_level "$1" "Music" "80%"
unmute_and_set_level "$1" "AC97" "80%"
# DRC:
unmute_and_set_level "$1" "Dynamic Range Compression" "80%"
# Required for HDA Intel (hda-intel):
unmute_and_set_level "$1" "Front" "80%"
# Required for SB Live 7.1/24-bit (ca0106):
unmute_and_set_level "$1" "Analog Front" "80%"
# Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard
switch_control "$1" "IEC958 Capture Monitor" off
# Required for hardware allowing toggles for AC97 through IEC958,
# valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0"
# Required for newer Via hardware
unmute_and_set_level "$1" "VIA DXS,0" "80%"
unmute_and_set_level "$1" "VIA DXS,1" "80%"
unmute_and_set_level "$1" "VIA DXS,2" "80%"
unmute_and_set_level "$1" "VIA DXS,3" "80%"
# Required on some notebooks with ICH4:
switch_control "$1" "Headphone Jack Sense" off
switch_control "$1" "Line Jack Sense" off
# Some machines need one or more of these to be on;
# others need one or more of these to be off:
switch_control "$1" "Audigy Analog/Digital Output Jack" on
switch_control "$1" "SB Live Analog/Digital Output Jack" on
# D1984 -- Thinkpad T61/X61
switch_control "$1" "Speaker" on
switch_control "$1" "Headphone" on
# HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
unmute_and_set_level "$1" "Digital" "80%"
return 0
}
# $1 <card ID> | "all"
sanify_levels() {
local ttsdml_returnstatus=0
local card
case "$1" in
all)
for card in $(echo_card_indices); do
sanify_levels_on_card "$card" || ttsdml_returnstatus=1
done
;;
*)
sanify_levels_on_card "$1" || ttsdml_returnstatus=1
;;
esac
return "$ttsdml_returnstatus"
}
# List all cards that *should* be usable for PCM audio. In my experience,
# the console speaker (handled by the pcsp driver) isn't a suitable playback
# device, so we'll exclude it.
list_non_pcsp_cards() {
for card in $(echo_card_indices); do
local cardfile="/proc/asound/card${card}/id"
if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then
echo "$card"
fi
done
}
# Properly initialize the sound card so that we have audio at boot.
unmute_all_cards() {
sanify_levels all
}
is_numeric() {
local str="$1"
[[ "$str" =~ ^[0-9]+$ ]]
}
set_default_card() {
local card="$1"
sed -e "s/%card%/$card/g" </usr/local/share/livecd-sound/asound.conf.in \
>/etc/asound.conf
}
play_on_card() {
local card="$1" file="$2"
aplay -q "-Dplughw:$card,0" "$file"
}
# If there are multiple usable sound cards, prompt the user to choose one,
# using auditory feedback.
pick_a_card() {
set -f
usable_cards="$(list_non_pcsp_cards)"
num_usable_cards="$(wc -w <<<"$usable_cards")"
if (( num_usable_cards == 1 )); then
systemd-cat -t "livecdsound" printf "Only one sound card is detected\n"
exit 0
fi
systemd-cat -t "livecdsound" printf "multiple sound cards detected\n"
for card in "${usable_cards[@]}"; do
if ! is_numeric "$card"; then
continue
fi
play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav &
done
wait
sleep 1
for card in "${usable_cards[@]}"; do
if ! is_numeric "$card"; then
continue
fi
play_on_card "$card" /usr/share/livecd-sounds/beep.wav
if read -r -t 10; then
systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card"
set_default_card "$card"
break
fi
done
}
if (( $# == 0 )); then
echo "error: No argument passed."
exit 1
fi
while [[ "${1}" != "" ]]; do
case ${1} in
-h|--help)
usage
exit
;;
-u|--unmute)
systemd-cat -t "livecdsound" printf "Unmuting all cards"
unmute_all_cards
;;
-p|--pick)
pick_a_card
;;
*)
echo "error: Unsupported argument"
usage
exit 1
;;
esac
shift
done

View File

@@ -1,3 +0,0 @@
Defaults node
defaults.ctl.card %card%;
defaults.pcm.card %card%;

View File

@@ -0,0 +1,4 @@
[Last]
User=liveuser
Session=/usr/share/xsessions/xfce.desktop

View File

@@ -1,3 +1,3 @@
timeout 15 timeout 10
default 01-archiso-x86_64-linux.conf default 01-archiso-x86_64-linux.conf
beep on beep on

View File

@@ -104,4 +104,4 @@ menuentry 'System restart' --class reboot --class restart {
# GRUB init tune for accessibility # GRUB init tune for accessibility
play 600 988 1 1319 4 # play 600 988 1 1319 4

2132
profile/mknwarchiso Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
alsa-utils #alsa-utils
amd-ucode amd-ucode
arch-install-scripts arch-install-scripts
archinstall archinstall
@@ -25,7 +25,7 @@ dosfstools
e2fsprogs e2fsprogs
edk2-shell edk2-shell
efibootmgr efibootmgr
espeakup #espeakup
ethtool ethtool
exfatprogs exfatprogs
f2fs-tools f2fs-tools
@@ -35,7 +35,7 @@ fsarchiver
gpart gpart
gpm gpm
gptfdisk gptfdisk
grml-zsh-config #grml-zsh-config
grub grub
hdparm hdparm
hyperv hyperv
@@ -54,7 +54,7 @@ linux
linux-atm linux-atm
linux-firmware linux-firmware
linux-firmware-marvell linux-firmware-marvell
livecd-sounds #livecd-sounds
lsscsi lsscsi
lvm2 lvm2
lynx lynx
@@ -90,7 +90,7 @@ pcsclite
ppp ppp
pptpclient pptpclient
pv pv
qemu-guest-agent #qemu-guest-agent
refind refind
reflector reflector
rp-pppoe rp-pppoe
@@ -117,7 +117,7 @@ usb_modeswitch
usbmuxd usbmuxd
usbutils usbutils
vim vim
virtualbox-guest-utils-nox #virtualbox-guest-utils-nox
vpnc vpnc
wireless-regdb wireless-regdb
wireless_tools wireless_tools
@@ -126,3 +126,159 @@ wvdial
xfsprogs xfsprogs
xl2tpd xl2tpd
zsh zsh
## Bootloader -----------------
os-prober
lsb-release
## Xorg ----------
xorg
## Touchpad and Mouse --------------
xorg-xinput
xf86-input-libinput
## GPU Drivers
xf86-video-fbdev
xf86-video-vesa
xf86-video-intel
xf86-video-amdgpu
xf86-video-ati
mesa
mesa-utils
## Hypervisors ------------------------------
virtualbox-guest-utils
qemu-guest-agent
open-vm-tools
xf86-input-vmmouse
xf86-video-vmware
## System ---------------------------
## Networking
networkmanager
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-strongswan
networkmanager-vpnc
network-manager-sstp
nm-connection-editor
network-manager-applet
ufw
gufw
## Bluetooth
bluez
bluez-utils
blueman
## Audio
pipewire
wireplumber
pipewire-alsa
pipewire-pulse
pipewire-jack
pulsemixer
pavucontrol
gst-plugin-pipewire
## Video
libde265
libdv
libmpeg2
schroedinger
libtheora
libvpx
x264
x265
xvidcore
gstreamer
ffmpeg
gst-libav
gst-plugins-good
gst-plugins-ugly
gst-plugins-bad
## Display Manager ------------
sddm
## Desktop ------------
xfce4
## Terminal
#kitty
alacritty
## Apps
firefox
thunar
## Utilities
dialog
acpi
dbus-broker-units
galculator
gparted
gnome-keyring
inetutils
polkit
xclip
## Functionality ----------------
## Fonts
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
## Files
gvfs
gvfs-mtp
gvfs-smb
gvfs-google
highlight
xdg-user-dirs
#xdg-user-dirs-gtk
## Archives
bzip2
gzip
lrzip
lz4
lzip
lzop
xz
zstd
p7zip
zip
unzip
unrar
unarchiver
xarchiver
## Misc -------------
## Package tools
bison
fakeroot
flex
make
automake
autoconf
pkgconf
patch
gcc
## CLI tools
htop
powertop
## AUR packages
#mkinitcpio-firmware
#xfce-polkit
#yay
## EOF ---------------------------

View File

@@ -36,7 +36,7 @@ Architecture = auto
#CheckSpace #CheckSpace
#VerbosePkgLists #VerbosePkgLists
ParallelDownloads = 5 ParallelDownloads = 5
DownloadUser = alpm DownloadUser = sergey
#DisableSandbox #DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring # By default, pacman accepts packages signed by keys that its local keyring