chore(hygiene): remove legacy Arch Linux and imperative scripts
- Delete obsolete pacman, AUR, and shell-based update scripts - Remove imperative configuration refresh scripts replaced by Home Manager - Overhaul nomarchy-menu to remove Install/Remove submenus and legacy options - Clean up unused assets including applications/ directory and icons - Enforce strict upstream/downstream separation
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Finish the installation of Nomarchy with items that can only be done after logging in.
|
||||
|
||||
set -e
|
||||
|
||||
FIRST_RUN_MODE=~/.local/state/nomarchy/first-run.mode
|
||||
|
||||
if [[ -f $FIRST_RUN_MODE ]]; then
|
||||
rm -f "$FIRST_RUN_MODE"
|
||||
|
||||
bash "$OMARCHY_PATH/install/first-run/battery-monitor.sh"
|
||||
bash "$OMARCHY_PATH/install/first-run/cleanup-reboot-sudoers.sh"
|
||||
bash "$OMARCHY_PATH/install/first-run/firewall.sh"
|
||||
bash "$OMARCHY_PATH/install/first-run/dns-resolver.sh"
|
||||
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
|
||||
bash "$OMARCHY_PATH/install/first-run/elephant.sh"
|
||||
sudo rm -f /etc/sudoers.d/first-run
|
||||
|
||||
bash "$OMARCHY_PATH/install/first-run/welcome.sh"
|
||||
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
|
||||
fi
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Allow Chromium to sign in to Google accounts by adding the correct
|
||||
# oauth client id and secret to ~/.config/chromium-flags.conf.
|
||||
|
||||
if [[ -f ~/.config/chromium-flags.conf ]]; then
|
||||
CONF=~/.config/chromium-flags.conf
|
||||
|
||||
grep -qxF -- "--oauth2-client-id=77185425430.apps.googleusercontent.com" "$CONF" ||
|
||||
echo "--oauth2-client-id=77185425430.apps.googleusercontent.com" >>"$CONF"
|
||||
|
||||
grep -qxF -- "--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT" "$CONF" ||
|
||||
echo "--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT" >>"$CONF"
|
||||
|
||||
echo "Now you can login to your Google Account in Chromium."
|
||||
fi
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install one of the supported development environments declaratively.
|
||||
# Usually called via Install > Development > * in the Nomarchy Menu.
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: nomarchy-install-dev-env <ruby|node|bun|deno|go|laravel|symfony|php|python|elixir|phoenix|rust|java|zig|ocaml|dotnet|clojure|scala>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
install_php() {
|
||||
echo -e "Installing PHP environment declaratively...\n"
|
||||
nomarchy-pkg-add php
|
||||
nomarchy-pkg-add phpExtensions.bcmath
|
||||
nomarchy-pkg-add phpExtensions.intl
|
||||
nomarchy-pkg-add phpExtensions.iconv
|
||||
nomarchy-pkg-add phpExtensions.openssl
|
||||
nomarchy-pkg-add phpExtensions.pdo_sqlite
|
||||
nomarchy-pkg-add phpExtensions.pdo_mysql
|
||||
nomarchy-pkg-add phpPackages.composer
|
||||
echo -e "\nPHP environment added to your packages."
|
||||
}
|
||||
|
||||
install_node() {
|
||||
echo -e "Installing Node.js with mise...\n"
|
||||
mise use --global node
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
ruby)
|
||||
echo -e "Installing Ruby with mise...\n"
|
||||
nomarchy-pkg-add libyaml
|
||||
mise use --global ruby@latest
|
||||
echo -e "\nYou can now use: ruby --version"
|
||||
;;
|
||||
node)
|
||||
install_node
|
||||
;;
|
||||
bun)
|
||||
echo -e "Installing Bun with mise...\n"
|
||||
mise use -g bun@latest
|
||||
;;
|
||||
deno)
|
||||
echo -e "Installing Deno with mise...\n"
|
||||
mise use -g deno@latest
|
||||
;;
|
||||
go)
|
||||
echo -e "Installing Go with mise...\n"
|
||||
mise use --global go@latest
|
||||
;;
|
||||
php)
|
||||
install_php
|
||||
;;
|
||||
laravel)
|
||||
echo -e "Installing Laravel stack...\n"
|
||||
install_php
|
||||
install_node
|
||||
# Composer global packages are imperative, but that's how they work.
|
||||
composer global require laravel/installer
|
||||
echo -e "\nYou can now run: laravel new myproject"
|
||||
;;
|
||||
python)
|
||||
echo -e "Installing Python with mise...\n"
|
||||
mise use --global python@latest
|
||||
echo -e "\nInstalling uv...\n"
|
||||
# uv can be installed via nix
|
||||
nomarchy-pkg-add uv
|
||||
;;
|
||||
rust)
|
||||
echo -e "Installing Rust declaratively...\n"
|
||||
# Instead of shell script from website, use nixpkgs
|
||||
nomarchy-pkg-add rustup
|
||||
rustup-init -y
|
||||
;;
|
||||
# Add more language cases as needed, utilizing mise or nixpkgs.
|
||||
*)
|
||||
# Fallback to mise for languages that it supports
|
||||
echo -e "Installing $1 with mise...\n"
|
||||
if mise use --global "$1@latest"; then
|
||||
echo "$1 installed successfully."
|
||||
else
|
||||
echo "Unsupported language: $1"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -1,31 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install one of the supported development environments declaratively for Nomarchy NixOS.
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: nomarchy-install-dev-env <ruby|node|bun|deno|go|laravel|symfony|php|python|elixir|phoenix|rust|java|zig|ocaml|dotnet|clojure|scala>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
php)
|
||||
echo -e "Installing PHP and extensions declaratively...\n"
|
||||
# This uses the already refactored declarative nomarchy-pkg-add
|
||||
nomarchy-pkg-add php
|
||||
nomarchy-pkg-add phpExtensions.bcmath
|
||||
nomarchy-pkg-add phpExtensions.intl
|
||||
nomarchy-pkg-add phpExtensions.iconv
|
||||
nomarchy-pkg-add phpExtensions.openssl
|
||||
nomarchy-pkg-add phpExtensions.pdo_sqlite
|
||||
nomarchy-pkg-add phpExtensions.pdo_mysql
|
||||
nomarchy-pkg-add phpPackages.composer
|
||||
echo -e "\nPHP environment added to your packages."
|
||||
;;
|
||||
# The rest use 'mise' which is already installed and manages its own state in ~/.config/mise
|
||||
*)
|
||||
# Delegate to the original script logic if mise is used
|
||||
# Or we can just call the mise command directly if it's a simple case.
|
||||
# Let's keep the mise-based language installs as they are, but make sure mise is available.
|
||||
/etc/profiles/per-user/$USER/bin/nomarchy-install-dev-env.original "$@"
|
||||
;;
|
||||
esac
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Configure Docker declaratively and provide instructions for running DBs.
|
||||
# Usually called via Install > Development > Docker DB from the Nomarchy Menu.
|
||||
|
||||
FEATURE_FILE="/etc/nixos/nomarchy-features/docker.nix"
|
||||
|
||||
if [ ! -f "$FEATURE_FILE" ]; then
|
||||
sudo mkdir -p "/etc/nixos/nomarchy-features"
|
||||
cat <<EOF | sudo tee "$FEATURE_FILE" > /dev/null
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
virtualisation.docker.enable = true;
|
||||
users.users.\${config.users.users.mainUser}.extraGroups = [ "docker" ]; # Replace mainUser with your username
|
||||
}
|
||||
EOF
|
||||
echo "Created $FEATURE_FILE to enable Docker."
|
||||
echo "IMPORTANT: To finish enabling Docker, add './nomarchy-features/docker.nix' to your imports list in /etc/nixos/system.nix or /etc/nixos/flake.nix,"
|
||||
echo "then run 'sys-update'."
|
||||
echo "Wait for the update to complete before running docker commands."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB" "MSSQL")
|
||||
|
||||
if (( $# == 0 )); then
|
||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --header "Select database (ensure Docker is running)") || exit 0
|
||||
else
|
||||
choices="$@"
|
||||
fi
|
||||
|
||||
if [[ -n $choices ]]; then
|
||||
for db in $choices; do
|
||||
case $db in
|
||||
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
|
||||
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres18 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:18 ;;
|
||||
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
|
||||
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
|
||||
MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;;
|
||||
MSSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:1433:1433" --name mssql -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e "MSSQL_SA_PASSWORD=@dmin123" mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04 ;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
echo "No databases selected for installation."
|
||||
fi
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install and start the Dropbox service. Must then be authenticated via the web.
|
||||
|
||||
echo "Installing all dependencies..."
|
||||
nomarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
|
||||
|
||||
echo "Starting Dropbox..."
|
||||
uwsm-app -- dropbox-cli start &>/dev/null &
|
||||
echo "See Dropbox icon behind hover tray in top right and right-click for setup."
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install and launch Geforce Now.
|
||||
|
||||
set -e
|
||||
|
||||
nomarchy-pkg-add flatpak
|
||||
cd /tmp
|
||||
|
||||
# Download and run GeForce NOW
|
||||
curl -LO https://international.download.nvidia.com/GFNLinux/GeForceNOWSetup.bin
|
||||
chmod +x GeForceNOWSetup.bin
|
||||
./GeForceNOWSetup.bin
|
||||
|
||||
# Ensure a separate browser process not started by GFN is available.
|
||||
# If not, it seems like GFN has a tendency to hang on login.
|
||||
setsid nomarchy-launch-browser
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install the NordVPN service with optional GUI.
|
||||
|
||||
echo "Installing NordVPN..."
|
||||
nomarchy-pkg-aur-add nordvpn-bin
|
||||
|
||||
echo "Enabling NordVPN daemon..."
|
||||
sudo systemctl enable --now nordvpnd
|
||||
|
||||
echo "Adding user to nordvpn group..."
|
||||
sudo usermod -aG nordvpn "$USER"
|
||||
|
||||
echo -e "\nNordVPN installed! After reboot, run 'nordvpn login' to authenticate."
|
||||
|
||||
echo
|
||||
gum confirm "Reboot now to make NordVPN usable?" && nomarchy-system-reboot
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Configure Steam declaratively for NixOS
|
||||
|
||||
FEATURE_FILE="/etc/nixos/nomarchy-features/steam.nix"
|
||||
|
||||
if [ -f "$FEATURE_FILE" ]; then
|
||||
echo "Steam is already configured in $FEATURE_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sudo mkdir -p "/etc/nixos/nomarchy-features"
|
||||
cat <<EOF | sudo tee "$FEATURE_FILE" > /dev/null
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.steam.enable = true;
|
||||
hardware.graphics.enable32Bit = true; # Needed for many games
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "Created $FEATURE_FILE."
|
||||
echo "IMPORTANT: To finish enabling Steam, add './nomarchy-features/steam.nix' to your imports list in /etc/nixos/system.nix or /etc/nixos/flake.nix,"
|
||||
echo "then run 'sys-update'."
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Configure Tailscale declaratively for NixOS
|
||||
|
||||
FEATURE_FILE="/etc/nixos/nomarchy-features/tailscale.nix"
|
||||
|
||||
if [ -f "$FEATURE_FILE" ]; then
|
||||
echo "Tailscale is already configured in $FEATURE_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sudo mkdir -p "/etc/nixos/nomarchy-features"
|
||||
cat <<EOF | sudo tee "$FEATURE_FILE" > /dev/null
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.tailscale.enable = true;
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "Created $FEATURE_FILE."
|
||||
echo "IMPORTANT: To finish enabling Tailscale, add './nomarchy-features/tailscale.nix' to your imports list in /etc/nixos/system.nix or /etc/nixos/flake.nix,"
|
||||
echo "then run 'sys-update'."
|
||||
echo "After sys-update completes, you can log in by running 'sudo tailscale up'."
|
||||
|
||||
nomarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
|
||||
@@ -1,39 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install one of the approved terminals and set it as the default for Nomarchy (Super + Return etc).
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "Usage: nomarchy-install-terminal [alacritty|ghostty|kitty]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
package="$1"
|
||||
|
||||
# Map package name to desktop entry ID
|
||||
case "$package" in
|
||||
alacritty) desktop_id="Alacritty.desktop" ;;
|
||||
ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;;
|
||||
kitty) desktop_id="kitty.desktop" ;;
|
||||
*)
|
||||
echo "Unknown terminal: $package"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Install package
|
||||
if nomarchy-pkg-add $package; then
|
||||
# Copy custom desktop entry for alacritty with X-TerminalArg* keys
|
||||
if [[ $package == "alacritty" ]]; then
|
||||
mkdir -p ~/.local/share/applications
|
||||
cp $OMARCHY_PATH/applications/Alacritty.desktop ~/.local/share/applications/
|
||||
fi
|
||||
|
||||
# Update xdg-terminals.list to prioritize the proper terminal
|
||||
cat >~/.config/xdg-terminals.list <<EOF
|
||||
# Terminal emulator preference order for xdg-terminal-exec
|
||||
# The first found and valid terminal will be used
|
||||
$desktop_id
|
||||
EOF
|
||||
else
|
||||
echo "Failed to install $package"
|
||||
fi
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install VSCode declaratively for Nomarchy NixOS.
|
||||
|
||||
echo "Installing VSCode..."
|
||||
nomarchy-pkg-add vscode
|
||||
|
||||
# VSCode still allows some runtime configuration in its JSON files.
|
||||
mkdir -p ~/.config/Code/User
|
||||
|
||||
# Ensure VSC's own auto-update feature is turned off
|
||||
if [ ! -f ~/.config/Code/User/settings.json ]; then
|
||||
echo '{"update.mode": "none"}' > ~/.config/Code/User/settings.json
|
||||
else
|
||||
# Update existing settings.json with update.mode: none using jq
|
||||
jq '. + {"update.mode": "none"}' ~/.config/Code/User/settings.json > ~/.config/Code/User/settings.json.tmp && mv ~/.config/Code/User/settings.json.tmp ~/.config/Code/User/settings.json
|
||||
fi
|
||||
|
||||
# Apply Nomarchy theme to VSCode
|
||||
nomarchy-theme-set-vscode
|
||||
|
||||
setsid code >/dev/null 2>&1 &
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Configure Xbox Controller support (xpadneo) declaratively for Nomarchy NixOS.
|
||||
|
||||
FEATURE_FILE="/etc/nixos/nomarchy-features/xbox-controller.nix"
|
||||
|
||||
if [ -f "$FEATURE_FILE" ]; then
|
||||
echo "Xbox controller support is already configured in $FEATURE_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sudo mkdir -p "/etc/nixos/nomarchy-features"
|
||||
cat <<EOF | sudo tee "$FEATURE_FILE" > /dev/null
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
hardware.xpadneo.enable = true;
|
||||
# Note: This automatically handles blacklisting xpad if needed and provides modules.
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "Created $FEATURE_FILE."
|
||||
echo "IMPORTANT: To finish enabling Xbox controller support, add './nomarchy-features/xbox-controller.nix' to your imports list in /etc/nixos/system.nix or /etc/nixos/flake.nix,"
|
||||
echo "then run 'sys-update'."
|
||||
@@ -58,30 +58,6 @@ open_in_editor() {
|
||||
nomarchy-launch-editor "$1"
|
||||
}
|
||||
|
||||
install() {
|
||||
present_terminal "echo 'Installing $1...'; nomarchy-pkg-add $2"
|
||||
}
|
||||
|
||||
install_and_launch() {
|
||||
present_terminal "echo 'Installing $1...'; nomarchy-pkg-add $2 && setsid gtk-launch $3"
|
||||
}
|
||||
|
||||
install_font() {
|
||||
present_terminal "echo 'Installing $1...'; nomarchy-pkg-add $2 && sleep 2 && nomarchy-font-set '$3'"
|
||||
}
|
||||
|
||||
install_terminal() {
|
||||
present_terminal "nomarchy-install-terminal $1"
|
||||
}
|
||||
|
||||
aur_install() {
|
||||
present_terminal "echo 'Installing $1 from AUR...'; nomarchy-pkg-aur-add $2"
|
||||
}
|
||||
|
||||
aur_install_and_launch() {
|
||||
present_terminal "echo 'Installing $1 from AUR...'; nomarchy-pkg-aur-add $2 && setsid gtk-launch $3"
|
||||
}
|
||||
|
||||
show_learn_menu() {
|
||||
case $(menu "Learn" " Keybindings\n Nomarchy\n Hyprland\n Arch\n Neovim\n Bash") in
|
||||
*Keybindings*) nomarchy-menu-keybindings ;;
|
||||
@@ -278,7 +254,7 @@ show_setup_config_menu() {
|
||||
show_setup_system_menu() {
|
||||
local options=""
|
||||
|
||||
if [[ -f ~/.local/state/nomarchy/toggles/suspend-off ]]; then
|
||||
if [[ $NOMARCHY_TOGGLE_SUSPEND == "false" ]]; then
|
||||
options="$options Enable Suspend"
|
||||
else
|
||||
options="$options Disable Suspend"
|
||||
@@ -298,216 +274,11 @@ show_setup_system_menu() {
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_menu() {
|
||||
case $(menu "Install" " Package\n AUR\n Web App\n TUI\n Service\n Style\n Development\n Editor\n Terminal\n AI\n Windows\n Gaming") in
|
||||
*Package*) terminal nomarchy-pkg-install ;;
|
||||
*AUR*) terminal nomarchy-pkg-aur-install ;;
|
||||
*Web*) present_terminal nomarchy-webapp-install ;;
|
||||
*TUI*) present_terminal nomarchy-tui-install ;;
|
||||
*Service*) show_install_service_menu ;;
|
||||
*Style*) show_install_style_menu ;;
|
||||
*Development*) show_install_development_menu ;;
|
||||
*Editor*) show_install_editor_menu ;;
|
||||
*Terminal*) show_install_terminal_menu ;;
|
||||
*AI*) show_install_ai_menu ;;
|
||||
*Windows*) present_terminal "nomarchy-windows-vm install" ;;
|
||||
*Gaming*) show_install_gaming_menu ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_service_menu() {
|
||||
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN [AUR]\n Bitwarden\n Chromium Account") in
|
||||
*Dropbox*) present_terminal nomarchy-install-dropbox ;;
|
||||
*Tailscale*) present_terminal nomarchy-install-tailscale ;;
|
||||
*NordVPN*) present_terminal nomarchy-install-nordvpn ;;
|
||||
*Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;;
|
||||
*Chromium*) present_terminal nomarchy-install-chromium-google-account ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_editor_menu() {
|
||||
case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in
|
||||
*VSCode*) present_terminal nomarchy-install-vscode ;;
|
||||
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
|
||||
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
|
||||
*Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
||||
*Helix*) install "Helix" "helix" ;;
|
||||
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_terminal_menu() {
|
||||
case $(menu "Install" " Alacritty\n Ghostty\n Kitty") in
|
||||
*Alacritty*) install_terminal "alacritty" ;;
|
||||
*Ghostty*) install_terminal "ghostty" ;;
|
||||
*Kitty*) install_terminal "kitty" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_ai_menu() {
|
||||
ollama_pkg=$(
|
||||
(command -v nvidia-smi &>/dev/null && echo ollama-cuda) ||
|
||||
(command -v rocminfo &>/dev/null && echo ollama-rocm) ||
|
||||
echo ollama
|
||||
)
|
||||
|
||||
case $(menu "Install" " Dictation\n LM Studio\n Ollama\n Crush") in
|
||||
*Dictation*) present_terminal nomarchy-voxtype-install ;;
|
||||
*Studio*) install "LM Studio" "lmstudio-bin" ;;
|
||||
*Ollama*) install "Ollama" $ollama_pkg ;;
|
||||
*Crush*) install "Crush" "crush-bin" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_gaming_menu() {
|
||||
case $(menu "Install" " Steam\n NVIDIA GeForce NOW\n RetroArch [AUR]\n Minecraft\n Xbox Controller [AUR]") in
|
||||
*Steam*) present_terminal nomarchy-install-steam ;;
|
||||
*GeForce*) present_terminal nomarchy-install-geforce-now ;;
|
||||
*RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
|
||||
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
|
||||
*Xbox*) present_terminal nomarchy-install-xbox-controllers ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_style_menu() {
|
||||
case $(menu "Install" " Theme\n Background\n Font") in
|
||||
*Theme*) present_terminal nomarchy-theme-install ;;
|
||||
*Background*) nomarchy-theme-bg-install ;;
|
||||
*Font*) show_install_font_menu ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_font_menu() {
|
||||
case $(menu "Install" " Cascadia Mono\n Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono\n Iosevka" "--width 350") in
|
||||
*Cascadia*) install_font "Cascadia Mono" "ttf-cascadia-mono-nerd" "CaskaydiaMono Nerd Font" ;;
|
||||
*Meslo*) install_font "Meslo LG Mono" "ttf-meslo-nerd" "MesloLGL Nerd Font" ;;
|
||||
*Fira*) install_font "Fira Code" "ttf-firacode-nerd" "FiraCode Nerd Font" ;;
|
||||
*Victor*) install_font "Victor Code" "ttf-victor-mono-nerd" "VictorMono Nerd Font" ;;
|
||||
*Bistream*) install_font "Bistream Vera Code" "ttf-bitstream-vera-mono-nerd" "BitstromWera Nerd Font" ;;
|
||||
*Iosevka*) install_font "Iosevka" "ttf-iosevka-nerd" "Iosevka Nerd Font Mono" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_development_menu() {
|
||||
case $(menu "Install" " Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure\n Scala") in
|
||||
*Rails*) present_terminal "nomarchy-install-dev-env ruby" ;;
|
||||
*Docker*) present_terminal nomarchy-install-docker-dbs ;;
|
||||
*JavaScript*) show_install_javascript_menu ;;
|
||||
*Go*) present_terminal "nomarchy-install-dev-env go" ;;
|
||||
*PHP*) show_install_php_menu ;;
|
||||
*Python*) present_terminal "nomarchy-install-dev-env python" ;;
|
||||
*Elixir*) show_install_elixir_menu ;;
|
||||
*Zig*) present_terminal "nomarchy-install-dev-env zig" ;;
|
||||
*Rust*) present_terminal "nomarchy-install-dev-env rust" ;;
|
||||
*Java*) present_terminal "nomarchy-install-dev-env java" ;;
|
||||
*NET*) present_terminal "nomarchy-install-dev-env dotnet" ;;
|
||||
*OCaml*) present_terminal "nomarchy-install-dev-env ocaml" ;;
|
||||
*Clojure*) present_terminal "nomarchy-install-dev-env clojure" ;;
|
||||
*Scala*) present_terminal "nomarchy-install-dev-env scala" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_javascript_menu() {
|
||||
case $(menu "Install" " Node.js\n Bun\n Deno") in
|
||||
*Node*) present_terminal "nomarchy-install-dev-env node" ;;
|
||||
*Bun*) present_terminal "nomarchy-install-dev-env bun" ;;
|
||||
*Deno*) present_terminal "nomarchy-install-dev-env deno" ;;
|
||||
*) show_install_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_php_menu() {
|
||||
case $(menu "Install" " PHP\n Laravel\n Symfony") in
|
||||
*PHP*) present_terminal "nomarchy-install-dev-env php" ;;
|
||||
*Laravel*) present_terminal "nomarchy-install-dev-env laravel" ;;
|
||||
*Symfony*) present_terminal "nomarchy-install-dev-env symfony" ;;
|
||||
*) show_install_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_elixir_menu() {
|
||||
case $(menu "Install" " Elixir\n Phoenix") in
|
||||
*Elixir*) present_terminal "nomarchy-install-dev-env elixir" ;;
|
||||
*Phoenix*) present_terminal "nomarchy-install-dev-env phoenix" ;;
|
||||
*) show_install_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_remove_menu() {
|
||||
case $(menu "Remove" " Package\n Web App\n TUI\n Development\n Preinstalls\n Dictation\n Theme\n Windows\n Fingerprint\n Fido2") in
|
||||
*Package*) terminal nomarchy-pkg-remove ;;
|
||||
*Web*) present_terminal nomarchy-webapp-remove ;;
|
||||
*TUI*) present_terminal nomarchy-tui-remove ;;
|
||||
*Development*) show_remove_development_menu ;;
|
||||
*Preinstalls*) present_terminal nomarchy-remove-preinstalls ;;
|
||||
*Dictation*) present_terminal nomarchy-voxtype-remove ;;
|
||||
*Theme*) present_terminal nomarchy-theme-remove ;;
|
||||
*Windows*) present_terminal "nomarchy-windows-vm remove" ;;
|
||||
*Fingerprint*) present_terminal "nomarchy-setup-fingerprint --remove" ;;
|
||||
*Fido2*) present_terminal "nomarchy-setup-fido2 --remove" ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_remove_development_menu() {
|
||||
case $(menu "Remove" " Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure\n Scala") in
|
||||
*Rails*) present_terminal "nomarchy-remove-dev-env ruby" ;;
|
||||
*JavaScript*) show_remove_javascript_menu ;;
|
||||
*Go*) present_terminal "nomarchy-remove-dev-env go" ;;
|
||||
*PHP*) show_remove_php_menu ;;
|
||||
*Python*) present_terminal "nomarchy-remove-dev-env python" ;;
|
||||
*Elixir*) show_remove_elixir_menu ;;
|
||||
*Zig*) present_terminal "nomarchy-remove-dev-env zig" ;;
|
||||
*Rust*) present_terminal "nomarchy-remove-dev-env rust" ;;
|
||||
*Java*) present_terminal "nomarchy-remove-dev-env java" ;;
|
||||
*NET*) present_terminal "nomarchy-remove-dev-env dotnet" ;;
|
||||
*OCaml*) present_terminal "nomarchy-remove-dev-env ocaml" ;;
|
||||
*Clojure*) present_terminal "nomarchy-remove-dev-env clojure" ;;
|
||||
*Scala*) present_terminal "nomarchy-remove-dev-env scala" ;;
|
||||
*) show_remove_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_remove_javascript_menu() {
|
||||
case $(menu "Remove" " Node.js\n Bun\n Deno") in
|
||||
*Node*) present_terminal "nomarchy-remove-dev-env node" ;;
|
||||
*Bun*) present_terminal "nomarchy-remove-dev-env bun" ;;
|
||||
*Deno*) present_terminal "nomarchy-remove-dev-env deno" ;;
|
||||
*) show_remove_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_remove_php_menu() {
|
||||
case $(menu "Remove" " PHP\n Laravel\n Symfony") in
|
||||
*PHP*) present_terminal "nomarchy-remove-dev-env php" ;;
|
||||
*Laravel*) present_terminal "nomarchy-remove-dev-env laravel" ;;
|
||||
*Symfony*) present_terminal "nomarchy-remove-dev-env symfony" ;;
|
||||
*) show_remove_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_remove_elixir_menu() {
|
||||
case $(menu "Remove" " Elixir\n Phoenix") in
|
||||
*Elixir*) present_terminal "nomarchy-remove-dev-env elixir" ;;
|
||||
*Phoenix*) present_terminal "nomarchy-remove-dev-env phoenix" ;;
|
||||
*) show_remove_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_menu() {
|
||||
case $(menu "Update" " Nomarchy\n Channel\n Config\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone\n Time") in
|
||||
case $(menu "Update" " Nomarchy\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone\n Time") in
|
||||
*Nomarchy*) present_terminal nomarchy-update ;;
|
||||
*Channel*) show_update_channel_menu ;;
|
||||
*Config*) show_update_config_menu ;;
|
||||
*Themes*) present_terminal nomarchy-theme-update ;;
|
||||
*Process*) show_update_process_menu ;;
|
||||
*Hardware*) show_update_hardware_menu ;;
|
||||
@@ -518,16 +289,6 @@ show_update_menu() {
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_channel_menu() {
|
||||
case $(menu "Update channel" "🟢 Stable\n🟡 RC\n🟠 Edge\n🔴 Dev") in
|
||||
*Stable*) present_terminal "nomarchy-channel-set stable" ;;
|
||||
*RC*) present_terminal "nomarchy-channel-set rc" ;;
|
||||
*Edge*) present_terminal "nomarchy-channel-set edge" ;;
|
||||
*Dev*) present_terminal "nomarchy-channel-set dev" ;;
|
||||
*) show_update_menu ;;
|
||||
esac
|
||||
}
|
||||
show_update_process_menu() {
|
||||
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n Walker\n Waybar") in
|
||||
*Hypridle*) nomarchy-restart-hypridle ;;
|
||||
@@ -539,20 +300,7 @@ show_update_process_menu() {
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_config_menu() {
|
||||
case $(menu "Use default config" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Plymouth\n Swayosd\n Tmux\n Walker\n Waybar") in
|
||||
*Hyprland*) present_terminal nomarchy-refresh-hyprland ;;
|
||||
*Hypridle*) present_terminal nomarchy-refresh-hypridle ;;
|
||||
*Hyprlock*) present_terminal nomarchy-refresh-hyprlock ;;
|
||||
*Hyprsunset*) present_terminal nomarchy-refresh-hyprsunset ;;
|
||||
*Plymouth*) present_terminal nomarchy-refresh-plymouth ;;
|
||||
*Swayosd*) present_terminal nomarchy-refresh-swayosd ;;
|
||||
*Tmux*) present_terminal nomarchy-refresh-tmux ;;
|
||||
*Walker*) present_terminal nomarchy-refresh-walker ;;
|
||||
*Waybar*) present_terminal nomarchy-refresh-waybar ;;
|
||||
*) show_update_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
show_update_hardware_menu() {
|
||||
case $(menu "Restart" " Audio\n Wi-Fi\n Bluetooth") in
|
||||
@@ -577,7 +325,7 @@ show_about() {
|
||||
|
||||
show_system_menu() {
|
||||
local options=" Screensaver\n Lock"
|
||||
[[ ! -f ~/.local/state/nomarchy/toggles/suspend-off ]] && options="$options\n Suspend"
|
||||
[[ $NOMARCHY_TOGGLE_SUSPEND != "false" ]] && options="$options\n Suspend"
|
||||
nomarchy-hibernation-available && options="$options\n Hibernate"
|
||||
options="$options\n Logout\n Restart\n Shutdown"
|
||||
|
||||
@@ -594,7 +342,7 @@ show_system_menu() {
|
||||
}
|
||||
|
||||
show_main_menu() {
|
||||
go_to_menu "$(menu "Go" " Apps\n Learn\n Trigger\n Style\n Setup\n Install\n Remove\n Update\n About\n System")"
|
||||
go_to_menu "$(menu "Go" " Apps\n Learn\n Trigger\n Style\n Setup\n Update\n About\n System")"
|
||||
}
|
||||
|
||||
go_to_menu() {
|
||||
@@ -611,8 +359,6 @@ go_to_menu() {
|
||||
*screenrecord*) show_screenrecord_menu ;;
|
||||
*setup*) show_setup_menu ;;
|
||||
*power*) show_setup_power_menu ;;
|
||||
*install*) show_install_menu ;;
|
||||
*remove*) show_remove_menu ;;
|
||||
*update*) show_update_menu ;;
|
||||
*about*) show_about ;;
|
||||
*system*) show_system_menu ;;
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Returns true if the AUR is up and available.
|
||||
# Used by nomarchy-update-system-pkgs to ensure the AUR is available before updating packages from it.
|
||||
|
||||
curl -sf --connect-timeout 30 --retry 3 --retry-delay 3 -A "nomarchy-update" \
|
||||
"https://aur.archlinux.org/rpc/?v=5&type=info&arg=base" >/dev/null
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "AUR is an Arch Linux concept and is not supported on NixOS."
|
||||
echo "Please use 'nomarchy-pkg-add' to install packages from nixpkgs."
|
||||
exit 1
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "AUR is an Arch Linux concept and is not supported on NixOS."
|
||||
echo "Please use 'nomarchy-pkg-add' to install packages from nixpkgs."
|
||||
exit 1
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Remove all the named packages from the system if they're installed (otherwise ignore).
|
||||
|
||||
for pkg in "$@"; do
|
||||
if pacman -Q "$pkg" &>/dev/null; then
|
||||
sudo pacman -Rns --noconfirm "$pkg"
|
||||
fi
|
||||
done
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Show a fuzzy-finder TUI for picking new Arch and OPR packages to install.
|
||||
|
||||
fzf_args=(
|
||||
--multi
|
||||
--preview 'pacman -Sii {1}'
|
||||
--preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select'
|
||||
--preview-label-pos='bottom'
|
||||
--preview-window 'down:65%:wrap'
|
||||
--bind 'alt-p:toggle-preview'
|
||||
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
|
||||
--bind 'alt-k:preview-up,alt-j:preview-down'
|
||||
--color 'pointer:green,marker:green'
|
||||
)
|
||||
|
||||
pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}")
|
||||
|
||||
if [[ -n $pkg_names ]]; then
|
||||
source nomarchy-sudo-keepalive
|
||||
|
||||
# Convert newline-separated selections to space-separated for pacman
|
||||
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -S --noconfirm
|
||||
nomarchy-show-done
|
||||
fi
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure all default .desktop, web apps, and TUIs are installed.
|
||||
|
||||
# Copy and sync icon files
|
||||
mkdir -p ~/.local/share/icons/hicolor/48x48/apps/
|
||||
cp ~/.local/share/nomarchy/applications/icons/*.png ~/.local/share/icons/hicolor/48x48/apps/
|
||||
gtk-update-icon-cache ~/.local/share/icons/hicolor &>/dev/null
|
||||
|
||||
# Copy .desktop declarations
|
||||
mkdir -p ~/.local/share/applications
|
||||
cp ~/.local/share/nomarchy/applications/*.desktop ~/.local/share/applications/
|
||||
cp ~/.local/share/nomarchy/applications/hidden/*.desktop ~/.local/share/applications/
|
||||
|
||||
# Refresh the webapps and TUIs
|
||||
bash $OMARCHY_PATH/install/packaging/icons.sh
|
||||
bash $OMARCHY_PATH/install/packaging/webapps.sh
|
||||
bash $OMARCHY_PATH/install/packaging/tuis.sh
|
||||
|
||||
update-desktop-database ~/.local/share/applications
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Refresh the ~/.config/chromium-flags.conf file from the Nomarchy defaults.
|
||||
|
||||
CONFIG_FILE="$HOME/.config/chromium-flags.conf"
|
||||
INSTALL_GOOGLE_ACCOUNTS=false
|
||||
|
||||
# Check if google accounts were installed
|
||||
if [[ -f $CONFIG_FILE ]] && \
|
||||
grep -q -- "--oauth2-client-id" "$CONFIG_FILE" && \
|
||||
grep -q -- "--oauth2-client-secret" "$CONFIG_FILE"; then
|
||||
INSTALL_GOOGLE_ACCOUNTS=true
|
||||
fi
|
||||
|
||||
# Refresh the Chromium configuration
|
||||
nomarchy-refresh-config chromium-flags.conf
|
||||
|
||||
# Re-install Google accounts if previously configured
|
||||
if [[ $INSTALL_GOOGLE_ACCOUNTS == "true" ]]; then
|
||||
nomarchy-install-chromium-google-account
|
||||
fi
|
||||
@@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copies the named config from ~/.local/share/nomarchy/config/X/Y/Z -> ~/.config/X/Y/Z.
|
||||
# If the config already exists, a backup of the existing will be taken as .bak.TIMESTAMP.
|
||||
|
||||
config_file=$1
|
||||
|
||||
if [[ -z $config_file ]]; then
|
||||
cat <<USAGE
|
||||
Usage: $0 [config_file]
|
||||
|
||||
Must provide a file path from the .config directory to be refreshed.
|
||||
To copy ~/.local/share/nomarchy/config/hypr/hyprlock.conf to ~/.config/hypr/hyprlock.conf
|
||||
|
||||
$0 hypr/hyprlock.conf
|
||||
USAGE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Backup the destination file (with timestamp) to avoid clobbering (Ex: hyprlock.conf.bak.1753817951)
|
||||
user_config_file="${HOME}/.config/$config_file"
|
||||
default_config_file="${HOME}/.local/share/nomarchy/config/$config_file"
|
||||
backup_config_file="$user_config_file.bak.$(date +%s)"
|
||||
|
||||
if [[ -f $user_config_file ]]; then
|
||||
# Create preliminary backup
|
||||
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null
|
||||
|
||||
# Replace config with new default
|
||||
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
|
||||
|
||||
# Compare and delete/inform accordingly
|
||||
if cmp -s "$user_config_file" "$backup_config_file"; then
|
||||
rm "$backup_config_file"
|
||||
else
|
||||
echo -e "\e[31mReplaced $user_config_file with new Nomarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m"
|
||||
diff "$user_config_file" "$backup_config_file" || true
|
||||
fi
|
||||
else
|
||||
# Config file did not exist already
|
||||
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
|
||||
fi
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user config for hypridle with the Nomarchy default and restart the service.
|
||||
|
||||
nomarchy-refresh-config hypr/hypridle.conf
|
||||
nomarchy-restart-hypridle
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite all the user configs in ~/.config/hypr with the Nomarchy defaults.
|
||||
|
||||
nomarchy-refresh-config hypr/autostart.conf
|
||||
nomarchy-refresh-config hypr/bindings.conf
|
||||
nomarchy-refresh-config hypr/input.conf
|
||||
nomarchy-refresh-config hypr/looknfeel.conf
|
||||
nomarchy-refresh-config hypr/hyprland.conf
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user config for hyprlock with the Nomarchy default.
|
||||
|
||||
nomarchy-refresh-config hypr/hyprlock.conf
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user config for hyprsunset with the Nomarchy default and restart the service.
|
||||
#
|
||||
nomarchy-refresh-config hypr/hyprsunset.conf
|
||||
nomarchy-restart-hyprsunset
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user config for the Limine bootloader and rebuild it.
|
||||
|
||||
if [[ -f /boot/EFI/Linux/nomarchy_linux.efi ]] && [[ -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi ]]; then
|
||||
echo "Cleanup extra UKI"
|
||||
sudo rm -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi
|
||||
fi
|
||||
echo "Resetting limine config"
|
||||
|
||||
sudo mv /boot/limine.conf /boot/limine.conf.bak
|
||||
|
||||
sudo cp ~/.local/share/nomarchy/default/limine/limine.conf /boot/limine.conf
|
||||
|
||||
sudo limine-update
|
||||
sudo limine-snapper-sync
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the package configuration for /etc/pacman with the Nomarchy default of using its dedicated mirrors and repositories, then update all packages.
|
||||
# This is used after switching between Nomarchy release channels to ensure the right packages for the right channel are available.
|
||||
|
||||
# Take backup of existing files
|
||||
sudo cp -f /etc/pacman.conf /etc/pacman.conf.bak
|
||||
sudo cp -f /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
|
||||
|
||||
channel="${1:-stable}"
|
||||
|
||||
if [[ $channel != "stable" && $channel != "rc" && $channel != "edge" ]]; then
|
||||
echo "Error: Invalid channel '$channel'. Must be one of: stable, rc, edge"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Setting channel to $channel"
|
||||
echo
|
||||
|
||||
sudo cp -f "$OMARCHY_PATH/default/pacman/pacman-$channel.conf" /etc/pacman.conf
|
||||
sudo cp -f "$OMARCHY_PATH/default/pacman/mirrorlist-$channel" /etc/pacman.d/mirrorlist
|
||||
|
||||
# Reset all package DBs and then update
|
||||
sudo pacman -Syyuu --noconfirm
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user config for the Plymouth drive decryption and boot sequence with the Nomarchy default and rebuild it.
|
||||
|
||||
sudo cp ~/.local/share/nomarchy/default/plymouth/* /usr/share/plymouth/themes/nomarchy/
|
||||
sudo plymouth-set-default-theme nomarchy
|
||||
|
||||
if command -v limine-mkinitcpio &>/dev/null; then
|
||||
sudo limine-mkinitcpio
|
||||
else
|
||||
sudo mkinitcpio -P
|
||||
fi
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Refresh the SDDM theme from default
|
||||
|
||||
sudo rm -rf /usr/share/sddm/themes/nomarchy
|
||||
sudo cp -r $OMARCHY_PATH/default/sddm/nomarchy /usr/share/sddm/themes/nomarchy
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user configs for swayosd (controls on-screen feedback for changing volume/songs etc) with the Nomarchy defaults and restart the service.
|
||||
|
||||
nomarchy-refresh-config swayosd/config.toml
|
||||
nomarchy-refresh-config swayosd/style.css
|
||||
nomarchy-restart-swayosd
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user tmux config with the Nomarchy default and reload tmux.
|
||||
|
||||
nomarchy-refresh-config tmux/tmux.conf
|
||||
nomarchy-restart-tmux
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user configs for the Walker application launcher (which also powers the Nomarchy Menu) and restart the services.
|
||||
|
||||
# Ensure walker is set to autostart
|
||||
mkdir -p ~/.config/autostart/
|
||||
cp $OMARCHY_PATH/default/walker/walker.desktop ~/.config/autostart/
|
||||
|
||||
# And restarts if it crashes or is killed
|
||||
mkdir -p ~/.config/systemd/user/app-walker@autostart.service.d/
|
||||
cp $OMARCHY_PATH/default/walker/restart.conf ~/.config/systemd/user/app-walker@autostart.service.d/restart.conf
|
||||
|
||||
systemctl --user daemon-reload
|
||||
|
||||
# Refresh configs
|
||||
nomarchy-refresh-config walker/config.toml
|
||||
nomarchy-refresh-config elephant/calc.toml
|
||||
nomarchy-refresh-config elephant/desktopapplications.toml
|
||||
|
||||
# Restart service
|
||||
nomarchy-restart-walker
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite the user configs for the Waybar menu bar with the Nomarchy defaults and restart the service.
|
||||
|
||||
nomarchy-refresh-config waybar/config.jsonc
|
||||
nomarchy-refresh-config waybar/style.css
|
||||
nomarchy-restart-waybar
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Attempt to reinstall all default Nomarchy packages and reset all the default configs.
|
||||
|
||||
echo -e "This will reinstall all the default Nomarchy packages and reset all default configs.\nWarning: All user changes to configs will be lost.\n"
|
||||
|
||||
if gum confirm "Are you sure you want to reinstall and lose all config changes?"; then
|
||||
nomarchy-reinstall-git
|
||||
nomarchy-reinstall-pkgs
|
||||
nomarchy-reinstall-configs
|
||||
|
||||
gum confirm "System has been reinstalled. Reboot?" && nomarchy-system-reboot
|
||||
fi
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Overwrite all user configs with the Nomarchy defaults.
|
||||
|
||||
if (( EUID == 0 )); then
|
||||
echo "Error: This script should not be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Resetting all Nomarchy configs"
|
||||
cp -R ~/.local/share/nomarchy/config/* ~/.config/
|
||||
cp ~/.local/share/nomarchy/default/bashrc ~/.bashrc
|
||||
echo '[[ -f ~/.bashrc ]] && . ~/.bashrc' | tee ~/.bash_profile >/dev/null
|
||||
|
||||
$(bash $OMARCHY_PATH/install/config/theme.sh)
|
||||
|
||||
nomarchy-refresh-limine
|
||||
nomarchy-refresh-plymouth
|
||||
nomarchy-nvim-setup
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Reinstall the Nomarchy configuration directory from the git source.
|
||||
|
||||
git clone --depth=1 "https://github.com/basecamp/nomarchy.git" ~/.local/share/nomarchy-new >/dev/null
|
||||
mv $OMARCHY_PATH ~/.local/share/nomarchy-old
|
||||
mv ~/.local/share/nomarchy-new $OMARCHY_PATH
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Reinstall all default Nomarchy packages from the stable channel and downgrade any packages that are too new.
|
||||
|
||||
# Set the package repository to the stable mirrors
|
||||
nomarchy-refresh-pacman
|
||||
|
||||
# Downgrade any packages to the stable setup
|
||||
sudo pacman -Suu --noconfirm
|
||||
|
||||
# Ensure all packages are installed
|
||||
mapfile -t packages < <(grep -v '^#' "$OMARCHY_PATH/install/nomarchy-base.packages" | grep -v '^$')
|
||||
sudo pacman -Syu --noconfirm --needed "${packages[@]}"
|
||||
@@ -1,112 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Remove a development environment that was previously installed via nomarchy-install-dev-env.
|
||||
# Usage: nomarchy-remove-dev-env <ruby|node|bun|deno|go|php|laravel|symfony|python|elixir|phoenix|zig|rust|java|dotnet|ocaml|clojure|scala>
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: nomarchy-remove-dev-env <ruby|node|bun|deno|go|php|laravel|symfony|python|elixir|phoenix|zig|rust|java|dotnet|ocaml|clojure|scala>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
remove_php() {
|
||||
sudo pacman -Rns --noconfirm php composer php-sqlite xdebug 2>/dev/null || true
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
ruby)
|
||||
echo -e "Removing Ruby...\n"
|
||||
mise uninstall ruby --all
|
||||
mise rm -g ruby
|
||||
rm -f ~/.gemrc
|
||||
;;
|
||||
node)
|
||||
echo -e "Removing Node.js...\n"
|
||||
mise uninstall node --all
|
||||
mise rm -g node
|
||||
;;
|
||||
bun)
|
||||
echo -e "Removing Bun...\n"
|
||||
mise uninstall bun --all
|
||||
mise rm -g bun
|
||||
;;
|
||||
deno)
|
||||
echo -e "Removing Deno...\n"
|
||||
mise uninstall deno --all
|
||||
mise rm -g deno
|
||||
;;
|
||||
go)
|
||||
echo -e "Removing Go...\n"
|
||||
mise uninstall go --all
|
||||
mise rm -g go
|
||||
;;
|
||||
php)
|
||||
echo -e "Removing PHP...\n"
|
||||
remove_php
|
||||
;;
|
||||
laravel)
|
||||
echo -e "Removing Laravel...\n"
|
||||
composer global remove laravel/installer 2>/dev/null || true
|
||||
;;
|
||||
symfony)
|
||||
echo -e "Removing Symfony CLI...\n"
|
||||
sudo pacman -Rns --noconfirm symfony-cli 2>/dev/null || true
|
||||
;;
|
||||
python)
|
||||
echo -e "Removing Python...\n"
|
||||
mise uninstall python --all
|
||||
mise rm -g python
|
||||
rm -rf ~/.local/bin/uv ~/.local/bin/uvx ~/.cargo/bin/uv 2>/dev/null || true
|
||||
;;
|
||||
elixir|phoenix)
|
||||
echo -e "Removing Elixir/Erlang...\n"
|
||||
mise uninstall elixir --all
|
||||
mise uninstall erlang --all
|
||||
mise rm -g elixir
|
||||
mise rm -g erlang
|
||||
;;
|
||||
zig)
|
||||
echo -e "Removing Zig...\n"
|
||||
mise uninstall zig --all
|
||||
mise uninstall zls --all
|
||||
mise rm -g zig
|
||||
mise rm -g zls
|
||||
;;
|
||||
rust)
|
||||
echo -e "Removing Rust...\n"
|
||||
rustup self uninstall -y 2>/dev/null || true
|
||||
;;
|
||||
java)
|
||||
echo -e "Removing Java...\n"
|
||||
mise uninstall java --all
|
||||
mise rm -g java
|
||||
;;
|
||||
dotnet)
|
||||
echo -e "Removing .NET...\n"
|
||||
mise uninstall dotnet --all
|
||||
mise rm -g dotnet
|
||||
;;
|
||||
ocaml)
|
||||
echo -e "Removing OCaml...\n"
|
||||
opam switch remove default -y 2>/dev/null || true
|
||||
rm -rf ~/.opam 2>/dev/null || true
|
||||
sudo rm -f /usr/local/bin/opam 2>/dev/null || true
|
||||
;;
|
||||
clojure)
|
||||
echo -e "Removing Clojure...\n"
|
||||
mise uninstall clojure --all
|
||||
mise rm -g clojure
|
||||
;;
|
||||
scala)
|
||||
echo -e "Removing Scala...\n"
|
||||
mise uninstall scala --all
|
||||
mise uninstall scala-cli --all
|
||||
mise rm -g scala
|
||||
mise rm -g scala-cli
|
||||
;;
|
||||
*)
|
||||
echo "Unknown environment: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo -e "\nDone!"
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Remove preinstalled Nomarchy applications (web apps, TUIs, and selected packages).
|
||||
# This removes all web apps, TUIs, plus specific desktop applications.
|
||||
|
||||
if gum confirm "Are you sure you want to remove all preinstalled web apps, TUI wrappers, and desktop applications?"; then
|
||||
echo -e "Removing preinstalled Nomarchy applications...\n"
|
||||
|
||||
nomarchy-webapp-remove-all
|
||||
nomarchy-tui-remove-all
|
||||
|
||||
cp ~/.config/hypr/bindings.conf ~/.config/hypr/bindings.conf.bak
|
||||
cp "$OMARCHY_PATH/default/hypr/plain-bindings.conf" ~/.config/hypr/bindings.conf
|
||||
hyprctl reload
|
||||
|
||||
# Remove npx stubs
|
||||
rm -f ~/.local/bin/codex ~/.local/bin/gemini ~/.local/bin/copilot \
|
||||
~/.local/bin/opencode ~/.local/bin/playwright-cli ~/.local/bin/pi
|
||||
|
||||
nomarchy-pkg-drop \
|
||||
aether \
|
||||
typora \
|
||||
spotify \
|
||||
libreoffice-fresh \
|
||||
1password-beta \
|
||||
1password-cli \
|
||||
xournalpp \
|
||||
signal-desktop \
|
||||
pinta \
|
||||
obsidian \
|
||||
obs-studio \
|
||||
kdenlive \
|
||||
lazydocker \
|
||||
opencode \
|
||||
claude-code
|
||||
fi
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "AUR is an Arch Linux concept and is not supported on NixOS."
|
||||
echo "Please use 'nomarchy-pkg-add' to install packages from nixpkgs."
|
||||
exit 1
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get remote tag
|
||||
latest_tag=$(git -C "$OMARCHY_PATH" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1)
|
||||
if [[ -z $latest_tag ]]; then
|
||||
echo "Error: Could not retrieve latest tag."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get local tag
|
||||
current_tag=$(git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1))
|
||||
if [[ -z $current_tag ]]; then
|
||||
echo "Error: Could not retrieve current tag."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $current_tag != $latest_tag ]]; then
|
||||
echo "Nomarchy update available ($latest_tag)"
|
||||
exit 0
|
||||
else
|
||||
echo "Nomarchy is up to date ($current_tag)"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure Waybar icon offering the available update is removed
|
||||
pkill -RTMIN+7 waybar
|
||||
exit 0
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "Usage: nomarchy-update-branch [master|dev]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
branch="$1"
|
||||
|
||||
# Snapshot before switching branch
|
||||
nomarchy-snapshot create || (( $? == 127 ))
|
||||
|
||||
if ! git -C "$OMARCHY_PATH" diff --quiet || ! git -C "$OMARCHY_PATH" diff --cached --quiet; then
|
||||
stashed=true
|
||||
git -C "$OMARCHY_PATH" stash push -u -m "Autostash before switching to $branch"
|
||||
else
|
||||
stashed=false
|
||||
fi
|
||||
|
||||
# Switch branches
|
||||
git -C "$OMARCHY_PATH" switch "$branch"
|
||||
|
||||
# Reapply stash if we made one
|
||||
if [[ $stashed == "true" ]]; then
|
||||
if ! git -C "$OMARCHY_PATH" stash pop; then
|
||||
echo "⚠️ Conflicts when applying stash — stash kept"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Update the system from the new branch
|
||||
nomarchy-update-perform
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
gum style --border normal --border-foreground 6 --padding "1 2" \
|
||||
"Ready to update?" \
|
||||
"" \
|
||||
"• You cannot stop the update once you start!" \
|
||||
"• Make sure you're connected to power or have a full battery" \
|
||||
"" \
|
||||
"What's new: https://github.com/basecamp/nomarchy/releases"
|
||||
|
||||
echo
|
||||
|
||||
if ! gum confirm "Continue with update?"; then
|
||||
echo "Update cancelled"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
echo -e "\e[32mUpdate Firmware\e[0m"
|
||||
|
||||
if nomarchy-cmd-missing fwupdmgr; then
|
||||
nomarchy-pkg-add fwupd
|
||||
fi
|
||||
|
||||
fwupdmgr refresh --force
|
||||
sudo fwupdmgr update
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo -e "\e[32mUpdate Nomarchy\e[0m"
|
||||
|
||||
nomarchy-update-time
|
||||
|
||||
git -C $OMARCHY_PATH pull --autostash
|
||||
git -C $OMARCHY_PATH --no-pager diff --check || git -C $OMARCHY_PATH reset --merge
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Pacman keyring is an Arch Linux concept and is not supported on NixOS."
|
||||
exit 1
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
orphans=$(pacman -Qtdq || true)
|
||||
if [[ -n $orphans ]]; then
|
||||
echo -e "\e[32m\nRemove orphan system packages\e[0m"
|
||||
for pkg in $orphans; do
|
||||
sudo pacman -Rs --noconfirm "$pkg" || true
|
||||
done
|
||||
echo
|
||||
fi
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Ensure screensaver/sleep doesn't set in during updates
|
||||
hyprctl dispatch tagwindow +noidle &>/dev/null || true
|
||||
|
||||
# Capture update logs (CLICOLOR_FORCE keeps gum styled when stdout is piped through tee)
|
||||
export CLICOLOR_FORCE=1
|
||||
exec > >(tee "/tmp/nomarchy-update.log") 2>&1
|
||||
|
||||
# Perform all update steps
|
||||
nomarchy-update-keyring
|
||||
nomarchy-update-available-reset
|
||||
nomarchy-update-system-pkgs
|
||||
nomarchy-migrate
|
||||
nomarchy-update-aur-pkgs
|
||||
nomarchy-update-orphan-pkgs
|
||||
nomarchy-hook post-update
|
||||
|
||||
nomarchy-update-analyze-logs
|
||||
|
||||
nomarchy-update-restart
|
||||
|
||||
# Re-enable screensaver/sleep after updates
|
||||
hyprctl dispatch tagwindow -- -noidle &>/dev/null || true
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo
|
||||
|
||||
if [[ ! -d /usr/lib/modules/$(uname -r) ]]; then
|
||||
gum confirm "Linux kernel has been updated. Reboot?" && nomarchy-system-reboot
|
||||
elif [[ -f $HOME/.local/state/nomarchy/reboot-required ]]; then
|
||||
gum confirm "Updates require reboot. Ready?" && nomarchy-system-reboot
|
||||
fi
|
||||
|
||||
running_hyprland=$(readlink /proc/$(pgrep -x Hyprland)/exe 2>/dev/null)
|
||||
if [[ $running_hyprland == *"(deleted)"* ]]; then
|
||||
gum confirm "Hyprland has been updated. Reboot?" && nomarchy-system-reboot
|
||||
fi
|
||||
|
||||
for file in "$HOME"/.local/state/nomarchy/restart-*-required; do
|
||||
if [[ -f $file ]]; then
|
||||
filename=$(basename "$file")
|
||||
service=$(echo "$filename" | sed 's/restart-\(.*\)-required/\1/')
|
||||
echo "Restarting $service"
|
||||
nomarchy-state clear "$filename"
|
||||
nomarchy-restart-"$service"
|
||||
fi
|
||||
done
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo -e "\e[32m\nUpdate system packages\e[0m"
|
||||
sudo pacman -Syyu --noconfirm
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# No-op now that nomarchy-update-perform is responsible for idle management.
|
||||
# But this file can't be removed since it was referenced in old nomarchy-update files,
|
||||
# which would fail if this file is missing.
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if grep -q "https://stable-mirror.nomarchy.org/" /etc/pacman.d/mirrorlist; then
|
||||
mirror="stable"
|
||||
elif grep -q "https://rc-mirror.nomarchy.org/" /etc/pacman.d/mirrorlist; then
|
||||
mirror="rc"
|
||||
elif grep -q "https://mirror.nomarchy.org/" /etc/pacman.d/mirrorlist; then
|
||||
mirror="edge"
|
||||
else
|
||||
mirror="unknown"
|
||||
fi
|
||||
|
||||
if grep -q "https://pkgs.nomarchy.org/stable/" /etc/pacman.conf; then
|
||||
pkgs="stable"
|
||||
elif grep -q "https://pkgs.nomarchy.org/edge/" /etc/pacman.conf; then
|
||||
pkgs="edge"
|
||||
elif grep -q "https://pkgs.nomarchy.org/rc/" /etc/pacman.conf; then
|
||||
pkgs="rc"
|
||||
else
|
||||
pkgs="unknown"
|
||||
fi
|
||||
|
||||
if [[ $mirror == $pkgs ]]; then
|
||||
echo $mirror
|
||||
else
|
||||
echo "$mirror / $pkgs"
|
||||
fi
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
date -d "$(grep upgraded /var/log/pacman.log | tail -1 | sed -E 's/\[([^]]+)\].*/\1/')" "+%A, %B %d %Y at %H:%M"
|
||||
Reference in New Issue
Block a user