Compare commits
	
		
			1 Commits
		
	
	
		
			master
			...
			elpaca-mig
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d9231c3a0e | 
							
								
								
									
										8
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| language: generic | ||||
|  | ||||
| script: bash ./gen-gh-pages/deploy.sh | ||||
| env: | ||||
|   global: | ||||
|   - ENCRYPTION_LABEL: "73e6c870aa87" | ||||
|   - COMMIT_AUTHOR_EMAIL: "IvanMalison@gmail.com" | ||||
|   - COMMIT_AUTHOR_NAME: "Ivan Malison" | ||||
 Submodule dotfiles/config/taffybar/taffybar updated: a82a8a0cff...9c8540a564
									
								
							| @@ -4,7 +4,6 @@ | ||||
| (setq mc/cmds-to-run-for-all | ||||
|       '( | ||||
|         TeX-insert-backslash | ||||
|         align | ||||
|         backward-sexp | ||||
|         beginning-of-buffer | ||||
|         beginning-of-visual-line | ||||
|   | ||||
| @@ -361,6 +361,8 @@ but provide support for writing custom elisp. | ||||
| *** shut-up | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package shut-up | ||||
|   :demand t | ||||
|   :ensure (:inherit t :wait t) | ||||
|   :config | ||||
|   (defun imalison:shut-up-around (function &rest args) | ||||
|     (shut-up (apply function args)))) | ||||
| @@ -856,6 +858,7 @@ details. | ||||
|               (directory-files filepath)))) | ||||
|  | ||||
| (use-package eshell | ||||
|   :ensure nil | ||||
|   :commands (eshell-parse-colon-path imalison:get-executables-on-path) | ||||
|   :config | ||||
|   (defun imalison:get-executables-on-path () | ||||
| @@ -1233,6 +1236,7 @@ This makes ~forward-word~ and ~backward-word~ understand snake and camel case. | ||||
| proced is an top like utility that runs inside of emacs. The following sets auto updating automatically and makes the update interval faster. | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package proced | ||||
|   :ensure nil | ||||
|   :defer t | ||||
|   :config | ||||
|   (progn | ||||
| @@ -1376,6 +1380,7 @@ Paradox is a package.el extension. I have no use for it now that I use straight. | ||||
| ** server | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package server | ||||
|   :ensure nil | ||||
|   :demand t | ||||
|   :config | ||||
|   (progn | ||||
| @@ -1444,19 +1449,6 @@ The file server file for this emacs instance no longer exists.") | ||||
| (use-package refine | ||||
|   :disabled t) | ||||
| #+END_SRC | ||||
| ** winner | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package winner | ||||
|   :commands (winner-undo winner-redo) | ||||
|   :bind ("C-c q" . imalison:winner-hydra/body) | ||||
|   :config | ||||
|   (progn | ||||
|     (defhydra imalison:winner-hydra () | ||||
|       "Winner" | ||||
|       ("p" winner-undo "back") | ||||
|       ("n" winner-redo "forward" :exit t)) | ||||
|     (winner-mode 1))) | ||||
| #+END_SRC | ||||
| ** eyebrowse | ||||
| I don't have any use for this now that I use frames mode, but its an interesting idea. | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| @@ -1514,32 +1506,26 @@ https://github.com/alpaker/Fill-Column-Indicator/issues/21 for more details | ||||
|     (advice-add 'company-call-frontends :before #'fci-on-off-fci-before-company) | ||||
|     (add-hook 'prog-mode-hook 'fci-mode))) | ||||
| #+END_SRC | ||||
| ** indent-bars | ||||
| #+begin_src emacs-lisp | ||||
| (use-package indent-bars | ||||
|   :disabled t | ||||
|   :straight (indent-bars :type git :host github :repo "jdtsmith/indent-bars") | ||||
| ** highlight-indent-guides | ||||
| If the load-theme hook from this package starts causing trouble check for | ||||
| custom-set-faces in your custom file. | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package highlight-indent-guides | ||||
|   :commands highlight-indent-guides-mode | ||||
|   :diminish highlight-indent-guides-mode | ||||
|   :demand t | ||||
|   :config | ||||
|   (require 'indent-bars-ts) 		; not needed with straight | ||||
|   :custom | ||||
|   (indent-bars-treesit-support t) | ||||
|   (indent-bars-treesit-ignore-blank-lines-types '("module")) | ||||
|   ;; Add other languages as needed | ||||
|   (indent-bars-treesit-scope '((python function_definition class_definition for_statement | ||||
| 	  if_statement with_statement while_statement))) | ||||
|   ;; wrap may not be needed if no-descend-list is enough | ||||
|   ;; (indent-bars-treesit-wrap '((python argument_list parameters ; for python, as an example | ||||
|   ;;   			                      list list_comprehension | ||||
|   ;;   			                      dictionary dictionary_comprehension | ||||
|   ;;   			                      parenthesized_expression subscript))) | ||||
|   :hook ((prog-mode) . indent-bars-mode)) | ||||
| #+end_src | ||||
|   (progn | ||||
|     (add-hook 'prog-mode-hook 'highlight-indent-guides-mode) | ||||
|     (setq highlight-indent-guides-method 'fill))) | ||||
| #+END_SRC | ||||
| ** man-mode | ||||
| Man page escape sequences aren't properly handled by emacs pager. This function | ||||
| fixes that, but for now, it needs to be run manually, since I haven't figured | ||||
| out how to detect that a buffer is a man mode buffer. | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package man | ||||
|   :ensure nil | ||||
|   :config | ||||
|   (progn | ||||
|     (defun imalison:fontify-man-page-buffer () | ||||
| @@ -1765,6 +1751,7 @@ bind-key and global-set-key forms. | ||||
| #+END_SRC | ||||
| ** projectile | ||||
| #+BEGIN_SRC emacs-lisp | ||||
|  | ||||
| (use-package projectile | ||||
|   :demand t | ||||
|   :bind (:map projectile-mode-map | ||||
| @@ -1778,7 +1765,7 @@ bind-key and global-set-key forms. | ||||
|    (projectile-git-submodule-command nil) | ||||
|    (project-vc-merge-submodules nil) | ||||
|    (projectile-current-project-on-switch 'keep)) | ||||
|   :preface | ||||
|   :config | ||||
|   (progn | ||||
|     (defmacro imalison:projectile-do-in-project (project-dir &rest forms) | ||||
|       `(imalison:with-default-directory ,project-dir | ||||
| @@ -1791,8 +1778,7 @@ bind-key and global-set-key forms. | ||||
|  | ||||
|     (defun imalison:do-rg-default-directory (&rest args) | ||||
|       (interactive) | ||||
|       (let ((consult-ripgrep-args (concat consult-ripgrep-args " --no-ignore" " --hidden"))) | ||||
|         (apply 'consult-ripgrep default-directory args))) | ||||
|       (apply 'consult-ripgrep default-directory args)) | ||||
|  | ||||
|     (emit-prefix-selector imalison:do-rg | ||||
|       consult-ripgrep | ||||
| @@ -1811,9 +1797,7 @@ bind-key and global-set-key forms. | ||||
|                     (write-region "" nil | ||||
|                                   (expand-file-name | ||||
|                                    (concat directory "/" | ||||
|                                            (nth 0 file-info) "/.projectile"))))))) | ||||
|   :config | ||||
|   (progn | ||||
|                                            (nth 0 file-info) "/.projectile")))))) | ||||
|     (projectile-global-mode) | ||||
|     (diminish 'projectile-mode))) | ||||
| #+END_SRC | ||||
| @@ -1862,7 +1846,8 @@ bind-key and global-set-key forms. | ||||
| ** avy | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package avy | ||||
|   :preface | ||||
|   :after emit | ||||
|   :config | ||||
|   (progn | ||||
|     (emit-prefix-selector imalison:avy | ||||
|       avy-goto-word-1 | ||||
| @@ -1874,11 +1859,13 @@ bind-key and global-set-key forms. | ||||
| ** ace-window | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package ace-window | ||||
|   :preface | ||||
|   (emit-prefix-selector imalison:ace-window | ||||
|     ace-select-window | ||||
|     ace-swap-window) | ||||
|   :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) | ||||
|   :after emit | ||||
|   :config | ||||
|   (progn | ||||
|     (emit-prefix-selector imalison:ace-window | ||||
|       ace-select-window | ||||
|       ace-swap-window) | ||||
|     (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))) | ||||
|   :bind ("C-c w" . imalison:ace-window)) | ||||
| #+END_SRC | ||||
| ** neotree | ||||
| @@ -1904,41 +1891,41 @@ Neotree is useless with frame mode for now, so I've disabled it. | ||||
| * Completion | ||||
| ** vertico | ||||
| #+begin_src emacs-lisp | ||||
| (use-package vertico | ||||
|   :demand t | ||||
|   :config | ||||
|   (progn | ||||
|     (defmacro imalison:use-vertico-extension (extension-name &rest forms) | ||||
|       (let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name))))) | ||||
|         `(use-package ,extension-symbol | ||||
|            :after vertico | ||||
|            :straight (,extension-symbol | ||||
|                       :repo "emacs-straight/vertico" | ||||
|                       :host github | ||||
|                       :files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el"))) | ||||
|            ,@forms))) | ||||
|   (use-package vertico | ||||
| 	:demand t | ||||
| 	:config | ||||
| 	(progn | ||||
| 	  (defmacro imalison:use-vertico-extension (extension-name &rest forms) | ||||
| 		(let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name))))) | ||||
| 		  `(use-package ,extension-symbol | ||||
| 			 :after vertico | ||||
| 			 :straight (,extension-symbol | ||||
| 						:repo "emacs-straight/vertico" | ||||
| 						:host github | ||||
| 						:files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el"))) | ||||
| 			 ,@forms))) | ||||
|  | ||||
|     (put 'imalison:use-vertico-extension 'lisp-indent-function 'defun) | ||||
| 	  (put 'imalison:use-vertico-extension 'lisp-indent-function 'defun) | ||||
|  | ||||
|     (imalison:use-vertico-extension directory | ||||
|       :bind (:map vertico-map | ||||
|                   ("RET" . vertico-directory-enter) | ||||
|                   ("DEL" . vertico-directory-delete-char) | ||||
|                   ("M-DEL" . vertico-directory-delete-word) | ||||
|                   ("TAB" . embark-act))) | ||||
| 	  (imalison:use-vertico-extension directory | ||||
| 		:bind (:map vertico-map | ||||
| 					("RET" . vertico-directory-enter) | ||||
| 					("DEL" . vertico-directory-delete-char) | ||||
| 					("M-DEL" . vertico-directory-delete-word) | ||||
| 					("TAB" . embark-act))) | ||||
|  | ||||
|     (imalison:use-vertico-extension grid) | ||||
|     (imalison:use-vertico-extension buffer) | ||||
|     (imalison:use-vertico-extension flat) | ||||
|     (imalison:use-vertico-extension multiform | ||||
|       :config | ||||
|       (progn | ||||
|         (vertico-multiform-mode +1) | ||||
|         (setq vertico-multiform-commands | ||||
|               '((consult-imenu grid) | ||||
|                 (consult-ripgrep buffer))))) | ||||
| 	  (imalison:use-vertico-extension grid) | ||||
| 	  (imalison:use-vertico-extension buffer) | ||||
| 	  (imalison:use-vertico-extension flat) | ||||
| 	  (imalison:use-vertico-extension multiform | ||||
| 		:config | ||||
| 		(progn | ||||
| 		  (vertico-multiform-mode +1) | ||||
| 		  (setq vertico-multiform-commands | ||||
| 				'((consult-imenu grid) | ||||
| 				  (consult-ripgrep buffer))))) | ||||
|  | ||||
|     (vertico-mode +1))) | ||||
| 	  (vertico-mode +1))) | ||||
| #+end_src | ||||
| ** orderless | ||||
| #+begin_src emacs-lisp | ||||
| @@ -2033,10 +2020,12 @@ Neotree is useless with frame mode for now, so I've disabled it. | ||||
| ** company | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package company | ||||
|   :after emit | ||||
|   :commands company-mode imalison:company | ||||
|   :bind (("C-\\" . imalison:company)) | ||||
|   :config | ||||
|   (progn | ||||
|     (add-hook 'prog-mode-hook (lambda () (company-mode t))) | ||||
|     (emit-prefix-selector imalison:company | ||||
|       company-complete | ||||
|       company-yasnippet) | ||||
| @@ -2046,9 +2035,7 @@ Neotree is useless with frame mode for now, so I've disabled it. | ||||
|       :demand t | ||||
|       :config (company-prescient-mode +1)) | ||||
|     (global-company-mode) | ||||
|     (diminish 'company-mode)) | ||||
|   :init | ||||
|   (add-hook 'prog-mode-hook (lambda () (company-mode t)))) | ||||
|     (diminish 'company-mode))) | ||||
| #+END_SRC | ||||
| *** company-flx | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| @@ -2221,6 +2208,7 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab | ||||
| ** align | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package align | ||||
|   :ensure nil | ||||
|   :bind ("C-c C-a" . imalison:align-regexp-hydra/body) | ||||
|   :config | ||||
|   (progn | ||||
| @@ -2249,9 +2237,10 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab | ||||
| #+BEGIN_SRC emacs-lisp | ||||
|   (use-package flycheck | ||||
| 	:commands flycheck-mode | ||||
| 	:init (add-hook 'prog-mode-hook 'flycheck-mode) | ||||
|     :defer 1 | ||||
| 	:config | ||||
| 	(progn | ||||
|       (add-hook 'prog-mode-hook 'flycheck-mode) | ||||
| 	  (use-package flycheck-package | ||||
| 		:disabled t | ||||
| 		:config (flycheck-package-setup)) | ||||
| @@ -2268,12 +2257,6 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab | ||||
| 	  (global-flycheck-mode)) | ||||
| 	:diminish flycheck-mode) | ||||
| #+END_SRC | ||||
| * straight | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package straight | ||||
|   :config | ||||
|   (setq straight-vc-git-auto-fast-forward t)) | ||||
| #+END_SRC | ||||
| * auth-source | ||||
| #+begin_src emacs-lisp | ||||
| (use-package auth-source | ||||
| @@ -2323,105 +2306,98 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab | ||||
| 	(unbind-key "C-j" python-mode-map) | ||||
| 	(add-hook 'python-mode-hook #'imalison:python-mode))) | ||||
| #+END_SRC | ||||
| *** ruby | ||||
| #+begin_src emacs-lisp | ||||
| (use-package ruby-mode | ||||
|   :config | ||||
|   (setf (alist-get 'ruby-ts-mode apheleia-mode-alist) | ||||
|         '(rubocop))) | ||||
| #+end_src | ||||
| *** go | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package go-mode | ||||
|   :mode (("\\.go\\'" . go-mode)) | ||||
|   :preface | ||||
|   (progn | ||||
|     (defun imalison:glide-novendor () | ||||
|       (projectile-with-default-dir (projectile-project-root) | ||||
|         (shell-command-to-string "glide novendor"))) | ||||
| ;; (use-package go-mode | ||||
| ;;   :mode (("\\.go\\'" . go-mode)) | ||||
| ;;   :after emit | ||||
| ;;   :config | ||||
| ;;   (progn | ||||
| ;;     (defun imalison:glide-novendor () | ||||
| ;;       (projectile-with-default-dir (projectile-project-root) | ||||
| ;;         (shell-command-to-string "glide novendor"))) | ||||
|  | ||||
|     (defun imalison:go-mode-create-imenu-index () | ||||
|       "Create and return an imenu index alist. Unlike the default | ||||
|   alist created by go-mode, this method creates an alist where | ||||
|   items follow a style that is consistent with other prog-modes." | ||||
|       (let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1))) | ||||
|              (type-index (imenu--generic-function patterns)) | ||||
|              (func-index)) | ||||
|         (save-excursion | ||||
|           (goto-char (point-min)) | ||||
|           (while (re-search-forward go-func-meth-regexp (point-max) t) | ||||
|             (let* ((var (match-string-no-properties 1)) | ||||
|                    (func (match-string-no-properties 2)) | ||||
|                    (name (if var | ||||
|                              (concat (substring var 0 -1) "." func) | ||||
|                            func)) | ||||
|                    (beg (match-beginning 0)) | ||||
|                    (marker (copy-marker beg)) | ||||
|                    (item (cons name marker))) | ||||
|               (setq func-index (cons item func-index))))) | ||||
|         (nconc type-index (list (cons "func" func-index))))) | ||||
| ;;     (defun imalison:go-mode-create-imenu-index () | ||||
| ;;       "Create and return an imenu index alist. Unlike the default | ||||
| ;;   alist created by go-mode, this method creates an alist where | ||||
| ;;   items follow a style that is consistent with other prog-modes." | ||||
| ;;       (let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1))) | ||||
| ;;              (type-index (imenu--generic-function patterns)) | ||||
| ;;              (func-index)) | ||||
| ;;         (save-excursion | ||||
| ;;           (goto-char (point-min)) | ||||
| ;;           (while (re-search-forward go-func-meth-regexp (point-max) t) | ||||
| ;;             (let* ((var (match-string-no-properties 1)) | ||||
| ;;                    (func (match-string-no-properties 2)) | ||||
| ;;                    (name (if var | ||||
| ;;                              (concat (substring var 0 -1) "." func) | ||||
| ;;                            func)) | ||||
| ;;                    (beg (match-beginning 0)) | ||||
| ;;                    (marker (copy-marker beg)) | ||||
| ;;                    (item (cons name marker))) | ||||
| ;;               (setq func-index (cons item func-index))))) | ||||
| ;;         (nconc type-index (list (cons "func" func-index))))) | ||||
|  | ||||
|     (defun imalison:go-workspace-path () | ||||
|       (file-relative-name (projectile-project-root) | ||||
|                           (concat (file-name-as-directory | ||||
|                                    (imalison:get-go-path)) "src"))) | ||||
| ;;     (defun imalison:go-workspace-path () | ||||
| ;;       (file-relative-name (projectile-project-root) | ||||
| ;;                           (concat (file-name-as-directory | ||||
| ;;                                    (imalison:get-go-path)) "src"))) | ||||
|  | ||||
|     (defun imalison:install-current-go-project () | ||||
|       (interactive) | ||||
|       (start-process | ||||
|        "go install" "go install log" "go" "install" | ||||
|        (concat (file-name-as-directory (imalison:go-workspace-path)) "..."))) | ||||
| ;;     (defun imalison:install-current-go-project () | ||||
| ;;       (interactive) | ||||
| ;;       (start-process | ||||
| ;;        "go install" "go install log" "go" "install" | ||||
| ;;        (concat (file-name-as-directory (imalison:go-workspace-path)) "..."))) | ||||
|  | ||||
|     (defun imalison:get-go-path () | ||||
|       (let ((environment-go-path (getenv "GOPATH"))) | ||||
|         (if environment-go-path | ||||
|             (file-name-as-directory (car (s-split ":" environment-go-path))) | ||||
|           "~/go"))) | ||||
| ;;     (defun imalison:get-go-path () | ||||
| ;;       (let ((environment-go-path (getenv "GOPATH"))) | ||||
| ;;         (if environment-go-path | ||||
| ;;             (file-name-as-directory (car (s-split ":" environment-go-path))) | ||||
| ;;           "~/go"))) | ||||
|  | ||||
|     (defmacro imalison:get-go-src (&rest paths) | ||||
|       `(imalison:join-paths (imalison:get-go-path) "src" ,@paths)) | ||||
| ;;     (defmacro imalison:get-go-src (&rest paths) | ||||
| ;;       `(imalison:join-paths (imalison:get-go-path) "src" ,@paths)) | ||||
|  | ||||
|     (imalison:let-advise-around imalison:advise-normal-go-command | ||||
|       (go-command "go")) | ||||
| ;;     (imalison:let-advise-around imalison:advise-normal-go-command | ||||
| ;;       (go-command "go")) | ||||
|  | ||||
|     (defun imalison:go-mode-hook () | ||||
|       (go-eldoc-setup) | ||||
|       (set (make-local-variable 'company-backends) '(company-go)) | ||||
|       (make-local-variable 'projectile-globally-ignored-files) | ||||
|       (add-hook 'after-save-hook 'imalison:install-current-go-project nil | ||||
|                 'yes-do-local) | ||||
|       (add-to-list 'projectile-globally-ignored-files | ||||
|                    "vendor"))) | ||||
|   :config | ||||
|   (progn | ||||
|     (use-package gotest | ||||
|       :demand t | ||||
|       :bind (:map go-mode-map | ||||
|                   ("C-c t" . imalison:gotest)) | ||||
|       :preface | ||||
|       (progn | ||||
|         (emit-prefix-selector imalison:gotest | ||||
|           go-test-current-test | ||||
|           go-test-current-file) | ||||
| ;;     (defun imalison:go-mode-hook () | ||||
| ;;       (go-eldoc-setup) | ||||
| ;;       (set (make-local-variable 'company-backends) '(company-go)) | ||||
| ;;       (make-local-variable 'projectile-globally-ignored-files) | ||||
| ;;       (add-hook 'after-save-hook 'imalison:install-current-go-project nil | ||||
| ;;                 'yes-do-local) | ||||
| ;;       (add-to-list 'projectile-globally-ignored-files | ||||
| ;;                    "vendor")) | ||||
| ;;     (use-package gotest | ||||
| ;;       :demand t | ||||
| ;;       :after emit | ||||
| ;;       :bind (:map go-mode-map | ||||
| ;;                   ("C-c t" . imalison:gotest)) | ||||
| ;;       :preface | ||||
| ;;       (progn | ||||
| ;;         (emit-prefix-selector imalison:gotest | ||||
| ;;           go-test-current-test | ||||
| ;;           go-test-current-file) | ||||
|  | ||||
|         (defun imalison:add-expected-test-name-for-suite (suite-name test-name) | ||||
|           (if (> (length suite-name) 0) | ||||
|               (concat " -run Test" suite-name) | ||||
|             ""))) | ||||
|       :config | ||||
|       (progn | ||||
|         (setq go-test-verbose t | ||||
|               go-test-additional-arguments-function | ||||
|               'imalison:add-expected-test-name-for-suite))) | ||||
|     (use-package company-go | ||||
|       :config (setq company-go-show-annotation t)) | ||||
| ;;         (defun imalison:add-expected-test-name-for-suite (suite-name test-name) | ||||
| ;;           (if (> (length suite-name) 0) | ||||
| ;;               (concat " -run Test" suite-name) | ||||
| ;;             ""))) | ||||
| ;;       :config | ||||
| ;;       (progn | ||||
| ;;         (setq go-test-verbose t | ||||
| ;;               go-test-additional-arguments-function | ||||
| ;;               'imalison:add-expected-test-name-for-suite))) | ||||
| ;;     (use-package company-go | ||||
| ;;       :config (setq company-go-show-annotation t)) | ||||
|  | ||||
|     (advice-add 'go-import-add :around 'imalison:advise-normal-go-command) | ||||
| ;;     (advice-add 'go-import-add :around 'imalison:advise-normal-go-command) | ||||
|  | ||||
|     (setq gofmt-command "goimports") | ||||
| ;;     (setq gofmt-command "goimports") | ||||
|  | ||||
|     (add-hook 'go-mode-hook 'imalison:go-mode-hook) | ||||
|     (add-hook 'before-save-hook 'gofmt-before-save t))) | ||||
| ;;     (add-hook 'go-mode-hook 'imalison:go-mode-hook) | ||||
| ;;     (add-hook 'before-save-hook 'gofmt-before-save t))) | ||||
| #+END_SRC | ||||
| **** Show diffs of testify output | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| @@ -2463,13 +2439,25 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab | ||||
| **** elisp-slime-nav | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package elisp-slime-nav | ||||
|   :after emit | ||||
|   :commands elisp-slime-nav-mode | ||||
|   :config | ||||
|   (diminish 'elisp-slime-nav-mode) | ||||
|   :preface | ||||
|   (emit-prefix-selector imalison:elisp-slime-nav | ||||
|     elisp-slime-nav-find-elisp-thing-at-point | ||||
|     elisp-slime-nav-describe-elisp-thing-at-point) | ||||
|   (progn | ||||
|     (defvar imalison:check-parens nil) | ||||
|  | ||||
|     (defun imalison:maybe-check-parens () | ||||
|       (if imalison:check-parens | ||||
|           (check-parens))) | ||||
|  | ||||
|     (defun imalison:emacs-lisp-hook () | ||||
|       (elisp-slime-nav-mode t) | ||||
|       (add-hook 'write-file-functions 'imalison:maybe-check-parens nil t)) | ||||
|  | ||||
|     (add-hook 'emacs-lisp-mode-hook 'imalison:emacs-lisp-hook) | ||||
|     (diminish 'elisp-slime-nav-mode) | ||||
|     (emit-prefix-selector imalison:elisp-slime-nav | ||||
|       elisp-slime-nav-find-elisp-thing-at-point | ||||
|       elisp-slime-nav-describe-elisp-thing-at-point)) | ||||
|   :bind (:map elisp-slime-nav-mode-map | ||||
|               ("M-." . imalison:elisp-slime-nav))) | ||||
| #+END_SRC | ||||
| @@ -2479,6 +2467,7 @@ it's supposed to do, but instead uses its own collection of functions to control | ||||
| where the definition is popped up. This fixes that. | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package find-func | ||||
|   :ensure nil | ||||
|   :preface | ||||
|   (progn | ||||
|     (defun imalison:find-function-display-buffer (function) | ||||
| @@ -2498,14 +2487,6 @@ Macrostep is an indespensible tool for writing emacs lisp macros. It lets you se | ||||
|   :bind (:map lisp-mode-shared-map | ||||
|               ("C-c e" . macrostep-expand))) | ||||
| #+END_SRC | ||||
| **** emr | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package emr | ||||
|   :bind ("M-RET" . emr-show-refactor-menu) | ||||
|   :config | ||||
|   (progn | ||||
|     (add-hook 'prog-mode-hook 'emr-initialize))) | ||||
| #+END_SRC | ||||
| **** Editing configuration | ||||
| Reduce indentation for some functions | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| @@ -2519,6 +2500,7 @@ Reduce indentation for some functions | ||||
| **** edebug | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package edebug | ||||
|   :ensure nil | ||||
|   :defer t | ||||
|   :config | ||||
|   (progn (setq edebug-trace t))) | ||||
| @@ -2557,6 +2539,7 @@ Reduce indentation for some functions | ||||
|   :commands (eros-mode) | ||||
|   :config | ||||
|   (progn | ||||
|     (add-hook 'emacs-lisp-mode-hook 'eros-mode) | ||||
|     (advice-add 'eval-defun :around 'eros-around-eval-defun) | ||||
|     (advice-add 'eval-last-sexp :around 'eros-around-eval-last-sexp)) | ||||
|   :preface | ||||
| @@ -2577,9 +2560,7 @@ Reduce indentation for some functions | ||||
|            (save-excursion | ||||
|              (end-of-defun) | ||||
|              (point)))) | ||||
|         result)) | ||||
|  | ||||
|     (add-hook 'emacs-lisp-mode-hook 'eros-mode))) | ||||
|         result)))) | ||||
| #+END_SRC | ||||
| **** Reevalute defvars when running eval-last-sexp | ||||
| We noflet elisp--preceding-sexp to munge defvars into sexps only for | ||||
| @@ -2597,27 +2578,10 @@ eval-last-sexp. | ||||
| #+END_SRC | ||||
| **** Init hook | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (defvar imalison:check-parens nil) | ||||
|  | ||||
| (defun imalison:maybe-check-parens () | ||||
|   (if imalison:check-parens | ||||
|       (check-parens))) | ||||
|  | ||||
| (defun imalison:emacs-lisp-hook () | ||||
|   (elisp-slime-nav-mode t) | ||||
|   (add-hook 'write-file-functions 'imalison:maybe-check-parens nil t)) | ||||
|  | ||||
| (add-hook 'emacs-lisp-mode-hook 'imalison:emacs-lisp-hook) | ||||
| #+END_SRC | ||||
| **** Keybinds | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (emit-compose | ||||
|  imalison:copy-eval-last-sexp kill-new prin1-to-string eval-last-sexp) | ||||
|  | ||||
| (emit-prefix-selector imalison:eval-last-sexp | ||||
|   eval-region-or-last-sexp | ||||
|   imalison:copy-eval-last-sexp) | ||||
|  | ||||
| (define-key lisp-mode-shared-map (kbd "C-c C-c") 'eval-defun) | ||||
| (define-key lisp-mode-shared-map (kbd "C-x C-e") 'imalison:eval-last-sexp) | ||||
| (unbind-key "C-j" lisp-interaction-mode-map) | ||||
| @@ -2718,11 +2682,6 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877 | ||||
|           cider-preferred-build-tool "boot") | ||||
|     (add-hook 'clojure-mode-hook 'cider-mode))) | ||||
| #+END_SRC | ||||
| **** clj-refactor | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package clj-refactor | ||||
|   :commands clj-refactor-mode) | ||||
| #+END_SRC | ||||
| *** scala | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package scala-mode | ||||
| @@ -2906,10 +2865,6 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877 | ||||
|   :defer t | ||||
|   :mode ("\\.kt\\'")) | ||||
| #+END_SRC | ||||
| *** swift | ||||
| #+begin_src emacs-lisp | ||||
| (use-package swift-mode) | ||||
| #+end_src | ||||
| *** groovy | ||||
| #+begin_src emacs-lisp | ||||
| (use-package groovy-mode) | ||||
| @@ -2926,7 +2881,7 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877 | ||||
| #+END_SRC | ||||
| *** C/C++ | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package cc-mode) | ||||
| (use-package cc-mode :ensure nil) | ||||
| #+END_SRC | ||||
| *** C-- | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| @@ -3131,9 +3086,10 @@ My org-mode configuration now lives in its own file org-config.org. | ||||
| ** magit | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package magit | ||||
|   :after emit | ||||
|   :commands magit-status | ||||
|   :bind (("C-x g" . imalison:magit-status)) | ||||
|   :preface | ||||
|   :config | ||||
|   (progn | ||||
|     (emit-let-around imalison:magit-status-traditional | ||||
|                      magit-status | ||||
| @@ -3144,9 +3100,7 @@ My org-mode configuration now lives in its own file org-config.org. | ||||
|       imalison:magit-status-traditional) | ||||
|     (defun imalison:after-magit-visit-file (&rest args) | ||||
|       (when (derived-mode-p 'org-mode) | ||||
|         (org-show-context 'magit-goto)))) | ||||
|   :config | ||||
|   (progn | ||||
|         (org-show-context 'magit-goto))) | ||||
|     (when frame-mode | ||||
|       (setq magit-commit-show-diff t)) | ||||
|     (unbind-key "C-j" magit-status-mode-map) | ||||
| @@ -3157,7 +3111,6 @@ My org-mode configuration now lives in its own file org-config.org. | ||||
|           magit-display-buffer-function | ||||
|           'magit-display-buffer-same-window-except-diff-v1) | ||||
|     (magit-auto-revert-mode) | ||||
|  | ||||
|     (add-to-list 'org-show-context-detail '(magit-goto . lineage)) | ||||
|     (advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file) | ||||
|     (add-hook 'magit-popup-mode-hook 'imalison:disable-show-trailing-whitespace))) | ||||
| @@ -3168,20 +3121,6 @@ My org-mode configuration now lives in its own file org-config.org. | ||||
|   :disabled t | ||||
|   :after magit) | ||||
| #+end_src | ||||
| ** vc | ||||
| #+begin_src emacs-lisp | ||||
| (use-package vc | ||||
|   :config | ||||
|   (progn | ||||
|     (defun vc-find-revision-of-file (revision) | ||||
|       (interactive | ||||
|        (list (vc-read-revision | ||||
|               "Revision to visit: " | ||||
|               (list (imalison:join-paths (magit-toplevel) (car (magit-list-files))))))) | ||||
|       (let* ((file (completing-read "Select file to visit: " (magit-revision-files revision))) | ||||
|              (full-file (imalison:join-paths (magit-toplevel) file))) | ||||
|         (switch-to-buffer (vc-find-revision full-file revision)))))) | ||||
| #+end_src | ||||
| ** git-link | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package git-link | ||||
| @@ -3306,14 +3245,6 @@ modeline and with excessive http requests to github. | ||||
|                          gist-unstar gist-list-starred gist-fork)) | ||||
| #+END_SRC | ||||
| * Programming | ||||
| ** emr | ||||
| emr (emacs refactor) provides support for refactoring in many programming languages | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package emr | ||||
|   :bind (:map prog-mode-map | ||||
|               ("M-RET" . emr-show-refactor-menu)) | ||||
|   :config (emr-initialize)) | ||||
| #+END_SRC | ||||
| ** semantic | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package semantic | ||||
| @@ -3370,8 +3301,7 @@ emr (emacs refactor) provides support for refactoring in many programming langua | ||||
|           (file-name-directory | ||||
|            (file-truename (imalison:join-paths eat--install-path "eat.el")))) | ||||
|     (eat-compile-terminfo) | ||||
|     (setq eat-term-shell-integration-directory | ||||
|           (imalison:join-paths eat--install-path "integration")))) | ||||
|     (setq eat-term-shell-integration-directory (imalison:join-paths eat--install-path "integration")))) | ||||
| #+end_src | ||||
| ** term | ||||
| The main thing I do here is restore a bunch of keybindings that are eliminated | ||||
| @@ -3380,6 +3310,7 @@ in term-mode. This makes term-mode 1000% more useful | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package term | ||||
|   :demand t | ||||
|   :ensure nil | ||||
|   :preface | ||||
|   (progn | ||||
|     (defun imalison:avy-term (arg) | ||||
| @@ -3444,6 +3375,7 @@ in term-mode. This makes term-mode 1000% more useful | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package term-projectile | ||||
|   :bind ("C-c 7" . imalison:term-hydra-global/body) | ||||
|   :after emit | ||||
|   :commands | ||||
|   (term-projectile-backward | ||||
|    term-projectile-create-new | ||||
| @@ -3615,6 +3547,7 @@ I don't use iedit directly, but it is used by [[*emr][emr]] and I need to disabl | ||||
| ** narrow-indirect | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package narrow-indirect | ||||
|   :ensure nil | ||||
|   :init | ||||
|   (progn | ||||
|     (define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-indirect-other-window) | ||||
| @@ -3650,11 +3583,20 @@ I had to disable this mode because something that it does messes with coding set | ||||
|       (interactive) | ||||
|       (setq dtrt-indent-original-indent nil) | ||||
|       (dtrt-indent-adapt))) | ||||
|   :init (add-hook 'prog-mode-hook 'dtrt-indent-mode) | ||||
|   :config | ||||
|   (progn | ||||
|     (add-hook 'prog-mode-hook 'dtrt-indent-mode) | ||||
|     (setq dtrt-indent-active-mode-line-info " [⟼]"))) | ||||
| #+END_SRC | ||||
| ** indent-guide | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package indent-guide | ||||
|   :disabled t | ||||
|   :config | ||||
|   (progn | ||||
|     (indent-guide-global-mode -1) | ||||
|     (setq indent-guide-delay 0.1))) | ||||
| #+END_SRC | ||||
| ** rainbow-delimiters | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package rainbow-delimiters | ||||
| @@ -3684,7 +3626,9 @@ Disabled because it makes it hard to redo things | ||||
| ** recentf | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package recentf | ||||
|   :ensure nil | ||||
|   :demand t | ||||
|   :after shut-up | ||||
|   :config | ||||
|   (progn | ||||
|     (setq recentf-max-saved-items 1000 | ||||
| @@ -3780,6 +3724,7 @@ Not really sure what this is | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package epg | ||||
|   :after shut-up | ||||
|   :ensure nil | ||||
|   :config | ||||
|   (shut-up | ||||
|     (epa-file-enable))) | ||||
| @@ -3802,113 +3747,6 @@ Not really sure what this is | ||||
|   :disabled t ;; fails to load eieio on startup | ||||
|   ) | ||||
| #+END_SRC | ||||
| ** mu4e | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| ;; (eval-when-compile | ||||
| ;;   (require 's) | ||||
| ;;   (defvar mu4e-elisp-directory | ||||
| ;;     (s-trim (shell-command-to-string "mu4e_directory")))) | ||||
| (use-package mu4e | ||||
|   :disabled t | ||||
|   :load-path mu4e-elisp-directory | ||||
|   :straight nil | ||||
|   :commands (mu4e mu4e-view-message-with-msgid mu4e-update-index email) | ||||
|   :bind ("C-c 0" . email) | ||||
|   :config | ||||
|   (progn | ||||
|     (defun email (&optional arg) | ||||
|       (interactive "P") | ||||
|       (if (string-equal (persp-name persp-curr) "email") | ||||
|           (progn (delete-other-windows) (mu4e)) | ||||
|         (progn | ||||
|           (persp-switch "email") | ||||
|           (when (or (not (mu4e-running-p)) arg) | ||||
|             (delete-other-windows) (mu4e))))) | ||||
|     ;; enable inline images | ||||
|     (setq mu4e-view-show-images t) | ||||
|     ;; show images | ||||
|     (setq mu4e-show-images t) | ||||
|     ;; Try to display html as text | ||||
|     (setq mu4e-view-prefer-html nil) | ||||
|  | ||||
|     (setq mu4e-html2text-command "html2text -width 80 -nobs -utf8") | ||||
|  | ||||
|     ;; use imagemagick, if available | ||||
|     (when (fboundp 'imagemagick-register-types) | ||||
|       (imagemagick-register-types)) | ||||
|     (setq mail-user-agent 'mu4e-user-agent) | ||||
|     (require 'org-mu4e) | ||||
|     (setq mu4e-compose-complete-only-after nil) | ||||
|     (setq mu4e-maildir "~/Mail") | ||||
|  | ||||
|     (setq mu4e-drafts-folder "/[Gmail].Drafts") | ||||
|     (setq mu4e-sent-folder   "/[Gmail].Sent Mail") | ||||
|     (setq mu4e-trash-folder  "/[Gmail].Trash") | ||||
|  | ||||
|     (setq mu4e-sent-messages-behavior 'delete) | ||||
|     (setq mu4e-headers-skip-duplicates t) | ||||
|     (setq mu4e-update-interval (* 60 20)) | ||||
|     (setq message-kill-buffer-on-exit t) | ||||
|     (setq mail-user-agent 'mu4e-user-agent) ;; make mu4e the default mail client | ||||
|  | ||||
|     ;; don't save message to Sent Messages, Gmail/IMAP takes care of this | ||||
|     (setq mu4e-sent-messages-behavior 'delete) | ||||
|  | ||||
|     ;; allow for updating mail using 'U' in the main view: | ||||
|     (setq mu4e-get-mail-command "timeout 60 offlineimap") | ||||
|  | ||||
|     (add-hook 'mu4e-compose-mode-hook | ||||
|               (defun my-do-compose-stuff () (flyspell-mode))) | ||||
|  | ||||
|     (add-to-list 'mu4e-headers-actions '("view in browser" . mu4e-action-view-in-browser)) | ||||
|     (add-to-list 'mu4e-view-actions '("view in browser" . mu4e-action-view-in-browser)) | ||||
|  | ||||
|     (defun mu4e-view (msg headersbuf) | ||||
|       "Display the message MSG in a new buffer, and keep in sync with HDRSBUF. | ||||
|   'In sync' here means that moving to the next/previous message in | ||||
|   the the message view affects HDRSBUF, as does marking etc. | ||||
|  | ||||
|   As a side-effect, a message that is being viewed loses its 'unread' | ||||
|   marking if it still had that." | ||||
|       (let* ((embedded ;; is it as an embedded msg (ie. message/rfc822 att)? | ||||
|               (when (gethash (mu4e-message-field msg :path) | ||||
|                              mu4e~path-parent-docid-map) t)) | ||||
|              (buf | ||||
|               (if embedded | ||||
|                   (mu4e~view-embedded-winbuf) | ||||
|                 (get-buffer-create mu4e~view-buffer-name)))) | ||||
|         ;; note: mu4e~view-mark-as-read will pseudo-recursively call mu4e-view again | ||||
|         ;; by triggering mu4e~view again as it marks the message as read | ||||
|         (with-current-buffer buf | ||||
|           (switch-to-buffer buf) | ||||
|           (setq mu4e~view-msg msg) | ||||
|           ;;(or embedded (not (mu4e~view-mark-as-read msg))) | ||||
|           (when (or (mu4e~view-mark-as-read msg) t) | ||||
|             (let ((inhibit-read-only t)) | ||||
|               (erase-buffer) | ||||
|               (mu4e~delete-all-overlays) | ||||
|               (insert (mu4e-view-message-text msg)) | ||||
|               (goto-char (point-min)) | ||||
|               (mu4e~fontify-cited) | ||||
|               (mu4e~fontify-signature) | ||||
|               (mu4e~view-make-urls-clickable) | ||||
|               (mu4e~view-show-images-maybe msg) | ||||
|               (setq | ||||
|                mu4e~view-buffer buf | ||||
|                mu4e~view-headers-buffer headersbuf) | ||||
|               (when embedded (local-set-key "q" 'kill-buffer-and-window)) | ||||
|               (mu4e-view-mode)))))) | ||||
|  | ||||
|     (require 'smtpmail) | ||||
|  | ||||
|     ;; alternatively, for emacs-24 you can use: | ||||
|     (setq message-send-mail-function 'smtpmail-send-it | ||||
|           smtpmail-stream-type 'starttls | ||||
|           smtpmail-default-smtp-server "smtp.gmail.com" | ||||
|           smtpmail-smtp-server "smtp.gmail.com" | ||||
|           smtpmail-smtp-service 587))) | ||||
|  | ||||
| #+END_SRC | ||||
| ** gmail-message-mode | ||||
| This is useful with server mode when editing gmail messages. I think that it is not currently working, or it may need to be manually enabled. | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| @@ -3943,56 +3781,6 @@ This is useful with server mode when editing gmail messages. I think that it is | ||||
|        :notifier 'imalison:windows-toast-notify) | ||||
|       (setq alert-default-style 'windows-toast)))) | ||||
| #+END_SRC | ||||
| ** sauron | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package sauron | ||||
|   :disabled t | ||||
|   :defer 5 | ||||
|   :commands (sauron-start sauron-start-hidden) | ||||
|   :init | ||||
|   (progn | ||||
|     (when (eq system-type 'darwin) | ||||
|       (setq sauron-modules '(sauron-erc sauron-org sauron-notifications | ||||
|                                         sauron-twittering sauron-jabber sauron-identica)) | ||||
|       (defun sauron-dbus-start () | ||||
|         nil) | ||||
|       (makunbound 'dbus-path-emacs))) | ||||
|   :config | ||||
|   (progn | ||||
|     (sauron-start-hidden) | ||||
|     ;; This should really check (featurep 'dbus) but for some reason | ||||
|     ;; this is always true even if support is not there. | ||||
|     (setq sauron-prio-sauron-started 2) | ||||
|     (setq sauron-min-priority 3) | ||||
|     ;; (setq sauron-dbus-cookie t) ;; linux only? | ||||
|     (setq sauron-separate-frame nil) | ||||
|     (setq sauron-nick-insensitivity 1) | ||||
|     (defun sauron:jabber-notify (origin priority message &optional properties) | ||||
|       (funcall notify-function "gtalk" message)) | ||||
|     (defun sauron:erc-notify (origin priority message &optional properties) | ||||
|       (let ((event (plist-get properties :event))) | ||||
|         (funcall notify-function "IRC" message))) | ||||
|     (defun sauron:mu4e-notify (origin priority message &optional properties) | ||||
|       nil) | ||||
|     (defun sauron:dbus-notify (origin priority message &optional properties) | ||||
|       (funcall notify-function "GMail" message)) | ||||
|     (defun sauron:dispatch-notify (origin priority message &optional properties) | ||||
|       (let ((handler (cond ((string= origin "erc") 'sauron:erc-notify) | ||||
|                            ((string= origin "jabber") 'sauron:jabber-notify) | ||||
|                            ((string= origin "mu4e") 'sauron:mu4e-notify) | ||||
|                            ((string= origin "dbus") 'sauron:dbus-notify) | ||||
|                            (t (lambda (&rest r) nil))))) | ||||
|         (funcall handler origin priority message properties))) | ||||
|     ;; Prefering alert.el for now ;; (add-hook 'sauron-event-added-functions 'sauron:dispatch-notify) | ||||
|     (sauron-start-hidden) | ||||
|     (add-hook 'sauron-event-added-functions 'sauron-alert-el-adapter))) | ||||
|  | ||||
| #+END_SRC | ||||
| ** screenshot | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package screenshot | ||||
|   :commands screenshot) | ||||
| #+END_SRC | ||||
| ** libmpdee | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package libmpdee | ||||
| @@ -4123,20 +3911,16 @@ This also adds syntax highlighting for gradle | ||||
| ** jsx-mode | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package jsx-mode | ||||
|   :ensure nil | ||||
|   :defer t) | ||||
| #+END_SRC | ||||
| ** css | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package css-mode | ||||
|   :ensure nil | ||||
|   :mode (("\\.css\\'" . css-mode) | ||||
|          ("\\.rasi\\'" . css-mode))) | ||||
| #+END_SRC | ||||
| ** sgml-mode | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package sgml-mode | ||||
|   ;; :bind ("C-c b" . web-beautify-html) TODO: mode specific, change binding | ||||
|   :commands sgml-mode) | ||||
| #+END_SRC | ||||
| ** evil | ||||
| #+BEGIN_SRC emacs-lisp | ||||
| (use-package evil | ||||
| @@ -4165,6 +3949,9 @@ Ensure all themes that I use are installed: | ||||
|   (progn | ||||
|     (setq solarized-high-contrast-mode-line t))) | ||||
|  | ||||
| (defun elpaca-function (pkg) | ||||
|   (eval `(elpaca ,pkg))) | ||||
|  | ||||
| (defvar-setq packages-appearance | ||||
|   '(monokai-theme zenburn-theme base16-theme molokai-theme moe-theme | ||||
|                   tango-2-theme gotham-theme sublime-themes rainbow-delimiters | ||||
| @@ -4173,7 +3960,7 @@ Ensure all themes that I use are installed: | ||||
|                   forest-blue-theme flatland-theme afternoon-theme | ||||
|                   cyberpunk-theme dracula-theme)) | ||||
|  | ||||
| (mapcar 'straight-use-package packages-appearance) | ||||
| (mapcar 'elpaca-function packages-appearance) | ||||
|  | ||||
| (use-package doom-themes | ||||
|   :defer t) | ||||
| @@ -4328,14 +4115,15 @@ load-theme hook (See the heading below). | ||||
|   (unless imalison:appearance-setup-done | ||||
|     (unless (member imalison:dark-theme custom-enabled-themes) | ||||
|       (load-theme imalison:dark-theme t)) | ||||
|     (doom-modeline-mode +1) | ||||
|     (apply 'imalison:appearance args) | ||||
|     (message "running appearance") | ||||
|     (doom-modeline-mode +1) | ||||
|     (setq imalison:default-font-size-pt (face-attribute 'default :height)) | ||||
|     (setq imalison:appearance-setup-done t))) | ||||
|  | ||||
| (add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook) | ||||
| (add-hook 'after-init-hook 'imalison:appearance-setup-hook) | ||||
| (add-hook 'elpaca-after-init-hook | ||||
|           (lambda () (add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook))) | ||||
| (add-hook 'elpaca-after-init-hook 'imalison:appearance-setup-hook) | ||||
| #+END_SRC | ||||
| * Post Init Custom | ||||
| #+BEGIN_SRC emacs-lisp | ||||
|   | ||||
							
								
								
									
										44
									
								
								dotfiles/emacs.d/elpaca.el
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								dotfiles/emacs.d/elpaca.el
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| (defvar elpaca-installer-version 0.7) | ||||
| (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) | ||||
| (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) | ||||
| (defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) | ||||
| (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" | ||||
|                               :ref nil :depth 1 | ||||
|                               :files (:defaults "elpaca-test.el" (:exclude "extensions")) | ||||
|                               :build (:not elpaca--activate-package))) | ||||
| (let* ((repo  (expand-file-name "elpaca/" elpaca-repos-directory)) | ||||
|        (build (expand-file-name "elpaca/" elpaca-builds-directory)) | ||||
|        (order (cdr elpaca-order)) | ||||
|        (default-directory repo)) | ||||
|   (add-to-list 'load-path (if (file-exists-p build) build repo)) | ||||
|   (unless (file-exists-p repo) | ||||
|     (make-directory repo t) | ||||
|     (when (< emacs-major-version 28) (require 'subr-x)) | ||||
|     (condition-case-unless-debug err | ||||
|         (if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) | ||||
|                  ((zerop (apply #'call-process `("git" nil ,buffer t "clone" | ||||
|                                                  ,@(when-let ((depth (plist-get order :depth))) | ||||
|                                                      (list (format "--depth=%d" depth) "--no-single-branch")) | ||||
|                                                  ,(plist-get order :repo) ,repo)))) | ||||
|                  ((zerop (call-process "git" nil buffer t "checkout" | ||||
|                                        (or (plist-get order :ref) "--")))) | ||||
|                  (emacs (concat invocation-directory invocation-name)) | ||||
|                  ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" | ||||
|                                        "--eval" "(byte-recompile-directory \".\" 0 'force)"))) | ||||
|                  ((require 'elpaca)) | ||||
|                  ((elpaca-generate-autoloads "elpaca" repo))) | ||||
|             (progn (message "%s" (buffer-string)) (kill-buffer buffer)) | ||||
|           (error "%s" (with-current-buffer buffer (buffer-string)))) | ||||
|       ((error) (warn "%s" err) (delete-directory repo 'recursive)))) | ||||
|   (unless (require 'elpaca-autoloads nil t) | ||||
|     (require 'elpaca) | ||||
|     (elpaca-generate-autoloads "elpaca" repo) | ||||
|     (load "./elpaca-autoloads"))) | ||||
|  | ||||
| (add-hook 'after-init-hook #'elpaca-process-queues) | ||||
|  | ||||
| (elpaca `(,@elpaca-order)) | ||||
|  | ||||
| (elpaca elpaca-use-package | ||||
|   ;; Enable use-package :ensure support for Elpaca. | ||||
|   (elpaca-use-package-mode)) | ||||
| @@ -1,41 +1,28 @@ | ||||
| ;; -*- no-byte-compile: t -*- | ||||
|  | ||||
| (let ((bootstrap-file (concat user-emacs-directory "straight/bootstrap.el")) | ||||
|       (bootstrap-version 2)) | ||||
|   (unless (file-exists-p bootstrap-file) | ||||
|     (with-current-buffer | ||||
|         (url-retrieve-synchronously | ||||
|          "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" | ||||
|          'silent 'inhibit-cookies) | ||||
|       (goto-char (point-max)) | ||||
|       (eval-print-last-sexp))) | ||||
|   (load bootstrap-file nil 'nomessage)) | ||||
|  | ||||
| (setq native-comp-deferred-compilation-deny-list '("magit")) | ||||
| (setq native-comp-always-compile t) | ||||
| (setq load-no-native t) | ||||
| (setq no-native-compile t) | ||||
| (setq warning-minimum-level :emergency) | ||||
| (setq straight-disable-native-compile t) | ||||
|  | ||||
| ;; This is a workaround for an issue in emacs28 with symlinks. See https://github.com/radian-software/straight.el/issues/701 | ||||
| (defun my-patch-package-find-file-visit-truename (oldfun &rest r) | ||||
|   (let ((find-file-visit-truename nil)) | ||||
|     (apply oldfun r))) | ||||
|  | ||||
| (advice-add #'straight--build-autoloads :around | ||||
|             #'my-patch-package-find-file-visit-truename) | ||||
|  | ||||
| (setq package-enable-at-startup nil | ||||
|       straight-use-package-by-default t | ||||
|       straight-vc-git-default-protocol 'ssh) | ||||
| (straight-use-package 'use-package) | ||||
|  | ||||
| (require 'use-package) | ||||
| (setq use-package-enable-imenu-support t) | ||||
| (setq use-package-ensure-function 'straight-use-package-ensure-function) | ||||
| (setq use-package-always-ensure t) | ||||
|  | ||||
| (defvar imalison:do-benchmark nil) | ||||
|  | ||||
| (defun emacs-directory-filepath (filename) | ||||
|   (concat (file-name-directory load-file-name) filename)) | ||||
|  | ||||
| (load (emacs-directory-filepath "elpaca.el")) | ||||
|  | ||||
| (setq use-package-always-ensure t) | ||||
|  | ||||
| (let ((bench-file (concat (file-name-directory user-init-file) "benchmark.el"))) | ||||
|   (when (file-exists-p bench-file) (load bench-file))) | ||||
|  | ||||
| @@ -55,6 +42,9 @@ | ||||
|   (setq mac-option-modifier 'meta) | ||||
|   (setq mac-command-modifier 'super)) | ||||
|  | ||||
| (use-package transient | ||||
|   :demand t) | ||||
|  | ||||
| ;; See https://github.com/magit/magit/discussions/4997 . Without this magit is broken. | ||||
| (use-package magit | ||||
|   :demand t) | ||||
| @@ -62,29 +52,56 @@ | ||||
| ;; This seems to fix issues with helm not explicitly declaring its dependency on async | ||||
| (use-package async :demand t) | ||||
|  | ||||
| (use-package s :demand t) | ||||
|  | ||||
| ;; Without this, org can behave very strangely | ||||
| (use-package org | ||||
|   :straight | ||||
|   :ensure | ||||
|   (org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org" | ||||
|        :branch "my-main" | ||||
|        :depth full :pre-build (straight-recipes-org-elpa--build) :build | ||||
|        :depth full | ||||
| 	   :build | ||||
|        :wait t | ||||
|        (:not autoloads) :files | ||||
|        (:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*"))) | ||||
|   :defer t) | ||||
|        (:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*")))) | ||||
|  | ||||
| (use-package dash :demand t) | ||||
|  | ||||
| (use-package emit | ||||
|   :ensure (emit :type git :host github :repo "colonelpanic8/emit") | ||||
|   :demand t | ||||
|   :config | ||||
|   (progn | ||||
|     (emit-prefix-selector imalison:mark-ring mark-ring) | ||||
|     (emit-prefix-selector imalison:shell-command-on-region | ||||
|       imalison:copy-shell-command-on-region | ||||
|       imalison:shell-command-on-region-replace | ||||
|       imalison:jq-replace) | ||||
|  | ||||
|     (defun imalison:jq-replace (start end) | ||||
|       (interactive (region-if-active-otherwise-buffer)) | ||||
|       (imalison:shell-command-on-region-replace start end "jq .")) | ||||
|     (emit-compose | ||||
|       imalison:copy-eval-last-sexp kill-new prin1-to-string eval-last-sexp) | ||||
|  | ||||
|     (emit-prefix-selector imalison:eval-last-sexp | ||||
|       eval-region-or-last-sexp | ||||
|       imalison:copy-eval-last-sexp))) | ||||
|  | ||||
| (use-package s | ||||
|   :ensure (:inherit t :wait t) | ||||
|   :config | ||||
|   (when (or (equal (s-trim (shell-command-to-string "whoami")) "kat") | ||||
|             imalison:kat-mode) | ||||
|     (let ((debug-on-error t)) | ||||
|       (org-babel-load-file | ||||
|        (concat (file-name-directory load-file-name) "kat-mode.org"))))) | ||||
|  | ||||
| (let ((debug-on-error t)) | ||||
|   (org-babel-load-file | ||||
|    (concat (file-name-directory load-file-name) "README.org"))) | ||||
|  | ||||
| (when (or (equal (s-trim (shell-command-to-string "whoami")) "kat") | ||||
|           imalison:kat-mode) | ||||
|   (let ((debug-on-error t)) | ||||
|     (org-babel-load-file | ||||
|      (concat (file-name-directory load-file-name) "kat-mode.org")))) | ||||
|  | ||||
| (when imalison:do-benchmark (benchmark-init/deactivate)) | ||||
| ;; (when imalison:do-benchmark (benchmark-init/deactivate)) | ||||
|  | ||||
| ;; Local Variables: | ||||
| ;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) | ||||
|   | ||||
| @@ -803,7 +803,7 @@ alphanumeric characters only." | ||||
| ** Use org-tempo to allow inserting templates using e.g. <s | ||||
| #+begin_src emacs-lisp | ||||
| (use-package org-tempo | ||||
|   :straight nil | ||||
|   :ensure nil | ||||
|   :after org) | ||||
| #+end_src | ||||
| * Packages | ||||
| @@ -938,9 +938,6 @@ alphanumeric characters only." | ||||
| #+end_src | ||||
| ***** ui | ||||
| #+begin_src emacs-lisp | ||||
| (use-package emacs-http-server | ||||
|   :demand t) | ||||
|  | ||||
| (use-package org-roam-ui | ||||
|   :after org-roam | ||||
|   :custom | ||||
|   | ||||
| @@ -1,5 +0,0 @@ | ||||
| # -*- mode: snippet -*- | ||||
| # name: inp | ||||
| # key: inp | ||||
| # -- | ||||
| import numpy as np | ||||
| @@ -1,5 +0,0 @@ | ||||
| # -*- mode: snippet -*- | ||||
| # name: isa | ||||
| # key: isa | ||||
| # -- | ||||
| import sqlalchemy as sa | ||||
| @@ -24,6 +24,7 @@ pom.xml | ||||
| TAGS | ||||
|  | ||||
| # Vim | ||||
| *.sw* | ||||
| *.tmp* | ||||
|  | ||||
| # JavaScript | ||||
|   | ||||
							
								
								
									
										20
									
								
								dotfiles/gtkrc-2.0
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								dotfiles/gtkrc-2.0
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| binding "gtk-emacs-text-entry" | ||||
| { | ||||
|    bind "<alt>BackSpace" { "delete-from-cursor" (word-ends, -1) } | ||||
| } | ||||
|  | ||||
| gtk-theme-name="Paper" | ||||
| gtk-icon-theme-name="Paper" | ||||
| gtk-font-name="Roboto 11" | ||||
| gtk-cursor-theme-name="Paper" | ||||
| gtk-cursor-theme-size=0 | ||||
| gtk-toolbar-style=GTK_TOOLBAR_BOTH | ||||
| gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR | ||||
| gtk-button-images=1 | ||||
| gtk-menu-images=1 | ||||
| gtk-enable-event-sounds=1 | ||||
| gtk-enable-input-feedback-sounds=1 | ||||
| gtk-xft-antialias=1 | ||||
| gtk-xft-hinting=1 | ||||
| gtk-xft-hintstyle="hintfull" | ||||
|  | ||||
| @@ -2,25 +2,18 @@ | ||||
| import argparse | ||||
| import os | ||||
| import sys | ||||
| import logging | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| class BrightnessManager(object): | ||||
|  | ||||
|     @classmethod | ||||
|     def find_brightness(cls): | ||||
|         items_in_backlight_directory = os.listdir("/sys/class/backlight") | ||||
|         if len(items_in_backlight_directory) > 1: | ||||
|             logger.warning(f"More than one entry in the backlight directory {items_in_backlight_directory}") | ||||
|         return cls.from_path( | ||||
|             os.path.join("/sys/class/backlight", items_in_backlight_directory[0]) | ||||
|             os.path.join("/sys/class/backlight", os.listdir("/sys/class/backlight")[0]) | ||||
|         ) | ||||
|  | ||||
|     @classmethod | ||||
|     def from_path(cls, path): | ||||
|         logger.warning(f"Using path {path}") | ||||
|         return cls( | ||||
|             set_brightness_filepath=os.path.join(path, "brightness"), | ||||
|             actual_brightness_filepath=os.path.join(path, "actual_brightness"), | ||||
| @@ -28,7 +21,7 @@ class BrightnessManager(object): | ||||
|         ) | ||||
|  | ||||
|     def __init__( | ||||
|         self, set_brightness_filepath, max_brightness_filepath, actual_brightness_filepath | ||||
|             self, set_brightness_filepath, max_brightness_filepath, actual_brightness_filepath | ||||
|     ): | ||||
|         self.set_brightness_filepath = set_brightness_filepath | ||||
|         self.max_brightness_filepath = max_brightness_filepath | ||||
| @@ -78,11 +71,6 @@ def build_parser(): | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     args = build_parser().parse_args() | ||||
|     symlink_path = os.readlink("/home/imalison/.config/brightness_manager/symlink") | ||||
|     if os.path.exists(symlink_path): | ||||
|         manager = BrightnessManager.from_path(symlink_path) | ||||
|     else: | ||||
|         manager = BrightnessManager.find_brightness() | ||||
|     manager.increment_by_proportion(float(args.change) / 100) | ||||
|     BrightnessManager.find_brightness().increment_by_proportion(float(args.change) / 100) | ||||
|     if args.do_print: | ||||
|         print(int(manager.current_proportion * 100)) | ||||
|         print(int(IntelBrightnessManager.current_proportion * 100)) | ||||
|   | ||||
| @@ -1,7 +0,0 @@ | ||||
| #!/usr/bin/env sh | ||||
|  | ||||
| function nr { | ||||
|     sk --ansi -i -c 'nix-search "{}"' | get_cols 1 | ||||
| } | ||||
|  | ||||
| nr "$@" | ||||
							
								
								
									
										376
									
								
								nix-darwin/flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										376
									
								
								nix-darwin/flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -1,376 +0,0 @@ | ||||
| { | ||||
|   "nodes": { | ||||
|     "agenix": { | ||||
|       "inputs": { | ||||
|         "darwin": "darwin", | ||||
|         "home-manager": "home-manager_2", | ||||
|         "nixpkgs": [ | ||||
|           "railbird-secrets", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "systems": "systems_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1707830867, | ||||
|         "narHash": "sha256-PAdwm5QqdlwIqGrfzzvzZubM+FXtilekQ/FA0cI49/o=", | ||||
|         "owner": "ryantm", | ||||
|         "repo": "agenix", | ||||
|         "rev": "8cb01a0e717311680e0cbca06a76cbceba6f3ed6", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "ryantm", | ||||
|         "repo": "agenix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "brew-src": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1718075954, | ||||
|         "narHash": "sha256-4TeUhv5VLEufP+Z/NkKnUk4NUaf59cMsj6NvsVbE+8w=", | ||||
|         "owner": "Homebrew", | ||||
|         "repo": "brew", | ||||
|         "rev": "3f08c75e7b950d4340dab462f3e7f77e8093fa2b", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "Homebrew", | ||||
|         "ref": "4.3.5", | ||||
|         "repo": "brew", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "darwin": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "railbird-secrets", | ||||
|           "agenix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1700795494, | ||||
|         "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", | ||||
|         "owner": "lnl7", | ||||
|         "repo": "nix-darwin", | ||||
|         "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "lnl7", | ||||
|         "ref": "master", | ||||
|         "repo": "nix-darwin", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1710146030, | ||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_2": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_3" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1709126324, | ||||
|         "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "d465f4819400de7c8d874d50b982301f28a84605", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "home-manager": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1723399884, | ||||
|         "narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "086f619dd991a4d355c07837448244029fc2d9ab", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "home-manager_2": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "railbird-secrets", | ||||
|           "agenix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1703113217, | ||||
|         "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "homebrew-cask": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1722820732, | ||||
|         "narHash": "sha256-Y8TBYxYeUVvgYFylqBUtWxFuOZVstXW+yylI2wz2eQ0=", | ||||
|         "owner": "homebrew", | ||||
|         "repo": "homebrew-cask", | ||||
|         "rev": "9e3db5dd3130f9bf388409f39ce1706ca7b59efe", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "homebrew", | ||||
|         "repo": "homebrew-cask", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "homebrew-core": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1722823168, | ||||
|         "narHash": "sha256-3sKYVUrhuS1fZJkrYAtB+O67dvaKyTvXXI9UqjAgI8A=", | ||||
|         "owner": "homebrew", | ||||
|         "repo": "homebrew-core", | ||||
|         "rev": "dd20841f7fe7375738708bc2f458152906a71f1d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "homebrew", | ||||
|         "repo": "homebrew-core", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nix-darwin": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1722609272, | ||||
|         "narHash": "sha256-Kkb+ULEHVmk07AX+OhwyofFxBDpw+2WvsXguUS2m6e4=", | ||||
|         "owner": "LnL7", | ||||
|         "repo": "nix-darwin", | ||||
|         "rev": "f7142b8024d6b70c66fd646e1d099d3aa5bfec49", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "LnL7", | ||||
|         "repo": "nix-darwin", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nix-darwin_2": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": "nixpkgs" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1716329735, | ||||
|         "narHash": "sha256-ap51w+VqG21vuzyQ04WrhI2YbWHd3UGz0e7dc/QQmoA=", | ||||
|         "owner": "LnL7", | ||||
|         "repo": "nix-darwin", | ||||
|         "rev": "eac4f25028c1975a939c8f8fba95c12f8a25e01c", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "LnL7", | ||||
|         "repo": "nix-darwin", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nix-homebrew": { | ||||
|       "inputs": { | ||||
|         "brew-src": "brew-src", | ||||
|         "flake-utils": "flake-utils", | ||||
|         "nix-darwin": "nix-darwin_2", | ||||
|         "nixpkgs": "nixpkgs_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1719720211, | ||||
|         "narHash": "sha256-FNK5ZxmNC+V/wOuioc5HqkUy0ld4eW3NqcsZHLYg9HI=", | ||||
|         "owner": "zhaofengli-wip", | ||||
|         "repo": "nix-homebrew", | ||||
|         "rev": "0afc51fd86693c73e4b60be8ed8c782c4c09b4cc", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "zhaofengli-wip", | ||||
|         "repo": "nix-homebrew", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1687274257, | ||||
|         "narHash": "sha256-TutzPriQcZ8FghDhEolnHcYU2oHIG5XWF+/SUBNnAOE=", | ||||
|         "path": "/nix/store/22qgs3skscd9bmrxv9xv4q5d4wwm5ppx-source", | ||||
|         "rev": "2c9ecd1f0400076a4d6b2193ad468ff0a7e7fdc5", | ||||
|         "type": "path" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "nixpkgs", | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1716330097, | ||||
|         "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_3": { | ||||
|       "locked": { | ||||
|         "lastModified": 1722640603, | ||||
|         "narHash": "sha256-TcXjLVNd3VeH1qKPH335Tc4RbFDbZQX+d7rqnDUoRaY=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "81610abc161d4021b29199aa464d6a1a521e0cc9", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixpkgs-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_4": { | ||||
|       "locked": { | ||||
|         "lastModified": 1709703039, | ||||
|         "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "railbird-secrets": { | ||||
|       "inputs": { | ||||
|         "agenix": "agenix", | ||||
|         "flake-utils": "flake-utils_2", | ||||
|         "nixpkgs": "nixpkgs_4" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1722639965, | ||||
|         "narHash": "sha256-ZRe5Z5s/UNaXI2piyncQ3YrFl5q3GryZAfFTyeJ/vhM=", | ||||
|         "ref": "refs/heads/master", | ||||
|         "rev": "9a92b83c3ad376620db3556c33e51a4300c5badd", | ||||
|         "revCount": 73, | ||||
|         "type": "git", | ||||
|         "url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git" | ||||
|       }, | ||||
|       "original": { | ||||
|         "type": "git", | ||||
|         "url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git" | ||||
|       } | ||||
|     }, | ||||
|     "root": { | ||||
|       "inputs": { | ||||
|         "home-manager": "home-manager", | ||||
|         "homebrew-cask": "homebrew-cask", | ||||
|         "homebrew-core": "homebrew-core", | ||||
|         "nix-darwin": "nix-darwin", | ||||
|         "nix-homebrew": "nix-homebrew", | ||||
|         "nixpkgs": "nixpkgs_3", | ||||
|         "railbird-secrets": "railbird-secrets" | ||||
|       } | ||||
|     }, | ||||
|     "systems": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems_3": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "root": "root", | ||||
|   "version": 7 | ||||
| } | ||||
| @@ -1,208 +0,0 @@ | ||||
| { | ||||
|   description = "Example Darwin system flake"; | ||||
|  | ||||
|   inputs = { | ||||
|     nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; | ||||
|     nix-darwin.url = "github:LnL7/nix-darwin"; | ||||
|     nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     railbird-secrets = { | ||||
|       url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"; | ||||
|     }; | ||||
|     nix-homebrew.url = "github:zhaofengli-wip/nix-homebrew"; | ||||
|  | ||||
|     # Optional: Declarative tap management | ||||
|     homebrew-core = { | ||||
|       url = "github:homebrew/homebrew-core"; | ||||
|       flake = false; | ||||
|     }; | ||||
|     homebrew-cask = { | ||||
|       url = "github:homebrew/homebrew-cask"; | ||||
|       flake = false; | ||||
|     }; | ||||
|     home-manager.url = "github:nix-community/home-manager"; | ||||
|     home-manager.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|   }; | ||||
|  | ||||
|   outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, ... }: | ||||
|   let | ||||
|     libDir = ../dotfiles/lib; | ||||
|     configuration = { pkgs, config, ... }: { | ||||
|       networking.hostName = "mac-demarco-mini"; | ||||
|       imports = [ (import ./gitea-actions-runner.nix) ]; | ||||
|       services.gitea-actions-runner = { | ||||
|         user = "gitea-runner"; | ||||
|         instances.nix = { | ||||
|           enable = true; | ||||
|           name = config.networking.hostName; | ||||
|           url = "https://dev.railbird.ai"; | ||||
|           token = "H0A7YXAWsKSp9QzvMymfJI12hbxwR7UerEHpCJUe"; | ||||
|           labels = [ | ||||
|             "nix-darwin-${pkgs.system}:host" | ||||
|             "macos-aarch64-darwin" | ||||
|             "nix:host" | ||||
|           ]; | ||||
|           settings = { | ||||
|             cache = { | ||||
|               enabled = true; | ||||
|             }; | ||||
|             host = { | ||||
|               workdir_parent = "/var/lib/gitea-runner/action-cache-dir"; | ||||
|             }; | ||||
|           }; | ||||
|           hostPackages = with pkgs; [ | ||||
|             bash | ||||
|             coreutils | ||||
|             curl | ||||
|             direnv | ||||
|             gawk | ||||
|             just | ||||
|             git-lfs | ||||
|             isort | ||||
|             gitFull | ||||
|             gnused | ||||
|             ncdu | ||||
|             nixFlakes | ||||
|             nodejs | ||||
|             openssh | ||||
|             wget | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
|  | ||||
|       launchd.daemons.gitea-runner-nix.serviceConfig.EnvironmentVariables = { | ||||
|         XDG_CONFIG_HOME = "/var/lib/gitea-runner"; | ||||
|         XDG_CACHE_HOME = "/var/lib/gitea-runner/.cache"; | ||||
|         XDG_RUNTIME_DIR = "/var/lib/gitea-runner/tmp"; | ||||
|       }; | ||||
|  | ||||
|       # launchd.daemons.gitea-runner-restarter = { | ||||
|       #   serviceConfig = { | ||||
|       #     ProgramArguments = [ | ||||
|       #       "/usr/bin/env" | ||||
|       #       "bash" | ||||
|       #       "-c" | ||||
|       #       '' | ||||
|       #         SERVICE_NAME="org.nixos.gitea-runner-nix" | ||||
|       #         while true; do | ||||
|       #         # Check the second column of launchctl list output for our service | ||||
|       #         EXIT_CODE=$(sudo launchctl list | grep "$SERVICE_NAME" | awk '{print $2}') | ||||
|       #         if [ -z "$EXIT_CODE" ]; then | ||||
|       #         echo "$(date): $SERVICE_NAME is running correctly. Terminating the restarter." | ||||
|       #         exit 0 | ||||
|       #         else | ||||
|       #         echo "$(date): $SERVICE_NAME is not running or in error state. Attempting to restart..." | ||||
|       #         sudo launchctl bootout system/$SERVICE_NAME 2>/dev/null || true | ||||
|       #         sudo launchctl load /Library/LaunchDaemons/$SERVICE_NAME.plist | ||||
|       #         sleep 2  # Give the service some time to start | ||||
|       #         fi | ||||
|       #         done | ||||
|       #       '' | ||||
|       #     ]; | ||||
|       #     RunAtLoad = true; | ||||
|       #     ThrottleInterval = 300; | ||||
|       #   }; | ||||
|       # }; | ||||
|  | ||||
|       launchd.daemons.does-anything-work = { | ||||
|         serviceConfig = { | ||||
|           ProgramArguments = ["/usr/bin/env" "bash" "-c" "date > /var/log/does-anything-work"]; | ||||
|           RunAtLoad = true; | ||||
|         }; | ||||
|       }; | ||||
|  | ||||
|       nixpkgs.overlays = [(import ../nixos/overlay.nix)]; | ||||
|       environment.systemPackages = with pkgs; [ | ||||
|         python-with-my-packages | ||||
| 	      emacs | ||||
|         alejandra | ||||
|         cocoapods | ||||
|         gitFull | ||||
|         just | ||||
|         tmux | ||||
|         htop | ||||
|         nodePackages.prettier | ||||
|         nodejs | ||||
|         ripgrep | ||||
|         slack | ||||
|         typescript | ||||
|         vim | ||||
|         yarn | ||||
|       ]; | ||||
|  | ||||
|       nixpkgs.config.allowUnfree = true; | ||||
|  | ||||
|  | ||||
|       # Auto upgrade nix package and the daemon service. | ||||
|       services.nix-daemon.enable = true; | ||||
|       launchd.user.envVariables.PATH = config.environment.systemPath; | ||||
|  | ||||
|       programs.direnv.enable = true; | ||||
|  | ||||
|       # Necessary for using flakes on this system. | ||||
|       nix.settings.experimental-features = "nix-command flakes"; | ||||
|  | ||||
|  | ||||
|       # Set Git commit hash for darwin-version. | ||||
|       system.configurationRevision = self.rev or self.dirtyRev or null; | ||||
|  | ||||
|       # Used for backwards compatibility, please read the changelog before changing | ||||
|       system.stateVersion = 4; | ||||
|  | ||||
|       # The platform the configuration will be used on. | ||||
|       nixpkgs.hostPlatform = "aarch64-darwin"; | ||||
|       users.users.kat.openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.kanivanKeys; | ||||
|       users.users.gitea-runner = { | ||||
|         name = "gitea-runner"; | ||||
|         isHidden = false; | ||||
|         home = "/Users/gitea-runner"; | ||||
|         createHome = false; | ||||
|       }; | ||||
|  | ||||
|       home-manager.useGlobalPkgs = true;      home-manager.useUserPackages = true; | ||||
|  | ||||
|       users.users.kat = { | ||||
|         name = "kat"; | ||||
|         home = "/Users/kat"; | ||||
|       }; | ||||
|  | ||||
|       programs.zsh = { | ||||
|         enable = true; | ||||
|         shellInit = '' | ||||
|           fpath+="${libDir}/functions" | ||||
|           for file in "${libDir}/functions/"* | ||||
|           do | ||||
|           autoload "''${file##*/}" | ||||
|           done | ||||
|         ''; | ||||
|         interactiveShellInit = '' | ||||
|           # eval "$(register-python-argcomplete prb)" | ||||
|           # eval "$(register-python-argcomplete prod-prb)" | ||||
|           # eval "$(register-python-argcomplete railbird)" | ||||
|           # [ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh" | ||||
|  | ||||
|           autoload -Uz bracketed-paste-magic | ||||
|           zle -N bracketed-paste bracketed-paste-magic | ||||
|         ''; | ||||
|       }; | ||||
|  | ||||
|       home-manager.users.kat = { | ||||
|         programs.starship = { | ||||
|           enable = true; | ||||
|         }; | ||||
|         programs.zsh.enable = true; | ||||
|         home.stateVersion = "24.05"; | ||||
|       }; | ||||
|     }; | ||||
|   in | ||||
|   { | ||||
|     darwinConfigurations."mac-demarco-mini" = nix-darwin.lib.darwinSystem { | ||||
|       modules = [ | ||||
|         home-manager.darwinModules.home-manager | ||||
|         configuration | ||||
|       ]; | ||||
|     }; | ||||
|  | ||||
|     # Expose the package set, including overlays, for convenience. | ||||
|     darwinPackages = self.darwinConfigurations."Kats-Mac-mini".pkgs; | ||||
|   }; | ||||
| } | ||||
| @@ -1,176 +0,0 @@ | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; let | ||||
|   cfg = config.services.gitea-actions-runner; | ||||
|  | ||||
|   settingsFormat = pkgs.formats.yaml {}; | ||||
|  | ||||
|   hasDockerScheme = instance: | ||||
|     instance.labels == [] || any (label: hasInfix ":docker:" label) instance.labels; | ||||
|   wantsContainerRuntime = any hasDockerScheme (attrValues cfg.instances); | ||||
|  | ||||
|   hasHostScheme = instance: any (label: hasSuffix ":host" label) instance.labels; | ||||
|  | ||||
|   tokenXorTokenFile = instance: | ||||
|     (instance.token == null && instance.tokenFile != null) | ||||
|     || (instance.token != null && instance.tokenFile == null); | ||||
| in { | ||||
|   options.services.gitea-actions-runner = { | ||||
|     package = mkOption { | ||||
|       type = types.package; | ||||
|       default = pkgs.gitea-actions-runner; | ||||
|       defaultText = literalExpression "pkgs.gitea-actions-runner"; | ||||
|       description = "The gitea-actions-runner package to use."; | ||||
|     }; | ||||
|  | ||||
|     user = mkOption { | ||||
|       type = types.str; | ||||
|       default = "gitea-runner"; | ||||
|       description = "The user account under which the Gitea Actions Runner should run."; | ||||
|     }; | ||||
|  | ||||
|     instances = mkOption { | ||||
|       default = {}; | ||||
|       description = "Gitea Actions Runner instances."; | ||||
|       type = types.attrsOf (types.submodule { | ||||
|         options = { | ||||
|           enable = mkEnableOption "Gitea Actions Runner instance"; | ||||
|  | ||||
|           name = mkOption { | ||||
|             type = types.str; | ||||
|             example = "my-runner"; | ||||
|             description = "The name identifying the runner instance towards the Gitea/Forgejo instance."; | ||||
|           }; | ||||
|  | ||||
|           url = mkOption { | ||||
|             type = types.str; | ||||
|             example = "https://forge.example.com"; | ||||
|             description = "Base URL of your Gitea/Forgejo instance."; | ||||
|           }; | ||||
|  | ||||
|           token = mkOption { | ||||
|             type = types.nullOr types.str; | ||||
|             default = null; | ||||
|             description = "Plain token to register at the configured Gitea/Forgejo instance."; | ||||
|           }; | ||||
|  | ||||
|           tokenFile = mkOption { | ||||
|             type = types.nullOr (types.either types.str types.path); | ||||
|             default = null; | ||||
|             description = "Path to a file containing the token to register at the configured Gitea/Forgejo instance."; | ||||
|           }; | ||||
|  | ||||
|           labels = mkOption { | ||||
|             type = types.listOf types.str; | ||||
|             default = []; | ||||
|             example = ["macos:host" "x86_64:host"]; | ||||
|             description = "Labels used to map jobs to their runtime environment."; | ||||
|           }; | ||||
|  | ||||
|           settings = mkOption { | ||||
|             description = "Configuration for `act_runner daemon`."; | ||||
|             type = types.submodule { | ||||
|               freeformType = settingsFormat.type; | ||||
|             }; | ||||
|             default = {}; | ||||
|           }; | ||||
|  | ||||
|           hostPackages = mkOption { | ||||
|             type = types.listOf types.package; | ||||
|             default = with pkgs; [ | ||||
|               bash | ||||
|               coreutils | ||||
|               curl | ||||
|               gawk | ||||
|               git | ||||
|               gnused | ||||
|               nodejs | ||||
|               wget | ||||
|               openssh | ||||
|             ]; | ||||
|             description = "List of packages available to actions when the runner is configured with a host execution label."; | ||||
|           }; | ||||
|         }; | ||||
|       }); | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   config = mkIf (cfg.instances != {}) { | ||||
|     assertions = [ | ||||
|       { | ||||
|         assertion = all tokenXorTokenFile (attrValues cfg.instances); | ||||
|         message = "Instances of gitea-actions-runner can have `token` or `tokenFile`, not both."; | ||||
|       } | ||||
|     ]; | ||||
|  | ||||
|     users.users.${cfg.user} = { | ||||
|       name = cfg.user; | ||||
|       description = "Gitea Actions Runner user"; | ||||
|     }; | ||||
|  | ||||
|     launchd.daemons = | ||||
|       (mapAttrs' ( | ||||
|           name: instance: | ||||
|             nameValuePair "gitea-runner-${name}" { | ||||
|               serviceConfig = { | ||||
|                 ProgramArguments = [ | ||||
|                   "/usr/bin/env" | ||||
|                   "bash" | ||||
|                   "-c" | ||||
|                   '' | ||||
|                     cd /var/lib/gitea-runner/${name} | ||||
|                     exec ${cfg.package}/bin/act_runner daemon --config ${settingsFormat.generate "config.yaml" instance.settings} | ||||
|                   '' | ||||
|                 ]; | ||||
|                 KeepAlive = true; | ||||
|                 ThrottleInterval = 5; | ||||
|                 SessionCreate = true; | ||||
|                 UserName = cfg.user; | ||||
|                 GroupName = "staff"; | ||||
|                 WorkingDirectory = "/var/lib/gitea-runner/${name}"; | ||||
|                 EnvironmentVariables = { | ||||
|                   PATH = (lib.makeBinPath (instance.hostPackages ++ [cfg.package])) + ":/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"; | ||||
|                 }; | ||||
|               }; | ||||
|             } | ||||
|         ) | ||||
|         cfg.instances) | ||||
|       // (mapAttrs' ( | ||||
|           name: instance: | ||||
|             nameValuePair "gitea-runner-setup-${name}" | ||||
|             { | ||||
|               serviceConfig = { | ||||
|                 EnvironmentVariables = | ||||
|                   {} | ||||
|                   // optionalAttrs (instance.token != null) { | ||||
|                     TOKEN = instance.token; | ||||
|                   }; | ||||
|                 RunAtLoad = true; | ||||
|                 ProgramArguments = [ | ||||
|                   "${pkgs.writeShellScript "gitea-runner-setup-${name}" '' | ||||
|                     mkdir -p /var/lib/gitea-runner/${name} | ||||
|                     cd /var/lib/gitea-runner/${name} | ||||
|                     if [ ! -e "/var/lib/gitea-runner/${name}/.runner" ]; then | ||||
|                         ${cfg.package}/bin/act_runner register --no-interactive \ | ||||
|                         --instance ${escapeShellArg instance.url} \ | ||||
|                         --token "$TOKEN" \ | ||||
|                         --name ${escapeShellArg instance.name} \ | ||||
|                         --labels ${escapeShellArg (concatStringsSep "," instance.labels)} \ | ||||
|                         --config ${settingsFormat.generate "config.yaml" instance.settings} | ||||
|                     fi | ||||
|  | ||||
|                     # Start the runner | ||||
|                     chown -R ${cfg.user} /var/lib/gitea-runner | ||||
|                     chown -R ${cfg.user} /var/log/gitea-runner | ||||
|                   ''}" | ||||
|                 ]; | ||||
|               }; | ||||
|             } | ||||
|         ) | ||||
|         cfg.instances); | ||||
|   }; | ||||
| } | ||||
| @@ -1,2 +0,0 @@ | ||||
| switch: | ||||
| 	nix run nix-darwin -- switch --flake .# | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, pkgs, forEachUser, makeEnable, realUsers, ... }: | ||||
| makeEnable config "myModules.base" true { | ||||
| makeEnable config "modules.base" true { | ||||
|   nixpkgs.config.permittedInsecurePackages = [ | ||||
|     "openssl-1.0.2u" | ||||
|     "electron-12.2.3" | ||||
| @@ -36,7 +36,8 @@ makeEnable config "myModules.base" true { | ||||
|   }; | ||||
|  | ||||
|   # Audio | ||||
|   hardware.pulseaudio.enable = false; | ||||
|   sound.enable = true; | ||||
|   hardware.pulseaudio.enable = true; | ||||
|  | ||||
|   # Bluetooth | ||||
|   hardware.bluetooth.enable = true; | ||||
| @@ -70,5 +71,5 @@ makeEnable config "myModules.base" true { | ||||
|   programs.dconf.enable = true; | ||||
|  | ||||
|   home-manager.users = forEachUser (import ./home-manager.nix); | ||||
|   nix.settings.trusted-users = realUsers ++ ["gitea-runner"]; | ||||
|   nix.settings.trusted-users = realUsers; | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { pkgs, inputs, config, makeEnable, ... }: | ||||
| makeEnable config "myModules.ben" true { | ||||
| makeEnable config "modules.ben" true { | ||||
|   home-manager.backupFileExtension = "backup"; # Add this line | ||||
|   home-manager.users.ben = { | ||||
|     programs.zsh = { | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| { config, lib, ... }: | ||||
| with lib; | ||||
| let cfg = config.myModules.cache-server; | ||||
| let cfg = config.modules.cache-server; | ||||
| in | ||||
| { | ||||
|   options = { | ||||
|     myModules.cache-server = { | ||||
|     modules.cache-server = { | ||||
|       enable = mkEnableOption "nix cache server"; | ||||
|       port = mkOption { | ||||
|         type = types.int; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { pkgs, config, makeEnable, ... }: | ||||
| makeEnable config "myModules.code" true { | ||||
| makeEnable config "modules.code" true { | ||||
|   programs.direnv = { | ||||
|     enable = true; | ||||
|     nix-direnv.enable = true; | ||||
|   | ||||
| @@ -19,13 +19,10 @@ | ||||
|     ./gnome.nix | ||||
|     ./imalison.nix | ||||
|     ./internet-computer.nix | ||||
|     ./k3s.nix | ||||
|     ./kat.nix | ||||
|     ./keybase.nix | ||||
|     ./kubelet.nix | ||||
|     ./nix.nix | ||||
|     ./nixified.ai.nix | ||||
|     ./nvidia.nix | ||||
|     ./options.nix | ||||
|     ./plasma.nix | ||||
|     ./postgres.nix | ||||
| @@ -45,17 +42,17 @@ | ||||
|   }; | ||||
|  | ||||
|   config = lib.mkIf config.features.full.enable { | ||||
|     myModules.base.enable = true; | ||||
|     myModules.desktop.enable = true; | ||||
|     myModules.plasma.enable = true; | ||||
|     myModules.gnome.enable = false; | ||||
|     myModules.xmonad.enable = true; | ||||
|     myModules.extra.enable = true; | ||||
|     myModules.electron.enable = true; | ||||
|     myModules.code.enable = true; | ||||
|     myModules.games.enable = true; | ||||
|     myModules.syncthing.enable = true; | ||||
|     myModules.fonts.enable = true; | ||||
|     myModules.nixified-ai.enable = false; | ||||
|     modules.base.enable = true; | ||||
|     modules.desktop.enable = true; | ||||
|     modules.plasma.enable = true; | ||||
|     modules.gnome.enable = false; | ||||
|     modules.xmonad.enable = true; | ||||
|     modules.extra.enable = true; | ||||
|     modules.electron.enable = true; | ||||
|     modules.code.enable = true; | ||||
|     modules.games.enable = true; | ||||
|     modules.syncthing.enable = true; | ||||
|     modules.fonts.enable = true; | ||||
|     modules.nixified-ai.enable = false; | ||||
|   }; | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, pkgs, makeEnable, ... }: | ||||
| makeEnable config "myModules.desktop" true { | ||||
| makeEnable config "modules.desktop" true { | ||||
|   imports = [ | ||||
|     ./fonts.nix | ||||
|   ]; | ||||
| @@ -34,7 +34,7 @@ makeEnable config "myModules.desktop" true { | ||||
|  | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     # Appearance | ||||
|     adwaita-icon-theme | ||||
|     gnome.adwaita-icon-theme | ||||
|     hicolor-icon-theme | ||||
|     libsForQt5.breeze-gtk | ||||
|     # materia-theme | ||||
| @@ -60,8 +60,8 @@ makeEnable config "myModules.desktop" true { | ||||
|  | ||||
|     feh | ||||
|     firefox | ||||
|     cheese | ||||
|     gpaste | ||||
|     gnome.cheese | ||||
|     gnome.gpaste | ||||
|     kleopatra | ||||
|     libnotify | ||||
|     libreoffice | ||||
| @@ -70,8 +70,9 @@ makeEnable config "myModules.desktop" true { | ||||
|     networkmanagerapplet | ||||
|     notify-osd-customizable | ||||
|     okular | ||||
|     picom | ||||
|     pinentry | ||||
|     mission-center | ||||
|     psensor | ||||
|     quassel | ||||
|     remmina | ||||
|     rofi | ||||
| @@ -81,7 +82,7 @@ makeEnable config "myModules.desktop" true { | ||||
|     simplescreenrecorder | ||||
|     skippy-xd | ||||
|     synergy | ||||
|     transmission_3-gtk | ||||
|     transmission-gtk | ||||
|     vlc | ||||
|     volnoti | ||||
|     xfce.thunar | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { pkgs, config, makeEnable, forEachUser, ... }: | ||||
| makeEnable config "myModules.electron" false { | ||||
| makeEnable config "modules.electron" false { | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     element-desktop | ||||
|     # bitwarden | ||||
|   | ||||
| @@ -34,10 +34,6 @@ with lib; | ||||
|         eval "$(register-python-argcomplete prod-prb)" | ||||
|         eval "$(register-python-argcomplete railbird)" | ||||
|         [ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh" | ||||
|  | ||||
|         # Enable bracketed paste | ||||
|         autoload -Uz bracketed-paste-magic | ||||
|         zle -N bracketed-paste bracketed-paste-magic | ||||
|       ''; | ||||
|     }; | ||||
|  | ||||
|   | ||||
| @@ -5,7 +5,6 @@ | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     automake | ||||
|     bazel | ||||
|     bento4 | ||||
|     bind | ||||
|     binutils | ||||
|     cachix | ||||
| @@ -17,12 +16,13 @@ | ||||
|     emacs | ||||
|     fd | ||||
|     ffmpeg | ||||
|     bento4 | ||||
|     file | ||||
|     gawk | ||||
|     gcc | ||||
|     gdb | ||||
|     git-fame | ||||
|     git-lfs | ||||
|     git-fame | ||||
|     git-sync | ||||
|     gitFull | ||||
|     glxinfo | ||||
| @@ -42,7 +42,6 @@ | ||||
|     neofetch | ||||
|     neovim | ||||
|     nix-index | ||||
|     nix-search-cli | ||||
|     pass | ||||
|     patchelf | ||||
|     pciutils | ||||
| @@ -52,9 +51,8 @@ | ||||
|     rcm | ||||
|     ripgrep | ||||
|     silver-searcher | ||||
|     skim | ||||
|     sshfs | ||||
|     sysz | ||||
|     sshfs | ||||
|     tmux | ||||
|     tzupdate | ||||
|     udiskie | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, pkgs, makeEnable, ... }: | ||||
| makeEnable config "myModules.extra" false { | ||||
| makeEnable config "modules.extra" false { | ||||
|   services.expressvpn.enable = true; | ||||
|   programs.hyprland.enable = true; | ||||
|  | ||||
|   | ||||
							
								
								
									
										388
									
								
								nixos/flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										388
									
								
								nixos/flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -8,11 +8,11 @@ | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1723293904, | ||||
|         "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", | ||||
|         "lastModified": 1715290355, | ||||
|         "narHash": "sha256-2T7CHTqBXJJ3ZC6R/4TXTcKoXWHcvubKNj9SfomURnw=", | ||||
|         "owner": "ryantm", | ||||
|         "repo": "agenix", | ||||
|         "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", | ||||
|         "rev": "8d37c5bdeade12b6479c85acd133063ab53187a0", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -93,11 +93,11 @@ | ||||
|     "flake-compat": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1696426674, | ||||
|         "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", | ||||
|         "lastModified": 1673956053, | ||||
|         "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", | ||||
|         "owner": "edolstra", | ||||
|         "repo": "flake-compat", | ||||
|         "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", | ||||
|         "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -162,11 +162,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1719994518, | ||||
|         "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", | ||||
|         "lastModified": 1712014858, | ||||
|         "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", | ||||
|         "owner": "hercules-ci", | ||||
|         "repo": "flake-parts", | ||||
|         "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", | ||||
|         "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -217,45 +217,6 @@ | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "flake-parts_4": { | ||||
|       "inputs": { | ||||
|         "nixpkgs-lib": "nixpkgs-lib" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701473968, | ||||
|         "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", | ||||
|         "owner": "hercules-ci", | ||||
|         "repo": "flake-parts", | ||||
|         "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "hercules-ci", | ||||
|         "repo": "flake-parts", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-parts_5": { | ||||
|       "inputs": { | ||||
|         "nixpkgs-lib": [ | ||||
|           "nixtheplanet", | ||||
|           "hercules-ci-effects", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1696343447, | ||||
|         "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", | ||||
|         "owner": "hercules-ci", | ||||
|         "repo": "flake-parts", | ||||
|         "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "flake-parts", | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils": { | ||||
|       "inputs": { | ||||
|         "systems": [ | ||||
| @@ -263,11 +224,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1726560853, | ||||
|         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", | ||||
|         "lastModified": 1710146030, | ||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", | ||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -277,15 +238,12 @@ | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_2": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1726560853, | ||||
|         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", | ||||
|         "lastModified": 1667395993, | ||||
|         "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", | ||||
|         "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -295,6 +253,24 @@ | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_3": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1710146030, | ||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_4": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_3" | ||||
|       }, | ||||
| @@ -312,7 +288,7 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_4": { | ||||
|     "flake-utils_5": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_5" | ||||
|       }, | ||||
| @@ -330,7 +306,7 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_5": { | ||||
|     "flake-utils_6": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_7" | ||||
|       }, | ||||
| @@ -348,7 +324,7 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_6": { | ||||
|     "flake-utils_7": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_8" | ||||
|       }, | ||||
| @@ -414,37 +390,6 @@ | ||||
|         "url": "https://hackage.haskell.org/package/fourmolu-0.12.0.0/fourmolu-0.12.0.0.tar.gz" | ||||
|       } | ||||
|     }, | ||||
|     "git-hooks-nix": { | ||||
|       "inputs": { | ||||
|         "flake-compat": [ | ||||
|           "nix" | ||||
|         ], | ||||
|         "gitignore": [ | ||||
|           "nix" | ||||
|         ], | ||||
|         "nixpkgs": [ | ||||
|           "nix", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "nixpkgs-stable": [ | ||||
|           "nix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1721042469, | ||||
|         "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", | ||||
|         "owner": "cachix", | ||||
|         "repo": "git-hooks.nix", | ||||
|         "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "cachix", | ||||
|         "repo": "git-hooks.nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "git-ignore-nix": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
| @@ -621,7 +566,7 @@ | ||||
|     "haskell-language-server": { | ||||
|       "inputs": { | ||||
|         "flake-compat": "flake-compat_3", | ||||
|         "flake-utils": "flake-utils_3", | ||||
|         "flake-utils": "flake-utils_4", | ||||
|         "fourmolu-011": "fourmolu-011", | ||||
|         "fourmolu-012": "fourmolu-012", | ||||
|         "gitignore": "gitignore", | ||||
| @@ -633,7 +578,7 @@ | ||||
|         "lsp": "lsp", | ||||
|         "lsp-test": "lsp-test", | ||||
|         "lsp-types": "lsp-types", | ||||
|         "nixpkgs": "nixpkgs_8", | ||||
|         "nixpkgs": "nixpkgs_6", | ||||
|         "ormolu-052": "ormolu-052", | ||||
|         "ormolu-07": "ormolu-07", | ||||
|         "stylish-haskell-0145": "stylish-haskell-0145" | ||||
| @@ -656,7 +601,7 @@ | ||||
|     "haskell-language-server_2": { | ||||
|       "inputs": { | ||||
|         "flake-compat": "flake-compat_4", | ||||
|         "flake-utils": "flake-utils_5", | ||||
|         "flake-utils": "flake-utils_6", | ||||
|         "fourmolu-011": "fourmolu-011_2", | ||||
|         "fourmolu-012": "fourmolu-012_2", | ||||
|         "gitignore": "gitignore_2", | ||||
| @@ -668,7 +613,7 @@ | ||||
|         "lsp": "lsp_2", | ||||
|         "lsp-test": "lsp-test_2", | ||||
|         "lsp-types": "lsp-types_2", | ||||
|         "nixpkgs": "nixpkgs_10", | ||||
|         "nixpkgs": "nixpkgs_8", | ||||
|         "ormolu-052": "ormolu-052_2", | ||||
|         "ormolu-07": "ormolu-07_2", | ||||
|         "stylish-haskell-0145": "stylish-haskell-0145_2" | ||||
| @@ -710,25 +655,6 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "hercules-ci-effects_2": { | ||||
|       "inputs": { | ||||
|         "flake-parts": "flake-parts_5", | ||||
|         "nixpkgs": "nixpkgs_6" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701009247, | ||||
|         "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", | ||||
|         "owner": "hercules-ci", | ||||
|         "repo": "hercules-ci-effects", | ||||
|         "rev": "31b6cd7569191bfcd0a548575b0e2ef953ed7d09", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "hercules-ci", | ||||
|         "repo": "hercules-ci-effects", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "hiedb": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
| @@ -839,11 +765,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1727381010, | ||||
|         "narHash": "sha256-2PqUwnZXjYiPUm5A4d8Z31mvLS4lvUeV/9gUhSMmNR4=", | ||||
|         "lastModified": 1715380449, | ||||
|         "narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "853e7bd24f875bac2e3a0cf72f993e917d0f8cf5", | ||||
|         "rev": "d7682620185f213df384c363288093b486b2883f", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -920,16 +846,15 @@ | ||||
|     "libgit2": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1715853528, | ||||
|         "narHash": "sha256-J2rCxTecyLbbDdsyBWn9w7r3pbKRMkI9E7RvRgAqBdY=", | ||||
|         "lastModified": 1697646580, | ||||
|         "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", | ||||
|         "owner": "libgit2", | ||||
|         "repo": "libgit2", | ||||
|         "rev": "36f7e21ad757a3dacc58cf7944329da6bc1d6e96", | ||||
|         "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "libgit2", | ||||
|         "ref": "v1.8.1", | ||||
|         "repo": "libgit2", | ||||
|         "type": "github" | ||||
|       } | ||||
| @@ -1010,18 +935,17 @@ | ||||
|       "inputs": { | ||||
|         "flake-compat": "flake-compat", | ||||
|         "flake-parts": "flake-parts", | ||||
|         "git-hooks-nix": "git-hooks-nix", | ||||
|         "libgit2": "libgit2", | ||||
|         "nixpkgs": "nixpkgs_2", | ||||
|         "nixpkgs-23-11": "nixpkgs-23-11", | ||||
|         "nixpkgs-regression": "nixpkgs-regression" | ||||
|         "nixpkgs-regression": "nixpkgs-regression", | ||||
|         "pre-commit-hooks": "pre-commit-hooks" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1727380702, | ||||
|         "narHash": "sha256-1YUAqvZc9YOUERyPiaOGYEg2fIf20+yIWGhzB0Ke6j8=", | ||||
|         "lastModified": 1715361977, | ||||
|         "narHash": "sha256-j/PLYYGs+Gjge4JGYxMjOhWQEp+GB4Fdicetbpmp6n0=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nix", | ||||
|         "rev": "0ed67e5b7ee9ad8fae162e1b10b25d22ada2b1f3", | ||||
|         "rev": "87ab3c0ea4e6f85e7b902050365bb75cf2836fbb", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -1053,16 +977,15 @@ | ||||
|     }, | ||||
|     "nixos-hardware": { | ||||
|       "locked": { | ||||
|         "lastModified": 1719989395, | ||||
|         "narHash": "sha256-AppMOCCJ6LYteg4mvlf0xQV+cc9a4iehRWxTOHewouA=", | ||||
|         "lastModified": 1707802617, | ||||
|         "narHash": "sha256-29HCocTg8aPr6gaY6VHNxJQpZQJ6GAqjFsKPqNFj5qo=", | ||||
|         "owner": "colonelpanic8", | ||||
|         "repo": "nixos-hardware", | ||||
|         "rev": "a91e03ef13614285d5d476fbf2f096ce65de0a71", | ||||
|         "rev": "cb96be8513e2959110c7f90ae5d61ca5aff35862", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "colonelpanic8", | ||||
|         "ref": "add-g834jzr", | ||||
|         "repo": "nixos-hardware", | ||||
|         "type": "github" | ||||
|       } | ||||
| @@ -1070,15 +993,15 @@ | ||||
|     "nixos-wsl": { | ||||
|       "inputs": { | ||||
|         "flake-compat": "flake-compat_2", | ||||
|         "flake-utils": "flake-utils_2", | ||||
|         "flake-utils": "flake-utils_3", | ||||
|         "nixpkgs": "nixpkgs_4" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1727091786, | ||||
|         "narHash": "sha256-n36Vtdtx7tTTKFI9aoWxdNIlJ2dwxoitFDwcPXrS+Jk=", | ||||
|         "lastModified": 1715237610, | ||||
|         "narHash": "sha256-/ZeWQ4mL3DfHsbTZYc80qMrL4vBfENP0RiGv2KrCrEo=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "NixOS-WSL", | ||||
|         "rev": "1fcec53c692c15091ca5bb9eaf86a2cac6c53278", | ||||
|         "rev": "61fe33f4194bbbc48c090a2e79f4eb61b47c9b75", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -1103,40 +1026,6 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs-23-11": { | ||||
|       "locked": { | ||||
|         "lastModified": 1717159533, | ||||
|         "narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs-lib": { | ||||
|       "locked": { | ||||
|         "dir": "lib", | ||||
|         "lastModified": 1701253981, | ||||
|         "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "dir": "lib", | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs-regression": { | ||||
|       "locked": { | ||||
|         "lastModified": 1643052045, | ||||
| @@ -1153,48 +1042,33 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_10": { | ||||
|     "nixpkgs-regression_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1686874404, | ||||
|         "narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=", | ||||
|         "lastModified": 1715484633, | ||||
|         "narHash": "sha256-Es5etYksi9VsAZSBKZe4rdyi9L000MEx9lFb3TF6Eo8=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "efc10371d5c5b8d2d58bab6c1100753efacfe550", | ||||
|         "rev": "25e9a6d07dd142bafd94603208a59c107e8f2905", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "haskell-updates", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_11": { | ||||
|       "locked": { | ||||
|         "lastModified": 1682134069, | ||||
|         "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "nixpkgs", | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1723688146, | ||||
|         "narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=", | ||||
|         "lastModified": 1709083642, | ||||
|         "narHash": "sha256-7kkJQd4rZ+vFrzWu8sTRtta5D1kBG0LSRYAfhtmMlSo=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "c3d4ac725177c030b1e289015989da2ad9d56af0", | ||||
|         "rev": "b550fe4b4776908ac2a861124307045f8e717c8e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-24.05", | ||||
|         "ref": "release-23.11", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
| @@ -1217,27 +1091,27 @@ | ||||
|     }, | ||||
|     "nixpkgs_4": { | ||||
|       "locked": { | ||||
|         "lastModified": 1726838390, | ||||
|         "narHash": "sha256-NmcVhGElxDbmEWzgXsyAjlRhUus/nEqPC5So7BOJLUM=", | ||||
|         "lastModified": 1714782413, | ||||
|         "narHash": "sha256-tbg0MEuKaPcUrnmGCu4xiY5F+7LW2+ECPKVAJd2HLwM=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "944b2aea7f0a2d7c79f72468106bc5510cbf5101", | ||||
|         "rev": "651b4702e27a388f0f18e1b970534162dec09aff", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-24.05", | ||||
|         "ref": "nixos-23.11", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_5": { | ||||
|       "locked": { | ||||
|         "lastModified": 1727122398, | ||||
|         "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", | ||||
|         "lastModified": 1715266358, | ||||
|         "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", | ||||
|         "rev": "f1010e0469db743d14519a1efd37e23f8513d714", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -1249,31 +1123,31 @@ | ||||
|     }, | ||||
|     "nixpkgs_6": { | ||||
|       "locked": { | ||||
|         "lastModified": 1697723726, | ||||
|         "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", | ||||
|         "lastModified": 1686874404, | ||||
|         "narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", | ||||
|         "rev": "efc10371d5c5b8d2d58bab6c1100753efacfe550", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "ref": "haskell-updates", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_7": { | ||||
|       "locked": { | ||||
|         "lastModified": 1703255338, | ||||
|         "narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", | ||||
|         "owner": "nixos", | ||||
|         "lastModified": 1709703039, | ||||
|         "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", | ||||
|         "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
| @@ -1297,39 +1171,16 @@ | ||||
|     }, | ||||
|     "nixpkgs_9": { | ||||
|       "locked": { | ||||
|         "lastModified": 1709703039, | ||||
|         "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", | ||||
|         "lastModified": 1682134069, | ||||
|         "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", | ||||
|         "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixtheplanet": { | ||||
|       "inputs": { | ||||
|         "flake-parts": "flake-parts_4", | ||||
|         "hercules-ci-effects": "hercules-ci-effects_2", | ||||
|         "nixpkgs": "nixpkgs_7", | ||||
|         "osx-kvm": "osx-kvm" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1727105240, | ||||
|         "narHash": "sha256-FEuqbcZ4TDUMwCpTA/E3J5L7pLD4U+zXPnZbmXSmaJo=", | ||||
|         "owner": "matthewcroughan", | ||||
|         "repo": "nixtheplanet", | ||||
|         "rev": "2f622af217807da78e44a5a15f620743dac57f46", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "matthewcroughan", | ||||
|         "repo": "nixtheplanet", | ||||
|         "type": "github" | ||||
|         "id": "nixpkgs", | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "notifications-tray-icon": { | ||||
| @@ -1407,34 +1258,50 @@ | ||||
|         "url": "https://hackage.haskell.org/package/ormolu-0.7.1.0/ormolu-0.7.1.0.tar.gz" | ||||
|       } | ||||
|     }, | ||||
|     "osx-kvm": { | ||||
|       "flake": false, | ||||
|     "pre-commit-hooks": { | ||||
|       "inputs": { | ||||
|         "flake-compat": [ | ||||
|           "nix" | ||||
|         ], | ||||
|         "flake-utils": "flake-utils_2", | ||||
|         "gitignore": [ | ||||
|           "nix" | ||||
|         ], | ||||
|         "nixpkgs": [ | ||||
|           "nix", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "nixpkgs-stable": [ | ||||
|           "nix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701316418, | ||||
|         "narHash": "sha256-Sk8LYhFovoMX1ln7DWYArJQphW2a4h8Xg7/ZEZXwZv4=", | ||||
|         "owner": "kholia", | ||||
|         "repo": "OSX-KVM", | ||||
|         "rev": "09daff670a7eb9ff616073df329586c5995623a9", | ||||
|         "lastModified": 1712897695, | ||||
|         "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=", | ||||
|         "owner": "cachix", | ||||
|         "repo": "pre-commit-hooks.nix", | ||||
|         "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "kholia", | ||||
|         "repo": "OSX-KVM", | ||||
|         "owner": "cachix", | ||||
|         "repo": "pre-commit-hooks.nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "railbird-secrets": { | ||||
|       "inputs": { | ||||
|         "agenix": "agenix_2", | ||||
|         "flake-utils": "flake-utils_4", | ||||
|         "nixpkgs": "nixpkgs_9" | ||||
|         "flake-utils": "flake-utils_5", | ||||
|         "nixpkgs": "nixpkgs_7" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1726075726, | ||||
|         "narHash": "sha256-eQPDAzUJg8fwqiCyWsKxtHV+G1LGJKs9X3ZtOzytuDE=", | ||||
|         "lastModified": 1718069159, | ||||
|         "narHash": "sha256-L66mczMl8BPLwZrTVKrXMZRyxHiPvA3CHywbsQyFHW0=", | ||||
|         "ref": "refs/heads/master", | ||||
|         "rev": "70d8ffd3f3b79b97477ae0655524273bb098b6c5", | ||||
|         "revCount": 86, | ||||
|         "rev": "609f1d32fd1112068d97df0f7d4de82cec878002", | ||||
|         "revCount": 52, | ||||
|         "type": "git", | ||||
|         "url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git" | ||||
|       }, | ||||
| @@ -1457,7 +1324,7 @@ | ||||
|         "nixos-hardware": "nixos-hardware", | ||||
|         "nixos-wsl": "nixos-wsl", | ||||
|         "nixpkgs": "nixpkgs_5", | ||||
|         "nixtheplanet": "nixtheplanet", | ||||
|         "nixpkgs-regression": "nixpkgs-regression_2", | ||||
|         "notifications-tray-icon": "notifications-tray-icon", | ||||
|         "railbird-secrets": "railbird-secrets", | ||||
|         "status-notifier-item": "status-notifier-item", | ||||
| @@ -1700,7 +1567,6 @@ | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "taffybar", | ||||
|         "ref": "old-master", | ||||
|         "repo": "taffybar", | ||||
|         "type": "github" | ||||
|       } | ||||
| @@ -1724,11 +1590,11 @@ | ||||
|     }, | ||||
|     "unstable": { | ||||
|       "locked": { | ||||
|         "lastModified": 1727122398, | ||||
|         "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", | ||||
|         "lastModified": 1715266358, | ||||
|         "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", | ||||
|         "rev": "f1010e0469db743d14519a1efd37e23f8513d714", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -1740,8 +1606,8 @@ | ||||
|     }, | ||||
|     "vscode-server": { | ||||
|       "inputs": { | ||||
|         "flake-utils": "flake-utils_6", | ||||
|         "nixpkgs": "nixpkgs_11" | ||||
|         "flake-utils": "flake-utils_7", | ||||
|         "nixpkgs": "nixpkgs_9" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1713958148, | ||||
| @@ -1771,11 +1637,11 @@ | ||||
|         "unstable": "unstable" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1726451364, | ||||
|         "narHash": "sha256-6WKgYq0+IzPSXxVl1MfODIVwEbd3Sw0zc5sMSOyzA8I=", | ||||
|         "lastModified": 1714229485, | ||||
|         "narHash": "sha256-AOy87dJL0T9wSe1kM0tTzFlV++JwmoGW4BfBXzIUbsI=", | ||||
|         "owner": "xmonad", | ||||
|         "repo": "xmonad", | ||||
|         "rev": "a4140b93497333ec7f3127ee4dabcb8ae8a721b6", | ||||
|         "rev": "cde1a25bca9b7aeeb24af73588221f5f54ae770b", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|   | ||||
| @@ -1,10 +1,9 @@ | ||||
| { | ||||
|   inputs = { | ||||
|     nixtheplanet.url = "github:matthewcroughan/nixtheplanet"; | ||||
|     railbird-secrets = { | ||||
|       url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"; | ||||
|     }; | ||||
|     nixos-hardware = { url = "github:colonelpanic8/nixos-hardware/add-g834jzr"; }; | ||||
|     nixos-hardware = { url = "github:colonelpanic8/nixos-hardware"; }; | ||||
|  | ||||
|     nixpkgs = { | ||||
|       url = "github:NixOS/nixpkgs/nixos-unstable"; | ||||
| @@ -35,7 +34,7 @@ | ||||
|     }; | ||||
|  | ||||
|     taffybar = { | ||||
|       url = "github:taffybar/taffybar/old-master"; | ||||
|       url = "github:taffybar/taffybar"; | ||||
|       inputs = { | ||||
|         nixpkgs.follows = "nixpkgs"; | ||||
|         flake-utils.follows = "flake-utils"; | ||||
| @@ -105,6 +104,8 @@ | ||||
|  | ||||
|     vscode-server.url = "github:nix-community/nixos-vscode-server"; | ||||
|  | ||||
|     nixpkgs-regression = { url = "github:NixOS/nixpkgs"; }; | ||||
|  | ||||
|     nixified-ai = { url = "github:nixified-ai/flake"; }; | ||||
|  | ||||
|     nixos-wsl = { url = "github:nix-community/NixOS-WSL"; }; | ||||
| @@ -113,7 +114,7 @@ | ||||
|   }; | ||||
|  | ||||
|   outputs = inputs@{ | ||||
|     self, nixpkgs, nixos-hardware, home-manager, taffybar, xmonad, nixtheplanet, | ||||
|     self, nixpkgs, nixos-hardware, home-manager, taffybar, xmonad, | ||||
|     xmonad-contrib, notifications-tray-icon, nix, agenix, imalison-taffybar, ... | ||||
|   }: | ||||
|   let | ||||
| @@ -125,7 +126,7 @@ | ||||
|       name = machineNameFromFilename filename; | ||||
|       value = { | ||||
|         modules = [ | ||||
|           (machinesFilepath + ("/" + filename)) agenix.nixosModules.default nixtheplanet.nixosModules.macos-ventura | ||||
|           (machinesFilepath + ("/" + filename)) agenix.nixosModules.default | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { pkgs, makeEnable, config, ... }: | ||||
| makeEnable config "myModules.fonts" true { | ||||
| makeEnable config "modules.fonts" true { | ||||
|   # Enable the gtk icon cache | ||||
|   gtk.iconCache.enable = true; | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, pkgs, makeEnable, ... }: | ||||
| makeEnable config "myModules.games" false { | ||||
| makeEnable config "modules.games" false { | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     steam | ||||
|     # heroic | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| { pkgs, config, makeEnable, ... }: | ||||
| makeEnable config "myModules.gitea-runner" false { | ||||
| makeEnable config "modules.gitea-runner" false { | ||||
|   age.secrets.gitea-runner-token = { | ||||
|     file = ./secrets/gitea-runner-token.age; | ||||
|     file = ./secrets/gitea-runner-token.${config.networking.hostName}.age; | ||||
|     group = "docker"; | ||||
|   }; | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, makeEnable, ... }: | ||||
| makeEnable config "myModules.gitea" false { | ||||
| makeEnable config "modules.gitea" false { | ||||
|  | ||||
|   services.gitea = { | ||||
|     enable = true; | ||||
| @@ -13,7 +13,6 @@ makeEnable config "myModules.gitea" false { | ||||
|       SSH_PORT = 1123; | ||||
|       HTTP_PORT = 3001; | ||||
|       ROOT_URL = "https://dev.railbird.ai"; | ||||
|       DISABLE_REGISTRATION = true; | ||||
|     }; | ||||
|     settings.actions = { | ||||
|       ENABLED = true; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, makeEnable, ... }: | ||||
| makeEnable config "myModules.gnome" false { | ||||
| makeEnable config "modules.gnome" false { | ||||
|   services.xserver = { | ||||
|     desktopManager.gnome.enable = true; | ||||
|     displayManager.gdm.enable = true; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| { pkgs, ... }: | ||||
| { pkgs, config, specialArgs, ... }: | ||||
| { | ||||
|   xsession = { | ||||
|     enable = true; | ||||
|   | ||||
| @@ -1,96 +0,0 @@ | ||||
| { | ||||
|   pkgs, | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: | ||||
| with lib; let | ||||
|   cfg = config.myModules.railbird-k3s; | ||||
|   mount-path = "/var/lib/railbird/bucket"; | ||||
|   bucket-name = "railbird-dev-videos"; | ||||
| in { | ||||
|   options = { | ||||
|     myModules.railbird-k3s = { | ||||
|       enable = mkEnableOption "railbird k3s"; | ||||
|       serverAddr = mkOption { | ||||
|         type = lib.types.str; | ||||
|         default = ""; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|   config = mkIf cfg.enable { | ||||
|     age.secrets."1896Folsom-k3s-token.age".file = ./secrets/1896Folsom-k3s-token.age; | ||||
|     age.secrets."k3s-registry.yaml.age".file = ./secrets/k3s-registry.yaml.age; | ||||
|     age.secrets.api-service-key = { | ||||
|       file = ./secrets/api_service_account_key.json.age; | ||||
|       owner = "railbird"; | ||||
|       group = "users"; | ||||
|     }; | ||||
|     environment.etc."rancher/k3s/registries.yaml".source = config.age.secrets."k3s-registry.yaml.age".path; | ||||
|     services.dockerRegistry = { | ||||
|       enable = true; | ||||
|       listenAddress = "0.0.0.0"; | ||||
|       port = 5279; | ||||
|       enableDelete = true; | ||||
|       enableGarbageCollect = true; | ||||
|     }; | ||||
|     systemd.services.mount-railbird-bucket = { | ||||
|       after = ["agenix.service"]; | ||||
|       description = "Mount railbird bucket"; | ||||
|       serviceConfig = { | ||||
|         Type = "simple"; | ||||
|         RemainAfterExit = true; | ||||
|         ExecStartPre = [ | ||||
|           "-${pkgs.util-linux}/bin/umount -f ${mount-path}" | ||||
|           "${pkgs.coreutils}/bin/mkdir -p ${mount-path}" | ||||
|           "${pkgs.coreutils}/bin/chown railbird:users ${mount-path}" | ||||
|           "${pkgs.coreutils}/bin/chmod 0775 ${mount-path}" | ||||
|         ]; | ||||
|         ExecStart = "${pkgs.gcsfuse}/bin/gcsfuse --implicit-dirs --key-file ${config.age.secrets.api-service-key.path} ${bucket-name} ${mount-path}"; | ||||
|         User = "root"; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     services.k3s = { | ||||
|       enable = true; | ||||
|       clusterInit = cfg.serverAddr == ""; | ||||
|       serverAddr = cfg.serverAddr; | ||||
|       configPath = pkgs.writeTextFile { | ||||
|         name = "k3s-config.yaml"; | ||||
|         text = '' | ||||
|           kubelet-arg: | ||||
|           - "eviction-hard=nodefs.available<2Gi" | ||||
|           - "eviction-soft=nodefs.available<5Gi" | ||||
|           - "eviction-soft-grace-period=nodefs.available=5m" | ||||
|         ''; | ||||
|       }; | ||||
|       tokenFile = config.age.secrets."1896Folsom-k3s-token.age".path; | ||||
|       extraFlags = [ | ||||
|         "--tls-san ryzen-shine.local" | ||||
|         "--tls-san nixquick.local" | ||||
|         "--tls-san biskcomp.local" | ||||
|         "--tls-san jimi-hendnix.local" | ||||
|         "--tls-san dev.railbird.ai" | ||||
|         "--node-label nixos-nvidia-cdi=enabled" | ||||
|       ]; | ||||
|       containerdConfigTemplate = '' | ||||
|         {{ template "base" . }} | ||||
|  | ||||
|         [plugins] | ||||
|         "io.containerd.grpc.v1.cri".enable_cdi = true | ||||
|  | ||||
|         [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia] | ||||
|         privileged_without_host_devices = false | ||||
|         runtime_engine = "" | ||||
|         runtime_root = "" | ||||
|         runtime_type = "io.containerd.runc.v2" | ||||
|  | ||||
|         [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options] | ||||
|         BinaryName = "/run/current-system/sw/bin/nvidia-container-runtime" | ||||
|       ''; | ||||
|       gracefulNodeShutdown = { | ||||
|         enable = true; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -1,11 +1,10 @@ | ||||
| { pkgs, inputs, config, makeEnable, ... }: | ||||
| makeEnable config "myModules.kat" false { | ||||
| makeEnable config "modules.kat" false { | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     bitwarden | ||||
|     obsidian | ||||
|     obs-studio | ||||
|     ffmpeg | ||||
|     code-cursor | ||||
|   ]; | ||||
|  | ||||
|   environment.extraInit = '' | ||||
|   | ||||
| @@ -23,7 +23,6 @@ rec { | ||||
|     "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOVGIGnpkU7HNQ/zl/Ffi562M+laWY9/yIjB63BCMiTS kat@nixcomp.local" | ||||
|     "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3tlMePru6ZlSuf8yUii3N1dy3WwJnSQAt3EgETkctK kat@jay-lenovo.local" | ||||
|     "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFrOYD3ReFc2+xFUylBFHREcm1lO7BRJGW5JrOoY3I8s ivanm@strixi-minaj" | ||||
|     "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINYy93265G59aA1ksckjqlfeHq0vpEpzC8BwqCrpeXdh kat@Kats-Mac-mini.local" | ||||
|   ]; | ||||
|   deanKeys = [ | ||||
|     "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICDvbEVL+y7eV4+mtxOuHwyomBBQ6uYMesctstua20+e deanwenstrand@deans-mbp-2.lan" | ||||
| @@ -56,6 +55,4 @@ rec { | ||||
|   benKeys = [ | ||||
|     "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAJ6lD0c+frh2vzQjvsrsmJpwM1ovaY59m5NNPml5G+E benjamin.j.corner@gmail.com" | ||||
|   ]; | ||||
|   interviewKeys = [ | ||||
|   ]; | ||||
| } | ||||
|   | ||||
| @@ -1,23 +0,0 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDyTCCAjGgAwIBAgIRAMQBZiVjA5BGSkDldScI9cMwDQYJKoZIhvcNAQELBQAw | ||||
| LzEtMCsGA1UEAxMkM2I2N2M2NzgtNzI5My00YTIzLTg3ZWItY2NiMTZjYWFkMzFm | ||||
| MB4XDTI0MDkyOTIwNTAzNloXDTI5MDkyODIwNTIzNlowOTEVMBMGA1UEChMMc3lz | ||||
| dGVtOm5vZGVzMSAwHgYDVQQDExdzeXN0ZW06bm9kZTpyeXplbi1zaGluZTCCASIw | ||||
| DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANIOfbq05IIdgX2jXYLaEt66rkXp | ||||
| NlqPNfh6v9nL1Aw6PSM3DEIWXVko8AyduRF4kXNO6xc6l/Rzk03w3qSvJpWpALGD | ||||
| JjslgRL4VJWUC6/QydsCO9io7SoUEmXFtDcsW6DftFejosr+56ZnVFrz5MMzfUAL | ||||
| Ix6n83NJvXZ8f9oHSX8TFW34ZClLxDq2fprFIs+D2QlFRE50Jr/Q8gPI2OSQDUBW | ||||
| DFdQrjt81bLs6doQipUqvHb4/Ms49agHek1ceWIMf+KZWoao5KNQTBe6XL2BUgA/ | ||||
| MS3ZvQppDDTygA0QkgdtOJyG2lsrAmd7LEXTr9ilsqLV3YQMMKhCifwINa0CAwEA | ||||
| AaNWMFQwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1Ud | ||||
| EwEB/wQCMAAwHwYDVR0jBBgwFoAUjvcbOeZ4QIk53EkATOaOFiAZUq0wDQYJKoZI | ||||
| hvcNAQELBQADggGBAELWgmdmg9TKjDDqmF6pYr1j43gZYclXW4sB509itSiIeltX | ||||
| Isrvn5R5ok0W5Jcl+7QMhpntqIKJi26OqbcdBhqlaVURkBkbrx8aegkWJfPO+Fzz | ||||
| NyyiIpk7KQzGy6N5//jfMPZtJfQEQZwMenW0cj7F0QHOdVZy90+JNr2P3uV3Ad7u | ||||
| WZuYpbOFjOeQg1hJsX8wEU4KJyptn/kXhM+CqAnQ4S+k2wpjECD8KpWKAmpJWZg0 | ||||
| RaBPyHZSmWnbXqs4LU6ERaZJxZQG0ODuA18DmGfaAkUUUvE2J0ploc2Y8Xl4zUWW | ||||
| Ivwslyx30YO3J9qI30d9tTQw/A0vHCoDNDbCg7lorZqP3TiTG9ANLndPqqg6inYU | ||||
| yfj612//JrO8w/4qh7cxR03P35aK0paLC74FaKLtZ5CwPK3BAW/0Zhv5fH4io6hE | ||||
| rfJmcjhbKD0Cwr9Dn6wVFz/a33H+0vMohHrVlDk4bSDIymbuJcZpYgR8n5WNQbGu | ||||
| nwjiLXCnVxcVjkcj2w== | ||||
| -----END CERTIFICATE----- | ||||
| @@ -1,22 +0,0 @@ | ||||
| { config, pkgs, makeEnable, ... }: | ||||
| makeEnable config "myModules.kubelet" false { | ||||
|   age.secrets."api_service_account_key.json.age".file = ./secrets/api_service_account_key.json.age; | ||||
|   services.kubernetes.kubelet = { | ||||
|     enable = true; | ||||
|     kubeconfig = { | ||||
|       server = "https://34.31.205.230"; | ||||
|       caFile = ./railbird-kubernetes.crt; | ||||
|       certFile = ./kubelet-client.crt; | ||||
|       keyFile = config.age.secrets."api_service_account_key.json.age".path; | ||||
|     }; | ||||
|     registerNode = true; | ||||
|     cni = { | ||||
|       packages = [ pkgs.cni-plugins pkgs.calico-cni-plugin ]; | ||||
|     }; | ||||
|     extraOpts = '' | ||||
|       --fail-swap-on=false | ||||
|       # --container-runtime=remote | ||||
|       # --container-runtime-endpoint=unix:///run/containerd/containerd.sock | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
| @@ -6,16 +6,16 @@ | ||||
|     inputs.nixos-hardware.nixosModules.dell-xps-17-9700-nvidia | ||||
|   ]; | ||||
|  | ||||
|   myModules.base.enable = true; | ||||
|   myModules.desktop.enable = true; | ||||
|   myModules.xmonad.enable = true; | ||||
|   myModules.extra.enable = false; | ||||
|   myModules.code.enable = true; | ||||
|   myModules.games.enable = false; | ||||
|   myModules.syncthing.enable = true; | ||||
|   myModules.fonts.enable = true; | ||||
|   myModules.nixified-ai.enable = false; | ||||
|   myModules.gitea-runner.enable = false; | ||||
|   modules.base.enable = true; | ||||
|   modules.desktop.enable = true; | ||||
|   modules.xmonad.enable = true; | ||||
|   modules.extra.enable = false; | ||||
|   modules.code.enable = true; | ||||
|   modules.games.enable = false; | ||||
|   modules.syncthing.enable = true; | ||||
|   modules.fonts.enable = true; | ||||
|   modules.nixified-ai.enable = false; | ||||
|   modules.gitea-runner.enable = false; | ||||
|  | ||||
|   hardware.enableRedistributableFirmware = true; | ||||
|  | ||||
|   | ||||
| @@ -8,10 +8,10 @@ | ||||
|     sublime | ||||
|     vlc | ||||
|   ]; | ||||
|   myModules.desktop.enable = false; | ||||
|   myModules.plasma.enable = false; | ||||
|   modules.desktop.enable = false; | ||||
|   modules.plasma.enable = false; | ||||
|   imalison.nixOverlay.enable = false; | ||||
|   myModules.wsl.enable = true; | ||||
|   modules.wsl.enable = true; | ||||
|  | ||||
|   networking.hostName = "bencbox"; | ||||
|  | ||||
|   | ||||
| @@ -13,31 +13,25 @@ in | ||||
|     extraGroups = ["syncthing"]; | ||||
|   }; | ||||
|  | ||||
|   myModules.raspberry-pi.enable = true; | ||||
|   modules.raspberry-pi.enable = true; | ||||
|  | ||||
|   myModules.base.enable = true; | ||||
|   myModules.desktop.enable = true; | ||||
|   myModules.xmonad.enable = false; | ||||
|   myModules.extra.enable = false; | ||||
|   myModules.code.enable = true; | ||||
|   myModules.games.enable = false; | ||||
|   myModules.syncthing.enable = true; | ||||
|   myModules.fonts.enable = true; | ||||
|   myModules.nixified-ai.enable = false; | ||||
|   myModules.cache-server = { | ||||
|   modules.base.enable = true; | ||||
|   modules.desktop.enable = true; | ||||
|   modules.xmonad.enable = false; | ||||
|   modules.extra.enable = false; | ||||
|   modules.code.enable = true; | ||||
|   modules.games.enable = false; | ||||
|   modules.syncthing.enable = true; | ||||
|   modules.fonts.enable = true; | ||||
|   modules.nixified-ai.enable = false; | ||||
|   modules.cache-server = { | ||||
|     enable = false; | ||||
|     host-string = biskcomp-nginx-hostnames; | ||||
|     port = 80; | ||||
|     path = "/nix-cache"; | ||||
|   }; | ||||
|   myModules.gitea.enable = true; | ||||
|   myModules.gitea-runner.enable = false; | ||||
|  | ||||
|   myModules.railbird-k3s = { | ||||
|     enable = true; | ||||
|     serverAddr = "https://dev.railbird.ai:6443"; | ||||
|   }; | ||||
|   services.k3s.disableAgent = true; | ||||
|   modules.gitea.enable = true; | ||||
|   modules.gitea-runner.enable = false; | ||||
|  | ||||
|   services.vaultwarden = { | ||||
|     enable = true; | ||||
| @@ -91,16 +85,6 @@ in | ||||
|           ''; | ||||
|         }; | ||||
|       }; | ||||
|       "docs.railbird.ai" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         root = "/var/lib/syncthing/railbird/docs"; | ||||
|         locations."/" = { | ||||
|           extraConfig = '' | ||||
|             autoindex on; | ||||
|           ''; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   | ||||
| @@ -5,15 +5,15 @@ | ||||
|     ../configuration.nix | ||||
|   ]; | ||||
|  | ||||
|   myModules.base.enable = true; | ||||
|   myModules.desktop.enable = true; | ||||
|   myModules.xmonad.enable = false; | ||||
|   myModules.extra.enable = false; | ||||
|   myModules.code.enable = true; | ||||
|   myModules.games.enable = false; | ||||
|   myModules.syncthing.enable = true; | ||||
|   myModules.fonts.enable = true; | ||||
|   myModules.nixified-ai.enable = false; | ||||
|   modules.base.enable = true; | ||||
|   modules.desktop.enable = true; | ||||
|   modules.xmonad.enable = false; | ||||
|   modules.extra.enable = false; | ||||
|   modules.code.enable = true; | ||||
|   modules.games.enable = false; | ||||
|   modules.syncthing.enable = true; | ||||
|   modules.fonts.enable = true; | ||||
|   modules.nixified-ai.enable = false; | ||||
|  | ||||
|   hardware.enableRedistributableFirmware = true; | ||||
|  | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
|   ]; | ||||
|   services.xserver.enable = true; | ||||
|   environment.systemPackages = with pkgs; [sublime]; | ||||
|   myModules.desktop.enable = false; | ||||
|   myModules.plasma.enable = false; | ||||
|   modules.desktop.enable = false; | ||||
|   modules.plasma.enable = false; | ||||
|   imalison.nixOverlay.enable = false; | ||||
|   myModules.wsl.enable = true; | ||||
|   modules.wsl.enable = true; | ||||
|  | ||||
|   networking.hostName = "dean-zephyrus"; | ||||
|  | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|   ]; | ||||
|  | ||||
|   imalison.nixOverlay.enable = false; | ||||
|   myModules.wsl.enable = true; | ||||
|   modules.wsl.enable = true; | ||||
|  | ||||
|   networking.hostName = "jay-lenovo-wsl"; | ||||
|  | ||||
|   | ||||
| @@ -11,7 +11,6 @@ | ||||
|     android-studio | ||||
|     linuxPackages_latest.perf | ||||
|     zenmonitor | ||||
|     code-cursor | ||||
|   ]; | ||||
|  | ||||
|   hardware.enableRedistributableFirmware = true; | ||||
| @@ -27,7 +26,7 @@ | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
|  | ||||
|   myModules.postgres.enable = true; | ||||
|   modules.postgres.enable = true; | ||||
|  | ||||
|   networking.networkmanager.enable = true; | ||||
|  | ||||
|   | ||||
| @@ -5,24 +5,23 @@ | ||||
|     ../configuration.nix | ||||
|   ]; | ||||
|  | ||||
|   myModules.railbird-k3s = { | ||||
|     enable = true; | ||||
|     serverAddr = "https://ryzen-shine.local:6443"; | ||||
|   }; | ||||
|   myModules.base.enable = true; | ||||
|   myModules.desktop.enable = true; | ||||
|   myModules.xmonad.enable = true; | ||||
|   myModules.extra.enable = false; | ||||
|   myModules.code.enable = true; | ||||
|   myModules.games.enable = false; | ||||
|   myModules.syncthing.enable = true; | ||||
|   myModules.fonts.enable = true; | ||||
|   myModules.nixified-ai.enable = false; | ||||
|   myModules.gitea-runner.enable = true; | ||||
|   myModules.postgres.enable = true; | ||||
|   modules.base.enable = true; | ||||
|   modules.desktop.enable = true; | ||||
|   modules.xmonad.enable = true; | ||||
|   modules.extra.enable = false; | ||||
|   modules.code.enable = true; | ||||
|   modules.games.enable = false; | ||||
|   modules.syncthing.enable = true; | ||||
|   modules.fonts.enable = true; | ||||
|   modules.nixified-ai.enable = false; | ||||
|   modules.gitea-runner.enable = true; | ||||
|   modules.postgres.enable = true; | ||||
|  | ||||
|   hardware.enableRedistributableFirmware = true; | ||||
|   myModules.nvidia.enable = true; | ||||
|  | ||||
|   # install nvidia drivers in addition to intel one | ||||
|   hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; | ||||
|   hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; | ||||
|  | ||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; | ||||
|   boot.kernelModules = [ "kvm-intel" ]; | ||||
|   | ||||
| @@ -4,25 +4,13 @@ | ||||
|     ../configuration.nix | ||||
|   ]; | ||||
|  | ||||
|   services.macos-ventura = { | ||||
|     enable = true; | ||||
|     openFirewall = true; | ||||
|     vncListenAddr = "0.0.0.0"; | ||||
|   }; | ||||
|  | ||||
|   features.full.enable = true; | ||||
|   myModules.cache-server = { | ||||
|   modules.cache-server = { | ||||
|     enable = true; | ||||
|     port = 3090; | ||||
|   }; | ||||
|   myModules.gitea-runner.enable = true; | ||||
|   myModules.vscode.enable = true; | ||||
|   myModules.kat.enable = true; | ||||
|   myModules.nvidia.enable = true; | ||||
|   myModules.railbird-k3s = { | ||||
|     enable = true; | ||||
|     serverAddr = "https://dev.railbird.ai:6443"; | ||||
|   }; | ||||
|   modules.gitea-runner.enable = true; | ||||
|   modules.vscode.enable = true; | ||||
|  | ||||
|   networking.hostName = "nixquick"; | ||||
|  | ||||
| @@ -33,6 +21,15 @@ | ||||
|   boot.extraModulePackages = [ ]; | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|  | ||||
|   # install nvidia drivers in addition to intel one | ||||
|   hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; | ||||
|   hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; | ||||
|   services.xserver = { | ||||
|     videoDrivers = [ "nvidia" ]; | ||||
|   }; | ||||
|  | ||||
|   hardware.opengl.driSupport32Bit = true; | ||||
|  | ||||
|   hardware.nvidia.modesetting.enable = true; | ||||
|  | ||||
|   # This also enables v4l2loopback | ||||
|   | ||||
| @@ -12,36 +12,58 @@ | ||||
|   boot.kernelModules = [ "kvm-amd" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   modules.postgres.enable = true; | ||||
|  | ||||
|   services.k3s.role = "agent"; | ||||
|   services.k3s.extraFlags = lib.mkForce ["--node-label nixos-nvidia-cdi=enabled"]; | ||||
|   hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; | ||||
|   hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; | ||||
|   services.xserver = { | ||||
|     videoDrivers = [ "nvidia" ]; | ||||
|   }; | ||||
|  | ||||
|   # Enable OpenGL | ||||
|   hardware.opengl = { | ||||
|     enable = true; | ||||
|     driSupport = true; | ||||
|     driSupport32Bit = true; | ||||
|   }; | ||||
|  | ||||
|   hardware.nvidia = { | ||||
|  | ||||
|     # Modesetting is required. | ||||
|     modesetting.enable = true; | ||||
|  | ||||
|     # Nvidia power management. Experimental, and can cause sleep/suspend to fail. | ||||
|     powerManagement.enable = false; | ||||
|     # Fine-grained power management. Turns off GPU when not in use. | ||||
|     # Experimental and only works on modern Nvidia GPUs (Turing or newer). | ||||
|     powerManagement.finegrained = false; | ||||
|  | ||||
|     # Use the NVidia open source kernel module (not to be confused with the | ||||
|     # independent third-party "nouveau" open source driver). | ||||
|     # Support is limited to the Turing and later architectures. Full list of | ||||
|     # supported GPUs is at: | ||||
|     # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus | ||||
|     # Only available from driver 515.43.04+ | ||||
|     # Currently alpha-quality/buggy, so false is currently the recommended setting. | ||||
|     open = false; | ||||
|  | ||||
|     # Enable the Nvidia settings menu, | ||||
| 	  # accessible via `nvidia-settings`. | ||||
|     nvidiaSettings = true; | ||||
|  | ||||
|     # Optionally, you may need to select the appropriate driver version for your specific GPU. | ||||
|     package = config.boot.kernelPackages.nvidiaPackages.stable; | ||||
|   }; | ||||
|  | ||||
|   features.full.enable = false; | ||||
|   myModules.base.enable = true; | ||||
|   myModules.desktop.enable = true; | ||||
|   myModules.xmonad.enable = false; | ||||
|   myModules.code.enable = true; | ||||
|   myModules.syncthing.enable = true; | ||||
|   myModules.fonts.enable = true; | ||||
|   myModules.plasma.enable = true; | ||||
|   myModules.nvidia.enable = true; | ||||
|   myModules.gitea-runner.enable = true; | ||||
|   myModules.railbird-k3s = { | ||||
|     enable = false; | ||||
|     serverAddr = "https://dev.railbird.ai:6443"; | ||||
|   }; | ||||
|   modules.base.enable = true; | ||||
|   modules.desktop.enable = true; | ||||
|   modules.xmonad.enable = false; | ||||
|   modules.gnome.enable = true; | ||||
|   modules.code.enable = true; | ||||
|   modules.syncthing.enable = true; | ||||
|   modules.fonts.enable = true; | ||||
|   modules.plasma.enable = false; | ||||
|   modules.gitea-runner.enable = true; | ||||
|  | ||||
|   fileSystems."/" = | ||||
|     { device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae"; | ||||
| @@ -65,7 +87,7 @@ | ||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||
|   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||
|   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||
|  | ||||
|    | ||||
|   home-manager.users = forEachUser { | ||||
|      home.stateVersion = "23.11"; | ||||
|   }; | ||||
|   | ||||
| @@ -6,17 +6,14 @@ | ||||
|   ]; | ||||
|  | ||||
|   features.full.enable = true; | ||||
|   myModules.kubelet.enable = false; | ||||
|   myModules.nvidia.enable = true; | ||||
|   # Needed for now because monitors have different refresh rates | ||||
|   myModules.xmonad.picom.vSync.enable = false; | ||||
|   myModules.cache-server = { | ||||
|   modules.xmonad.picom.vSync.enable = false; | ||||
|   modules.cache-server = { | ||||
|     enable = true; | ||||
|     port = 3090; | ||||
|   }; | ||||
|   myModules.gitea-runner.enable = true; | ||||
|   myModules.postgres.enable = true; | ||||
|   myModules.railbird-k3s.enable = true; | ||||
|   modules.gitea-runner.enable = true; | ||||
|   modules.postgres.enable = true; | ||||
|  | ||||
|   boot.loader.systemd-boot.configurationLimit = 5; | ||||
|  | ||||
| @@ -48,15 +45,15 @@ | ||||
|   boot.initrd.kernelModules = [ "dm-snapshot" ]; | ||||
|  | ||||
|   # install nvidia drivers in addition to intel one | ||||
|   hardware.graphics.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; | ||||
|   hardware.graphics.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; | ||||
|   hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; | ||||
|   hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; | ||||
|   services.xserver = { | ||||
|     videoDrivers = [ "nvidia" ]; | ||||
|   }; | ||||
|  | ||||
|   hardware.nvidia.modesetting.enable = true; | ||||
|  | ||||
|   hardware.graphics.enable32Bit = true; | ||||
|   hardware.opengl.driSupport32Bit = true; | ||||
|  | ||||
|   boot.kernelModules = [ "kvm-amd" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|     ../configuration.nix | ||||
|   ]; | ||||
|  | ||||
|   myModules.wsl.enable = true; | ||||
|   modules.wsl.enable = true; | ||||
|  | ||||
|   networking.hostName = "strixi-minaj-wsl"; | ||||
|  | ||||
|   | ||||
| @@ -3,20 +3,18 @@ | ||||
| { | ||||
|   imports = [ | ||||
|     ../configuration.nix | ||||
|     inputs.nixos-hardware.nixosModules.asus-rog-strix-g834jzr | ||||
|   ]; | ||||
|  | ||||
|   hardware.nvidia.open = false; | ||||
|   myModules.base.enable = true; | ||||
|   myModules.desktop.enable = true; | ||||
|   myModules.xmonad.enable = true; | ||||
|   myModules.extra.enable = false; | ||||
|   myModules.code.enable = true; | ||||
|   myModules.games.enable = false; | ||||
|   myModules.syncthing.enable = true; | ||||
|   myModules.fonts.enable = true; | ||||
|   myModules.nixified-ai.enable = false; | ||||
|   myModules.gitea-runner.enable = false; | ||||
|   modules.base.enable = true; | ||||
|   modules.desktop.enable = true; | ||||
|   modules.xmonad.enable = true; | ||||
|   modules.extra.enable = false; | ||||
|   modules.code.enable = true; | ||||
|   modules.games.enable = false; | ||||
|   modules.syncthing.enable = true; | ||||
|   modules.fonts.enable = true; | ||||
|   modules.nixified-ai.enable = false; | ||||
|   modules.gitea-runner.enable = false; | ||||
|  | ||||
|   hardware.enableRedistributableFirmware = true; | ||||
|  | ||||
| @@ -25,15 +23,21 @@ | ||||
|   ]; | ||||
|  | ||||
|   services.xserver.dpi = 96; | ||||
|   boot.kernelPackages = pkgs.linuxPackages_testing; | ||||
|   boot.kernelPackages = pkgs.linuxPackages_latest; | ||||
|   boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ]; | ||||
|   boot.initrd.kernelModules = [ ]; | ||||
|   boot.kernelModules = [ "kvm-intel" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
|   hardware.graphics = { | ||||
|     enable = true; | ||||
|     enable32Bit = true; | ||||
|   services.xserver = { | ||||
|     videoDrivers = [ "nvidia" ]; | ||||
|   }; | ||||
|   hardware.opengl = { | ||||
|     enable = true; | ||||
|     driSupport = true; | ||||
|     driSupport32Bit = true; | ||||
|   }; | ||||
|   hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.production; | ||||
|   hardware.nvidia.modesetting.enable = true; | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
|  | ||||
|   | ||||
| @@ -18,7 +18,6 @@ | ||||
|     }; | ||||
|     home-manager.useGlobalPkgs = true; | ||||
|     home-manager.useUserPackages = true; | ||||
|     home-manager.backupFileExtension = "backup"; | ||||
|  | ||||
|     nix = rec { | ||||
|       extraOptions = '' | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { inputs, config, specialArgs, ... }: | ||||
| specialArgs.makeEnable config "myModules.nixified-ai" false { | ||||
| specialArgs.makeEnable config "modules.nixified-ai" false { | ||||
|   imports = [ | ||||
|     inputs.nixified-ai.nixosModules.invokeai | ||||
|   ]; | ||||
|   | ||||
| @@ -1,18 +0,0 @@ | ||||
| { config, pkgs, makeEnable, ... }: | ||||
|  | ||||
| makeEnable config "myModules.nvidia" false { | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     nvidia-container-toolkit | ||||
|   ]; | ||||
|   hardware.nvidia-container-toolkit = { | ||||
|     enable = true; | ||||
|     mount-nvidia-executables = true; | ||||
|   }; | ||||
|   hardware.nvidia.open = false; | ||||
|   hardware.graphics.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; | ||||
|   hardware.graphics.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; | ||||
|   hardware.graphics.enable32Bit = true; | ||||
|   services.xserver = { | ||||
|     videoDrivers = [ "nvidia" ]; | ||||
|   }; | ||||
| } | ||||
| @@ -1,6 +1,6 @@ | ||||
| { lib, ... }: { | ||||
|   options = { | ||||
|     myModules.xmonad.picom.vSync.enable = lib.mkOption { | ||||
|     modules.xmonad.picom.vSync.enable = lib.mkOption { | ||||
|       default = true; | ||||
|       type = lib.types.bool; | ||||
|     }; | ||||
|   | ||||
| @@ -17,16 +17,15 @@ final: prev: { | ||||
|     }; | ||||
|   }); | ||||
|  | ||||
|   # picom = prev.picom.overrideAttrs (old: { | ||||
|   #   src = prev.fetchFromGitHub { | ||||
|   #     repo = "picom"; | ||||
|   #     owner = "dccsillag"; | ||||
|   #     rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5"; | ||||
|   #     sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8=="; | ||||
|   #   }; | ||||
|   #   nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre final.gnugrep.pcre2 final.libpcre]; | ||||
|   #   buildInputs = old.buildInputs ++ [final.pcre]; | ||||
|   # }); | ||||
|   picom = prev.picom.overrideAttrs (old: { | ||||
|     src = prev.fetchFromGitHub { | ||||
|       repo = "picom"; | ||||
|       owner = "dccsillag"; | ||||
|       rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5"; | ||||
|       sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8=="; | ||||
|     }; | ||||
|     nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre]; | ||||
|   }); | ||||
|  | ||||
|   expressvpn = prev.expressvpn.overrideAttrs (_: { | ||||
|     src = prev.fetchurl { | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, makeEnable, ... }: | ||||
| makeEnable config "myModules.plasma" true { | ||||
| makeEnable config "modules.plasma" true { | ||||
|   services.displayManager.sddm.enable = true; | ||||
|   services.xserver = { | ||||
|     desktopManager.plasma5.enable = true; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { pkgs, config, makeEnable, realUsers, ... }: | ||||
| makeEnable config "myModules.postgres" true { | ||||
| makeEnable config "modules.postgres" true { | ||||
|   services.postgresql = { | ||||
|     enable = true; | ||||
|     package = pkgs.postgresql_15; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { pkgs, config, makeEnable, realUsers, ... }: | ||||
| makeEnable config "myModules.rabbitmq" true { | ||||
| makeEnable config "modules.rabbitmq" true { | ||||
|   services.rabbitmq = { | ||||
|     enable = true; | ||||
|   }; | ||||
|   | ||||
| @@ -1,25 +0,0 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIIELTCCApWgAwIBAgIRALNxOT7J7N/eK6edp9LbKAIwDQYJKoZIhvcNAQELBQAw | ||||
| LzEtMCsGA1UEAxMkM2I2N2M2NzgtNzI5My00YTIzLTg3ZWItY2NiMTZjYWFkMzFm | ||||
| MCAXDTIzMTIyOTE5NTQ0MloYDzIwNTMxMjIxMjA1NDQyWjAvMS0wKwYDVQQDEyQz | ||||
| YjY3YzY3OC03MjkzLTRhMjMtODdlYi1jY2IxNmNhYWQzMWYwggGiMA0GCSqGSIb3 | ||||
| DQEBAQUAA4IBjwAwggGKAoIBgQCUYUuTrpDbwUS2B3SYUoa7LI5mi8NNr0lDe1w4 | ||||
| 3yPpVnu6ubvnTNm2j/v88HYwEjlppEg4HjhP7YEJ8gsGdgUCpIaPWTpifVmA7E4o | ||||
| 2DbJDiePkkUGkNL0whCClOOcO0hyxdk9Pol5wRzci0l6zSalE6DB4rJrmB5Ppl/A | ||||
| t2KAVVqpwbynmbijr4yZh7Bp7LfaIrFthlv2ZPEjLfPLz7YthBw9/iUt94mLMyWZ | ||||
| BpygA5y/CocQQnnFMnU1o0eUd37YL7zErfIxx/AmL10Sq0qdFXiYOJJqubURbdS8 | ||||
| DZ6dyHdX+UlxPls2Rlx9nDaiNGFJdzqHJzDdOlzN3kkdDQoO8xUdH9ekFU7rOwkP | ||||
| 5NpubSwrd1FOGHh+EknugnEQD4Oip/YQ7IUj3Afm5Ag2la9k4WJRgjACbkQ2+k9I | ||||
| sFmPmmMVHn9nepCMiYQMjX7ApZw0isDPeVK5EuQeImgu7uNoV8R5VwG0XoBCXz4S | ||||
| UqYv11uEsMqFu07Zwlznsxnm0uECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgIEMA8G | ||||
| A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI73GznmeECJOdxJAEzmjhYgGVKtMA0G | ||||
| CSqGSIb3DQEBCwUAA4IBgQAm19zlm3WVePflA6Zh/FxvE8MirrJF6jmJzRrBCEM5 | ||||
| DwkSmY3dvONqCYeeNb4+xWXWQ8eVKVlPdkoW3V7H5xnJ63dXRNN2lQ3JpSTG3+yP | ||||
| Omp6XGY9mmatdHwyV7N4h10aKEWAuRhy148sdJZLYj0LbR42pCVYhEP4D3Qj7KjN | ||||
| PJe+cR8NSpiYmDH5y88Jqubztj5NVcDj/iN9h/7/GajbU6lCgN/SxZgi9cNGjxSb | ||||
| JHFHE2Mp3z9sjsieTXMplLqK045TQ2IBqnJyMdKkvSNkRUCbz2yXdiIOKtvU4ly0 | ||||
| h884z9P5JQ9bxe+6cwYC4ky3G5WYMn++RUsuCk4ScsrbZtM9jpKnz/TygMdVTC5w | ||||
| Siq6OHKtAnh8Ax1LEKicg9FLd6ODxR3OVKu+fUPV4XHAWJnmvElGlivjneHiE+OL | ||||
| dzgb/CfBEGHYBVc2PDIhwBmUdoEZ/t3UjvmSI46ZblYpWodJvLFwge2HxSivRlLW | ||||
| Uh/oPWX5N/CH9I34HTAhI48= | ||||
| -----END CERTIFICATE----- | ||||
| @@ -1,6 +1,6 @@ | ||||
| { config, pkgs, inputs, makeEnable, ... }: | ||||
|  | ||||
| makeEnable config "myModules.raspberry-pi" false { | ||||
| makeEnable config "modules.raspberry-pi" false { | ||||
|   imports = [ | ||||
|     inputs.nixos-hardware.nixosModules.raspberry-pi-4 | ||||
|   ]; | ||||
| @@ -12,7 +12,6 @@ makeEnable config "myModules.raspberry-pi" false { | ||||
|   # hardware.raspberry-pi."4".audio.enable = true; | ||||
|  | ||||
|   boot = { | ||||
|     initrd.systemd.tpm2.enable = false; | ||||
|     initrd.availableKernelModules = [ | ||||
|       "usbhid" | ||||
|       "usb_storage" | ||||
|   | ||||
| @@ -1,51 +0,0 @@ | ||||
| age-encryption.org/v1 | ||||
| -> ssh-ed25519 ZgrTqA MGp4jtyXCV3QBrIuy/WQthJGxLUnFNgZlf3HNtZtukY | ||||
| jbskLgoJDhl755Qn4ZdW5nYK7Ug2eLm4oQyazff6Uf4 | ||||
| -> ssh-ed25519 ZaBdSg hjFZhYc4AKvp8585jS4pivMFTxPd0miyQdjJQjQvERQ | ||||
| 4P8PqJ7gz99nuGyAOh73gECCNTa8U56t/byr0h1plLo | ||||
| -> ssh-ed25519 MHZylw iZq2dXCa4gSDpmbQazU4JPCXnbXjrMx2Nh0FCYACCTM | ||||
| yVE+tooOjxvD1OBziXHz5yv0k2purR/QouE3SSzinPw | ||||
| -> ssh-ed25519 sIUg6g ppAmkq3uj/heZ/RhK6BCz3o6d9l6tw+FeoV+GM4jh2M | ||||
| F+Og7e744NSgaUs9zZ28ttPdbl0xkN82KgqGnfv/9sM | ||||
| -> ssh-ed25519 TnanwQ GwsA+F4Co/Vxg5I04GxBW6EPPXOT2PtHCdiq6KEFJ0w | ||||
| vcJiXNxnh32Q00VodKXhvTmiTglxSCiSPLwOFXrQPxU | ||||
| -> ssh-rsa gwJx0Q | ||||
| EoF9WbtAgRZyWQPtcwrQTIxXMfNSl6Fpm7DITAwocm04U2aoNEnhvsU/0olrCGpU | ||||
| ez4CTnTZuOCVe8yr9KYjy9bU/41L2k89P/yk92i0Fm9412tIvYodSx0Qjju4hpPo | ||||
| ptLAp+5wUgeRarEpnPHQBKnyeR4PcaVAeAYyiFHKjFZIaZ6oBEHbJGd8QO02RwAG | ||||
| 2hnGkVzHhQOxnd6VN4h4xP4BfWXZ8rwTigenVMSwMkrWg0Xx+iXPvGhbLh0P/o5d | ||||
| VKtISQGzfL9rr2N4VYJHUT6JgQHNy66qd9YKrcY0bRanlMSeR7p217f/sKOc9SIL | ||||
| h9URYNbaxGhdx9JuQVywIA | ||||
| -> ssh-ed25519 YFIoHA xsirlZemMNZIOEcc164PM3SO2gJ6DrNM1xU2Phj/TWA | ||||
| v0cCi2mVuPMpy17w6q1GLgv/5k6wetFFBUzeAw6YGK8 | ||||
| -> ssh-ed25519 KQfiow wVCBy3SI6pY/Q1C5Zqq6//KPHma8PR8Qd5DhwO7+SSY | ||||
| ODABvuKUzhcuUj/YVwa1tCdgj/WBrhMHpwOmjgMTNDo | ||||
| -> ssh-ed25519 kScIxg 9qaWKYi08kVEz5HnFluLfHJz0dNl0gqSj+yTBRmX5U8 | ||||
| 2NBABg/XbcWq4gZp3vtnLZ4yBAZkPdXckDGnHc0rC1U | ||||
| -> ssh-ed25519 HzX1zw hMbFcHddfBJ+fU2Ay+J+siEi/rH0kTXTRJS1pFe9rFg | ||||
| IBPsFZ2vBc/t0L+anbugwX9A8lj8t6AykZzSovxTCxc | ||||
| -> ssh-ed25519 KQfiow 5mUphYz0qwZi78nxpxrQNWeXdum5o1cVj76sSrDgIlA | ||||
| KamxIS2NJaI7DTy9SJisGU+KTKTsDx7dXw7TlsSnq9o | ||||
| -> ssh-ed25519 1o2X0w zwmrw9msofsTJ9qkqaQWs0CWG2ArWXIb3hX/eFlM/2E | ||||
| L8CTuqIKNU1Ff2vWmIWtvLPmI8MOSlUobTLzQGladMg | ||||
| -> ssh-ed25519 KQ5iUA 03zopYKa8ki6hqJiiFOoAE0cNEg6uGWk7VF3teDzkws | ||||
| FxHYVfs2lCDlWspyv+03yjdJHSIIDUq8PTkhyLyomdM | ||||
| -> ssh-ed25519 AKGkDw BBg9+2iPHediKJ0xd/tVcoofbJvws2QIF2yskvE1OBs | ||||
| ZM32S8i6ZNG1cPSO3Ojkyy4JYKnJMXv72/RsE1g2o2Y | ||||
| -> ssh-ed25519 0eS5+A VedHoAI2jnrcY5E+Db6qyoJJnevOJ4NF1YzSGUAP6R4 | ||||
| jO9JaT6BiuiriIpWzc6fpJMDxqu3718KMMcHWFtHq14 | ||||
| -> ssh-ed25519 9/4Prw gcQ7zE+fSceLHLIi26qs348WJH7Jta36N1dPRIp2+2E | ||||
| 69jtpz9PVWh1KJM5fKUy923ddah7PiwvabFsNST19Ag | ||||
| -> ssh-ed25519 gAk3+Q C30KhWJmYd4D3bCuoD7hOZrehDhjMhTpzB1PmqRqph4 | ||||
| BEpcSaCnz8zLOho7Da7mBtAeLeCJMXbMkyg8CW5OKQI | ||||
| -> ssh-ed25519 X6eGtQ EP1F3zxhA6pPsFl638bLkYgsBDn1NHH4xbR3U50ZtSA | ||||
| 0h8Oe4zZ68GwzHp07LjUmKA69paiGBQGcakpIi8w+VA | ||||
| -> ssh-ed25519 0ma8Cw hQ1jQxz3XqtHo3ENzLiX85dmrtD2KpFb+Nx9t95EugM | ||||
| 1oFklRDdtko9lf9GxJbu0IH7uTD7Iae8nLA6KoVLA1g | ||||
| -> ssh-ed25519 Tp0Z1Q VvWo+U0VBidsCCtQKWfEqcgnjzbi7TlSPdrqaZcAGzA | ||||
| zRKu1PrurMXm/hQL1DzdgXQLDwebJCtcDzdiceBS00I | ||||
| -> ssh-ed25519 qQi7yA kOOIJPZqdp7dRRxPLqwDlNv4OXUI+RYXkA5IlI0YP04 | ||||
| HnwjK1XmdwIL478UXhRPVPU5YCJYALnpmryF0Kaz5vA | ||||
| --- 3MSdvhunDcposjHvMTMOSX6jM4Zj6EndDVgEMMrDpiM | ||||
| <EFBFBD>Eѓ<EFBFBD>4<EFBFBD><EFBFBD><EFBFBD>`|[<5B><> | ||||
| ]B<>s/<2F><>a1o7<6F>F'<27>xU<78><55><EFBFBD>q<EFBFBD><71><EFBFBD>pd<70>id<69>,<2C><>p<EFBFBD>bB0<42>L<>n<EFBFBD><6E>~Qm|<7C>K\<5C><>iM<>G><3E><>x9<78><10>Ҁ<10>9<EFBFBD>wQ<77><08>=<3D>l^Y<><59>+E[J<>ɐy뀧<79><EB80A7><07>D<EFBFBD>Q<0F><>1k<31><6B> | ||||
										
											Binary file not shown.
										
									
								
							| @@ -1,50 +0,0 @@ | ||||
| age-encryption.org/v1 | ||||
| -> ssh-ed25519 ZgrTqA fUdYNjuALrimf6eo5FoqjGF0Zvzo4HBMW6cr53NO+D4 | ||||
| YPI8i4LK2Iz0C89Cx91kx0z+oLQmzVp7rTI9r7+TJcc | ||||
| -> ssh-ed25519 ZaBdSg 4INz9+Kf25/qCECW0ylv3oZ0j6ouFJigP+gVSvm97Vc | ||||
| mmzlvBxYh703ZEzf73FF7ifDjysMEl2GOT5heGEn+Ts | ||||
| -> ssh-ed25519 MHZylw I/e6YCpLKOmjfmnkhF9qsG1S690YuCuHkHm10SOTSTo | ||||
| 3hnodZC9lVNTsigacqP26JibaaRdModVJCsaiugBNCs | ||||
| -> ssh-ed25519 sIUg6g VTWz7slnoJSC5bpGw6o5G7n2y439GbjNiZaFMLaN5jI | ||||
| lIJgwvZSyv422Nqct3LmB65ga66y4WSp0ok9RVN9G0s | ||||
| -> ssh-ed25519 TnanwQ jnix1dT8u58lNCEmn4mMEn/66XNhYkfOmlQzz9ybpXA | ||||
| rpJ1RE1aN8ZFvwXdnWMz5WmtIPVYuaoFW+dUxUHSue0 | ||||
| -> ssh-rsa gwJx0Q | ||||
| d3ys74cy6D+bpqZoaWyzcCHlgY+2sxSR4U41KpLTa1CodYQfhf/QzfhMhNRbKNrg | ||||
| eoFB4Z9QSIkbqQedkqmR+gjDtklSG/Jz/1QZxkKm3pRulDq0YA+crduA72Xs+ReF | ||||
| yRfAotYMZ+fJvJBJ4C604XzX2JyDsZ9pMxvzH3ntWLL2ay9wgY8beVekCfyAEgr6 | ||||
| EmFE1xPS5/SvEGz/3x0pxn6qtGXR7JAQYIZw7xVgpLvaY+yGjBGgF97RT8NZKmps | ||||
| Y+4DpQMVhJpMREpsGa78zN2PNsZoV3uc/rT7GLfhX1NJxjDfQ5whLF4ykrerg4ZB | ||||
| Mm3HhALUqeGd8trA+dRZiw | ||||
| -> ssh-ed25519 YFIoHA U7m8uc58dgdk3HS920pXyMUwSustTkyHbomhhYvKxhc | ||||
| 8TRED2gwbj1IeZxFR9EmkTqsVLgl1pLgja7FpRvw8WY | ||||
| -> ssh-ed25519 KQfiow et6x8B9B0X0hX695r/tfriEoInXXcHUkAiaQhXK6NGo | ||||
| UkJcdPjs1q//FDy+dGY2uaaGbgw6azVB1/zc5wrdQy8 | ||||
| -> ssh-ed25519 kScIxg 9UbFUlg4SGEY7L8vOummxwHhypcipPtRq/yhw8k6K2g | ||||
| vfLB37DdDA7nEXlNSkJUXwDwQ5UoDonkiKIhSjG4N24 | ||||
| -> ssh-ed25519 HzX1zw 4LkDXxeqKtYI8EhwXccMRlRw88flevLGFgzwt9nbNWY | ||||
| EtrL0itCfPvQtrIFWXqnPoje6Cy//KHZ//OwcibLy4s | ||||
| -> ssh-ed25519 KQfiow VPlZHErfIKR0NOG8/Rqwu7LQKP13izSQVck8s217LkM | ||||
| v8+OEZZTe+pybXqEtUQ1ILNQ2TbB4QSIkHacMQUkYGg | ||||
| -> ssh-ed25519 1o2X0w s8Of4YUoOKrBMa2AjcBYFXPEqwmjZEKGpGwf0F5Z9wo | ||||
| ifK7DqiArFCFIjxMHxLB1vlzZ+H/60H+a4xdmdvkf0I | ||||
| -> ssh-ed25519 KQ5iUA 1Jn+jIAmcJ1QUbC2Yz6XfVoM4XbS3HHEXJHJvDS3mlE | ||||
| rsmCtAlqxVzUfJeRT5kmU0FI5cAiCtqA1bpeG0aci+c | ||||
| -> ssh-ed25519 AKGkDw uB/GYB86+P5I9EtWJjCyrPYJKxlF8KLwjVacnS3FYg0 | ||||
| kAsGXL4c1IDU3rklHnyMpY454DLSCibhEy5U9vfoQxE | ||||
| -> ssh-ed25519 0eS5+A xe3LGZVaCS6rCrULdfdtHpuwdnib0FizFhseyWjUxBQ | ||||
| nKmumufCm1WQj1MdfawMWFHztFJhP/7+4h8f7PD4+z8 | ||||
| -> ssh-ed25519 9/4Prw vsOHzuM608TC+t+dqQbMHtZnTcfgGHJq/CfVazWeVFk | ||||
| I/w6R2t/pmdA+Ktool+1hU21GjjG/hwe0vSq89jtULw | ||||
| -> ssh-ed25519 gAk3+Q GMi0sxNOfeqbmMuU25wGnZdLx8D7zTYZ5Nx5OLjOaCA | ||||
| eweAPpjwjHYdySCtWbzwpM9RZ+Ohim/0HQiy2bssIFg | ||||
| -> ssh-ed25519 X6eGtQ bTbsvZYuHIYj6AUQ8hLvn9OKLhapi3VqU7nUDT2kxRQ | ||||
| X0Kh45FK79mdXA1AqySw/rC73maypSP5BpKso0BKHeM | ||||
| -> ssh-ed25519 0ma8Cw miWf5St4zNDpl7ydZPm4NDbhN0Pp5jAP28IdIXfoA38 | ||||
| yH13uHPwUCRyaXqnieNvkDDNkrACPaoIVFQUiVK2ZLk | ||||
| -> ssh-ed25519 Tp0Z1Q dvgXe3vQqY9le3KaROdzaP4jnjQ8kljfC+D/sSpwjnw | ||||
| /fwCFlvRRwUZ0ebYXJTdlGRxY6H9elCh5ULsyLve6IM | ||||
| -> ssh-ed25519 qQi7yA 83iacCsgW3Iw83C753dqBCM6/i8qyKLqJ0AvEIgxsT4 | ||||
| uI6NwcRcJUJMYR7vMhZvlnmdWRV9J4FUm8KbDutuKTo | ||||
| --- o88XKoHrskw3WGcaj1Ie6UzwfWcfKl76oO8zwk2jcNk | ||||
| z<EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>Y<1D>U<EFBFBD>p[<5B>4<>V<13><>-<2D>LE%Eڛ<45>¾ӏBSW<53><57>Ֆ<13><18>0<EFBFBD><1F><>=<3D><>-Jt<><74>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>瀖<EFBFBD>9<EFBFBD>p_Kd<4B> | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -10,11 +10,5 @@ in | ||||
|   "gitea-runner-token.jimi-hendnix.age".publicKeys = keys.agenixKeys; | ||||
|   "gitea-runner-token.adele.age".publicKeys = keys.agenixKeys; | ||||
|   "gitea-runner-token.railbird-sf.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; | ||||
|   "gitea-runner-token.mac-demarco-mini.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; | ||||
|   "gitea-runner-token.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; | ||||
|   "nextcloud-admin.age".publicKeys = keys.agenixKeys; | ||||
|   "ryzen-shine-kubernetes-token.age".publicKeys = keys.agenixKeys; | ||||
|   "1896Folsom-k3s-token.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; | ||||
|   "api_service_account_key.json.age".publicKeys = keys.agenixKeys; | ||||
|   "k3s-registry.yaml.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; | ||||
| } | ||||
|   | ||||
| @@ -17,12 +17,10 @@ let | ||||
|     mixos = { id = "7DMMUDT-CO33EMS-LQW65MX-3BVYDBT-ZZWDJC6-SWEF6SW-ICUMWOE-ZC4IBQK"; }; | ||||
|     strixi-minaj-wsl = { id = "DOAEFFI-W6EZY3K-GDUHDLX-6DQPVFC-XU3G65X-5KX6RKK-EMF7ZT7-YKKKOAM"; }; | ||||
|     strixi-minaj = { id = "IF76WOS-WVYFAQG-ZZMIT3R-ZR6EQQH-YQP3FGZ-BJ3LJKO-56FK2XA-UREADQM"; }; | ||||
|     dean-zephyrus = { id = "UVIQVZQ-WFWVUQT-OTXPK7V-RXFKAVV-RY5DV2Z-XZEH3Q2-JQZIQLW-XMSB6AT"; }; | ||||
|     bencbox = { id = "FZFDBDG-J56RKLU-JZUHEAB-SAGB6CM-LRR6QFC-ZLNQG22-R2DEXAC-MY4BXQN"; }; | ||||
|   }; | ||||
|   allDevices = builtins.attrNames devices; | ||||
| in | ||||
| makeEnable config "myModules.syncthing" true { | ||||
| makeEnable config "modules.syncthing" true { | ||||
|   system.activationScripts.syncthingPermissions = { | ||||
|     text = '' | ||||
|       chown -R syncthing:syncthing /var/lib/syncthing | ||||
|   | ||||
| @@ -92,12 +92,7 @@ in | ||||
|     railbird = userDefaults // { | ||||
|       inherit extraGroups; | ||||
|       name = "railbird"; | ||||
|       openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.railbirdFullstackDevKeys; | ||||
|     }; | ||||
|     interview = userDefaults // { | ||||
|       inherit extraGroups; | ||||
|       name = "interview"; | ||||
|       openssh.authorizedKeys.keys = interviewKeys ++ inputs.railbird-secrets.keys.railbirdFullstackDevKeys; | ||||
|       openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.railbirdDevKeys; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { inputs, config, makeEnable, forEachUser, ... }: | ||||
| makeEnable config "myModules.vscode" true { | ||||
| makeEnable config "modules.vscode" true { | ||||
|   home-manager.users = forEachUser { | ||||
|     imports = [inputs.vscode-server.homeModules.default]; | ||||
|     services.vscode-server.enable = true; | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
| { config, inputs, pkgs, makeEnable, ... }: | ||||
| makeEnable config "myModules.wsl" false { | ||||
| makeEnable config "modules.wsl" false { | ||||
|   imports = [ | ||||
|     inputs.nixos-wsl.nixosModules.wsl | ||||
|   ]; | ||||
|  | ||||
|   myModules.base.enable = false; | ||||
|   myModules.desktop.enable = false; | ||||
|   myModules.xmonad.enable = false; | ||||
|   myModules.plasma.enable = false; | ||||
|   modules.base.enable = false; | ||||
|   modules.desktop.enable = false; | ||||
|   modules.xmonad.enable = false; | ||||
|   modules.plasma.enable = false; | ||||
|  | ||||
|   # Update timezone automatically | ||||
|   services.tzupdate.enable = true; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { config, pkgs, inputs, forEachUser, makeEnable, ... }: | ||||
| makeEnable config "myModules.xmonad" true  { | ||||
| makeEnable config "modules.xmonad" true  { | ||||
|   nixpkgs.overlays = with inputs; [ | ||||
|     xmonad.overlay | ||||
|     xmonad-contrib.overlay | ||||
| @@ -25,7 +25,7 @@ makeEnable config "myModules.xmonad" true  { | ||||
|     # Haskell Desktop | ||||
|     haskellPackages.xmonad | ||||
|     haskellPackages.imalison-xmonad | ||||
|     # haskellPackages.notifications-tray-icon | ||||
|     haskellPackages.notifications-tray-icon | ||||
|     haskellPackages.gtk-sni-tray | ||||
|     haskellPackages.status-notifier-item | ||||
|     haskellPackages.dbus-hslogger | ||||
| @@ -80,7 +80,7 @@ makeEnable config "myModules.xmonad" true  { | ||||
|  | ||||
|     services.picom = { | ||||
|       enable = true; | ||||
|       vSync = config.myModules.xmonad.picom.vSync.enable; | ||||
|       vSync = config.modules.xmonad.picom.vSync.enable; | ||||
|       backend = "glx"; | ||||
|       extraArgs = ["--experimental-backends"]; | ||||
|  | ||||
| @@ -137,21 +137,21 @@ makeEnable config "myModules.xmonad" true  { | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     # systemd.user.services.notifications-tray-icon = { | ||||
|     #   Unit = { | ||||
|     #     Description = "Notifications tray icon"; | ||||
|     #     After = [ "graphical-session-pre.target" "tray.target" ]; | ||||
|     #     PartOf = [ "graphical-session.target" ]; | ||||
|     #   }; | ||||
|     systemd.user.services.notifications-tray-icon = { | ||||
|       Unit = { | ||||
|         Description = "Notifications tray icon"; | ||||
|         After = [ "graphical-session-pre.target" "tray.target" ]; | ||||
|         PartOf = [ "graphical-session.target" ]; | ||||
|       }; | ||||
|  | ||||
|     #   Install = { WantedBy = [ "graphical-session.target" ]; }; | ||||
|       Install = { WantedBy = [ "graphical-session.target" ]; }; | ||||
|  | ||||
|     #   Service = { | ||||
|     #     ExecStart = "${pkgs.haskellPackages.notifications-tray-icon}/bin/notifications-tray-icon  --github-token-pass dfinity-github-api-token"; | ||||
|     #     Restart = "always"; | ||||
|     #     RestartSec = 3; | ||||
|     #   }; | ||||
|     # }; | ||||
|       Service = { | ||||
|         ExecStart = "${pkgs.haskellPackages.notifications-tray-icon}/bin/notifications-tray-icon  --github-token-pass dfinity-github-api-token"; | ||||
|         Restart = "always"; | ||||
|         RestartSec = 3; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     systemd.user.services.shutter = { | ||||
|       Unit = { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user