Explorar el Código

feature: added `nixpkgs-fmt` and `deadnix` git hooks

Zander Hawke hace 10 meses
padre
commit
e33967f3e9

+ 2 - 1
.gitignore

@@ -4,4 +4,5 @@ result*
 *.qcow2
 .DS_Store
 cert*
-key*
+key*
+/.pre-commit-config.yaml

+ 6 - 6
flake.lock

@@ -209,11 +209,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1753554374,
-        "narHash": "sha256-VvPpzxOsQZHa3njTV5o8EXETQJIGF4saGrRpe4sPV/s=",
+        "lastModified": 1753595562,
+        "narHash": "sha256-Ci88mAdtiP5RQkYmVhRUq69iYPMM7/lS9/mw+FnC7DE=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "37fec70bd5dace2fb025d3f7cbc0899a7fce6081",
+        "rev": "710771af3d1c8c3f86a9e5d562616973ed5f3f21",
         "type": "github"
       },
       "original": {
@@ -306,11 +306,11 @@
     },
     "nixpkgs-darwin": {
       "locked": {
-        "lastModified": 1753473540,
-        "narHash": "sha256-kaG2a9/6iWiRehjLZLToAlM1zFxRf3s+BOYOurPOmK4=",
+        "lastModified": 1753591331,
+        "narHash": "sha256-i+vD4qeN3l63/z3CO8TrOE37mATPsqA8MWXB85QHTv4=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "15c2251b2407166a0d7a211af9966a9fe1406cf0",
+        "rev": "70dc2728548f79fcc5a466597323d1ed219243e9",
         "type": "github"
       },
       "original": {

+ 19 - 30
flake.nix

@@ -1,21 +1,4 @@
 {
-  nixConfig = {
-    trusted-substituters = [
-      "https://devenv.cachix.org"
-      "https://cachix.cachix.org"
-      "https://nixpkgs.cachix.org"
-      "https://nix-community.cachix.org"
-    ];
-
-    trusted-public-keys = [
-      "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
-      "cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM="
-      "nixpkgs.cachix.org-1:q91R6hxbwFvDqTSDKwDAV4T5PxqXGxswD8vhONFMeOE="
-      "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
-      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
-    ];
-  };
-
   inputs = {
     nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05?shallow=true";
     nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin?shallow=true";
@@ -34,7 +17,7 @@
     nixvim.inputs.nixpkgs.follows = "nixpkgs";
   };
 
-  outputs = { self, nixpkgs, nixpkgs-unstable, devenv, ... }@inputs:
+  outputs = { self, ... }@inputs:
     rec {
 
       lib = import ./lib {
@@ -55,15 +38,15 @@
       };
 
       nixosConfigurations = {
-        modgud = lib.mkSystem {
-          system = "x86_64-linux";
-          modules = [ ./hosts/modgud ];
-        };
-
-        odin = lib.mkSystem {
-          system = "x86_64-linux";
-          modules = [ ./hosts/odin ];
-        };
+        # modgud = lib.mkSystem {
+        #   system = "x86_64-linux";
+        #   modules = [ ./hosts/modgud ];
+        # };
+
+        # odin = lib.mkSystem {
+        #   system = "x86_64-linux";
+        #   modules = [ ./hosts/odin ];
+        # };
       };
 
       darwinConfigurations = {
@@ -74,14 +57,20 @@
       };
 
       devShells = lib.mkDevenvShell {
+        git-hooks.hooks = {
+          deadnix.enable = true;
+          nixpkgs-fmt.enable = true;
+        };
+
         scripts.update.exec = "nix flake update";
       };
 
       modules = import ./modules;
       overlays = import ./overlays { inherit inputs; };
 
-      packages = lib.eachSystemWithPkgs (import ./packages);
-      codecov-cli = inputs.nixpkgs-unstable.legacyPackages.aarch64-darwin.codecov-cli;
-      formatter = lib.eachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
+      packages = lib.eachSystem (import ./packages) // lib.eachSystem (system: {
+        devenv-up = self.devShells.${system}.default.config.procfileScript;
+        devenv-test = self.devShells.${system}.default.config.test;
+      });
     };
 }

