diff --git a/flake.lock b/flake.lock index 57906e5..b4d2e42 100644 --- a/flake.lock +++ b/flake.lock @@ -1,35 +1,24 @@ { "nodes": { - "doom-emacs": { - "flake": false, + "devshell": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1662497747, - "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=", - "owner": "doomemacs", - "repo": "doomemacs", - "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", + "lastModified": 1717408969, + "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", + "owner": "numtide", + "repo": "devshell", + "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", "type": "github" }, "original": { - "owner": "doomemacs", - "repo": "doomemacs", - "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", - "type": "github" - } - }, - "doom-snippets": { - "flake": false, - "locked": { - "lastModified": 1694887483, - "narHash": "sha256-KlKhruPSLPSKqUnr5/U65arm16VrY9ORzm+XKNZhpTQ=", - "owner": "doomemacs", - "repo": "snippets", - "rev": "f022984ee1318a4015d5d081b3c3dab5a60dc6ff", - "type": "github" - }, - "original": { - "owner": "doomemacs", - "repo": "snippets", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, @@ -40,11 +29,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1719106959, - "narHash": "sha256-dxrEcXldbG9pw2f+BCgu5lv7nUeHphQHhGZupaaDmGg=", + "lastModified": 1720602715, + "narHash": "sha256-fjFdTtP0K94y6lsmUukyLh2VMqDme//+goDsTal+CrU=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "b5e4ae0a33bb011e9515181ff1634471a975539f", + "rev": "77ddb4021ae40a3a6aac74d7730f36cdb3dde4ba", "type": "github" }, "original": { @@ -53,127 +42,28 @@ "type": "github" } }, - "emacs-overlay_2": { - "flake": false, - "locked": { - "lastModified": 1676366521, - "narHash": "sha256-i4UAY8t9Au9SJtsgYppa3NHSVf1YkV6yqnNIQd+Km4g=", - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", - "type": "github" - } - }, - "emacs-so-long": { - "flake": false, - "locked": { - "lastModified": 1575031854, - "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=", - "owner": "hlissner", - "repo": "emacs-so-long", - "rev": "ed666b0716f60e8988c455804de24b55919e71ca", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "emacs-so-long", - "type": "github" - } - }, - "evil-escape": { - "flake": false, - "locked": { - "lastModified": 1588439096, - "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=", - "owner": "hlissner", - "repo": "evil-escape", - "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "evil-escape", - "type": "github" - } - }, - "evil-markdown": { - "flake": false, - "locked": { - "lastModified": 1626852210, - "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=", - "owner": "Somelauw", - "repo": "evil-markdown", - "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477", - "type": "github" - }, - "original": { - "owner": "Somelauw", - "repo": "evil-markdown", - "type": "github" - } - }, - "evil-org-mode": { - "flake": false, - "locked": { - "lastModified": 1607203864, - "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=", - "owner": "hlissner", - "repo": "evil-org-mode", - "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "evil-org-mode", - "type": "github" - } - }, - "evil-quick-diff": { - "flake": false, - "locked": { - "lastModified": 1575189609, - "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=", - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", - "type": "github" - }, - "original": { - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "type": "github" - } - }, - "explain-pause-mode": { - "flake": false, - "locked": { - "lastModified": 1595842060, - "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=", - "owner": "lastquestion", - "repo": "explain-pause-mode", - "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", - "type": "github" - }, - "original": { - "owner": "lastquestion", - "repo": "explain-pause-mode", - "type": "github" - } - }, "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -182,6 +72,27 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -205,11 +116,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -234,52 +145,52 @@ "type": "github" } }, - "format-all": { - "flake": false, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1581716637, - "narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=", - "owner": "lassik", - "repo": "emacs-format-all-the-code", - "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", + "lastModified": 1720450253, + "narHash": "sha256-1in42htN3g3MnE3/AO5Qgs6pMWUzmtPQ7s675brO8uw=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "2b6bd3c87d3a66fb0b8f2f06c985995e04b4fb96", "type": "github" }, "original": { - "owner": "lassik", - "repo": "emacs-format-all-the-code", - "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, - "gruvbox-gtk-theme": { - "flake": false, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1718658865, - "narHash": "sha256-wUBOR9CjjD2MwT3PdLw/mccVLYhwVCaTJ+fe2V2HhnE=", - "owner": "Fausto-Korpsvart", - "repo": "Gruvbox-GTK-Theme", - "rev": "5e99fc6c2b30b0489065254240f15cd6d401eb0b", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { - "owner": "Fausto-Korpsvart", - "repo": "Gruvbox-GTK-Theme", - "type": "github" - } - }, - "gruvbox-kvantum-theme": { - "flake": false, - "locked": { - "lastModified": 1696096968, - "narHash": "sha256-u2J4Zf9HuMjNCt3qVpgEffkytl/t277FzOvWL8Nm8os=", - "owner": "sachnr", - "repo": "gruvbox-kvantum-themes", - "rev": "f47670be407c1f07c64890ad53884ee9977a7db1", - "type": "github" - }, - "original": { - "owner": "sachnr", - "repo": "gruvbox-kvantum-themes", + "owner": "hercules-ci", + "repo": "gitignore.nix", "type": "github" } }, @@ -304,71 +215,56 @@ "type": "github" } }, - "nix-doom-emacs": { + "home-manager_2": { "inputs": { - "doom-emacs": "doom-emacs", - "doom-snippets": "doom-snippets", - "emacs-overlay": "emacs-overlay_2", - "emacs-so-long": "emacs-so-long", - "evil-escape": "evil-escape", - "evil-markdown": "evil-markdown", - "evil-org-mode": "evil-org-mode", - "evil-quick-diff": "evil-quick-diff", - "explain-pause-mode": "explain-pause-mode", - "flake-compat": "flake-compat", - "flake-utils": "flake-utils_2", - "format-all": "format-all", - "nix-straight": "nix-straight", - "nixpkgs": "nixpkgs_2", - "nose": "nose", - "ob-racket": "ob-racket", - "org": "org", - "org-contrib": "org-contrib", - "org-yt": "org-yt", - "php-extras": "php-extras", - "revealjs": "revealjs", - "rotate-text": "rotate-text", - "sln-mode": "sln-mode", - "ts-fold": "ts-fold", - "ws-butler": "ws-butler" + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] }, "locked": { - "lastModified": 1701264882, - "narHash": "sha256-MBXR7x7Ua8qystlGr+lenwjQd7dsFNFpEFmtHhh10zM=", + "lastModified": 1720042825, + "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=", "owner": "nix-community", - "repo": "nix-doom-emacs", - "rev": "f7413022370f24bb53cb450bfb2803233510113e", + "repo": "home-manager", + "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073", "type": "github" }, "original": { "owner": "nix-community", - "repo": "nix-doom-emacs", + "ref": "release-24.05", + "repo": "home-manager", "type": "github" } }, - "nix-straight": { - "flake": false, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1694361489, - "narHash": "sha256-kjDp+j6OtrmqbtjQB5uuOtjS08+kgJQuxFqhWE1Y9Rw=", - "owner": "nix-community", - "repo": "nix-straight.el", - "rev": "748be99b84be0b130e946288099806a0f16d6e57", + "lastModified": 1720337362, + "narHash": "sha256-9TNQtlwu97NPaJYsKkdObOsy0MLN4NAOBz0pqwH3KnA=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "0f89b73f41eaa1dde67b291452c181d9a75f10dd", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nix-straight.el", + "owner": "lnl7", + "repo": "nix-darwin", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1718895438, - "narHash": "sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw+0Bwe5DLU=", + "lastModified": 1720418205, + "narHash": "sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d603719ec6e294f034936c0d0dc06f689d91b6c3", + "rev": "655a58a72a6601292512670343087c2d75d859c1", "type": "github" }, "original": { @@ -380,27 +276,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1718811006, - "narHash": "sha256-0Y8IrGhRmBmT7HHXlxxepg2t8j1X90++qRN3lukGaIk=", + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "03d771e513ce90147b65fe922d87d3a0356fc125", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.11", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1718895438, - "narHash": "sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw+0Bwe5DLU=", + "lastModified": 1720418205, + "narHash": "sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d603719ec6e294f034936c0d0dc06f689d91b6c3", + "rev": "655a58a72a6601292512670343087c2d75d859c1", "type": "github" }, "original": { @@ -411,21 +307,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1695806987, - "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixpkgs-unstable", - "type": "indirect" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1718835956, "narHash": "sha256-wM9v2yIxClRYsGHut5vHICZTK7xdrUGfrLkXvSuv6s4=", @@ -441,115 +322,31 @@ "type": "github" } }, - "nose": { - "flake": false, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, "locked": { - "lastModified": 1400604510, - "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=", - "owner": "emacsattic", - "repo": "nose", - "rev": "f8528297519eba911696c4e68fa88892de9a7b72", + "lastModified": 1720472744, + "narHash": "sha256-BJf06/uE8XgjSqXB6ftabinqK+qaAmWA0dLxAfLrAjw=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "2c52164a4f1b863f5eda842b4b9423b7f2677ddc", "type": "github" }, "original": { - "owner": "emacsattic", - "repo": "nose", - "type": "github" - } - }, - "ob-racket": { - "flake": false, - "locked": { - "lastModified": 1584656173, - "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=", - "owner": "xchrishawk", - "repo": "ob-racket", - "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", - "type": "github" - }, - "original": { - "owner": "xchrishawk", - "repo": "ob-racket", - "type": "github" - } - }, - "org": { - "flake": false, - "locked": { - "lastModified": 1695726851, - "narHash": "sha256-qgbjspklSoI8M3cbCJOcUdjuijRgsL/+PSyEOW9VX4I=", - "owner": "emacs-straight", - "repo": "org-mode", - "rev": "aa9177e1a8b039c357d369c1c9aaab710bb247a9", - "type": "github" - }, - "original": { - "owner": "emacs-straight", - "repo": "org-mode", - "type": "github" - } - }, - "org-contrib": { - "flake": false, - "locked": { - "lastModified": 1694946041, - "narHash": "sha256-X/HFG6NZe5BY00KvGbcsIuf9R6Lg8x7Uhd0Y5+Q3qZU=", - "owner": "emacsmirror", - "repo": "org-contrib", - "rev": "5eabbf22bdd4523c922a30787e98ee66c24221aa", - "type": "github" - }, - "original": { - "owner": "emacsmirror", - "repo": "org-contrib", - "type": "github" - } - }, - "org-yt": { - "flake": false, - "locked": { - "lastModified": 1527381913, - "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=", - "owner": "TobiasZawada", - "repo": "org-yt", - "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", - "type": "github" - }, - "original": { - "owner": "TobiasZawada", - "repo": "org-yt", - "type": "github" - } - }, - "php-extras": { - "flake": false, - "locked": { - "lastModified": 1573312690, - "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=", - "owner": "arnested", - "repo": "php-extras", - "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", - "type": "github" - }, - "original": { - "owner": "arnested", - "repo": "php-extras", - "type": "github" - } - }, - "revealjs": { - "flake": false, - "locked": { - "lastModified": 1695738029, - "narHash": "sha256-Z9c9Q41jMkj/DyXOiZYyIa7Gmn8VB8yauTyWrSsT+ps=", - "owner": "hakimel", - "repo": "reveal.js", - "rev": "88fbfc5751ad01e3f6adee5819eabeb9e73c3757", - "type": "github" - }, - "original": { - "owner": "hakimel", - "repo": "reveal.js", + "owner": "nix-community", + "ref": "nixos-24.05", + "repo": "nixvim", "type": "github" } }, @@ -557,44 +354,12 @@ "inputs": { "emacs-overlay": "emacs-overlay", "flameshot-git": "flameshot-git", - "gruvbox-gtk-theme": "gruvbox-gtk-theme", - "gruvbox-kvantum-theme": "gruvbox-kvantum-theme", "home-manager": "home-manager", - "nix-doom-emacs": "nix-doom-emacs", - "nixpkgs": "nixpkgs_3", - "nixpkgs-unstable": "nixpkgs-unstable" - } - }, - "rotate-text": { - "flake": false, - "locked": { - "lastModified": 1322962747, - "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=", - "owner": "debug-ito", - "repo": "rotate-text.el", - "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", - "type": "github" - }, - "original": { - "owner": "debug-ito", - "repo": "rotate-text.el", - "type": "github" - } - }, - "sln-mode": { - "flake": false, - "locked": { - "lastModified": 1423727528, - "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=", - "owner": "sensorflo", - "repo": "sln-mode", - "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c", - "type": "github" - }, - "original": { - "owner": "sensorflo", - "repo": "sln-mode", - "type": "github" + "nixpkgs": "nixpkgs_2", + "nixpkgs-unstable": "nixpkgs-unstable", + "nixvim": "nixvim", + "vim-org-roam": "vim-org-roam", + "vim-yazi": "vim-yazi" } }, "systems": { @@ -627,35 +392,56 @@ "type": "github" } }, - "ts-fold": { - "flake": false, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1695278494, - "narHash": "sha256-O4NcUC1u08W8ZslqoA/i+iTaLotKwheURXQWBxLLMFc=", - "owner": "jcs-elpa", - "repo": "ts-fold", - "rev": "70b2c79ff4daa7351d4e2917b0343b9a18d4d4f2", + "lastModified": 1720436211, + "narHash": "sha256-/cKXod0oGLl+vH4bKBZnTV3qxrw4jgOLnyQ8KXey5J8=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "6fc8bded78715cdd43a3278a14ded226eb3a239e", "type": "github" }, "original": { - "owner": "jcs-elpa", - "repo": "ts-fold", + "owner": "numtide", + "repo": "treefmt-nix", "type": "github" } }, - "ws-butler": { + "vim-org-roam": { "flake": false, "locked": { - "lastModified": 1634511126, - "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=", - "owner": "hlissner", - "repo": "ws-butler", - "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5", + "lastModified": 1719134875, + "narHash": "sha256-7s7nePlg/lF/JplR3qvY+ZT1B/wUG6TymCis4OMBBQ8=", + "owner": "chipsenkbeil", + "repo": "org-roam.nvim", + "rev": "45153562e7bfe806d84747d6518cad714c63ca2e", "type": "github" }, "original": { - "owner": "hlissner", - "repo": "ws-butler", + "owner": "chipsenkbeil", + "repo": "org-roam.nvim", + "type": "github" + } + }, + "vim-yazi": { + "flake": false, + "locked": { + "lastModified": 1720634904, + "narHash": "sha256-HrNNrLAewzyebKZ2m1wBJxcVn2w2UjapeHRAZQDN/5U=", + "owner": "mikavilpas", + "repo": "yazi.nvim", + "rev": "c0841f4902204844db7def936b6702fa73b8cff0", + "type": "github" + }, + "original": { + "owner": "mikavilpas", + "repo": "yazi.nvim", "type": "github" } } diff --git a/flake.nix b/flake.nix index 70f27bb..da92a4f 100644 --- a/flake.nix +++ b/flake.nix @@ -2,19 +2,21 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; emacs-overlay.url = "github:nix-community/emacs-overlay"; - nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; - gruvbox-gtk-theme = { - url = "github:Fausto-Korpsvart/Gruvbox-GTK-Theme"; + nixvim = { + url = "github:nix-community/nixvim/nixos-24.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + vim-yazi = { + url = "github:mikavilpas/yazi.nvim"; flake = false; }; - gruvbox-kvantum-theme = { - url = "github:sachnr/gruvbox-kvantum-themes"; + vim-org-roam = { + url = "github:chipsenkbeil/org-roam.nvim"; flake = false; }; flameshot-git = { @@ -23,9 +25,9 @@ }; }; - outputs = inputs@{ self, home-manager, nixpkgs, nixpkgs-unstable, ... }: + outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, ... }: let - inherit (lib.my) mapModules mapModulesRec mkHost mapHosts; + inherit (lib.my) mapHosts; system = "x86_64-linux"; @@ -50,7 +52,8 @@ lib = self; }; }); - in { + in + { lib = lib.my; overlay = final: prev: { unstable = pkgs-unstable; }; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 3f52b68..61f8638 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -1,9 +1,6 @@ -{ inputs, config, options, lib, pkgs, ... }: +{ config, lib, pkgs, ... }: -with lib; -with lib.my; let - cfg = config.modules.desktop; wallpaper = pkgs.fetchurl { url = "https://raw.githubusercontent.com/AngelJumbo/gruvbox-wallpapers/main/wallpapers/irl/houseonthesideofalake.jpg"; @@ -13,13 +10,13 @@ in { options.modules.desktop = { - wallpaper = mkOption { - type = types.path; + wallpaper = lib.mkOption { + type = lib.types.path; default = wallpaper; }; }; - config = mkIf config.modules.desktop.wm.enable { + config = lib.mkIf config.modules.desktop.wm.enable { fonts = { packages = with pkgs.unstable; [ @@ -142,7 +139,7 @@ in sessionVariables.EDITOR = "vim"; - packages = with pkgs.unstable; [ + packages = (with pkgs.unstable; [ brave ungoogled-chromium mullvad-browser @@ -151,7 +148,6 @@ in element-desktop swayimg mpv - jellyfin-mpv-shim mumble libreoffice-fresh onlyoffice-bin @@ -169,9 +165,10 @@ in zsh-syntax-highlighting R tldr - thefuck ark linuxPackages.perf + ]) ++ [ + pkgs.jellyfin-mpv-shim ]; }; diff --git a/modules/desktop/zsh.nix b/modules/desktop/zsh.nix index 9cf3a36..5f93fe5 100644 --- a/modules/desktop/zsh.nix +++ b/modules/desktop/zsh.nix @@ -1,11 +1,9 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.zsh; in { - options.modules.desktop.zsh = { enable = mkBoolOpt false; }; - config = mkIf cfg.enable { + options.modules.desktop.zsh = { enable = lib.my.mkBoolOpt false; }; + config = lib.mkIf cfg.enable { environment.pathsToLink = [ "/share/zsh" ]; @@ -30,8 +28,6 @@ in { [[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search [[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search - - eval $(${pkgs.thefuck}/bin/thefuck --alias) ''; oh-my-zsh = { enable = true; @@ -48,6 +44,10 @@ in { } ]; }; + programs.thefuck = { + enable = true; + enableZshIntegration = true; + }; programs.starship = { enable = true; enableZshIntegration = true; diff --git a/modules/editor/emacs/emacs.nix b/modules/editor/emacs/emacs.nix index 70fd158..373b51e 100644 --- a/modules/editor/emacs/emacs.nix +++ b/modules/editor/emacs/emacs.nix @@ -42,7 +42,7 @@ in { # Nix nil - phpactor # PHP + pkgs.phpactor # PHP #OCaml ocaml dune_3 @@ -74,7 +74,6 @@ in { client.enable = true; }; - # Use either this or nix-doom-emacs programs.emacs = { enable = true; package = pkgs.unstable.emacs29.override { @@ -108,25 +107,6 @@ in { fi ''; }; - - # imports = [ inputs.nix-doom-emacs.hmModule ]; - # programs.doom-emacs = { - # enable = true; - # doomPrivateDir = ./doom.d; - # emacsPackagesOverlay = final: prev: { - # ob-ammonite = with final; - # (trivialBuild { - # src = pkgs.fetchFromGitHub { - # owner = "zwild"; - # repo = "ob-ammonite"; - # rev = "39937dff395e70aff76a4224fa49cf2ec6c57cca"; - # sha256 = pkgs.lib.fakeSha256; - # }; - # pname = "ob-ammonite"; - # packageRequires = [ s dash editorconfig ]; - # }); - # }; - # }; }; }; } diff --git a/modules/editor/vim.nix b/modules/editor/vim.nix index 04f25a5..2d8d152 100644 --- a/modules/editor/vim.nix +++ b/modules/editor/vim.nix @@ -1,46 +1,488 @@ -{ config, lib, pkgs, ... }: - -with lib; -with lib.my; +{ config, lib, pkgs, inputs, ... }: let cfg = config.modules.editor.vim; in { - options.modules.editor.vim = { enable = mkBoolOpt false; }; + options.modules.editor.vim = { enable = lib.my.mkBoolOpt false; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home-manager.users.${config.user.name} = { - programs.neovim = { + imports = [ inputs.nixvim.homeManagerModules.nixvim ]; + programs.nixvim = { enable = true; + package = pkgs.unstable.neovim-unwrapped; vimAlias = true; - plugins = with pkgs; [ - vimPlugins.gruvbox-community - vimPlugins.vim-airline - vimPlugins.vim-airline-themes - vimPlugins.vim-gitgutter - vimPlugins.nerdtree - vimPlugins.nerdtree-git-plugin - vimPlugins.ctrlp-vim - vimPlugins.tabular + + globals.mapleader = " "; + + opts = { + # Keep visual indentation on wrapped lines + breakindent = true; + + # Hide command line unless needed + cmdheight = 0; + + # Insert mode completion options + completeopt = [ "menu" "menuone" "noselect" ]; + + # Raise a dialog asking if you wish to save the current file(s) + confirm = true; + + # Copy previous indentation on autoindenting + copyindent = true; + + # Highlight current line + cursorline = true; + + # Enable linematch diff algorithm + diffopt.__raw = '' + vim.list_extend(vim.opt.diffopt:get(), { "algorithm:histogram", "linematch:60" }) + ''; + + # Expand to spaces + expandtab = false; + + # Disable `~` on nonexistent lines + fillchars = { eob = " "; }; + + # Enable fold with all code unfolded + foldcolumn = "1"; + foldenable = true; + foldlevel = 99; + foldlevelstart = 99; + + # Ignore case in search patterns + ignorecase = true; + + # Show substitution preview in split window + inccommand = "split"; + # Infer casing on word completion + infercase = true; + + # Global statusline + laststatus = 3; + + # Wrap lines at 'breakat' + linebreak = true; + + # Enable list mode + list = true; + + # Set custom strings for list mode + # - tabulations are shown as ‒▶ + # - trailing spaces are shown as · + # - multiple non-leading consecutive spaces are shown as bullets (·) + # - non-breakable spaces are shown as ⎕ + listchars = "tab:» ,trail:·,multispace:·,lead: ,nbsp:␣"; + + # Enable mouse support + mouse = "a"; + + # Show line numbers + number = true; + + # Preserve indentation as much as possible + preserveindent = true; + + # Height of the popup menu + pumheight = 10; + + # Display line numbers relative to current line + relativenumber = false; + + # Number of spaces to use for indentation + shiftwidth = 2; + + # Disable search count wrap and startup messages + shortmess.__raw = '' + vim.tbl_deep_extend("force", vim.opt.shortmess:get(), { s = true, I = true }) + ''; + + # Disable showing modes in command line + showmode = false; + + # Show tabline when needed + showtabline = 1; + + # Show signs column + signcolumn = "yes"; + + # Override ignorecase if search pattern contains uppercase characters + smartcase = true; + + # Number of spaces input on + softtabstop = 2; + + # Open horizontal split below (:split) + splitbelow = true; + + # Open vertical split to the right (:vsplit) + splitright = true; + + # Number of spaces to represent a + tabstop = 2; + + # Enables 24-bit RGB color + termguicolors = true; + + # Shorter timeout duration + timeoutlen = 500; + + # Set window title to the filename + title = true; + + # Save undo history to undo file (in $XDG_STATE_HOME/nvim/undo) + undofile = true; + + viewoptions.__raw = '' + vim.tbl_filter(function(val) return val ~= "curdir" end, vim.opt.viewoptions:get()) + ''; + + # Enable virtual edit in visual block mode + # This has the effect of selecting empty cells beyond lines boundaries + virtualedit = "block"; + + # Disable line wrapping + wrap = false; + + # Disable making a backup before overwriting a file + writebackup = false; + + # Sync clipboard between OS and Neovim. + clipboard = "unnamedplus"; + }; + + keymaps = [ + { + key = "sh"; + action = "Telescope help_tags"; + options.desc = "[S]earch [H]elp"; + } + { + key = "sk"; + action = "Telescope keymaps"; + options.desc = "[S]earch [K]eymaps"; + } + { + key = "ss"; + action = "Telescope"; + options.desc = "[S]earch [S]elect Telescope"; + } + { + key = "/"; + action = "Telescope live_grep"; + options.desc = "[S]earch by [G]rep"; + } + { + key = "sr"; + action = "Telescope resume"; + options.desc = "[S]earch [R]esume"; + } + { + key = "."; + action.__raw = '' + function() + require("yazi").yazi() + end + ''; + options.desc = "Open file manager"; + } + { + key = "cx"; + action = "Telescope diagnostics"; + options.desc = "Search diagnostics"; + } + { + key = "fs"; + action.__raw = '' + function() + vim.lsp.buf.format() + vim.cmd.write() + end + ''; + options.desc = "Format and save buffer"; + } + { + key = "ps"; + action = "wa"; + options.desc = "Save all buffers"; + } + { + key = "gg"; + action = "Neogit"; + } + { + key = ""; + action = "Telescope fd"; + } + { + key = "bb"; + action = "Telescope buffers"; + } + { + key = "bn"; + action = "bnext"; + options.desc = "Next buffer"; + } + { + key = "bp"; + action = "bprev"; + options.desc = "Previous buffer"; + } + { + key = "bl"; + action = "e #"; + options.desc = "Other buffer"; + } + { + key = "bk"; + action = "bdel"; + options.desc = "Delete buffer"; + } + { + key = "bd"; + action = "bdel"; + options.desc = "Delete buffer"; + } ]; - extraConfig = '' - let g:gruvbox_italic=1 - colorscheme gruvbox - set background=dark - let g:airline_powerline_fonts = 1 - autocmd VimEnter * hi Normal ctermbg=NONE guibg=NONE - "Toggle NERDTree with Ctrl-N - map :NERDTreeToggle + plugins = { + lualine = { + enable = true; + }; + cmp = { + enable = true; + settings = { + sources = + [ + { name = "nvim_lsp"; } + { name = "path"; } + { name = "buffer"; } + { name = "cmdline"; } + ]; + mapping = { + "" = "cmp.mapping.confirm({ select = true })"; + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.close()"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; + "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; + }; + }; + }; + gitgutter.enable = true; + leap.enable = true; + fidget.enable = true; + neogit = { + enable = true; + package = pkgs.unstable.vimPlugins.neogit; + }; + sleuth.enable = true; + comment.enable = true; + direnv.enable = true; + nix.enable = true; + treesitter = { + enable = true; + indent = true; + incrementalSelection.enable = true; + ignoreInstall = [ "org" ]; + }; + telescope = { + enable = true; + extensions.fzf-native.enable = true; + extensions.ui-select.enable = true; + }; + which-key = { + enable = true; + registrations = { + "b".name = "[B]uffer"; + "c".name = "[C]ode"; + "d".name = "[D]ocument"; + "f".name = "[F]ile"; + "g".name = "[G]it"; + "r".name = "[R]ename"; + "s".name = "[S]earch"; + "w".name = "[W]orkspace"; + "t".name = "[T]oggle"; + "h".name = "Git [H]unk"; + }; + }; + lsp = { + enable = true; + servers = { + ansiblels.enable = true; + bashls.enable = true; + cssls.enable = true; + docker-compose-language-service.enable = true; + dockerls.enable = true; + eslint.enable = true; + nixd.enable = true; + html.enable = true; + lua-ls.enable = true; + marksman.enable = true; + sqls.enable = true; + terraformls.enable = true; + tsserver.enable = true; + jsonls.enable = true; + yamlls.enable = true; + typos-lsp = { + enable = true; + extraOptions.init_options.diagnosticSeverity = "Hint"; + }; + }; + keymaps = { + silent = true; + lspBuf = { + gd = { + action = "definition"; + desc = "Goto Definition"; + }; + gr = { + action = "references"; + desc = "Goto References"; + }; + gD = { + action = "declaration"; + desc = "Goto Declaration"; + }; + gI = { + action = "implementation"; + desc = "Goto Implementation"; + }; + gT = { + action = "type_definition"; + desc = "Type Definition"; + }; + K = { + action = "hover"; + desc = "Hover"; + }; + "cw" = { + action = "workspace_symbol"; + desc = "Workspace Symbol"; + }; + "cr" = { + action = "rename"; + desc = "Rename"; + }; + }; + diagnostic = { + "cd" = { + action = "open_float"; + desc = "Line Diagnostics"; + }; + "[d" = { + action = "goto_next"; + desc = "Next Diagnostic"; + }; + "]d" = { + action = "goto_prev"; + desc = "Previous Diagnostic"; + }; + }; + }; + }; + }; + extraPlugins = [ + pkgs.unstable.vimPlugins.vim-airline-themes + pkgs.unstable.vimPlugins.nvim-metals + (pkgs.vimUtils.buildVimPlugin { + name = "yazi.nvim"; + src = inputs.vim-yazi; + }) + pkgs.unstable.vimPlugins.orgmode + (pkgs.vimUtils.buildVimPlugin { + name = "org-roam.nvim"; + src = inputs.vim-org-roam; + }) + ]; + extraConfigLua = + '' + require('yazi').setup({ + opts = { + open_for_directories = true, + }, + }) - "Show hidden files in NERDTree - let NERDTreeShowHidden=1 - set number relativenumber - set ignorecase + require('orgmode').setup({ + org_agend_files = '~/Nextcloud/Org/**/*', + org_default_notes_file = '~/Nextcloud/Org/refile.org', + }) + require('org-roam').setup({ + directory = '~/Nextcloud/OrgRoam', + }) - vnoremap . :norm. - ''; + + local metals_config = require("metals").bare_config() + + metals_config.init_options.statusBarProvider = "off" + + metals_config.settings = { + showImplicitArguments = true, + } + + metals_config.on_attach = function(client, bufnr) + vim.keymap.set( + "n", + "me", + function() require("telescope").extensions.metals.commands() end, + { noremap=true, silent=true, buffer = bufn, desc = "Metals commands"} + ) + vim.keymap.set( + "n", + "co", + "MetalsOrganizeImports", + { noremap=true, silent=true, buffer = bufn, desc = "Organize imports"} + ) + end + + local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }) + vim.api.nvim_create_autocmd("FileType", { + pattern = { "scala", "sbt", "java" }, + callback = function() + require("metals").initialize_or_attach(metals_config) + end, + group = nvim_metals_group, + }) + ''; + colorschemes.gruvbox = { + enable = true; + package = pkgs.unstable.vimPlugins.gruvbox-nvim; + settings = { + overrides = { + Include = { link = "GruvboxRed"; }; + "@constructor" = { link = "GruvboxYellow"; }; + "@function.builtin" = { link = "GruvboxFg1"; }; + "@function.call" = { link = "GruvboxFg1"; }; + "@function.macro" = { link = "GruvboxFg1"; }; + "@function.method.call.scala" = { link = "GruvboxFg1"; }; + "@method.call" = { link = "GruvboxFg1"; }; + "@variable.member.scala" = { link = "GruvboxFg1"; }; + "@lsp.type.type.scala" = { link = ""; }; + "@lsp.type.method.scala" = { link = ""; }; + "@lsp.type.modifier.scala" = { link = "GruvboxOrange"; }; + "@lsp.type.typeParameter.scala" = { link = "GruvboxAqua"; }; + + "@lsp.type.type.nix" = { link = ""; }; + "@lsp.type.method.nix" = { link = ""; }; + "@lsp.type.macro.nix" = { link = ""; }; + "@lsp.type.interface.nix" = { link = ""; }; + }; + }; + }; }; + + home.packages = with pkgs.unstable; [ + ripgrep + fd + nodejs + opentofu + nixfmt-rfc-style + nixpkgs-fmt + coursier + nil + ]; }; }; }