1 Commits

Author SHA1 Message Date
yuri 8bf0689b86 v3-start 2026-07-06 11:09:34 +02:00
62 changed files with 3739 additions and 1045 deletions
+274
View File
@@ -0,0 +1,274 @@
#!/bin/bash
set -euo pipefail
##########################
# Color helpers (no tput)
##########################
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
BLUE='\033[0;34m'
GRAY='\033[0;37m'
BOLD='\033[1m'
RESET='\033[0m'
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED='' GREEN='' YELLOW='' CYAN='' PURPLE='' BLUE='' GRAY='' BOLD='' RESET=''´
fi
color_yellow() { printf '%b' "$YELLOW"; }
color_cyan() { printf '%b' "$CYAN"; }
color_red() { printf '%b' "$RED"; }
color_green() { printf '%b' "$GREEN"; }
color_reset() { printf '%b' "$RESET"; }
##########################
# OS Detection
##########################
echo
color_yellow
echo "################################################################"
echo "################### Start OS Detection"
echo "################################################################"
color_reset
echo
source /etc/os-release
OS_ID="${ID,,}"
OS_LIKE="${ID_LIKE:-}"
OS_LIKE="${OS_LIKE,,}"
OS_VERSION="${VERSION_ID:-unknown}"
OS_PRETTY="$PRETTY_NAME"
OS=""
case "$OS_ID" in
arch) OS="arch" ;;
debian) OS="debian" ;;
ubuntu) OS="ubuntu" ;;
fedora) OS="fedora" ;;
*)
if [[ "$OS_LIKE" == *"ubuntu"* ]]; then
OS="ubuntu"
elif [[ "$OS_LIKE" == *"arch"* ]]; then
OS="arch"
elif [[ "$OS_LIKE" == *"debian"* ]]; then
OS="debian"
elif [[ "$OS_LIKE" == *"fedora"* || "$OS_LIKE" == *"rhel"* ]]; then
OS="fedora"
fi
;;
esac
if [[ -n "$OS" ]]; then
color_cyan
echo "################################################################################"
echo "Detected OS: $OS ($OS_PRETTY)"
echo "Version: $OS_VERSION"
echo "################################################################################"
color_reset
else
color_red
echo "################################################################################"
echo "ERROR: Unsupported or unknown Linux distribution."
echo "Detected: ID=$OS_ID, ID_LIKE=${OS_LIKE:-empty}"
echo "################################################################################"
color_reset
exit 1
fi
##########################
# Desktop Environment Detection / Selection
##########################
echo
color_yellow
echo "################################################################"
echo "################### Desktop Environment Selection"
echo "################################################################"
color_reset
echo
DE_RAW="${XDG_CURRENT_DESKTOP:-${DESKTOP_SESSION:-}}"
DE=""
case "${DE_RAW,,}" in
*xfce*) DE="xfce" ;;
*plasma*|*kde*) DE="plasma" ;;
*gnome*) DE="gnome" ;;
""|none) DE="" ;;
esac
if [[ -n "$DE" ]]; then
echo
color_cyan
echo "################################################################################"
echo "Detected Desktop Environment: $DE (${DE_RAW})"
echo "################################################################################"
color_reset
else
echo
echo "No Desktop Environment detected. Select one to install:"
while true; do
echo " 1) XFCE"
echo " 2) Plasma"
echo " 3) GNOME"
echo " x) None (default)"
# Added timeout to avoid hanging
if ! read -t 15 -rp "Enter choice [1/2/3/x] (default: x): " choice; then
choice="x"
fi
case "${choice,,}" in
1) DE="xfce"; break ;;
2) DE="plasma"; break ;;
3) DE="gnome"; break ;;
x|"") DE="none"; break ;;
*) echo "Invalid option. Please enter 1, 2, 3, or x." ;;
esac
done
echo
color_cyan
echo "################################################################################"
echo "Selected Desktop Environment: $DE"
echo "################################################################################"
color_reset
fi
##########################
# Tiling Window Manager Selection
##########################
echo
color_yellow
echo "################################################################"
echo "################### Tiling WM Selection"
echo "################################################################"
color_reset
echo
while true; do
echo
echo "Select a tiling window manager:"
echo " 1) CHADWM"
echo " 2) Hyprland"
echo " 3) Niri"
echo " x) None (default)"
if ! read -t 15 -rp "Enter choice [1/2/3/x] (default: x): " choice; then
choice="x"
fi
case "${choice,,}" in
1) TWM="chadwm"; break ;;
2) TWM="hyprland"; break ;;
3) TWM="niri"; break ;;
x|"") TWM="none"; break ;;
*) echo "Invalid option. Please enter 1, 2, 3 or x." ;;
esac
done
echo
color_cyan
echo "################################################################################"
echo "Selected Tiling WM: $TWM"
echo "################################################################################"
color_reset
##########################
# Installation Level Selection
##########################
echo
color_yellow
echo "################################################################"
echo "################### Installation Level Selection"
echo "################################################################"
color_reset
echo
while true; do
echo
echo "Select installation level:"
echo " 1) minimal"
echo " 2) full"
echo " 3) workstation"
echo " 4) server"
if ! read -t 15 -rp "Enter choice [1/2/3/4] (default: 1): " choice; then
choice="1"
fi
case "$choice" in
1|"") INSTALL_LEVEL="minimal"; break ;;
2) INSTALL_LEVEL="full"; break ;;
3) INSTALL_LEVEL="workstation"; break ;;
4) INSTALL_LEVEL="server"; break ;;
*) echo "Invalid option. Please enter 1, 2, 3, or 4." ;;
esac
done
echo
color_cyan
echo "################################################################################"
echo "Selected Installation Level: $INSTALL_LEVEL"
echo "################################################################################"
color_reset
##########################
# Export selections for OS script
##########################
export DETECTED_OS="$OS"
export DETECTED_DE="$DE_RAW"
export SELECTED_DE="$DE"
export SELECTED_TWM="$TWM"
export INSTALL_LEVEL
##########################
# Determine OS script
##########################
case "$OS" in
debian) OS_SCRIPT="./${SCRIPT_VERSION}/debian.sh" ;;
ubuntu) OS_SCRIPT="./${SCRIPT_VERSION}/ubuntu.sh" ;;
arch) OS_SCRIPT="./${SCRIPT_VERSION}/arch.sh" ;;
fedora) OS_SCRIPT="./${SCRIPT_VERSION}/fedora.sh" ;;
*)
color_red
echo
echo "No OS script available for $OS"
color_reset
exit 1
;;
esac
##########################
# Preflight check & run
##########################
if [[ ! -f "$OS_SCRIPT" ]]; then
color_red
echo
echo "ERROR: OS script not found: $OS_SCRIPT"
color_reset
exit 1
fi
if [[ ! -x "$OS_SCRIPT" ]]; then
chmod +x "$OS_SCRIPT"
fi
echo
color_cyan
echo "Running OS script: $OS_SCRIPT"
color_reset
bash "$OS_SCRIPT" || {
color_red
echo
echo "ERROR: OS script failed: $OS_SCRIPT"
color_reset
exit 1
}
echo
color_yellow
echo "################################################################"
echo "End Detection"
echo "################################################################"
color_reset
-144
View File
@@ -1,144 +0,0 @@
#!/bin/bash
set -euo pipefail
# Map the exported variables to your local names with fallbacks to satisfy set -u
OS="${DETECTED_OS:-fedora}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-full}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo
color_cyan "Starting Fedora Full setup..."
echo
#------------------------------------------
# Helper functions
#------------------------------------------
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
# Run minimal first
source "$SCRIPT_DIR/fedora-minimal.sh"
# Add extra packages
# install_packages
# temp disabled packages
pause_if_debug
# install SDDM-theme
color_yellow "Installing SDDM Theme"
GIT_DIR="$HOME/git"
REPO_DIR="$GIT_DIR/SilentSDDM"
REPO_URL="https://github.com/uiriansan/SilentSDDM"
mkdir -p "$GIT_DIR"
if [ -d "$REPO_DIR/.git" ]; then
echo "SilentSDDM already exists. Updating repository..."
cd "$REPO_DIR" && git pull --rebase
else
echo "Cloning SilentSDDM..."
git clone -b main --depth=1 "$REPO_URL" "$REPO_DIR"
fi
echo "Running installer..."
# Move into the directory safely
cd "$REPO_DIR" || {
color_red "Error: Failed to enter $REPO_DIR"
exit 1
}
chmod +x install.sh
# Temporarily disable pipefail so SIGPIPE doesn't register as a fatal script crash
set +o pipefail
yes | ./install.sh
INSTALL_STATUS=$?
# Instantly restore pipefail for the remaining application scripts
set -o pipefail
# Verify the installer script's actual status code
if [ $INSTALL_STATUS -ne 0 ]; then
color_red "Error: SDDM theme installer encountered a genuine runtime issue."
exit 1
fi
color_green "SDDM theme installer completed successfully!"
pause_if_debug
# replace bashrc
color_yellow "making backup of bashrc"
sudo cp -v /etc/skel/.bashrc /etc/skel/.bashrc.starburst
pause_if_debug
# Add workstation repo
sudo dnf install -y fedora-workstation-repositories
color_cyan "Install Office packages"
install_packages libreoffice
pause_if_debug
color_cyan "Install editors packages"
# temp removed packages:
# sublime-text-4
flatpak install -y flathub com.vscodium.codium
pause_if_debug
color_cyan "Install internet packages"
sudo dnf config-manager setopt google-chrome.enabled=1
install_packages google-chrome-stable
# temp removed packages
# discord firefox insync brave-bin
pause_if_debug
color_cyan "Install theming packages"
# variety
pause_if_debug
color_cyan "Install media packages"
install_packages mpv flameshot
# temp removed packages
# vlc gimp inkscape spotify lollypop
pause_if_debug
color_cyan "Install shell packages"
install_packages zsh zsh-syntax-highlighting
# temp removed packages
# fish oh-my-zsh-git zsh-completions
pause_if_debug
color_cyan "Install system-tools"
install_packages @development-tools wget cmake ninja-build pkgconf-pkg-config
pause_if_debug
color_cyan "Install tools"
install_packages system-config-printer system-config-printer-applet system-config-printer-libs ripgrep meld btop htop
# temp removed packages
# wttr
pause_if_debug
# End of script
color_green "Full setup completed."
###### TODO
### autostart flameshot tray icon
### autostart insync tray icon
### autostart volumeicon
### autostart clipboard manager
### set google chrome as default browser
-138
View File
@@ -1,138 +0,0 @@
#!/bin/bash
set -euo pipefail
# Map the exported variables to your local names with fallbacks to satisfy set -u
OS="${DETECTED_OS:-fedora}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo
color_cyan "Starting Fedora Minimal setup..."
echo
#------------------------------------------
# Helper functions
#------------------------------------------
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
remove_packages() {
local packages_to_remove=()
for pkg in "$@"; do
if is_package_installed "$pkg"; then
packages_to_remove+=("$pkg")
fi
done
if [ ${#packages_to_remove[@]} -gt 0 ]; then
color_cyan "Removing packages: ${packages_to_remove[*]}"
sudo dnf remove -y "${packages_to_remove[@]}"
fi
}
#------------------------------------------
# 1. Base Dependencies & Repos
#------------------------------------------
color_cyan; echo "Installing base dependencies..."
# dnf-plugins-core is required for COPR
install_packages dnf-plugins-core wget
pause_if_debug
#------------------------------------------
# 2. Main Package Installation
#------------------------------------------
color_yellow; echo "Installing essential tools..."
# 1. Install universal base packages (minus the polkit agent)
install_packages \
fastfetch bash-completion alacritty \
hwinfo lshw duf chrony \
man-db tree xdg-user-dirs rsync time bat \
thunar thunar-archive-plugin thunar-volman \
baobab gvfs-smb hddtemp squashfs-tools \
zip gzip p7zip unace unrar xarchiver chromium \
feh gnome-font-viewer dconf-editor hardinfo2 lsb_release \
powertop inxi acpi plocate nm-connection-editor \
python3-pylint qt6-qtsvg qt6-qtvirtualkeyboard qt6-qtmultimedia \
arandr catfish galculator NetworkManager network-manager-applet \
NetworkManager-openvpn numlockx pipewire pipewire-alsa pipewire-pulse \
wireplumber pavucontrol playerctl gparted xfce4-pulseaudio-plugin xfce4-clipman-plugin
# temp disabled packages
# xfce4-indicator-plugin
pause_if_debug
# 2. Inject the correct Polkit agent & PeaZip based on environment
color_cyan; echo "Tailoring toolkits for $DE / $TWM..."
if [[ "$DE" == "plasma" || "$TWM" == "hyprland" ]]; then
install_packages polkit-kde-agent-1 peazip-common peazip-qt6
else
# XFCE, GNOME, Niri, CHADWM (Uses lightweight generic toolkits)
install_packages xfce-polkit peazip-common peazip-gtk3
fi
if ! command -v starship &> /dev/null; then
color_cyan; echo "Installing Starship shell prompt..."
curl -sS https://starship.rs/install.sh | sh -s -- -y
fi
pause_if_debug
#------------------------------------------
# 3. Fonts (RobotoMono Nerd Font)
#------------------------------------------
FONT_DIR="$HOME/.local/share/fonts"
DOWNLOAD_NAME="RobotoMono"
if ! find "$FONT_DIR" -name "*RobotoMonoNerdFont*" | grep -q .; then
color_yellow; echo "Installing ${DOWNLOAD_NAME} Nerd Font..."
mkdir -p "$FONT_DIR"
FONT_ZIP="/tmp/${DOWNLOAD_NAME}.zip"
curl -L "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${DOWNLOAD_NAME}.zip" -o "$FONT_ZIP"
unzip -oq "$FONT_ZIP" -d "$FONT_DIR"
fc-cache -fv
rm "$FONT_ZIP"
color_green; echo "${DOWNLOAD_NAME} installed."
else
color_yellow; echo "RobotoMono Nerd Font already installed."
fi
pause_if_debug
#------------------------------------------
# 4. Enable Services
#------------------------------------------
color_cyan "Enabling services..."
sudo systemctl enable --now fstrim.timer
sudo systemctl enable --now chronyd || true
# Ensure NetworkManager manages all interfaces
color_yellow "Ensuring NetworkManager service is enabled and running..."
sudo systemctl enable --now NetworkManager
color_yellow "Setting NetworkManager to globally manage all devices..."
sudo tee /etc/NetworkManager/conf.d/10-globally-managed-devices.conf > /dev/null <<'EOF'
[ifupdown]
managed=true
[keyfile]
unmanaged-devices=
EOF
color_yellow "Restarting NetworkManager service..."
sudo systemctl restart NetworkManager
color_yellow "Waiting for NetworkManager to reconnect..."
sleep 15
pause_if_debug
# Enable pipewire
systemctl --user enable pipewire pipewire-pulse wireplumber
pause_if_debug
color_green "Fedora Minimal setup completed."
-109
View File
@@ -1,109 +0,0 @@
#!/bin/bash
set -euo pipefail
# Map the exported variables to your local names with fallbacks to satisfy set -u
OS="${DETECTED_OS:-fedora}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-full}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo
color_cyan "Starting Fedora Full setup..."
echo
#------------------------------------------
# Helper functions
#------------------------------------------
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
detect_de() {
# Check if a desktop session is currently running or XFCE is available
if [ "${XDG_CURRENT_DESKTOP:-}" ]; then
echo "${XDG_CURRENT_DESKTOP,,}" # lowercase the output
elif command -v xfce4-session >/dev/null 2>&1; then
echo "xfce"
else
echo ""
fi
}
detect_display_manager() {
# Fedora/Systemd way to check the active DM symlink
if [ -L /etc/systemd/system/display-manager.service ]; then
basename "$(readlink /etc/systemd/system/display-manager.service)" | sed 's/\.service//'
else
echo ""
fi
}
switch_display_manager() {
local target_dm="$1"
local current_dm
current_dm=$(detect_display_manager)
if [[ "$current_dm" != "$target_dm" ]]; then
if [[ -n "$current_dm" ]]; then
color_yellow "Disabling existing display manager: $current_dm"
sudo systemctl disable "$current_dm"
fi
color_yellow "Enabling $target_dm..."
sudo systemctl enable "$target_dm"
fi
sudo systemctl set-default graphical.target
}
#------------------------------------------
# Start installation
#------------------------------------------
color_yellow "Starting Niri setup..."
CURRENT_DE="$(detect_de)"
CURRENT_DM="$(detect_display_manager)"
# Add Terra repo
sudo dnf install -y --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
pause_if_debug
# Core components for Niri & Noctalia setup
NIRI_PACKAGES=(niri fuzzel swaybg swaylock noctalia-shell)
if [[ -z "$CURRENT_DE" || "$CURRENT_DE" == "none" || "$CURRENT_DE" == "sway" ]]; then
color_cyan "No Desktop Environment detected. Installing Niri + Noctalia Shell..."
# 1. Add the repo first
add_terra_repo
# 2. Install everything
install_packages sddm "${NIRI_PACKAGES[@]}"
switch_display_manager "sddm"
color_green "Niri, Noctalia, and SDDM installed successfully."
else
color_cyan "Detected existing Desktop Environment: $CURRENT_DE"
# Always install the window manager packages
install_packages "${NIRI_PACKAGES[@]}"
if [[ "$CURRENT_DM" == "lightdm" ]]; then
color_yellow "LightDM is currently active. Replacing with SDDM..."
# Fedora equivalent to purge lightdm safely
sudo dnf remove -y lightdm lightdm-gtk
install_packages sddm
switch_display_manager "sddm"
color_green "LightDM removed and replaced with SDDM."
else
color_cyan "Current display manager: ${CURRENT_DM:-none}. Leaving it to handle Niri login sessions."
fi
fi
pause_if_debug
# End of script
color_green "Niri / SDDM setup completed."
-167
View File
@@ -1,167 +0,0 @@
#!/bin/bash
set -euo pipefail
# Map the exported variables to your local names with fallbacks to satisfy set -u
OS="${DETECTED_OS:-fedora}"
DE="${SELECTED_DE:-xfce}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo
color_cyan "Starting Fedora XFCE setup..."
echo
#------------------------------------------
# Helper functions
#------------------------------------------
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
detect_de() {
echo "${XDG_CURRENT_DESKTOP:-${DESKTOP_SESSION:-}}"
}
detect_display_manager() {
if systemctl is-active --quiet sddm; then
echo "sddm"
elif systemctl is-active --quiet lightdm; then
echo "lightdm"
elif systemctl is-active --quiet gdm; then
echo "gdm"
else
echo "none"
fi
}
enable_graphical_target() {
sudo systemctl set-default graphical.target
}
#------------------------------------------
# Main Execution Flow
#------------------------------------------
echo
color_yellow "Starting XFCE installation..."
CURRENT_DE="$(detect_de)"
CURRENT_DM="$(detect_display_manager)"
if [[ -z "$CURRENT_DE" || "$CURRENT_DE" == "none" ]]; then
color_cyan "No Desktop Environment detected. Installing XFCE (light setup with SDDM)..."
# 1. Install core XFCE desktop components + SDDM
install_packages sddm xfce4-session xfce4-settings xfwm4 xfce4-panel xfdesktop Thunar xorg-x11-xinit xorg-x11-server-Xorg xhost
# 2. Install the XFCE core plugins safely via DNF group/virtual syntax
install_packages @xfce-extra-plugins
enable_graphical_target
sudo systemctl enable sddm
color_green "XFCE with SDDM installed successfully. You can reboot now to start XFCE."
else
color_cyan "Detected existing Desktop Environment: $CURRENT_DE"
if [[ "$CURRENT_DM" == "lightdm" ]]; then
color_yellow "LightDM is currently active. Replacing with SDDM..."
sudo systemctl disable lightdm
sudo dnf remove -y lightdm lightdm-gtk-greeter
install_packages sddm
sudo systemctl enable sddm
enable_graphical_target
color_green "LightDM removed and replaced with SDDM."
else
color_cyan "Current display manager: ${CURRENT_DM}. Leaving unchanged."
fi
fi
pause_if_debug
#------------------------------------------
# XFCE-specific configuration
#------------------------------------------
if [[ "${DE}" == "xfce" || "${DDE}" == "xfce" ]]; then
echo
color_cyan "Applying XFCE defaults: fonts, browser, and terminal..."
# Ensure xfconf-query exists (for XFCE settings)
if ! command -v xfconf-query >/dev/null 2>&1; then
color_yellow "xfconf-query not found — installing xfce4-settings..."
install_packages xfce4-settings
fi
pause_if_debug
# Set fonts via xfconf-query
if command -v xfconf-query >/dev/null 2>&1; then
# Interface font (UI)
xfconf-query -c xsettings -p /Gtk/FontName -s "RobotoMono Nerd Font Regular 10" || true
# Monospace font (terminals, editors)
xfconf-query -c xsettings -p /Gtk/MonospaceFontName -s "RobotoMono Nerd Font Mono Regular 10" || true
color_green "XFCE fonts updated successfully!"
else
color_yellow "xfconf-query not found — skipping XFCE font config (will apply at first login)."
fi
pause_if_debug
# Set default terminal to Alacritty (Configured unconditionally)
color_cyan "Pre-configuring XFCE default terminal settings for Alacritty..."
# Making sure alacritty is installed
install_packages alacritty
# 1. Force initialize the base XDG/XFCE config hierarchy
mkdir -p "$HOME/.config/xfce4"
mkdir -p "$HOME/.config/menus"
# 2. Configure XFCE's preferred application files
HELPERS_FILE="$HOME/.config/xfce4/helpers.rc"
touch "$HELPERS_FILE"
for entry in TerminalEmulator TerminalEmulatorCommand; do
if grep -q "^${entry}=" "$HELPERS_FILE"; then
sed -i "s|^${entry}=.*|${entry}=alacritty|" "$HELPERS_FILE"
else
echo "${entry}=alacritty" >> "$HELPERS_FILE"
fi
done
# 3. Create the standard XDG MIME association files manually
mkdir -p "$HOME/.config"
MIME_FILE="$HOME/.config/mimeapps.list"
touch "$MIME_FILE"
# Rewrite/initialize the file cleanly with explicit defaults
cat <<EOF > "$MIME_FILE"
[Default Applications]
x-scheme-handler/terminal=alacritty.desktop
user-extension/x-terminal-emulator=alacritty.desktop
EOF
# 4. Pre-seed Xfconf properties directly into the XML tree file structure
# This bypasses xfconf-query entirely and drops settings directly into storage
XFCONF_DIR="$HOME/.config/xfce4/xfconf/xfce-perchannel-xml"
mkdir -p "$XFCONF_DIR"
cat <<EOF > "$XFCONF_DIR/xfce4-session.xml"
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-session" version="1.0">
<property name="general" type="empty">
<property name="TerminalEmulator" type="string" value="alacritty"/>
</property>
</channel>
EOF
color_green "XFCE terminal presets dropped into user skeleton profiles successfully."
fi
pause_if_debug
# End of script
color_green "XFCE / SDDM setup completed."
-182
View File
@@ -1,182 +0,0 @@
#!/bin/bash
set -euo pipefail
# Map the exported variables to your local names with fallbacks to satisfy set -u
OS="${DETECTED_OS:-fedora}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo
color_cyan "Starting Fedora setup..."
echo
color_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL"
#------------------------------------------
# Helper functions
#------------------------------------------
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
remove_packages() {
local packages_to_remove=()
for pkg in "$@"; do
if is_package_installed "$pkg"; then
packages_to_remove+=("$pkg")
fi
done
if [ ${#packages_to_remove[@]} -gt 0 ]; then
color_cyan "Removing packages: ${packages_to_remove[*]}"
sudo dnf remove -y "${packages_to_remove[@]}"
fi
}
#------------------------------------------
# 0. Ensure base is ready for installation
#------------------------------------------
if ! command -v curl >/dev/null 2>&1; then
color_yellow "curl is not installed. Installing..."
install_packages curl
fi
pause_if_debug
#------------------------------------------
# 1. Update and Enable Repos
#------------------------------------------
color_cyan "Optimizing DNF for speed..."
# 1. Increase parallel downloads (allows downloading multiple packages at once)
# 2. Set dnf to set YES as default instead of NO
sudo dnf config-manager setopt max_parallel_downloads=20
sudo dnf config-manager setopt defaultyes=True
color_green "DNF optimized. Refreshing metadata..."
sudo dnf makecache --refresh
color_cyan "Enabling RPM Fusion repositories for Fedora $(rpm -E %fedora)..."
# Define the version variable for readability
FEDORA_VER=$(rpm -E %fedora)
color_yellow "Checking for updates and sources..."
sudo dnf check-update || true
# Check if flatpak is installed, if not, install it
if ! command -v flatpak &> /dev/null; then
color_yellow "Flatpak not found. Installing..."
sudo dnf install -y flatpak
fi
color_cyan "Enabling Flathub..."
# Using --if-not-exists is good practice to prevent errors on re-runs
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo dnf install -y \
"https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VER}.noarch.rpm" \
"https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VER}.noarch.rpm"
color_cyan "Enabling full Flathub support..."
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Update the system
color_gray "Updating the system"
echo
sudo dnf update -y
pause_if_debug
#------------------------------------------
# 3. Detected OS / DE / TWM info
#------------------------------------------
color_yellow "Detected OS / Desktop Environment / Tiling Window Manager"
echo
color_gray "Installing OS-specific packages..."
color_gray "Selected DE: $DE"
color_gray "Selected TWM: $TWM"
color_gray "Installation Level: $INSTALL_LEVEL"
pause_if_debug
#------------------------------------------
# 4. Desktop Environment installation
#------------------------------------------
case "$DE" in
xfce|plasma|gnome)
color_yellow "Preparing to install $DE"
SCRIPT_NAME="$SCRIPT_DIR/${OS}-${DE}.sh"
if [[ -f "$SCRIPT_NAME" ]]; then
color_cyan "Running $SCRIPT_NAME"
source "$SCRIPT_NAME"
else
color_red "Error: $SCRIPT_NAME not found!"
exit 1
fi
;;
none)
color_gray "No Desktop Environment selected, skipping DE installation."
;;
esac
pause_if_debug
#------------------------------------------
# 5. Tiling Window Manager installation
#------------------------------------------
case "$TWM" in
chadwm|hyprland|niri)
color_yellow "Installing $TWM"
SCRIPT_NAME="$SCRIPT_DIR/${OS}-${TWM}.sh"
if [[ -f "$SCRIPT_NAME" ]]; then
color_cyan "Running $SCRIPT_NAME"
source "$SCRIPT_NAME"
else
color_red "Error: $SCRIPT_NAME not found!"
exit 1
fi
;;
none)
color_gray "No tiling window manager selected, skipping TWM installation."
;;
esac
pause_if_debug
#------------------------------------------
# 6. Installation level handling
#------------------------------------------
case "$INSTALL_LEVEL" in
minimal|full|workstation|server)
color_cyan "Installation level: $INSTALL_LEVEL"
SCRIPT_NAME="$SCRIPT_DIR/${OS}-${INSTALL_LEVEL}.sh"
if [[ -f "$SCRIPT_NAME" ]]; then
color_cyan "Running $SCRIPT_NAME"
source "$SCRIPT_NAME"
else
color_red "Error: $SCRIPT_NAME not found!"
exit 1
fi
;;
esac
color_green "Fedora setup complete."
color_red "The installation has finished. A reboot is recommended."
# Reboots are dangerous to automate; we use a shorter timeout and default to No
if read -t 10 -rp "Reboot now? [y/N]: " reboot_choice; then
case "${reboot_choice,,}" in
y|yes)
color_red "Rebooting now."
sudo reboot
;;
*)
color_yellow "Skipping reboot."
exit 0
;;
esac
else
color_yellow "No input detected. Skipping reboot for safety."
exit 0
fi
-305
View File
@@ -1,305 +0,0 @@
#!/bin/bash
set -uo pipefail
#------------------------------------------
# Color helpers (printf-safe, no tput)
#------------------------------------------
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
BLUE='\033[0;34m'
GRAY='\033[0;37m'
BOLD='\033[1m'
RESET='\033[0m'
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED='' GREEN='' YELLOW='' CYAN='' PURPLE='' BLUE='' GRAY='' BOLD='' RESET=''
fi
color_yellow() { printf "%b%s%b\n" "$YELLOW" "$*" "$RESET"; }
color_cyan() { printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
color_red() { printf "%b%s%b\n" "$RED" "$*" "$RESET"; }
color_green() { printf "%b%s%b\n" "$GREEN" "$*" "$RESET"; }
color_gray() { printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
#------------------------------------------
# Debug Flag Initialization (Outside Guard)
#------------------------------------------
# Checks if DEBUG_MODE is already true (passed from parent) or via arguments
if [[ "${DEBUG_MODE:-false}" == "true" || "${1:-}" == "-d" || "${1:-}" == "--debug" ]]; then
export DEBUG_MODE=true
else
export DEBUG_MODE=false
set -e # Enable immediate exit on error only if NOT debugging step-by-step
fi
#------------------------------------------
# Debug Pause Helper (Outside Guard)
#------------------------------------------
pause_if_debug() {
if [[ "${DEBUG_MODE:-false}" == "true" ]]; then
echo
color_yellow "----------------------------------------------------------------"
read -rp "Section complete. Press [Enter] to continue, or [q] to abort: " debug_choice
if [[ "${debug_choice,,}" == "q" ]]; then
color_red "Script aborted by user."
exit 1
fi
color_yellow "----------------------------------------------------------------"
echo
fi
}
# ==========================================
# GUARD WRAPPER START
# ==========================================
# This entire interactive block is skipped if the script is 'sourced'
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
clear # Wipe the terminal history view cleanly for the main menu execution
if [[ "$DEBUG_MODE" == "true" ]]; then
color_red "!!! DEBUG MODE ENABLED !!!"
color_red "The script will pause after each major section."
echo
fi
#------------------------------------------
# Script Version 3.0
#------------------------------------------
echo
color_yellow "----------------------------------------------------------------"
color_yellow "Script version 3.0"
color_yellow "----------------------------------------------------------------"
echo
#------------------------------------------
# OS Detection
#------------------------------------------
echo
color_yellow "----------------------------------------------------------------"
color_yellow "Start OS Detection"
color_yellow "----------------------------------------------------------------"
echo
source /etc/os-release
OS_ID="${ID,,}"
OS_LIKE="${ID_LIKE:-}"
OS_LIKE="${OS_LIKE,,}"
OS_VERSION="${VERSION_ID:-unknown}"
OS_PRETTY="$PRETTY_NAME"
OS=""
case "$OS_ID" in
arch) OS="arch" ;;
debian) OS="debian" ;;
ubuntu) OS="ubuntu" ;;
fedora) OS="fedora" ;;
*)
if [[ "$OS_LIKE" == *"ubuntu"* ]]; then
OS="ubuntu"
elif [[ "$OS_LIKE" == *"arch"* ]]; then
OS="arch"
elif [[ "$OS_LIKE" == *"debian"* ]]; then
OS="debian"
elif [[ "$OS_LIKE" == *"fedora"* || "$OS_LIKE" == *"rhel"* ]]; then
OS="fedora"
fi
;;
esac
if [[ -n "$OS" ]]; then
color_cyan "----------------------------------------------------------------"
color_cyan "Detected OS: $OS_PRETTY"
color_cyan "Version: $OS_VERSION"
color_cyan "----------------------------------------------------------------"
else
color_red "----------------------------------------------------------------"
color_red "ERROR: Unsupported or unknown Linux distribution."
color_red "Detected: ID=$OS_ID ID_LIKE=${OS_LIKE:-empty}"
color_red "----------------------------------------------------------------"
exit 1
fi
pause_if_debug
#------------------------------------------
# Desktop Environment Detection / Selection
#------------------------------------------
echo
color_yellow "----------------------------------------------------------------"
color_yellow "Desktop Environment Selection"
color_yellow "----------------------------------------------------------------"
echo
DE_RAW="${XDG_CURRENT_DESKTOP:-${DESKTOP_SESSION:-}}"
DE=""
case "${DE_RAW,,}" in
*xfce*) DE="xfce" ;;
*plasma*|*kde*) DE="plasma" ;;
*gnome*) DE="gnome" ;;
""|none) DE="" ;;
esac
if [[ -n "$DE" ]]; then
echo
color_cyan "----------------------------------------------------------------"
color_cyan "Detected Desktop Environment: $DE (${DE_RAW:-unknown})"
color_cyan "----------------------------------------------------------------"
else
echo
color_gray "No Desktop Environment detected. Select one to install:"
echo
while true; do
echo " 1) XFCE"
echo " 2) Plasma"
echo " 3) GNOME"
echo " x) None (default)"
if ! read -t 15 -rp "Enter choice [1/2/3/x] (default: x): " choice; then
choice="x"
fi
case "${choice,,}" in
1) DE="xfce"; break ;;
2) DE="plasma"; break ;;
3) DE="gnome"; break ;;
x|"") DE="none"; break ;;
*) echo "Invalid option. Please enter 1, 2, 3, or x." ;;
esac
done
echo
color_cyan "----------------------------------------------------------------"
color_cyan "Selected Desktop Environment: $DE"
color_cyan "----------------------------------------------------------------"
fi
pause_if_debug
#------------------------------------------
# Tiling Window Manager Selection
#------------------------------------------
echo
color_yellow "----------------------------------------------------------------"
color_yellow "Tiling WM Selection"
color_yellow "----------------------------------------------------------------"
echo
while true; do
echo
color_gray "Select a tiling window manager:"
echo
echo " 1) CHADWM"
echo " 2) Hyprland"
echo " 3) Niri"
echo " x) None (default)"
if ! read -t 15 -rp "Enter choice [1/2/3/x] (default: x): " choice; then
choice="x"
fi
case "${choice,,}" in
1) TWM="chadwm"; break ;;
2) TWM="hyprland"; break ;;
3) TWM="niri"; break ;;
x|"") TWM="none"; break ;;
*) echo "Invalid option. Please enter 1, 2, 3 or x." ;;
esac
done
echo
color_cyan "----------------------------------------------------------------"
color_cyan "Selected Tiling WM: $TWM"
color_cyan "----------------------------------------------------------------"
pause_if_debug
#------------------------------------------
# Installation Level Selection
#------------------------------------------
echo
color_yellow "----------------------------------------------------------------"
color_yellow "Installation Level Selection"
color_yellow "----------------------------------------------------------------"
echo
while true; do
echo
color_gray "Select installation level:"
echo
echo " 1) minimal"
echo " 2) full"
if ! read -t 15 -rp "Enter choice [1/2] (default: 1): " choice; then
choice="1"
fi
case "$choice" in
1|"") INSTALL_LEVEL="minimal"; break ;;
2) INSTALL_LEVEL="full"; break ;;
*) echo "Invalid option. Please enter 1 or 2." ;;
esac
done
echo
color_cyan "----------------------------------------------------------------"
color_cyan "Selected Installation Level: $INSTALL_LEVEL"
color_cyan "----------------------------------------------------------------"
pause_if_debug
#------------------------------------------
# Export selections for OS script
#------------------------------------------
export DETECTED_OS="$OS"
export DETECTED_DE="$DE_RAW"
export SELECTED_DE="$DE"
export SELECTED_TWM="$TWM"
export INSTALL_LEVEL
#------------------------------------------
# Determine OS script
#------------------------------------------
case "$OS" in
debian) OS_SCRIPT="./debian/debian.sh" ;;
ubuntu) OS_SCRIPT="./ubuntu/ubuntu.sh" ;;
arch) OS_SCRIPT="./arch/arch.sh" ;;
fedora) OS_SCRIPT="./fedora/fedora.sh" ;;
*)
color_red "No OS script available for $OS"
exit 1
;;
esac
#------------------------------------------
# Preflight check & run (Using source)
#------------------------------------------
if [[ ! -f "$OS_SCRIPT" ]]; then
color_red "ERROR: OS script not found: $OS_SCRIPT"
exit 1
fi
if [[ ! -x "$OS_SCRIPT" ]]; then
chmod +x "$OS_SCRIPT"
fi
echo
color_cyan "Running OS script: $OS_SCRIPT"
# Crucial change: We source the script instead of launching it via 'bash'
source "$OS_SCRIPT" || {
color_red "ERROR: OS script failed: $OS_SCRIPT"
exit 1
}
echo
color_yellow "----------------------------------------------------------------"
color_yellow "End Detection"
color_yellow "----------------------------------------------------------------"
# ==========================================
# GUARD WRAPPER END
# ==========================================
fi
+71
View File
@@ -0,0 +1,71 @@
#!/bin/bash
#set -e
##################################################################################################################
#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
##################################################################################################################
echo
tput setaf 3
echo "################################################################"
echo "################### Start OS Detection"
echo "################################################################"
tput sgr0
echo
# Detect OS and set flags
OS=""
if grep -qi "arch" /etc/os-release; then
OS="arch"
elif grep -qi "debian" /etc/os-release; then
OS="debian"
fi
# If unknown, exit
if [[ -z "$OS" ]]; then
tput setaf 1
echo "################################################################################"
echo "ERROR: Unsupported or unknown Linux distribution."
echo "This script only supports Arch-based or Debian-based systems."
echo "################################################################################"
tput sgr0
exit 1
fi
# Show detected OS
tput setaf 6
echo "################################################################################"
echo "Detected OS: ${OS:-unknown}"
echo "################################################################################"
tput sgr0
if [[ "$OS" == "arch" ]]; then
echo "Running Arch Linux setup steps..."
# your pacman install section goes here
sh 1000-arch-base.sh
fi
if [[ "$OS" == "debian" ]]; then
echo "Running Debian setup steps..."
# your apt install section goes here
bash 1000-debian-base.sh
fi
if [[ -z "$OS" ]]; then
tput setaf 3
echo "Warning: Unknown Linux distribution. Script may not work as expected."
tput sgr0
fi
tput setaf 3
echo "################################################################"
echo "End OS Detection"
echo "################################################################"
tput sgr0
+103
View File
@@ -0,0 +1,103 @@
#!/bin/bash
#set -e
##################################################################################################################
#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
##################################################################################################################
echo
tput setaf 3
echo "################################################################"
echo "################### Start Arch setup"
echo "################################################################"
tput sgr0
echo
# Setting installed_dir to base folder of the git-repository
installed_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Installing chaotic-aur keys and mirrors
pkg_dir="packages"
# Ensure directory exists
if [[ ! -d "$pkg_dir" ]]; then
echo "Directory not found: $pkg_dir"
exit 1
fi
# Install all local packages using pacman
find "$pkg_dir" -maxdepth 1 -name '*.pkg.tar.zst' -print0 | sudo xargs -0 pacman -U --noconfirm
# personal pacman.conf
if [[ ! -f /etc/pacman.conf.starburst ]]; then
echo
tput setaf 2
echo "################################################################################"
echo "Copying /etc/pacman.conf to /etc/pacman.conf.starburst"
echo "################################################################################"
tput sgr0
echo
sudo cp -v /etc/pacman.conf /etc/pacman.conf.starburst
echo
else
echo
tput setaf 2
echo "################################################################################"
echo "Backup already exists: /etc/pacman.conf.starburst"
echo "################################################################################"
tput sgr0
echo
fi
sudo cp -v $installed_dir/config-files/pacman.conf /etc/pacman.conf
echo
tput setaf 2
echo "################################################################################"
echo "Updating the system - sudo pacman -Syyu"
echo "################################################################################"
tput sgr0
echo
sudo pacman -Syyu --noconfirm
echo
tput setaf 3
echo "################################################################"
echo "################### fix missing console font"
echo "################################################################"
tput sgr0
echo
if grep -q FONT= /etc/vconsole.conf; then
echo
tput setaf 2
echo "################################################################"
echo "################### FONT is already set in /etc/vconsole.conf"
echo "################################################################"
tput sgr0
echo
else
tput setaf 2
echo "################################################################"
echo "################### FONT added to /etc/vconsole.conf"
echo "################################################################"
tput sgr0
echo 'FONT=gr737c-8x14' | sudo tee -a /etc/vconsole.conf
fi
sh 1010-select-desktop.sh
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
#set -e
##################################################################################################################
#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
##################################################################################################################
echo
tput setaf 3
echo "################################################################"
echo "################### Start Debian setup"
echo "################################################################"
tput sgr0
echo
# Setting installed_dir to base folder of the git-repository
installed_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Installing chaotic-aur keys and mirrors
pkg_dir="packages"
# Ensure directory exists
if [[ ! -d "$pkg_dir" ]]; then
echo "Directory not found: $pkg_dir"
exit 1
fi
echo
tput setaf 2
echo "################################################################################"
echo "Updating the system - sudo apt update"
echo "################################################################################"
tput sgr0
echo
sudo apt update && sudo apt full-upgrade -y
tput setaf 3
echo "################################################################"
echo "End current choices"
echo "################################################################"
tput sgr0
sh 1010-select-desktop.sh
+181
View File
@@ -0,0 +1,181 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
if grep -qi "arch" /etc/os-release; then
OS="arch"
elif grep -qi "debian" /etc/os-release; then
OS="debian"
else
echo "Unsupported OS. Exiting."
exit 1
fi
echo
tput setaf 3
echo "################################################################"
echo "################### Select Desktop Environment / Window Manager"
echo "################################################################"
tput sgr0
echo
echo
tput setaf 3
echo "########################################################################"
echo "Which desktop environment do you want to install?"
echo "Choose one of the following options:"
echo
echo "1) XFCE4 minimal"
echo "2) XFCE4 full"
echo "3) XFCE4 workstation"
echo "4) Plasma minimal"
echo "5) Plasma full"
echo "X) None"
echo "########################################################################"
tput sgr0
echo
read -r -p "Enter the number of your choice: " choice
case "$choice" in
1)
touch /tmp/install-xfce4-minimal
;;
2)
touch /tmp/install-xfce4-full
;;
3)
touch /tmp/install-xfce4-workstation
;;
4)
touch /tmp/install-plasma-minimal
;;
5)
touch /tmp/install-plasma-full
;;
[Xx])
echo "No desktop environment will be installed."
;;
*)
tput setaf 1
echo "Invalid choice. Exiting."
tput sgr0
exit 1
;;
esac
echo
tput setaf 3
echo "########################################################################"
echo "Would you like to install an additional Tiling Window Manager?"
echo "Choose one of the following options:"
echo
echo "1) CHADWM"
echo "2) Hyprland (not possible on VM)"
echo "X) None"
echo "########################################################################"
tput sgr0
echo
read -p "Enter the number of your choice: " choice
case "$choice" in
1)
touch /tmp/install-chadwm
;;
2)
touch /tmp/install-hyprland
;;
[Xx])
echo "No desktop environment will be installed."
;;
*)
tput setaf 1
echo "Invalid choice. Exiting."
tput sgr0
exit 1
;;
esac
tput setaf 3
echo "################################################################"
echo "Starting installation of chosen Desktop Environment"
echo "################################################################"
tput sgr0
if [ -f /tmp/install-xfce4-minimal ]; then
bash 1020-$OS*
bash 1030-$OS*
bash 1040-$OS-*
bash 1110-$OS*
bash 1120-$OS*
fi
if [ -f /tmp/install-xfce4-full ]; then
bash 1020-$OS*
bash 1030-$OS*
bash 1040-$OS-*
bash 1110-$OS-xfce*
bash 1120-$OS-xfce*
bash 1130-$OS-xfce*
fi
if [ -f /tmp/install-xfce4-workstation ]; then
bash 1020-$OS-*
bash 1030-$OS-*
bash 1040-$OS-*
bash 1110-$OS-xfce*
bash 1120-$OS-xfce*
bash 1130-$OS-xfce*
bash 1140-$OS-xfce*
fi
if [ -f /tmp/install-plasma-minimal ]; then
bash 1110-$OS-plasma-minimal*
fi
if [ -f /tmp/install-plasma-full ]; then
bash 1110-$OS-plasma-minimal*
bash 1110-$OS-plasma-full*
fi
# installation of Tiling Window Managers
if [ -f /tmp/install-chadwm ]; then
bash 1200-$OS-chadwm*
fi
if [ -f /tmp/install-hyprland ]; then
bash 1120-$OS-hyprland*
fi
tput setaf 3
echo "################################################################"
echo "End Arch setup"
echo "################################################################"
tput sgr0
tput setaf 3
echo "################################################################"
echo "Cleaning up"
echo "################################################################"
tput sgr0
rm -f /tmp/install-*
### Run final scripts
#sh 9990-skel.sh
### DONE
+123
View File
@@ -0,0 +1,123 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 3
echo "################################################################"
echo "################### Remove unwanted packages"
echo "################################################################"
tput sgr0
echo
tput setaf 1;
echo "###############################################################################"
echo "### - KEEP LINUX KERNEL GET RID OF THE OTHER KERNELS"
echo "### - GET RID OF BROADCOM AND REALTEK DRIVERS"
echo "### - GET RID OF CONKYS"
echo "###############################################################################"
tput sgr0
#######broadcom and realtek
sudo pacman -Rs broadcom-wl-dkms r8168-dkms rtl8821cu-morrownr-dkms-git --noconfirm
# Ensure at least one kernel remains
if pacman -Qi linux &> /dev/null && pacman -Qi linux-headers &> /dev/null; then
# Define all the kernels and their headers you want to remove
KERNELS_TO_REMOVE=(
linux-lts-headers linux-lts
linux-zen-headers linux-zen
linux-hardened-headers linux-hardened
linux-rt-headers linux-rt
linux-rt-lts-headers linux-rt-lts
linux-cachyos-headers linux-cachyos
linux-xanmod-headers linux-xanmod
)
remove_package() {
local package=$1
# Check if the package is installed
if pacman -Q $package &> /dev/null; then
echo "$package is installed. Removing..."
sudo pacman -Rns --noconfirm $package
else
echo "$package is not installed."
fi
}
# Loop over the array and remove each kernel package
for kernel in "${KERNELS_TO_REMOVE[@]}"; do
remove_package "$kernel"
done
else
echo "Cannot proceed: At least one kernel must remain installed."
fi
#######conkys
# Array of packages to check
packages=("conky-lua-archers" "arcolinux-conky-collection-git" "arcolinux-conky-collection-plasma-git")
# Function to check if a package is installed
is_package_installed() {
if pacman -Q "$1" &> /dev/null; then
echo "Package $1 is installed."
return 0 # Success
else
echo "Package $1 is not installed."
return 1 # Failure
fi
}
# Iterate over each package in the array
for package in "${packages[@]}"; do
if is_package_installed "$package"; then
echo "Removing $package..."
sudo pacman -Rns "$package" --noconfirm
else
echo "$package is not installed, no need to remove."
fi
echo
echo "########################"
echo "Double checking $package"
echo "########################"
echo
if ! is_package_installed "$package"; then
echo "$package is not installed!"
else
echo "$package is still installed. Check manually why not."
fi
done
echo
tput setaf 3
echo "########################################################################"
echo "######## Removing the drivers"
echo "########################################################################"
tput sgr0
echo
sudo pacman -Rs --noconfirm xf86-video-amdgpu --noconfirm
sudo pacman -Rs --noconfirm xf86-video-ati --noconfirm
sudo pacman -Rs --noconfirm xf86-video-fbdev --noconfirm
sudo pacman -Rs --noconfirm xf86-video-nouveau --noconfirm
sudo pacman -Rs --noconfirm xf86-video-openchrome --noconfirm
sudo pacman -Rs --noconfirm xf86-video-vesa --noconfirm
sudo systemctl disable tlp.service
sudo pacman -Rs tlp --noconfirm
sudo pacman -Rs vim vim-runtime --noconfirm
+73
View File
@@ -0,0 +1,73 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 3
echo "################################################################"
echo "################### Remove unwanted packages"
echo "################################################################"
tput sgr0
echo
tput setaf 1;
echo "###############################################################################"
echo "### - KEEP LINUX KERNEL GET RID OF THE OTHER KERNELS"
echo "### - GET RID OF BROADCOM AND REALTEK DRIVERS"
echo "###############################################################################"
tput sgr0
read -n1 -r -p "Press any key to continue..." key
echo
echo "############################################################"
echo " Remaining installed kernels:"
echo "############################################################"
# List installed kernel images
dpkg -l | grep '^ii' | grep 'linux-image-[0-9]' | awk '{print $2, $3}'
echo
echo "Currently running kernel: $(uname -r)"
read -n1 -r -p "Press any key to continue..." key
echo
tput setaf 3
echo "########################################################################"
echo "######## Removing the drivers"
echo "########################################################################"
tput sgr0
echo
sudo apt-get purge -y \
xserver-xorg-video-amdgpu \
xserver-xorg-video-ati \
xserver-xorg-video-fbdev \
xserver-xorg-video-nouveau \
xserver-xorg-video-openchrome \
xserver-xorg-video-vesa
sudo apt-get autoremove -y
read -n1 -r -p "Press any key to continue..." key
sudo systemctl disable --now tlp.service
sudo apt-get purge -y tlp
sudo apt-get autoremove -y
read -n1 -r -p "Press any key to continue..." key
sudo apt-get purge -y vim vim-runtime vim-common vim-tiny
sudo apt-get autoremove -y
+108
View File
@@ -0,0 +1,108 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 3
echo "################################################################"
echo "################### Start Arch setup"
echo "################################################################"
tput sgr0
echoþ
echo
tput setaf 2
echo "################################################################################"
echo "Installing much needed software"
echo "################################################################################"
tput sgr0
echo
#firmwares
sudo pacman -S --noconfirm --needed aic94xx-firmware linux-firmware-qlogic upd72020x-fw wd719x-firmware mkinitcpio-firmware
#fonts
sudo pacman -S --noconfirm --needed font-manager adobe-source-sans-fonts noto-fonts ttf-bitstream-vera ttf-dejavu ttf-droid ttf-hack ttf-inconsolata ttf-liberation ttf-roboto ttf-roboto-mono ttf-ubuntu-font-family terminus-font awesome-terminal-fonts ttf-jetbrains-mono-nerd
#tools
sudo pacman -S --noconfirm --needed wget curl nano fastfetch lolcat bash-completion starship alacritty hwinfo lshw reflector expac betterlockscreen pamac-aur avahi
if [ ! -f /usr/bin/duf ]; then
sudo pacman -S --noconfirm --needed duf
fi
sudo pacman -S --noconfirm --needed man-db man-pages pacmanlogviewer paru-git yay-git thunar thunar-archive-plugin thunar-volman tree xdg-user-dirs polkit-gnome rate-mirrors rsync time bat ntp nss-mdns
#disk-tools
sudo pacman -S --noconfirm --needed baobab gvfs-smb hddtemp squashfs-tools
#sudo pacman -S --noconfirm --needed gvfs-dnssd the_silver_searcher gnome-disk-utility
#archive-managers
sudo pacman -S --noconfirm --needed zip gzip p7zip unace unrar unzip file-roller
#theming
sudo pacman -S --noconfirm --needed bibata-cursor-theme-bin feh
#sudo pacman -S --noconfirm --needed breeze-icons sardi-flat-colora-variations-icons-git
#enable services
sudo systemctl enable avahi-daemon.service
sudo systemctl enable ntpd.service
#Run service that will discard unused blocks on mounted filesystems. This is useful for solid-state drives (SSDs) and thinly-provisioned storage.
echo
echo "Enable fstrim timer"
sudo systemctl enable fstrim.timer
echo
echo "################################################################"
echo "Getting latest /etc/nsswitch.conf"
echo "################################################################"
echo
sudo cp /etc/nsswitch.conf /etc/nsswitch.conf.bak
sudo wget https://raw.githubusercontent.com/yurikuit/nemesis/refs/heads/main/Personal/settings/nsswitch/nsswitch.conf -O $workdir/etc/nsswitch.conf
echo
tput setaf 3
echo "########################################################################"
echo "Detecting virtualization platform..."
echo "########################################################################"
tput sgr0
echo
virt_type=$(systemd-detect-virt)
case "$virt_type" in
kvm)
echo "Detected KVM. Installing qemu-guest-agent..."
sudo pacman -S --noconfirm --needed qemu-guest-agent spice-vdagent
sudo systemctl enable qemu-guest-agent.service
;;
oracle)
echo "Detected VirtualBox. Installing virtualbox-guest-utils..."
sudo pacman -S --noconfirm --needed virtualbox-guest-utils
sudo systemctl enable vboxservice.service
;;
none)
echo "No virtualization detected. Skipping guest utilities."
;;
*)
echo "Virtualization detected: $virt_type, but no install routine defined."
;;
esac
tput setaf 3
echo "################################################################"
echo "End base setup"
echo "################################################################"
tput sgr0
+123
View File
@@ -0,0 +1,123 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 3
echo "################################################################"
echo "################### Start Arch setup"
echo "################################################################"
tput sgr0
echoþ
echo
tput setaf 2
echo "################################################################################"
echo "Installing much needed software"
echo "################################################################################"
tput sgr0
echo
#firmwares
sudo apt-get install -y dkms linux-headers-$(uname -r)
read -n1 -r -p "Press any key to continue..." key
#fonts
sudo apt install -y font-manager adobe-source-sans-fonts noto-fonts ttf-bitstream-vera ttf-dejavu ttf-droid ttf-hack ttf-inconsolata ttf-liberation ttf-roboto ttf-roboto-mono ttf-ubuntu-font-family terminus-font awesome-terminal-fonts ttf-jetbrains-mono-nerd
read -n1 -r -p "Press any key to continue..." key
#tools
sudo apt install -y wget curl nano fastfetch lolcat bash-completion starship alacritty hwinfo lshw reflector expac betterlockscreen pamac-aur avahi
if [ ! -f /usr/bin/duf ]; then
sudo apt install -y duf
fi
sudo apt install -y man-db man-pages thunar thunar-archive-plugin thunar-volman tree xdg-user-dirs polkit-gnome rate-mirrors rsync time bat ntp nss-mdns
read -n1 -r -p "Press any key to continue..." key
#disk-tools
sudo apt install -y gvfs-smb squashfs-tools
read -n1 -r -p "Press any key to continue..." key
#archive-managers
sudo apt install -y zip gzip p7zip unace unrar unzip file-roller
read -n1 -r -p "Press any key to continue..." key
#theming
sudo apt install -y bibata-cursor-theme-bin feh
read -n1 -r -p "Press any key to continue..." key
#enable services
sudo systemctl enable avahi-daemon.service
sudo systemctl enable ntpd.service
read -n1 -r -p "Press any key to continue..." key
#Run service that will discard unused blocks on mounted filesystems. This is useful for solid-state drives (SSDs) and thinly-provisioned storage.
echo
echo "Enable fstrim timer"
sudo systemctl enable fstrim.timer
read -n1 -r -p "Press any key to continue..." key
echo
echo "################################################################"
echo "Getting latest /etc/nsswitch.conf"
echo "################################################################"
echo
sudo cp /etc/nsswitch.conf /etc/nsswitch.conf.bak
sudo wget https://raw.githubusercontent.com/yurikuit/nemesis/refs/heads/main/Personal/settings/nsswitch/nsswitch.conf -O $workdir/etc/nsswitch.conf
read -n1 -r -p "Press any key to continue..." key
echo
tput setaf 3
echo "########################################################################"
echo "Detecting virtualization platform..."
echo "########################################################################"
tput sgr0
echo
virt_type=$(systemd-detect-virt)
case "$virt_type" in
kvm)
echo "Detected KVM. Installing qemu-guest-agent..."
sudo apt install -y qemu-guest-agent spice-vdagent
sudo systemctl enable qemu-guest-agent.service
;;
oracle)
echo "Detected VirtualBox. Installing virtualbox-guest-utils..."
sudo apt install -y virtualbox-guest-utils
sudo systemctl enable vboxservice.service
;;
none)
echo "No virtualization detected. Skipping guest utilities."
;;
*)
echo "Virtualization detected: $virt_type, but no install routine defined."
;;
esac
tput setaf 3
echo "################################################################"
echo "End base setup"
echo "################################################################"
tput sgr0
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 2
echo "########################################################################"
echo "################### Core software"
echo "########################################################################"
tput sgr0
echo
sudo pacman -S --noconfirm --needed edu-rofi-git
sudo pacman -S --noconfirm --needed edu-rofi-themes-git
# All the software below will be installed on all desktops
sudo pacman -S --noconfirm --needed archlinux-tools dconf-editor devtools hardinfo2 hw-probe logrotate lsb-release powertop inxi acpi plocate most namcap nm-connection-editor python-pylint python-pywal
#sudo pacman -S --noconfirm --needed nomacs
tput setaf 6
echo "##############################################################"
echo "################### $(basename $0) done"
echo "##############################################################"
tput sgr0
echo
+33
View File
@@ -0,0 +1,33 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 2
echo "########################################################################"
echo "################### Core software"
echo "########################################################################"
tput sgr0
echo
# All the software below will be installed on all desktops
sudo apt install -y dconf-editor build-essential hardinfo hw-probe logrotate lsb-release powertop inxi acpi plocate most network-manager-gnome python3-pylint python3-pywal module-assistent
tput setaf 6
echo "##############################################################"
echo "################### $(basename $0) done"
echo "##############################################################"
tput sgr0
echo
+118
View File
@@ -0,0 +1,118 @@
#!/bin/bash
if [ "$DISTRO" = "arch" ]; then
set -euo pipefail
else
set -e
fi
#################################################################
# Colors
# tput setaf 0 = black, 1 = red, 2 = green, 3 = yellow
# tput setaf 4 = blue, 5 = purple, 6 = cyan, 7 = gray
#################################################################
. /etc/os-release
DISTRO=$ID
installed_dir="$(dirname "$(readlink -f "$0")")"
#################################################################
# Debug mode
#################################################################
if [ "${DEBUG:-false}" = true ]; then
echo
echo "------------------------------------------------------------"
echo "Running $(basename "$0")"
echo "------------------------------------------------------------"
echo
read -n 1 -s -r -p "Debug mode is on. Press any key to continue..."
echo
fi
#################################################################
# Functions for package management
#################################################################
install_pkgs() {
case "$DISTRO" in
arch)
sudo pacman -S --noconfirm --needed "$@"
;;
debian|ubuntu)
sudo apt-get update
sudo apt-get install --no-install-recommends -y "$@"
;;
esac
}
remove_pkgs() {
case "$DISTRO" in
arch)
sudo pacman -Rs --noconfirm "$@"
;;
debian|ubuntu)
sudo apt-get remove -y "$@"
;;
esac
}
#################################################################
# Install XFCE and SDDM
#################################################################
echo
tput setaf 2
echo "########################################################################"
echo "################### Install XFCE4 Minimal"
echo "########################################################################"
tput sgr0
echo
if [ "$DISTRO" = "arch" ]; then
install_pkgs xfce4 xfce4-goodies sddm
remove_pkgs mousepad parole xfburn xfce4-screenshooter xfce4-notes-plugin
else
install_pkgs xfce4 xfce4-goodies sddm
remove_pkgs mousepad parole xfburn xfce4-screenshooter xfce4-notes
fi
#################################################################
# Create directories (skel + user)
#################################################################
echo
tput setaf 2
echo "########################################################################"
echo "################### Creating directories"
echo "########################################################################"
tput sgr0
echo
sudo mkdir -p /etc/skel/.config/xfce4/{panel,xfconf}
mkdir -p \
"$HOME"/{.bin,.fonts,.icons,.themes,DATA} \
"$HOME/.local/share/"{icons,themes,applications} \
"$HOME/.config/"{xfce4,autostart,xfce4/xfconf,gtk-{3.0,4.0},variety,fish,neofetch}
#################################################################
# Enable SDDM
#################################################################
echo
tput setaf 6
echo "##############################################################"
echo "################### Enabling SDDM"
echo "##############################################################"
tput sgr0
echo
sudo systemctl disable lightdm.service 2>/dev/null || true
sudo systemctl enable sddm.service
#################################################################
# Done
#################################################################
echo
tput setaf 6
echo "##############################################################"
echo "################### $(basename "$0") done"
echo "##############################################################"
tput sgr0
echo
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 2
echo "########################################################################"
echo "################### Install XFCE4 minimal Core Software"
echo "########################################################################"
tput sgr0
echo
#settings
sudo pacman -S --noconfirm --needed yuku-dot-files-git yuku-sddm-simplicity-git yuku-flat-remix-dark-git
#sudo pacman -S --noconfirm --needed edu-shells-git edu-xfce-git
#theming
sudo pacman -S --noconfirm --needed arc-gtk-theme hardcode-fixer-git qt5-quickcontrols qt5-quickcontrols2
#sudo pacman -S --noconfirm --needed surfn-icons-git
#tools
sudo pacman -S --noconfirm --needed archlinux-logout-git arandr catfish dmenu galculator networkmanager network-manager-applet networkmanager-openvpn numlockx pavucontrol playerctl xcolor xorg-xkill gparted
#sudo pacman -S --noconfirm --needed nitrogen
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
#set -e
##################################################################################################################
#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`)))
echo
tput setaf 2
echo "########################################################################"
echo "################### Install XFCE4 Full Core Software"
echo "########################################################################"
tput sgr0
echo
#internet
sudo pacman -S --noconfirm --needed chromium
echo
tput setaf 2
echo "########################################################################"
echo "################### Configure XFCE4-settings"
echo "########################################################################"
tput sgr0
echo
echo
echo "Setting bashrc"
echo
sudo cp -v /etc/skel/.bashrc /etc/skel/.bashrc.starburst
sudo cp -rf $installed_dir/assets/.bashrc /etc/skel/.bashrc
echo
tput setaf 6
echo "##############################################################"
echo "################### $(basename $0) done"
echo "##############################################################"
tput sgr0
echo
+53
View File
@@ -0,0 +1,53 @@
#!/bin/bash
#set -e
##################################################################################################################################
#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`)))
echo
tput setaf 2
echo "########################################################################"
echo "################### Install XFCE4 Full Workstation"
echo "########################################################################"
tput sgr0
echo
#editors
sudo pacman -S --noconfirm --needed code
#internet
sudo pacman -Rs --noconfirm chromium
sudo pacman -S --noconfirm --needed google-chrome brave-bin insync
#sudo pacman -S --noconfirm --needed discord firefox
#theming
#sudo pacman -S --noconfirm --needed variety
#media
#sudo pacman -S --noconfirm --needed gimp inkscape spotify lollypop
sudo pacman -S --noconfirm --needed flameshot-git vlc
#shells
sudo pacman -S --noconfirm --needed fish zsh zsh-completions zsh-syntax-highlighting oh-my-zsh-git
#system-tools
#sudo pacman -S --noconfirm --needed base-devel
#tools
#sudo pacman -S --noconfirm --needed gitahead-git
sudo pacman -S --noconfirm --needed wttr system-config-printer
sudo pacman -S --noconfirm --needed ripgrep meld btop htop hwinfo lshw reflector expac sublime-text-4
if [ ! -f /usr/bin/duf ]; then
sudo pacman -S --noconfirm --needed duf
fi
sudo pacman -S --noconfirm --needed man-db man-pages pacmanlogviewer paru-git yay-git thunar thunar-archive-plugin thunar-volman tree xdg-user-dirs polkit-gnome rate-mirrors rsync time bat ntp nss-mdns
+119
View File
@@ -0,0 +1,119 @@
#!/bin/bash
#set -e
##################################################################################################################################
#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`)))
##################################################################################################################################
if [ "$DEBUG" = true ]; then
echo
echo "------------------------------------------------------------"
echo "Running $(basename $0)"
echo "------------------------------------------------------------"
echo
read -n 1 -s -r -p "Debug mode is on. Press any key to continue..."
echo
fi
##################################################################################################################################
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
edu-chadwm-git
autorandr
dash
dmenu
eww
feh
gcc
gvfs
lolcat
lxappearance-gtk3
make
picom
polkit-gnome
rofi-lbonn-wayland
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
xorg-xsetroot
)
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
}
echo
tput setaf 2
echo "########################################################################"
echo "################### Let us install Chadwm"
echo "########################################################################"
tput sgr0
echo
func_install_chadwm
echo
tput setaf 6
echo "##############################################################"
echo "################### $(basename $0) done"
echo "##############################################################"
tput sgr0
echo
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
#set -e
##################################################################################################################################
#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`)))
##################################################################################################################################
if [ "$DEBUG" = true ]; then
echo
echo "------------------------------------------------------------"
echo "Running $(basename $0)"
echo "------------------------------------------------------------"
echo
read -n 1 -s -r -p "Debug mode is on. Press any key to continue..."
echo
fi
##################################################################################################################################
echo
tput setaf 3
echo "########################################################################"
echo "FINAL SKEL"
echo "Copying all files and folders from /etc/skel to ~"
echo "First we make a backup of .config"
echo "Wait for it ...."
echo "########################################################################"
tput sgr0
echo
cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S)
cp -arf /etc/skel/. ~
echo
tput setaf 6
echo "##############################################################"
echo "################### $(basename $0) done"
echo "##############################################################"
tput sgr0
echo
+326
View File
@@ -0,0 +1,326 @@
### EXPORT ###
export EDITOR='nano'
export VISUAL='nano'
export HISTCONTROL=ignoreboth:erasedups
export PAGER='most'
PS1='[\u@\h \W]\$ '
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
#ignore upper and lowercase when TAB completion
bind "set completion-ignore-case on"
### ALIASES ###
#list
alias ls='ls --color=auto'
alias la='ls -a'
alias ll='ls -alFh'
alias l='ls'
alias l.="ls -A | grep -E '^\.'"
alias listdir="ls -d */ > list"
#pacman
alias sps='sudo pacman -S'
alias spr='sudo pacman -R'
alias sprs='sudo pacman -Rs'
alias sprdd='sudo pacman -Rdd'
alias spqo='sudo pacman -Qo'
alias spsii='sudo pacman -Sii'
# show the list of packages that need this package - depends mpv as example
function_depends() {
search=$(echo "$1")
sudo pacman -Sii $search | grep "Required" | sed -e "s/Required By : //g" | sed -e "s/ /\n/g"
}
alias depends='function_depends'
#fix obvious typo's
alias cd..='cd ..'
## Colorize the grep command output for ease of use (good for log files)##
alias grep='grep --color=auto'
alias egrep='grep -E --color=auto'
alias fgrep='grep -F --color=auto'
#readable output
alias df='df -h'
#setlocale
alias setlocale="sudo localectl set-locale LANG=en_US.UTF-8"
#pacman unlock
alias unlock="sudo rm /var/lib/pacman/db.lck"
alias rmpacmanlock="sudo rm /var/lib/pacman/db.lck"
#arcolinux logout unlock
alias rmlogoutlock="sudo rm /tmp/arcologout.lock"
#which graphical card is working
alias whichvga="/usr/local/bin/arcolinux-which-vga"
#free
alias free="free -mt"
#continue download
alias wget="wget -c"
#userlist
alias userlist="cut -d: -f1 /etc/passwd | sort"
#merge new settings
alias merge="xrdb -merge ~/.Xresources"
# Aliases for software managment
# pacman or pm
alias pacman='sudo pacman --color auto'
alias update='sudo pacman -Syyu'
alias upd='sudo pacman -Syyu'
# paru as aur helper - updates everything
alias pksyua="paru -Syu --noconfirm"
alias upall="paru -Syu --noconfirm"
alias upa="paru -Syu --noconfirm"
#ps
alias psa="ps auxf"
alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e"
#grub update
alias update-grub="sudo grub-mkconfig -o /boot/grub/grub.cfg"
alias grub-update="sudo grub-mkconfig -o /boot/grub/grub.cfg"
#grub issue 08/2022
alias install-grub-efi="sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArcoLinux"
#add new fonts
alias update-fc='sudo fc-cache -fv'
#copy/paste all content of /etc/skel over to home folder - backup of config created - beware
#skel alias has been replaced with a script at /usr/local/bin/skel
#backup contents of /etc/skel to hidden backup folder in home/user
alias bupskel='cp -Rf /etc/skel ~/.skel-backup-$(date +%Y.%m.%d-%H.%M.%S)'
#copy shell configs
alias cb='cp /etc/skel/.bashrc ~/.bashrc && exec bash'
alias cz='cp /etc/skel/.zshrc ~/.zshrc && echo "Copied."'
alias cf='cp /etc/skel/.config/fish/config.fish ~/.config/fish/config.fish && echo "Copied."'
#switch between bash and zsh
alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'"
alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'"
alias tofish="sudo chsh $USER -s /bin/fish && echo 'Now log out.'"
# kill commands
# quickly kill conkies
alias kc='killall conky'
# quickly kill polybar
alias kp='killall polybar'
# quickly kill picom
alias kpi='killall picom'
# hardware info --short
alias hw="hwinfo --short"
# fastfetch --short
alias ff="fastfetch | lolcat"
# audio check pulseaudio or pipewire
alias audio="pactl info | grep 'Server Name'"
# skip integrity check
alias paruskip='paru -S --mflags --skipinteg'
alias yayskip='yay -S --mflags --skipinteg'
alias trizenskip='trizen -S --skipinteg'
# check vulnerabilities microcode
alias microcode='grep . /sys/devices/system/cpu/vulnerabilities/*'
#approximation of how old your hardware is
alias howold="sudo lshw | grep -B 3 -A 8 BIOS"
#check cpu
alias cpu="cpuid -i | grep uarch | head -n 1"
#get fastest mirrors in your neighborhood
alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist"
alias mirrord="sudo reflector --latest 30 --number 10 --sort delay --save /etc/pacman.d/mirrorlist"
alias mirrors="sudo reflector --latest 30 --number 10 --sort score --save /etc/pacman.d/mirrorlist"
alias mirrora="sudo reflector --latest 30 --number 10 --sort age --save /etc/pacman.d/mirrorlist"
#our experimental - best option for the moment
alias mirrorx="sudo reflector --age 6 --latest 20 --fastest 20 --threads 5 --sort rate --protocol https --save /etc/pacman.d/mirrorlist"
alias mirrorxx="sudo reflector --age 6 --latest 20 --fastest 20 --threads 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist"
alias ram='rate-mirrors --allow-root --disable-comments arch | sudo tee /etc/pacman.d/mirrorlist'
alias rams='rate-mirrors --allow-root --disable-comments --protocol https arch | sudo tee /etc/pacman.d/mirrorlist'
#Recent Installed Packages
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
alias riplong="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -3000 | nl"
#Cleanup orphaned packages
alias cleanup='sudo pacman -Rns $(pacman -Qtdq)'
# This will generate a list of explicitly installed packages
alias list="sudo pacman -Qqe"
#This will generate a list of explicitly installed packages without dependencies
alias listt="sudo pacman -Qqet"
# list of AUR packages
alias listaur="sudo pacman -Qqem"
# add > list at the end to write to a file
# install packages from list
# pacman -S --needed - < my-list-of-packages.txt
#clear
alias clean="clear; seq 1 $(tput cols) | sort -R | sparklines | lolcat"
alias cls="clear; seq 1 $(tput cols) | sort -R | sparklines | lolcat"
#search content with ripgrep
alias rg="rg --sort path"
#get the error messages from journalctl
alias jctl="journalctl -p 3 -xb"
#nano for important configuration files
#know what you do in these files
alias npacman="sudo $EDITOR /etc/pacman.conf"
alias ngrub="sudo $EDITOR /etc/default/grub"
alias nconfgrub="sudo $EDITOR /boot/grub/grub.cfg"
alias nmakepkg="sudo $EDITOR /etc/makepkg.conf"
alias nmkinitcpio="sudo $EDITOR /etc/mkinitcpio.conf"
alias nmirrorlist="sudo $EDITOR /etc/pacman.d/mirrorlist"
alias nsddm="sudo $EDITOR /etc/sddm.conf"
alias nsddmk="sudo $EDITOR /etc/sddm.conf.d/kde_settings.conf"
alias nsddmd="sudo $EDITOR /usr/lib/sddm/sddm.conf.d/default.conf"
alias nfstab="sudo $EDITOR /etc/fstab"
alias nnsswitch="sudo $EDITOR /etc/nsswitch.conf"
alias nsamba="sudo $EDITOR /etc/samba/smb.conf"
alias ngnupgconf="sudo $EDITOR /etc/pacman.d/gnupg/gpg.conf"
alias nhosts="sudo $EDITOR /etc/hosts"
alias nhostname="sudo $EDITOR /etc/hostname"
alias nresolv="sudo $EDITOR /etc/resolv.conf"
alias nb="$EDITOR ~/.bashrc"
alias nz="$EDITOR ~/.zshrc"
alias nf="$EDITOR ~/.config/fish/config.fish"
alias nfastfetch="$EDITOR ~/.config/fastfetch/config.jsonc"
alias nvconsole="sudo $EDITOR /etc/vconsole.conf"
alias nenvironment="sudo $EDITOR /etc/environment"
alias nloader="sudo $EDITOR /boot/efi/loader/loader.conf"
alias nalacritty="nano /home/$USER/.config/alacritty/alacritty.toml"
alias nemptty="sudo $EDITOR /etc/emptty/conf"
#reading logs with bat
alias lpacman="bat /var/log/pacman.log"
alias lxorg="bat /var/log/Xorg.0.log"
alias lxorgo="bat /var/log/Xorg.0.log.old"
#reading logs with sublime-text-4
alias spac="subl /etc/pacman.conf"
#gpg
#verify signature for isos
alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify"
alias fix-gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify"
#receive the key of a developer
alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys"
alias fix-gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys"
alias fix-keyserver="[ -d ~/.gnupg ] || mkdir ~/.gnupg ; cp /etc/pacman.d/gnupg/gpg.conf ~/.gnupg/ ; echo 'done'"
#fixes
alias fix-permissions="sudo chown -R $USER:$USER ~/.config ~/.local"
alias keyfix="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias key-fix="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias keys-fix="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias fixkey="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias fixkeys="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias fix-key="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias fix-keys="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys"
alias fix-pacman-conf="/usr/local/bin/arcolinux-fix-pacman-conf"
alias fix-pacman-keyserver="/usr/local/bin/arcolinux-fix-pacman-gpg-conf"
alias fix-grub="sudo /usr/local/bin/arcolinux-fix-grub"
alias fixgrub="sudo /usr/local/bin/arcolinux-fix-grub"
alias fix-archlinux-mirrors="/usr/local/bin/arcolinux-fix-archlinux-servers"
alias fix-arcolinux-mirrors="/usr/local/bin/arcolinux-fix-arcolinux-servers"
#maintenance
alias big="expac -H M '%m\t%n' | sort -h | nl"
alias downgrada="sudo downgrade --ala-url https://ant.seedhost.eu/arcolinux/"
#systeminfo
alias sysfailed="systemctl list-units --failed"
#shutdown or reboot
alias ssn="sudo shutdown now"
alias sr="reboot"
#update betterlockscreen images
alias bls="betterlockscreen -u /usr/share/backgrounds/"
#give the list of all installed desktops - xsessions desktops
alias xd="ls /usr/share/xsessions"
alias xdw="ls /usr/share/wayland-sessions"
#give a list of the kernels installed
alias kernel="ls /usr/lib/modules"
alias kernels="ls /usr/lib/modules"
# # ex = EXtractor for all kinds of archives
# # usage: ex <file>
ex ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*.deb) ar x $1 ;;
*.tar.xz) tar xf $1 ;;
*.tar.zst) tar xf $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
#wayland aliases
alias wsimplescreen="wf-recorder -a"
alias wsimplescreenrecorder="wf-recorder -a -c h264_vaapi -C aac -d /dev/dri/renderD128 --file=recording.mp4"
#btrfs aliases
alias btrfsfs="sudo btrfs filesystem df /"
alias btrfsli="sudo btrfs su li / -t"
#snapper aliases
alias snapcroot="sudo snapper -c root create-config /"
alias snapchome="sudo snapper -c home create-config /home"
alias snapli="sudo snapper list"
alias snapcr="sudo snapper -c root create"
alias snapch="sudo snapper -c home create"
#git
alias rmgitcache="rm -r ~/.cache/git"
alias grh="git reset --hard"
#pamac
alias pamac-unlock="sudo rm /var/tmp/pamac/dbs/db.lock"
#create a file called .bashrc-personal and put all your personal aliases
#in there. They will not be overwritten by skel.
[[ -f ~/.bashrc-personal ]] && . ~/.bashrc-personal
# reporting tools - install when not installed
fastfetch | lolcat
#neofetch
Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