+ 7 - 6
home/features/cli/fish.nix

@@ -9,10 +9,11 @@
     '';
   };
 
-  xdg.configFile."fish/themes/Catppuccin Frappe.theme".text = lib.strings.fileContents (pkgs.fetchFromGitHub {
-    owner = "catppuccin";
-    repo = "fish";
-    rev = "cc8e4d8";
-    sha256 = "sha256-udiU2TOh0lYL7K7ylbt+BGlSDgCjMpy75vQ98C1kFcc=";
-  } + "/themes/Catppuccin Frappe.theme");
+  xdg.configFile."fish/themes/Catppuccin Frappe.theme".text = lib.strings.fileContents (pkgs.fetchFromGitHub
+    {
+      owner = "catppuccin";
+      repo = "fish";
+      rev = "cc8e4d8";
+      sha256 = "sha256-udiU2TOh0lYL7K7ylbt+BGlSDgCjMpy75vQ98C1kFcc=";
+    } + "/themes/Catppuccin Frappe.theme");
 }

+ 4 - 5
home/features/cli/gnupg.nix

@@ -1,8 +1,7 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
+{ config
+, lib
+, pkgs
+, ...
 }:
 let
   configHome = "${config.xdg.configHome}/gnupg";

+ 4 - 5
home/features/core.nix

