diff --git a/flake.nix b/flake.nix index 838415c..4ac7a8e 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,10 @@ outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, nixvim, claude-code }: let configuration = { pkgs, ... }: { + imports = [ + ./system + ]; + environment.systemPackages = [ pkgs.vim pkgs.git diff --git a/scripts/project-launcher.sh b/scripts/project-launcher.sh index a4e7dd2..77c67bb 100755 --- a/scripts/project-launcher.sh +++ b/scripts/project-launcher.sh @@ -97,6 +97,16 @@ create_directory "$PAPER_PATH" "paper" [ -n "$CONTENT_PATH" ] && [ "$CONTENT_PATH" != "null" ] && [ -d "$CONTENT_PATH" ] && zoxide add "$CONTENT_PATH" 2>/dev/null || true [ -n "$PAPER_PATH" ] && [ "$PAPER_PATH" != "null" ] && [ -d "$PAPER_PATH" ] && zoxide add "$PAPER_PATH" 2>/dev/null || true +# Check if session already exists and attach if it does +if is_session_running "$SESSION_NAME"; then + printf "\033[1;32mAttaching to existing session: %s\033[0m\n" "$SESSION_NAME" + tmux attach-session -t "$SESSION_NAME" + exit 0 +fi + +# Update papis cache +papis cache reset > /dev/null 2>&1 + # Create remote directory if server connection is configured if [ -n "$SERVER" ] && [ -n "$REMOTE_DIR" ]; then printf "\033[2mEnsuring remote directory exists: %s:%s\033[0m\n" "$SERVER" "$REMOTE_DIR" @@ -108,16 +118,6 @@ if [ -n "$SERVER" ] && [ -n "$REMOTE_DIR" ]; then fi fi -# Check if session already exists and attach if it does -if is_session_running "$SESSION_NAME"; then - printf "\033[1;32mAttaching to existing session: %s\033[0m\n" "$SESSION_NAME" - tmux attach-session -t "$SESSION_NAME" - exit 0 -fi - -# Update papis cache -papis cache reset > /dev/null 2>&1 - # Launch appropriate template case "$TEMPLATE" in "basic") diff --git a/system/default.nix b/system/default.nix new file mode 100644 index 0000000..7a39153 --- /dev/null +++ b/system/default.nix @@ -0,0 +1,7 @@ +{ config, pkgs, ... }: + +{ + imports = [ + ./macos-defaults.nix + ]; +} \ No newline at end of file diff --git a/system/macos-defaults.nix b/system/macos-defaults.nix new file mode 100644 index 0000000..fd06b08 --- /dev/null +++ b/system/macos-defaults.nix @@ -0,0 +1,16 @@ +{ config, pkgs, ... }: + +{ + # Set primary user for system preferences + system.primaryUser = "yanlin"; + + # Menu bar spacing configuration using activation scripts + # Uses sudo to run as user since activation now runs as root + # NSStatusItemSpacing controls horizontal spacing between menu bar items + # NSStatusItemSelectionPadding controls padding inside selection overlay + system.activationScripts.extraActivation.text = '' + echo "Setting menu bar spacing preferences..." + sudo -u yanlin defaults -currentHost write -globalDomain NSStatusItemSpacing -int 12 + sudo -u yanlin defaults -currentHost write -globalDomain NSStatusItemSelectionPadding -int 6 + ''; +}