diff --git a/core/tabs/applications-setup/alacritty-setup.sh b/core/tabs/applications-setup/alacritty-setup.sh index 25558fed..5afe6937 100755 --- a/core/tabs/applications-setup/alacritty-setup.sh +++ b/core/tabs/applications-setup/alacritty-setup.sh @@ -9,6 +9,9 @@ installAlacritty() { pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm alacritty ;; + nix-env) + "$PACKAGER" -iA nixpkgs.alacritty + ;; *) "$ESCALATION_TOOL" "$PACKAGER" install -y alacritty ;; diff --git a/core/tabs/applications-setup/android-debloat.sh b/core/tabs/applications-setup/android-debloat.sh index b4e1073a..5e24d44c 100644 --- a/core/tabs/applications-setup/android-debloat.sh +++ b/core/tabs/applications-setup/android-debloat.sh @@ -15,6 +15,9 @@ install_adb() { dnf|zypper) "$ESCALATION_TOOL" "$PACKAGER" install -y android-tools ;; + nix-env) + "$PACKAGER" -iA nixpkgs.android-tools + ;; *) printf "%b\n" "${RED}Unsupported package manager: "$PACKAGER"${RC}" exit 1 diff --git a/core/tabs/applications-setup/docker-setup.sh b/core/tabs/applications-setup/docker-setup.sh index afcd1572..4588a1d8 100755 --- a/core/tabs/applications-setup/docker-setup.sh +++ b/core/tabs/applications-setup/docker-setup.sh @@ -4,7 +4,6 @@ # Function to prompt the user for installation choice choose_installation() { - clear printf "%b\n" "${YELLOW}Choose what to install:${RC}" printf "%b\n" "1. ${YELLOW}Docker${RC}" printf "%b\n" "2. ${YELLOW}Docker Compose${RC}" @@ -36,6 +35,11 @@ install_docker() { "$ESCALATION_TOOL" systemctl enable docker "$ESCALATION_TOOL" systemctl start docker ;; + nix-env) + "$PACKAGER" -iA nixpkgs.docker + "$ESCALATION_TOOL" sed -i'' -E '/^[[:space:]]*virtualisation\.docker\.enable/!b; s/^([[:space:]]*)virtualisation\.docker\.enable.*/\1virtualisation.docker.enable = true;/' "$NIXOS_CONFIG" || echo 'virtualisation.docker.enable = true;' | "$ESCALATION_TOOL" tee -a "$NIXOS_CONFIG" + "$ESCALATION_TOOL" nixos-rebuild switch + ;; *) printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}" exit 1 @@ -55,6 +59,9 @@ install_docker_compose() { pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm docker-compose ;; + nix-env) + "$PACKAGER" -iA nixpkgs.docker-compose + ;; *) printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}" exit 1 @@ -84,4 +91,4 @@ install_components() { checkEnv checkEscalationTool -install_components \ No newline at end of file +install_components diff --git a/core/tabs/applications-setup/dwmtitus-setup.sh b/core/tabs/applications-setup/dwmtitus-setup.sh index 01ec0ef1..86f161ac 100755 --- a/core/tabs/applications-setup/dwmtitus-setup.sh +++ b/core/tabs/applications-setup/dwmtitus-setup.sh @@ -15,6 +15,8 @@ setupDWM() { "$ESCALATION_TOOL" "$PACKAGER" groupinstall -y "Development Tools" "$ESCALATION_TOOL" "$PACKAGER" install -y libX11-devel libXinerama-devel libXft-devel imlib2-devel libxcb-devel unzip flameshot lxappearance feh mate-polkit # no need to include git here as it should be already installed via "Development Tools" ;; + nix-env) + ;; *) printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}" exit 1 diff --git a/core/tabs/applications-setup/setup-flatpak.sh b/core/tabs/applications-setup/setup-flatpak.sh index 75da28af..6eee92e3 100755 --- a/core/tabs/applications-setup/setup-flatpak.sh +++ b/core/tabs/applications-setup/setup-flatpak.sh @@ -25,6 +25,11 @@ setup_flatpak() { pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm flatpak ;; + nix-env) + "$PACKAGER" -iA nixpkgs.flatpak + "$ESCALATION_TOOL" sed -i'' -E '/^[[:space:]]*services\.flatpak\.enable/!b; s/^([[:space:]]*)services\.flatpak\.enable.*/\1services.flatpak.enable = true;/' "$NIXOS_CONFIG" || echo 'services.flatpak.enable = true;' | "$ESCALATION_TOOL" tee -a "$NIXOS_CONFIG" + "$ESCALATION_TOOL" nixos-rebuild switch + ;; *) "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak ;; diff --git a/core/tabs/common-script.sh b/core/tabs/common-script.sh index 12ab1146..5ad70e53 100644 --- a/core/tabs/common-script.sh +++ b/core/tabs/common-script.sh @@ -78,6 +78,16 @@ checkPackageManager() { if command_exists "${pgm}"; then PACKAGER=${pgm} printf "%b\n" "${CYAN}Using ${pgm} as package manager${RC}" + + if [ $PACKAGER = 'nix-env' ] && [ -z "$NIXOS_CONFIG" ]; then + NIXOS_CONFIG="/etc/nixos/configuration.nix" + while [ ! -f "$NIXOS_CONFIG" ]; do + printf "%b\n" "${RED}configuration.nix not found.${RC}" + printf "%b" "${YELLOW}Enter the path manually: ${RC}" + read -r NIXOS_CONFIG + done + fi + break fi done @@ -127,7 +137,7 @@ checkDistro() { checkEnv() { checkEscalationTool checkCommandRequirements "curl groups $ESCALATION_TOOL" - checkPackageManager 'nala apt-get dnf pacman zypper' + checkPackageManager 'nala apt-get dnf pacman zypper nix-env' checkCurrentDirectoryWritable checkSuperUser checkDistro