summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--darwin-common.nix103
-rw-r--r--dotfiles/calcurse/conf33
-rw-r--r--dotfiles/calcurse/keys56
-rw-r--r--dotfiles/gitconfig9
-rw-r--r--dotfiles/senpai/senpai.scfg3
-rw-r--r--dotfiles/ssh/config4
-rw-r--r--flake.lock174
-rw-r--r--flake.nix71
-rw-r--r--home.nix96
-rw-r--r--hosts/bear/configuration.nix57
-rw-r--r--hosts/kenosis/configuration.nix81
-rwxr-xr-xrebuild.sh1
-rw-r--r--setup.sh30
-rw-r--r--sh.nix10
14 files changed, 483 insertions, 245 deletions
diff --git a/darwin-common.nix b/darwin-common.nix
new file mode 100644
index 0000000..9c52c20
--- /dev/null
+++ b/darwin-common.nix
@@ -0,0 +1,103 @@
+{
+ config,
+ pkgs,
+ inputs,
+ ...
+}: {
+ imports = [
+ ./sh.nix
+ ];
+
+ # List packages installed in system profile. To search by name, run:
+ # $ nix-env -qaP | grep wget
+ environment.systemPackages = with pkgs; [
+ ffmpeg
+ librewolf
+ lazygit
+ fastfetch
+ git
+ vim-full
+ senpai
+ ];
+
+ programs.zsh.enable = true;
+
+ security.pam.services.sudo_local = {
+ enable = true;
+ reattach = true;
+ touchIdAuth = true;
+ };
+
+ system = {
+ defaults = {
+ NSGlobalDomain = {
+ AppleICUForce24HourTime = true;
+ AppleInterfaceStyle = "Dark";
+ AppleShowAllExtensions = true;
+ AppleShowAllFiles = true;
+ NSAutomaticCapitalizationEnabled = false;
+ NSDocumentSaveNewDocumentsToCloud = false;
+ NSNavPanelExpandedStateForSaveMode2 = true;
+ NSWindowShouldDragOnGesture = true;
+ PMPrintingExpandedStateForPrint = true;
+ PMPrintingExpandedStateForPrint2 = true;
+ };
+
+ controlcenter.NowPlaying = true;
+
+ dock = {
+ minimize-to-application = true;
+ mru-spaces = false;
+ show-recents = false;
+ };
+
+ finder = {
+ AppleShowAllExtensions = true;
+ AppleShowAllFiles = true;
+ FXEnableExtensionChangeWarning = false;
+ FXPreferredViewStyle = "Nlsv";
+ QuitMenuItem = true;
+ ShowMountedServersOnDesktop = true;
+ ShowPathbar = true;
+ ShowStatusBar = true;
+ _FXEnableColumnAutoSizing = true;
+ _FXSortFoldersFirst = true;
+ };
+
+ # screencapture = {
+ # location = "/Users/andrew/Documents/Screenshots";
+ # type = "jpg";
+ # };
+ };
+
+ keyboard = {
+ remapCapsLockToEscape = true;
+ swapLeftCtrlAndFn = true;
+ enableKeyMapping = true;
+ };
+ };
+
+ homebrew = {
+ enable = true;
+ onActivation.cleanup = "uninstall";
+
+ taps = [
+ ];
+ brews = [
+ ];
+ casks = [
+ "keepingyouawake"
+ "scroll-reverser"
+ "ghostty"
+ ];
+ };
+
+ # Used for backwards compatibility, please read the changelog before changing.
+ # $ darwin-rebuild changelog
+ system.stateVersion = 6;
+
+ # The platform the configuration will be used on.
+ nixpkgs.hostPlatform = "aarch64-darwin";
+ nixpkgs.config.allowUnfree = true;
+ nix.settings.experimental-features = ["nix-command" "flakes"];
+}
diff --git a/dotfiles/calcurse/conf b/dotfiles/calcurse/conf
deleted file mode 100644
index 276a5e8..0000000
--- a/dotfiles/calcurse/conf
+++ /dev/null
@@ -1,33 +0,0 @@
-appearance.calendarview=monthly
-appearance.compactpanels=no
-appearance.defaultpanel=calendar
-appearance.layout=5
-appearance.headerline=yes
-appearance.eventseparator=yes
-appearance.dayseparator=yes
-appearance.emptyline=yes
-appearance.emptyday=--
-appearance.notifybar=yes
-appearance.sidebarwidth=2
-appearance.theme=default on default
-appearance.todoview=hide-completed
-appearance.headingpos=right-justified
-daemon.enable=no
-daemon.log=no
-format.inputdate=1
-format.notifydate=%a %F
-format.notifytime=%T
-format.appointmenttime=%H:%M
-format.outputdate=%D
-format.dayheading=%B %e, %Y
-general.autogc=no
-general.autosave=yes
-general.confirmdelete=yes
-general.confirmquit=yes
-general.firstdayofweek=monday
-general.multipledays=yes
-general.periodicsave=0
-general.systemevents=yes
-notification.command=printf '\a'
-notification.notifyall=flagged-only
-notification.warning=300
diff --git a/dotfiles/calcurse/keys b/dotfiles/calcurse/keys
deleted file mode 100644
index 3304bbb..0000000
--- a/dotfiles/calcurse/keys
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# Calcurse keys configuration file
-#
-# In this file the keybindings used by Calcurse are defined.
-# It is generated automatically by Calcurse and is maintained
-# via the key configuration menu of the interactive user
-# interface. It should not be edited directly.
-
-generic-cancel ESC
-generic-select SPC
-generic-credits @
-generic-help ?
-generic-quit q Q
-generic-save s S ^S
-generic-reload R
-generic-copy c
-generic-paste p ^V
-generic-change-view TAB
-generic-prev-view KEY_BTAB
-generic-import i I
-generic-export x X
-generic-goto g G
-generic-other-cmd o O
-generic-config-menu C
-generic-redraw ^R
-generic-add-appt ^A
-generic-add-todo ^T
-generic-prev-day T ^H
-generic-next-day t ^L
-generic-prev-week W ^K
-generic-next-week w
-generic-prev-month M
-generic-next-month m
-generic-prev-year Y
-generic-next-year y
-generic-scroll-down ^N
-generic-scroll-up ^P
-generic-goto-today ^G
-generic-command :
-move-right l L RGT
-move-left h H LFT
-move-down j J DWN
-move-up k K UP
-start-of-week 0
-end-of-week $
-add-item a A
-del-item d D
-edit-item e E
-view-item v V RET
-pipe-item |
-flag-item !
-repeat r
-edit-note n N
-view-note >
-raise-priority +
-lower-priority -
diff --git a/dotfiles/gitconfig b/dotfiles/gitconfig
new file mode 100644
index 0000000..a508e03
--- /dev/null
+++ b/dotfiles/gitconfig
@@ -0,0 +1,9 @@
+[user]
+ name = Skullheadx
+ email = andrew@montgomery.systems
+
+[pull]
+ rebase = true
+
+[url "git@github.com:"]
+ insteadOf = https://github.com/
diff --git a/dotfiles/senpai/senpai.scfg b/dotfiles/senpai/senpai.scfg
index b907cce..a9a3d19 100644
--- a/dotfiles/senpai/senpai.scfg
+++ b/dotfiles/senpai/senpai.scfg
@@ -1,5 +1,4 @@
address skullheadx.com
nickname Skullheadx
username andrew
-password-cmd cat "/home/andrew/.soju-pass"
-channel #lobsters #emacs
+password-cmd pass "Personal/Comm/irc"
diff --git a/dotfiles/ssh/config b/dotfiles/ssh/config
new file mode 100644
index 0000000..03b2c6e
--- /dev/null
+++ b/dotfiles/ssh/config
@@ -0,0 +1,4 @@
+Host github.com
+ AddKeysToAgent yes
+ IdentityFile ~/.ssh/id_ed25519
+
diff --git a/flake.lock b/flake.lock
index a3fd1ff..dab2140 100644
--- a/flake.lock
+++ b/flake.lock
@@ -37,34 +37,33 @@
"type": "github"
}
},
- "hjem": {
+ "home-manager": {
"inputs": {
- "nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
- "lastModified": 1780199518,
- "narHash": "sha256-NhtWx0youXYRvcqtL+sjdqoZinMcnjcwRsh6eBJUZLg=",
- "owner": "feel-co",
- "repo": "hjem",
- "rev": "ffa433dd86e761de45ef985d4293f31a4d2a775d",
+ "lastModified": 1782657028,
+ "narHash": "sha256-PHTCpYZCMzJYS3phhywqRAZphKVr2zjvlGYa+H20ZZ4=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "4ad9aaae70c9aaab504127f926c0fa9cfbc2b365",
"type": "github"
},
"original": {
- "owner": "feel-co",
- "repo": "hjem",
+ "owner": "nix-community",
+ "repo": "home-manager",
"type": "github"
}
},
"mnw": {
"locked": {
- "lastModified": 1778541201,
- "narHash": "sha256-n0twkzWexzjsoDycOTvvQNuGEdg62UiNHYcFCduYpKI=",
+ "lastModified": 1780772958,
+ "narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=",
"owner": "Gerg-L",
"repo": "mnw",
- "rev": "1a3573fc9d2486738fe0b2cacc5cd10dd5f3a445",
+ "rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160",
"type": "github"
},
"original": {
@@ -73,156 +72,34 @@
"type": "github"
}
},
- "my-dmenu": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1781402344,
- "narHash": "sha256-vhY6GC5xLZtx0tdJendPRq72LrsBYJcEJ7zrc4MYOHw=",
- "ref": "refs/heads/master",
- "rev": "91e229306f4e847fa70d1d004b48c24723a8bfb6",
- "revCount": 629,
- "type": "git",
- "url": "git://git.skullheadx.com/dmenu.git"
- },
- "original": {
- "type": "git",
- "url": "git://git.skullheadx.com/dmenu.git"
- }
- },
- "my-dwm": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1781402267,
- "narHash": "sha256-hAr/RzrOHXhavNUrpGCkHsnDDdy7eiNY9tMo5kVg7a8=",
- "ref": "refs/heads/master",
- "rev": "06e55b0ac5b05f7d50af0bc95e3ab60be1b7892c",
- "revCount": 1746,
- "type": "git",
- "url": "git://git.skullheadx.com/dwm.git"
- },
- "original": {
- "type": "git",
- "url": "git://git.skullheadx.com/dwm.git"
- }
- },
- "my-slstatus": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1777653948,
- "narHash": "sha256-oJ4BGbTjsaD39xcI9V9ICsKz9oCRHpsxqxL4ZL8NJjw=",
- "ref": "refs/heads/master",
- "rev": "07e311ed5966079fbff18da4089279a77b60831b",
- "revCount": 624,
- "type": "git",
- "url": "git://git.skullheadx.com/slstatus.git"
- },
- "original": {
- "type": "git",
- "url": "git://git.skullheadx.com/slstatus.git"
- }
- },
- "my-st": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1781403572,
- "narHash": "sha256-ffX9W4Aouilh+bErk3A31rEJWq88caP+ddR0JYzfDMM=",
- "ref": "refs/heads/master",
- "rev": "152d350c2e341ba7960da2117372af62426bfb24",
- "revCount": 1192,
- "type": "git",
- "url": "git://git.skullheadx.com/st.git"
- },
- "original": {
- "type": "git",
- "url": "git://git.skullheadx.com/st.git"
- }
- },
- "my-surf": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1777933639,
- "narHash": "sha256-BMZmBTKFy8iab051rmXBHUZcfaav/c4GR9rpgdCR6XM=",
- "ref": "refs/heads/surf-webkit2",
- "rev": "a9203494a3895f95a0207dabf7c587e60dab45c8",
- "revCount": 620,
- "type": "git",
- "url": "git://git.skullheadx.com/surf.git"
- },
- "original": {
- "type": "git",
- "url": "git://git.skullheadx.com/surf.git"
- }
- },
- "ndg": {
- "inputs": {
- "nixpkgs": [
- "nvf",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1779233504,
- "narHash": "sha256-YIKEyzh0NFQlD0O92LQQNMoVCDwV8yw1Xz0Iu+4ZC5U=",
- "owner": "feel-co",
- "repo": "ndg",
- "rev": "86f6644411a64d5413711895b7cf6e0e1be465b6",
- "type": "github"
- },
- "original": {
- "owner": "feel-co",
- "ref": "refs/tags/v2.8.0",
- "repo": "ndg",
- "type": "github"
- }
- },
"nix-darwin": {
"inputs": {
"nixpkgs": [
- "hjem",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1777780666,
- "narHash": "sha256-8wURyQMdDkGUarSTKOGdCuFfYiwa3HbzwscUfn3STDE=",
+ "lastModified": 1781761792,
+ "narHash": "sha256-rCPytmKNjctLloB6UgK5CRrHSwV4b0ygxtJLPPp8R14=",
"owner": "nix-darwin",
"repo": "nix-darwin",
- "rev": "8c62fba0854ba15c8917aed18894dbccb48a3777",
+ "rev": "a1fa429e945becaf60468600daf649be4ba0350c",
"type": "github"
},
"original": {
"owner": "nix-darwin",
+ "ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
- "lastModified": 1779560665,
- "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
+ "lastModified": 1782467914,
+ "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
+ "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
"type": "github"
},
"original": {
@@ -237,18 +114,17 @@
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"mnw": "mnw",
- "ndg": "ndg",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
- "lastModified": 1780042000,
- "narHash": "sha256-RxFOqPMAlbWiWwh7CQ0bIHIdt4D5gAttx3YVifBBWgE=",
+ "lastModified": 1782660650,
+ "narHash": "sha256-d4Ndt82q9bhL+iKFr1reufZyE/MTdULzN3kEkXsNG88=",
"owner": "notashelf",
"repo": "nvf",
- "rev": "07b57ebc6c9e778c536ac0ff1b01fb18dc90239a",
+ "rev": "18d2d23191250c7f597d85da07d860eb05f9e1be",
"type": "github"
},
"original": {
@@ -259,12 +135,8 @@
},
"root": {
"inputs": {
- "hjem": "hjem",
- "my-dmenu": "my-dmenu",
- "my-dwm": "my-dwm",
- "my-slstatus": "my-slstatus",
- "my-st": "my-st",
- "my-surf": "my-surf",
+ "home-manager": "home-manager",
+ "nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs",
"nvf": "nvf"
}
diff --git a/flake.nix b/flake.nix
index 9d42340..443194f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,10 +1,10 @@
{
- description = "Based and Minimal Flake";
+ description = "Based and Minimal Flake For Darwin";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- hjem = {
- url = "github:feel-co/hjem";
+ nix-darwin = {
+ url = "github:nix-darwin/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -36,6 +36,14 @@
url = "github:notashelf/nvf";
inputs.nixpkgs.follows = "nixpkgs";
};
+ home-manager = {
+ url = "github:nix-community/home-manager";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ hjem = {
+ url = "github:feel-co/hjem";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs = {
self,
@@ -47,6 +55,8 @@
my-st,
my-dmenu,
nvf,
+ nix-darwin,
+ home-manager,
} @ inputs: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
@@ -54,6 +64,9 @@
inherit pkgs;
modules = [./nvf/nvf.nix];
};
+
+ system2 = "aarch64-darwin";
+ pkgs = nixpkgs.legacyPackages.${system2};
in {
nixosConfigurations.nepsis = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs customNeovim;};
@@ -75,5 +88,57 @@
};
packages.${system}.my-neovim = customNeovim.neovim;
+
+ packages.${system2}.my-neovim = customNeovim.neovim;
+ darwinConfigurations = {
+ kenosis = nix-darwin.lib.darwinSystem {
+ specialArgs = {inherit inputs customNeovim;};
+ modules = [
+ ./darwin-common.nix
+ ./hosts/kenosis/configuration.nix
+ ./overlays.nix
+ home-manager.darwinModules.home-manager
+ {
+ users.users.andrew = {
+ home = /Users/andrew;
+ };
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.extraSpecialArgs = {
+ inherit inputs;
+ };
+ home-manager.users.andrew = {
+ imports = [./home.nix];
+ home.username = "andrew";
+ home.homeDirectory = /Users/andrew/;
+ };
+ }
+ ];
+ };
+ bear = nix-darwin.lib.darwinSystem {
+ specialArgs = {inherit inputs customNeovim;};
+ modules = [
+ ./darwin-common.nix
+ ./hosts/bear/configuration.nix
+ ./overlays.nix
+ home-manager.darwinModules.home-manager
+ {
+ users.users.andrewmontgomery = {
+ home = /Users/andrewmontgomery;
+ };
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.extraSpecialArgs = {
+ inherit inputs;
+ };
+ home-manager.users.andrewmontgomery = {
+ imports = [./home.nix];
+ home.username = "andrewmontgomery";
+ home.homeDirectory = /Users/andrewmontgomery;
+ };
+ }
+ ];
+ };
+ };
};
}
diff --git a/home.nix b/home.nix
new file mode 100644
index 0000000..ce48a66
--- /dev/null
+++ b/home.nix
@@ -0,0 +1,96 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ # home.username = username;
+ # home.homeDirectory = homeDir;
+ # You can update Home Manager without changing this value. See
+ # the Home Manager release notes for a list of state version
+ # changes in each release.
+ home.stateVersion = "25.11";
+ programs.home-manager.enable = true;
+
+ programs.fzf = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+ programs.zoxide = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+
+ home.file = {
+ ".config/senpai/senpai.scfg".source = ./dotfiles/senpai/senpai.scfg;
+ };
+
+ programs.emacs = {
+ enable = true;
+ extraConfig = ''
+ ;;; -*- lexical-binding: t -*-
+ (custom-set-variables
+ ;; custom-set-variables was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(custom-enabled-themes '(modus-vivendi-tinted))
+ '(rcirc-default-nick "Skullheadx")
+ '(rcirc-server-alist
+ '(("irc.libera.chat" :port 6697 :channels ("#emacs" "#lobsters" "#openbsd")
+ :encryption tls))))
+ (custom-set-faces
+ ;; custom-set-faces was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ )
+ (global-set-key (kbd "C-c l") #'org-store-link)
+ (global-set-key (kbd "C-c a") #'org-agenda)
+ (global-set-key (kbd "C-c c") #'org-capture)
+ (setq org-agenda-files '("~/org"))
+ (setq org-todo-keywords
+ '((sequence
+ "TODO(t)"
+ "NEXT(n)"
+ "WAIT(w@)"
+ "|"
+ "DONE(d)"
+ "CANCELLED(c@)")))
+ (setq org-capture-templates
+ '(("t" "Todo" entry
+ (file "~/org/inbox.org")
+ "* TODO %?\n%U")))
+ (setq org-agenda-custom-commands
+ '(("n" "Next Actions"
+ todo "NEXT")))
+ (setq org-log-done 'time)
+
+ (fido-vertical-mode 1)
+
+ ;; Nix syntax
+ (use-package nix-mode
+ :mode "\\.nix\\'")
+
+ ;; LSP
+ (use-package lsp-mode
+ :hook (nix-mode . lsp-deferred))
+
+ ;; Optional UI helpers
+ (use-package lsp-ui
+ :commands lsp-ui-mode)
+
+ ;; Formatting
+ (use-package apheleia
+ :config
+ (setf (alist-get 'nix-mode apheleia-mode-alist) 'alejandra)
+ (apheleia-global-mode +1))
+ '';
+ extraPackages = epkgs:
+ with epkgs; [
+ nix-mode
+ lsp-mode
+ lsp-ui
+ apheleia
+ ];
+ };
+}
diff --git a/hosts/bear/configuration.nix b/hosts/bear/configuration.nix
new file mode 100644
index 0000000..bf9c10d
--- /dev/null
+++ b/hosts/bear/configuration.nix
@@ -0,0 +1,57 @@
+{
+ config,
+ pkgs,
+ inputs,
+ customNeovim,
+ ...
+}: {
+ networking = {
+ computerName = "bear";
+ hostName = "bear";
+ localHostName = "bear";
+ };
+ # Primary user for user-specific settings (dock, etc.)
+ system.primaryUser = "andrewmontgomery";
+ # List packages installed in system profile. To search by name, run:
+ # $ nix-env -qaP | grep wget
+ environment.systemPackages = with pkgs; [
+ customNeovim.neovim
+ senpai
+ mpv
+ ];
+
+ homebrew = {
+ enable = true;
+ user = "andrewmontgomery";
+
+ taps = [
+ ];
+ brews = [
+ ];
+ casks = [
+ "keepassxc"
+ "protonvpn"
+ "selfcontrol"
+ "kdenlive"
+ "audacity"
+ "steam"
+ ];
+ };
+ # Dock configuration
+ system.defaults.dock = {
+ persistent-apps = [
+ "/System/Applications/Reminders.app"
+ "/System/Applications/Calendar.app"
+ "/System/Applications/Music.app"
+ "/System/Applications/Messages.app"
+
+ "/Applications/KeePassXC.app"
+ "/Applications/Ghostty.app"
+ # "/Applications/Nix Apps/Brave Browser.app"
+ "/Applications/Nix Apps/LibreWolf.app"
+ # "/Applications/Nix Apps/UTM.app"
+
+ "/System/Applications/System Settings.app"
+ ];
+ };
+}
diff --git a/hosts/kenosis/configuration.nix b/hosts/kenosis/configuration.nix
new file mode 100644
index 0000000..637db89
--- /dev/null
+++ b/hosts/kenosis/configuration.nix
@@ -0,0 +1,81 @@
+{
+ config,
+ pkgs,
+ inputs,
+ customNeovim,
+ ...
+}: {
+ networking = {
+ computerName = "kenosis";
+ hostName = "kenosis";
+ localHostName = "kenosis";
+ };
+ # Primary user for user-specific settings (dock, etc.)
+ system.primaryUser = "andrew";
+ # List packages installed in system profile. To search by name, run:
+ # $ nix-env -qaP | grep wget
+ environment.systemPackages = with pkgs; [
+ # work tools
+ go
+ jdk17
+ (google-cloud-sdk.withExtraComponents [
+ google-cloud-sdk.components.gke-gcloud-auth-plugin
+ google-cloud-sdk.components.beta
+ ])
+ nodejs
+ yarn
+ kubectl
+ ffmpeg
+ dbeaver-bin
+ ngrok
+
+ claude-code
+ air
+ pnpm
+ librewolf
+ lazygit
+ fastfetch
+ customNeovim.neovim
+ git
+ go-swag
+ blender
+ (python313.withPackages (ps:
+ with ps; [
+ numpy
+ ]))
+ ];
+
+ homebrew = {
+ enable = true;
+ user = "andrew";
+
+ taps = [
+ ];
+ brews = [
+ "openssh"
+ "redis"
+ ];
+ casks = [
+ "keepingyouawake"
+ "feishu"
+ "surfshark"
+ "scroll-reverser"
+ "google-chrome"
+ "firefox"
+ "chatgpt"
+ "capcut"
+ ];
+ };
+
+ # Dock configuration
+ system.defaults.dock = {
+ persistent-apps = [
+ "/Applications/Nix Apps/Librewolf.app"
+ "/Applications/Feishu.app"
+ "/Applications/Ghostty.app"
+ "/Applications/Nix Apps/DBeaver.app"
+ "/Applications/Surfshark.app"
+ "/System/Applications/Utilities/Activity Monitor.app"
+ ];
+ };
+}
diff --git a/rebuild.sh b/rebuild.sh
new file mode 100755
index 0000000..57cebc7
--- /dev/null
+++ b/rebuild.sh
@@ -0,0 +1 @@
+sudo darwin-rebuild switch --flake .
diff --git a/setup.sh b/setup.sh
new file mode 100644
index 0000000..8c4e67c
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,30 @@
+curl -sSf -L https://install.lix.systems/lix | sh -s -- install
+. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
+nix --version
+
+mkdir -p ~/src
+cd ~/src
+git clone https://github.com/Skullheadx/dotfiles.git
+cd dotfiles
+git fetch origin
+git checkout -b new-darwin origin/new-darwin
+
+/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+echo >>/Users/andrew/.zprofile
+echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >>/Users/andrew/.zprofile
+eval "$(/opt/homebrew/bin/brew shellenv zsh)"
+
+sudo mkdir -p /etc/nix-darwin
+sudo chown $(id -nu):$(id -ng) /etc/nix-darwin
+cd /etc/nix-darwin
+
+# To use Nixpkgs unstable:
+nix flake init -t nix-darwin/master
+
+sed -i '' "s/simple/$(scutil --get LocalHostName)/" flake.nix
+
+sudo nix run nix-darwin/master#darwin-rebuild -- switch
+
+zsh
+cd ~/src/dotfiles
+sudo darwin-rebuild switch --flake .
diff --git a/sh.nix b/sh.nix
index 4de93db..be2975e 100644
--- a/sh.nix
+++ b/sh.nix
@@ -24,6 +24,16 @@
nix-upd-sl = "sudo nix flake update my-slstatus my-dwm my-surf my-st my-dmenu";
};
};
+ programs.zsh = {
+ enable = true;
+ enableAutosuggestions = true;
+ enableBashCompletion = true;
+ enableCompletion = true;
+ enableFastSyntaxHighlighting = true;
+ enableFzfCompletion = true;
+ enableFzfGit = true;
+ enableFzfHistory = true;
+ };
environment.etc."inputrc".text = ''
set editing-mode vi