diff --git a/add-qortal-icon-theme.sh b/add-qortal-icon-theme.sh new file mode 100755 index 0000000..030c4bb --- /dev/null +++ b/add-qortal-icon-theme.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +# Customize Yaru-blue-dark icon theme locally and add Qortal icons +ICON_THEME_NAME="Yaru-blue-qortal" +ICON_SOURCE_DIR="${HOME}/Pictures/icons/icons_theme" +ICON_CACHE_DIR="${HOME}/.icons/${ICON_THEME_NAME}" +TARGET_THEME_DIR="${ICON_CACHE_DIR}/48x48/apps" + +# Mapping of source icons to icon names +declare -A ICON_MAP=( + ["qortal-menu-button.png"]="qortal-menu-button" + ["qortal-menu-button-2.png"]="qortal-menu-button-2" + ["qortal-menu-button-3.png"]="qortal-menu-button-3" + ["qortal-menu-button-4.png"]="qortal-menu-button-4" + ["qortal-ui.png"]="qortal-ui" + ["qortal-hub.png"]="qortal-hub" + ["qortal.png"]="qortal" +) + +# Step 1: Copy system Yaru-dark theme as base +if [ ! -d "${ICON_CACHE_DIR}" ]; then + echo "[*] Creating local copy of Yaru-dark theme as '${ICON_THEME_NAME}'..." + mkdir -p "${ICON_CACHE_DIR}" + rsync -a /usr/share/icons/Yaru-dark/ "${ICON_CACHE_DIR}/" + + # Copy index.theme from Yaru-blue-dark if it exists + if [ -f /usr/share/icons/Yaru-blue-dark/index.theme ]; then + cp /usr/share/icons/Yaru-blue-dark/index.theme "${ICON_CACHE_DIR}/index.theme" + fi + + # Update index.theme metadata + sed -i 's/^Name=.*/Name=Yaru-blue-qortal/' "${ICON_CACHE_DIR}/index.theme" + sed -i 's/^Inherits=.*/Inherits=Yaru-blue-dark,Yaru-dark,Yaru,hicolor/' "${ICON_CACHE_DIR}/index.theme" + + # Ensure Directories includes 48x48/apps + if ! grep -q "48x48/apps" "${ICON_CACHE_DIR}/index.theme"; then + echo "Directories=48x48/apps" >> "${ICON_CACHE_DIR}/index.theme" + echo " +[48x48/apps] +Size=48 +Context=Applications +Type=Fixed" >> "${ICON_CACHE_DIR}/index.theme" + fi +fi + +# Step 2: Ensure target icon directory exists +mkdir -p "${TARGET_THEME_DIR}" + +# Step 3: Install icons (resized if possible) +install_icon() { + local src="$1" + local name="$2" + local dest="${TARGET_THEME_DIR}/${name}.png" + + if [ ! -f "$src" ]; then + echo "[!] Source icon not found: $src" + return + fi + + if command -v convert &>/dev/null; then + echo "[*] Resizing and installing $name to ${TARGET_THEME_DIR}" + convert "$src" -resize 48x48 "$dest" + else + echo "[*] Copying $name without resizing to ${TARGET_THEME_DIR}" + cp "$src" "$dest" + fi +} + +# Step 4: Loop through and install icons +for src in "${!ICON_MAP[@]}"; do + install_icon "${ICON_SOURCE_DIR}/${src}" "${ICON_MAP[$src]}" +done + +# Step 5: Update the icon cache +if [ -f "${ICON_CACHE_DIR}/index.theme" ]; then + echo "[*] Updating icon cache for '${ICON_THEME_NAME}'..." + gtk-update-icon-cache -f "${ICON_CACHE_DIR}" || echo "[!] gtk-update-icon-cache failed or not found." +else + echo "[!] No index.theme file found. Cannot update icon cache." +fi + +# Step 6: Set as active icon theme +echo "[*] Setting '${ICON_THEME_NAME}' as the current icon theme..." +gsettings set org.cinnamon.desktop.interface icon-theme "${ICON_THEME_NAME}" + +echo "✅ Qortal icons installed into local theme: ${ICON_THEME_NAME}" +echo " You can now use Icon=qortal-ui (etc.) in .desktop files." +echo " Theme is now active with blue-dark base styling." + diff --git a/auto-fix-qortal.sh b/auto-fix-qortal.sh index 1c8b527..5b42e37 100644 --- a/auto-fix-qortal.sh +++ b/auto-fix-qortal.sh @@ -30,6 +30,12 @@ initial_update() { } check_internet() { + echo "${CYAN}....................................................................${NC}\n" + echo "${CYAN}THIS SCRIPT IS MEANT TO RUN AUTOMATICALLY, PLEASE ALLOW IT TO COMPLETELY FINISH AND DO NOT CLOSE IT EARLY!${NC}\n" + echo "${CYAN}CLOSING IT EARLY WILL PREVENT IT FROM DOING ITS JOB, AND ENSURING QORTAL IS UPDATED, AND SYNCHRONIZED.${NC}\n" + echo "${CYAN}PLEASE BE PATIENT AND ALLOW SCRIPT TO RUN. THANK YOU! -crowetic${NC}\n" + echo "${CYAN}....................................................................${NC}\n" + sleep 5 echo "${YELLOW}Checking internet connection${NC}\n" INTERNET_STATUS="UNKNOWN" TIMESTAMP=$(date +%s) @@ -194,14 +200,14 @@ check_for_GUI() { } setup_raspi_cron() { - echo -e "${YELLOW}Setting up cron jobs for Raspberry Pi or headless machines...${NC}\n" + echo "${YELLOW}Setting up cron jobs for Raspberry Pi or headless machines...${NC}\n" mkdir -p "${HOME}/backups/cron-backups" crontab -l > "${HOME}/backups/cron-backups/crontab-backup-$(date +%Y%m%d%H%M%S)" - echo -e "${YELLOW}Checking if autostart desktop shortcut exists to avoid double-launch...${NC}\n" + echo "${YELLOW}Checking if autostart desktop shortcut exists to avoid double-launch...${NC}\n" if find "${HOME}/.config/autostart" -maxdepth 1 -name "start-qortal*.desktop" | grep -q .; then echo -e "${RED}Autostart desktop entry found! Using GUI-safe auto-fix cron only.${NC}\n" @@ -212,7 +218,7 @@ setup_raspi_cron() { return fi - echo -e "${BLUE}No autostart entries found. Setting up full headless cron...${NC}\n" + echo "${BLUE}No autostart entries found. Setting up full headless cron...${NC}\n" curl -L -O https://raw.githubusercontent.com/crowetic/QORTector-scripts/refs/heads/main/auto-fix-cron crontab auto-fix-cron rm -f auto-fix-cron @@ -281,11 +287,11 @@ no_local_height() { fi fi - echo "${GREEN}Starting Qortal Core and sleeping 2.5 min to let it start fully, PLEASE WAIT...${NC}\n" + echo "${GREEN}Starting Qortal Core and sleeping 20 min to let it start fully, PLEASE WAIT...${NC}\n" potentially_update_settings cd "${HOME}/qortal" || exit 1 ./start.sh - sleep 166 + sleep 1220 cd || exit 1 echo "${GREEN}Checking if Qortal started correctly...${NC}\n" local_height_check=$(curl -sS "http://localhost:12391/blocks/height") diff --git a/rebuilt-machine.sh b/rebuilt-machine.sh index ea59518..e798fce 100644 --- a/rebuilt-machine.sh +++ b/rebuilt-machine.sh @@ -13,17 +13,28 @@ NC='\033[0m' username=$(whoami) -echo "${YELLOW} UPDATING UBUNTU AND INSTALLING REQUIRED SOFTWARE PACKAGES ${NC}\n" +echo "${YELLOW} 🛠 UPDATING 🛠 UBUNTU AND INSTALLING REQUIRED SOFTWARE 📦 PACKAGES 📦 ${NC}\n" -echo "${YELLOW} creating system folders that require admin permissions..." +echo "${YELLOW} ⚙️ creating system folders that require admin permissions..." sudo apt update sudo apt -y upgrade -sudo apt -y install git jq gnome-software unzip vim curl openjdk-21-jre yaru-theme-icon yaru-theme-gtk yaru-theme-unity zlib1g-dev vlc chromium-browser p7zip-full libfuse2 htop net-tools bpytop ffmpeg sysbench smartmontools ksnip xsensors fonts-symbola lm-sensors cinnamon-desktop-environment +sudo apt -y install git jq gnome-software openssh-server unzip vim curl openjdk-21-jre yaru-theme-icon yaru-theme-gtk yaru-theme-unity zlib1g-dev vlc chromium-browser p7zip-full libfuse2 htop net-tools bpytop ffmpeg sysbench smartmontools ksnip xsensors fonts-symbola lm-sensors gparted cinnamon-desktop-environment + +echo "${YELLOW} 📦 INSTALLING SENSORS MONITOR APPLET FOR PANEL...${NC}\n" + +mkdir -p "${HOME}/.local/share/cinnamon/applets" +cd "${HOME}/.local/share/cinnamon/applets" +wget -O sensors-monitor.zip "https://cinnamon-spices.linuxmint.com/files/applets/Sensors@claudiux.zip" +unzip sensors-monitor.zip -d Sensors@claudiux +rm sensors-monitor.zip +cd ${HOME} + +echo "✅ Applet installed. You can now add 'Sensors Monitor' to your panel manually." ### SET DEFAULT SESSION TO CINNAMON ### -echo "${YELLOW} SETTING CINNAMON AS DEFAULT DESKTOP SESSION ${NC}\n" +echo "${YELLOW} ⚙️ SETTING CINNAMON AS DEFAULT DESKTOP SESSION ${NC}\n" # Works for most LightDM and GDM-based setups echo "cinnamon" > "${HOME}/.xsession" @@ -37,7 +48,7 @@ EOL echo "${GREEN} Cinnamon session will be loaded by default on next login! ${NC}\n" ### DOWNLOAD & INSTALL QORTAL CORE ### -echo "${YELLOW} DOWNLOADING QORTAL CORE AND QORT SCRIPT ${NC}\n" +echo "${YELLOW} ⬇️ DOWNLOADING QORTAL CORE AND QORT SCRIPT ${NC}\n" cd "${HOME}" mkdir -p backups @@ -93,7 +104,7 @@ rsync -raPz Machine-files/* "${HOME}" rm -rf download Machine-files ### CINNAMON THEMING - ALWAYS APPLIES EVEN IF CINNAMON ISN'T ACTIVE ### -echo "${YELLOW} INSTALLING WINDOWS 10 THEMES FOR CINNAMON ${NC}\n" +echo "${YELLOW} 📦 INSTALLING WINDOWS 10 THEMES FOR CINNAMON ${NC}\n" mkdir -p "${HOME}/.themes" @@ -108,7 +119,7 @@ fi [ ! -d "${HOME}/.themes/Windows-10-Dark" ] && git clone https://github.com/B00merang-Project/Windows-10-Dark.git "${HOME}/.themes/Windows-10-Dark" ### APPLY THEMES (WILL WORK AFTER REBOOT TOO) ### -echo "${YELLOW} APPLYING CINNAMON THEMES ${NC}\n" +echo "${YELLOW} ⚙️ APPLYING CINNAMON THEMES ${NC}\n" gsettings set org.cinnamon.desktop.wm.preferences theme "Windows-10-Dark" || true gsettings set org.cinnamon.desktop.interface gtk-theme "Windows-10-Dark" || true @@ -118,7 +129,7 @@ gsettings set org.cinnamon.desktop.interface icon-theme "Yaru-blue-dark" || true gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' || true ### CINNAMON PANEL + MENU CUSTOMIZATION ### -echo "${YELLOW} CREATING CINNAMON PANEL AND MENU CONFIGURATION SCRIPT AND SETTING TO RUN POST-STARTUP NEXT TIME. ${NC}\n" +echo "${YELLOW} ⚙️ CREATING CINNAMON PANEL AND MENU CONFIGURATION SCRIPT AND SETTING TO RUN POST-STARTUP NEXT TIME. ${NC}\n" cat > "$HOME/apply-cinnamon-settings.sh" <<'EOL' #!/bin/bash @@ -142,7 +153,7 @@ EOL chmod +x "$HOME/apply-cinnamon-settings.sh" -echo "${GREEN} Downloading additional ${NC}${YELLOW}CINNAMON${NC}${GREEN}settings${NC}\n" +echo "${GREEN} ⬇️ Downloading additional ${NC}${YELLOW}CINNAMON${NC}${GREEN}settings${NC}\n" curl -L -O https://raw.githubusercontent.com/crowetic/QORTector-scripts/main/cinnamon-settings.json mkdir -p "${HOME}/.cinnamon/configs/menu@cinnamon.org" @@ -231,7 +242,7 @@ Categories=Qortal; EOL echo "${CYAN} Adding CUSTOM QORTAL ICON THEME...${NC}\n" -cd "${HOME}/Pictures/icons/icons_theme" +curl -L -O https://raw.githubusercontent.com/crowetic/QORTector-scripts/main/add-qortal-icons-theme.sh chmod +x add-qortal-icons-theme.sh ./add-qortal-icons-theme.sh cd "${HOME}" @@ -244,7 +255,7 @@ echo "${YELLOW} SETTING CRONTAB TASKS ${NC}\n" } > rebuilt-machine-cron crontab rebuilt-machine-cron -rm -f rebuilt-machine-cron configure-terminal-and-more.sh +rm -f rebuilt-machine-cron configure-terminal-and-more.sh add-qortal-icons-theme.sh cinnamon-settings.json echo "${YELLOW} Refreshing Cinnamon Panel/Menu to apply changes ${NC}" cinnamon --replace > /dev/null 2>&1 & diff --git a/vm-tool-setup.sh b/vm-tool-setup.sh new file mode 100755 index 0000000..e5e2095 --- /dev/null +++ b/vm-tool-setup.sh @@ -0,0 +1,6 @@ +#!/bin/bash +sudo apt update +sudo apt -y upgrade +sudo apt install -y qemu-guest-agent util-linux haveged +sudo fstrim -av +sudo systemctl enable --now qemu-guest-agent