New beginning

This commit is contained in:
Tobias Ostner 2024-05-09 13:41:34 +02:00
parent 432c85e800
commit 8e64cc68b3
30 changed files with 404 additions and 507 deletions

Binary file not shown.

85
.config/nix/flake.lock generated
View file

@ -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
}

View file

@ -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;
};
}
];
};
};
}

View file

@ -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";
};
};
}

View file

@ -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
'';
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -1,13 +0,0 @@
{ ... }:
{
programs.git = {
enable = true;
userName = "Tobias Ostner";
userEmail = "tobias.ostner@gmail.com";
extraConfig = {
init.defaultBranch = "main";
pull.rebase = true;
};
};
}

View file

@ -1,10 +0,0 @@
{ ... }:
{
programs.starship = {
enable = true;
enableZshIntegration = true;
settings.gcloud.disabled = true;
settings.aws.disabled = true;
settings.hostname.style = "bold green";
};
}

View file

@ -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";
};
};
}

View file

@ -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"
];
};
}

View file

@ -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 ];
}

View file

@ -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 ];
}

View file

@ -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 ];
}

View file

@ -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;
};
}

@ -1 +0,0 @@
Subproject commit 7cb7beda89145ccb86a4324860584545ec016552

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1,4 +0,0 @@
\.git
\.gitignore
\.gitmodules
^/README.*

View file

@ -1,5 +1 @@
#+TITLE: README #+TITLE: README
* GNU Stow
https://systemcrafters.net/managing-your-dotfiles/using-gnu-stow/

View file

@ -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

View file

@ -22,6 +22,6 @@
(scroll-bar-mode -1) (scroll-bar-mode -1)
(menu-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) (customize-set-variable 'initial-major-mode 'emacs-lisp-mode)

View file

