Compare commits
15 commits
389eb3d497
...
54d97e55d9
Author | SHA1 | Date | |
---|---|---|---|
54d97e55d9 | |||
45a78e44b4 | |||
4da58e8adc | |||
96bca1f669 | |||
d7000927a3 | |||
f4feb18c9a | |||
49f2ada271 | |||
a121569f84 | |||
da236805f5 | |||
6efc109f1c | |||
ff2c16e55e | |||
5938a873b3 | |||
b676b70273 | |||
1bbd87d36e | |||
d6d6498ee9 |
14 changed files with 213 additions and 141 deletions
8
hmModules/chirp/default.nix
Normal file
8
hmModules/chirp/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
in
|
||||
# nixpkgs = builtins.getFlake "github:NixOS/nixpkgs/932fc16b263f26803d3960e4400bc13dde84a972";
|
||||
# chirp = nixpkgs.legacyPackages.${pkgs.system}.chirp;
|
||||
{
|
||||
home.packages = [ pkgs.chirp ];
|
||||
}
|
|
@ -33,8 +33,8 @@
|
|||
(use-package consult-eglot
|
||||
:after (consult eglot embark)
|
||||
:config
|
||||
(require 'consult-eglot-embark)
|
||||
(consult-eglot-embark-mode)
|
||||
(require 'consult-eglot-embark)
|
||||
(consult-eglot-embark-mode)
|
||||
)
|
||||
|
||||
(use-package emacs
|
||||
|
@ -123,9 +123,20 @@
|
|||
(use-package rainbow-delimiters
|
||||
:hook (prog-mode . rainbow-delimiters-mode))
|
||||
|
||||
(use-package pulsar
|
||||
:after (consult imenu)
|
||||
:config
|
||||
(pulsar-global-mode)
|
||||
;; TODO use :hook (I've tried but it didn't work, why?)
|
||||
(add-hook 'consult-after-jump-hook #'pulsar-recenter-top)
|
||||
(add-hook 'consult-after-jump-hook #'pulsar-reveal-entry)
|
||||
(add-hook 'imenu-after-jump-hook #'pulsar-recenter-top)
|
||||
(add-hook 'imenu-after-jump-hook #'pulsar-reveal-entry)
|
||||
(add-hook 'next-error-hook #'pulsar-pulse-line)
|
||||
)
|
||||
|
||||
(use-package clipetty
|
||||
:delight
|
||||
:ensure t
|
||||
:hook (after-init . global-clipetty-mode))
|
||||
|
||||
(use-package nerd-icons)
|
||||
|
@ -145,8 +156,8 @@
|
|||
(treemacs-load-theme "nerd-icons"))
|
||||
|
||||
(use-package nerd-icons-dired
|
||||
:hook
|
||||
(dired-mode . nerd-icons-dired-mode))
|
||||
:hook
|
||||
(dired-mode . nerd-icons-dired-mode))
|
||||
|
||||
(use-package indent-bars
|
||||
:config
|
||||
|
@ -158,7 +169,7 @@
|
|||
(indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 0.4))
|
||||
(indent-bars-no-stipple-char (string-to-char "┋"))
|
||||
(indent-bars-prefer-character 't) ;; so it works also in terminal
|
||||
)
|
||||
)
|
||||
|
||||
(use-package diredfl
|
||||
:config (diredfl-global-mode))
|
||||
|
@ -263,7 +274,7 @@
|
|||
'("s" . meow-kill)
|
||||
'("t" . meow-till)
|
||||
'("u" . meow-undo)
|
||||
'("U" . meow-undo-in-selection)
|
||||
'("U" . vundo)
|
||||
'("/" . meow-visit)
|
||||
'("v" . meow-visit)
|
||||
'("w" . meow-mark-word)
|
||||
|
@ -310,27 +321,27 @@
|
|||
(call-interactively 'ccr/h-resize))
|
||||
(t (push key unread-command-events))))
|
||||
:bind (("C-c w k" . windmove-up)
|
||||
("C-c w l" . windmove-right)
|
||||
("C-c w j" . windmove-down)
|
||||
("C-c w h" . windmove-left)
|
||||
("M-k" . windmove-up)
|
||||
("M-l" . windmove-right)
|
||||
("M-j" . windmove-down)
|
||||
("M-h" . windmove-left)
|
||||
("C-c w <up>" . windmove-up)
|
||||
("C-c w <right>" . windmove-right)
|
||||
("C-c w <down>" . windmove-down)
|
||||
("C-c w <left>" . windmove-left)
|
||||
("C-c w q" . delete-window)
|
||||
("C-c w K" . windmove-delete-up)
|
||||
("C-c w L" . windmove-delete-right)
|
||||
("C-c w J" . windmove-delete-down)
|
||||
("C-c w H" . windmove-delete-left)
|
||||
("C-c w x" . kill-buffer-and-window)
|
||||
("C-c w v" . split-window-right)
|
||||
("C-c w s" . split-window-below)
|
||||
("C-c w V" . ccr/v-resize)
|
||||
("C-c w S" . ccr/h-resize)))
|
||||
("C-c w l" . windmove-right)
|
||||
("C-c w j" . windmove-down)
|
||||
("C-c w h" . windmove-left)
|
||||
("M-k" . windmove-up)
|
||||
("M-l" . windmove-right)
|
||||
("M-j" . windmove-down)
|
||||
("M-h" . windmove-left)
|
||||
("C-c w <up>" . windmove-up)
|
||||
("C-c w <right>" . windmove-right)
|
||||
("C-c w <down>" . windmove-down)
|
||||
("C-c w <left>" . windmove-left)
|
||||
("C-c w q" . delete-window)
|
||||
("C-c w K" . windmove-delete-up)
|
||||
("C-c w L" . windmove-delete-right)
|
||||
("C-c w J" . windmove-delete-down)
|
||||
("C-c w H" . windmove-delete-left)
|
||||
("C-c w x" . kill-buffer-and-window)
|
||||
("C-c w v" . split-window-right)
|
||||
("C-c w s" . split-window-below)
|
||||
("C-c w V" . ccr/v-resize)
|
||||
("C-c w S" . ccr/h-resize)))
|
||||
|
||||
(use-package vertico
|
||||
:custom
|
||||
|
@ -341,8 +352,8 @@
|
|||
(vertico-cycle t)
|
||||
(vertico-mode t)
|
||||
:bind (:map vertico-map
|
||||
(("DEL" . vertico-directory-delete-char)
|
||||
("C-DEL" . vertico-directory-delete-word))))
|
||||
(("DEL" . vertico-directory-delete-char)
|
||||
("C-DEL" . vertico-directory-delete-word))))
|
||||
|
||||
;; (use-package vertico-posframe
|
||||
;; :after vertico
|
||||
|
@ -370,24 +381,26 @@
|
|||
([remap goto-line] . consult-goto-line)
|
||||
([remazp imenu] . consult-imenu)
|
||||
([remap project-switch-to-buffer] . consult-project-buffer)
|
||||
("C-c b b" . consult-project-buffer)
|
||||
("C-c b B" . consult-buffer)
|
||||
("C-c g l" . consult-goto-line)
|
||||
("C-c b i" . consult-imenu)
|
||||
("C-c f f" . consult-find)
|
||||
("C-c F" . consult-ripgrep)
|
||||
("C-c f" . consult-find)
|
||||
("C-c l" . consult-line)
|
||||
("C-c m" . wconsult-mark)
|
||||
("C-c o o" . consult-outline)
|
||||
("C-c e" . consult-flymake))
|
||||
("C-c b b" . consult-project-buffer)
|
||||
("C-c b B" . consult-buffer)
|
||||
("C-c g l" . consult-goto-line)
|
||||
("C-c b i" . consult-imenu)
|
||||
("C-c f f" . consult-find)
|
||||
("C-c F" . consult-ripgrep)
|
||||
("C-c f" . consult-find)
|
||||
("C-c l" . consult-line)
|
||||
("C-c L" . consult-focus-lines)
|
||||
("C-c m" . consult-mark)
|
||||
("C-c o o" . consult-outline)
|
||||
("C-c e" . consult-flymake))
|
||||
:custom
|
||||
(xref-show-xrefs-function #'consult-xref)
|
||||
(xref-show-definitions-function #'consult-xref))
|
||||
|
||||
(use-package orderless
|
||||
:custom
|
||||
(completion-styles '(orderless)))
|
||||
(completion-styles '(orderless basic))
|
||||
(completion-category-overrides '((file (styles basic partial-completion)))))
|
||||
|
||||
(use-package embark
|
||||
:bind (("C-'" . embark-act)
|
||||
|
@ -403,9 +416,9 @@
|
|||
(tab-always-indent 'complete)
|
||||
(kind-icon-default-face 'corfu-default)
|
||||
:bind (:map corfu-map
|
||||
(("M-d" . corfu-doc-toggle)
|
||||
("M-l" . corfu-show-location)
|
||||
("SPC" . corfu-insert-separator)))
|
||||
(("M-d" . corfu-doc-toggle)
|
||||
("M-l" . corfu-show-location)
|
||||
("SPC" . corfu-insert-separator)))
|
||||
:init
|
||||
(global-corfu-mode))
|
||||
|
||||
|
@ -473,7 +486,7 @@
|
|||
:feature 'function
|
||||
:override t
|
||||
`((formal) @font-lock-type-face)
|
||||
|
||||
|
||||
:language 'nix
|
||||
:feature 'function
|
||||
`((attrpath) @font-lock-function-name-face)
|
||||
|
@ -495,8 +508,8 @@
|
|||
|
||||
(use-package typescript-ts-mode
|
||||
:hook ((typescript-ts-mode . (lambda ()
|
||||
(require 'eglot)
|
||||
(eglot-ensure))))
|
||||
(require 'eglot)
|
||||
(eglot-ensure))))
|
||||
:mode "\\.ts\\'")
|
||||
|
||||
(use-package haskell-ts-mode
|
||||
|
@ -550,6 +563,10 @@
|
|||
:hook ((lisp-mode . enable-paredit-mode)
|
||||
(emacs-lisp-mode . enable-paredit-mode)))
|
||||
|
||||
(use-package aggressive-indent
|
||||
:hook ((lisp-mode . aggressive-indent-mode)
|
||||
(emacs-lisp-mode . aggressive-indent-mode)))
|
||||
|
||||
(use-package eldoc
|
||||
:delight)
|
||||
|
||||
|
@ -560,10 +577,10 @@
|
|||
(eldoc-box-lighter "ElBox")
|
||||
:bind (("C-c h" . eldoc-box-help-at-point)))
|
||||
|
||||
(use-package diff-hl
|
||||
:init
|
||||
(global-diff-hl-mode 1)
|
||||
(diff-hl-margin-mode 1))
|
||||
(use-package diff-hl
|
||||
:init
|
||||
(global-diff-hl-mode 1)
|
||||
(diff-hl-margin-mode 1))
|
||||
|
||||
(use-package envrc
|
||||
:config
|
||||
|
@ -595,7 +612,7 @@
|
|||
|
||||
(use-package eshell
|
||||
:init (require 'eshell) ;; this slows down Emacs startup but it's needed when starting eshell with
|
||||
;; emacsclient --eval before opening another eshell buffer directly from inside Emacs
|
||||
;; emacsclient --eval before opening another eshell buffer directly from inside Emacs
|
||||
(eat-eshell-mode)
|
||||
(eat-eshell-visual-command-mode)
|
||||
:custom ((eshell-prefer-lisp-functions t)
|
||||
|
@ -652,18 +669,19 @@
|
|||
|
||||
(use-package popper
|
||||
:custom
|
||||
(popper-reference-buffers '("\*Messages\*"
|
||||
"Output\*$"
|
||||
"\\*Async Shell Command\\*"
|
||||
(completion-list-mode . hide)
|
||||
help-mode
|
||||
compilation-mode
|
||||
"^\\*Nix-REPL*\\*$" nix-repl-mode ;eshell as a popup
|
||||
"^\\*.+-eshell.*\\*$" eshell-mode ;eshell as a popup
|
||||
"^\\*shell.*\\*$" shell-mode ;shell as a popup
|
||||
"^\\*term.*\\*$" term-mode ;term as a popup
|
||||
"^\\*eat.*\\*$" eat-mode ;eat as a popup
|
||||
))
|
||||
(popper-reference-buffers
|
||||
'("\*Messages\*"
|
||||
"Output\*$"
|
||||
"\\*Async Shell Command\\*"
|
||||
(completion-list-mode . hide)
|
||||
help-mode
|
||||
compilation-mode
|
||||
"^\\*Nix-REPL*\\*$" nix-repl-mode
|
||||
"^\\*.+-eshell.*\\*$" eshell-mode
|
||||
"^\\*shell.*\\*$" shell-mode
|
||||
"^\\*term.*\\*$" term-mode
|
||||
"^\\*eat.*\\*$" eat-mode
|
||||
))
|
||||
(popper-window-height 0.33)
|
||||
(popper-echo-lines 1)
|
||||
(popper-mode-line nil)
|
||||
|
@ -751,18 +769,18 @@ This is meant to be an helper to be called from the window manager."
|
|||
;; FIXME the following doesn't work when using the daemon, it should be executed only
|
||||
;; one time after the first frame is created
|
||||
:hook (server-after-make-frame . (lambda ()
|
||||
(set-face-font 'variable-pitch "Dejavu Serif-14")
|
||||
(set-face-font 'fixed-pitch "Iosevka Comfy-14")
|
||||
(set-face-font 'org-table "Iosevka Comfy-14")
|
||||
(set-face-font 'org-meta-line "Iosevka Comfy-14")
|
||||
(set-face-font 'org-drawer "Iosevka Comfy-14")
|
||||
(set-face-font 'org-special-keyword "Iosevka Comfy-14")
|
||||
(set-face-font 'org-property-value "Iosevka Comfy-14")
|
||||
(set-face-font 'org-block "Iosevka Comfy-14")
|
||||
(set-face-font 'org-modern-tag "Iosevka Comfy-14")
|
||||
(set-face-font 'org-modern-date-active "Iosevka Comfy-14")
|
||||
(set-face-font 'org-modern-date-inactive "Iosevka Comfy-14")))
|
||||
)
|
||||
(set-face-font 'variable-pitch "Dejavu Serif-14")
|
||||
(set-face-font 'fixed-pitch "Iosevka Comfy-14")
|
||||
(set-face-font 'org-table "Iosevka Comfy-14")
|
||||
(set-face-font 'org-meta-line "Iosevka Comfy-14")
|
||||
(set-face-font 'org-drawer "Iosevka Comfy-14")
|
||||
(set-face-font 'org-special-keyword "Iosevka Comfy-14")
|
||||
(set-face-font 'org-property-value "Iosevka Comfy-14")
|
||||
(set-face-font 'org-block "Iosevka Comfy-14")
|
||||
(set-face-font 'org-modern-tag "Iosevka Comfy-14")
|
||||
(set-face-font 'org-modern-date-active "Iosevka Comfy-14")
|
||||
(set-face-font 'org-modern-date-inactive "Iosevka Comfy-14")))
|
||||
)
|
||||
|
||||
(use-package org-roam
|
||||
:custom
|
||||
|
@ -795,23 +813,23 @@ This is meant to be an helper to be called from the window manager."
|
|||
(string-to-number (cdr (assoc "SPENT" (org-roam-node-properties node)))))
|
||||
(defun org-roam-node-date (node)
|
||||
"Return the org datestring when a node was created (obtained from the filename)"
|
||||
(format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node)))))
|
||||
(format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node)))))
|
||||
|
||||
(org-roam-ql-defpred
|
||||
'date-range
|
||||
"Check if node was created in given time range"
|
||||
#'org-roam-node-date
|
||||
#'(lambda (node-date start-date end-date)
|
||||
(let ((node-date (condition-case nil
|
||||
;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org")
|
||||
;; then it's always discarded (the epoch time is given to it)
|
||||
(encode-time (org-parse-time-string node-date))
|
||||
(error (encode-time (org-parse-time-string "<1970-01-01>")))))
|
||||
(start-date (encode-time (org-parse-time-string start-date)))
|
||||
(end-date (encode-time (org-parse-time-string end-date))))
|
||||
(and (time-less-p start-date node-date)
|
||||
(time-less-p node-date end-date)))
|
||||
))
|
||||
'date-range
|
||||
"Check if node was created in given time range"
|
||||
#'org-roam-node-date
|
||||
#'(lambda (node-date start-date end-date)
|
||||
(let ((node-date (condition-case nil
|
||||
;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org")
|
||||
;; then it's always discarded (the epoch time is given to it)
|
||||
(encode-time (org-parse-time-string node-date))
|
||||
(error (encode-time (org-parse-time-string "<1970-01-01>")))))
|
||||
(start-date (encode-time (org-parse-time-string start-date)))
|
||||
(end-date (encode-time (org-parse-time-string end-date))))
|
||||
(and (time-less-p start-date node-date)
|
||||
(time-less-p node-date end-date)))
|
||||
))
|
||||
|
||||
(defun ccr/org-roam-spent-hours (client &optional date-start date-end)
|
||||
"Return the total spent hours on something (usually a client)"
|
||||
|
@ -851,13 +869,13 @@ This is meant to be an helper to be called from the window manager."
|
|||
("C-c n s" . consult-org-roam-search))
|
||||
|
||||
(use-package org-roam-ui
|
||||
:after org-roam
|
||||
:hook (after-init . org-roam-ui-mode) ;; don't care about startup time since I'm using Emacs daemonized
|
||||
:config
|
||||
(setq org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-open-on-start nil))
|
||||
:after org-roam
|
||||
:hook (after-init . org-roam-ui-mode) ;; don't care about startup time since I'm using Emacs daemonized
|
||||
:config
|
||||
(setq org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-open-on-start nil))
|
||||
|
||||
(use-package gptel
|
||||
:custom
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
sshKeys = [ "CE2FD0D9BECBD8876811714925066CC257413416" ];
|
||||
extraConfig =
|
||||
let
|
||||
pinentryRofi = pkgs.writeShellApplication {
|
||||
|
|
|
@ -46,7 +46,6 @@ in
|
|||
$DRY_RUN_CMD echo ${hosts.sisko} >> "${config.user.home}/.ssh/authorized_keys"
|
||||
$DRY_RUN_CMD echo ${hosts.kirk} >> "${config.user.home}/.ssh/authorized_keys"
|
||||
$DRY_RUN_CMD echo ${users.ccr-ssh} >> "${config.user.home}/.ssh/authorized_keys"
|
||||
$DRY_RUN_CMD echo ${users.ccr-gpg} >> "${config.user.home}/.ssh/authorized_keys"
|
||||
|
||||
if [[ ! -d "${sshdDirectory}" ]]; then
|
||||
$DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}"
|
||||
|
|
|
@ -90,6 +90,7 @@
|
|||
"libreoffice"
|
||||
"emacs"
|
||||
"vial"
|
||||
"chirp"
|
||||
];
|
||||
extraGroups = [ ];
|
||||
backupPaths = [ ];
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
keys = {
|
||||
users = {
|
||||
ccr-gpg = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5cEUx25pnZiH3eBrE2xNbJ92gJiKSznDUNRzcEL4ti6FlJm+75p4q0hgdqHwStR8+uCWBL6viVFCGutOVMFE5MX1Oc3A8fJdR6H9Rrwvk/1UQzqzc9tWxw1qPLKz+fnPDomjOvNofghCWQRwX3Xf1HnIqvRwELpNbR9i+/cHkDGzLJxkstbt4gol8ywMPkw02QdKk8s5MEd1vawxc+7Chs0JPW57RDqDYFErYys52JLeAViCBB9bofF+KT42LuRXKSjWlvCV9kR5TL49vUeBgzMQWMh++WQdN4m9lpqFqYyc75I49/E0HGf8LChDSS+hvRnb5MbtnVGjEA4WDHyldmJCvUNob5CUo4FjoSPRi+S/J3Ads8D4JVwaJOJEVqmMKEhiQ0Hzk4hwe3eV/VumlZj4U/QjaCrqqi4TW/iP0gNRfzcfiM+G/z5R7w1NMUpTX7oilyKjMQmGnXB857D3SSptS7dwh5OiKhVmrQMRCduooUsj236abqLU28K//RnxhOgh8kDGgoUHApnTiMZNKhgLiR42lKrubNcW1tAAqoNyFLMwwXeMLjh0iP1b5y8ntfNPNIcGb7vcwpS24z/aIjW7rQ4J7x5EBphHGhys6ne+irdhOM8c7kFr+c8+Q2oU0YAtFuMYztAFOHm1e20X00Zvys2nuee+hT9F1NungAQ== andrea.ciceri@autistici.org";
|
||||
ccr-ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzCmDCtlGscpesHuoiruVWD2IjYEFtaIl9Y2JZGiOAyf3V17KPx0MikcknfmxSHi399SxppiaXQHxo/1wjGxXkXNTTv6h1fBuqwhJE6C8+ZSV+gal81vEnXX+/9w2FQqtVgnG2/mO7oJ0e3FY+6kFpOsGEhYexoGt/UxIpAZoqIN+CWNhJIASUkneaZWtgwiL8Afb59kJQ2E7WbBu+PjYZ/s5lhPobhlkz6s8rkhItvYdiSHT0DPDKvp1oEbxsxd4E4cjJFbahyS8b089NJd9gF5gs0b74H/2lUUymnl63cV37Mp4iXB4rtE69MbjqsGEBKTPumLualmc8pOGBHqWIdhAqGdZQeBajcb6VK0E3hcU0wBB+GJgm7KUzlAHGdC3azY0KlHMrLaZN0pBrgCVR6zBNWtZz2B2qMBZ8Cw+K4vut8GuspdXZscID10U578GxQvJAB9CdxNUtrzSmKX2UtZPB1udWjjIAlejzba4MG73uXgQEdv0NcuHNwaLuCWxTUT5QQF18IwlJ23Mg8aPK8ojUW5A+kGHAu9wtgZVcX1nS5cmYKSgLzcP1LA1l9fTJ1vqBSuy38GTdUzfzz7AbnkRfGPj2ALDgyx17Rc5ommjc1k0gFoeIqiLaxEs5FzDcRyo7YvZXPsGeIqNCYwQWw3+U+yUEJby8bxGb2d/6YQ== andrea.ciceri@autistici.org";
|
||||
oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t";
|
||||
hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent";
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
services.adguardhome = {
|
||||
enable = true;
|
||||
port = 3000;
|
||||
mutableSettings = true;
|
||||
settings = {
|
||||
openFirewall = true;
|
||||
};
|
||||
|
@ -11,4 +12,7 @@
|
|||
53
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [ 53 ];
|
||||
environment.persistence."/persist".directories = [
|
||||
"/var/lib/AdGuardHome"
|
||||
];
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
fleetFlake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
@ -24,6 +25,7 @@ let
|
|||
curl
|
||||
tea
|
||||
attic-client
|
||||
fleetFlake.packages.${pkgs.system}.forgejo-report-checks
|
||||
]
|
||||
}; do
|
||||
for bin in "$dir"/bin/*; do
|
||||
|
|
|
@ -1,11 +1,35 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
theme = pkgs.fetchzip {
|
||||
url = "https://github.com/catppuccin/gitea/releases/download/v1.0.1/catppuccin-gitea.tar.gz";
|
||||
hash = "sha256-et5luA3SI7iOcEIQ3CVIu0+eiLs8C/8mOitYlWQa/uI=";
|
||||
stripRoot = false;
|
||||
};
|
||||
in
|
||||
{
|
||||
systemd.services = {
|
||||
forgejo = {
|
||||
preStart =
|
||||
let
|
||||
inherit (config.services.forgejo) stateDir;
|
||||
in
|
||||
lib.mkAfter ''
|
||||
rm -rf ${stateDir}/custom/public/assets
|
||||
mkdir -p ${stateDir}/custom/public/assets
|
||||
ln -sf ${theme} ${stateDir}/custom/public/assets/css
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services.forgejo = {
|
||||
# TODO migrate to Postgres
|
||||
enable = true;
|
||||
package = pkgs.forgejo;
|
||||
settings = {
|
||||
DEFAULT = {
|
||||
RUN_MODE = "prod"; # set to prod for better logs (worse performance)
|
||||
|
@ -18,6 +42,7 @@
|
|||
HTTP_PORT = 3002;
|
||||
ROOT_URL = "https://git.aciceri.dev";
|
||||
};
|
||||
federation.ENABLED = true;
|
||||
mailer = {
|
||||
ENABLED = true;
|
||||
PROTOCOL = "smtp+starttls";
|
||||
|
@ -29,6 +54,20 @@
|
|||
other = {
|
||||
SHOW_FOOTER_VERSION = false;
|
||||
};
|
||||
ui = {
|
||||
DEFAULT_THEME = "catppuccin-mocha-blue";
|
||||
THEMES = builtins.concatStringsSep "," (
|
||||
[ "auto,forgejo-auto,forgejo-dark,forgejo-light,arc-gree,gitea" ]
|
||||
++ (map (name: lib.removePrefix "theme-" (lib.removeSuffix ".css" name)) (
|
||||
builtins.attrNames (builtins.readDir theme)
|
||||
))
|
||||
);
|
||||
};
|
||||
"ui.meta" = {
|
||||
AUTHOR = "Andrea Ciceri";
|
||||
DESCRIPTION = "My personal git forge";
|
||||
KEYWORDS = "git,self-hosted,forgejo,open-source,nix,nixos";
|
||||
};
|
||||
};
|
||||
secrets.mailer.PASSWD = config.age.secrets.autistici-password.path;
|
||||
dump.enable = true;
|
||||
|
|
|
@ -13,8 +13,8 @@ let
|
|||
garmin_connect = pkgs.fetchFromGitHub {
|
||||
owner = "cyberjunky";
|
||||
repo = "home-assistant-garmin_connect";
|
||||
rev = "d42edcabc67ba6a7f960e849c8aaec1aabef87c0";
|
||||
hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI=";
|
||||
rev = "e2deaed42b66c982b150ca9a9e543031ad51228c";
|
||||
hash = "sha256-TtrcgLGnhNRBF1SqKMkPlEi/XEBUtDAnaWfzkh50+D8=";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
@ -51,6 +51,10 @@ in
|
|||
"wake_on_lan"
|
||||
"prometheus"
|
||||
];
|
||||
customComponents = with pkgs.home-assistant-custom-components; [
|
||||
tuya_local
|
||||
localtuya
|
||||
];
|
||||
extraPackages =
|
||||
python3Packages: with python3Packages; [
|
||||
# used by pun_sensor
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
HostKey /ssh_initrd_host_ed25519_key
|
||||
'';
|
||||
authorizedKeys = with (import ../../lib).keys; [
|
||||
users.ccr-gpg
|
||||
users.ccr-ssh
|
||||
hosts.sisko
|
||||
];
|
||||
|
|
|
@ -117,6 +117,7 @@ let
|
|||
agenix
|
||||
solidity-mode
|
||||
telega
|
||||
aggressive-indent
|
||||
# org-re-reveal # FIXME very not nice hash mismatch when building
|
||||
]
|
||||
)
|
||||
|
@ -126,6 +127,8 @@ let
|
|||
ef-themes
|
||||
indent-bars
|
||||
ement
|
||||
vundo
|
||||
pulsar
|
||||
])
|
||||
++ (with nongnuPackages; [
|
||||
eat
|
||||
|
|
|
@ -6,16 +6,17 @@ from os import environ
|
|||
|
||||
client = AuthenticatedClient(base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"])
|
||||
|
||||
print("hello")
|
||||
|
||||
with open('result.json', 'r') as file:
|
||||
data = json.load(file)
|
||||
|
||||
print("Reporting statuses acording to the following result.json")
|
||||
print(json.dumps(data, indent=2))
|
||||
|
||||
for result in data['results']:
|
||||
attr = result['attr']
|
||||
success = result['success']
|
||||
type = result['type']
|
||||
print(attr)
|
||||
print(f"Report status success={success} for {type} {attr}")
|
||||
response = repo_create_status.sync_detailed(
|
||||
owner="aciceri",
|
||||
repo="nixfleet",
|
||||
|
@ -24,7 +25,9 @@ for result in data['results']:
|
|||
body=CreateStatusOption(
|
||||
context=type,
|
||||
description=attr,
|
||||
target_url="https://google.com",
|
||||
target_url="https://git.aciceri.dev", # FIXME
|
||||
state="success" if success else "failure" # ma be pending,success,failure,error_message
|
||||
)
|
||||
)
|
||||
|
||||
print("Done reporting statuses")
|
||||
|
|
|
@ -6,7 +6,6 @@ with keys.users;
|
|||
{
|
||||
"cachix-personal-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
mothership
|
||||
kirk
|
||||
sisko
|
||||
|
@ -15,90 +14,85 @@ with keys.users;
|
|||
];
|
||||
"magit-forge-github-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
mothership
|
||||
kirk
|
||||
];
|
||||
"git-workspace-tokens.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
mothership
|
||||
kirk
|
||||
picard
|
||||
];
|
||||
"hydra-admin-password.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
mothership
|
||||
];
|
||||
"hydra-github-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
mothership
|
||||
];
|
||||
"cache-private-key.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
mothership
|
||||
];
|
||||
"autistici-password.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
kirk
|
||||
picard
|
||||
sisko
|
||||
];
|
||||
"hercules-ci-join-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
mothership
|
||||
sisko
|
||||
picard
|
||||
];
|
||||
"hercules-ci-binary-caches.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
mothership
|
||||
sisko
|
||||
picard
|
||||
];
|
||||
"hercules-ci-secrets-json.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
mothership
|
||||
sisko
|
||||
picard
|
||||
];
|
||||
"minio-credentials.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
picard
|
||||
sisko
|
||||
];
|
||||
"aws-credentials.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
picard
|
||||
sisko
|
||||
];
|
||||
"nextcloud-admin-pass.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"home-planimetry.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"home-assistant-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"chatgpt-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
kirk
|
||||
mothership
|
||||
picard
|
||||
|
@ -106,86 +100,86 @@ with keys.users;
|
|||
];
|
||||
"cloudflare-dyndns-api-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"restic-hetzner-password.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
picard
|
||||
sisko
|
||||
kirk
|
||||
];
|
||||
"hass-ssh-key.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"grafana-password.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"matrix-registration-shared-secret.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"matrix-sliding-sync-secret.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"forgejo-runners-token.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
picard
|
||||
];
|
||||
"forgejo-nix-access-tokens.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
picard
|
||||
];
|
||||
"garmin-collector-environment.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"hetzner-storage-box-sisko-ssh-password.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"sisko-restic-password.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"sisko-attic-environment-file.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
|
||||
# WireGuard
|
||||
"picard-wireguard-private-key.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
picard
|
||||
];
|
||||
"sisko-wireguard-private-key.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
sisko
|
||||
];
|
||||
"kirk-wireguard-private-key.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
kirk
|
||||
];
|
||||
"deltaflyer-wireguard-private-key.age".publicKeys = [
|
||||
ccr-ssh
|
||||
ccr-gpg
|
||||
|
||||
deltaflyer
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue