{ lib, inputs, pkgs, modulesPath, ... }: let nvim = inputs.nvim.packages."x86_64-linux".default; toilet = inputs.toilet.packages."x86_64-linux".default; install-script = pkgs.writeShellScriptBin "movcfg-install" '' #!/bin/bash set -e trap 'echo "Aborting installation."; exit 1' INT # set up working directory mkdir -p /tmp/install_pwd && cd /tmp/install_pwd rm -rf ./* # download disko.nix file for defining partitions echo -n "Downloading partition plan..." curl -s https://raw.githubusercontent.com/pagedMov/pagedmov-nix-cfg/refs/heads/master/hosts/installer/disko-ext4-singledisk.nix > disko.nix echo "Done!" echo echo "This script is about to format and partition a hard drive." sleep 2.5 echo -e "\033[4;31mThis process is irreversible and will destroy all data on the drive.\033[0m" sleep 2.5 echo "Make absolutely sure that you know which drive you are choosing." sleep 2.5 echo lsblk -d -o NAME,SIZE echo echo -n "Which drive do you wish to sacrifice? " read -r drive # commence formatting nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/install_pwd/disko.nix --arg device "\"/dev/$drive\"" # set up home directory in /mnt/persist, create /persist/etc/nixos, cd to /etc/nixos and install my flake config mkdir -p /mnt/etc cd /mnt/etc/ git clone https://github.com/pagedMov/pagedmov-nix-cfg.git ./nixos nixos-install --root /mnt --flake /mnt/etc/nixos#mercury --no-root-password echo echo "Preliminary installation successful!" echo "Beginning secondary installation phase... " echo cp -r /mnt/etc/nixos /mnt/home/pagedmov/.sysflake chown -R pagedmov /mnt/home/pagedmov/.sysflake rm -rf /mnt/etc/nixos ln -s /mnt/home/pagedmov/.sysflake /etc/nixos nixos-enter </dev/null || \ { eval "$(starship init zsh)" } ''; setOptions = [ "APPEND_HISTORY" "INC_APPEND_HISTORY" "SHARE_HISTORY" "CORRECT" "NO_NOMATCH" "LIST_PACKED" "ALWAYS_TO_END" "GLOB_COMPLETE" "COMPLETE_ALIASES" "COMPLETE_IN_WORD" "AUTO_CD" "AUTO_CONTINUE" "LONG_LIST_JOBS" "HIST_VERIFY" "SHARE_HISTORY" "HIST_IGNORE_SPACE" "HIST_SAVE_NO_DUPS" "HIST_IGNORE_ALL_DUPS" "EXTENDED_GLOB" "TRANSIENT_RPROMPT" "INTERACTIVE_COMMENTS" ]; shellInit = '' export EDITOR="nvim" export SUDO_EDITOR="nvim" export VISUAL="nvim" export LANG="en_US.UTF-8" unalias ls ls() { eza -1 --group-directories-first --icons "$@" } y() { local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" yazi "$@" --cwd-file="$tmp" if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then builtin cd -- "$cwd" fi rm -f -- "$tmp" } cd() { export SOUNDS_ENABLED=0 eza -1 --group-directories-first --icons "$@" builtin cd "$@" || exit export SOUNDS_ENABLED=1 } if [ ! -e $HOME/.zsh_history ]; then touch $HOME/.zsh_history chmod 600 $HOME/.zsh_history fi autoload -U compinit # completion autoload -U terminfo # terminfo keys zmodload -i zsh/complist # menu completion autoload -U promptinit # prompt autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search unalias ls clear ''; }; programs.starship = { enable = true; settings = { add_newline = true; right_format = "($custom)"; format = lib.concatStrings [ "($username)(bold white)($cmd_duration)($character)" "($git_branch)($git_status)($rust)($nix-shell)" "($directory)" "$line_break[ > ](bold #89b4fa)" ]; username = { show_always = true; style_user = "bold white"; format = "[$user]($style)"; }; directory = { format = "\n[$path](bold cyan)[/](bold green) "; style = "bold #b4befe"; }; character = { success_symbol = "[ -> ](bold green)"; error_symbol = "[ -> ✗](bold red)"; # error_symbol = "[ ](bold #89dceb)[ ✗](bold red)"; }; cmd_duration = { format = "[ 󰔛 $duration]($style)"; disabled = false; style = "bg:none fg:#f9e2af"; show_notifications = false; min_time_to_notify = 60000; }; git_branch = { format = "\non [$symbol$branch](bold purple)"; symbol = " "; truncation_length = 15; style = "bold purple"; }; custom.shellver = { command = "zsh --version"; when = ''test $SHELL = "/run/current-system/sw/bin/zsh"''; symbol = ""; style = "bold magenta"; }; palette = "catppuccin_mocha"; } // builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml"); }; }