XFCE_AND_HYPERLAND
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
_ _ _ ___ ____
|
||||
| (_) |__ _ __ ___ / _ \/ ___|
|
||||
| | | '_ \| '__/ _ \ | | \___ \
|
||||
| | | |_) | | | __/ |_| |___) |
|
||||
|_|_|_.__/|_| \___|\___/|____/
|
||||
|
||||
COMPUTER SCIENCE
|
||||
SECTOR 07
|
||||
LIBRE PHONE PROJECT
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
|
||||
|
||||
███████╗ ██████╗ ██████╗██╗ ██████╗ ██████╗██╗ ██╗██████╗ ███████╗██████╗ ███████╗███████╗███╗ ██╗ ██████╗
|
||||
██╔════╝██╔═══██╗██╔════╝██║██╔═══██╗ ██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔════╝████╗ ██║██╔════╝
|
||||
███████╗██║ ██║██║ ██║██║ ██║ ██║ ╚████╔╝ ██████╔╝█████╗ ██████╔╝█████╗ █████╗ ██╔██╗ ██║██║ ███╗
|
||||
╚════██║██║ ██║██║ ██║██║ ██║ ██║ ╚██╔╝ ██╔══██╗██╔══╝ ██╔══██╗██╔══╝ ██╔══╝ ██║╚██╗██║██║ ██║
|
||||
███████║╚██████╔╝╚██████╗██║╚██████╔╝ ╚██████╗ ██║ ██████╔╝███████╗██║ ██║███████╗███████╗██║ ╚████║╚██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═══╝ ╚═════╝
|
||||
|
||||
@@ -0,0 +1,193 @@
|
||||
#!/usr/bin/env bash
|
||||
# ------------------------------------------------------------
|
||||
# SCE OS – centered TUI (simple “SCE OS” banner) using gum
|
||||
# ------------------------------------------------------------
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 1️⃣ Install gum (pacman) if missing
|
||||
# ------------------------------------------------------------
|
||||
install_gum() {
|
||||
if ! command -v pacman &>/dev/null; then
|
||||
echo "Error: pacman not found – this script works only on Arch‑based systems."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if command -v gum &>/dev/null; then
|
||||
echo "gum already installed (version: $(gum --version))."
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Updating package database..."
|
||||
sudo pacman -Sy --noconfirm
|
||||
|
||||
echo "Installing gum..."
|
||||
sudo pacman -S --noconfirm gum
|
||||
|
||||
echo "gum installed successfully (version: $(gum --version))."
|
||||
}
|
||||
install_gum
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 2️⃣ Helpers for centering
|
||||
# ------------------------------------------------------------
|
||||
term_width() { tput cols; }
|
||||
term_height() { tput lines; }
|
||||
|
||||
center_horiz() {
|
||||
local text="$1"
|
||||
local width=$(term_width)
|
||||
local pad=$(( (width - ${#text}) / 2 ))
|
||||
printf "%*s%s" "$pad" "" "$text"
|
||||
}
|
||||
|
||||
center_vertically() {
|
||||
local lines=$1
|
||||
local height=$(term_height)
|
||||
local pad=$(( (height - lines) / 2 ))
|
||||
for ((i=0;i<pad;i++)); do echo; done
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 3️⃣ Simple banner – “SCE OS”
|
||||
# ------------------------------------------------------------
|
||||
BANNER="SCE OS"
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 4️⃣ Pause helper
|
||||
# ------------------------------------------------------------
|
||||
pause() {
|
||||
read -rp $'\nPress ENTER to return to the previous menu…' </dev/tty
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 5️⃣ Render a centered menu (banner + choices)
|
||||
# ------------------------------------------------------------
|
||||
render_menu() {
|
||||
local -n items=$1 # name‑reference to array of choices
|
||||
local title="${2:-}" # optional title (already centred)
|
||||
|
||||
# total lines = banner + optional title + blank line + number of items
|
||||
local total=$(( 1 + ( [[ -n $title ]] && echo 1 || echo 0 ) + 1 + ${#items[@]} ))
|
||||
|
||||
clear
|
||||
center_vertically "$total"
|
||||
|
||||
echo "$(center_horiz "$BANNER")"
|
||||
echo # blank line after banner
|
||||
[[ -n $title ]] && echo "$(center_horiz "$title")"
|
||||
|
||||
# write centred choices to a temp file for gum
|
||||
local tmp; tmp=$(mktemp)
|
||||
for choice in "${items[@]}"; do
|
||||
echo "$(center_horiz "$choice")" >>"$tmp"
|
||||
done
|
||||
|
||||
gum choose --cursor.foreground 212 --selected.foreground 212 <"$tmp"
|
||||
rm "$tmp"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 6️⃣ Sub‑menus
|
||||
# ------------------------------------------------------------
|
||||
terminal_menu() {
|
||||
local opts=(
|
||||
"Open new terminal session"
|
||||
"Back to main menu"
|
||||
)
|
||||
while true; do
|
||||
sel=$(render_menu opts "Terminal")
|
||||
case "$sel" in
|
||||
*"Open new terminal session"*)
|
||||
echo "Launching a new terminal…"
|
||||
gnome-terminal &
|
||||
pause
|
||||
;;
|
||||
*"Back to main menu"*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
system_menu() {
|
||||
local opts=(
|
||||
"Get repository update"
|
||||
"Full‑system update and upgrade"
|
||||
"Back to main menu"
|
||||
)
|
||||
while true; do
|
||||
sel=$(render_menu opts "System")
|
||||
case "$sel" in
|
||||
*"Get repository update"*)
|
||||
echo "Running repository update (git pull …)"
|
||||
(cd ~/myrepo && git pull) # adjust as needed
|
||||
pause
|
||||
;;
|
||||
*"Full‑system update and upgrade"*)
|
||||
echo "Performing full system upgrade…"
|
||||
sudo pacman -Syu --noconfirm
|
||||
pause
|
||||
;;
|
||||
*"Back to main menu"*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
software_menu() {
|
||||
local opts=(
|
||||
"Install / update Blender (~/Programs/Blender-version)"
|
||||
"Install / update Nekoray (~/Programs/nekoray.appimage)"
|
||||
"Back to main menu"
|
||||
)
|
||||
while true; do
|
||||
sel=$(render_menu opts "Software")
|
||||
case "$sel" in
|
||||
*"Blender"* )
|
||||
echo "Downloading latest Blender into ~/Programs/Blender-version …"
|
||||
mkdir -p "$HOME/Programs/Blender-version"
|
||||
wget -qO- "https://download.blender.org/release/Blender3.6/blender-3.6.0-linux-x64.tar.xz" |
|
||||
tar -xJ -C "$HOME/Programs/Blender-version" --strip-components=1
|
||||
pause
|
||||
;;
|
||||
*"Nekoray"* )
|
||||
echo "Fetching latest Nekoray AppImage into ~/Programs …"
|
||||
mkdir -p "$HOME/Programs"
|
||||
wget -O "$HOME/Programs/nekoray.appimage" \
|
||||
"https://github.com/nekoray/nekoray/releases/download/v2.16.0/nekoray-2.16.0-x86_64.AppImage"
|
||||
chmod +x "$HOME/Programs/nekoray.appimage"
|
||||
pause
|
||||
;;
|
||||
*"Back to main menu"* )
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# 7️⃣ Main menu (centered)
|
||||
# ------------------------------------------------------------
|
||||
main_menu() {
|
||||
local opts=(
|
||||
"Terminal"
|
||||
"System"
|
||||
"Software"
|
||||
"Quit"
|
||||
)
|
||||
while true; do
|
||||
choice=$(render_menu opts "SCE OS")
|
||||
case "$choice" in
|
||||
*"Terminal"*) terminal_menu ;;
|
||||
*"System"*) system_menu ;;
|
||||
*"Software"*) software_menu ;;
|
||||
*"Quit"*) clear; echo "Good‑bye!"; exit 0 ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu
|
||||
|
||||
Reference in New Issue
Block a user