From d49530a51a4109b73ce82b0667ff6a3f2f70abf6 Mon Sep 17 00:00:00 2001 From: pika Date: Sun, 11 May 2025 14:48:23 +0200 Subject: [PATCH] wip --- hyprland.sh | 592 +++++++--------------------------------------------- neovim.sh | 8 + 2 files changed, 81 insertions(+), 519 deletions(-) diff --git a/hyprland.sh b/hyprland.sh index 894866e..8d18900 100644 --- a/hyprland.sh +++ b/hyprland.sh @@ -1,69 +1,48 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # ╭───────────────╮ # │ env functions │ # ╰───────────────╯ # ───────────────────────────────────< ANSI color codes >─────────────────────────────────── -RED='\033[0;31m' -CYAN='\033[0;36m' -YELLOW='\033[0;33m' -LIGHT_GREEN='\033[0;92m' -BOLD='\033[1m' -NC='\033[0m' # No Color - -echo_error() { - printf "${BOLD}${RED}ERROR: ${NC}${RED}%s${NC}\n" "$1" >&2 -} - -echo_info() { - printf "${BOLD}${CYAN}INFO: ${NC}${CYAN}%s${NC}\n" "$1" -} - -echo_warning() { - printf "${BOLD}${YELLOW}WARNING: ${NC}${YELLOW}%s${NC}\n" "$1" -} - -echo_note() { - printf "${BOLD}${LIGHT_GREEN}NOTE: ${NC}${LIGHT_GREEN}%s${NC}\n" "$1" -} - -# ─────────────< Check if the user is root and set sudo variable if necessary >───────────── -check_root() { - if [ "$(id -u)" -ne 0 ]; then - if command_exists sudo; then - echo_info "User is not root. Using sudo for privileged operations." - _sudo="sudo" - else - echo_error "No sudo found and you're not root! Can't install packages." - return 1 - fi - else - echo_info "Root access confirmed." - _sudo="" - fi -} - -# ──────────────────────< Check if the given command exists silently >────────────────────── +# ─< Check if the given command exists silently >───────────────────────────────────────── command_exists() { command -v "$@" >/dev/null 2>&1 } -# ╭────────────────────────────────────╮ -# │ insert your scripts/functions here │ -# ╰────────────────────────────────────╯ -hyprSlim="hyprland hyprland-protocols hyprwayland-scanner libhyprcursor-dev wayland-utils wayland-protocols wl-clipboard nwg-look xdg-desktop-portal-hyprland liblz4" -hyprAdvanced="$menu pavucontrol pamixer btop bluez wlogout wob" +# WHY: +# This import will give you the following variables: +# _sudo="sudo -E" <- only if non root user +# distro = +# arch = bool +# fedora = bool +# opensuse = bool.... +# You can then use it for, `if $arch; then` +# Also this gives you the _install command, which installs a package pased on the packagemanager/distro used. +# CAUTION: +# This only wokrs for generic package names, like neovim, or vim, or tmux etc.. +# not every package packagemanager has the same packagenames for their packages.. +getImports() { + i="https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh" + import="$(mktemp)" + if command_exists curl; then + curl -fsSL $i -o $import + else + echo "curl is required, but missing.." + exit 1 + fi -OPTIONAL_SCREENSHOT="grimshot slurp swappy" -OPTIONAL_SCREENRECORD="wf-recorder" -OPTIONAL_AUDIO="pulseaudio pavucontrol" -OPTIONAL_NOTIFY="sway-notification-center libnotify" -OPTIONAL_UTILS="brightnessctl network-manager-gnome gnome-keyring swayidle playerctl" -OPTIONAL_FILES="xdg-user-dirs nautilus gvfs" -OPTIONAL_SDDM_DEPS="qml6-module-qtquick-controls qml6-module-qtquick-effects sddm" + source "$import" + sleep 0.3 + rm "$import" +} -BUILD_DEPS="git gcc make cmake meson ninja-build pkg-config" -RUST_DEPS="cargo rustc" # Separate rust dependencies +run(){ + if $silent; then + silentexec "$@" + else + "$@" + fi +} askThings() { echo_note "Do you want to install hyprland? (y/N)" @@ -110,467 +89,31 @@ askThings() { echo_info "Set menu to $menu" fi - echo_note "Doy you want to install sddm with minimal dependency theme? [catppucchin-mocha] (Y/n) :" - read -r askSddm ─────────────────────────────── main() { - if check_root; then - askThings - if $askHyprland; then - checkDependencies - instDeps - instTools - checkConfig - fi - else - echo_error "Something went terribly wrong!" - fi + case "$distro" in + arch) + local deps=( + hyprland + hypridle + hyprpolkitagent + hyprland-protocols + wayland-utils + wayland-protocols + wl-clipboard + xdg-desktop-portal-hyprland + ) + checkAndInstall "${deps[@]}" + ;; + *) + echo "$distro is not supported by this script!" + exit 1 + ;; + esac } -main +if getImports; then + askThings + instCustom + main +fi diff --git a/neovim.sh b/neovim.sh index db234b9..e5d94d5 100644 --- a/neovim.sh +++ b/neovim.sh @@ -83,6 +83,13 @@ fi } + checkAndInitConfig() { + if [ -d "$HOME/.config/nvim/" ]; then + echo_info "Prefetching neovim setup configuration.." + run nvim --headless +q + fi + } + if getImports; then case "$1" in --silent | -s) @@ -97,4 +104,5 @@ installBuildDependencies cloneSources makeInstall + checkAndInitConfig }