diff --git a/.authinfo.gpg b/.authinfo.gpg deleted file mode 100644 index 4aeff33..0000000 Binary files a/.authinfo.gpg and /dev/null differ diff --git a/.config/nix/flake.lock b/.config/nix/flake.lock deleted file mode 100644 index ac9a0b2..0000000 --- a/.config/nix/flake.lock +++ /dev/null @@ -1,85 +0,0 @@ -{ - "nodes": { - "darwin": { - "inputs": { - "nixpkgs": [ - "nixpkgs-darwin" - ] - }, - "locked": { - "lastModified": 1704277720, - "narHash": "sha256-meAKNgmh3goankLGWqqpw73pm9IvXjEENJloF0coskE=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "0dd382b70c351f528561f71a0a7df82c9d2be9a4", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs-darwin" - ] - }, - "locked": { - "lastModified": 1704498488, - "narHash": "sha256-yINKdShHrtjdiJhov+q0s3Y3B830ujRoSbHduUNyKag=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "51e44a13acea71b36245e8bd8c7db53e0a3e61ee", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "master", - "repo": "home-manager", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1704161960, - "narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "63143ac2c9186be6d9da6035fa22620018c85932", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "nixpkgs-darwin": { - "locked": { - "lastModified": 1704617685, - "narHash": "sha256-E6XALyIia7tAvE2QEr9PrrD9mhw6Up45SNmE9utVfqQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "207b14c6bd1065255e6ecffcfe0c36a7b54f8e48", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-23.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "darwin": "darwin", - "home-manager": "home-manager", - "nixpkgs": "nixpkgs", - "nixpkgs-darwin": "nixpkgs-darwin" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.config/nix/flake.nix b/.config/nix/flake.nix deleted file mode 100644 index feca46f..0000000 --- a/.config/nix/flake.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - nixConfig = { - substituters = [ - "https://mirrors.ustc.edu.cn/nix-channels/store" - "https://cache.nixos.org" - ]; - }; - - inputs = { - # nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-23.11-darwin"; - - darwin = { - url = "github:lnl7/nix-darwin"; - inputs.nixpkgs.follows = "nixpkgs-darwin"; - }; - - home-manager = { - url = "github:nix-community/home-manager/master"; - inputs.nixpkgs.follows = "nixpkgs-darwin"; - }; - }; - - outputs = inputs@{ nixpkgs, home-manager, darwin, ... }: { - darwinConfigurations.TobAir = darwin.lib.darwinSystem { - system = "aarch64-darwin"; - - modules = [ - ./modules/nix-core.nix - ./modules/system.nix - ./modules/apps.nix - ./modules/host-users.nix - home-manager.darwinModules.home-manager - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = inputs; - users.tobi = import ./home; - }; - } - ]; - }; - }; -} diff --git a/.config/nix/home/alacritty.nix b/.config/nix/home/alacritty.nix deleted file mode 100644 index 12af8df..0000000 --- a/.config/nix/home/alacritty.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ ... }: -{ - programs.alacritty = { - enable = true; - settings.font = { - size = 14; - normal.family = "Iosevka Comfy"; - normal.style = "Regular"; - }; - settings.window = { - padding.x = 18; - padding.y = 18; - opacity = 0.85; - decorations = "Buttonless"; - }; - }; -} diff --git a/.config/nix/home/amethyst.nix b/.config/nix/home/amethyst.nix deleted file mode 100644 index b8233ca..0000000 --- a/.config/nix/home/amethyst.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: -{ - xdg.configFile."amethyst/amethyst.yml".text = '' - window-margins: true - window-margin-size: 10 - mouse-swaps-windows: true - mouse-resizes-windows: true - floating-is-blacklist: true - float-small-windows: true - floating: - - com.apple.iphonesimulator - - com.apple.systempreferences - layouts: - - tall - - fullscreen - - floating - ''; -} diff --git a/.config/nix/home/core.nix b/.config/nix/home/core.nix deleted file mode 100644 index 44940a5..0000000 --- a/.config/nix/home/core.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - bottom - curl - jq - kind - kubectl - less - nix-output-monitor - raycast - ripgrep - rnix-lsp - tree - ]; - - home.sessionVariables = { - PAGER = "less"; - CLICOLOR = 1; - EDITOR = "emacs"; - }; - - programs.bat.enable = true; -} diff --git a/.config/nix/home/default.nix b/.config/nix/home/default.nix deleted file mode 100644 index 6674dec..0000000 --- a/.config/nix/home/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ ... }: -let - username = "tobi"; -in -{ - imports = [ - ./alacritty.nix - ./amethyst.nix - ./core.nix - ./git.nix - ./starship.nix - ./zsh.nix - ]; - - home = { - username = username; - homeDirectory = "/Users/${username}"; - stateVersion = "23.11"; - }; - - programs.home-manager.enable = true; -} diff --git a/.config/nix/home/git.nix b/.config/nix/home/git.nix deleted file mode 100644 index 480699e..0000000 --- a/.config/nix/home/git.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -{ - programs.git = { - enable = true; - userName = "Tobias Ostner"; - userEmail = "tobias.ostner@gmail.com"; - - extraConfig = { - init.defaultBranch = "main"; - pull.rebase = true; - }; - }; -} diff --git a/.config/nix/home/starship.nix b/.config/nix/home/starship.nix deleted file mode 100644 index 6934dab..0000000 --- a/.config/nix/home/starship.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -{ - programs.starship = { - enable = true; - enableZshIntegration = true; - settings.gcloud.disabled = true; - settings.aws.disabled = true; - settings.hostname.style = "bold green"; - }; -} diff --git a/.config/nix/home/zsh.nix b/.config/nix/home/zsh.nix deleted file mode 100644 index 12cb198..0000000 --- a/.config/nix/home/zsh.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ ... }: -{ - programs.zsh = { - enable = true; - enableCompletion = true; - initExtra = '' - eval "$(/opt/homebrew/bin/brew shellenv)" - ''; - syntaxHighlighting.enable = true; - shellAliases = { - ls = "ls --color=auto -F"; - nixswitch = "pushd ~/.config/nix; darwin-rebuild switch --flake .#"; - nixup = "pushd ~/.config/nix; nix flake update"; - }; - }; -} diff --git a/.config/nix/modules/apps.nix b/.config/nix/modules/apps.nix deleted file mode 100644 index 34f0f50..0000000 --- a/.config/nix/modules/apps.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ pkgs, ...}: { - homebrew = { - enable = true; - - onActivation.autoUpdate = false; - - brews = [ - "cmake" - "curl" - { - name = "emacs-plus"; - args = [ - " --with-no-frame-refocus" - "--with-native-comp" - "--with-imagemagick" - "--with-savchenkovaleriy-big-sur-icon" - ]; - } - "imagemagick" - "libvterm" - "trippy" - "wget" - "yabai" - ]; - - taps = [ - "d12frosted/emacs-plus" - "homebrew/cask-fonts" - "koekeishiya/formulae" - ]; - - casks = [ - "amethyst" - "anki" - "caffeine" - "docker" - "firefox" - "logseq" - "iglance" - "karabiner-elements" - "nextcloud" - "protonmail-bridge" - "protonvpn" - "temurin17" - "thunderbird" - "font-iosevka-comfy" - "vlc" - "whatsapp" - ]; - }; -} diff --git a/.config/nix/modules/host-users-personal.nix b/.config/nix/modules/host-users-personal.nix deleted file mode 100644 index e277761..0000000 --- a/.config/nix/modules/host-users-personal.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: -let - hostname = "TobAir"; - username = "tobi"; -in -{ - networking.hostName = hostname; - networking.computerName = hostname; - system.defaults.smb.NetBIOSName = hostname; - - users.users."${username}" = { - home = "/Users/${username}"; - description = "Tobias Ostner"; - shell = pkgs.zshInteractive; - }; - - nix.settings.trusted-users = [ username ]; -} diff --git a/.config/nix/modules/host-users-work.nix b/.config/nix/modules/host-users-work.nix deleted file mode 100644 index 4e8a05e..0000000 --- a/.config/nix/modules/host-users-work.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: -let - hostname = "TobWorkJambit"; - username = "tobi"; -in -{ - networking.hostName = hostname; - networking.computerName = hostname; - system.defaults.smb.NetBIOSName = hostname; - - users.users."${username}" = { - home = "/Users/${username}"; - description = "Tobias Ostner"; - shell = pkgs.zshInteractive; - }; - - nix.settings.trusted-users = [ username ]; -} diff --git a/.config/nix/modules/host-users.nix b/.config/nix/modules/host-users.nix deleted file mode 100644 index e277761..0000000 --- a/.config/nix/modules/host-users.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: -let - hostname = "TobAir"; - username = "tobi"; -in -{ - networking.hostName = hostname; - networking.computerName = hostname; - system.defaults.smb.NetBIOSName = hostname; - - users.users."${username}" = { - home = "/Users/${username}"; - description = "Tobias Ostner"; - shell = pkgs.zshInteractive; - }; - - nix.settings.trusted-users = [ username ]; -} diff --git a/.config/nix/modules/nix-core.nix b/.config/nix/modules/nix-core.nix deleted file mode 100644 index 045799d..0000000 --- a/.config/nix/modules/nix-core.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, lib, ... }: -{ - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - nixpkgs.config.allowUnfree = true; - nix.package = pkgs.nix; - services.nix-daemon.enable = true; - programs.nix-index.enable = true; - nix.gc = { - automatic = lib.mkDefault true; - options = lib.mkDefault "--delete-older-than 7d"; - }; - nix.settings = { - auto-optimise-store = false; - }; -} diff --git a/.emacs.d/packages/copilot b/.emacs.d/packages/copilot deleted file mode 160000 index 7cb7bed..0000000 --- a/.emacs.d/packages/copilot +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7cb7beda89145ccb86a4324860584545ec016552 diff --git a/.emacs.d/resources/emacs.png b/.emacs.d/resources/emacs.png deleted file mode 100644 index bd56505..0000000 Binary files a/.emacs.d/resources/emacs.png and /dev/null differ diff --git a/.emacs.d/tree-sitter/libtree-sitter-swift.dylib b/.emacs.d/tree-sitter/libtree-sitter-swift.dylib deleted file mode 100755 index 5041495..0000000 Binary files a/.emacs.d/tree-sitter/libtree-sitter-swift.dylib and /dev/null differ diff --git a/.stow-local-ignore b/.stow-local-ignore deleted file mode 100644 index 907fb49..0000000 --- a/.stow-local-ignore +++ /dev/null @@ -1,4 +0,0 @@ -\.git -\.gitignore -\.gitmodules -^/README.* \ No newline at end of file diff --git a/README.org b/README.org index 5801374..ab3b791 100644 --- a/README.org +++ b/README.org @@ -1,5 +1 @@ #+TITLE: README - -* GNU Stow - -https://systemcrafters.net/managing-your-dotfiles/using-gnu-stow/ diff --git a/nix/config/amethyst/amethyst.yml b/nix/config/amethyst/amethyst.yml new file mode 100644 index 0000000..1f0b0c2 --- /dev/null +++ b/nix/config/amethyst/amethyst.yml @@ -0,0 +1,13 @@ +window-margins: true +window-margin-size: 10 +mouse-swaps-windows: true +mouse-resizes-windows: true +floating-is-blacklist: true +float-small-windows: true +floating: +- com.apple.iphonesimulator +- com.apple.systempreferences +layouts: +- tall +- fullscreen +- floating diff --git a/.emacs.d/early-init.el b/nix/config/emacs/early-init.el similarity index 93% rename from .emacs.d/early-init.el rename to nix/config/emacs/early-init.el index 0db1bbb..2a53910 100644 --- a/.emacs.d/early-init.el +++ b/nix/config/emacs/early-init.el @@ -22,6 +22,6 @@ (scroll-bar-mode -1) (menu-bar-mode -1) -(add-to-list 'default-frame-alist '(undecorated-round . t)) +(add-to-list 'default-frame-alist '(undecorated . t)) (customize-set-variable 'initial-major-mode 'emacs-lisp-mode) diff --git a/.emacs.d/init.el b/nix/config/emacs/init.el similarity index 84% rename from .emacs.d/init.el rename to nix/config/emacs/init.el index 109fcf0..9104e08 100644 --- a/.emacs.d/init.el +++ b/nix/config/emacs/init.el @@ -6,27 +6,26 @@ (setq custom-file (expand-file-name "custom.el" user-emacs-directory)) (load custom-file 'noerror) -(setq package-archives - '(("elpa" . "https://elpa.gnu.org/packages/") - ("elpa-devel" . "https://elpa.gnu.org/devel/") - ("nongnu" . "https://elpa.nongnu.org/nongnu/") - ("melpa" . "https://melpa.org/packages/"))) +;; (setq package-archives +;; '(("elpa" . "https://elpa.gnu.org/packages/") +;; ("elpa-devel" . "https://elpa.gnu.org/devel/") +;; ("nongnu" . "https://elpa.nongnu.org/nongnu/") +;; ("melpa" . "https://melpa.org/packages/"))) -(setq package-archive-priorities - '(("elpa" . 2) - ("nongnu" . 1))) +;; (setq package-archive-priorities +;; '(("elpa" . 2) +;; ("nongnu" . 1))) -(setq use-package-enable-imenu-support t) -(setq use-package-always-ensure t) -;; (setq use-package-compute-statistics t) -;; (setq use-package-verbose t) +;; (eval-when-compile +;; (require 'use-package) +;; (setq use-package-enable-imenu-support t) + ;; (setq use-package-compute-statistics t) +;; (setq use-package-verbose t)) -(eval-when-compile - (require 'use-package)) (require 'bind-key) -(add-to-list 'load-path (expand-file-name "to/" user-emacs-directory)) -(require 'utils) +;; (add-to-list 'load-path (expand-file-name "lisp/" user-emacs-directory)) +;; (require 'utils) (use-package ace-window :bind @@ -35,7 +34,6 @@ (setq aw-keys '(?a ?b ?c ?d ?e ?f ?g ?h ?i ?j))) (use-package autorevert - :ensure nil :config (setq auto-revert-check-vc-info t auto-revert-interval 1) @@ -52,13 +50,6 @@ (add-to-list 'completion-at-point-functions #'cape-file) (add-to-list 'completion-at-point-functions #'cape-history)) -(use-package chatgpt-shell - :defer 3 - :config - (setq chatgpt-shell-openai-key - (lambda () - (auth-source-pick-first-password :host "api.openai.com")))) - (use-package cider :defer t) @@ -84,22 +75,27 @@ :hook (completion-list-mode . consult-preview-at-point-mode)) -(use-package copilot - :load-path "packages/copilot" - :bind ("M-C-" . copilot-accept-completion) - :commands (copilot-login global-copilot-mode) - :config - (defun to/copilot-disable-predicate () - (member major-mode '(shell-mode - eshell-mode - term-mode - vterm-mode - compilation-mode - debugger-mode - dired-mode-hook - compilation-mode-hook - minibuffer-mode-hook))) - (add-to-list 'copilot-disable-predicates #'to/copilot-disable-predicate)) +;; (use-package copilot +;; :load-path "packages/copilot" +;; :bind ("M-C-" . copilot-accept-completion) +;; :commands (copilot-login global-copilot-mode) +;; :config +;; (use-package dash) +;; (use-package s) +;; (use-package editorconfig) +;; (use-package f) + +;; (defun to/copilot-disable-predicate () +;; (member major-mode '(shell-mode +;; eshell-mode +;; term-mode +;; vterm-mode +;; compilation-mode +;; debugger-mode +;; dired-mode-hook +;; compilation-mode-hook +;; minibuffer-mode-hook))) +;; (add-to-list 'copilot-disable-predicates #'to/copilot-disable-predicate)) (use-package corfu :custom @@ -114,9 +110,6 @@ (setq-local corfu-auto nil) (corfu-mode)))) -(use-package dash - :defer 3) - (use-package diff-hl :hook ((magit-pre-refresh . diff-hl-magit-pre-refresh) (magit-post-refresh . diff-hl-magit-post-refresh)) @@ -124,7 +117,6 @@ (global-diff-hl-mode)) (use-package dired - :ensure nil :init (setq dired-dwim-target t dired-hide-details-hide-symlink-targets nil @@ -164,9 +156,6 @@ ediff-split-window-function 'split-window-horizontally ediff-window-setup-function 'ediff-setup-windows-plain)) -(use-package editorconfig - :defer 3) - (use-package eglot :hook (swift-mode . eglot-ensure) @@ -274,7 +263,6 @@ (flycheck-swiftlint-setup)) (use-package frame - :ensure nil :init (keymap-global-unset "C-z" nil)) @@ -310,6 +298,9 @@ (use-package gptel :bind ("C-c RET" . gptel-send) :config + (setq gptel-api-key + (lambda () + (nth 0 (process-lines "pass" "show" "openai-api")))) (setq gptel-default-mode 'org-mode)) (use-package git-link @@ -323,7 +314,6 @@ ("C-h v" . helpful-variable))) (use-package hl-line - :ensure nil :hook (prog-mode . hl-line-mode)) (use-package js2-mode @@ -350,23 +340,6 @@ (to/set-ligatures-for-font-iosevka) (global-ligature-mode t)) -(use-package lin - :config - (setq lin-mode-hooks - '(bongo-mode-hook - dired-mode-hook - git-rebase-mode-hook - grep-mode-hook - ibuffer-mode-hook - ilist-mode-hook - magit-log-mode-hook - occur-mode-hook - org-agenda-mode-hook - pdf-outline-buffer-mode-hook - proced-mode-hook - tabulated-list-mode-hook)) - (lin-global-mode)) - (use-package magit :defer t) @@ -416,22 +389,24 @@ :defer 2 :if window-system :config + (use-package nerd-icons-completion + :config + (nerd-icons-completion-mode)) + (use-package nerd-icons-corfu + :config + (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)) (use-package nerd-icons-dired :defer t :hook dired-mode) (use-package nerd-icons-ibuffer :defer t - :hook ibuffer-mode) - (use-package nerd-icons-completion - :config - (nerd-icons-completion-mode))) + :hook ibuffer-mode)) (use-package nix-mode :defer t) (use-package ob :after org - :ensure nil :config (org-babel-do-load-languages 'org-babel-load-languages @@ -456,10 +431,6 @@ (append org-babel-load-languages '((swift . t))))) -(use-package ob-swiftui - :after org - :defer t) - (use-package olivetti :hook (org-mode markdown-mode) :custom @@ -509,21 +480,20 @@ (pulsar-global-mode 1) (add-hook 'next-error-hook #'pulsar-pulse-line)) -(use-package rainbow-mode - :hook ((text-mode prog-mode) . rainbow-mode)) - (use-package rainbow-delimiters :hook (emacs-lisp-mode clojure-mode)) +(use-package rainbow-mode + :hook ((text-mode prog-mode) . rainbow-mode)) + (use-package recentf-mode - :hook (after-init . recentf-mode) - :ensure nil) + :hook (after-init . recentf-mode)) (use-package restclient :defer t) -(use-package s - :defer 3) +;; (use-package s +;; :defer 3) (use-package savehist :init @@ -567,8 +537,6 @@ :config (global-so-long-mode)) -(use-package spacious-padding) - (use-package super-save :config (super-save-mode)) @@ -583,15 +551,12 @@ swift-mode:basic-offset 2 swift-mode:repl-executable "xcrun swift repl")) -(use-package swift-ts-mode - :hook (swift-mode . subword-mode) - :config - (setq swift-ts-mode 2)) - -(use-package system-packages) +;; (use-package swift-ts-mode +;; :hook (swift-mode . subword-mode) +;; :config +;; (setq swift-ts-mode 2)) (use-package tab-bar - :ensure nil :config (tab-bar-mode) (setq tab-bar-show t @@ -604,19 +569,19 @@ (use-package terraform-mode) -(use-package treesit-auto - :custom - (treesit-auto-install 'prompt) - :config - (add-to-list 'treesit-auto-recipe-list - (make-treesit-auto-recipe - :lang 'swift - :ts-mode 'swift-ts-mode - :remap '(swift-mode) - :ext "\\.swift\\'")) - (setq treesit-auto-langs '(swift)) - (treesit-auto-add-to-auto-mode-alist 'all) - (global-treesit-auto-mode)) +;; (use-package treesit-auto +;; :custom +;; (treesit-auto-install 'prompt) +;; :config +;; (add-to-list 'treesit-auto-recipe-list +;; (make-treesit-auto-recipe +;; :lang 'swift +;; :ts-mode 'swift-ts-mode +;; :remap '(swift-mode) +;; :ext "\\.swift\\'")) +;; (setq treesit-auto-langs '(swift)) +;; (treesit-auto-add-to-auto-mode-alist 'all) +;; (global-treesit-auto-mode)) (use-package yaml-mode) diff --git a/.emacs.d/to/utils.el b/nix/config/emacs/lisp/utils.el similarity index 90% rename from .emacs.d/to/utils.el rename to nix/config/emacs/lisp/utils.el index 7504f79..5077c0e 100644 --- a/.emacs.d/to/utils.el +++ b/nix/config/emacs/lisp/utils.el @@ -1,9 +1,7 @@ (defun to/xcode-info () (interactive) (let ((buffer "*Xcode info*")) - (shell-command "system_profiler SPDeveloperToolsDataType" buffer) + (shell-command "system_profiler SPDeveloperToolsDataType" buffer buffer) (with-current-buffer buffer (view-mode +1) (select-window (get-buffer-window buffer))))) - -(provide 'utils) diff --git a/nix/config/kitty/kitty.conf b/nix/config/kitty/kitty.conf new file mode 100644 index 0000000..6ce3ed7 --- /dev/null +++ b/nix/config/kitty/kitty.conf @@ -0,0 +1,3 @@ +hide_window_decorations yes +tab_bar_style slant +window_padding_width 18 \ No newline at end of file diff --git a/nix/flake.lock b/nix/flake.lock new file mode 100644 index 0000000..24c9f40 --- /dev/null +++ b/nix/flake.lock @@ -0,0 +1,70 @@ +{ + "nodes": { + "darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711763326, + "narHash": "sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/+YZOq3sKviI=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "36524adc31566655f2f4d55ad6b875fb5c1a4083", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714043624, + "narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.11", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1715106579, + "narHash": "sha256-gZMgKEGiK6YrwGBiccZ1gemiUwjsZ1Zv49KYOgmX2fY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8be0d8a1ed4f96d99b09aa616e2afd47acc3da89", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/nix/flake.nix b/nix/flake.nix new file mode 100644 index 0000000..038e5db --- /dev/null +++ b/nix/flake.nix @@ -0,0 +1,27 @@ +{ + inputs = { + darwin.inputs.nixpkgs.follows = "nixpkgs"; + darwin.url = "github:lnl7/nix-darwin"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.url = "github:nix-community/home-manager/release-23.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + }; + + outputs = inputs @ { + self, + darwin, + home-manager, + nixpkgs, + ... + }: let + darwin-system = import ./system/darwin.nix {inherit inputs;}; + in { + darwinConfigurations = { + TobAir = darwin-system { + system = "aarch64-darwin"; + username = "tobi"; + hostname = "TobAir"; + }; + }; + }; +} diff --git a/.config/nix/modules/system.nix b/nix/module/configuration.nix similarity index 60% rename from .config/nix/modules/system.nix rename to nix/module/configuration.nix index 905c7e9..1cc9b99 100644 --- a/.config/nix/modules/system.nix +++ b/nix/module/configuration.nix @@ -1,6 +1,46 @@ -{ pkgs, ...}: +{ hostname }: { - system = { + nix = { + settings = { + auto-optimise-store = true; + builders-use-substitutes = true; + experimental-features = ["flakes" "nix-command"]; + substituters = ["https://nix-community.cachix.org"]; + trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ]; + trusted-users = ["@wheel"]; + warn-dirty = false; + }; + }; + + programs.zsh.enable = true; + programs.gnupg.agent.enable = true; + + networking.hostName = hostname; + + homebrew = { + enable = true; + onActivation.cleanup = "zap"; + + casks = [ + "amethyst" + "anki" + "arc" + "font-iosevka-comfy" + "karabiner-elements" + "logseq" + "nextcloud" + "protonvpn" + "raycast" + ]; + + taps = [ + "homebrew/cask-fonts" + ]; + }; + + system = { activationScripts.postUserActivation.text = '' /System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u ''; @@ -48,22 +88,4 @@ }; }; }; - - security.pam.enableSudoTouchIdAuth = true; - - programs.zsh.enable = true; - - fonts.fonts = [ - pkgs.material-design-icons - pkgs.font-awesome - (pkgs.nerdfonts.override { - fonts = [ - "FiraCode" - "Iosevka" - "IosevkaTerm" - "JetBrainsMono" - "SourceCodePro" - ]; - }) - ]; } diff --git a/nix/module/home-manager.nix b/nix/module/home-manager.nix new file mode 100644 index 0000000..4974dc2 --- /dev/null +++ b/nix/module/home-manager.nix @@ -0,0 +1,148 @@ +{pkgs, ...}: { + home.file.".emacs.d/early-init.el".source = ../config/emacs/early-init.el; + + home.packages = with pkgs; [ + bottom + cmake + curl + gnupg + jq + kubectl + pass + ripgrep + rnix-lsp + tree + wget + ]; + + home.stateVersion = "23.11"; + + home.sessionVariables = { + PAGER = "less"; + CLICOLOR = 1; + EDITOR = "emacs"; + LOGSEQ_DIR = "~/Logseq/Me/"; + }; + + programs = { + alacritty = { + enable = true; + settings.font = { + size = 14; + normal.family = "Iosevka Comfy"; + normal.style = "Regular"; + }; + settings.window = { + padding.x = 18; + padding.y = 18; + decorations = "Buttonless"; + }; + }; + + emacs = { + enable = true; + extraConfig = builtins.readFile ../config/emacs/init.el + + builtins.readFile ../config/emacs/lisp/utils.el; + extraPackages = epkgs: (with epkgs; [ + ace-window + avy + cape + cider + clojure-mode + consult + corfu + diff-hl + dired-preview + dockerfile-mode + ef-themes + exec-path-from-shell + flycheck + flycheck-clj-kondo + flycheck-swiftlint + gptel + git-link + graphql-mode + helpful + js2-mode + json-mode + ligature + minions + multiple-cursors + nerd-icons + nerd-icons-completion + nerd-icons-corfu + nerd-icons-dired + nerd-icons-ibuffer + ob-restclient + ob-swift + olivetti + orderless + org + org-modern + ox-gfm + pulsar + rainbow-delimiters + rainbow-mode + restclient + smartparens + so-long + swift-mode + super-save + terraform-mode + yaml-mode + vterm + fontaine + magit + magit-todos + marginalia + modus-themes + nix-mode + vertico + ]); + package = pkgs.emacs29; + }; + + git = { + enable = true; + userName = "Tobias Ostner"; + userEmail = "tobias.ostner@gmail.com"; + extraConfig = { + init.defaultBranch = "main"; + pull.rebase = true; + }; + }; + + kitty = { + enable = true; + font = { + size = 14; + name = "Iosevka Comfy"; + }; + extraConfig = builtins.readFile ../config/kitty/kitty.conf; + }; + + starship = { + enable = true; + enableZshIntegration = true; + settings = { + gcloud.disabled = true; + aws.disabled = true; + hostname.style = "bold green"; + }; + }; + + zsh = { + enable = true; + enableCompletion = true; + initExtra = '' + eval "$(/opt/homebrew/bin/brew shellenv)" + ''; + syntaxHighlighting.enable = true; + shellAliases = { + ls = "ls --color=auto -F"; + }; + }; + }; + + xdg.configFile."amethyst/amethyst.yml".text = builtins.readFile ../config/amethyst/amethyst.yml; +} diff --git a/nix/system/darwin.nix b/nix/system/darwin.nix new file mode 100644 index 0000000..c7ff3e7 --- /dev/null +++ b/nix/system/darwin.nix @@ -0,0 +1,30 @@ +{ + inputs +}: +{ + system, + username, + hostname +}: let + system-config = import ../module/configuration.nix {inherit hostname;}; + home-manager-config = import ../module/home-manager.nix; +in + inputs.darwin.lib.darwinSystem { + inherit system; + + modules = [ + { + services.nix-daemon.enable = true; + users.users.${username}.home = "/Users/${username}"; + } + + system-config + + inputs.home-manager.darwinModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users."${username}" = home-manager-config; + } + ]; + }