Update dconf and switch to new installer fully

This commit is contained in:
2024-09-27 00:11:56 +01:00
parent 3c5fac8dd0
commit 25fafa0b69
3 changed files with 238 additions and 455 deletions

View File

@@ -1,238 +1,209 @@
#! /bin/bash
# Sudo auth
auth() {
echo "$sudopass" | sudo -S -k $*
#!/bin/bash
E='echo -e'
e='echo -en'
trap "R;exit" 2
ESC=$($e "\e")
TPUT() { $e "\e[${1};${2}H"; }
CLEAR() { $e "\ec"; }
CIVIS() { $e "\e[?25l"; }
MARK() { $e "\e[7m"; }
UNMARK() { $e "\e[27m"; }
R() {
CLEAR
stty sane
CLEAR
}
export HISTIGNORE='*sudo -S*'
for (( ; ; )); do
sudopass=$(zenity --password)
if [ -z "${sudopass}" ]; then
exit
fi
auth echo "Test sudo password."
if [[ $? == 0 ]]; then
break
fi
done
if ! command -v zenity; then
auth apt-get install zenity -y
fi
# Update System
(
auth apt-get update
echo "20"
echo "# Updating distro packages..."
auth apt-get dist-upgrade -y
echo "40"
echo "# Updating installed packages..."
auth apt-get upgrade -y
echo "60"
echo "# Cleaning cache..."
auth apt-get clean
echo "80"
echo "# Removing unused dependencies..."
auth apt-get autoremove -y
echo "100"
) |
zenity --progress --title="Update System" --text="Updating repositories..." --percentage=0 --no-cancel
# Dotfiles
zenity --question \
--title="Dotfiles" \
--text="Apply Trude's configuration files?"
if [[ $? == 0 ]]; then
(
auth apt-get install -y htop fzf git wget curl bash-completion
echo "20"
echo "# Copying dotfiles..."
cp -vrf config-files/.* $HOME
echo "40"
cp -vrf config-files/* $HOME
echo "50"
echo "# Configure GNOME/GTK..."
dconf load -f / <./settings.dconf
echo "60"
echo "# Reloading font cache..."
fc-cache -f
echo "100"
) |
zenity --progress --title="Configuration" --text="Installing common utilities..." --percentage=0 --no-cancel
fi
# Flatpak
zenity --question \
--title="Install Apps" \
--text="Enable Flatpak support?"
if [[ $? == 0 ]]; then
(
auth apt-get install -y flatpak
echo "30"
echo "# Install the gnome-software plugin..."
auth apt-get install -y gnome-software-plugin-flatpak
echo "50"
echo "# Add Flathub..."
auth flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
echo "75"
echo "# Installing Adw GTK3 theme for flatpak apps..."
flatpak install org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark
echo "100"
) |
zenity --progress --title="Enabling Flatpak" --text="Installing Flatpak..." --percentage=0 --no-cancel
fi
# Debian Apps
options=(
FALSE "Install Neovim"
FALSE "Install Zed"
FALSE "Install Ollama"
FALSE "Install GitHub CLI"
FALSE "Install Tailscale"
FALSE "Install Firefox + Adw theme"
FALSE "Install Syncthing"
)
checkbox=$(zenity --list --checklist --height=500 --title="Install Apps" \
--column="Select" \
--column="Tasks" "${options[@]}")
readarray -td '|' choices < <(printf '%s' "$checkbox")
for selection in "${choices[@]}"; do
if [ "$selection" = "Install Neovim" ]; then
(
auth apt install -y ninja-build gettext cmake unzip curl build-essential
echo "30"
git clone https://github.com/neovim/neovim --depth 1
echo "50"
cd neovim
git checkout stable
echo "60"
make CMAKE_BUILD_TYPE=RelWithDebInfo
echo "80"
auth make install
cd ..
rm -rf neovim
echo "100"
) |
zenity --progress --title="Neovim" --text="Installing Neovim..." --percentage=0 --no-cancel
fi
if [ "$selection" = "Install Zed" ]; then
zenity --notification --window-icon="info" --text="Installing Zed..."
curl https://zed.dev/install.sh | sh
if [[ $? == 0 ]]; then
zenity --notification --window-icon="info" --text="Zed is now installed."
else
zenity --notification --window-icon="error" --text="Zed failed to install."
fi
fi
if [ "$selection" = "Install Ollama" ]; then
zenity --notification --window-icon="info" --text="Installing Ollama..."
curl -fsSL https://ollama.com/install.sh | auth sh
if [[ $? == 0 ]]; then
zenity --notification --window-icon="info" --text="Ollama is now installed."
else
zenity --notification --window-icon="error" --text="Ollama failed to install."
fi
fi
if [ "$selection" = "Install GitHub CLI" ]; then
(
auth apt-get install wget -y
echo "20"
auth mkdir -p -m 755 /etc/apt/keyrings
auth rm -f /etc/apt/sources.list.d/github-cli.list
wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | auth tee /etc/apt/keyrings/githubcli-archive-keyring.gpg
echo "40"
auth chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | auth tee /etc/apt/sources.list.d/github-cli.list
auth apt-get update
echo "60"
auth apt-get install gh -y
echo "100"
) |
zenity --progress --title="GitHub CLI" --text="Installing GitHub CLI..." --percentage=0 --no-cancel
fi
if [ "$selection" = "Install Tailscale" ]; then
(
curl -fsSL https://tailscale.com/install.sh | sh
echo "80"
auth tailscale up
echo "100"
) |
zenity --progress --title="Tailscale" --text="Installing Tailscale..." --percentage=0 --no-cancel
fi
if [ "$selection" = "Install Firefox + Adw theme" ]; then
(
auth apt install -y firefox-esr
echo "60"
firefox &
sleep 5
echo "80"
echo "# Applying Adw theme..."
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
echo "100"
) |
zenity --progress --title="Firefox" --text="Installing Firefox..." --percentage=0 --no-cancel
fi
if [ "$selection" = "Install Syncthing" ]; then
zenity --notification --window-icon="info" --text="Installing Syncthing..."
sudo apt install -y syncthing
if [[ $? == 0 ]]; then
zenity --notification --window-icon="info" --text="Syncthing is now installed."
else
zenity --notification --window-icon="error" --text="Syncthing failed to install."
fi
fi
done
# Flatpak Apps
if command -v flatpak; then
options=(
FALSE "io.github.mrvladus.List" "Errands (Tasks)"
TRUE "io.gitlab.news_flash.NewsFlash" "Newsflash (RSS)"
FALSE "org.gnome.gitlab.somas.Apostrophe" "Apostrophe (Markdown Editor)"
TRUE "org.gnome.World.Secrets" "Secrets (Password manager)"
FALSE "org.gnome.Polari" "Polari (IRC)"
TRUE "org.gnome.Fractal" "Fractal (Matrix)"
TRUE "so.libdb.dissent" "Dissent (Discord)"
TRUE "io.gitlab.adhami3310.Impression" "Impression (Disk image creator)"
FALSE "org.gnome.Builder" "Builder (IDE)"
FALSE "org.gnome.design.AppIconPreview" "App Icon Preview"
FALSE "org.gnome.design.IconLibrary" "Icon Library"
FALSE "org.gnome.design.Palette" "Color Palette"
FALSE "org.gnome.design.SymbolicPreview" "Symbolic Preview"
FALSE "org.gnome.design.Typography" "Typography"
FALSE "re.sonny.Workbench" "Workbench"
TRUE "org.prismlauncher.PrismLauncher" "Prism Launcher"
TRUE "md.obsidian.Obsidian" "Obsidian"
)
checkbox=$(zenity --list --checklist --width=800 --height=600 \
--title="Install Apps" \
--column="Select" \
--column="App ID" \
--column="App Name" "${options[@]}")
readarray -td '|' choices < <(printf '%s' "$checkbox")
declare -i app_counter=0
declare -i app_total="${#choices[@]}"
for app in "${choices[@]}"; do
app_counter+=1
echo "Installing $app ($app_counter/$app_total)..."
zenity --notification --icon="info" --text="Installing $app ($app_counter/$app_total)..."
flatpak install -y flathub $app
if [[ $? == 0 ]]; then
zenity --notification --icon="info" --text="$app is now installed."
else
zenity --notification --icon="error" --text="$app failed to install."
fi
HEAD() {
for each in $(seq 1 12); do
$E " \xE2\x94\x82 \xE2\x94\x82"
done
fi
MARK
TPUT 1 5
$E " Trude's Toolkit "
UNMARK
}
i=0
CLEAR
CIVIS
NULL=/dev/null
FOOT() {
MARK
TPUT 12 5
$E " UP \xE2\x86\x91 \xE2\x86\x93 DOWN ENTER - SELECT,NEXT "
UNMARK
}
ARROW() {
IFS= read -s -n1 key 2>/dev/null >&2
if [[ $key = $ESC ]]; then
read -s -n1 key 2>/dev/null >&2
if [[ $key = \[ ]]; then
read -s -n1 key 2>/dev/null >&2
if [[ $key = A ]]; then echo up; fi
if [[ $key = B ]]; then echo dn; fi
fi
fi
if [[ "$key" == "$($e \\x0A)" ]]; then echo enter; fi
}
M0() {
TPUT 4 12
$e "Switch to Debian testing"
}
M1() {
TPUT 5 12
$e "Install GNOME"
}
M2() {
TPUT 6 12
$e "Install DWM"
}
M3() {
TPUT 7 12
$e "Install Dotfiles"
}
M4() {
TPUT 8 12
$e "Enable Flatpak support"
}
M5() {
TPUT 9 12
$e "EXIT "
}
LM=5
MENU() { for each in $(seq 0 $LM); do M${each}; done; }
POS() {
if [[ $cur == up ]]; then ((i--)); fi
if [[ $cur == dn ]]; then ((i++)); fi
if [[ $i -lt 0 ]]; then i=$LM; fi
if [[ $i -gt $LM ]]; then i=0; fi
}
REFRESH() {
after=$((i + 1))
before=$((i - 1))
if [[ $before -lt 0 ]]; then before=$LM; fi
if [[ $after -gt $LM ]]; then after=0; fi
if [[ $j -lt $i ]]; then
UNMARK
M$before
else
UNMARK
M$after
fi
if [[ $after -eq 0 ]] || [ $before -eq $LM ]; then
UNMARK
M$before
M$after
fi
j=$i
UNMARK
M$before
M$after
}
INIT() {
R
HEAD
FOOT
MENU
}
SC() {
REFRESH
MARK
$S
$b
cur=$(ARROW)
}
ES() {
MARK
$e "ENTER = main menu "
$b
read
INIT
}
INIT
while [[ "$O" != " " ]]; do
case $i in
0)
S=M0
SC
if [[ $cur == enter ]]; then
R
# Debian testing
sudo cp -f ./debian-sources.list /etc/apt/sources.list
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
ES
fi
;;
1)
S=M1
SC
if [[ $cur == enter ]]; then
R
# GNOME Install
sudo apt install gnome-core
ES
fi
;;
2)
S=M2
SC
if [[ $cur == enter ]]; then
R
# DWM Install
compile() {
cd programs/$1
sudo make clean install
cd ../..
}
# Install Dependencies
sudo apt install -y xorg picom libx11-dev libxft-dev libxinerama-dev build-essential libxrandr-dev policykit-1-gnome dbus-x11 pipewire-audio wireplumber pipewire-pulse pipewire-alsa network-manager firefox-esr feh scrot dunst
systemctl --user --now enable wireplumber.service
sudo systemctl enable NetworkManager
# Compile
for program in "dwm" "dmenu" "slock" "st" "tabbed" "dwmblocks"; do
compile $program
done
ES
fi
;;
3)
S=M3
SC
if [[ $cur == enter ]]; then
R
# Dotfiles
sudo apt install htop fzf git wget curl bash-completion
cp -vrf config-files/.* $HOME
cp -vrf config-files/* $HOME
dconf load -f / <./settings.dconf
fc-cache -f
ES
fi
;;
4)
S=M4
SC
if [[ $cur == enter ]]; then
R
# Flatpak
sudo apt install flatpak gnome-software-plugin-flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark
ES
fi
;;
5)
S=M5
SC
if [[ $cur == enter ]]; then
R
exit 0
fi
;;
esac
POS
done

View File

@@ -1,209 +0,0 @@
#!/bin/bash
E='echo -e'
e='echo -en'
trap "R;exit" 2
ESC=$($e "\e")
TPUT() { $e "\e[${1};${2}H"; }
CLEAR() { $e "\ec"; }
CIVIS() { $e "\e[?25l"; }
MARK() { $e "\e[7m"; }
UNMARK() { $e "\e[27m"; }
R() {
CLEAR
stty sane
CLEAR
}
HEAD() {
for each in $(seq 1 12); do
$E " \xE2\x94\x82 \xE2\x94\x82"
done
MARK
TPUT 1 5
$E " Trude's Toolkit "
UNMARK
}
i=0
CLEAR
CIVIS
NULL=/dev/null
FOOT() {
MARK
TPUT 12 5
$E " UP \xE2\x86\x91 \xE2\x86\x93 DOWN ENTER - SELECT,NEXT "
UNMARK
}
ARROW() {
IFS= read -s -n1 key 2>/dev/null >&2
if [[ $key = $ESC ]]; then
read -s -n1 key 2>/dev/null >&2
if [[ $key = \[ ]]; then
read -s -n1 key 2>/dev/null >&2
if [[ $key = A ]]; then echo up; fi
if [[ $key = B ]]; then echo dn; fi
fi
fi
if [[ "$key" == "$($e \\x0A)" ]]; then echo enter; fi
}
M0() {
TPUT 4 12
$e "Switch to Debian testing"
}
M1() {
TPUT 5 12
$e "Install GNOME"
}
M2() {
TPUT 6 12
$e "Install DWM"
}
M3() {
TPUT 7 12
$e "Install Dotfiles"
}
M4() {
TPUT 8 12
$e "Enable Flatpak support"
}
M5() {
TPUT 9 12
$e "EXIT "
}
LM=5
MENU() { for each in $(seq 0 $LM); do M${each}; done; }
POS() {
if [[ $cur == up ]]; then ((i--)); fi
if [[ $cur == dn ]]; then ((i++)); fi
if [[ $i -lt 0 ]]; then i=$LM; fi
if [[ $i -gt $LM ]]; then i=0; fi
}
REFRESH() {
after=$((i + 1))
before=$((i - 1))
if [[ $before -lt 0 ]]; then before=$LM; fi
if [[ $after -gt $LM ]]; then after=0; fi
if [[ $j -lt $i ]]; then
UNMARK
M$before
else
UNMARK
M$after
fi
if [[ $after -eq 0 ]] || [ $before -eq $LM ]; then
UNMARK
M$before
M$after
fi
j=$i
UNMARK
M$before
M$after
}
INIT() {
R
HEAD
FOOT
MENU
}
SC() {
REFRESH
MARK
$S
$b
cur=$(ARROW)
}
ES() {
MARK
$e "ENTER = main menu "
$b
read
INIT
}
INIT
while [[ "$O" != " " ]]; do
case $i in
0)
S=M0
SC
if [[ $cur == enter ]]; then
R
# Debian testing
sudo cp -f ./debian-sources.list /etc/apt/sources.list
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
ES
fi
;;
1)
S=M1
SC
if [[ $cur == enter ]]; then
R
# GNOME Install
sudo apt install gnome-core
ES
fi
;;
2)
S=M2
SC
if [[ $cur == enter ]]; then
R
# DWM Install
compile() {
cd programs/$1
sudo make clean install
cd ../..
}
# Install Dependencies
sudo apt install -y xorg picom libx11-dev libxft-dev libxinerama-dev build-essential libxrandr-dev policykit-1-gnome dbus-x11 pipewire-audio wireplumber pipewire-pulse pipewire-alsa network-manager firefox-esr feh scrot dunst
systemctl --user --now enable wireplumber.service
sudo systemctl enable NetworkManager
# Compile
for program in "dwm" "dmenu" "slock" "st" "tabbed" "dwmblocks"; do
compile $program
done
ES
fi
;;
3)
S=M3
SC
if [[ $cur == enter ]]; then
R
# Dotfiles
sudo apt install htop fzf git wget curl bash-completion
cp -vrf config-files/.* $HOME
cp -vrf config-files/* $HOME
dconf load -f / <./settings.dconf
fc-cache -f
ES
fi
;;
4)
S=M4
SC
if [[ $cur == enter ]]; then
R
# Flatpak
sudo apt install flatpak gnome-software-plugin-flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark
ES
fi
;;
5)
S=M5
SC
if [[ $cur == enter ]]; then
R
exit 0
fi
;;
esac
POS
done

View File

@@ -2,6 +2,20 @@
theme='auto'
use-system-font=true
[org/gnome/calculator]
accuracy=9
angle-units='degrees'
base=10
button-mode='programming'
number-format='automatic'
show-thousands=false
show-zeroes=false
source-currency=''
source-units='degree'
target-currency=''
target-units='radian'
word-size=64
[org/gnome/desktop/a11y/interface]
high-contrast=false
show-status-shapes=false
@@ -79,13 +93,20 @@ ask-for-default=false
default-search-engine='DuckDuckGo'
search-engine-providers=[{'url': <'https://www.bing.com/search?q=%s'>, 'bang': <'!b'>, 'name': <'Bing'>}, {'url': <'https://duckduckgo.com/?q=%s&t=epiphany'>, 'bang': <'!ddg'>, 'name': <'DuckDuckGo'>}, {'url': <'https://www.google.com/search?q=%s'>, 'bang': <'!g'>, 'name': <'Google'>}]
[org/gnome/epiphany/state]
is-maximized=false
window-size=(1809, 1282)
[org/gnome/epiphany/web]
show-developer-actions=true
[org/gnome/evince/default]
continuous=true
dual-page=false
dual-page-odd-left=true
enable-spellchecking=true
inverted-colors=false
show-sidebar=true
sidebar-page='thumbnails'
sidebar-size=132
sizing-mode='automatic'
[org/gnome/evolution-data-server]
migrated=true
@@ -112,9 +133,13 @@ night-light-temperature=uint32 2410
sleep-inactive-ac-timeout=3600
sleep-inactive-ac-type='nothing'
[org/gnome/settings-daemon/plugins/power]
power-button-action='interactive'
sleep-inactive-ac-type='nothing'
[org/gnome/shell]
enabled-extensions=['caffeine@patapon.info', 'appindicatorsupport@rgcjonas.gmail.com', 'Vitals@CoreCoding.com', 'blur-my-shell@aunetx']
favorite-apps=['google-chrome.desktop', 'org.gnome.Epiphany.desktop', 'org.gnome.Nautilus.desktop', 'md.obsidian.Obsidian.desktop', 'io.gitlab.news_flash.NewsFlash.desktop', 'org.gnome.Fractal.desktop', 'org.gnome.World.Secrets.desktop', 'org.gnome.Calculator.desktop', 'code.desktop', 'org.gnome.Console.desktop', 'org.gnome.Software.desktop', 'net.lutris.Lutris.desktop', 'org.prismlauncher.PrismLauncher.desktop']
enabled-extensions=['caffeine@patapon.info', 'appindicatorsupport@rgcjonas.gmail.com', 'Vitals@CoreCoding.com', 'logowidget@github.com.howbea', 'gtk4-ding@smedius.gitlab.com', 'blur-my-shell@aunetx']
favorite-apps=['google-chrome.desktop', 'org.gnome.Epiphany.desktop', 'org.gnome.Nautilus.desktop', 'md.obsidian.Obsidian.desktop', 'io.gitlab.news_flash.NewsFlash.desktop', 'org.gnome.Fractal.desktop', 'org.gnome.World.Secrets.desktop', 'org.gnome.Calculator.desktop', 'code.desktop', 'org.gnome.Console.desktop', 'org.gnome.SystemMonitor.desktop', 'org.gnome.Software.desktop', 'net.lutris.Lutris.desktop', 'org.prismlauncher.PrismLauncher.desktop']
last-selected-power-profile='performance'
welcome-dialog-last-shown-version='43.9'
@@ -157,10 +182,6 @@ hot-sensors=['_memory_usage_', '_processor_usage_', '__temperature_max__']
icon-style=1
use-higher-precision=false
[org/gnome/software]
first-run=false
show-only-verified-apps=false
[org/gnome/system/location]
enabled=true