From 0b571e45658fa00d5a0d5cd0373f8b99022e6182 Mon Sep 17 00:00:00 2001 From: Noah Masur <7386960+nmasur@users.noreply.github.com> Date: Sun, 4 Feb 2024 21:09:25 -0700 Subject: [PATCH] partially move macos dock apps to declarative list --- modules/common/applications/discord.nix | 2 +- modules/darwin/system.nix | 65 +++++++++++++------------ 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/modules/common/applications/discord.nix b/modules/common/applications/discord.nix index 444967c..1e3193c 100644 --- a/modules/common/applications/discord.nix +++ b/modules/common/applications/discord.nix @@ -11,8 +11,8 @@ config = lib.mkIf (config.gui.enable && config.discord.enable) { unfreePackages = [ "discord" ]; + environment.systemPackages = [ pkgs.discord ]; home-manager.users.${config.user} = { - home.packages = with pkgs; [ discord ]; xdg.configFile."discord/settings.json".text = '' { "BACKGROUND_COLOR": "#202225", diff --git a/modules/darwin/system.nix b/modules/darwin/system.nix index c36782a..0d0d1bf 100644 --- a/modules/darwin/system.nix +++ b/modules/darwin/system.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ config, pkgs, lib, ... }: { config = lib.mkIf pkgs.stdenv.isDarwin { @@ -137,6 +137,22 @@ "com.apple.dock" = { magnification = true; largesize = 48; + persistent-apps = let + dockText = app: + "tile-datafile-data_CFURLString${app}_CFURLStringType0"; + in map dockText [ + "/Applications/1Password.app" + "${pkgs.slack}/Applications/Slack.app" + "/System/Applications/Calendar.app" + "${pkgs.firefox-bin}/Applications/Firefox.app" + "/System/Applications/Messages.app" + "/System/Applications/Mail.app" + "/Applications/zoom.us.app" + "${pkgs.discord}/Applications/Discord.app" + "${pkgs.obsidian}/Applications/Obsidian.app" + "${pkgs.kitty}/Applications/kitty.app" + "/System/Applications/System Settings.app" + ]; }; # Require password immediately after screen saver begins "com.apple.screensaver" = { @@ -153,6 +169,17 @@ # Default Finder window set to column view FXPreferredViewStyle = "clmv"; }; + "leits.MeetingBar" = { + eventTimeFormat = ''"show"''; + eventTitleFormat = ''"none"''; + eventTitleIconFormat = ''"iconCalendar"''; + slackBrowser = + ''{"deletable":true,"arguments":"","name":"Slack","path":""}''; + zoomBrowser = + ''{"deletable":true,"arguments":"","name":"Zoom","path":""}''; + KeyboardShortcuts_joinEventShortcut = + ''{"carbonModifiers":6400,"carbonKeyCode":38}''; + }; }; }; @@ -167,41 +194,15 @@ ''; # User-level settings - activationScripts.postUserActivation.text = '' + activationScripts.postUserActivation.text = let + persistentApps = lib.concatMapStrings (x: ''"'' + x + ''" '') + config.system.defaults.CustomUserPreferences."com.apple.dock".persistent-apps; + in '' echo "Show the ~/Library folder" chflags nohidden ~/Library - echo "Define dock icon function" - __dock_item() { - printf "%s%s%s%s%s" \ - "tile-datafile-data" \ - "_CFURLString" \ - "$1" \ - "_CFURLStringType0" \ - "" - } - echo "Choose and order dock icons" - defaults write com.apple.dock persistent-apps -array \ - "$(__dock_item /Applications/1Password.app)" \ - "$(__dock_item ${pkgs.slack}/Applications/Slack.app)" \ - "$(__dock_item /System/Applications/Calendar.app)" \ - "$(__dock_item ${pkgs.firefox-bin}/Applications/Firefox.app)" \ - "$(__dock_item /System/Applications/Messages.app)" \ - "$(__dock_item /System/Applications/Mail.app)" \ - "$(__dock_item /Applications/zoom.us.app)" \ - "$(__dock_item ${pkgs.discord}/Applications/Discord.app)" \ - "$(__dock_item ${pkgs.obsidian}/Applications/Obsidian.app)" \ - "$(__dock_item ${pkgs.kitty}/Applications/kitty.app)" \ - "$(__dock_item /System/Applications/System\ Settings.app)" - - echo "MeetingBar settings" - defaults write leits.MeetingBar eventTimeFormat -string "\"show\"" - defaults write leits.MeetingBar eventTitleFormat -string "\"none\"" - defaults write leits.MeetingBar eventTitleIconFormat -string "\"iconCalendar\"" - defaults write leits.MeetingBar slackBrowser -string "{\"deletable\":true,\"arguments\":\"\",\"name\":\"Slack\",\"path\":\"\"}" - defaults write leits.MeetingBar zoomBrowser -string "{\"deletable\":true,\"arguments\":\"\",\"name\":\"Zoom\",\"path\":\"\"}" - defaults write leits.MeetingBar KeyboardShortcuts_joinEventShortcut -string "{\"carbonModifiers\":6400,\"carbonKeyCode\":38}" + defaults write com.apple.dock persistent-apps -array ${persistentApps} ''; };