Compare commits

..

1 Commits

Author SHA1 Message Date
d9231c3a0e Elpaca migration WIP 2024-06-25 03:00:19 -06:00
76 changed files with 674 additions and 2035 deletions

8
.travis.yml Normal file
View 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"

@ -1 +1 @@
Subproject commit a82a8a0cffb34b5eae38e46d88f02641bf8a8fe5 Subproject commit 9c8540a56432db6555755a9a649b4874833520ed

View File

@ -4,7 +4,6 @@
(setq mc/cmds-to-run-for-all (setq mc/cmds-to-run-for-all
'( '(
TeX-insert-backslash TeX-insert-backslash
align
backward-sexp backward-sexp
beginning-of-buffer beginning-of-buffer
beginning-of-visual-line beginning-of-visual-line

View File

@ -361,6 +361,8 @@ but provide support for writing custom elisp.
*** shut-up *** shut-up
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package shut-up (use-package shut-up
:demand t
:ensure (:inherit t :wait t)
:config :config
(defun imalison:shut-up-around (function &rest args) (defun imalison:shut-up-around (function &rest args)
(shut-up (apply function args)))) (shut-up (apply function args))))
@ -856,6 +858,7 @@ details.
(directory-files filepath)))) (directory-files filepath))))
(use-package eshell (use-package eshell
:ensure nil
:commands (eshell-parse-colon-path imalison:get-executables-on-path) :commands (eshell-parse-colon-path imalison:get-executables-on-path)
:config :config
(defun imalison:get-executables-on-path () (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. 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 #+BEGIN_SRC emacs-lisp
(use-package proced (use-package proced
:ensure nil
:defer t :defer t
:config :config
(progn (progn
@ -1376,6 +1380,7 @@ Paradox is a package.el extension. I have no use for it now that I use straight.
** server ** server
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package server (use-package server
:ensure nil
:demand t :demand t
:config :config
(progn (progn
@ -1444,19 +1449,6 @@ The file server file for this emacs instance no longer exists.")
(use-package refine (use-package refine
:disabled t) :disabled t)
#+END_SRC #+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 ** eyebrowse
I don't have any use for this now that I use frames mode, but its an interesting idea. I don't have any use for this now that I use frames mode, but its an interesting idea.
#+BEGIN_SRC emacs-lisp #+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) (advice-add 'company-call-frontends :before #'fci-on-off-fci-before-company)
(add-hook 'prog-mode-hook 'fci-mode))) (add-hook 'prog-mode-hook 'fci-mode)))
#+END_SRC #+END_SRC
** indent-bars ** highlight-indent-guides
#+begin_src emacs-lisp If the load-theme hook from this package starts causing trouble check for
(use-package indent-bars custom-set-faces in your custom file.
:disabled t #+BEGIN_SRC emacs-lisp
:straight (indent-bars :type git :host github :repo "jdtsmith/indent-bars") (use-package highlight-indent-guides
:commands highlight-indent-guides-mode
:diminish highlight-indent-guides-mode
:demand t
:config :config
(require 'indent-bars-ts) ; not needed with straight (progn
:custom (add-hook 'prog-mode-hook 'highlight-indent-guides-mode)
(indent-bars-treesit-support t) (setq highlight-indent-guides-method 'fill)))
(indent-bars-treesit-ignore-blank-lines-types '("module")) #+END_SRC
;; 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
** man-mode ** man-mode
Man page escape sequences aren't properly handled by emacs pager. This function 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 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. out how to detect that a buffer is a man mode buffer.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package man (use-package man
:ensure nil
:config :config
(progn (progn
(defun imalison:fontify-man-page-buffer () (defun imalison:fontify-man-page-buffer ()
@ -1765,6 +1751,7 @@ bind-key and global-set-key forms.
#+END_SRC #+END_SRC
** projectile ** projectile
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package projectile (use-package projectile
:demand t :demand t
:bind (:map projectile-mode-map :bind (:map projectile-mode-map
@ -1778,7 +1765,7 @@ bind-key and global-set-key forms.
(projectile-git-submodule-command nil) (projectile-git-submodule-command nil)
(project-vc-merge-submodules nil) (project-vc-merge-submodules nil)
(projectile-current-project-on-switch 'keep)) (projectile-current-project-on-switch 'keep))
:preface :config
(progn (progn
(defmacro imalison:projectile-do-in-project (project-dir &rest forms) (defmacro imalison:projectile-do-in-project (project-dir &rest forms)
`(imalison:with-default-directory ,project-dir `(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) (defun imalison:do-rg-default-directory (&rest args)
(interactive) (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 (emit-prefix-selector imalison:do-rg
consult-ripgrep consult-ripgrep
@ -1811,9 +1797,7 @@ bind-key and global-set-key forms.
(write-region "" nil (write-region "" nil
(expand-file-name (expand-file-name
(concat directory "/" (concat directory "/"
(nth 0 file-info) "/.projectile"))))))) (nth 0 file-info) "/.projectile"))))))
:config
(progn
(projectile-global-mode) (projectile-global-mode)
(diminish 'projectile-mode))) (diminish 'projectile-mode)))
#+END_SRC #+END_SRC
@ -1862,7 +1846,8 @@ bind-key and global-set-key forms.
** avy ** avy
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package avy (use-package avy
:preface :after emit
:config
(progn (progn
(emit-prefix-selector imalison:avy (emit-prefix-selector imalison:avy
avy-goto-word-1 avy-goto-word-1
@ -1874,11 +1859,13 @@ bind-key and global-set-key forms.
** ace-window ** ace-window
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package ace-window (use-package ace-window
:preface :after emit
(emit-prefix-selector imalison:ace-window :config
ace-select-window (progn
ace-swap-window) (emit-prefix-selector imalison:ace-window
:config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) 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)) :bind ("C-c w" . imalison:ace-window))
#+END_SRC #+END_SRC
** neotree ** neotree
@ -1904,41 +1891,41 @@ Neotree is useless with frame mode for now, so I've disabled it.
* Completion * Completion
** vertico ** vertico
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package vertico (use-package vertico
:demand t :demand t
:config :config
(progn (progn
(defmacro imalison:use-vertico-extension (extension-name &rest forms) (defmacro imalison:use-vertico-extension (extension-name &rest forms)
(let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name))))) (let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name)))))
`(use-package ,extension-symbol `(use-package ,extension-symbol
:after vertico :after vertico
:straight (,extension-symbol :straight (,extension-symbol
:repo "emacs-straight/vertico" :repo "emacs-straight/vertico"
:host github :host github
:files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el"))) :files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el")))
,@forms))) ,@forms)))
(put 'imalison:use-vertico-extension 'lisp-indent-function 'defun) (put 'imalison:use-vertico-extension 'lisp-indent-function 'defun)
(imalison:use-vertico-extension directory (imalison:use-vertico-extension directory
:bind (:map vertico-map :bind (:map vertico-map
("RET" . vertico-directory-enter) ("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-char) ("DEL" . vertico-directory-delete-char)
("M-DEL" . vertico-directory-delete-word) ("M-DEL" . vertico-directory-delete-word)
("TAB" . embark-act))) ("TAB" . embark-act)))
(imalison:use-vertico-extension grid) (imalison:use-vertico-extension grid)
(imalison:use-vertico-extension buffer) (imalison:use-vertico-extension buffer)
(imalison:use-vertico-extension flat) (imalison:use-vertico-extension flat)
(imalison:use-vertico-extension multiform (imalison:use-vertico-extension multiform
:config :config
(progn (progn
(vertico-multiform-mode +1) (vertico-multiform-mode +1)
(setq vertico-multiform-commands (setq vertico-multiform-commands
'((consult-imenu grid) '((consult-imenu grid)
(consult-ripgrep buffer))))) (consult-ripgrep buffer)))))
(vertico-mode +1))) (vertico-mode +1)))
#+end_src #+end_src
** orderless ** orderless
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -2033,10 +2020,12 @@ Neotree is useless with frame mode for now, so I've disabled it.
** company ** company
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package company (use-package company
:after emit
:commands company-mode imalison:company :commands company-mode imalison:company
:bind (("C-\\" . imalison:company)) :bind (("C-\\" . imalison:company))
:config :config
(progn (progn
(add-hook 'prog-mode-hook (lambda () (company-mode t)))
(emit-prefix-selector imalison:company (emit-prefix-selector imalison:company
company-complete company-complete
company-yasnippet) company-yasnippet)
@ -2046,9 +2035,7 @@ Neotree is useless with frame mode for now, so I've disabled it.
:demand t :demand t
:config (company-prescient-mode +1)) :config (company-prescient-mode +1))
(global-company-mode) (global-company-mode)
(diminish 'company-mode)) (diminish 'company-mode)))
:init
(add-hook 'prog-mode-hook (lambda () (company-mode t))))
#+END_SRC #+END_SRC
*** company-flx *** company-flx
#+BEGIN_SRC emacs-lisp #+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 ** align
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package align (use-package align
:ensure nil
:bind ("C-c C-a" . imalison:align-regexp-hydra/body) :bind ("C-c C-a" . imalison:align-regexp-hydra/body)
:config :config
(progn (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 #+BEGIN_SRC emacs-lisp
(use-package flycheck (use-package flycheck
:commands flycheck-mode :commands flycheck-mode
:init (add-hook 'prog-mode-hook 'flycheck-mode) :defer 1
:config :config
(progn (progn
(add-hook 'prog-mode-hook 'flycheck-mode)
(use-package flycheck-package (use-package flycheck-package
:disabled t :disabled t
:config (flycheck-package-setup)) :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)) (global-flycheck-mode))
:diminish flycheck-mode) :diminish flycheck-mode)
#+END_SRC #+END_SRC
* straight
#+BEGIN_SRC emacs-lisp
(use-package straight
:config
(setq straight-vc-git-auto-fast-forward t))
#+END_SRC
* auth-source * auth-source
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package auth-source (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) (unbind-key "C-j" python-mode-map)
(add-hook 'python-mode-hook #'imalison:python-mode))) (add-hook 'python-mode-hook #'imalison:python-mode)))
#+END_SRC #+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 *** go
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package go-mode ;; (use-package go-mode
:mode (("\\.go\\'" . go-mode)) ;; :mode (("\\.go\\'" . go-mode))
:preface ;; :after emit
(progn ;; :config
(defun imalison:glide-novendor () ;; (progn
(projectile-with-default-dir (projectile-project-root) ;; (defun imalison:glide-novendor ()
(shell-command-to-string "glide novendor"))) ;; (projectile-with-default-dir (projectile-project-root)
;; (shell-command-to-string "glide novendor")))
(defun imalison:go-mode-create-imenu-index () ;; (defun imalison:go-mode-create-imenu-index ()
"Create and return an imenu index alist. Unlike the default ;; "Create and return an imenu index alist. Unlike the default
alist created by go-mode, this method creates an alist where ;; alist created by go-mode, this method creates an alist where
items follow a style that is consistent with other prog-modes." ;; items follow a style that is consistent with other prog-modes."
(let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1))) ;; (let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)))
(type-index (imenu--generic-function patterns)) ;; (type-index (imenu--generic-function patterns))
(func-index)) ;; (func-index))
(save-excursion ;; (save-excursion
(goto-char (point-min)) ;; (goto-char (point-min))
(while (re-search-forward go-func-meth-regexp (point-max) t) ;; (while (re-search-forward go-func-meth-regexp (point-max) t)
(let* ((var (match-string-no-properties 1)) ;; (let* ((var (match-string-no-properties 1))
(func (match-string-no-properties 2)) ;; (func (match-string-no-properties 2))
(name (if var ;; (name (if var
(concat (substring var 0 -1) "." func) ;; (concat (substring var 0 -1) "." func)
func)) ;; func))
(beg (match-beginning 0)) ;; (beg (match-beginning 0))
(marker (copy-marker beg)) ;; (marker (copy-marker beg))
(item (cons name marker))) ;; (item (cons name marker)))
(setq func-index (cons item func-index))))) ;; (setq func-index (cons item func-index)))))
(nconc type-index (list (cons "func" func-index))))) ;; (nconc type-index (list (cons "func" func-index)))))
(defun imalison:go-workspace-path () ;; (defun imalison:go-workspace-path ()
(file-relative-name (projectile-project-root) ;; (file-relative-name (projectile-project-root)
(concat (file-name-as-directory ;; (concat (file-name-as-directory
(imalison:get-go-path)) "src"))) ;; (imalison:get-go-path)) "src")))
(defun imalison:install-current-go-project () ;; (defun imalison:install-current-go-project ()
(interactive) ;; (interactive)
(start-process ;; (start-process
"go install" "go install log" "go" "install" ;; "go install" "go install log" "go" "install"
(concat (file-name-as-directory (imalison:go-workspace-path)) "..."))) ;; (concat (file-name-as-directory (imalison:go-workspace-path)) "...")))
(defun imalison:get-go-path () ;; (defun imalison:get-go-path ()
(let ((environment-go-path (getenv "GOPATH"))) ;; (let ((environment-go-path (getenv "GOPATH")))
(if environment-go-path ;; (if environment-go-path
(file-name-as-directory (car (s-split ":" environment-go-path))) ;; (file-name-as-directory (car (s-split ":" environment-go-path)))
"~/go"))) ;; "~/go")))
(defmacro imalison:get-go-src (&rest paths) ;; (defmacro imalison:get-go-src (&rest paths)
`(imalison:join-paths (imalison:get-go-path) "src" ,@paths)) ;; `(imalison:join-paths (imalison:get-go-path) "src" ,@paths))
(imalison:let-advise-around imalison:advise-normal-go-command ;; (imalison:let-advise-around imalison:advise-normal-go-command
(go-command "go")) ;; (go-command "go"))
(defun imalison:go-mode-hook () ;; (defun imalison:go-mode-hook ()
(go-eldoc-setup) ;; (go-eldoc-setup)
(set (make-local-variable 'company-backends) '(company-go)) ;; (set (make-local-variable 'company-backends) '(company-go))
(make-local-variable 'projectile-globally-ignored-files) ;; (make-local-variable 'projectile-globally-ignored-files)
(add-hook 'after-save-hook 'imalison:install-current-go-project nil ;; (add-hook 'after-save-hook 'imalison:install-current-go-project nil
'yes-do-local) ;; 'yes-do-local)
(add-to-list 'projectile-globally-ignored-files ;; (add-to-list 'projectile-globally-ignored-files
"vendor"))) ;; "vendor"))
:config ;; (use-package gotest
(progn ;; :demand t
(use-package gotest ;; :after emit
:demand t ;; :bind (:map go-mode-map
:bind (:map go-mode-map ;; ("C-c t" . imalison:gotest))
("C-c t" . imalison:gotest)) ;; :preface
:preface ;; (progn
(progn ;; (emit-prefix-selector imalison:gotest
(emit-prefix-selector imalison:gotest ;; go-test-current-test
go-test-current-test ;; go-test-current-file)
go-test-current-file)
(defun imalison:add-expected-test-name-for-suite (suite-name test-name) ;; (defun imalison:add-expected-test-name-for-suite (suite-name test-name)
(if (> (length suite-name) 0) ;; (if (> (length suite-name) 0)
(concat " -run Test" suite-name) ;; (concat " -run Test" suite-name)
""))) ;; "")))
:config ;; :config
(progn ;; (progn
(setq go-test-verbose t ;; (setq go-test-verbose t
go-test-additional-arguments-function ;; go-test-additional-arguments-function
'imalison:add-expected-test-name-for-suite))) ;; 'imalison:add-expected-test-name-for-suite)))
(use-package company-go ;; (use-package company-go
:config (setq company-go-show-annotation t)) ;; :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 'go-mode-hook 'imalison:go-mode-hook)
(add-hook 'before-save-hook 'gofmt-before-save t))) ;; (add-hook 'before-save-hook 'gofmt-before-save t)))
#+END_SRC #+END_SRC
**** Show diffs of testify output **** Show diffs of testify output
#+BEGIN_SRC emacs-lisp #+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 **** elisp-slime-nav
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package elisp-slime-nav (use-package elisp-slime-nav
:after emit
:commands elisp-slime-nav-mode :commands elisp-slime-nav-mode
:config :config
(diminish 'elisp-slime-nav-mode) (progn
:preface (defvar imalison:check-parens nil)
(emit-prefix-selector imalison:elisp-slime-nav
elisp-slime-nav-find-elisp-thing-at-point (defun imalison:maybe-check-parens ()
elisp-slime-nav-describe-elisp-thing-at-point) (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 :bind (:map elisp-slime-nav-mode-map
("M-." . imalison:elisp-slime-nav))) ("M-." . imalison:elisp-slime-nav)))
#+END_SRC #+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. where the definition is popped up. This fixes that.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package find-func (use-package find-func
:ensure nil
:preface :preface
(progn (progn
(defun imalison:find-function-display-buffer (function) (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 :bind (:map lisp-mode-shared-map
("C-c e" . macrostep-expand))) ("C-c e" . macrostep-expand)))
#+END_SRC #+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 **** Editing configuration
Reduce indentation for some functions Reduce indentation for some functions
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@ -2519,6 +2500,7 @@ Reduce indentation for some functions
**** edebug **** edebug
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package edebug (use-package edebug
:ensure nil
:defer t :defer t
:config :config
(progn (setq edebug-trace t))) (progn (setq edebug-trace t)))
@ -2557,6 +2539,7 @@ Reduce indentation for some functions
:commands (eros-mode) :commands (eros-mode)
:config :config
(progn (progn
(add-hook 'emacs-lisp-mode-hook 'eros-mode)
(advice-add 'eval-defun :around 'eros-around-eval-defun) (advice-add 'eval-defun :around 'eros-around-eval-defun)
(advice-add 'eval-last-sexp :around 'eros-around-eval-last-sexp)) (advice-add 'eval-last-sexp :around 'eros-around-eval-last-sexp))
:preface :preface
@ -2577,9 +2560,7 @@ Reduce indentation for some functions
(save-excursion (save-excursion
(end-of-defun) (end-of-defun)
(point)))) (point))))
result)) result))))
(add-hook 'emacs-lisp-mode-hook 'eros-mode)))
#+END_SRC #+END_SRC
**** Reevalute defvars when running eval-last-sexp **** Reevalute defvars when running eval-last-sexp
We noflet elisp--preceding-sexp to munge defvars into sexps only for We noflet elisp--preceding-sexp to munge defvars into sexps only for
@ -2597,27 +2578,10 @@ eval-last-sexp.
#+END_SRC #+END_SRC
**** Init hook **** Init hook
#+BEGIN_SRC emacs-lisp #+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 #+END_SRC
**** Keybinds **** Keybinds
#+BEGIN_SRC emacs-lisp #+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-c C-c") 'eval-defun)
(define-key lisp-mode-shared-map (kbd "C-x C-e") 'imalison:eval-last-sexp) (define-key lisp-mode-shared-map (kbd "C-x C-e") 'imalison:eval-last-sexp)
(unbind-key "C-j" lisp-interaction-mode-map) (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") cider-preferred-build-tool "boot")
(add-hook 'clojure-mode-hook 'cider-mode))) (add-hook 'clojure-mode-hook 'cider-mode)))
#+END_SRC #+END_SRC
**** clj-refactor
#+BEGIN_SRC emacs-lisp
(use-package clj-refactor
:commands clj-refactor-mode)
#+END_SRC
*** scala *** scala
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package scala-mode (use-package scala-mode
@ -2906,10 +2865,6 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877
:defer t :defer t
:mode ("\\.kt\\'")) :mode ("\\.kt\\'"))
#+END_SRC #+END_SRC
*** swift
#+begin_src emacs-lisp
(use-package swift-mode)
#+end_src
*** groovy *** groovy
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package groovy-mode) (use-package groovy-mode)
@ -2926,7 +2881,7 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877
#+END_SRC #+END_SRC
*** C/C++ *** C/C++
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package cc-mode) (use-package cc-mode :ensure nil)
#+END_SRC #+END_SRC
*** C-- *** C--
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@ -3131,9 +3086,10 @@ My org-mode configuration now lives in its own file org-config.org.
** magit ** magit
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package magit (use-package magit
:after emit
:commands magit-status :commands magit-status
:bind (("C-x g" . imalison:magit-status)) :bind (("C-x g" . imalison:magit-status))
:preface :config
(progn (progn
(emit-let-around imalison:magit-status-traditional (emit-let-around imalison:magit-status-traditional
magit-status magit-status
@ -3144,9 +3100,7 @@ My org-mode configuration now lives in its own file org-config.org.
imalison:magit-status-traditional) imalison:magit-status-traditional)
(defun imalison:after-magit-visit-file (&rest args) (defun imalison:after-magit-visit-file (&rest args)
(when (derived-mode-p 'org-mode) (when (derived-mode-p 'org-mode)
(org-show-context 'magit-goto)))) (org-show-context 'magit-goto)))
:config
(progn
(when frame-mode (when frame-mode
(setq magit-commit-show-diff t)) (setq magit-commit-show-diff t))
(unbind-key "C-j" magit-status-mode-map) (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-function
'magit-display-buffer-same-window-except-diff-v1) 'magit-display-buffer-same-window-except-diff-v1)
(magit-auto-revert-mode) (magit-auto-revert-mode)
(add-to-list 'org-show-context-detail '(magit-goto . lineage)) (add-to-list 'org-show-context-detail '(magit-goto . lineage))
(advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file) (advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file)
(add-hook 'magit-popup-mode-hook 'imalison:disable-show-trailing-whitespace))) (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 :disabled t
:after magit) :after magit)
#+end_src #+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 ** git-link
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package git-link (use-package git-link
@ -3306,14 +3245,6 @@ modeline and with excessive http requests to github.
gist-unstar gist-list-starred gist-fork)) gist-unstar gist-list-starred gist-fork))
#+END_SRC #+END_SRC
* Programming * 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 ** semantic
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package semantic (use-package semantic
@ -3370,8 +3301,7 @@ emr (emacs refactor) provides support for refactoring in many programming langua
(file-name-directory (file-name-directory
(file-truename (imalison:join-paths eat--install-path "eat.el")))) (file-truename (imalison:join-paths eat--install-path "eat.el"))))
(eat-compile-terminfo) (eat-compile-terminfo)
(setq eat-term-shell-integration-directory (setq eat-term-shell-integration-directory (imalison:join-paths eat--install-path "integration"))))
(imalison:join-paths eat--install-path "integration"))))
#+end_src #+end_src
** term ** term
The main thing I do here is restore a bunch of keybindings that are eliminated 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 #+BEGIN_SRC emacs-lisp
(use-package term (use-package term
:demand t :demand t
:ensure nil
:preface :preface
(progn (progn
(defun imalison:avy-term (arg) (defun imalison:avy-term (arg)
@ -3444,6 +3375,7 @@ in term-mode. This makes term-mode 1000% more useful
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package term-projectile (use-package term-projectile
:bind ("C-c 7" . imalison:term-hydra-global/body) :bind ("C-c 7" . imalison:term-hydra-global/body)
:after emit
:commands :commands
(term-projectile-backward (term-projectile-backward
term-projectile-create-new 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 ** narrow-indirect
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package narrow-indirect (use-package narrow-indirect
:ensure nil
:init :init
(progn (progn
(define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-indirect-other-window) (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) (interactive)
(setq dtrt-indent-original-indent nil) (setq dtrt-indent-original-indent nil)
(dtrt-indent-adapt))) (dtrt-indent-adapt)))
:init (add-hook 'prog-mode-hook 'dtrt-indent-mode)
:config :config
(progn (progn
(add-hook 'prog-mode-hook 'dtrt-indent-mode)
(setq dtrt-indent-active-mode-line-info " [⟼]"))) (setq dtrt-indent-active-mode-line-info " [⟼]")))
#+END_SRC #+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 ** rainbow-delimiters
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package rainbow-delimiters (use-package rainbow-delimiters
@ -3684,7 +3626,9 @@ Disabled because it makes it hard to redo things
** recentf ** recentf
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package recentf (use-package recentf
:ensure nil
:demand t :demand t
:after shut-up
:config :config
(progn (progn
(setq recentf-max-saved-items 1000 (setq recentf-max-saved-items 1000
@ -3780,6 +3724,7 @@ Not really sure what this is
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package epg (use-package epg
:after shut-up :after shut-up
:ensure nil
:config :config
(shut-up (shut-up
(epa-file-enable))) (epa-file-enable)))
@ -3802,113 +3747,6 @@ Not really sure what this is
:disabled t ;; fails to load eieio on startup :disabled t ;; fails to load eieio on startup
) )
#+END_SRC #+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 ** 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. 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 #+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) :notifier 'imalison:windows-toast-notify)
(setq alert-default-style 'windows-toast)))) (setq alert-default-style 'windows-toast))))
#+END_SRC #+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 ** libmpdee
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package libmpdee (use-package libmpdee
@ -4123,20 +3911,16 @@ This also adds syntax highlighting for gradle
** jsx-mode ** jsx-mode
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package jsx-mode (use-package jsx-mode
:ensure nil
:defer t) :defer t)
#+END_SRC #+END_SRC
** css ** css
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package css-mode (use-package css-mode
:ensure nil
:mode (("\\.css\\'" . css-mode) :mode (("\\.css\\'" . css-mode)
("\\.rasi\\'" . css-mode))) ("\\.rasi\\'" . css-mode)))
#+END_SRC #+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 ** evil
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package evil (use-package evil
@ -4165,6 +3949,9 @@ Ensure all themes that I use are installed:
(progn (progn
(setq solarized-high-contrast-mode-line t))) (setq solarized-high-contrast-mode-line t)))
(defun elpaca-function (pkg)
(eval `(elpaca ,pkg)))
(defvar-setq packages-appearance (defvar-setq packages-appearance
'(monokai-theme zenburn-theme base16-theme molokai-theme moe-theme '(monokai-theme zenburn-theme base16-theme molokai-theme moe-theme
tango-2-theme gotham-theme sublime-themes rainbow-delimiters 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 forest-blue-theme flatland-theme afternoon-theme
cyberpunk-theme dracula-theme)) cyberpunk-theme dracula-theme))
(mapcar 'straight-use-package packages-appearance) (mapcar 'elpaca-function packages-appearance)
(use-package doom-themes (use-package doom-themes
:defer t) :defer t)
@ -4328,14 +4115,15 @@ load-theme hook (See the heading below).
(unless imalison:appearance-setup-done (unless imalison:appearance-setup-done
(unless (member imalison:dark-theme custom-enabled-themes) (unless (member imalison:dark-theme custom-enabled-themes)
(load-theme imalison:dark-theme t)) (load-theme imalison:dark-theme t))
(doom-modeline-mode +1)
(apply 'imalison:appearance args) (apply 'imalison:appearance args)
(message "running appearance") (message "running appearance")
(doom-modeline-mode +1)
(setq imalison:default-font-size-pt (face-attribute 'default :height)) (setq imalison:default-font-size-pt (face-attribute 'default :height))
(setq imalison:appearance-setup-done t))) (setq imalison:appearance-setup-done t)))
(add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook) (add-hook 'elpaca-after-init-hook
(add-hook 'after-init-hook 'imalison:appearance-setup-hook) (lambda () (add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook)))
(add-hook 'elpaca-after-init-hook 'imalison:appearance-setup-hook)
#+END_SRC #+END_SRC
* Post Init Custom * Post Init Custom
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp

View 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))

View File

@ -1,41 +1,28 @@
;; -*- no-byte-compile: t -*- ;; -*- 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-deferred-compilation-deny-list '("magit"))
(setq native-comp-always-compile t) (setq native-comp-always-compile t)
(setq load-no-native t) (setq load-no-native t)
(setq no-native-compile t) (setq no-native-compile t)
(setq warning-minimum-level :emergency) (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 (setq package-enable-at-startup nil
straight-use-package-by-default t straight-use-package-by-default t
straight-vc-git-default-protocol 'ssh) straight-vc-git-default-protocol 'ssh)
(straight-use-package 'use-package)
(require 'use-package) (require 'use-package)
(setq use-package-enable-imenu-support t) (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) (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"))) (let ((bench-file (concat (file-name-directory user-init-file) "benchmark.el")))
(when (file-exists-p bench-file) (load bench-file))) (when (file-exists-p bench-file) (load bench-file)))
@ -55,6 +42,9 @@
(setq mac-option-modifier 'meta) (setq mac-option-modifier 'meta)
(setq mac-command-modifier 'super)) (setq mac-command-modifier 'super))
(use-package transient
:demand t)
;; See https://github.com/magit/magit/discussions/4997 . Without this magit is broken. ;; See https://github.com/magit/magit/discussions/4997 . Without this magit is broken.
(use-package magit (use-package magit
:demand t) :demand t)
@ -62,29 +52,56 @@
;; This seems to fix issues with helm not explicitly declaring its dependency on async ;; This seems to fix issues with helm not explicitly declaring its dependency on async
(use-package async :demand t) (use-package async :demand t)
(use-package s :demand t)
;; Without this, org can behave very strangely ;; Without this, org can behave very strangely
(use-package org (use-package org
:straight :ensure
(org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org" (org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org"
:branch "my-main" :branch "my-main"
:depth full :pre-build (straight-recipes-org-elpa--build) :build :depth full
:build
:wait t
(:not autoloads) :files (:not autoloads) :files
(:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*"))) (:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*"))))
:defer t)
(use-package dash :demand t) (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)) (let ((debug-on-error t))
(org-babel-load-file (org-babel-load-file
(concat (file-name-directory load-file-name) "README.org"))) (concat (file-name-directory load-file-name) "README.org")))
(when (or (equal (s-trim (shell-command-to-string "whoami")) "kat") ;; (when imalison:do-benchmark (benchmark-init/deactivate))
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))
;; Local Variables: ;; Local Variables:
;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) ;; flycheck-disabled-checkers: (emacs-lisp-checkdoc)

View File

@ -803,7 +803,7 @@ alphanumeric characters only."
** Use org-tempo to allow inserting templates using e.g. <s ** Use org-tempo to allow inserting templates using e.g. <s
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package org-tempo (use-package org-tempo
:straight nil :ensure nil
:after org) :after org)
#+end_src #+end_src
* Packages * Packages
@ -938,9 +938,6 @@ alphanumeric characters only."
#+end_src #+end_src
***** ui ***** ui
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package emacs-http-server
:demand t)
(use-package org-roam-ui (use-package org-roam-ui
:after org-roam :after org-roam
:custom :custom

View File

@ -1,5 +0,0 @@
# -*- mode: snippet -*-
# name: inp
# key: inp
# --
import numpy as np

View File

@ -1,5 +0,0 @@
# -*- mode: snippet -*-
# name: isa
# key: isa
# --
import sqlalchemy as sa

View File

@ -24,6 +24,7 @@ pom.xml
TAGS TAGS
# Vim # Vim
*.sw*
*.tmp* *.tmp*
# JavaScript # JavaScript

20
dotfiles/gtkrc-2.0 Normal file
View 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"

View File

@ -2,25 +2,18 @@
import argparse import argparse
import os import os
import sys import sys
import logging
logger = logging.getLogger(__name__)
class BrightnessManager(object): class BrightnessManager(object):
@classmethod @classmethod
def find_brightness(cls): 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( 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 @classmethod
def from_path(cls, path): def from_path(cls, path):
logger.warning(f"Using path {path}")
return cls( return cls(
set_brightness_filepath=os.path.join(path, "brightness"), set_brightness_filepath=os.path.join(path, "brightness"),
actual_brightness_filepath=os.path.join(path, "actual_brightness"), actual_brightness_filepath=os.path.join(path, "actual_brightness"),
@ -28,7 +21,7 @@ class BrightnessManager(object):
) )
def __init__( 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.set_brightness_filepath = set_brightness_filepath
self.max_brightness_filepath = max_brightness_filepath self.max_brightness_filepath = max_brightness_filepath
@ -78,11 +71,6 @@ def build_parser():
if __name__ == '__main__': if __name__ == '__main__':
args = build_parser().parse_args() args = build_parser().parse_args()
symlink_path = os.readlink("/home/imalison/.config/brightness_manager/symlink") BrightnessManager.find_brightness().increment_by_proportion(float(args.change) / 100)
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)
if args.do_print: if args.do_print:
print(int(manager.current_proportion * 100)) print(int(IntelBrightnessManager.current_proportion * 100))

View File

@ -1,7 +0,0 @@
#!/usr/bin/env sh
function nr {
sk --ansi -i -c 'nix-search "{}"' | get_cols 1
}
nr "$@"

View File

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

View File

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

View File

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

View File

@ -1,2 +0,0 @@
switch:
nix run nix-darwin -- switch --flake .#

View File

@ -1,5 +1,5 @@
{ config, pkgs, forEachUser, makeEnable, realUsers, ... }: { config, pkgs, forEachUser, makeEnable, realUsers, ... }:
makeEnable config "myModules.base" true { makeEnable config "modules.base" true {
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"openssl-1.0.2u" "openssl-1.0.2u"
"electron-12.2.3" "electron-12.2.3"
@ -36,7 +36,8 @@ makeEnable config "myModules.base" true {
}; };
# Audio # Audio
hardware.pulseaudio.enable = false; sound.enable = true;
hardware.pulseaudio.enable = true;
# Bluetooth # Bluetooth
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@ -70,5 +71,5 @@ makeEnable config "myModules.base" true {
programs.dconf.enable = true; programs.dconf.enable = true;
home-manager.users = forEachUser (import ./home-manager.nix); home-manager.users = forEachUser (import ./home-manager.nix);
nix.settings.trusted-users = realUsers ++ ["gitea-runner"]; nix.settings.trusted-users = realUsers;
} }

View File

@ -1,5 +1,5 @@
{ pkgs, inputs, config, makeEnable, ... }: { pkgs, inputs, config, makeEnable, ... }:
makeEnable config "myModules.ben" true { makeEnable config "modules.ben" true {
home-manager.backupFileExtension = "backup"; # Add this line home-manager.backupFileExtension = "backup"; # Add this line
home-manager.users.ben = { home-manager.users.ben = {
programs.zsh = { programs.zsh = {

View File

@ -1,10 +1,10 @@
{ config, lib, ... }: { config, lib, ... }:
with lib; with lib;
let cfg = config.myModules.cache-server; let cfg = config.modules.cache-server;
in in
{ {
options = { options = {
myModules.cache-server = { modules.cache-server = {
enable = mkEnableOption "nix cache server"; enable = mkEnableOption "nix cache server";
port = mkOption { port = mkOption {
type = types.int; type = types.int;

View File

@ -1,5 +1,5 @@
{ pkgs, config, makeEnable, ... }: { pkgs, config, makeEnable, ... }:
makeEnable config "myModules.code" true { makeEnable config "modules.code" true {
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;

View File

@ -19,13 +19,10 @@
./gnome.nix ./gnome.nix
./imalison.nix ./imalison.nix
./internet-computer.nix ./internet-computer.nix
./k3s.nix
./kat.nix ./kat.nix
./keybase.nix ./keybase.nix
./kubelet.nix
./nix.nix ./nix.nix
./nixified.ai.nix ./nixified.ai.nix
./nvidia.nix
./options.nix ./options.nix
./plasma.nix ./plasma.nix
./postgres.nix ./postgres.nix
@ -45,17 +42,17 @@
}; };
config = lib.mkIf config.features.full.enable { config = lib.mkIf config.features.full.enable {
myModules.base.enable = true; modules.base.enable = true;
myModules.desktop.enable = true; modules.desktop.enable = true;
myModules.plasma.enable = true; modules.plasma.enable = true;
myModules.gnome.enable = false; modules.gnome.enable = false;
myModules.xmonad.enable = true; modules.xmonad.enable = true;
myModules.extra.enable = true; modules.extra.enable = true;
myModules.electron.enable = true; modules.electron.enable = true;
myModules.code.enable = true; modules.code.enable = true;
myModules.games.enable = true; modules.games.enable = true;
myModules.syncthing.enable = true; modules.syncthing.enable = true;
myModules.fonts.enable = true; modules.fonts.enable = true;
myModules.nixified-ai.enable = false; modules.nixified-ai.enable = false;
}; };
} }

View File

@ -1,5 +1,5 @@
{ config, pkgs, makeEnable, ... }: { config, pkgs, makeEnable, ... }:
makeEnable config "myModules.desktop" true { makeEnable config "modules.desktop" true {
imports = [ imports = [
./fonts.nix ./fonts.nix
]; ];
@ -34,7 +34,7 @@ makeEnable config "myModules.desktop" true {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Appearance # Appearance
adwaita-icon-theme gnome.adwaita-icon-theme
hicolor-icon-theme hicolor-icon-theme
libsForQt5.breeze-gtk libsForQt5.breeze-gtk
# materia-theme # materia-theme
@ -60,8 +60,8 @@ makeEnable config "myModules.desktop" true {
feh feh
firefox firefox
cheese gnome.cheese
gpaste gnome.gpaste
kleopatra kleopatra
libnotify libnotify
libreoffice libreoffice
@ -70,8 +70,9 @@ makeEnable config "myModules.desktop" true {
networkmanagerapplet networkmanagerapplet
notify-osd-customizable notify-osd-customizable
okular okular
picom
pinentry pinentry
mission-center psensor
quassel quassel
remmina remmina
rofi rofi
@ -81,7 +82,7 @@ makeEnable config "myModules.desktop" true {
simplescreenrecorder simplescreenrecorder
skippy-xd skippy-xd
synergy synergy
transmission_3-gtk transmission-gtk
vlc vlc
volnoti volnoti
xfce.thunar xfce.thunar

View File

@ -1,5 +1,5 @@
{ pkgs, config, makeEnable, forEachUser, ... }: { pkgs, config, makeEnable, forEachUser, ... }:
makeEnable config "myModules.electron" false { makeEnable config "modules.electron" false {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
element-desktop element-desktop
# bitwarden # bitwarden

View File

@ -34,10 +34,6 @@ with lib;
eval "$(register-python-argcomplete prod-prb)" eval "$(register-python-argcomplete prod-prb)"
eval "$(register-python-argcomplete railbird)" eval "$(register-python-argcomplete railbird)"
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh" [ -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
''; '';
}; };

View File

@ -5,7 +5,6 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
automake automake
bazel bazel
bento4
bind bind
binutils binutils
cachix cachix
@ -17,12 +16,13 @@
emacs emacs
fd fd
ffmpeg ffmpeg
bento4
file file
gawk gawk
gcc gcc
gdb gdb
git-fame
git-lfs git-lfs
git-fame
git-sync git-sync
gitFull gitFull
glxinfo glxinfo
@ -42,7 +42,6 @@
neofetch neofetch
neovim neovim
nix-index nix-index
nix-search-cli
pass pass
patchelf patchelf
pciutils pciutils
@ -52,9 +51,8 @@
rcm rcm
ripgrep ripgrep
silver-searcher silver-searcher
skim
sshfs
sysz sysz
sshfs
tmux tmux
tzupdate tzupdate
udiskie udiskie

View File

@ -1,5 +1,5 @@
{ config, pkgs, makeEnable, ... }: { config, pkgs, makeEnable, ... }:
makeEnable config "myModules.extra" false { makeEnable config "modules.extra" false {
services.expressvpn.enable = true; services.expressvpn.enable = true;
programs.hyprland.enable = true; programs.hyprland.enable = true;

View File

@ -8,11 +8,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1723293904, "lastModified": 1715290355,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", "narHash": "sha256-2T7CHTqBXJJ3ZC6R/4TXTcKoXWHcvubKNj9SfomURnw=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", "rev": "8d37c5bdeade12b6479c85acd133063ab53187a0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -93,11 +93,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1673956053,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -162,11 +162,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719994518, "lastModified": 1712014858,
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -217,45 +217,6 @@
"type": "indirect" "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": { "flake-utils": {
"inputs": { "inputs": {
"systems": [ "systems": [
@ -263,11 +224,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1710146030,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -277,15 +238,12 @@
} }
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1667395993,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -295,6 +253,24 @@
} }
}, },
"flake-utils_3": { "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": { "inputs": {
"systems": "systems_3" "systems": "systems_3"
}, },
@ -312,7 +288,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_4": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_5"
}, },
@ -330,7 +306,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_5": { "flake-utils_6": {
"inputs": { "inputs": {
"systems": "systems_7" "systems": "systems_7"
}, },
@ -348,7 +324,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_6": { "flake-utils_7": {
"inputs": { "inputs": {
"systems": "systems_8" "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" "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": { "git-ignore-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -621,7 +566,7 @@
"haskell-language-server": { "haskell-language-server": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_4",
"fourmolu-011": "fourmolu-011", "fourmolu-011": "fourmolu-011",
"fourmolu-012": "fourmolu-012", "fourmolu-012": "fourmolu-012",
"gitignore": "gitignore", "gitignore": "gitignore",
@ -633,7 +578,7 @@
"lsp": "lsp", "lsp": "lsp",
"lsp-test": "lsp-test", "lsp-test": "lsp-test",
"lsp-types": "lsp-types", "lsp-types": "lsp-types",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_6",
"ormolu-052": "ormolu-052", "ormolu-052": "ormolu-052",
"ormolu-07": "ormolu-07", "ormolu-07": "ormolu-07",
"stylish-haskell-0145": "stylish-haskell-0145" "stylish-haskell-0145": "stylish-haskell-0145"
@ -656,7 +601,7 @@
"haskell-language-server_2": { "haskell-language-server_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_5", "flake-utils": "flake-utils_6",
"fourmolu-011": "fourmolu-011_2", "fourmolu-011": "fourmolu-011_2",
"fourmolu-012": "fourmolu-012_2", "fourmolu-012": "fourmolu-012_2",
"gitignore": "gitignore_2", "gitignore": "gitignore_2",
@ -668,7 +613,7 @@
"lsp": "lsp_2", "lsp": "lsp_2",
"lsp-test": "lsp-test_2", "lsp-test": "lsp-test_2",
"lsp-types": "lsp-types_2", "lsp-types": "lsp-types_2",
"nixpkgs": "nixpkgs_10", "nixpkgs": "nixpkgs_8",
"ormolu-052": "ormolu-052_2", "ormolu-052": "ormolu-052_2",
"ormolu-07": "ormolu-07_2", "ormolu-07": "ormolu-07_2",
"stylish-haskell-0145": "stylish-haskell-0145_2" "stylish-haskell-0145": "stylish-haskell-0145_2"
@ -710,25 +655,6 @@
"type": "github" "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": { "hiedb": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -839,11 +765,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727381010, "lastModified": 1715380449,
"narHash": "sha256-2PqUwnZXjYiPUm5A4d8Z31mvLS4lvUeV/9gUhSMmNR4=", "narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "853e7bd24f875bac2e3a0cf72f993e917d0f8cf5", "rev": "d7682620185f213df384c363288093b486b2883f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -920,16 +846,15 @@
"libgit2": { "libgit2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1715853528, "lastModified": 1697646580,
"narHash": "sha256-J2rCxTecyLbbDdsyBWn9w7r3pbKRMkI9E7RvRgAqBdY=", "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
"owner": "libgit2", "owner": "libgit2",
"repo": "libgit2", "repo": "libgit2",
"rev": "36f7e21ad757a3dacc58cf7944329da6bc1d6e96", "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "libgit2", "owner": "libgit2",
"ref": "v1.8.1",
"repo": "libgit2", "repo": "libgit2",
"type": "github" "type": "github"
} }
@ -1010,18 +935,17 @@
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks-nix": "git-hooks-nix",
"libgit2": "libgit2", "libgit2": "libgit2",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-23-11": "nixpkgs-23-11", "nixpkgs-regression": "nixpkgs-regression",
"nixpkgs-regression": "nixpkgs-regression" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"lastModified": 1727380702, "lastModified": 1715361977,
"narHash": "sha256-1YUAqvZc9YOUERyPiaOGYEg2fIf20+yIWGhzB0Ke6j8=", "narHash": "sha256-j/PLYYGs+Gjge4JGYxMjOhWQEp+GB4Fdicetbpmp6n0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nix", "repo": "nix",
"rev": "0ed67e5b7ee9ad8fae162e1b10b25d22ada2b1f3", "rev": "87ab3c0ea4e6f85e7b902050365bb75cf2836fbb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1053,16 +977,15 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1719989395, "lastModified": 1707802617,
"narHash": "sha256-AppMOCCJ6LYteg4mvlf0xQV+cc9a4iehRWxTOHewouA=", "narHash": "sha256-29HCocTg8aPr6gaY6VHNxJQpZQJ6GAqjFsKPqNFj5qo=",
"owner": "colonelpanic8", "owner": "colonelpanic8",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "a91e03ef13614285d5d476fbf2f096ce65de0a71", "rev": "cb96be8513e2959110c7f90ae5d61ca5aff35862",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "colonelpanic8", "owner": "colonelpanic8",
"ref": "add-g834jzr",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"type": "github" "type": "github"
} }
@ -1070,15 +993,15 @@
"nixos-wsl": { "nixos-wsl": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1727091786, "lastModified": 1715237610,
"narHash": "sha256-n36Vtdtx7tTTKFI9aoWxdNIlJ2dwxoitFDwcPXrS+Jk=", "narHash": "sha256-/ZeWQ4mL3DfHsbTZYc80qMrL4vBfENP0RiGv2KrCrEo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "1fcec53c692c15091ca5bb9eaf86a2cac6c53278", "rev": "61fe33f4194bbbc48c090a2e79f4eb61b47c9b75",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1103,40 +1026,6 @@
"type": "github" "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": { "nixpkgs-regression": {
"locked": { "locked": {
"lastModified": 1643052045, "lastModified": 1643052045,
@ -1153,48 +1042,33 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_10": { "nixpkgs-regression_2": {
"locked": { "locked": {
"lastModified": 1686874404, "lastModified": 1715484633,
"narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=", "narHash": "sha256-Es5etYksi9VsAZSBKZe4rdyi9L000MEx9lFb3TF6Eo8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "efc10371d5c5b8d2d58bab6c1100753efacfe550", "rev": "25e9a6d07dd142bafd94603208a59c107e8f2905",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "haskell-updates",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "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": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1723688146, "lastModified": 1709083642,
"narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=", "narHash": "sha256-7kkJQd4rZ+vFrzWu8sTRtta5D1kBG0LSRYAfhtmMlSo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c3d4ac725177c030b1e289015989da2ad9d56af0", "rev": "b550fe4b4776908ac2a861124307045f8e717c8e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.05", "ref": "release-23.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -1217,27 +1091,27 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1726838390, "lastModified": 1714782413,
"narHash": "sha256-NmcVhGElxDbmEWzgXsyAjlRhUus/nEqPC5So7BOJLUM=", "narHash": "sha256-tbg0MEuKaPcUrnmGCu4xiY5F+7LW2+ECPKVAJd2HLwM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "944b2aea7f0a2d7c79f72468106bc5510cbf5101", "rev": "651b4702e27a388f0f18e1b970534162dec09aff",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.05", "ref": "nixos-23.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1727122398, "lastModified": 1715266358,
"narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", "rev": "f1010e0469db743d14519a1efd37e23f8513d714",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1249,31 +1123,31 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1697723726, "lastModified": 1686874404,
"narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", "narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", "rev": "efc10371d5c5b8d2d58bab6c1100753efacfe550",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "haskell-updates",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1703255338, "lastModified": 1709703039,
"narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@ -1297,39 +1171,16 @@
}, },
"nixpkgs_9": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1709703039, "lastModified": 1682134069,
"narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", "rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "id": "nixpkgs",
"ref": "nixos-unstable", "type": "indirect"
"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"
} }
}, },
"notifications-tray-icon": { "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" "url": "https://hackage.haskell.org/package/ormolu-0.7.1.0/ormolu-0.7.1.0.tar.gz"
} }
}, },
"osx-kvm": { "pre-commit-hooks": {
"flake": false, "inputs": {
"flake-compat": [
"nix"
],
"flake-utils": "flake-utils_2",
"gitignore": [
"nix"
],
"nixpkgs": [
"nix",
"nixpkgs"
],
"nixpkgs-stable": [
"nix",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1701316418, "lastModified": 1712897695,
"narHash": "sha256-Sk8LYhFovoMX1ln7DWYArJQphW2a4h8Xg7/ZEZXwZv4=", "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=",
"owner": "kholia", "owner": "cachix",
"repo": "OSX-KVM", "repo": "pre-commit-hooks.nix",
"rev": "09daff670a7eb9ff616073df329586c5995623a9", "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "kholia", "owner": "cachix",
"repo": "OSX-KVM", "repo": "pre-commit-hooks.nix",
"type": "github" "type": "github"
} }
}, },
"railbird-secrets": { "railbird-secrets": {
"inputs": { "inputs": {
"agenix": "agenix_2", "agenix": "agenix_2",
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_9" "nixpkgs": "nixpkgs_7"
}, },
"locked": { "locked": {
"lastModified": 1726075726, "lastModified": 1718069159,
"narHash": "sha256-eQPDAzUJg8fwqiCyWsKxtHV+G1LGJKs9X3ZtOzytuDE=", "narHash": "sha256-L66mczMl8BPLwZrTVKrXMZRyxHiPvA3CHywbsQyFHW0=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "70d8ffd3f3b79b97477ae0655524273bb098b6c5", "rev": "609f1d32fd1112068d97df0f7d4de82cec878002",
"revCount": 86, "revCount": 52,
"type": "git", "type": "git",
"url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git" "url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"
}, },
@ -1457,7 +1324,7 @@
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixos-wsl": "nixos-wsl", "nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"nixtheplanet": "nixtheplanet", "nixpkgs-regression": "nixpkgs-regression_2",
"notifications-tray-icon": "notifications-tray-icon", "notifications-tray-icon": "notifications-tray-icon",
"railbird-secrets": "railbird-secrets", "railbird-secrets": "railbird-secrets",
"status-notifier-item": "status-notifier-item", "status-notifier-item": "status-notifier-item",
@ -1700,7 +1567,6 @@
}, },
"original": { "original": {
"owner": "taffybar", "owner": "taffybar",
"ref": "old-master",
"repo": "taffybar", "repo": "taffybar",
"type": "github" "type": "github"
} }
@ -1724,11 +1590,11 @@
}, },
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1727122398, "lastModified": 1715266358,
"narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", "rev": "f1010e0469db743d14519a1efd37e23f8513d714",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1740,8 +1606,8 @@
}, },
"vscode-server": { "vscode-server": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_6", "flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_11" "nixpkgs": "nixpkgs_9"
}, },
"locked": { "locked": {
"lastModified": 1713958148, "lastModified": 1713958148,
@ -1771,11 +1637,11 @@
"unstable": "unstable" "unstable": "unstable"
}, },
"locked": { "locked": {
"lastModified": 1726451364, "lastModified": 1714229485,
"narHash": "sha256-6WKgYq0+IzPSXxVl1MfODIVwEbd3Sw0zc5sMSOyzA8I=", "narHash": "sha256-AOy87dJL0T9wSe1kM0tTzFlV++JwmoGW4BfBXzIUbsI=",
"owner": "xmonad", "owner": "xmonad",
"repo": "xmonad", "repo": "xmonad",
"rev": "a4140b93497333ec7f3127ee4dabcb8ae8a721b6", "rev": "cde1a25bca9b7aeeb24af73588221f5f54ae770b",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -1,10 +1,9 @@
{ {
inputs = { inputs = {
nixtheplanet.url = "github:matthewcroughan/nixtheplanet";
railbird-secrets = { railbird-secrets = {
url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"; 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 = { nixpkgs = {
url = "github:NixOS/nixpkgs/nixos-unstable"; url = "github:NixOS/nixpkgs/nixos-unstable";
@ -35,7 +34,7 @@
}; };
taffybar = { taffybar = {
url = "github:taffybar/taffybar/old-master"; url = "github:taffybar/taffybar";
inputs = { inputs = {
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils"; flake-utils.follows = "flake-utils";
@ -105,6 +104,8 @@
vscode-server.url = "github:nix-community/nixos-vscode-server"; vscode-server.url = "github:nix-community/nixos-vscode-server";
nixpkgs-regression = { url = "github:NixOS/nixpkgs"; };
nixified-ai = { url = "github:nixified-ai/flake"; }; nixified-ai = { url = "github:nixified-ai/flake"; };
nixos-wsl = { url = "github:nix-community/NixOS-WSL"; }; nixos-wsl = { url = "github:nix-community/NixOS-WSL"; };
@ -113,7 +114,7 @@
}; };
outputs = inputs@{ 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, ... xmonad-contrib, notifications-tray-icon, nix, agenix, imalison-taffybar, ...
}: }:
let let
@ -125,7 +126,7 @@
name = machineNameFromFilename filename; name = machineNameFromFilename filename;
value = { value = {
modules = [ modules = [
(machinesFilepath + ("/" + filename)) agenix.nixosModules.default nixtheplanet.nixosModules.macos-ventura (machinesFilepath + ("/" + filename)) agenix.nixosModules.default
]; ];
}; };
}; };

View File

@ -1,5 +1,5 @@
{ pkgs, makeEnable, config, ... }: { pkgs, makeEnable, config, ... }:
makeEnable config "myModules.fonts" true { makeEnable config "modules.fonts" true {
# Enable the gtk icon cache # Enable the gtk icon cache
gtk.iconCache.enable = true; gtk.iconCache.enable = true;

View File

@ -1,5 +1,5 @@
{ config, pkgs, makeEnable, ... }: { config, pkgs, makeEnable, ... }:
makeEnable config "myModules.games" false { makeEnable config "modules.games" false {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
steam steam
# heroic # heroic

View File

@ -1,7 +1,7 @@
{ pkgs, config, makeEnable, ... }: { pkgs, config, makeEnable, ... }:
makeEnable config "myModules.gitea-runner" false { makeEnable config "modules.gitea-runner" false {
age.secrets.gitea-runner-token = { age.secrets.gitea-runner-token = {
file = ./secrets/gitea-runner-token.age; file = ./secrets/gitea-runner-token.${config.networking.hostName}.age;
group = "docker"; group = "docker";
}; };

View File

@ -1,5 +1,5 @@
{ config, makeEnable, ... }: { config, makeEnable, ... }:
makeEnable config "myModules.gitea" false { makeEnable config "modules.gitea" false {
services.gitea = { services.gitea = {
enable = true; enable = true;
@ -13,7 +13,6 @@ makeEnable config "myModules.gitea" false {
SSH_PORT = 1123; SSH_PORT = 1123;
HTTP_PORT = 3001; HTTP_PORT = 3001;
ROOT_URL = "https://dev.railbird.ai"; ROOT_URL = "https://dev.railbird.ai";
DISABLE_REGISTRATION = true;
}; };
settings.actions = { settings.actions = {
ENABLED = true; ENABLED = true;

View File

@ -1,5 +1,5 @@
{ config, makeEnable, ... }: { config, makeEnable, ... }:
makeEnable config "myModules.gnome" false { makeEnable config "modules.gnome" false {
services.xserver = { services.xserver = {
desktopManager.gnome.enable = true; desktopManager.gnome.enable = true;
displayManager.gdm.enable = true; displayManager.gdm.enable = true;

View File

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, config, specialArgs, ... }:
{ {
xsession = { xsession = {
enable = true; enable = true;

View File

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

View File

@ -1,11 +1,10 @@
{ pkgs, inputs, config, makeEnable, ... }: { pkgs, inputs, config, makeEnable, ... }:
makeEnable config "myModules.kat" false { makeEnable config "modules.kat" false {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
bitwarden bitwarden
obsidian obsidian
obs-studio obs-studio
ffmpeg ffmpeg
code-cursor
]; ];
environment.extraInit = '' environment.extraInit = ''

View File

@ -23,7 +23,6 @@ rec {
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOVGIGnpkU7HNQ/zl/Ffi562M+laWY9/yIjB63BCMiTS kat@nixcomp.local" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOVGIGnpkU7HNQ/zl/Ffi562M+laWY9/yIjB63BCMiTS kat@nixcomp.local"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3tlMePru6ZlSuf8yUii3N1dy3WwJnSQAt3EgETkctK kat@jay-lenovo.local" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3tlMePru6ZlSuf8yUii3N1dy3WwJnSQAt3EgETkctK kat@jay-lenovo.local"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFrOYD3ReFc2+xFUylBFHREcm1lO7BRJGW5JrOoY3I8s ivanm@strixi-minaj" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFrOYD3ReFc2+xFUylBFHREcm1lO7BRJGW5JrOoY3I8s ivanm@strixi-minaj"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINYy93265G59aA1ksckjqlfeHq0vpEpzC8BwqCrpeXdh kat@Kats-Mac-mini.local"
]; ];
deanKeys = [ deanKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICDvbEVL+y7eV4+mtxOuHwyomBBQ6uYMesctstua20+e deanwenstrand@deans-mbp-2.lan" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICDvbEVL+y7eV4+mtxOuHwyomBBQ6uYMesctstua20+e deanwenstrand@deans-mbp-2.lan"
@ -56,6 +55,4 @@ rec {
benKeys = [ benKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAJ6lD0c+frh2vzQjvsrsmJpwM1ovaY59m5NNPml5G+E benjamin.j.corner@gmail.com" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAJ6lD0c+frh2vzQjvsrsmJpwM1ovaY59m5NNPml5G+E benjamin.j.corner@gmail.com"
]; ];
interviewKeys = [
];
} }

View File

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

View File

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

View File

@ -6,16 +6,16 @@
inputs.nixos-hardware.nixosModules.dell-xps-17-9700-nvidia inputs.nixos-hardware.nixosModules.dell-xps-17-9700-nvidia
]; ];
myModules.base.enable = true; modules.base.enable = true;
myModules.desktop.enable = true; modules.desktop.enable = true;
myModules.xmonad.enable = true; modules.xmonad.enable = true;
myModules.extra.enable = false; modules.extra.enable = false;
myModules.code.enable = true; modules.code.enable = true;
myModules.games.enable = false; modules.games.enable = false;
myModules.syncthing.enable = true; modules.syncthing.enable = true;
myModules.fonts.enable = true; modules.fonts.enable = true;
myModules.nixified-ai.enable = false; modules.nixified-ai.enable = false;
myModules.gitea-runner.enable = false; modules.gitea-runner.enable = false;
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;

View File

@ -8,10 +8,10 @@
sublime sublime
vlc vlc
]; ];
myModules.desktop.enable = false; modules.desktop.enable = false;
myModules.plasma.enable = false; modules.plasma.enable = false;
imalison.nixOverlay.enable = false; imalison.nixOverlay.enable = false;
myModules.wsl.enable = true; modules.wsl.enable = true;
networking.hostName = "bencbox"; networking.hostName = "bencbox";

View File

@ -13,31 +13,25 @@ in
extraGroups = ["syncthing"]; extraGroups = ["syncthing"];
}; };
myModules.raspberry-pi.enable = true; modules.raspberry-pi.enable = true;
myModules.base.enable = true; modules.base.enable = true;
myModules.desktop.enable = true; modules.desktop.enable = true;
myModules.xmonad.enable = false; modules.xmonad.enable = false;
myModules.extra.enable = false; modules.extra.enable = false;
myModules.code.enable = true; modules.code.enable = true;
myModules.games.enable = false; modules.games.enable = false;
myModules.syncthing.enable = true; modules.syncthing.enable = true;
myModules.fonts.enable = true; modules.fonts.enable = true;
myModules.nixified-ai.enable = false; modules.nixified-ai.enable = false;
myModules.cache-server = { modules.cache-server = {
enable = false; enable = false;
host-string = biskcomp-nginx-hostnames; host-string = biskcomp-nginx-hostnames;
port = 80; port = 80;
path = "/nix-cache"; path = "/nix-cache";
}; };
myModules.gitea.enable = true; modules.gitea.enable = true;
myModules.gitea-runner.enable = false; modules.gitea-runner.enable = false;
myModules.railbird-k3s = {
enable = true;
serverAddr = "https://dev.railbird.ai:6443";
};
services.k3s.disableAgent = true;
services.vaultwarden = { services.vaultwarden = {
enable = true; enable = true;
@ -91,16 +85,6 @@ in
''; '';
}; };
}; };
"docs.railbird.ai" = {
enableACME = true;
forceSSL = true;
root = "/var/lib/syncthing/railbird/docs";
locations."/" = {
extraConfig = ''
autoindex on;
'';
};
};
}; };
}; };

View File

@ -5,15 +5,15 @@
../configuration.nix ../configuration.nix
]; ];
myModules.base.enable = true; modules.base.enable = true;
myModules.desktop.enable = true; modules.desktop.enable = true;
myModules.xmonad.enable = false; modules.xmonad.enable = false;
myModules.extra.enable = false; modules.extra.enable = false;
myModules.code.enable = true; modules.code.enable = true;
myModules.games.enable = false; modules.games.enable = false;
myModules.syncthing.enable = true; modules.syncthing.enable = true;
myModules.fonts.enable = true; modules.fonts.enable = true;
myModules.nixified-ai.enable = false; modules.nixified-ai.enable = false;
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;

View File

@ -5,10 +5,10 @@
]; ];
services.xserver.enable = true; services.xserver.enable = true;
environment.systemPackages = with pkgs; [sublime]; environment.systemPackages = with pkgs; [sublime];
myModules.desktop.enable = false; modules.desktop.enable = false;
myModules.plasma.enable = false; modules.plasma.enable = false;
imalison.nixOverlay.enable = false; imalison.nixOverlay.enable = false;
myModules.wsl.enable = true; modules.wsl.enable = true;
networking.hostName = "dean-zephyrus"; networking.hostName = "dean-zephyrus";

View File

@ -5,7 +5,7 @@
]; ];
imalison.nixOverlay.enable = false; imalison.nixOverlay.enable = false;
myModules.wsl.enable = true; modules.wsl.enable = true;
networking.hostName = "jay-lenovo-wsl"; networking.hostName = "jay-lenovo-wsl";

View File

@ -11,7 +11,6 @@
android-studio android-studio
linuxPackages_latest.perf linuxPackages_latest.perf
zenmonitor zenmonitor
code-cursor
]; ];
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@ -27,7 +26,7 @@
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
myModules.postgres.enable = true; modules.postgres.enable = true;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;

View File

@ -5,24 +5,23 @@
../configuration.nix ../configuration.nix
]; ];
myModules.railbird-k3s = { modules.base.enable = true;
enable = true; modules.desktop.enable = true;
serverAddr = "https://ryzen-shine.local:6443"; modules.xmonad.enable = true;
}; modules.extra.enable = false;
myModules.base.enable = true; modules.code.enable = true;
myModules.desktop.enable = true; modules.games.enable = false;
myModules.xmonad.enable = true; modules.syncthing.enable = true;
myModules.extra.enable = false; modules.fonts.enable = true;
myModules.code.enable = true; modules.nixified-ai.enable = false;
myModules.games.enable = false; modules.gitea-runner.enable = true;
myModules.syncthing.enable = true; modules.postgres.enable = true;
myModules.fonts.enable = true;
myModules.nixified-ai.enable = false;
myModules.gitea-runner.enable = true;
myModules.postgres.enable = true;
hardware.enableRedistributableFirmware = 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.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];

View File

@ -4,25 +4,13 @@
../configuration.nix ../configuration.nix
]; ];
services.macos-ventura = {
enable = true;
openFirewall = true;
vncListenAddr = "0.0.0.0";
};
features.full.enable = true; features.full.enable = true;
myModules.cache-server = { modules.cache-server = {
enable = true; enable = true;
port = 3090; port = 3090;
}; };
myModules.gitea-runner.enable = true; modules.gitea-runner.enable = true;
myModules.vscode.enable = true; modules.vscode.enable = true;
myModules.kat.enable = true;
myModules.nvidia.enable = true;
myModules.railbird-k3s = {
enable = true;
serverAddr = "https://dev.railbird.ai:6443";
};
networking.hostName = "nixquick"; networking.hostName = "nixquick";
@ -33,6 +21,15 @@
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.loader.systemd-boot.enable = true; 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; hardware.nvidia.modesetting.enable = true;
# This also enables v4l2loopback # This also enables v4l2loopback

View File

@ -12,36 +12,58 @@
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
modules.postgres.enable = true;
services.k3s.role = "agent"; hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
services.k3s.extraFlags = lib.mkForce ["--node-label nixos-nvidia-cdi=enabled"]; hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
services.xserver = {
videoDrivers = [ "nvidia" ];
};
# Enable OpenGL
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
powerManagement.enable = false; powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use. # Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer). # Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false; 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, # Enable the Nvidia settings menu,
# accessible via `nvidia-settings`. # accessible via `nvidia-settings`.
nvidiaSettings = true; 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; features.full.enable = false;
myModules.base.enable = true; modules.base.enable = true;
myModules.desktop.enable = true; modules.desktop.enable = true;
myModules.xmonad.enable = false; modules.xmonad.enable = false;
myModules.code.enable = true; modules.gnome.enable = true;
myModules.syncthing.enable = true; modules.code.enable = true;
myModules.fonts.enable = true; modules.syncthing.enable = true;
myModules.plasma.enable = true; modules.fonts.enable = true;
myModules.nvidia.enable = true; modules.plasma.enable = false;
myModules.gitea-runner.enable = true; modules.gitea-runner.enable = true;
myModules.railbird-k3s = {
enable = false;
serverAddr = "https://dev.railbird.ai:6443";
};
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae"; { device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae";

View File

@ -6,17 +6,14 @@
]; ];
features.full.enable = true; features.full.enable = true;
myModules.kubelet.enable = false;
myModules.nvidia.enable = true;
# Needed for now because monitors have different refresh rates # Needed for now because monitors have different refresh rates
myModules.xmonad.picom.vSync.enable = false; modules.xmonad.picom.vSync.enable = false;
myModules.cache-server = { modules.cache-server = {
enable = true; enable = true;
port = 3090; port = 3090;
}; };
myModules.gitea-runner.enable = true; modules.gitea-runner.enable = true;
myModules.postgres.enable = true; modules.postgres.enable = true;
myModules.railbird-k3s.enable = true;
boot.loader.systemd-boot.configurationLimit = 5; boot.loader.systemd-boot.configurationLimit = 5;
@ -48,15 +45,15 @@
boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.initrd.kernelModules = [ "dm-snapshot" ];
# install nvidia drivers in addition to intel one # install nvidia drivers in addition to intel one
hardware.graphics.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
hardware.graphics.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
services.xserver = { services.xserver = {
videoDrivers = [ "nvidia" ]; videoDrivers = [ "nvidia" ];
}; };
hardware.nvidia.modesetting.enable = true; hardware.nvidia.modesetting.enable = true;
hardware.graphics.enable32Bit = true; hardware.opengl.driSupport32Bit = true;
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View File

@ -4,7 +4,7 @@
../configuration.nix ../configuration.nix
]; ];
myModules.wsl.enable = true; modules.wsl.enable = true;
networking.hostName = "strixi-minaj-wsl"; networking.hostName = "strixi-minaj-wsl";

View File

@ -3,20 +3,18 @@
{ {
imports = [ imports = [
../configuration.nix ../configuration.nix
inputs.nixos-hardware.nixosModules.asus-rog-strix-g834jzr
]; ];
hardware.nvidia.open = false; modules.base.enable = true;
myModules.base.enable = true; modules.desktop.enable = true;
myModules.desktop.enable = true; modules.xmonad.enable = true;
myModules.xmonad.enable = true; modules.extra.enable = false;
myModules.extra.enable = false; modules.code.enable = true;
myModules.code.enable = true; modules.games.enable = false;
myModules.games.enable = false; modules.syncthing.enable = true;
myModules.syncthing.enable = true; modules.fonts.enable = true;
myModules.fonts.enable = true; modules.nixified-ai.enable = false;
myModules.nixified-ai.enable = false; modules.gitea-runner.enable = false;
myModules.gitea-runner.enable = false;
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@ -25,15 +23,21 @@
]; ];
services.xserver.dpi = 96; 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.availableKernelModules = [ "vmd" "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
hardware.graphics = { services.xserver = {
enable = true; videoDrivers = [ "nvidia" ];
enable32Bit = true;
}; };
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.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;

View File

@ -18,7 +18,6 @@
}; };
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
nix = rec { nix = rec {
extraOptions = '' extraOptions = ''

View File

@ -1,5 +1,5 @@
{ inputs, config, specialArgs, ... }: { inputs, config, specialArgs, ... }:
specialArgs.makeEnable config "myModules.nixified-ai" false { specialArgs.makeEnable config "modules.nixified-ai" false {
imports = [ imports = [
inputs.nixified-ai.nixosModules.invokeai inputs.nixified-ai.nixosModules.invokeai
]; ];

View File

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

View File

@ -1,6 +1,6 @@
{ lib, ... }: { { lib, ... }: {
options = { options = {
myModules.xmonad.picom.vSync.enable = lib.mkOption { modules.xmonad.picom.vSync.enable = lib.mkOption {
default = true; default = true;
type = lib.types.bool; type = lib.types.bool;
}; };

View File

@ -17,16 +17,15 @@ final: prev: {
}; };
}); });
# picom = prev.picom.overrideAttrs (old: { picom = prev.picom.overrideAttrs (old: {
# src = prev.fetchFromGitHub { src = prev.fetchFromGitHub {
# repo = "picom"; repo = "picom";
# owner = "dccsillag"; owner = "dccsillag";
# rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5"; rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5";
# sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8=="; sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8==";
# }; };
# nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre final.gnugrep.pcre2 final.libpcre]; nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre];
# buildInputs = old.buildInputs ++ [final.pcre]; });
# });
expressvpn = prev.expressvpn.overrideAttrs (_: { expressvpn = prev.expressvpn.overrideAttrs (_: {
src = prev.fetchurl { src = prev.fetchurl {

View File

@ -1,5 +1,5 @@
{ config, makeEnable, ... }: { config, makeEnable, ... }:
makeEnable config "myModules.plasma" true { makeEnable config "modules.plasma" true {
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.xserver = { services.xserver = {
desktopManager.plasma5.enable = true; desktopManager.plasma5.enable = true;

View File

@ -1,5 +1,5 @@
{ pkgs, config, makeEnable, realUsers, ... }: { pkgs, config, makeEnable, realUsers, ... }:
makeEnable config "myModules.postgres" true { makeEnable config "modules.postgres" true {
services.postgresql = { services.postgresql = {
enable = true; enable = true;
package = pkgs.postgresql_15; package = pkgs.postgresql_15;

View File

@ -1,5 +1,5 @@
{ pkgs, config, makeEnable, realUsers, ... }: { pkgs, config, makeEnable, realUsers, ... }:
makeEnable config "myModules.rabbitmq" true { makeEnable config "modules.rabbitmq" true {
services.rabbitmq = { services.rabbitmq = {
enable = true; enable = true;
}; };

View File

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

View File

@ -1,6 +1,6 @@
{ config, pkgs, inputs, makeEnable, ... }: { config, pkgs, inputs, makeEnable, ... }:
makeEnable config "myModules.raspberry-pi" false { makeEnable config "modules.raspberry-pi" false {
imports = [ imports = [
inputs.nixos-hardware.nixosModules.raspberry-pi-4 inputs.nixos-hardware.nixosModules.raspberry-pi-4
]; ];
@ -12,7 +12,6 @@ makeEnable config "myModules.raspberry-pi" false {
# hardware.raspberry-pi."4".audio.enable = true; # hardware.raspberry-pi."4".audio.enable = true;
boot = { boot = {
initrd.systemd.tpm2.enable = false;
initrd.availableKernelModules = [ initrd.availableKernelModules = [
"usbhid" "usbhid"
"usb_storage" "usb_storage"

View File

@ -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
òEÑ“É4š˜à`|[áØ ]BÌs/€£a1o7ðF'<27>xU§<55>¤qšáðpdäid®,£ìp“bB0ØL‰nÃã~Qm|žK\ŽçiM™G>¿ðx9ÿïÒ€Ù9òwQŒÝ=ýl^YÊÐ+E[J¤É<C2A4>y뀧ûåœDàQÃè1k†Ó
4‡ñH« Èh!

View File

@ -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…ðÆeïYòUêp[ò4ËVëî-þLE%­Â¾Ó<C2BE>BSWõ²Õ½ñ0¼ÿ¯=¢‡-Jt•ÌO<C38C>õšï<C5A1>ç€É9èp_Kd¬

Binary file not shown.

Binary file not shown.

View File

@ -10,11 +10,5 @@ in
"gitea-runner-token.jimi-hendnix.age".publicKeys = keys.agenixKeys; "gitea-runner-token.jimi-hendnix.age".publicKeys = keys.agenixKeys;
"gitea-runner-token.adele.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.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; "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;
} }

View File

@ -17,12 +17,10 @@ let
mixos = { id = "7DMMUDT-CO33EMS-LQW65MX-3BVYDBT-ZZWDJC6-SWEF6SW-ICUMWOE-ZC4IBQK"; }; mixos = { id = "7DMMUDT-CO33EMS-LQW65MX-3BVYDBT-ZZWDJC6-SWEF6SW-ICUMWOE-ZC4IBQK"; };
strixi-minaj-wsl = { id = "DOAEFFI-W6EZY3K-GDUHDLX-6DQPVFC-XU3G65X-5KX6RKK-EMF7ZT7-YKKKOAM"; }; strixi-minaj-wsl = { id = "DOAEFFI-W6EZY3K-GDUHDLX-6DQPVFC-XU3G65X-5KX6RKK-EMF7ZT7-YKKKOAM"; };
strixi-minaj = { id = "IF76WOS-WVYFAQG-ZZMIT3R-ZR6EQQH-YQP3FGZ-BJ3LJKO-56FK2XA-UREADQM"; }; 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; allDevices = builtins.attrNames devices;
in in
makeEnable config "myModules.syncthing" true { makeEnable config "modules.syncthing" true {
system.activationScripts.syncthingPermissions = { system.activationScripts.syncthingPermissions = {
text = '' text = ''
chown -R syncthing:syncthing /var/lib/syncthing chown -R syncthing:syncthing /var/lib/syncthing

View File

@ -92,12 +92,7 @@ in
railbird = userDefaults // { railbird = userDefaults // {
inherit extraGroups; inherit extraGroups;
name = "railbird"; name = "railbird";
openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.railbirdFullstackDevKeys; openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.railbirdDevKeys;
};
interview = userDefaults // {
inherit extraGroups;
name = "interview";
openssh.authorizedKeys.keys = interviewKeys ++ inputs.railbird-secrets.keys.railbirdFullstackDevKeys;
}; };
}; };

View File

@ -1,5 +1,5 @@
{ inputs, config, makeEnable, forEachUser, ... }: { inputs, config, makeEnable, forEachUser, ... }:
makeEnable config "myModules.vscode" true { makeEnable config "modules.vscode" true {
home-manager.users = forEachUser { home-manager.users = forEachUser {
imports = [inputs.vscode-server.homeModules.default]; imports = [inputs.vscode-server.homeModules.default];
services.vscode-server.enable = true; services.vscode-server.enable = true;

View File

@ -1,13 +1,13 @@
{ config, inputs, pkgs, makeEnable, ... }: { config, inputs, pkgs, makeEnable, ... }:
makeEnable config "myModules.wsl" false { makeEnable config "modules.wsl" false {
imports = [ imports = [
inputs.nixos-wsl.nixosModules.wsl inputs.nixos-wsl.nixosModules.wsl
]; ];
myModules.base.enable = false; modules.base.enable = false;
myModules.desktop.enable = false; modules.desktop.enable = false;
myModules.xmonad.enable = false; modules.xmonad.enable = false;
myModules.plasma.enable = false; modules.plasma.enable = false;
# Update timezone automatically # Update timezone automatically
services.tzupdate.enable = true; services.tzupdate.enable = true;

View File

@ -1,5 +1,5 @@
{ config, pkgs, inputs, forEachUser, makeEnable, ... }: { config, pkgs, inputs, forEachUser, makeEnable, ... }:
makeEnable config "myModules.xmonad" true { makeEnable config "modules.xmonad" true {
nixpkgs.overlays = with inputs; [ nixpkgs.overlays = with inputs; [
xmonad.overlay xmonad.overlay
xmonad-contrib.overlay xmonad-contrib.overlay
@ -25,7 +25,7 @@ makeEnable config "myModules.xmonad" true {
# Haskell Desktop # Haskell Desktop
haskellPackages.xmonad haskellPackages.xmonad
haskellPackages.imalison-xmonad haskellPackages.imalison-xmonad
# haskellPackages.notifications-tray-icon haskellPackages.notifications-tray-icon
haskellPackages.gtk-sni-tray haskellPackages.gtk-sni-tray
haskellPackages.status-notifier-item haskellPackages.status-notifier-item
haskellPackages.dbus-hslogger haskellPackages.dbus-hslogger
@ -80,7 +80,7 @@ makeEnable config "myModules.xmonad" true {
services.picom = { services.picom = {
enable = true; enable = true;
vSync = config.myModules.xmonad.picom.vSync.enable; vSync = config.modules.xmonad.picom.vSync.enable;
backend = "glx"; backend = "glx";
extraArgs = ["--experimental-backends"]; extraArgs = ["--experimental-backends"];
@ -137,21 +137,21 @@ makeEnable config "myModules.xmonad" true {
}; };
}; };
# systemd.user.services.notifications-tray-icon = { systemd.user.services.notifications-tray-icon = {
# Unit = { Unit = {
# Description = "Notifications tray icon"; Description = "Notifications tray icon";
# After = [ "graphical-session-pre.target" "tray.target" ]; After = [ "graphical-session-pre.target" "tray.target" ];
# PartOf = [ "graphical-session.target" ]; PartOf = [ "graphical-session.target" ];
# }; };
# Install = { WantedBy = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; };
# Service = { Service = {
# ExecStart = "${pkgs.haskellPackages.notifications-tray-icon}/bin/notifications-tray-icon --github-token-pass dfinity-github-api-token"; ExecStart = "${pkgs.haskellPackages.notifications-tray-icon}/bin/notifications-tray-icon --github-token-pass dfinity-github-api-token";
# Restart = "always"; Restart = "always";
# RestartSec = 3; RestartSec = 3;
# }; };
# }; };
systemd.user.services.shutter = { systemd.user.services.shutter = {
Unit = { Unit = {