diff --git a/flake.lock b/flake.lock index ee10bfe..765bc8b 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1736955230, - "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", + "lastModified": 1745630506, + "narHash": "sha256-bHCFgGeu8XjWlVuaWzi3QONjDW3coZDqSHvnd4l7xus=", "owner": "ryantm", "repo": "agenix", - "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", + "rev": "96e078c646b711aee04b82ba01aefbff87004ded", "type": "github" }, "original": { @@ -47,11 +47,11 @@ ] }, "locked": { - "lastModified": 1700795494, - "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "lastModified": 1744478979, + "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "rev": "43975d782b418ebf4969e9ccba82466728c2851b", "type": "github" }, "original": { @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1741786315, - "narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=", + "lastModified": 1746695594, + "narHash": "sha256-pAAWYs3S+/tY65vemHZdVSXpeIz4JINEJZoPoBjr8JU=", "owner": "nix-community", "repo": "disko", - "rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de", + "rev": "6bb82b77ce140137177e30df067759931ab60a73", "type": "github" }, "original": { @@ -181,11 +181,11 @@ ] }, "locked": { - "lastModified": 1703113217, - "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "lastModified": 1745494811, + "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=", "owner": "nix-community", "repo": "home-manager", - "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be", "type": "github" }, "original": { @@ -201,11 +201,11 @@ ] }, "locked": { - "lastModified": 1742996658, - "narHash": "sha256-snxgTLVq6ooaD3W3mPHu7LVWpoZKczhxHAUZy2ea4oA=", + "lastModified": 1746719124, + "narHash": "sha256-KOL73WIjO00ds1oIe+5HAcGcpd/TfE6dymmmYbiSlYM=", "owner": "nix-community", "repo": "home-manager", - "rev": "693840c01b9bef9e54100239cef937e53d4661bf", + "rev": "3c59c5132b64e885faca381e713b579dcbddba75", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742889210, - "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", + "lastModified": 1746461020, + "narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "698214a32beb4f4c8e3942372c694f40848b360d", + "rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae", "type": "github" }, "original": { @@ -441,11 +441,11 @@ ] }, "locked": { - "lastModified": 1742649964, - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "lastModified": 1746537231, + "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", "type": "github" }, "original": { @@ -492,11 +492,11 @@ "nixpkgs-24_11": "nixpkgs-24_11" }, "locked": { - "lastModified": 1742413977, - "narHash": "sha256-NkhM9GVu3HL+MiXtGD0TjuPCQ4GFVJPBZ8KyI2cFDGU=", + "lastModified": 1746637515, + "narHash": "sha256-bUq2uHmsfY3SpJrR4dpncITykufTiD2320JsOKgIYl0=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "b4fbffe79c00f19be94b86b4144ff67541613659", + "rev": "a7d2b05a9920d90f5eb8076f449acdb6c1ad79ca", "type": "gitlab" }, "original": { @@ -508,11 +508,11 @@ }, "stable": { "locked": { - "lastModified": 1742751704, - "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=", + "lastModified": 1746557022, + "narHash": "sha256-QkNoyEf6TbaTW5UZYX0OkwIJ/ZMeKSSoOMnSDPQuol0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092", + "rev": "1d3aeb5a193b9ff13f63f4d9cc169fb88129f860", "type": "github" }, "original": { diff --git a/home/alex/cli.nix b/home/alex/cli.nix index d45e3a7..b408b76 100644 --- a/home/alex/cli.nix +++ b/home/alex/cli.nix @@ -104,8 +104,14 @@ in xdg.configFile.tmux = { target = "tmux/tmux.conf"; text = '' - set -g default-terminal "tmux-256color" + set -g default-terminal "xterm-256color" + set-window-option -g xterm-keys on + set -ag update-environment "SSH_TTY SSH_CLIENT" set -g prefix C-z + set -g status-keys vi + setw -g mode-keys vi + setw -g aggressive-resize on + set -g mouse on # do not wait for a manually entered escape sequence, just forward it immediately set -g escape-time 0 bind-key C-z send-prefix diff --git a/home/alex/modules/email.nix b/home/alex/modules/email.nix index 95e8a09..c881abc 100644 --- a/home/alex/modules/email.nix +++ b/home/alex/modules/email.nix @@ -35,6 +35,10 @@ in enable = true; hooks.preNew = "mbsync --all"; }; + programs.mu = { + enable = true; + hooks.preNew = "mbsync --all"; + }; accounts.email = { accounts.failco = mkAccount "me@failco.de" // { diff --git a/home/alex/programs/emacs/default.nix b/home/alex/programs/emacs/default.nix index 1707339..cc65be5 100644 --- a/home/alex/programs/emacs/default.nix +++ b/home/alex/programs/emacs/default.nix @@ -15,7 +15,11 @@ in programs.emacs = { enable = true; - extraPackages = epkgs: with epkgs; [ vterm ]; + extraPackages = + epkgs: with epkgs; [ + vterm + mu4e + ]; }; services.emacs = { diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index 46aed85..c5ee5c8 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -8,15 +8,12 @@ ;; Some functionality uses this to identify you, e.g. GPG configuration, email ;; clients, file templates and snippets. (setq! user-full-name "Alexander Kobjolke" - user-mail-address "me@failco.de") + user-mail-address "me@failco.de" + auth-sources '("~/.local/share/emacs/authinfo.gpg" "~/.authinfo.gpg" "~/.netrc") + auth-source-cache-expiry nil) (when ak/at-work? - (setq! user-mail-address "alexander.kobjolke@atlas-elektronik.com") - (add-to-list 'lsp-disabled-clients 'cmakels) - - ;; exclude cmake from formatting on save - (add-to-list '+format-on-save-disabled-modes - 'cmake-mode)) + (setq! user-mail-address "alexander.kobjolke@atlas-elektronik.com")) ;; Doom exposes five (optional) variables for controlling fonts in Doom. Here @@ -42,14 +39,9 @@ (require 're-builder) (setq! reb-re-syntax 'string) -;; If you use `org' and don't want your org files in the default location below, -;; change `org-directory'. It must be set before org loads! -(setq! org-directory "~/org/" - org-log-into-drawer t) - ;; do not create a new workspace for each emacsclient -(after! persp-mode -   (setq! persp-emacsclient-init-frame-behaviour-override "main")) +;; (after! persp-mode +;;   (setq! persp-emacsclient-init-frame-behaviour-override "main")) (after! lsp (add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.devenv\\'") @@ -74,8 +66,8 @@ (setq! undo-limit 80000000 ; Raise undo-limit to 80Mb auto-save-default t ; Nobody likes to loose work, I certainly don't - switch-to-buffer-in-dedicated-window 'pop - switch-to-buffer-obey-display-actions t + ;; switch-to-buffer-in-dedicated-window 'pop + ;; switch-to-buffer-obey-display-actions t ) ;; tweak some VI defaults @@ -106,11 +98,14 @@ (interactive) (scroll-up 1)))) -(after! haskell-mode - (setq haskell-process-type 'cabal-repl)) - -(after! org +(use-package! org + :init + ;; If you use `org' and don't want your org files in the default location below, + ;; change `org-directory'. It must be set before org loads! + (setq! org-directory "~/org/") (setq! org-log-into-drawer t + org-agenda-include-diary t + org-agenda-sticky t org-todo-keywords '( (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") @@ -129,6 +124,9 @@ )) + + :config + (use-package! org-ql) (use-package! org-modern) (use-package! org-bookmark-heading) @@ -152,7 +150,7 @@ (activities-tabs-mode) (setopt tab-bar-show 1) (map! - (:prefix ("C-c a" . "Activities") + (:prefix-map ("C-c a" . "Activities") :desc "Switch activity" "a" #'activities-switch :desc "Resume activity" "r" #'activities-resume :desc "Create new activity" "n" #'activities-new @@ -166,13 +164,26 @@ (when ak/at-work? (after! forge - (add-to-list 'forge-alist '("gitlab.atlas.de" "gitlab.atlas.de/api/v4" "gitlab.atlas.de" forge-gitlab-repository)) - ) + (add-to-list 'forge-alist '("gitlab.atlas.de" "gitlab.atlas.de/api/v4" "gitlab.atlas.de" forge-gitlab-repository))) - (after! code-review + (after! haskell-mode + (setq haskell-process-type 'cabal-new-repl)) + + (setq! plantuml-jar-path "~/opt/plantuml.jar") + (setq! org-plantuml-jar-path plantuml-jar-path) + + (after! lsp + (add-to-list 'lsp-disabled-clients 'cmakels)) + + (add-to-list '+format-on-save-disabled-modes 'cmake-mode) + (add-to-list '+format-on-save-disabled-modes 'nxml-mode) + + (use-package! code-review + :init (setq code-review-auth-login-marker 'forge) ;; (setq code-review-gitlab-host "gitlab.atlas.de/api") ;; (setq code-review-gitlab-graphql-host "gitlab.atlas.de/api") + :config (add-hook 'code-review-mode-hook (lambda () ;; include *Code-Review* buffer into current workspace @@ -234,20 +245,25 @@ (setq! org-gtd-update-ack "3.0.0") :config + (setf org-gtd-id--generate #'org-id-get-create) (setq! org-gtd-directory org-directory) (setq! org-gtd-default-file-name "actionable") + (setq! org-gtd-refile-to-any-target nil) + (setq! org-gtd-engage-prefix-width 40) (setq! org-edna-use-inheritance t) ;; (setq org-gtd-areas-of-focus '("house" "haskell" "foss")) - ;; (setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) + (setq org-gtd-organize-hooks nil) (org-edna-mode) (map! :leader :desc "Capture" "X" #'org-gtd-capture - (:prefix ("d" . "GTD") + (:prefix-map ("d" . "GTD") :desc "Capture" "c" #'org-gtd-capture :desc "Engage" "e" #'org-gtd-engage + :desc "Engage Context" "@" #'org-gtd-engage-grouped-by-context :desc "Process inbox" "p" #'org-gtd-process-inbox :desc "Show all next" "n" #'org-gtd-show-all-next - (:prefix ("r" . "Review") + :desc "Fix project" "f" #'org-gtd-projects-fix-todo-keywords-for-project-at-point + (:prefix-map ("r" . "Review") :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items @@ -255,12 +271,14 @@ )) (map! :map org-gtd-clarify-map :desc "Organize this item" "C-c C-c" #'org-gtd-organize) - (map! (:prefix ("C-c d" . "GTD") + (map! (:prefix-map ("C-c d" . "GTD") :desc "Capture" "c" #'org-gtd-capture :desc "Engage" "e" #'org-gtd-engage + :desc "Engage Context" "@" #'org-gtd-engage-grouped-by-context :desc "Process inbox" "p" #'org-gtd-process-inbox :desc "Show all next" "n" #'org-gtd-show-all-next - (:prefix ("r" . "Review") + :desc "Fix project" "f" #'org-gtd-projects-fix-todo-keywords-for-project-at-point + (:prefix-map ("r" . "Review") :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items)))) @@ -296,7 +314,7 @@ :config (setq! denote-directory (concat org-directory "/notes")) (map! :leader - (:prefix ("n" . "notes") + (:prefix-map ("n" . "notes") :desc "Denote" "d" #'denote-open-or-create-with-command )) :bind @@ -313,8 +331,8 @@ org-agenda-compact-blocks t org-agenda-start-day nil org-agenda-span 1 - org-agenda-start-on-weekday nil - ) + org-agenda-start-on-weekday nil) + (setq! org-agenda-custom-commands '(("a" "Getting Things done" ((agenda "" ((org-agenda-overriding-header "") diff --git a/home/alex/programs/emacs/doom/init.el b/home/alex/programs/emacs/doom/init.el index ead17e4..a42d272 100644 --- a/home/alex/programs/emacs/doom/init.el +++ b/home/alex/programs/emacs/doom/init.el @@ -191,4 +191,4 @@ :config ;;literate - (default +bindings +smartparens)) + (default +bindings +gnupg +smartparens)) diff --git a/home/alex/programs/jujutsu/default.nix b/home/alex/programs/jujutsu/default.nix index 32f978c..f7b6642 100644 --- a/home/alex/programs/jujutsu/default.nix +++ b/home/alex/programs/jujutsu/default.nix @@ -12,6 +12,10 @@ user.name = config.programs.git.userName; user.email = config.programs.git.userEmail; ui.default-command = "log"; + aliases.init = [ + "git" + "init" + ]; }; }; } diff --git a/modules/nh.nix b/modules/nh.nix index b3fac63..86050ea 100644 --- a/modules/nh.nix +++ b/modules/nh.nix @@ -1,14 +1,23 @@ { lib, + config, ... }: +let + cfg = config.programs.nh; +in { - programs.nh = { + config.programs.nh = { enable = true; clean.enable = true; clean.extraArgs = "--keep-since 4d --keep 3"; flake = "/home/alex/src/nixos-config"; }; - nix.gc.automatic = lib.mkForce false; + config.nix.gc.automatic = lib.mkIf cfg.enable (lib.mkForce false); + config.environment = lib.mkIf cfg.enable { + variables = lib.mkIf (cfg.flake != null) { + NH_FLAKE = cfg.flake; + }; + }; }