@ -6,27 +6,26 @@
(setq custom-file (expand-file-name "custom.el" user-emacs-directory)) (setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load custom-file 'noerror) (load custom-file 'noerror)
(setq package-archives ;; (setq package-archives
'(("elpa" . "https://elpa.gnu.org/packages/") ;; '(("elpa" . "https://elpa.gnu.org/packages/")
("elpa-devel" . "https://elpa.gnu.org/devel/") ;; ("elpa-devel" . "https://elpa.gnu.org/devel/")
("nongnu" . "https://elpa.nongnu.org/nongnu/") ;; ("nongnu" . "https://elpa.nongnu.org/nongnu/")
("melpa" . "https://melpa.org/packages/"))) ;; ("melpa" . "https://melpa.org/packages/")))
(setq package-archive-priorities ;; (setq package-archive-priorities
'(("elpa" . 2) ;; '(("elpa" . 2)
("nongnu" . 1))) ;; ("nongnu" . 1)))
(setq use-package-enable-imenu-support t) ;; (eval-when-compile
(setq use-package-always-ensure t) ;; (require 'use-package)
;; (setq use-package-compute-statistics t) ;; (setq use-package-enable-imenu-support t)
;; (setq use-package-verbose t) ;; (setq use-package-compute-statistics t)
;; (setq use-package-verbose t))
(eval-when-compile
(require 'use-package))
(require 'bind-key) (require 'bind-key)
(add-to-list 'load-path (expand-file-name "to/" user-emacs-directory)) ;; (add-to-list 'load-path (expand-file-name "lisp/" user-emacs-directory))
(require 'utils) ;; (require 'utils)
(use-package ace-window (use-package ace-window
:bind :bind
@ -35,7 +34,6 @@
(setq aw-keys '(?a ?b ?c ?d ?e ?f ?g ?h ?i ?j))) (setq aw-keys '(?a ?b ?c ?d ?e ?f ?g ?h ?i ?j)))
(use-package autorevert (use-package autorevert
:ensure nil
:config :config
(setq auto-revert-check-vc-info t (setq auto-revert-check-vc-info t
auto-revert-interval 1) 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-file)
(add-to-list 'completion-at-point-functions #'cape-history)) (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 (use-package cider
:defer t) :defer t)
@ -84,22 +75,27 @@
:hook :hook
(completion-list-mode . consult-preview-at-point-mode)) (completion-list-mode . consult-preview-at-point-mode))
(use-package copilot ;; (use-package copilot
:load-path "packages/copilot" ;; :load-path "packages/copilot"
:bind ("M-C-<return>" . copilot-accept-completion) ;; :bind ("M-C-<return>" . copilot-accept-completion)
:commands (copilot-login global-copilot-mode) ;; :commands (copilot-login global-copilot-mode)
:config ;; :config
(defun to/copilot-disable-predicate () ;; (use-package dash)
(member major-mode '(shell-mode ;; (use-package s)
eshell-mode ;; (use-package editorconfig)
term-mode ;; (use-package f)
vterm-mode
compilation-mode ;; (defun to/copilot-disable-predicate ()
debugger-mode ;; (member major-mode '(shell-mode
dired-mode-hook ;; eshell-mode
compilation-mode-hook ;; term-mode
minibuffer-mode-hook))) ;; vterm-mode
(add-to-list 'copilot-disable-predicates #'to/copilot-disable-predicate)) ;; 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 (use-package corfu
:custom :custom
@ -114,9 +110,6 @@
(setq-local corfu-auto nil) (setq-local corfu-auto nil)
(corfu-mode)))) (corfu-mode))))
(use-package dash
:defer 3)
(use-package diff-hl (use-package diff-hl
:hook ((magit-pre-refresh . diff-hl-magit-pre-refresh) :hook ((magit-pre-refresh . diff-hl-magit-pre-refresh)
(magit-post-refresh . diff-hl-magit-post-refresh)) (magit-post-refresh . diff-hl-magit-post-refresh))
@ -124,7 +117,6 @@
(global-diff-hl-mode)) (global-diff-hl-mode))
(use-package dired (use-package dired
:ensure nil
:init :init
(setq dired-dwim-target t (setq dired-dwim-target t
dired-hide-details-hide-symlink-targets nil dired-hide-details-hide-symlink-targets nil
@ -164,9 +156,6 @@
ediff-split-window-function 'split-window-horizontally ediff-split-window-function 'split-window-horizontally
ediff-window-setup-function 'ediff-setup-windows-plain)) ediff-window-setup-function 'ediff-setup-windows-plain))
(use-package editorconfig
:defer 3)
(use-package eglot (use-package eglot
:hook :hook
(swift-mode . eglot-ensure) (swift-mode . eglot-ensure)
@ -274,7 +263,6 @@
(flycheck-swiftlint-setup)) (flycheck-swiftlint-setup))
(use-package frame (use-package frame
:ensure nil
:init :init
(keymap-global-unset "C-z" nil)) (keymap-global-unset "C-z" nil))
@ -310,6 +298,9 @@
(use-package gptel (use-package gptel
:bind ("C-c RET" . gptel-send) :bind ("C-c RET" . gptel-send)
:config :config
(setq gptel-api-key
(lambda ()
(nth 0 (process-lines "pass" "show" "openai-api"))))
(setq gptel-default-mode 'org-mode)) (setq gptel-default-mode 'org-mode))
(use-package git-link (use-package git-link
@ -323,7 +314,6 @@
("C-h v" . helpful-variable))) ("C-h v" . helpful-variable)))
(use-package hl-line (use-package hl-line
:ensure nil
:hook (prog-mode . hl-line-mode)) :hook (prog-mode . hl-line-mode))
(use-package js2-mode (use-package js2-mode
@ -350,23 +340,6 @@
(to/set-ligatures-for-font-iosevka) (to/set-ligatures-for-font-iosevka)
(global-ligature-mode t)) (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 (use-package magit
:defer t) :defer t)
@ -416,22 +389,24 @@
:defer 2 :defer 2
:if window-system :if window-system
:config :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 (use-package nerd-icons-dired
:defer t :defer t
:hook dired-mode) :hook dired-mode)
(use-package nerd-icons-ibuffer (use-package nerd-icons-ibuffer
:defer t :defer t
:hook ibuffer-mode) :hook ibuffer-mode))
(use-package nerd-icons-completion
:config
(nerd-icons-completion-mode)))
(use-package nix-mode (use-package nix-mode
:defer t) :defer t)
(use-package ob (use-package ob
:after org :after org
:ensure nil
:config :config
(org-babel-do-load-languages (org-babel-do-load-languages
'org-babel-load-languages 'org-babel-load-languages
@ -456,10 +431,6 @@
(append org-babel-load-languages (append org-babel-load-languages
'((swift . t))))) '((swift . t)))))
(use-package ob-swiftui
:after org
:defer t)
(use-package olivetti (use-package olivetti
:hook (org-mode markdown-mode) :hook (org-mode markdown-mode)
:custom :custom
@ -509,21 +480,20 @@
(pulsar-global-mode 1) (pulsar-global-mode 1)
(add-hook 'next-error-hook #'pulsar-pulse-line)) (add-hook 'next-error-hook #'pulsar-pulse-line))
(use-package rainbow-mode
:hook ((text-mode prog-mode) . rainbow-mode))
(use-package rainbow-delimiters (use-package rainbow-delimiters
:hook (emacs-lisp-mode clojure-mode)) :hook (emacs-lisp-mode clojure-mode))
(use-package rainbow-mode
:hook ((text-mode prog-mode) . rainbow-mode))
(use-package recentf-mode (use-package recentf-mode
:hook (after-init . recentf-mode) :hook (after-init . recentf-mode))
:ensure nil)
(use-package restclient (use-package restclient
:defer t) :defer t)
(use-package s ;; (use-package s
:defer 3) ;; :defer 3)
(use-package savehist (use-package savehist
:init :init
@ -567,8 +537,6 @@
:config :config
(global-so-long-mode)) (global-so-long-mode))
(use-package spacious-padding)
(use-package super-save (use-package super-save
:config :config
(super-save-mode)) (super-save-mode))
@ -583,15 +551,12 @@
swift-mode:basic-offset 2 swift-mode:basic-offset 2
swift-mode:repl-executable "xcrun swift repl")) swift-mode:repl-executable "xcrun swift repl"))
(use-package swift-ts-mode ;; (use-package swift-ts-mode
:hook (swift-mode . subword-mode) ;; :hook (swift-mode . subword-mode)
:config ;; :config
(setq swift-ts-mode 2)) ;; (setq swift-ts-mode 2))
(use-package system-packages)
(use-package tab-bar (use-package tab-bar
:ensure nil
:config :config
(tab-bar-mode) (tab-bar-mode)
(setq tab-bar-show t (setq tab-bar-show t
@ -604,19 +569,19 @@
(use-package terraform-mode) (use-package terraform-mode)
(use-package treesit-auto ;; (use-package treesit-auto
:custom ;; :custom
(treesit-auto-install 'prompt) ;; (treesit-auto-install 'prompt)
:config ;; :config
(add-to-list 'treesit-auto-recipe-list ;; (add-to-list 'treesit-auto-recipe-list
(make-treesit-auto-recipe ;; (make-treesit-auto-recipe
:lang 'swift ;; :lang 'swift
:ts-mode 'swift-ts-mode ;; :ts-mode 'swift-ts-mode
:remap '(swift-mode) ;; :remap '(swift-mode)
:ext "\\.swift\\'")) ;; :ext "\\.swift\\'"))
(setq treesit-auto-langs '(swift)) ;; (setq treesit-auto-langs '(swift))
(treesit-auto-add-to-auto-mode-alist 'all) ;; (treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode)) ;; (global-treesit-auto-mode))
(use-package yaml-mode) (use-package yaml-mode)

View file

@ -1,9 +1,7 @@
(defun to/xcode-info () (defun to/xcode-info ()
(interactive) (interactive)
(let ((buffer "*Xcode info*")) (let ((buffer "*Xcode info*"))
(shell-command "system_profiler SPDeveloperToolsDataType" buffer) (shell-command "system_profiler SPDeveloperToolsDataType" buffer buffer)
(with-current-buffer buffer (with-current-buffer buffer
(view-mode +1) (view-mode +1)
(select-window (get-buffer-window buffer))))) (select-window (get-buffer-window buffer)))))
(provide 'utils)

View file

@ -0,0 +1,3 @@
hide_window_decorations yes
tab_bar_style slant
window_padding_width 18

70
nix/flake.lock generated Normal file
View file

@ -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
}

27
nix/flake.nix Normal file
View file

@ -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";
};
};
};
}

View file

@ -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 = '' activationScripts.postUserActivation.text = ''
/System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u /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"
];
})
];
} }

148
nix/module/home-manager.nix Normal file
View file

@ -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;
}

30
nix/system/darwin.nix Normal file
View file

@ -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;
}
];
}