diff --git a/darwin/profiles/desktop/default.nix b/darwin/profiles/desktop/default.nix index 9497c65..6c03ef9 100644 --- a/darwin/profiles/desktop/default.nix +++ b/darwin/profiles/desktop/default.nix @@ -1,4 +1,6 @@ {...}: { + home-manager.users.guanranwang = import ./home; + imports = [ ../common/core ./packages diff --git a/darwin/profiles/desktop/home/default.nix b/darwin/profiles/desktop/home/default.nix new file mode 100644 index 0000000..aa8643d --- /dev/null +++ b/darwin/profiles/desktop/home/default.nix @@ -0,0 +1,91 @@ +{ + config, + pkgs, + lib, + ... +}: { + imports = map (n: ../../../../home/applications/${n}) [ + # Terminal + "alacritty" + + # Shell + "fish" + "bash" + + # Editor + "helix" + "neovim" + "vscode" + + # Language + "nix" + "go" + + # Media + "mpv" + "spotify" + + # Misc + "telegram-desktop" + ]; + + home = { + activation = { + # Workaround for spotlight indexing + # https://github.com/nix-community/home-manager/issues/1341#issuecomment-1705731962_ + trampolineApps = let + apps = pkgs.buildEnv { + name = "home-manager-applications"; + paths = config.home.packages; + pathsToLink = "/Applications"; + }; + in + lib.hm.dag.entryAfter ["writeBoundary"] '' + toDir="$HOME/Applications/Home Manager Trampolines" + fromDir="${apps}/Applications/" + rm -rf "$toDir" + mkdir "$toDir" + ( + cd "$fromDir" + for app in *.app; do + /usr/bin/osacompile -o "$toDir/$app" -e 'do shell script "open '$fromDir/$app'"' + done + ) + ''; + setSystemProxy = let + networksetup = /usr/sbin/networksetup; + in + lib.hm.dag.entryAfter ["writeBoundary"] '' + ${networksetup} -setwebproxystate "Wi-fi" on + ${networksetup} -setwebproxy "Wi-fi" 127.0.0.1 7890 + ${networksetup} -setwebproxystate "Ethernet" on + ${networksetup} -setwebproxy "Ethernet" 127.0.0.1 7890 + ''; + }; + + packages = with pkgs; [ + ## GUI + ### Tools + keka # un-archive-r + iterm2 + ### Misc + element-desktop + ]; + }; + + # macOS don't have fontconfig + programs = let + monospace = "JetBrainsMono Nerd Font"; + in { + ### VSCode + vscode.userSettings.editor.fontFamily = monospace; + + ### Alacritty + alacritty.settings.font = { + normal.family = monospace; + bold.family = monospace; + bold_italic.family = monospace; + italic.family = monospace; + }; + }; +} diff --git a/darwin/profiles/desktop/packages/fonts.nix b/darwin/profiles/desktop/packages/fonts.nix index a7927a0..b2cde8f 100644 --- a/darwin/profiles/desktop/packages/fonts.nix +++ b/darwin/profiles/desktop/packages/fonts.nix @@ -1,5 +1,6 @@ {pkgs, ...}: { + fonts.fontDir.enable = true; fonts.fonts = with pkgs; [ - (nerdfonts.override {fonts = ["FiraCode" "JetBrainsMono"];}) + (nerdfonts.override {fonts = ["JetBrainsMono"];}) ]; }