Merge branch 'main' into arch-wayland
This commit is contained in:
commit
2ab1c652cb
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/music-normalize/venv/
|
45
README.md
Normal file
45
README.md
Normal file
@ -0,0 +1,45 @@
|
||||
Main repository location is [https://gitea.exu.li/RealStickman/configs](https://gitea.exu.li/RealStickman/configs)
|
||||
|
||||
# Configs
|
||||
|
||||
All my config files, scripts and other in one place.
|
||||
Mostly focused on ArchLinux, although there is also a NixOS configuration and independent Python programs.
|
||||
|
||||
## ArchLinux
|
||||
|
||||
- [arch-config](./arch-config)
|
||||
- [arch-setup](./arch-setup)
|
||||
- [arch-themes](./arch-themes)
|
||||
|
||||
### First time installation
|
||||
|
||||
Enable the `multilib` repository in `/etc/pacman.conf`
|
||||
|
||||
```sh
|
||||
git clone https://gitea.exu.li/realstickman/configs.git
|
||||
cd configs/arch-setup
|
||||
./install.sh
|
||||
```
|
||||
|
||||
### Config updates
|
||||
|
||||
Either use the included alias
|
||||
|
||||
```sh
|
||||
upconf
|
||||
```
|
||||
|
||||
or run the script directly.
|
||||
|
||||
```sh
|
||||
~/scripts/arch-config.sh
|
||||
```
|
||||
|
||||
## NixOS
|
||||
|
||||
- [nixos-config](./nixos-config)
|
||||
|
||||
## Other
|
||||
|
||||
- [easyffmpeg](./easyffmpeg)
|
||||
- [music-normalize](./music-normalize)
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
#DO NOT MAKE CHANGES TO THE INSTALL SCRIPT HERE. USE arcolinux-config.sh IN ~/scripts FOR THAT
|
||||
#DO NOT MAKE CHANGES TO THE INSTALL SCRIPT HERE. USE arch-config.sh IN ~/scripts FOR THAT
|
||||
|
||||
#change to home (does not show in terminal)
|
||||
cd $HOME
|
||||
@ -9,6 +9,6 @@ cd $HOME
|
||||
echo Launching arch-config.sh
|
||||
|
||||
#make executable & launch arch-config.sh
|
||||
chmod +x ~/config/scripts/arch-config.sh
|
||||
bash ~/config/scripts/arch-config.sh
|
||||
chmod +x ~/configs/arch-config/scripts/arch-config.sh
|
||||
bash ~/configs/arch-config/scripts/arch-config.sh
|
||||
exit 0
|
||||
|
@ -1,11 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# function to keep sudo from timing out
|
||||
function func_dont_timeout {
|
||||
while true; do
|
||||
sudo -v
|
||||
sleep 60
|
||||
done
|
||||
}
|
||||
|
||||
# check if user is root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
sudo -v
|
||||
fi
|
||||
|
||||
# keep sudo active in background
|
||||
func_dont_timeout &
|
||||
|
||||
cat <<EOF
|
||||
############################################################
|
||||
###################### INSTALL CONFIG ######################
|
||||
@ -42,24 +53,18 @@ EOF
|
||||
cd "$HOME"
|
||||
|
||||
# remove old installs
|
||||
rm -rf ~/config
|
||||
rm -rf ~/configs
|
||||
|
||||
echo "Checking config file"
|
||||
|
||||
#clone this repo
|
||||
git clone https://gitlab.com/RealStickman-arch/config.git &>/dev/null
|
||||
|
||||
# make sure to use master branch
|
||||
#cd config
|
||||
#git checkout master &>/dev/null
|
||||
#git checkout wayland &>/dev/null
|
||||
#cd ..
|
||||
git clone https://gitea.exu.li/realstickman/configs.git &>/dev/null
|
||||
|
||||
# check if the install scripts are the same
|
||||
# NOTE Arguments get passed automatically now
|
||||
if ! cmp --silent "$HOME/scripts/arch-config.sh" "$HOME/config/scripts/arch-config.sh"; then
|
||||
if ! cmp --silent "$HOME/scripts/arch-config.sh" "$HOME/configs/arch-config/scripts/arch-config.sh"; then
|
||||
echo Removed old config file and launched new one.
|
||||
rm "$HOME/scripts/arch-config.sh" && cp "$HOME/config/scripts/arch-config.sh" "$HOME/scripts/" && bash ~/scripts/arch-config.sh "$@"
|
||||
rm "$HOME/scripts/arch-config.sh" && cp "$HOME/configs/arch-config/scripts/arch-config.sh" "$HOME/scripts/" && bash ~/scripts/arch-config.sh "$@"
|
||||
fi
|
||||
|
||||
# if no seltheme file exists, ask to select a theme
|
||||
@ -71,14 +76,20 @@ fi
|
||||
#### Arguments ####
|
||||
####################
|
||||
|
||||
copy_firefox=0
|
||||
|
||||
# handle arguments
|
||||
if [[ "$#" -eq 1 ]]; then
|
||||
# -t/--theme to change theme
|
||||
if [[ "$1" == "-t" || "$1" == "--theme" ]]; then
|
||||
func_seltheme
|
||||
elif [[ "$1" == "-f" || "$1" == "--firefox" ]]; then
|
||||
copy_firefox=1
|
||||
elif [[ "$1" == "-h" || "$1" == "--help" ]]; then
|
||||
echo "-h, --help Show help menu"
|
||||
echo "-t, --theme Show theme selection screen"
|
||||
echo "-h, --help Show help menu"
|
||||
echo "-t, --theme Show theme selection screen"
|
||||
echo "-f, --firefox Update firefox config"
|
||||
exit 0
|
||||
fi
|
||||
elif [[ "$#" -gt 1 ]]; then
|
||||
echo "Too many arguments"
|
||||
@ -193,6 +204,21 @@ if [[ -d ~/scripts/in_path ]]; then
|
||||
rm -r ~/scripts/in_path
|
||||
fi
|
||||
|
||||
# remove old script pieces
|
||||
if [[ -d ~/scripts/pieces ]]; then
|
||||
rm -r ~/scripts/pieces
|
||||
fi
|
||||
|
||||
# remove old polybar scripts
|
||||
if [[ -d ~/scripts/polybar ]]; then
|
||||
rm -r ~/scripts/polybar
|
||||
fi
|
||||
|
||||
# remove archived scripts
|
||||
if [[ -d ~/scripts/archive ]]; then
|
||||
rm -r ~/scripts/archive
|
||||
fi
|
||||
|
||||
echo
|
||||
cat <<EOF
|
||||
########################################
|
||||
@ -201,58 +227,53 @@ cat <<EOF
|
||||
EOF
|
||||
|
||||
#copy folders
|
||||
cp -r ~/config/.config/ ~/
|
||||
cp -r ~/config/.local/ ~/
|
||||
cp -r ~/configs/arch-config/.config/ ~/
|
||||
cp -r ~/configs/arch-config/.local/ ~/
|
||||
#cp -r ~/config/Dokumente ~/
|
||||
#cp -r ~/config/.mozilla/firefox/default-release/* ~/.mozilla/firefox/*.default-release/
|
||||
#cp -r ~/config/.easystroke ~/
|
||||
#cp -r ~/config/.elvish ~/
|
||||
# NOTE find fails if the top level directory is not found
|
||||
if [[ -d ~/.mozilla/firefox ]]; then
|
||||
# NOTE check if firefox default-release directory exists. 1 is good, 0 is bad
|
||||
firefoxdir=$(find ~/.mozilla/firefox/ -name \*.default-release | wc -l)
|
||||
if [[ $firefoxdir -eq 1 ]]; then
|
||||
cp -r ~/config/.mozilla/firefox/default-release/* ~/.mozilla/firefox/*.default-release/
|
||||
cp -r ~/configs/arch-config/.doom.d ~/
|
||||
cp -r ~/configs/arch-config/.ssh ~/
|
||||
|
||||
# copy firefox only if "-f" or "--firefox" is given as argument
|
||||
if [[ copy_firefox -eq 1 ]]; then
|
||||
if [[ -d ~/.mozilla/firefox ]]; then
|
||||
# NOTE check if firefox default-release directory exists. 1 is good, 0 is bad
|
||||
firefoxdir=$(find ~/.mozilla/firefox/ -name \*.default-release | wc -l)
|
||||
if [[ $firefoxdir -eq 1 ]]; then
|
||||
cp -r ~/configs/arch-config/.mozilla/firefox/default-release/* ~/.mozilla/firefox/*.default-release/
|
||||
else
|
||||
echo "Please launch firefox and then update the config again"
|
||||
fi
|
||||
else
|
||||
echo "Please launch firefox and then update the config again"
|
||||
fi
|
||||
else
|
||||
echo "Please launch firefox and then update the config again"
|
||||
fi
|
||||
cp -r ~/config/.doom.d ~/
|
||||
cp -r ~/config/.ssh ~/
|
||||
|
||||
echo Copied folders
|
||||
|
||||
#copy single files
|
||||
cp -r ~/config/.face ~/
|
||||
cp -r ~/config/.gtkrc-2.0 ~/
|
||||
cp -r ~/config/.gitconfig ~/
|
||||
cp -r ~/config/.tmux.conf ~/
|
||||
cp -r ~/config/.xinitrc ~/
|
||||
cp -r ~/config/.kopiaignore ~/
|
||||
cp -r ~/configs/arch-config/.bashrc ~/
|
||||
cp -r ~/configs/arch-config/.face ~/
|
||||
cp -r ~/configs/arch-config/.gtkrc-2.0 ~/
|
||||
cp -r ~/configs/arch-config/.gitconfig ~/
|
||||
cp -r ~/configs/arch-config/.tmux.conf ~/
|
||||
cp -r ~/configs/arch-config/.xinitrc ~/
|
||||
cp -r ~/configs/arch-config/.kopiaignore ~/
|
||||
echo Copied files
|
||||
|
||||
# make .xinitrc executable
|
||||
chmod +x ~/.xinitrc
|
||||
|
||||
#copy scripts
|
||||
cp -r ~/config/scripts/ ~/
|
||||
cp -r ~/configs/arch-config/scripts/ ~/
|
||||
|
||||
# copy cache
|
||||
cp -r ~/config/.cache ~/
|
||||
cp -r ~/configs/arch-config/.cache ~/
|
||||
|
||||
#copy stuff to /etc
|
||||
sudo cp -r ~/config/etc /
|
||||
#sudo rsync --exclude=default/grub ~/config/etc /etc/
|
||||
|
||||
#read -r -p "Do you want to overwrite the grub config? [y/N] " response
|
||||
#if [[ "$response" =~ ^([yY][eE][sS][jJ]|[yY])$ ]]
|
||||
#then
|
||||
# copy config
|
||||
# sudo cp ~/config/etc/default/grub /etc/default/
|
||||
# update grub
|
||||
# sudo grub-mkconfig -o /boot/grub/grub.cfg
|
||||
#fi
|
||||
sudo cp -r ~/configs/arch-config/etc /
|
||||
|
||||
# NOTE Distro specific stuff
|
||||
distro=$(cat /etc/*-release | grep "^ID=")
|
||||
@ -263,44 +284,37 @@ if [ "$distro" == "ID=arch" ]; then
|
||||
sudo mv /etc/arch-pacman.conf /etc/pacman.conf
|
||||
fi
|
||||
|
||||
# NOTE only for webkit2gtk version of lightdm
|
||||
#copy old lightdm themes (and maybe other stuff, idk)
|
||||
#sudo cp -r ~/config/var /
|
||||
|
||||
#copy usr stuff
|
||||
sudo cp -r ~/config/usr /
|
||||
sudo cp -r ~/configs/arch-config/usr /
|
||||
|
||||
# copy xresources
|
||||
cp ~/config/.Xresources ~/
|
||||
cp ~/configs/arch-config/.Xresources ~/
|
||||
|
||||
####################
|
||||
###### Theme ######
|
||||
####################
|
||||
|
||||
# remove old themes folder
|
||||
rm -rf ./themes
|
||||
|
||||
# install theme selected in themes file
|
||||
git clone https://gitlab.com/RealStickman-arch/themes.git &>/dev/null
|
||||
seltheme="$(cat "$HOME/.seltheme")"
|
||||
if [[ "$seltheme" == "nyarch" ]]; then
|
||||
#cp -r "./themes/nyarch/i3" "$HOME/.config/"
|
||||
cat "./themes/nyarch/i3/color" >>"$HOME/.config/sway/config"
|
||||
cp -r "./themes/nyarch/polybar" "$HOME/.config/"
|
||||
cat "$HOME/configs/arch-themes/nyarch/i3/color" >>"$HOME/.config/i3/config"
|
||||
cp -r "$HOME/configs/arch-themes/nyarch/polybar" "$HOME/.config/"
|
||||
#cp -r "./themes/nyarch/neofetch/lowpoly_flamegirl_blue.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
|
||||
#cp "./themes/.fehbg-nyarch" "$HOME/.fehbg"
|
||||
#sed -i 's/^NAME=".*"/NAME="Rawrch Linyux"/' /etc/os-release
|
||||
elif [[ "$seltheme" == "space-pink" ]]; then
|
||||
#cp -r "./themes/space-pink/i3" "$HOME/.config/"
|
||||
cat "./themes/space-pink/i3/color" >>"$HOME/.config/sway/config"
|
||||
cp -r "./themes/space-pink/polybar" "$HOME/.config/"
|
||||
cat "$HOME/configs/arch-themes/space-pink/i3/color" >>"$HOME/.config/i3/config"
|
||||
cp -r "$HOME/configs/arch-themes/space-pink/polybar" "$HOME/.config/"
|
||||
#cp -r "./themes/space-pink/neofetch/lowpoly_flamegirl_orange.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
|
||||
#cp "./themes/.fehbg-space-pink" "$HOME/.fehbg"
|
||||
fi
|
||||
rm -rf ./themes
|
||||
|
||||
# make fehbg executable
|
||||
chmod +x ~/.fehbg
|
||||
if [[ -f "$HOME/.fehbg" ]]; then
|
||||
chmod +x ~/.fehbg
|
||||
fi
|
||||
|
||||
####################
|
||||
##### Bash Cat #####
|
||||
@ -322,16 +336,6 @@ git clone https://github.com/RealStickman/PSipcalc &>/dev/null
|
||||
cp ./PSipcalc/PSipcalc.ps1 "$HOME/scripts/in_path/sc-psipcalc"
|
||||
rm -rf ./PSipcalc
|
||||
|
||||
####################
|
||||
####### Gimp #######
|
||||
####################
|
||||
|
||||
#gimp plugins
|
||||
#mkdir ~/.config/GIMP/ || echo Not creating directory
|
||||
#mkdir ~/.config/GIMP/2.10/ || echo Not creating directory
|
||||
#mkdir -p ~/.config/GIMP/2.10/plug-ins/ || echo Not creating directory
|
||||
#rsync -ah ~/config/gimp-plugins/* ~/.config/GIMP/2.10/plug-ins/
|
||||
|
||||
echo
|
||||
cat <<EOF
|
||||
########################################
|
||||
@ -351,6 +355,9 @@ cat <<EOF
|
||||
########################################
|
||||
EOF
|
||||
|
||||
# reload systemd user scripts
|
||||
systemctl --user daemon-reload
|
||||
|
||||
# set systemd services for vmware (only if installed)
|
||||
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
|
||||
sudo systemctl enable --now vmware-networks.service || echo "Service failed, continuing"
|
||||
@ -385,6 +392,12 @@ sudo timedatectl set-ntp true
|
||||
# enable ssh-agent
|
||||
systemctl --user enable --now ssh-agent
|
||||
|
||||
# enable reflector timer
|
||||
sudo systemctl enable reflector.timer
|
||||
|
||||
# enable vnstat
|
||||
sudo systemctl enable vnstat
|
||||
|
||||
echo
|
||||
cat <<EOF
|
||||
########################################
|
||||
@ -436,20 +449,10 @@ cat <<EOF
|
||||
########################################
|
||||
EOF
|
||||
|
||||
# automatically add ssh keys to agent
|
||||
#if ! grep -q "AddKeysToAgent yes" "$HOME/.ssh/config"; then
|
||||
# echo 'AddKeysToAgent yes' | cat - "$HOME/.ssh/config" > temp && mv temp "$HOME/.ssh/config"
|
||||
#fi
|
||||
|
||||
# set permissions for sudoers.d to root only
|
||||
sudo chown root:root -R /etc/sudoers.d/
|
||||
sudo chmod 600 -R /etc/sudoers.d/
|
||||
|
||||
# unzip gimp plugins
|
||||
#echo Unzipping gimp plugins
|
||||
#unzip -o ~/.config/GIMP/2.10/plug-ins/export_layers-3.3.1.zip -d ~/.config/GIMP/2.10/plug-ins/ >/dev/null
|
||||
#rm ~/.config/GIMP/2.10/plug-ins/export_layers-3.3.1.zip >/dev/null
|
||||
|
||||
# xfce settings
|
||||
# disable screensaver & locker
|
||||
/usr/bin/xfconf-query -c xfce4-session -n -t bool -p /startup/screensaver/enabled -s false
|
||||
@ -462,9 +465,6 @@ chmod +x -R ~/scripts
|
||||
# make applications executable
|
||||
chmod +x -R ~/.local/share/applications
|
||||
|
||||
# set settings for nemo
|
||||
#bash ~/config/scripts/nemo-config.sh
|
||||
|
||||
#remove downloaded folder
|
||||
rm -rf ~/config
|
||||
|
||||
@ -491,26 +491,17 @@ fi
|
||||
# dunst
|
||||
pkill dunst && nohup dunst &
|
||||
|
||||
# reload systemd user scripts
|
||||
systemctl --user daemon-reload
|
||||
|
||||
# reload .Xresources
|
||||
# TODO fails without display
|
||||
set +e
|
||||
if [[ -f "$HOME/.Xresources" ]]; then
|
||||
xrdb ~/.Xresources
|
||||
fi
|
||||
|
||||
# execute feh
|
||||
# TODO fails without display
|
||||
"$HOME/.fehbg"
|
||||
set -e
|
||||
if [[ -f "$HOME/.fehbg" ]]; then
|
||||
"$HOME/.fehbg"
|
||||
fi
|
||||
|
||||
# NOTE working now
|
||||
# if [[ "$(ps aux | grep "FIXME")" ]]; then ...
|
||||
# ps aux | grep "\si3\s" breaks if i3 hasn't been restarted yet
|
||||
# ps aux | grep "\si3" works for both, not certain if other stuff could be detected as well
|
||||
# ps aux | grep "\si3\$" breaks if i3 has been restarted already in this session
|
||||
if ps aux | grep -E "\si3(\s|$)" &>/dev/null; then
|
||||
i3-msg restart 1>/dev/null
|
||||
fi
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# You can call this script like this:
|
||||
# $./dunst-backlight.sh up
|
||||
@ -13,28 +13,28 @@ send_notification() {
|
||||
light=$(get_light)
|
||||
# Make the bar with the special character ─ (it's not dash -)
|
||||
# https://en.wikipedia.org/wiki/Box-drawing_character
|
||||
bar=$(seq -s "─" $(($light/ 5)) | sed 's/[0-9]//g')
|
||||
bar=$(seq -s "─" $(($light / 5)) | sed 's/[0-9]//g')
|
||||
# Send the notification
|
||||
dunstify -i whitebalance -r 2489 -a backlight-script "$light $bar "
|
||||
}
|
||||
|
||||
case $1 in
|
||||
up)
|
||||
# Increase backlight
|
||||
xbacklight -inc 10 > /dev/null
|
||||
#xbacklight -inc 10% > /dev/null # legacy xorg-xbacklight
|
||||
send_notification
|
||||
#backlightraw=$(xbacklight -get)
|
||||
#backlight=${backlightraw::-8}
|
||||
#xbacklight -set "${backlight}0"
|
||||
;;
|
||||
# Increase backlight
|
||||
xbacklight -inc 10 >/dev/null
|
||||
#xbacklight -inc 10% > /dev/null # legacy xorg-xbacklight
|
||||
send_notification
|
||||
#backlightraw=$(xbacklight -get)
|
||||
#backlight=${backlightraw::-8}
|
||||
#xbacklight -set "${backlight}0"
|
||||
;;
|
||||
down)
|
||||
# Decrease backlight
|
||||
xbacklight -dec 10 > /dev/null
|
||||
#xbacklight -dec 9% > /dev/null # legacy xorg-xbacklight
|
||||
send_notification
|
||||
#backlightraw=$(xbacklight -get)
|
||||
#backlight=${backlightraw::-8}
|
||||
#xbacklight -set "${backlight}0"
|
||||
;;
|
||||
# Decrease backlight
|
||||
xbacklight -dec 10 >/dev/null
|
||||
#xbacklight -dec 9% > /dev/null # legacy xorg-xbacklight
|
||||
send_notification
|
||||
#backlightraw=$(xbacklight -get)
|
||||
#backlight=${backlightraw::-8}
|
||||
#xbacklight -set "${backlight}0"
|
||||
;;
|
||||
esac
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@ -12,7 +12,7 @@ get_volume() {
|
||||
}
|
||||
|
||||
is_mute() {
|
||||
amixer -D pulse get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null
|
||||
amixer -D pulse get Master | grep '%' | grep -oE '[^ ]+$' | grep off >/dev/null
|
||||
}
|
||||
|
||||
send_notification() {
|
||||
@ -26,24 +26,24 @@ send_notification() {
|
||||
|
||||
case $1 in
|
||||
up)
|
||||
# Set the volume on (if it was muted)
|
||||
amixer -D pulse set Master on > /dev/null
|
||||
# Up the volume (+ 5%)
|
||||
amixer -D pulse sset Master 5%+ > /dev/null
|
||||
send_notification
|
||||
;;
|
||||
# Set the volume on (if it was muted)
|
||||
amixer -D pulse set Master on >/dev/null
|
||||
# Up the volume (+ 5%)
|
||||
amixer -D pulse sset Master 5%+ >/dev/null
|
||||
send_notification
|
||||
;;
|
||||
down)
|
||||
amixer -D pulse set Master on > /dev/null
|
||||
amixer -D pulse sset Master 5%- > /dev/null
|
||||
send_notification
|
||||
;;
|
||||
amixer -D pulse set Master on >/dev/null
|
||||
amixer -D pulse sset Master 5%- >/dev/null
|
||||
send_notification
|
||||
;;
|
||||
mute)
|
||||
# Toggle mute
|
||||
amixer -D pulse set Master 1+ toggle > /dev/null
|
||||
if is_mute ; then
|
||||
dunstify -i audio-volume-muted -r 2593 -u normal "Mute"
|
||||
else
|
||||
send_notification
|
||||
fi
|
||||
;;
|
||||
# Toggle mute
|
||||
amixer -D pulse set Master 1+ toggle >/dev/null
|
||||
if is_mute; then
|
||||
dunstify -i audio-volume-muted -r 2593 -u normal "Mute"
|
||||
else
|
||||
send_notification
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
|
@ -1,14 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
#set -euo pipefail
|
||||
|
||||
# get script directory
|
||||
scriptloc=$(realpath "$BASH_SOURCE")
|
||||
setupdir=$(dirname "$scriptloc")
|
||||
#setupdir=$(pwd)
|
||||
setupdir=$(pwd)
|
||||
|
||||
# function to keep sudo from timing out
|
||||
function func_dont_timeout {
|
||||
while true; do
|
||||
sudo -v
|
||||
sleep 60
|
||||
done
|
||||
}
|
||||
|
||||
# check if user is root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
sudo -v
|
||||
fi
|
||||
|
||||
# keep sudo active in background
|
||||
func_dont_timeout &
|
||||
|
||||
#change to home directory
|
||||
#cd "$HOME"
|
||||
cd "$HOME"
|
||||
|
||||
# check if multilib repo is enabled
|
||||
if ! pacman -Sl multilib &>/dev/null; then
|
||||
@ -16,21 +32,11 @@ if ! pacman -Sl multilib &>/dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# NOTE on unattended pacman installing
|
||||
# Option 1: Will assume the default choice
|
||||
#--noconfirm
|
||||
# Option 2: Will always choose "yes", locale override needed to work all the time (might fail for other locales)
|
||||
#yes | LC_ALL=en_US.UTF-8 pacman ...
|
||||
#
|
||||
# excpect & send
|
||||
|
||||
# fix install problems
|
||||
echo Updating keyring
|
||||
sudo pacman -Sy --noconfirm archlinux-keyring
|
||||
echo Updating repos and packages
|
||||
sudo pacman -Syu --noconfirm
|
||||
echo Installing pip
|
||||
sudo pacman -S --needed --noconfirm python-pip
|
||||
echo Select packages to install
|
||||
|
||||
cmd=(dialog --separate-output --checklist "Select Desktop environment/Window manager:" 22 76 16)
|
||||
@ -129,7 +135,6 @@ for choice in $choices; do
|
||||
;;
|
||||
60)
|
||||
echo "discord" >>"$setupdir/selectedpkgs.txt"
|
||||
#echo "discord_arch_electron" >> "$setupdir/aurselectedpkgs.txt"
|
||||
;;
|
||||
61)
|
||||
echo "element-desktop" >>"$setupdir/selectedpkgs.txt"
|
||||
@ -146,29 +151,6 @@ for choice in $choices; do
|
||||
esac
|
||||
done
|
||||
|
||||
: '
|
||||
in_acpufreq=0
|
||||
|
||||
cmd=(dialog --separate-output --checklist "Performance and Battery life" 22 76 16)
|
||||
options=(0 "auto-cpufreq" off
|
||||
1 "corectrl" off)
|
||||
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
||||
clear
|
||||
for choice in $choices
|
||||
do
|
||||
case $choice in
|
||||
0)
|
||||
in_acpufreq=1
|
||||
echo "auto-cpufreq-git" >> "$setupdir/aurselectedpkgs.txt"
|
||||
# TODO Handle rest of installation
|
||||
;;
|
||||
1)
|
||||
echo "corectrl" >> "$setupdir/aurselectedpkgs.txt"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
'
|
||||
|
||||
in_doomemacs=0
|
||||
in_podman=0
|
||||
|
||||
@ -198,7 +180,6 @@ done
|
||||
|
||||
cmd=(dialog --separate-output --checklist "School and work communication" 22 76 16)
|
||||
options=(0 "Teams" off
|
||||
1 "Slack" off
|
||||
10 "OneNote" off)
|
||||
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
||||
clear
|
||||
@ -207,10 +188,6 @@ for choice in $choices; do
|
||||
0)
|
||||
echo "teams" >>"$setupdir/aurselectedpkgs.txt"
|
||||
;;
|
||||
1)
|
||||
#echo "slack-desktop" >> "$setupdir/aurselectedpkgs.txt"
|
||||
echo "slack-electron" >>"$setupdir/aurselectedpkgs.txt"
|
||||
;;
|
||||
10)
|
||||
echo "p3x-onenote" >>"$setupdir/aurselectedpkgs.txt"
|
||||
;;
|
||||
@ -251,43 +228,52 @@ for choice in $choices; do
|
||||
done
|
||||
'
|
||||
|
||||
rm "$setupdir/notfoundpackages.txt"
|
||||
|
||||
# NOTE on unattended pacman installing
|
||||
# Option 1: Will assume the default choice
|
||||
#--noconfirm
|
||||
# Option 2: Will always choose "yes", locale override needed to work all the time (might fail for other locales)
|
||||
#yes | LC_ALL=en_US.UTF-8 pacman ...
|
||||
#
|
||||
# excpect & send
|
||||
|
||||
#uninstalling unused packages
|
||||
echo Uninstalling unused packages
|
||||
# || true to pass set -e (error when encountering packages not installed)
|
||||
sudo pacman -Rns --noconfirm - <"$setupdir/packages/uninstall.txt" 2>/dev/null || true
|
||||
#sudo pacman -Rns - <"$setupdir/packages/uninstall.txt"
|
||||
while read package; do
|
||||
sudo pacman -Rns --noconfirm "$package"
|
||||
done <"$setupdir/packages/uninstall.txt"
|
||||
echo Uninstalled unused packages
|
||||
|
||||
#pacman programs
|
||||
echo Installing default pacman programs
|
||||
sudo pacman -S --needed - <"$setupdir/packages/officialpkgs.txt" 2>/dev/null
|
||||
# TODO for jack, use pipewire-jack (2)
|
||||
# TODO for pipewire-session-manager, use wireplumber (2)
|
||||
# TODO for phonon-qt5-backend, use phonon-qt5-gstreamer (1)
|
||||
#sudo pacman -S --needed - <"$setupdir/packages/officialpkgs.txt"
|
||||
while read package; do
|
||||
sudo pacman -S --needed --noconfirm "$package" || echo "$package" >>"$setupdir/notfoundpackages.txt"
|
||||
done <"$setupdir/packages/officialpkgs.txt"
|
||||
echo Installed official programs
|
||||
|
||||
# pip
|
||||
#echo Installing python programs
|
||||
# TODO AUR package exists
|
||||
#pip install --user autotrash
|
||||
#echo Installed python programs
|
||||
#install wine
|
||||
echo Installing wine
|
||||
#sudo pacman -S --needed - <"$setupdir/packages/winepkgs.txt"
|
||||
while read package; do
|
||||
sudo pacman -S --needed --noconfirm "$package" || echo "$package" >>"$setupdir/notfoundpackages.txt"
|
||||
done <"$setupdir/packages/winepkgs.txt"
|
||||
echo Installed wine
|
||||
|
||||
# install paru-bin if not already present
|
||||
if [[ ! $(pacman -Q | grep paru-bin) ]]; then
|
||||
echo "Installing paru-bin"
|
||||
# install paru-bin
|
||||
if [[ ! $(pacman -Q | grep paru) ]]; then
|
||||
echo "Installing paru from the AUR"
|
||||
git clone https://aur.archlinux.org/paru-bin.git
|
||||
cd paru-bin
|
||||
makepkg -si --noconfirm
|
||||
yes | LC_ALL=en_US.UTF-8 makepkg -si
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# audio
|
||||
echo Installing audio programs
|
||||
paru -S --needed --noconfirm - <"$setupdir/packages/audiopkgs.txt" 2>/dev/null
|
||||
echo Installed audio programs
|
||||
|
||||
#AUR
|
||||
# AUR
|
||||
echo Installing default AUR programs
|
||||
paru -S --needed --noconfirm - <"$setupdir/packages/aurpkgs.txt" 2>/dev/null
|
||||
paru -S --needed - <"$setupdir/packages/aurpkgs.txt"
|
||||
# TODO for btrfsmaintenance, use btrfsmaintenance (1)
|
||||
# TODO for jellyfin-media-player, use jellyfin-media-player (1)
|
||||
# TODO for java-environment, use jdk-openjdk (1)
|
||||
@ -305,11 +291,6 @@ echo Installing themes and icons
|
||||
paru -S --needed --noconfirm - <"$setupdir/packages/theme-packages.txt"
|
||||
echo Installed themes and icons
|
||||
|
||||
#install wine
|
||||
echo Installing wine
|
||||
sudo pacman -S --needed --noconfirm - <"$setupdir/packages/winepkgs.txt"
|
||||
echo Installed wine
|
||||
|
||||
###################
|
||||
#selected programs#
|
||||
###################
|
||||
@ -319,7 +300,7 @@ echo Installing selected programs
|
||||
if [ -f "$setupdir/selectedpkgs.txt" ]; then
|
||||
echo Installing from official repository
|
||||
# NOTE || true to continue if no packages have been selected
|
||||
sudo pacman -S --needed - <"$setupdir/selectedpkgs.txt" || true
|
||||
sudo pacman -S --needed --noconfirm - <"$setupdir/selectedpkgs.txt" || true
|
||||
fi
|
||||
|
||||
# install selected aur packages
|
||||
@ -347,10 +328,25 @@ if [ $in_podman -eq 1 ]; then
|
||||
sudo usermod --add-subuids 100000-165536 --add-subgids 100000-165536 "$USER"
|
||||
sudo groupadd -f podman
|
||||
sudo usermod -aG podman "$USER"
|
||||
else
|
||||
echo "Skipping podman"
|
||||
fi
|
||||
|
||||
# other system configs
|
||||
# arco pc
|
||||
if [ $in_arco_pc -eq 1 ]; then
|
||||
echo "Installing arco pc packages"
|
||||
paru -S --needed - <"$setupdir/packages/lupusregina-packages.txt"
|
||||
fi
|
||||
|
||||
# arco hp
|
||||
if [ $in_arco_hp -eq 1 ]; then
|
||||
echo "Installing arch hp packages"
|
||||
paru -S --needed - <"$setupdir/packages/arch-hp-packages.txt"
|
||||
fi
|
||||
|
||||
# install nix
|
||||
curl -sSf -L https://install.determinate.systems/nix | sh -s -- install
|
||||
#curl -sSf -L https://install.determinate.systems/nix | sh -s -- install
|
||||
|
||||
##############################
|
||||
##### Configuration #####
|
||||
@ -360,21 +356,9 @@ echo Configuring packages
|
||||
#change shell
|
||||
chsh -s /usr/bin/fish "$USER"
|
||||
|
||||
#enable vnstat
|
||||
sudo systemctl enable --now vnstat
|
||||
|
||||
# NOTE unsets set -e temporarily
|
||||
set +e
|
||||
# setup autotrash
|
||||
# NOTE without this directory autotrash.service fails to run
|
||||
mkdir -p "$HOME/.local/share/Trash/info"
|
||||
autotrash -d 5 --install
|
||||
systemctl --user enable autotrash.timer
|
||||
set -e
|
||||
|
||||
# setup autotrash
|
||||
autotrash -td 5 --install
|
||||
systemctl --user start autotrash
|
||||
systemctl --user enable autotrash.timer
|
||||
|
||||
# enable lockscreen for systemd
|
||||
@ -403,31 +387,8 @@ fi
|
||||
# update fonts cache
|
||||
fc-cache -f
|
||||
|
||||
# download grub theme
|
||||
#git clone https://github.com/xenlism/Grub-themes.git
|
||||
#cd "Grub-themes/xenlism-grub-arch-1080p/"
|
||||
#sudo bash install.sh
|
||||
# go back
|
||||
#cd ../../
|
||||
|
||||
#Changes to home folder automatically now, no need to be extra careful anymore.
|
||||
# TODO make config script independent of download location
|
||||
cd "$HOME"
|
||||
# NOTE remove directory if it exists already and redownload
|
||||
rm -rf config
|
||||
git clone https://gitlab.com/RealStickman-arch/config
|
||||
echo Finished downloading config
|
||||
|
||||
#cleanup
|
||||
rm -rf "$setupdir"
|
||||
echo Removed setup files
|
||||
|
||||
#downloading config
|
||||
echo Setting config
|
||||
# TODO temporary
|
||||
cd config
|
||||
git checkout wayland
|
||||
bash ~/config/install.sh
|
||||
bash ~/configs/arch-config/install.sh
|
||||
|
||||
if [[ $(pacman -Q pkgstats 2>/dev/null >/dev/null) ]]; then
|
||||
sudo systemctl enable --now pkgstats.timer
|
||||
|
@ -3,7 +3,6 @@ bitwarden
|
||||
btrfsmaintenance
|
||||
davfs2
|
||||
downgrade
|
||||
ffmpeg-normalize
|
||||
greetd
|
||||
greetd-gtkgreet
|
||||
jellyamp
|
||||
|
@ -13,6 +13,7 @@ dnsutils
|
||||
dosfstools
|
||||
dunst
|
||||
e2fsprogs
|
||||
easyeffects
|
||||
exfatprogs
|
||||
f2fs-tools
|
||||
fakeroot
|
||||
@ -46,6 +47,7 @@ hyphen-de
|
||||
hyphen-en
|
||||
jre-openjdk
|
||||
kcm-wacomtablet
|
||||
kdeconnect
|
||||
kitty
|
||||
libaacs
|
||||
libbluray
|
||||
@ -68,7 +70,6 @@ nemo-preview
|
||||
nemo-share
|
||||
neovim
|
||||
nextcloud-client
|
||||
nomacs
|
||||
notification-daemon
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
@ -81,9 +82,14 @@ os-prober
|
||||
os-prober
|
||||
p7zip
|
||||
pacman-contrib
|
||||
pavucontrol
|
||||
phonon-qt5-gstreamer
|
||||
picom
|
||||
piper
|
||||
pipewire
|
||||
pipewire-alsa
|
||||
pipewire-jack
|
||||
pipewire-pulse
|
||||
playerctl
|
||||
polkit-gnome
|
||||
python-dbus
|
||||
@ -120,6 +126,7 @@ whois
|
||||
wireguard-tools
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-wlr
|
||||
wireplumber
|
||||
xdg-user-dirs
|
||||
xdotool
|
||||
xf86-input-elographics
|
||||
|
@ -1,12 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
cd "$HOME/GitProjects/setup/packages/"
|
||||
cd "$HOME/GitProjects/configs/arch-setup/packages/"
|
||||
|
||||
|
||||
readarray -d '' packagefiles < <(find "$HOME/GitProjects/setup/packages/" -name "*\.txt" -print0)
|
||||
readarray -d '' packagefiles < <(find "$HOME/GitProjects/configs/arch-setup/packages/" -name "*\.txt" -print0)
|
||||
|
||||
for file in "${packagefiles[@]}"; do
|
||||
echo "Sorting $file"
|
||||
cat "$file" | sort > "${file}.tmp" && mv "${file}.tmp" "$file"
|
||||
cat "$file" | sort >"${file}.tmp" && mv "${file}.tmp" "$file"
|
||||
done
|
||||
|
@ -132,7 +132,7 @@ def convert(inputfile, outputfile, loudness) -> Optional[list[Any]]:
|
||||
" "
|
||||
"-filter:a"
|
||||
" "
|
||||
"loudnorm=I=-30.0:"
|
||||
"loudnorm=I=-24.0:"
|
||||
"LRA=7.0:"
|
||||
"measured_I={input_i}:"
|
||||
"measured_LRA={input_lra}:"
|
||||
|
Loading…
Reference in New Issue
Block a user