@@ -1,8 +1,7 @@
-{
-  pkgs,
-  outputs,
-  lib,
-  ...
+{ pkgs
+, outputs
+, lib
+, ...
 }:
 {
   imports = [

+ 5 - 6
home/features/desktop/ghostty.nix

@@ -1,8 +1,7 @@
-{
-  pkgs,
-  config,
-  lib,
-  ...
+{ pkgs
+, config
+, lib
+, ...
 }:
 
 let
@@ -19,7 +18,7 @@ in
     "ghostty/themes/catppuccin-frappe.conf".text =
       lib.strings.fileContents
         (ghosttyCatppuccinSrc + "/themes/catppuccin-frappe.conf");
-    
+
     "ghostty/themes/catppuccin-latte.conf".text =
       lib.strings.fileContents
         (ghosttyCatppuccinSrc + "/themes/catppuccin-latte.conf");

+ 0 - 440
home/features/desktop/logseq.nix

@@ -1,440 +0,0 @@
-{ pkgs, ... }:
-{
-  # imports = [
-  #   outputs.modules.home-manager.logseq
-  # ];
-
-  # programs.logseq = {
-  #   enable = true;
-  #
-  #   settings = {
-  #     meta.version = 1;
-  #   };
-  # };
-
-  # home.packages = [ pkgs.logseq ];
-
-  home.file.".logseq/config/config.edn".text = ''
-    {:meta/version 1
-
-     ;; Set the preferred format.
-     ;; Available options:
-     ;; - Markdown (default)
-     ;; - Org
-     ;; :preferred-format "Markdown"
-
-     ;; Set the preferred workflow style.
-     ;; Available options:
-     ;; - :now for NOW/LATER style (default)
-     ;; - :todo for TODO/DOING style
-     :preferred-workflow :todo
-
-     ;; Exclude directories/files.
-     ;; Example usage:
-     ;; :hidden ["/archived" "/test.md" "../assets/archived"]
-     :hidden []
-
-     ;; Define the default journal page template.
-     ;; Enter the template name between the quotes.
-     :default-templates
-     {:journals ""}
-
-     ;; Set a custom date format for the journal page title.
-     ;; Default value: "MMM do, yyyy"
-     ;; e.g., "Jan 19th, 2038"
-     ;; Example usage e.g., "Tue 19th, Jan 2038"
-     :journal/page-title-format "yyyy/MM/dd"
-
-     ;; Specify the journal filename format using a valid date format string.
-     ;; !Warning:
-     ;;   This configuration is not retroactive and affects only new journals.
-     ;;   To show old journal files in the app, manually rename the files in the
-     ;;   journal directory to match the new format.
-     ;; Default value: "yyyy_MM_dd"
-     ;; :journal/file-name-format "yyyy_MM_dd"
-
-     ;; Enable tooltip preview on hover.
-     ;; Default value: true
-     :ui/enable-tooltip? true
-
-     ;; Display brackets [[]] around page references.
-     ;; Default value: true
-     ;; :ui/show-brackets? true
-
-     ;; Display all lines of a block when referencing ((block)).
-     ;; Default value: false
-     :ui/show-full-blocks? false
-
-     ;; Automatically expand block references when zooming in.
-     ;; Default value: true
-     :ui/auto-expand-block-refs? true
-
-     ;; Enable Block timestamps.
-     ;; Default value: false
-     :feature/enable-block-timestamps? false
-
-     ;; Disable accent marks when searching.
-     ;; After changing this setting, rebuild the search index by pressing (^C ^S).
-     ;; Default value: true
-     :feature/enable-search-remove-accents? true
-
-     ;; Enable journals.
-     ;; Default value: true
-     ;; :feature/enable-journals? true
-
-     ;; Enable flashcards.
-     ;; Default value: true
-     :feature/enable-flashcards? false
-
-     ;; Enable whiteboards.
-     ;; Default value: true
-     :feature/enable-whiteboards? false
-
-     ;; Disable the journal's built-in 'Scheduled tasks and deadlines' query.
-     ;; Default value: false
-     ;; :feature/disable-scheduled-and-deadline-query? false
-
-     ;; Specify the number of days displayed in the future for
-     ;; the 'scheduled tasks and deadlines' query.
-     ;; Example usage:
-     ;; Display all scheduled and deadline blocks for the next 14 days:
-     ;; :scheduled/future-days 14
-     ;; Default value: 7
-     ;; :scheduled/future-days 7
-
-     ;; Specify the first day of the week.
-     ;; Available options:
-     ;;  - integer from 0 to 6 (Monday to Sunday)
-     ;; Default value: 6 (Sunday)
-     :start-of-week 6
-
-     ;; Specify a custom CSS import.
-     ;; This option takes precedence over the local `logseq/custom.css` file.
-     ;; Example usage:
-     ;; :custom-css-url "@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');"
-
-     ;; Specify a custom JS import.
-     ;; This option takes precedence over the local `logseq/custom.js` file.
-     ;; Example usage:
-     ;; :custom-js-url "https://cdn.logseq.com/custom.js"
-
-     ;; Set a custom Arweave gateway
-     ;; Default gateway: https://arweave.net
-     ;; :arweave/gateway "https://arweave.net"
-
-     ;; Set bullet indentation when exporting
-     ;; Available options:
-     ;;  - `:eight-spaces` as eight spaces
-     ;;  - `:four-spaces` as four spaces
-     ;;  - `:two-spaces` as two spaces
-     ;;  - `:tab` as a tab character (default)
-     :export/bullet-indentation :two-spaces
-
-     ;; Publish all pages within the Graph
-     ;; Regardless of whether individual pages have been marked as public.
-     ;; Default value: false
-     ;; :publishing/all-pages-public? false
-
-     ;; Define the default home page and sidebar status.
-     ;; If unspecified, the journal page will be loaded on startup and the right sidebar will stay hidden.
-     ;; The `:page` value represents the name of the page displayed at startup.
-     ;; Available options for `:sidebar` are:
-     ;; - "Contents" to display the Contents page in the right sidebar.
-     ;; - A specific page name to display in the right sidebar.
-     ;; - An array of multiple pages, e.g., ["Contents" "Page A" "Page B"].
-     ;; If `:sidebar` remains unset, the right sidebar will stay hidden.
-     ;; Examples:
-     ;; 1. Set "Changelog" as the home page and display "Contents" in the right sidebar:
-     ;; :default-home {:page "Changelog", :sidebar "Contents"}
-     ;; 2. Set "Jun 3rd, 2021" as the home page without the right sidebar:
-     ;; :default-home {:page "Jun 3rd, 2021"}
-     ;; 3. Set "home" as the home page and display multiple pages in the right sidebar:
-     ;; :default-home {:page "home", :sidebar ["Page A" "Page B"]}
-
-     ;; Set the default location for storing notes.
-     ;; Default value: "pages"
-     ;; :pages-directory "pages"
-
-     ;; Set the default location for storing journals.
-     ;; Default value: "journals"
-     ;; :journals-directory "journals"
-
-     ;; Set the default location for storing whiteboards.
-     ;; Default value: "whiteboards"
-     ;; :whiteboards-directory "whiteboards"
-
-     ;; Enabling this option converts
-     ;; [[Grant Ideas]] to [[file:./grant_ideas.org][Grant Ideas]] for org-mode.
-     ;; For more information, visit https://github.com/logseq/logseq/issues/672
-     ;; :org-mode/insert-file-link? false
-
-     ;; Configure custom shortcuts.
-     ;; Syntax:
-     ;; 1. + indicates simultaneous key presses, e.g., `Ctrl+Shift+a`.
-     ;; 2. A space between keys represents key chords, e.g., `t s` means
-     ;;    pressing `t` followed by `s`.
-     ;; 3. mod refers to `Ctrl` for Windows/Linux and `Command` for Mac.
-     ;; 4. Use false to disable a specific shortcut.
-     ;; 5. You can define multiple bindings for a single action, e.g., ["ctrl+j" "down"].
-     ;; The full list of configurable shortcuts is available at:
-     ;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs
-     ;; Example:
-     ;; :shortcuts
-     ;; {:editor/new-block       "enter"
-     ;;  :editor/new-line        "shift+enter"
-     ;;  :editor/insert-link     "mod+shift+k"
-     ;;  :editor/highlight       false
-     ;;  :ui/toggle-settings     "t s"
-     ;;  :editor/up              ["ctrl+k" "up"]
-     ;;  :editor/down            ["ctrl+j" "down"]
-     ;;  :editor/left            ["ctrl+h" "left"]
-     ;;  :editor/right           ["ctrl+l" "right"]}
-     :shortcuts {}
-
-     ;; Configure the behavior of pressing Enter in document mode.
-     ;; if set to true, pressing Enter will create a new block.
-     ;; Default value: false
-     :shortcut/doc-mode-enter-for-new-block? false
-
-     ;; Block content larger than `block/content-max-length` will not be searchable
-     ;; or editable for performance.
-     ;; Default value: 10000
-     :block/content-max-length 10000
-
-     ;; Display command documentation on hover.
-     ;; Default value: true
-     :ui/show-command-doc? true
-
-     ;; Display empty bullet points.
-     ;; Default value: false
-     :ui/show-empty-bullets? false
-
-     ;; Pre-defined :view function to use with advanced queries.
-     :query/views
-     {:pprint
-      (fn [r] [:pre.code (pprint r)])}
-
-     ;; Advanced queries `:result-transform` function.
-     ;; Transform the query result before displaying it.
-     :query/result-transforms
-     {:sort-by-priority
-      (fn [result] (sort-by (fn [h] (get h :block/priority "Z")) result))}
-
-     ;; The following queries will be displayed at the bottom of today's journal page.
-     ;; The "NOW" query returns tasks with "NOW" or "DOING" status.
-     ;; The "NEXT" query returns tasks with "NOW", "LATER", or "TODO" status.
-     :default-queries
-     {:journals
-      [{:title "🔨 NOW"
-        :query [:find (pull ?h [*])
-                :in $ ?start ?today
-                :where
-                [?h :block/marker ?marker]
-                [(contains? #{"NOW" "DOING"} ?marker)]
-                [?h :block/page ?p]
-                [?p :block/journal? true]
-                [?p :block/journal-day ?d]
-                [(>= ?d ?start)]
-                [(<= ?d ?today)]]
-        :inputs [:14d :today]
-        :result-transform (fn [result]
-                            (sort-by (fn [h]
-                                       (get h :block/priority "Z")) result))
-        :group-by-page? false
-        :collapsed? false}
-       {:title "📅 NEXT"
-        :query [:find (pull ?h [*])
-                :in $ ?start ?next
-                :where
-                [?h :block/marker ?marker]
-                [(contains? #{"NOW" "LATER" "TODO"} ?marker)]
-                [?h :block/page ?p]
-                [?p :block/journal? true]
-                [?p :block/journal-day ?d]
-                [(> ?d ?start)]
-                [(< ?d ?next)]]
-        :inputs [:today :7d-after]
-        :group-by-page? false
-        :collapsed? false}]}
-
-     ;; Add custom commands to the command palette
-     ;; Example usage:
-     ;; :commands
-     ;; [
-     ;;  ["js" "Javascript"]
-     ;;  ["md" "Markdown"]
-     ;;  ]
-     :commands []
-
-     ;; Enable collapsing blocks with titles but no children.
-     ;; By default, only blocks with children can be collapsed.
-     ;; Setting `:outliner/block-title-collapse-enabled?` to true allows collapsing
-     ;; blocks with titles (multiple lines) and content. For example:
-     ;; - block title
-     ;;   block content
-     ;; Default value: false
-     :outliner/block-title-collapse-enabled? false
-
-     ;; Macros replace texts and will make you more productive.
-     ;; Example usage:
-     ;; Change the :macros value below to:
-     ;; {"poem" "Rose is $1, violet's $2. Life's ordered: Org assists you."}
-     ;; input "{{poem red,blue}}"
-     ;; becomes
-     ;; Rose is red, violet's blue. Life's ordered: Org assists you.
-     :macros {}
-
-     ;; Configure the default expansion level for linked references.
-     ;; For example, consider the following block hierarchy:
-     ;; - a [[page]] (level 1)
-     ;;   - b        (level 2)
-     ;;     - c      (level 3)
-     ;;       - d    (level 4)
-     ;;
-     ;; With the default value of level 2, block b will be collapsed.
-     ;; If the level's value is set to 3, block c will be collapsed.
-     ;; Default value: 2
-     :ref/default-open-blocks-level 2
-
-     ;; Configure the threshold for linked references before collapsing.
-     ;; Default value: 100
-     :ref/linked-references-collapsed-threshold 50
-
-     ;; Graph view configuration.
-     ;; Example usage:
-     ;; :graph/settings
-     ;; {:orphan-pages?   true   ; Default value: true
-     ;;  :builtin-pages?  false  ; Default value: false
-     ;;  :excluded-pages? false  ; Default value: false
-     ;;  :journal?        false} ; Default value: false
-
-     ;; Graph view configuration.
-     ;; Example usage:
-     ;; :graph/forcesettings
-     ;; {:link-dist       180    ; Default value: 180
-     ;;  :charge-strength -600   ; Default value: -600
-     ;;  :charge-range    600}   ; Default value: 600
-
-     ;; Favorites to list on the left sidebar
-     :favorites []
-
-     ;; Set flashcards interval.
-     ;; Expected value:
-     ;; - Float between 0 and 1
-     ;; higher values result in faster changes to the next review interval.
-     ;; Default value: 0.5
-     ;; :srs/learning-fraction 0.5
-
-     ;; Set the initial interval after the first successful review of a card.
-     ;; Default value: 4
-     ;; :srs/initial-interval 4
-
-     ;; Hide specific block properties.
-     ;; Example usage:
-     ;; :block-hidden-properties #{:public :icon}
-
-     ;; Create a page for all properties.
-     ;; Default value: true
-     :property-pages/enabled? true
-
-     ;; Properties to exclude from having property pages
-     ;; Example usage:
-     ;; :property-pages/excludelist #{:duration :author}
-
-     ;; By default, property value separated by commas will not be treated as
-     ;; page references. You can add properties to enable it.
-     ;; Example usage:
-     ;; :property/separated-by-commas #{:alias :tags}
-
-     ;; Properties that are ignored when parsing property values for references
-     ;; Example usage:
-     ;; :ignored-page-references-keywords #{:author :website}
-
-     ;; logbook configuration.
-     ;; :logbook/settings
-     ;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated
-     ;;  :enabled-in-all-blocks true ;display logbook in all blocks after timetracking
-     ;;  :enabled-in-timestamped-blocks false ;don't display logbook at all
-     ;; }
-
-     ;; Mobile photo upload configuration.
-     ;; :mobile/photo
-     ;; {:allow-editing? true
-     ;;  :quality        80}
-
-     ;; Mobile features options
-     ;; Gestures
-     ;; Example usage:
-     ;; :mobile
-     ;; {:gestures/disabled-in-block-with-tags ["kanban"]}
-
-     ;; Extra CodeMirror options
-     ;; See https://codemirror.net/5/doc/manual.html#config for possible options
-     ;; Example usage:
-     ;; :editor/extra-codemirror-options
-     ;; {:lineWrapping  false  ; Default value: false
-     ;;  :lineNumbers   true   ; Default value: true
-     ;;  :readOnly      false} ; Default value: false
-
-     ;; Enable logical outdenting
-     ;; Default value: false
-     ;; :editor/logical-outdenting? false
-
-     ;; Prefer pasting the file when text and a file are in the clipboard.
-     ;; Default value: false
-     ;; :editor/preferred-pasting-file? false
-
-     ;; Quick capture templates for receiving content from other apps.
-     ;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded
-     ;; by receiving content from other apps. Note: the {} cannot be omitted.
-     ;; - {time}: capture time
-     ;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference
-     ;; - {text}: text that users selected before sharing.
-     ;; - {url}: URL or assets path for media files stored in Logseq.
-     ;; You can also reorder them or use only one or two of them in the template.
-     ;; You can also insert or format any text in the template, as shown in the following examples.
-     ;; :quick-capture-templates
-     ;; {:text "[[quick capture]] **{time}**: {text} from {url}"
-     ;;  :media "[[quick capture]] **{time}**: {url}"}
-
-     ;; Quick capture options.
-     ;; - insert-today?   Insert the capture at the end of today's journal page (boolean).
-     ;; - redirect-page?  Redirect to the quick capture page after capturing (boolean).
-     ;; - default-page    The default page to capture to if insert-today? is false (string).
-     ;; :quick-capture-options
-     ;; {:insert-today? false           ;; Default value: true
-     ;;  :redirect-page? false          ;; Default value: false
-     ;;  :default-page "quick capture"} ;; Default page: "quick capture"
-
-     ;; File sync options
-     ;; Ignore these files when syncing, regexp is supported.
-     ;; :file-sync/ignore-files []
-
-     ;; Configure the Enter key behavior for
-     ;; context-aware editing with DWIM (Do What I Mean).
-     ;; context-aware Enter key behavior implies that pressing Enter will
-     ;; have different outcomes based on the context.
-     ;; For instance, pressing Enter within a list generates a new list item,
-     ;; whereas pressing Enter in a block reference opens the referenced block.
-     ;; :dwim/settings
-     ;; {:admonition&src?  true        ;; Default value: true
-     ;;  :markup?          false       ;; Default value: false
-     ;;  :block-ref?       true        ;; Default value: true
-     ;;  :page-ref?        true        ;; Default value: true
-     ;;  :properties?      true        ;; Default value: true
-     ;;  :list?            false}      ;; Default value: false
-
-     ;; Configure the escaping method for special characters in page titles.
-     ;; Warning:
-     ;;   This is a dangerous operation. To modify the setting,
-     ;;   access the 'Filename format' setting and follow the instructions.
-     ;;   Otherwise, You may need to manually rename all affected files and
-     ;;   re-index them on all clients after synchronization.
-     ;;   Incorrect handling may result in messy page titles.
-     ;; Available options:
-     ;;   - :triple-lowbar (default)
-     ;;      ;use triple underscore `___` for slash `/` in page title
-     ;;      ;use Percent-encoding for other invalid characters
-     :file/name-format :triple-lowbar}
-  '';
-}

+ 1 - 1
home/features/nvim/plugins/treesitter.nix

@@ -7,7 +7,7 @@
     settings.ensure_installed = "all";
     settings.ignore_install = [ "norg" ];
     settings.highlight.enable = true;
-    settings.highlight.disable = [  ];
+    settings.highlight.disable = [ ];
     settings.incremental_selection.enable = true;
     settings.indent.enable = true;
     nixvimInjections = true;

+ 5 - 6
hosts/common/nix.nix

@@ -1,9 +1,8 @@
-{
-  lib,
-  pkgs,
-  config,
-  outputs,
-  ...
+{ lib
+, pkgs
+, config
+, outputs
+, ...
 }:
 {
   nix = {

+ 3 - 1
hosts/meili/default.nix

@@ -1,4 +1,4 @@
-{ outputs, pkgs, ... }:
+{ outputs, ... }:
 {
   imports = [
     outputs.modules.global.nix-config
@@ -60,7 +60,9 @@
   };
 
   users.users.thomas.home = "/Users/thomas";
+  users.groups.nix-users.members = [ "thomas" ];
   ids.gids.nixbld = 350;
+  nix.settings.trusted-users = [ "thomas" ];
 
   networking = {
     hostName = "meili";

+ 1 - 1
hosts/meili/software.nix

@@ -1,4 +1,4 @@
-{ pkgs, outputs, ... }:
+{ pkgs, ... }:
 {
   # TODO:
   #   - Proton Mail Bridge

+ 11 - 11
lib/default.nix

@@ -13,10 +13,10 @@ let
 in
 rec {
   mkSystem =
-    {
-      system,
-      nixpkgs ? inputs.nixpkgs,
-      modules ? [ ],
+    { system
+    , nixpkgs ? inputs.nixpkgs
+    , modules ? [ ]
+    ,
     }:
     inputs.nixpkgs.lib.nixosSystem {
       inherit system modules nixpkgs;
@@ -24,9 +24,9 @@ rec {
     };
 
   mkDarwin =
-    {
-      system,
-      modules ? [ ],
+    { system
+    , modules ? [ ]
+    ,
     }:
     inputs.darwin.lib.darwinSystem {
       inherit system modules;
@@ -34,9 +34,9 @@ rec {
     };
 
   mkHome =
-    {
-      system,
-      modules ? [ ],
+    { system
+    , modules ? [ ]
+    ,
     }:
     inputs.home-manager.lib.homeManagerConfiguration {
       inherit modules;
@@ -44,7 +44,7 @@ rec {
       extraSpecialArgs = { inherit inputs outputs; };
     };
 
-  mkDevenvShell = 
+  mkDevenvShell =
     config:
     eachSystemWithPkgs (
       { pkgs }:

+ 4 - 5
modules/darwin/security/pam-reattach.nix

@@ -1,8 +1,7 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
+{ config
+, lib
+, pkgs
+, ...
 }:
 
 with lib;

+ 5 - 6
modules/global/nix-config.nix

@@ -1,9 +1,8 @@
-{
-  lib,
-  pkgs,
-  config,
-  outputs,
-  ...
+{ lib
+, pkgs
+, config
+, outputs
+, ...
 }:
 {
   nix = {

+ 1 - 2
modules/home-manager/default.nix

@@ -1,2 +1 @@
-{
-}
+{ }

+ 5 - 1
overlays/default.nix

@@ -6,7 +6,7 @@ rec {
   # This one contains whatever you want to overlay
   # You can change versions, add patches, set compilation flags, anything really.
   # https://nixos.wiki/wiki/Overlays
-  modifications = final: prev: {
+  modifications = _final: prev: {
     # example = prev.example.overrideAttrs (oldAttrs: rec {
     # ...
     # });
@@ -16,6 +16,10 @@ rec {
     kraft = prev.kraft.overrideAttrs (
       old: inputs.nixpkgs.lib.recursiveUpdate old { meta.broken = false; }
     );
+
+    tmuxPlugins = prev.tmuxPlugins // {
+      tmux-select-pane-no-wrap = prev.tmux-select-pane-no-wrap;
+    };
   };
 
   # When applied, the unstable nixpkgs set (declared in the flake inputs) will

+ 3 - 5
packages/default.nix

@@ -1,10 +1,8 @@
-{
-  pkgs ? (import <nixpkgs>) { },
+{ pkgs ? (import <nixpkgs>) { }
+,
 }:
 {
   hello = pkgs.callPackage ./hello.nix { };
   photo-cli = pkgs.callPackage ./photo-cli.nix { };
-  tmuxPlugins = pkgs.tmuxPlugins // {
-    tmux-select-pane-no-wrap = pkgs.callPackage ./tmux-select-pane-no-wrap.nix { };
-  };
+  tmux-select-pane-no-wrap = pkgs.callPackage ./tmux-select-pane-no-wrap.nix { };
 }