export CONFIG_DIR=/home/me/work/config export DATA_DIR=/home/me/work/app-data export HERE_DIR=/home/me/here export LOG_DIR=/tmp/mlog export SVDIR=$CONFIG_DIR/hosts/main/services export BASH_ENV=$CONFIG_DIR/hosts/main/bashrc export HOSTNAME=main export DOOMDIR="$CONFIG_DIR/doomdir" export MIZE_SRC=$CONFIG_DIR/mize mkdir -p $LOG_DIR # arch path export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export PATH=$PATH:$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin # nix path # main stuff export PATH=$CONFIG_DIR/hosts/main/bin:$PATH export SECRETS_DIR=/home/me/secrets # nix lock export NIXPKGS_REV=04e1ec9c5dbf94ab78b6b755b5ec28c1d6dd5392 # nix eval ${CONFIG_DIR}#inputs.nixpkgs.rev export NIXPKGS_UNSTABLE_REV=ac6b2166e7a9375683b8e98f860f273222337b16 # nix eval ${CONFIG_DIR}#inputs.nixpkgs.rev export NIX_PATH=nixpkgs=/nix/store/jpf38g508p4njqzbfkvdfjj7v3s795k9-source # nix flake prefetch nixpkgs/$(nix eval $CONFIG_DIR#inputs.nixpkgs.rev --raw) --json | jq '.storePath' -r # bin paths if [ -d /run/current-system ]; then # in case of nixos export BIN_ZED=~/work/path-extra/zed else export BIN_ZED=/usr/sbin/zeditor fi ## #### detect distro detect_distro() { local -n reply_distro=$1 local line key value reply_distro="unknown" # Read file line by line without spawning external commands if [[ -f /etc/os-release ]]; then while IFS='=' read -r key value; do # Clean up the key name key="${key##*([[:space:]])}" key="${key%%*([[:space:]])}" if [[ "$key" == "ID" ]]; then # Strip potential surrounding quotes from the value value="${value#\"}" value="${value%\"}" value="${value#\'}" value="${value%\'}" reply_distro="$value" return 0 fi done < /etc/os-release fi } # get_config function get_config() { if [[ "$2" == "" ]]; then local -n reply_config=OUT else local -n reply_config=$2 fi declare -A myconfig detect_distro DISTRO myconfig["hyprland.bin"]="~/work/src/hyprland/build/Hyprland" myconfig["prismlauncher.bin"]="/usr/sbin/prismlauncher" myconfig["hyprland.configFile"]="$CONFIG_DIR/hosts/main/hyprland.lua" myconfig["steam.homeDir"]="$HERE_DIR/steam-home" myconfig["steam.bin"]="/home/me/.nix-profile/bin/steam" myconfig["git.bin"]="/bin/git" myconfig["ssh.bin"]="/bin/ssh" myconfig["mize.configFile"]="$CONFIG_DIR/hosts/main/" myconfig["mize.secretsFile"]="~/secrets/mize-config.toml" myconfig["mize.startDev"]="true" myconfig["mize.backtrace"]="true" # nixos case if [[ "$DISTRO" == "nixos" ]]; then myconfig["zed.bin"]="~/work/path-extra/zed" fi # arch case if [[ "$DISTRO" == "arch" ]]; then myconfig["zed.bin"]="/usr/sbin/zeditor" fi reply_config=${myconfig["$1"]} } # auto start hyprland in tty if [[ $TERM == "linux" ]]; then sudo loadkeys de fi if [[ $- == *i* ]]; then source $CONFIG_DIR/mods/bashrc-common fi