+3
View File
@@ -0,0 +1,3 @@
FileManager=Thunar
TerminalEmulator=alacritty
WebBrowser=chromium
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<name>Bugz</name>
<regex>bug\s*#?\s*([0-9]+)</regex>
<group>0</group>
<commands>
<command>
<name>GNOME Bug</name>
<exec>exo-open https://bugzilla.gnome.org/show_bug.cgi?id=\1</exec>
</command>
<command>
<name>Xfce Bug</name>
<exec>exo-open https://bugzilla.xfce.org/show_bug.cgi?id=\1</exec>
</command>
</commands>
</action>
<action>
<name>Image</name>
<regex>(http|ftp).+\.(jpg|png|gif)</regex>
<group>0</group>
<commands>
<command>
<name>View with Ristretto</name>
<exec>ristretto &quot;\0&quot;</exec>
</command>
<command>
<name>Edit with Gimp</name>
<exec>gimp &quot;\0&quot;</exec>
</command>
</commands>
</action>
<action>
<name>Long URL</name>
<regex>https?://[^\s]{120,}</regex>
<group>0</group>
<commands>
<command>
<name>Shrink the URL</name>
<exec>exo-open https://tinyurl.com/create.php?url=\0</exec>
</command>
</commands>
</action>
</actions>
@@ -0,0 +1,751 @@
<?xml version="1.1" encoding="UTF-8"?>
<channel name="xfce4-desktop" version="1.0">
<property name="backdrop" type="empty">
<property name="screen0" type="empty">
<property name="monitor0" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitor1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorVGA-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorHDMI1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorHDMI2" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorLVDS1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorDVI-I-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorDVI-D-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorDVI-D-0" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorHDMI-0" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorHDMI-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorHDMI-2" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorVirtual1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorVirtual2" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorVirtual-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorVirtual-2" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace6" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorDP-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="DP-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
</property>
<property name="DP-0" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/arco/arco-wallpaper.jpg"/>
</property>
</property>
<property name="monitorLVDS-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace4" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
<property name="workspace5" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
<property name="monitorDP-4" type="empty">
<property name="workspace0" type="empty">
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/CleanBlue.jpg"/>
</property>
</property>
</property>
</property>
<property name="desktop-icons" type="empty">
<property name="file-icons" type="empty">
<property name="show-home" type="bool" value="true"/>
<property name="show-filesystem" type="bool" value="true"/>
<property name="show-trash" type="bool" value="true"/>
<property name="show-removable" type="bool" value="true"/>
</property>
</property>
<property name="desktop-menu" type="empty">
<property name="show" type="bool" value="true"/>
<property name="show-icons" type="bool" value="true"/>
</property>
<property name="windowlist-menu" type="empty">
<property name="show-icons" type="bool" value="true"/>
<property name="show-workspace-names" type="bool" value="true"/>
<property name="show-submenus" type="bool" value="false"/>
</property>
<property name="last-settings-migration-version" type="uint" value="1"/>
</channel>
@@ -0,0 +1,93 @@
<?xml version="1.1" encoding="UTF-8"?>
<channel name="xfwm4" version="1.0">
<property name="general" type="empty">
<property name="activate_action" type="string" value="bring"/>
<property name="borderless_maximize" type="bool" value="true"/>
<property name="box_move" type="bool" value="false"/>
<property name="box_resize" type="bool" value="false"/>
<property name="button_layout" type="string" value="O|SHMC"/>
<property name="button_offset" type="int" value="0"/>
<property name="button_spacing" type="int" value="0"/>
<property name="click_to_focus" type="bool" value="true"/>
<property name="cycle_apps_only" type="bool" value="false"/>
<property name="cycle_draw_frame" type="bool" value="true"/>
<property name="cycle_hidden" type="bool" value="true"/>
<property name="cycle_minimum" type="bool" value="true"/>
<property name="cycle_preview" type="bool" value="true"/>
<property name="cycle_tabwin_mode" type="int" value="0"/>
<property name="cycle_workspaces" type="bool" value="false"/>
<property name="double_click_action" type="string" value="maximize"/>
<property name="double_click_distance" type="int" value="5"/>
<property name="double_click_time" type="int" value="250"/>
<property name="easy_click" type="string" value="Alt"/>
<property name="focus_delay" type="int" value="250"/>
<property name="focus_hint" type="bool" value="true"/>
<property name="focus_new" type="bool" value="true"/>
<property name="frame_opacity" type="int" value="100"/>
<property name="frame_border_top" type="int" value="0"/>
<property name="full_width_title" type="bool" value="true"/>
<property name="horiz_scroll_opacity" type="bool" value="false"/>
<property name="inactive_opacity" type="int" value="100"/>
<property name="maximized_offset" type="int" value="0"/>
<property name="mousewheel_rollup" type="bool" value="true"/>
<property name="move_opacity" type="int" value="100"/>
<property name="placement_mode" type="string" value="center"/>
<property name="placement_ratio" type="int" value="20"/>
<property name="popup_opacity" type="int" value="100"/>
<property name="prevent_focus_stealing" type="bool" value="false"/>
<property name="raise_delay" type="int" value="250"/>
<property name="raise_on_click" type="bool" value="true"/>
<property name="raise_on_focus" type="bool" value="false"/>
<property name="raise_with_any_button" type="bool" value="true"/>
<property name="repeat_urgent_blink" type="bool" value="false"/>
<property name="resize_opacity" type="int" value="100"/>
<property name="scroll_workspaces" type="bool" value="true"/>
<property name="shadow_delta_height" type="int" value="0"/>
<property name="shadow_delta_width" type="int" value="0"/>
<property name="shadow_delta_x" type="int" value="0"/>
<property name="shadow_delta_y" type="int" value="-3"/>
<property name="shadow_opacity" type="int" value="50"/>
<property name="show_app_icon" type="bool" value="false"/>
<property name="show_dock_shadow" type="bool" value="true"/>
<property name="show_frame_shadow" type="bool" value="true"/>
<property name="show_popup_shadow" type="bool" value="false"/>
<property name="snap_resist" type="bool" value="false"/>
<property name="snap_to_border" type="bool" value="true"/>
<property name="snap_to_windows" type="bool" value="false"/>
<property name="snap_width" type="int" value="10"/>
<property name="vblank_mode" type="string" value="auto"/>
<property name="theme" type="string" value="Default"/>
<property name="tile_on_move" type="bool" value="true"/>
<property name="title_alignment" type="string" value="center"/>
<property name="title_font" type="string" value="Sans Bold 9"/>
<property name="title_horizontal_offset" type="int" value="0"/>
<property name="titleless_maximize" type="bool" value="false"/>
<property name="title_shadow_active" type="string" value="false"/>
<property name="title_shadow_inactive" type="string" value="false"/>
<property name="title_vertical_offset_active" type="int" value="0"/>
<property name="title_vertical_offset_inactive" type="int" value="0"/>
<property name="toggle_workspaces" type="bool" value="false"/>
<property name="unredirect_overlays" type="bool" value="true"/>
<property name="urgent_blink" type="bool" value="false"/>
<property name="use_compositing" type="bool" value="true"/>
<property name="workspace_count" type="int" value="4"/>
<property name="wrap_cycle" type="bool" value="true"/>
<property name="wrap_layout" type="bool" value="true"/>
<property name="wrap_resistance" type="int" value="10"/>
<property name="wrap_windows" type="bool" value="false"/>
<property name="wrap_workspaces" type="bool" value="false"/>
<property name="zoom_desktop" type="bool" value="true"/>
<property name="cycle_raise" type="bool" value="false"/>
<property name="frame_border_top" type="int" value="0"/>
<property name="vblank_mode" type="string" value="auto"/>
<property name="cycle_minimized" type="bool" value="false"/>
<property name="zoom_pointer" type="bool" value="true"/>
<property name="workspace_names" type="array">
<value type="string" value="1"/>
<value type="string" value="2"/>
<value type="string" value="3"/>
<value type="string" value="4"/>
</property>
</property>
</channel>
@@ -0,0 +1,44 @@
<?xml version="1.1" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="Adwaita-dark"/>
<property name="IconThemeName" type="string" value="Sardi-Flat-Colora-Majestic"/>
<property name="DoubleClickTime" type="empty"/>
<property name="DoubleClickDistance" type="empty"/>
<property name="DndDragThreshold" type="empty"/>
<property name="CursorBlink" type="empty"/>
<property name="CursorBlinkTime" type="empty"/>
<property name="SoundThemeName" type="empty"/>
<property name="EnableEventSounds" type="empty"/>
<property name="EnableInputFeedbackSounds" type="empty"/>
</property>
<property name="Xft" type="empty">
<property name="DPI" type="empty"/>
<property name="Antialias" type="int" value="1"/>
<property name="Hinting" type="int" value="1"/>
<property name="HintStyle" type="string" value="hintslight"/>
<property name="RGBA" type="string" value="rgb"/>
</property>
<property name="Gtk" type="empty">
<property name="CanChangeAccels" type="empty"/>
<property name="ColorPalette" type="empty"/>
<property name="FontName" type="empty" />
<property name="MonospaceFontName" type="empty" />
<property name="IconSizes" type="empty"/>
<property name="KeyThemeName" type="empty"/>
<property name="MenuImages" type="empty"/>
<property name="ButtonImages" type="empty"/>
<property name="MenuBarAccel" type="empty"/>
<property name="CursorThemeName" type="string" value="Bibata-Modern-Ice"/>
<property name="CursorThemeSize" type="empty"/>
<property name="DecorationLayout" type="string" value="icon,menu:minimize,maximize,close"/>
<property name="DialogsUseHeader" type="empty"/>
<property name="TitlebarMiddleClick" type="empty"/>
<property name="ToolbarStyle" type="empty"/>
<property name="ToolbarIconSize" type="empty"/>
</property>
<property name="Gdk" type="empty">
<property name="WindowScalingFactor" type="empty"/>
</property>
</channel>
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
#set -e
##################################################################################################################
#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
##################################################################################################################
echo
tput setaf 3
echo "################################################################"
echo "################### Start Arch setup"
echo "################################################################"
tput sgr0
echo
View File
+113
View File
@@ -0,0 +1,113 @@
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
VerbosePkgLists
ParallelDownloads = 25
#DownloadUser = alpm
#DisableSandbox
ILoveCandy
DisableDownloadTimeout
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[core-testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[yuku_repo]
SigLevel = Never
Server = https://yurikuit.github.io/$repo/$arch
[nemesis_repo]
SigLevel = Never
Server = https://erikdubois.github.io/$repo/$arch
[chaotic-aur]
SigLevel = Required DatabaseOptional
Include = /etc/pacman.d/chaotic-mirrorlist
View File
+170
View File
@@ -0,0 +1,170 @@
#!/bin/bash
set -euo pipefail
##########################
# Color helpers (printf-safe, no tput)
##########################
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
CYAN="\033[0;36m"
GRAY="\033[0;37m"
BOLD="\033[1m"
RESET="\033[0m"
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED="" GREEN="" YELLOW="" CYAN="" GRAY="" BOLD="" RESET=""
fi
say_red() { printf "\n"; printf "%b%s%b\n" "$RED" "$*" "$RESET"; }
say_green() { printf "\n"; printf "%b%s%b\n" "$GREEN" "$*" "$RESET"; }
say_yellow() { printf "\n"; printf "%b%s%b\n" "$YELLOW" "$*" "$RESET"; }
say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
##########################
# Use exported variables from main detection script
##########################
OS="${DETECTED_OS}"
DDE="${DETECTED_DE:-}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
##########################
# Helper functions
##########################
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
say_yellow "Starting full setup..."
# Run minimal first
bash "$SCRIPT_DIR/fedora-minimal.sh"
# Add extra packages
install_packages arandr catfish galculator NetworkManager network-manager-applet NetworkManager-openvpn numlockx pipewire pipewire-alsa pipewire-pulse wireplumber pavucontrol playerctl gparted xfce4-pulseaudio-plugin xfce4-clipman-plugin
# temp disabled packages
# xfce4-indicator-plugin
# install SDDM-theme
say_yellow "Installing SDDM Theme"
GIT_DIR="$HOME/git"
REPO_DIR="$GIT_DIR/SilentSDDM"
REPO_URL="https://github.com/uiriansan/SilentSDDM"
mkdir -p "$GIT_DIR"
if [ -d "$REPO_DIR/.git" ]; then
echo "SilentSDDM already exists. Updating repository..."
cd "$REPO_DIR" && git pull --rebase
else
echo "Cloning SilentSDDM..."
git clone -b main --depth=1 "$REPO_URL" "$REPO_DIR"
fi
echo "Running installer..."
cd "$REPO_DIR" || {
echo "Error: Failed to enter $REPO_DIR" >&2
exit 1
}
# Ensure NetworkManager manages all interfaces
say_yellow "Ensuring NetworkManager service is enabled and running..."
sudo systemctl enable --now NetworkManager
say_yellow "Setting NetworkManager to globally manage all devices..."
sudo tee /etc/NetworkManager/conf.d/10-globally-managed-devices.conf > /dev/null <<'EOF'
[ifupdown]
managed=true
[keyfile]
unmanaged-devices=
EOF
say_yellow "Restarting NetworkManager service..."
sudo systemctl restart NetworkManager
say_yellow "Waiting for NetworkManager to reconnect..."
sleep 15
# Enable pipewire
systemctl --user enable pipewire pipewire-pulse wireplumber
########################################
# XFCE-specific configuration
########################################
if [[ "${DE}" == "xfce" || "${DDE}" == "xfce" ]]; then
echo
say_cyan "Applying XFCE defaults: fonts, browser, and terminal..."
# Ensure xfconf-query exists (for XFCE settings)
if ! command -v xfconf-query >/dev/null 2>&1; then
say_yellow "xfconf-query not found — installing xfce4-settings..."
install_packages xfce4-settings
fi
# set fonts
# Wait for xfconf to be available (only needed if running inside the same session)
if command -v xfconf-query >/dev/null 2>&1; then
# Interface font (UI)
xfconf-query -c xsettings -p /Gtk/FontName -s "RobotoMono Nerd Font Regular 10"
# Monospace font (terminals, editors)
xfconf-query -c xsettings -p /Gtk/MonospaceFontName -s "RobotoMono Nerd Font Mono Regular 10"
say_green "XFCE fonts updated successfully!"
else
say_yellow "xfconf-query not found — skipping XFCE font config (will apply at first login)."
fi
# Set browser default
if command -v chromium >/dev/null 2>&1; then
mkdir -p "$HOME/.config/xfce4/"
HELPERS_FILE="$HOME/.config/xfce4/helpers.rc"
# Ensure the helpers file exists
touch "$HELPERS_FILE"
# Update or insert browser entry
if grep -q '^WebBrowser=' "$HELPERS_FILE"; then
sed -i 's|^WebBrowser=.*|WebBrowser=chromium|' "$HELPERS_FILE"
else
echo "WebBrowser=chromium" >> "$HELPERS_FILE"
fi
say_green "XFCE defeault browser set to chromium!"
fi
# Set default terminal
if command -v alacritty >/dev/null 2>&1; then
mkdir -p "$HOME/.config/xfce4/"
HELPERS_FILE="$HOME/.config/xfce4/helpers.rc"
touch "$HELPERS_FILE"
# TerminalEmulator entry
if grep -q '^TerminalEmulator=' "$HELPERS_FILE"; then
sed -i 's|^TerminalEmulator=.*|TerminalEmulator=alacritty|' "$HELPERS_FILE"
else
echo "TerminalEmulator=alacritty" >> "$HELPERS_FILE"
fi
# TerminalEmulatorCommand entry
if grep -q '^TerminalEmulatorCommand=' "$HELPERS_FILE"; then
sed -i 's|^TerminalEmulatorCommand=.*|TerminalEmulatorCommand=alacritty|' "$HELPERS_FILE"
else
echo "TerminalEmulatorCommand=alacritty" >> "$HELPERS_FILE"
fi
say_green "XFCE defeault terminal set to alacritty!"
fi
fi
# replace bashrc
say_yellow "making backup of bashrc"
sudo cp -v /etc/skel/.bashrc /etc/skel/.bashrc.starburst
# End of script
say_green "Full setup completed."
+125
View File
@@ -0,0 +1,125 @@
#!/bin/bash
set -euo pipefail
##########################
# Color helpers (printf-safe, no tput)
##########################
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
CYAN="\033[0;36m"
GRAY="\033[0;37m"
BOLD="\033[1m"
RESET="\033[0m"
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED="" GREEN="" YELLOW="" CYAN="" GRAY="" BOLD="" RESET=""
fi
say_red() { printf "\n"; printf "%b%s%b\n" "$RED" "$*" "$RESET"; }
say_green() { printf "\n"; printf "%b%s%b\n" "$GREEN" "$*" "$RESET"; }
say_yellow() { printf "\n"; printf "%b%s%b\n" "$YELLOW" "$*" "$RESET"; }
say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
##########################
# Use exported variables from main detection script
##########################
OS="${DETECTED_OS}"
DDE="${DETECTED_DE}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
##########################
# Helper functions
##########################
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
##########################
# 1. Base Dependencies & Repos
##########################
say_cyan "Installing base dependencies..."
# dnf-plugins-core is required for COPR
install_packages dnf-plugins-core curl wget git flatpak
# Enable PeaZip via COPR
say_cyan "Installing PeaZip (Qt6) via official RPM..."
PZ_VER="11.0.0"
PZ_FILE="peazip-${PZ_VER}.LINUX.Qt6-1.x86_64.rpm"
PZ_URL="https://github.com/peazip/PeaZip/releases/download/${PZ_VER}/${PZ_FILE}"
curl -L "$PZ_URL" -o "/tmp/$PZ_FILE"
sudo dnf install -y "/tmp/$PZ_FILE"
rm "/tmp/$PZ_FILE"
say_green "PeaZip ${PZ_VER} (Qt6) installed successfully."
##########################
# 2. Main Package Installation
##########################
say_yellow "Installing essential tools..."
install_packages \
fastfetch lolcat bash-completion alacritty \
hwinfo lshw duf chrony polkit-kde-agent-1 \
man-db tree xdg-user-dirs rsync time bat chromium \
thunar thunar-archive-plugin thunar-volman \
baobab gvfs-smb hddtemp squashfs-tools \
zip gzip p7zip unace unrar file-roller peazip \
feh gnome-font-viewer dconf-editor hardinfo2 lsb_release \
powertop inxi acpi plocate nm-connection-editor \
python3-pylint qt6-qtsvg qt6-qtvirtualkeyboard qt6-qtmultimedia
if ! command -v starship &> /dev/null; then
say_cyan "Installing Starship shell prompt..."
curl -sS https://starship.rs/install.sh | sh -s -- -y
fi
#################################
# 3. Fonts (RobotoMono Nerd Font)
#################################
FONT_DIR="$HOME/.local/share/fonts"
DOWNLOAD_NAME="RobotoMono"
if ! find "$FONT_DIR" -name "*RobotoMonoNerdFont*" | grep -q .; then
say_yellow "Installing ${DOWNLOAD_NAME} Nerd Font..."
mkdir -p "$FONT_DIR"
FONT_ZIP="/tmp/${DOWNLOAD_NAME}.zip"
curl -L "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${DOWNLOAD_NAME}.zip" -o "$FONT_ZIP"
unzip -oq "$FONT_ZIP" -d "$FONT_DIR"
fc-cache -fv
rm "$FONT_ZIP"
say_green "${DOWNLOAD_NAME} installed."
else
say_yellow "RobotoMono Nerd Font already installed."
fi
#################################
# 4. Chromium Configuration
#################################
CONF="$HOME/.config/chromium-flags.conf"
mkdir -p "$(dirname "$CONF")"
[[ ! -f "$CONF" ]] && touch "$CONF"
# Add OAuth IDs for Google Sync
#
OAUTH_ID="--oauth2-client-id=77185425430.apps.googleusercontent.com"
OAUTH_SECRET="--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT"
grep -qxF -- "$OAUTH_ID" "$CONF" || echo "$OAUTH_ID" >> "$CONF"
grep -qxF -- "$OAUTH_SECRET" "$CONF" || echo "$OAUTH_SECRET" >> "$CONF"
say_green "Chromium flags configured."
#################################
# 5. Enable Services
#################################
# Enable basic services
say_cyan "Enabling services..."
sudo systemctl enable --now fstrim.timer
sudo systemctl enable --now chronyd || true
say_green "Fedora Minimal setup completed."
+141
View File
@@ -0,0 +1,141 @@
#!/bin/bash
set -euo pipefail
##########################
# Color helpers (printf-safe, no tput)
##########################
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
CYAN="\033[0;36m"
GRAY="\033[0;37m"
BOLD="\033[1m"
RESET="\033[0m"
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED="" GREEN="" YELLOW="" CYAN="" GRAY="" BOLD="" RESET=""
fi
say_red() { printf "\n"; printf "%b%s%b\n" "$RED" "$*" "$RESET"; }
say_green() { printf "\n"; printf "%b%s%b\n" "$GREEN" "$*" "$RESET"; }
say_yellow() { printf "\n"; printf "%b%s%b\n" "$YELLOW" "$*" "$RESET"; }
say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
##########################
# Use exported variables from main detection script
##########################
OS="${DETECTED_OS:-fedora}"
DDE="${DETECTED_DE:-none}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
##########################
# Helper functions
##########################
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
detect_de() {
# Check if a desktop session is currently running or XFCE is available
if [ "${XDG_CURRENT_DESKTOP:-}" ]; then
echo "${XDG_CURRENT_DESKTOP,,}" # lowercase the output
elif command -v xfce4-session >/dev/null 2>&1; then
echo "xfce"
else
echo ""
fi
}
detect_display_manager() {
# Fedora/Systemd way to check the active DM symlink
if [ -L /etc/systemd/system/display-manager.service ]; then
basename "$(readlink /etc/systemd/system/display-manager.service)" | sed 's/\.service//'
else
echo ""
fi
}
switch_display_manager() {
local target_dm="$1"
local current_dm
current_dm=$(detect_display_manager)
if [[ "$current_dm" != "$target_dm" ]]; then
if [[ -n "$current_dm" ]]; then
say_yellow "Disabling existing display manager: $current_dm"
sudo systemctl disable "$current_dm"
fi
say_yellow "Enabling $target_dm..."
sudo systemctl enable "$target_dm"
fi
sudo systemctl set-default graphical.target
}
#########################
# Start installation
##########################
say_yellow "Starting Niri setup..."
CURRENT_DE="$(detect_de)"
CURRENT_DM="$(detect_display_manager)"
# Add Terra repo
add_terra_repo() {
if [ ! -f /etc/yum.repos.d/terra.repo ]; then
say_yellow "Adding Terra repository for Noctalia Shell..."
TMP_FILE="/tmp/terra.repo"
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo -o "$TMP_FILE" &&
sudo mv "$TMP_FILE" /etc/yum.repos.d/terra.repo
say_yellow "Clearing DNF cache..."
sudo dnf clean metadata
else
say_gray "Terra repository already configured."
fi
}
# Core components for Niri & Noctalia setup
NIRI_PACKAGES=(niri fuzzel swaybg swaylock noctalia-shell)
if [[ -z "$CURRENT_DE" || "$CURRENT_DE" == "none" || "$CURRENT_DE" == "sway" ]]; then
say_cyan "No Desktop Environment detected. Installing Niri + Noctalia Shell..."
# 1. Add the repo first
add_terra_repo
# 2. Install everything
install_packages sddm "${NIRI_PACKAGES[@]}"
switch_display_manager "sddm"
say_green "Niri, Noctalia, and SDDM installed successfully."
else
say_cyan "Detected existing Desktop Environment: $CURRENT_DE"
# Always install the window manager packages
install_packages "${NIRI_PACKAGES[@]}"
if [[ "$CURRENT_DM" == "lightdm" ]]; then
say_yellow "LightDM is currently active. Replacing with SDDM..."
# Fedora equivalent to purge lightdm safely
sudo dnf remove -y lightdm lightdm-gtk
install_packages sddm
switch_display_manager "sddm"
say_green "LightDM removed and replaced with SDDM."
else
say_cyan "Current display manager: ${CURRENT_DM:-none}. Leaving it to handle Niri login sessions."
fi
fi
# End of script
say_green "Niri / SDDM setup completed."
+89
View File
@@ -0,0 +1,89 @@
#!/bin/bash
set -euo pipefail
##########################
# Color helpers (printf-safe, no tput)
##########################
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
CYAN="\033[0;36m"
GRAY="\033[0;37m"
BOLD="\033[1m"
RESET="\033[0m"
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED="" GREEN="" YELLOW="" CYAN="" GRAY="" BOLD="" RESET=""
fi
say_red() { printf "\n"; printf "%b%s%b\n" "$RED" "$*" "$RESET"; }
say_green() { printf "\n"; printf "%b%s%b\n" "$GREEN" "$*" "$RESET"; }
say_yellow() { printf "\n"; printf "%b%s%b\n" "$YELLOW" "$*" "$RESET"; }
say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
##########################
# Use exported variables from main detection script
##########################
OS="${DETECTED_OS}"
DDE="${DETECTED_DE:-}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
##########################
# Helper functions
##########################
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
say_yellow "Starting Workstation setup..."
# Run full first
bash "$SCRIPT_DIR/fedora-full.sh"
# Add extra packages
install_packages git libreoffice
# gitahead-git
# editors
install_packages konsole
# temp removed packages:
# sublime-text-4 vscodium
flatpak install -y flathub com.vscodium.codium
#internet
# install_packages
# temp removed packages
# google-chrome discord firefox insync brave-bin
#theming
# variety
#media
install_packages mpv
# temp removed packages
# vlc gimp inkscape spotify lollypop mpv-full mpv-git flameshot-git
#shells
install_packages zsh zsh-syntax-highlighting
# temp removed packages
# fish oh-my-zsh-git zsh-completions
#system-tools
install_packages @development-tools git curl wget cmake ninja-build pkgconf-pkg-config
#tools
install_packages system-config-printer system-config-printer-applet system-config-printer-libs ripgrep meld btop htop hwinfo lshw
# temp removed packages
# wttr
# End of script
say_green "Workstation setup completed."
###### TODO
### autostart flameshot tray icon
### autostart insync tray icon
Executable
+218
View File
@@ -0,0 +1,218 @@
#!/bin/bash
set -euo pipefail
##########################
# Color helpers (printf-safe, no tput)
##########################
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
CYAN="\033[0;36m"
GRAY="\033[0;37m"
BOLD="\033[1m"
RESET="\033[0m"
# Disable colors if output is not a terminal
if [ ! -t 1 ]; then
RED="" GREEN="" YELLOW="" CYAN="" GRAY="" BOLD="" RESET=""
fi
say_red() { printf "\n"; printf "%b%s%b\n" "$RED" "$*" "$RESET"; }
say_green() { printf "\n"; printf "%b%s%b\n" "$GREEN" "$*" "$RESET"; }
say_yellow() { printf "\n"; printf "%b%s%b\n" "$YELLOW" "$*" "$RESET"; }
say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
##########################
# Use exported variables from main detection script
##########################
OS="${DETECTED_OS}"
DDE="${DETECTED_DE}"
DE="${SELECTED_DE:-none}"
TWM="${SELECTED_TWM:-none}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo
say_cyan "Starting Fedora setup..."
echo
say_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL"
##########################
# Helper functions
##########################
install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; }
remove_packages() {
local packages_to_remove=()
for pkg in "$@"; do
if is_package_installed "$pkg"; then
packages_to_remove+=("$pkg")
fi
done
if [ ${#packages_to_remove[@]} -gt 0 ]; then
say_cyan "Removing packages: ${packages_to_remove[*]}"
sudo dnf remove -y "${packages_to_remove[@]}"
fi
}
##########################
# 0. Ensure base is ready for installation
##########################
installed_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
pkg_dir="packages"
if [[ ! -d "$pkg_dir" ]]; then
say_red "Directory not found: $pkg_dir"
exit 1
fi
if ! command -v curl >/dev/null 2>&1; then
say_yellow "curl is not installed. Installing..."
install_packages curl
fi
##########################
# 1. Update and Enable Repos
##########################
say_cyan "Optimizing DNF for speed..."
# 1. Enable fastest mirror (lowest latency)
# 2. Increase parallel downloads (allows downloading multiple packages at once)
# 3. Set a minimum rate to drop slow mirrors automatically
sudo dnf config-manager setopt fastestmirror=1
sudo dnf config-manager setopt max_parallel_downloads=20
say_green "DNF optimized. Refreshing metadata..."
sudo dnf makecache --refresh
say_cyan "Enabling RPM Fusion repositories for Fedora $(rpm -E %fedora)..."
# Define the version variable for readability
FEDORA_VER=$(rpm -E %fedora)
say_yellow "Checking for updates and sources..."
sudo dnf check-update || true
# Check if flatpak is installed, if not, install it
if ! command -v flatpak &> /dev/null; then
say_yellow "Flatpak not found. Installing..."
sudo dnf install -y flatpak
fi
say_cyan "Enabling Flathub..."
# Using --if-not-exists is good practice to prevent errors on re-runs
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo dnf install -y \
"https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VER}.noarch.rpm" \
"https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VER}.noarch.rpm"
say_cyan "Enabling full Flathub support..."
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Update the system
say_gray "Updating the system"
echo
sudo dnf update -y
##########################
# 2. Fix missing console font
##########################
say_yellow "Fix missing console font"
if grep -q FONT= /etc/vconsole.conf; then
say_green "Font is already set in /etc/vconsole.conf"
else
say_green "Setting console font in /etc/vconsole.conf"
echo 'FONT=gr737c-8x14' | sudo tee -a /etc/vconsole.conf
fi
##########################
# 3. Detected OS / DE / TWM info
##########################
say_yellow "Detected OS / Desktop Environment / Tiling Window Manager"
echo
say_gray "Installing OS-specific packages..."
say_gray "Selected DE: $DE"
say_gray "Selected TWM: $TWM"
say_gray "Installation Level: $INSTALL_LEVEL"
##########################
# 4. Desktop Environment installation
##########################
case "$DE" in
xfce|plasma|gnome)
say_yellow "Preparing to install $DE..."
SCRIPT_NAME="$SCRIPT_DIR/${OS}-${DE}.sh"
if [[ -f "$SCRIPT_NAME" ]]; then
say_cyan "Running $SCRIPT_NAME..."
bash "$SCRIPT_NAME"
else
say_red "Error: $SCRIPT_NAME not found!"
exit 1
fi
;;
none)
say_gray "No Desktop Environment selected, skipping DE installation."
;;
esac
##########################
# 5. Tiling Window Manager installation
##########################
case "$TWM" in
chadwm|hyprland|niri)
say_yellow "Installing $TWM..."
SCRIPT_NAME="$SCRIPT_DIR/${OS}-${TWM}.sh"
if [[ -f "$SCRIPT_NAME" ]]; then
say_cyan "Running $SCRIPT_NAME..."
bash "$SCRIPT_NAME"
else
say_red "Error: $SCRIPT_NAME not found!"
exit 1
fi
;;
none)
say_gray "No tiling window manager selected, skipping TWM installation."
;;
esac
##########################
# 6. Installation level handling
##########################
case "$INSTALL_LEVEL" in
minimal|full|workstation|server)
say_cyan "Installation level: $INSTALL_LEVEL"
SCRIPT_NAME="$SCRIPT_DIR/${OS}-${INSTALL_LEVEL}.sh"
if [[ -f "$SCRIPT_NAME" ]]; then
say_cyan "Running $SCRIPT_NAME..."
bash "$SCRIPT_NAME"
else
say_red "Error: $SCRIPT_NAME not found!"
exit 1
fi
;;
esac
say_green "Fedora setup complete."
say_red "The installation has finished. A reboot is recommended."
# Reboots are dangerous to automate; we use a shorter timeout and default to No
if read -t 10 -rp "Reboot now? [y/N]: " reboot_choice; then
case "${reboot_choice,,}" in
y|yes)
say_red "Rebooting now."
sudo reboot
;;
*)
say_yellow "Skipping reboot."
exit 0
;;
esac
else
say_yellow "\nNo input detected. Skipping reboot for safety."
exit 0
fi
View File