Compare commits
4 Commits
6061543415
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 27e227c1e9 | |||
| a95889d8a9 | |||
| 4926806cf2 | |||
| bc12839588 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/profile/work
|
||||
/profile/out
|
||||
@@ -1,2 +1,4 @@
|
||||
# nwarch
|
||||
|
||||
Inspired by [Archcraft](https://github.com/archcraft-os/archcraft).
|
||||
This project is still in development and is not working yet.
|
||||
38
profile/airootfs/etc/sddm.conf
Normal file
38
profile/airootfs/etc/sddm.conf
Normal 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
|
||||
11
profile/airootfs/etc/sddm.conf.d/kde_settings.conf
Normal file
11
profile/airootfs/etc/sddm.conf.d/kde_settings.conf
Normal 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
|
||||
2
profile/airootfs/etc/sudoers.d/01_pw_feedback
Normal file
2
profile/airootfs/etc/sudoers.d/01_pw_feedback
Normal file
@@ -0,0 +1,2 @@
|
||||
Defaults env_reset,pwfeedback,insults
|
||||
|
||||
2
profile/airootfs/etc/sudoers.d/02_g_wheel
Normal file
2
profile/airootfs/etc/sudoers.d/02_g_wheel
Normal file
@@ -0,0 +1,2 @@
|
||||
%wheel ALL=(ALL) NOPASSWD: ALL
|
||||
|
||||
1
profile/airootfs/etc/systemd/system/default.target
Symbolic link
1
profile/airootfs/etc/systemd/system/default.target
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/default.target
|
||||
1
profile/airootfs/etc/systemd/system/display-manager.service
Symbolic link
1
profile/airootfs/etc/systemd/system/display-manager.service
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/sddm.service
|
||||
@@ -1,3 +0,0 @@
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/NetworkManager.service
|
||||
@@ -1 +0,0 @@
|
||||
/usr/lib/systemd/system/iwd.service
|
||||
@@ -1 +0,0 @@
|
||||
/etc/systemd/system/livecd-talk.service
|
||||
@@ -1 +0,0 @@
|
||||
/usr/lib/systemd/system/systemd-networkd.service
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/wpa_supplicant.service
|
||||
@@ -0,0 +1 @@
|
||||
/dev/null
|
||||
@@ -1 +0,0 @@
|
||||
/usr/lib/systemd/system/systemd-networkd-wait-online.service
|
||||
@@ -1 +0,0 @@
|
||||
../livecd-alsa-unmuter.service
|
||||
@@ -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
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
exec lynx 'https://wiki.archlinux.org/title/Installation_guide'
|
||||
@@ -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
|
||||
@@ -1,3 +0,0 @@
|
||||
Defaults node
|
||||
defaults.ctl.card %card%;
|
||||
defaults.pcm.card %card%;
|
||||
4
profile/airootfs/var/lib/sddm/state.conf
Normal file
4
profile/airootfs/var/lib/sddm/state.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
[Last]
|
||||
User=liveuser
|
||||
|
||||
Session=/usr/share/xsessions/xfce.desktop
|
||||
@@ -1,3 +1,3 @@
|
||||
timeout 15
|
||||
timeout 10
|
||||
default 01-archiso-x86_64-linux.conf
|
||||
beep on
|
||||
|
||||
@@ -104,4 +104,4 @@ menuentry 'System restart' --class reboot --class restart {
|
||||
|
||||
|
||||
# GRUB init tune for accessibility
|
||||
play 600 988 1 1319 4
|
||||
# play 600 988 1 1319 4
|
||||
|
||||
@@ -206,8 +206,11 @@ sddm
|
||||
|
||||
## Desktop ------------
|
||||
|
||||
xfce4
|
||||
|
||||
## Terminal
|
||||
kitty
|
||||
#kitty
|
||||
alacritty
|
||||
|
||||
## Apps
|
||||
firefox
|
||||
@@ -238,7 +241,7 @@ gvfs-smb
|
||||
gvfs-google
|
||||
highlight
|
||||
xdg-user-dirs
|
||||
xdg-user-dirs-gtk
|
||||
#xdg-user-dirs-gtk
|
||||
|
||||
## Archives
|
||||
bzip2
|
||||
@@ -274,8 +277,8 @@ htop
|
||||
powertop
|
||||
|
||||
## AUR packages
|
||||
mkinitcpio-firmware
|
||||
xfce-polkit
|
||||
yay
|
||||
#mkinitcpio-firmware
|
||||
#xfce-polkit
|
||||
#yay
|
||||
|
||||
## EOF ---------------------------
|
||||
Reference in New Issue
Block a user