feat: initial macos setup

This commit is contained in:
2026-08-02 00:29:15 -04:00
parent fc86577c27
commit 925dd4114a
12 changed files with 210 additions and 47 deletions
+7 -4
View File
@@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ pkgs, lib, isDarwin, ... }:
let
baseKeybinds = [
"ctrl+t=new_tab"
@@ -16,7 +16,10 @@ in
{
programs.ghostty = {
enable = true;
# nixpkgs `ghostty` is the Linux/GTK build (Linux-only meta.platforms).
# On macOS use `ghostty-bin`, the repackaged official .dmg.
package = if isDarwin then pkgs.ghostty-bin else pkgs.ghostty;
settings = {
# Font Settings
"font-family" = "Roboto Mono";
@@ -93,8 +96,8 @@ in
# Keybindings (Tabs & Splits)
"keybind" = baseKeybinds
++ lib.optionals pkgs.stdenv.isDarwin [ "super+d=unbind" ];
} // lib.optionalAttrs pkgs.stdenv.isDarwin {
++ lib.optionals isDarwin [ "super+d=unbind" ];
} // lib.optionalAttrs isDarwin {
"macos-titlebar-style" = "transparent";
"macos-icon" = "official";
};
+7 -3
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }: {
{ pkgs, lib, isDarwin, ... }: {
programs.vscodium = {
enable = true;
package = pkgs.vscodium;
@@ -18,12 +18,16 @@
rust-lang.rust-analyzer
timonwong.shellcheck
unifiedjs.vscode-mdx
yzane.markdown-pdf
]) ++ pkgs.nix4vscode.forOpenVsx [
"akamud.vscode-theme-onedark"
"astral-sh.ty"
"modular-mojotools.vscode-mojo"
];
] ++ lib.optionals (!isDarwin) (with pkgs.vscode-extensions; [
# markdown-pdf pins ungoogled-chromium (Linux-only) as its PDF
# renderer. On macOS, install it from the marketplace by hand and set
# markdown-pdf.executablePath to Chrome/Brave, or render via typst.
yzane.markdown-pdf
]);
userSettings = {
"editor.fontFamily" = "'JetBrains Mono', monospace";
+1 -1
View File
@@ -2,7 +2,7 @@
{
programs.zed-editor = {
enable = true;
package = pkgs.zed-editor-fhs;
package = pkgs.zed-editor;
mutableUserSettings = true;
userSettings = {
+8 -3
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, lib, isDarwin, ... }:
{
programs.zsh = {
@@ -12,7 +12,7 @@
la = "ls -A";
l = "ls -CF";
tp = "tree -I '__init__*' -I '__pycache__'";
clear = "/run/current-system/sw/bin/clear";
clear = "${pkgs.ncurses}/bin/clear";
zide = "zellij --layout ide";
};
@@ -45,6 +45,11 @@
'';
};
home.sessionVariables = {
TERMINFO_DIRS = "${pkgs.ghostty}/share/terminfo:${pkgs.ncurses}/share/terminfo";
# ghostty (GTK) ships terminfo under $out/share on Linux. The macOS
# ghostty-bin bundles its own, so only add ncurses there.
TERMINFO_DIRS = lib.concatStringsSep ":" (
lib.optional (!isDarwin) "${pkgs.ghostty}/share/terminfo"
++ [ "${pkgs.ncurses}/share/terminfo" ]
);
};
}