Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8bf0689b86 |
Executable
+274
@@ -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
|
||||||
@@ -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
|
|
||||||
@@ -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."
|
|
||||||
@@ -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."
|
|
||||||
@@ -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."
|
|
||||||
@@ -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
@@ -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
|
|
||||||
Executable
+71
@@ -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
|
||||||
Executable
+103
@@ -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
|
||||||
Executable
+51
@@ -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
|
||||||
Executable
+181
@@ -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
|
||||||
Executable
+123
@@ -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
|
||||||
|
|
||||||
Executable
+73
@@ -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
|
||||||
Executable
+108
@@ -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
|
||||||
Executable
+123
@@ -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
|
||||||
Executable
+36
@@ -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
|
||||||
Executable
+33
@@ -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
|
||||||
Executable
+118
@@ -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
|
||||||
Executable
+35
@@ -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
|
||||||
Executable
+49
@@ -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
|
||||||
Executable
+53
@@ -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
|
||||||
Executable
+119
@@ -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
|
||||||
Executable
+51
@@ -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
|
||||||
@@ -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 |
@@ -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 "\0"</exec>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<name>Edit with Gimp</name>
|
||||||
|
<exec>gimp "\0"</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>
|
||||||
Binary file not shown.
Binary file not shown.
Executable
+21
@@ -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
|
||||||
@@ -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
|
||||||
|
|
||||||
Executable
+170
@@ -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."
|
||||||
Executable
+125
@@ -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."
|
||||||
Executable
+141
@@ -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."
|
||||||
Executable
+89
@@ -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
@@ -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
|
||||||
Reference in New Issue
Block a user