furious five
This commit is contained in:
parent
3c22312e47
commit
34e7230486
139 changed files with 5106 additions and 12 deletions
5
lily/archiso/airootfs/usr/local/bin/Installation_guide
Executable file
5
lily/archiso/airootfs/usr/local/bin/Installation_guide
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
exec lynx 'https://wiki.archlinux.org/title/Installation_guide'
|
33
lily/archiso/airootfs/usr/local/bin/alci-displaymanager-check
Executable file
33
lily/archiso/airootfs/usr/local/bin/alci-displaymanager-check
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
#set -e
|
||||
###############################################################################
|
||||
# Author : Erik Dubois
|
||||
# Website : https://www.erikdubois.be
|
||||
# Website : https://www.arcolinux.info
|
||||
# Website : https://www.arcolinux.com
|
||||
# Website : https://www.arcolinuxd.com
|
||||
# Website : https://www.arcolinuxb.com
|
||||
# Website : https://www.arcolinuxiso.com
|
||||
# Website : https://www.arcolinuxforum.com
|
||||
###############################################################################
|
||||
#
|
||||
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
package=sddm
|
||||
if pacman -Qs $package > /dev/null ; then
|
||||
ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service
|
||||
fi
|
||||
package=gdm
|
||||
if pacman -Qs $package > /dev/null ; then
|
||||
ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service
|
||||
fi
|
||||
package=lxdm
|
||||
if pacman -Qs $package > /dev/null ; then
|
||||
ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service
|
||||
fi
|
||||
package=lightdm
|
||||
if pacman -Qs $package > /dev/null ; then
|
||||
ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service
|
||||
fi
|
18
lily/archiso/airootfs/usr/local/bin/alci-make-a-pure-arch
Executable file
18
lily/archiso/airootfs/usr/local/bin/alci-make-a-pure-arch
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
#set -e
|
||||
###############################################################################
|
||||
# Author : Erik Dubois
|
||||
# Website : https://www.erikdubois.be
|
||||
# Website : https://www.arcolinux.info
|
||||
# Website : https://www.arcolinux.com
|
||||
# Website : https://www.arcolinuxd.com
|
||||
# Website : https://www.arcolinuxb.com
|
||||
# Website : https://www.arcolinuxiso.com
|
||||
# Website : https://www.arcolinuxforum.com
|
||||
###############################################################################
|
||||
#
|
||||
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
#if necessary we can use this script too
|
29
lily/archiso/airootfs/usr/local/bin/choose-mirror
Executable file
29
lily/archiso/airootfs/usr/local/bin/choose-mirror
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
get_cmdline() {
|
||||
local param
|
||||
for param in $(</proc/cmdline); do
|
||||
case "${param}" in
|
||||
"${1}="*)
|
||||
echo "${param##*=}"
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
mirror="$(get_cmdline mirror)"
|
||||
[[ "$mirror" == 'auto' ]] && mirror="$(get_cmdline archiso_http_srv)"
|
||||
[[ -n "$mirror" ]] || exit 0
|
||||
|
||||
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
|
||||
cat >/etc/pacman.d/mirrorlist <<EOF
|
||||
#
|
||||
# Arch Linux repository mirrorlist
|
||||
# Generated by archiso
|
||||
#
|
||||
|
||||
Server = ${mirror%%/}/\$repo/os/\$arch
|
||||
EOF
|
1
lily/archiso/airootfs/usr/local/bin/fix-key
Symbolic link
1
lily/archiso/airootfs/usr/local/bin/fix-key
Symbolic link
|
@ -0,0 +1 @@
|
|||
fix-keys
|
116
lily/archiso/airootfs/usr/local/bin/fix-keys
Executable file
116
lily/archiso/airootfs/usr/local/bin/fix-keys
Executable file
|
@ -0,0 +1,116 @@
|
|||
#!/bin/bash
|
||||
#set -e
|
||||
##################################################################################################################
|
||||
# Author : Erik Dubois
|
||||
# Website : https://www.erikdubois.be
|
||||
# Website : https://www.alci.online
|
||||
# Website : https://www.arcolinux.info
|
||||
# Website : https://www.arcolinux.com
|
||||
# Website : https://www.arcolinuxd.com
|
||||
# Website : https://www.arcolinuxb.com
|
||||
# Website : https://www.arcolinuxiso.com
|
||||
# Website : https://www.arcolinuxforum.com
|
||||
##################################################################################################################
|
||||
#
|
||||
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
|
||||
#
|
||||
##################################################################################################################
|
||||
#tput setaf 0 = black
|
||||
#tput setaf 1 = red
|
||||
#tput setaf 2 = green
|
||||
#tput setaf 3 = yellow
|
||||
#tput setaf 4 = dark blue
|
||||
#tput setaf 5 = purple
|
||||
#tput setaf 6 = cyan
|
||||
#tput setaf 7 = gray
|
||||
#tput setaf 8 = light blue
|
||||
##################################################################################################################
|
||||
|
||||
Online=0
|
||||
|
||||
function check_connectivity() {
|
||||
|
||||
local test_ip
|
||||
local test_count
|
||||
|
||||
test_ip="8.8.8.8"
|
||||
test_count=1
|
||||
|
||||
if ping -c ${test_count} ${test_ip} > /dev/null; then
|
||||
tput setaf 2
|
||||
echo
|
||||
echo "You are online"
|
||||
echo
|
||||
tput sgr0
|
||||
Online=1
|
||||
else
|
||||
tput setaf 1
|
||||
echo
|
||||
echo "You are not connected to the internet"
|
||||
echo "We can not download the latest archlinux-keyring package"
|
||||
echo
|
||||
echo "Make sure you are online to retrieve packages"
|
||||
echo
|
||||
tput sgr0
|
||||
Online=0
|
||||
fi
|
||||
}
|
||||
|
||||
check_connectivity
|
||||
|
||||
if [ $Online -eq 1 ] ; then
|
||||
tput setaf 2
|
||||
echo
|
||||
echo "Installing the latest archlinux-keyring package from the internet"
|
||||
echo
|
||||
tput sgr0
|
||||
sudo pacman -Sy archlinux-keyring --noconfirm
|
||||
echo
|
||||
fi
|
||||
|
||||
echo "###############################################################################"
|
||||
echo "Removing the pacman databases at /var/lib/pacman/sync/*"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
sudo rm /var/lib/pacman/sync/*
|
||||
echo
|
||||
|
||||
echo "###############################################################################"
|
||||
echo "Removing /etc/pacman.d/gnupg folder"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
sudo rm -rf /etc/pacman.d/gnupg/*
|
||||
echo
|
||||
|
||||
echo "###############################################################################"
|
||||
echo "Initialize pacman keys with pacman-key --init"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
sudo pacman-key --init
|
||||
echo
|
||||
|
||||
echo "###############################################################################"
|
||||
echo "Populating keyring with pacman-key --populate"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
sudo pacman-key --populate
|
||||
echo
|
||||
|
||||
echo "###############################################################################"
|
||||
echo "Adding Ubuntu keyserver to /etc/pacman.d/gnupg/gpg.conf"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
echo "
|
||||
keyserver hkp://keyserver.ubuntu.com:80" | sudo tee --append /etc/pacman.d/gnupg/gpg.conf
|
||||
|
||||
echo
|
||||
echo "###############################################################################"
|
||||
echo "Getting new databases with pacman -Sy"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
sudo pacman -Sy
|
||||
echo
|
||||
|
||||
echo "###############################################################################"
|
||||
echo "### DONE - YOU CAN CLOSE THIS WINDOW ####"
|
||||
echo "###############################################################################"
|
1
lily/archiso/airootfs/usr/local/bin/fixkey
Symbolic link
1
lily/archiso/airootfs/usr/local/bin/fixkey
Symbolic link
|
@ -0,0 +1 @@
|
|||
fix-keys
|
1
lily/archiso/airootfs/usr/local/bin/fixkeys
Symbolic link
1
lily/archiso/airootfs/usr/local/bin/fixkeys
Symbolic link
|
@ -0,0 +1 @@
|
|||
fix-keys
|
158
lily/archiso/airootfs/usr/local/bin/get-chadwm
Executable file
158
lily/archiso/airootfs/usr/local/bin/get-chadwm
Executable file
|
@ -0,0 +1,158 @@
|
|||
#!/bin/bash
|
||||
#set -e
|
||||
##################################################################################################################
|
||||
# Author : Erik Dubois
|
||||
# Website : https://www.erikdubois.be
|
||||
# Website : https://www.alci.online
|
||||
# Website : https://www.ariser.eu
|
||||
# Website : https://www.arcolinux.info
|
||||
# Website : https://www.arcolinux.com
|
||||
# Website : https://www.arcolinuxd.com
|
||||
# Website : https://www.arcolinuxb.com
|
||||
# Website : https://www.arcolinuxiso.com
|
||||
# Website : https://www.arcolinuxforum.com
|
||||
##################################################################################################################
|
||||
#
|
||||
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
|
||||
#
|
||||
##################################################################################################################
|
||||
#tput setaf 0 = black
|
||||
#tput setaf 1 = red
|
||||
#tput setaf 2 = green
|
||||
#tput setaf 3 = yellow
|
||||
#tput setaf 4 = dark blue
|
||||
#tput setaf 5 = purple
|
||||
#tput setaf 6 = cyan
|
||||
#tput setaf 7 = gray
|
||||
#tput setaf 8 = light blue
|
||||
##################################################################################################################
|
||||
|
||||
installed_dir=$(dirname $(readlink -f $(basename `pwd`)))
|
||||
|
||||
##################################################################################################################
|
||||
|
||||
sudo pacman -Syyu
|
||||
sudo pacman -S wget --noconfirm --needed
|
||||
sudo pacman -S jq --noconfirm --needed
|
||||
arco_repo_db=$(wget -qO- https://api.github.com/repos/arcolinux/arcolinux_repo/contents/x86_64)
|
||||
echo "Getting the ArcoLinux keys from the ArcoLinux repo"
|
||||
|
||||
sudo wget "$(echo "$arco_repo_db" | jq -r '[.[] | select(.name | contains("arcolinux-keyring")) | .name] | .[0] | sub("arcolinux-keyring-"; "https://github.com/arcolinux/arcolinux_repo/raw/main/x86_64/arcolinux-keyring-")')" -O /tmp/arcolinux-keyring-git-any.pkg.tar.zst
|
||||
sudo pacman -U --noconfirm --needed /tmp/arcolinux-keyring-git-any.pkg.tar.zst
|
||||
|
||||
######################################################################################################################
|
||||
|
||||
echo "Getting the latest arcolinux mirrors file"
|
||||
|
||||
sudo wget "$(echo "$arco_repo_db" | jq -r '[.[] | select(.name | contains("arcolinux-mirrorlist-git-")) | .name] | .[0] | sub("arcolinux-mirrorlist-git-"; "https://github.com/arcolinux/arcolinux_repo/raw/main/x86_64/arcolinux-mirrorlist-git-")')" -O /tmp/arcolinux-mirrorlist-git-any.pkg.tar.zst
|
||||
sudo pacman -U --noconfirm --needed /tmp/arcolinux-mirrorlist-git-any.pkg.tar.zst
|
||||
|
||||
if grep -q arcolinux_repo /etc/pacman.conf; then
|
||||
|
||||
echo
|
||||
tput setaf 2
|
||||
echo "################################################################"
|
||||
echo "################ ArcoLinux repos are already in /etc/pacman.conf "
|
||||
echo "################################################################"
|
||||
tput sgr0
|
||||
echo
|
||||
|
||||
else
|
||||
|
||||
echo '
|
||||
|
||||
#[arcolinux_repo_testing]
|
||||
#SigLevel = PackageRequired DatabaseNever
|
||||
#Include = /etc/pacman.d/arcolinux-mirrorlist
|
||||
|
||||
[arcolinux_repo]
|
||||
SigLevel = PackageRequired DatabaseNever
|
||||
Include = /etc/pacman.d/arcolinux-mirrorlist
|
||||
|
||||
[arcolinux_repo_3party]
|
||||
SigLevel = PackageRequired DatabaseNever
|
||||
Include = /etc/pacman.d/arcolinux-mirrorlist
|
||||
|
||||
[arcolinux_repo_xlarge]
|
||||
SigLevel = PackageRequired DatabaseNever
|
||||
Include = /etc/pacman.d/arcolinux-mirrorlist' | sudo tee --append /etc/pacman.conf
|
||||
|
||||
fi
|
||||
|
||||
|
||||
sudo pacman -Sy
|
||||
|
||||
|
||||
|
||||
func_install() {
|
||||
if pacman -Qi $1 &> /dev/null; then
|
||||
tput setaf 2
|
||||
echo "###############################################################################"
|
||||
echo "################## The package "$1" is already installed"
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
tput sgr0
|
||||
else
|
||||
tput setaf 3
|
||||
echo "###############################################################################"
|
||||
echo "################## Installing package " $1
|
||||
echo "###############################################################################"
|
||||
echo
|
||||
tput sgr0
|
||||
sudo pacman -S --noconfirm --needed $1
|
||||
fi
|
||||
}
|
||||
|
||||
func_install_chadwm() {
|
||||
|
||||
echo
|
||||
tput setaf 2
|
||||
echo "################################################################"
|
||||
echo "################### Install chadwm"
|
||||
echo "################################################################"
|
||||
tput sgr0
|
||||
echo
|
||||
|
||||
list=(
|
||||
alacritty
|
||||
archlinux-logout-git
|
||||
arcolinux-chadwm-git
|
||||
arcolinux-powermenu-git
|
||||
dash
|
||||
dmenu
|
||||
eww
|
||||
feh
|
||||
lxappearance
|
||||
picom
|
||||
polkit-gnome
|
||||
rofi-lbonn-wayland
|
||||
scrot
|
||||
sxhkd
|
||||
thunar
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
ttf-hack
|
||||
ttf-jetbrains-mono-nerd
|
||||
ttf-meslo-nerd-font-powerlevel10k
|
||||
volumeicon
|
||||
xfce4-notifyd
|
||||
xfce4-power-manager
|
||||
xfce4-screenshooter
|
||||
xfce4-settings
|
||||
xfce4-taskmanager
|
||||
xfce4-terminal
|
||||
)
|
||||
|
||||
count=0
|
||||
|
||||
for name in "${list[@]}" ; do
|
||||
count=$[count+1]
|
||||
tput setaf 3;echo "Installing package nr. "$count " " $name;tput sgr0;
|
||||
func_install $name
|
||||
done
|
||||
}
|
||||
|
||||
func_install_chadwm
|
||||
|
||||
cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S)
|
||||
cp -arf /etc/skel/. ~
|
51
lily/archiso/airootfs/usr/local/bin/get-nemesis-on-alci
Executable file
51
lily/archiso/airootfs/usr/local/bin/get-nemesis-on-alci
Executable file
|
@ -0,0 +1,51 @@
|
|||
#!/bin/bash
|
||||
#set -e
|
||||
##################################################################################################################
|
||||
# Author : Erik Dubois
|
||||
# Website : https://www.erikdubois.be
|
||||
# Website : https://www.alci.online
|
||||
# Website : https://www.arcolinux.info
|
||||
# Website : https://www.arcolinux.com
|
||||
# Website : https://www.arcolinuxd.com
|
||||
# Website : https://www.arcolinuxb.com
|
||||
# Website : https://www.arcolinuxiso.com
|
||||
# Website : https://www.arcolinuxforum.com
|
||||
##################################################################################################################
|
||||
#
|
||||
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
|
||||
#
|
||||
##################################################################################################################
|
||||
#tput setaf 0 = black
|
||||
#tput setaf 1 = red
|
||||
#tput setaf 2 = green
|
||||
#tput setaf 3 = yellow
|
||||
#tput setaf 4 = dark blue
|
||||
#tput setaf 5 = purple
|
||||
#tput setaf 6 = cyan
|
||||
#tput setaf 7 = gray
|
||||
#tput setaf 8 = light blue
|
||||
##################################################################################################################
|
||||
|
||||
#iso=alci-iso
|
||||
|
||||
echo
|
||||
tput setaf 3
|
||||
echo "################################################################"
|
||||
echo "################### Start clone arcolinux-nemesis"
|
||||
echo "################################################################"
|
||||
tput sgr0
|
||||
echo
|
||||
|
||||
sudo pacman -Sy git --noconfirm --needed
|
||||
|
||||
[ -d $HOME"/DATA" ] || mkdir -p $HOME"/DATA"
|
||||
cd ~/DATA
|
||||
git clone https://github.com/erikdubois/arcolinux-nemesis
|
||||
|
||||
echo
|
||||
tput setaf 3
|
||||
echo "################################################################"
|
||||
echo "################### End clone arcolinux-nemesis"
|
||||
echo "################################################################"
|
||||
tput sgr0
|
||||
echo
|
239
lily/archiso/airootfs/usr/local/bin/livecd-sound
Executable file
239
lily/archiso/airootfs/usr/local/bin/livecd-sound
Executable file
|
@ -0,0 +1,239 @@
|
|||
#!/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
|
Loading…
Add table
Add a link
Reference in a new issue