diff --git a/flake.lock b/flake.lock index 5360f45..1dbad20 100644 --- a/flake.lock +++ b/flake.lock @@ -37,11 +37,11 @@ ] }, "locked": { - "lastModified": 1772292445, - "narHash": "sha256-4F1Q7U313TKUDDovCC96m/Za4wZcJ3yqtu4eSrj8lk8=", + "lastModified": 1775558810, + "narHash": "sha256-fy95EdPnqQlpbP8+rk0yWKclWShCUS5VKs6P7/1MF2c=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "1dbbba659c1cef0b0202ce92cadfe13bae550e8f", + "rev": "7371b669b22aa2af980f913fc312a786d2f1abb2", "type": "github" }, "original": { @@ -76,11 +76,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1770895252, - "narHash": "sha256-TUGZVDcC5xsrWVnpBNosAG1cTy+aWchCWXPyeLZdnGM=", + "lastModified": 1774191766, + "narHash": "sha256-bvO+gfuUOVUiBEwAJ5A2RjpysPzCfyXD+DM8piOa1+4=", "ref": "refs/heads/main", - "rev": "2c86d41d07471f518e24f5cd1f586e4d2a32d12c", - "revCount": 1331, + "rev": "7a8fc2e646b97e5ae508a44d3449e3b41345d456", + "revCount": 1336, "type": "git", "url": "https://codeberg.org/LGFae/awww" }, @@ -98,11 +98,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1772820255, - "narHash": "sha256-vdktxEQihZUcKiwbaYCBl8LuTrJZULpjwqtJyBzXBN8=", + "lastModified": 1775586808, + "narHash": "sha256-4Sk8qj8kFO3dhrxX5WVOGSISyILJTCmjR5eeGuX1lY4=", "owner": "xddxdd", "repo": "nix-cachyos-kernel", - "rev": "aada771f510dbd9ac48614cc7b4b21a292989d3a", + "rev": "97ca4cf337f839170998814f0f347857596a1794", "type": "github" }, "original": { @@ -114,11 +114,11 @@ "cachyos-kernel": { "flake": false, "locked": { - "lastModified": 1772644657, - "narHash": "sha256-7zQSBFv9gFeYhe65NchqLLste7mJ396jA1OnNcf+OQQ=", + "lastModified": 1775535525, + "narHash": "sha256-Q1HqL7lxx3sIYaAb+e4pl9L4Le3a3bEm/2IY9kSzARU=", "owner": "CachyOS", "repo": "linux-cachyos", - "rev": "ff5ccc4fa26d5272d929fb9c1838593a6347ca10", + "rev": "708043b2186d50d4e6ec1a1377b1452de08c3b91", "type": "github" }, "original": { @@ -130,11 +130,11 @@ "cachyos-kernel-patches": { "flake": false, "locked": { - "lastModified": 1772731186, - "narHash": "sha256-y70pS9Cma7+WCsni3VTacHh9g/udulmBS6zrYE2Fz64=", + "lastModified": 1775568994, + "narHash": "sha256-geh/xiRM8JFBo7lPuV9Op0LAZHz/VdhSQuCYNTthTJw=", "owner": "CachyOS", "repo": "kernel-patches", - "rev": "eac8168ee15f742547d4d20ba5c7fea283f23019", + "rev": "b953e9a0044ab79b30abccee243afebfc185b622", "type": "github" }, "original": { @@ -146,29 +146,29 @@ "cerulean": { "inputs": { "deploy-rs": "deploy-rs", + "home-manager": "home-manager", "microvm": "microvm", "nixpkgs": [ "nixpkgs" ], "nt": "nt", - "sops-nix": "sops-nix", "systems": [ "systems" ] }, "locked": { - "lastModified": 1773744164, - "narHash": "sha256-dGupwWUL9YPvC0/m4maCRD9psomWhFr/JAsGnC9toQM=", - "owner": "cry128", - "repo": "cerulean", - "rev": "e7fdbf416ccb3e7e6bf30042e4aacd065983ddad", - "type": "github" + "lastModified": 1771409623, + "narHash": "sha256-1IhHueuQTVCVrui700IP9DfLXwb3kU2rnEWPSdxQY0k=", + "ref": "refs/heads/main", + "rev": "d5211287bd3cb96078f2053488d67d557848a8f2", + "revCount": 176, + "type": "git", + "url": "https://tearforge.net/cry/cerulean" }, "original": { - "owner": "cry128", - "ref": "v0.2.6-alpha", - "repo": "cerulean", - "type": "github" + "rev": "d5211287bd3cb96078f2053488d67d557848a8f2", + "type": "git", + "url": "https://tearforge.net/cry/cerulean" } }, "crane": { @@ -213,11 +213,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1770019181, - "narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=", + "lastModified": 1766051518, + "narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=", "owner": "serokell", "repo": "deploy-rs", - "rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171", + "rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa", "type": "github" }, "original": { @@ -227,33 +227,12 @@ } }, "fenix": { - "inputs": { - "nixpkgs": [ - "nixpkgs-unstable" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1772780947, - "narHash": "sha256-cblRAy3ctJniRFaSLpqYeHor+RJhkptPZNMUc4Sl+v4=", - "owner": "nix-community", - "repo": "fenix", - "rev": "26a5e59df51222c849deb63c9196ac6d7a531535", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "fenix_2": { "inputs": { "nixpkgs": [ "iamb", "nixpkgs" ], - "rust-analyzer-src": "rust-analyzer-src_2" + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { "lastModified": 1760510549, @@ -352,11 +331,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -484,15 +463,16 @@ "home-manager": { "inputs": { "nixpkgs": [ + "cerulean", "nixpkgs" ] }, "locked": { - "lastModified": 1772633058, - "narHash": "sha256-SO7JapRy2HPhgmqiLbfnW1kMx5rakPMKZ9z3wtRLQjI=", + "lastModified": 1775425411, + "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=", "owner": "nix-community", "repo": "home-manager", - "rev": "080657a04188aca25f8a6c70a0fb2ea7e37f1865", + "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe", "type": "github" }, "original": { @@ -509,11 +489,11 @@ ] }, "locked": { - "lastModified": 1772807318, - "narHash": "sha256-Qjw6ILt8cb2HQQpCmWNLMZZ63wEo1KjTQt+1BcQBr7k=", + "lastModified": 1775598298, + "narHash": "sha256-FZRwskiertE+8wgFKjLoc/41UrVqzR2V3QseMBHuo/g=", "owner": "nix-community", "repo": "home-manager", - "rev": "daa2c221320809f5514edde74d0ad0193ad54ed8", + "rev": "98b4d61cfaf825c8b691afae0b6e152f0cc05c86", "type": "github" }, "original": { @@ -523,6 +503,48 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775425411, + "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "zen", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774991950, + "narHash": "sha256-kScKj3qJDIWuN9/6PMmgy5esrTUkYinrO5VvILik/zw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "f2d3e04e278422c7379e067e323734f3e8c585a7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "hyprcursor": { "inputs": { "hyprlang": [ @@ -539,11 +561,11 @@ ] }, "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "lastModified": 1772461003, + "narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7", "type": "github" }, "original": { @@ -568,11 +590,11 @@ ] }, "locked": { - "lastModified": 1770511807, - "narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=", + "lastModified": 1775496928, + "narHash": "sha256-Ds759WU03mGWtu3I43J+5GF5Ni8TvF+GYQUFD+fVeMo=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "7c75487edd43a71b61adb01cae8326d277aab683", + "rev": "cf95d93d17baa18f1d9b016b3afe27f820521a6e", "type": "github" }, "original": { @@ -600,11 +622,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1772833450, - "narHash": "sha256-XuuvhTD/72mH8MBncTeOyN0JzLCtwav7lkwBQlIofd4=", + "lastModified": 1775578056, + "narHash": "sha256-TiSPoIM8EBf6Z6Hrne5wX4hPfss1xTRcRfTL6+DfmLo=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "4152ac76d0813d9d0f67d2f04653a13fa6e17433", + "rev": "75dc67e63f1873f1e97f73daf0ce284f75afa97c", "type": "github" }, "original": { @@ -646,11 +668,11 @@ ] }, "locked": { - "lastModified": 1767023960, - "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", + "lastModified": 1774710575, + "narHash": "sha256-p7Rcw13+gA4Z9EI3oGYe3neQ3FqyOOfZCleBTfhJ95Q=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", + "rev": "0703df899520001209646246bef63358c9881e36", "type": "github" }, "original": { @@ -659,36 +681,6 @@ "type": "github" } }, - "hyprland-plugins": { - "inputs": { - "hyprland": [ - "hyprland-git" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1771865848, - "narHash": "sha256-xwNa+1D8WPsDnJtUofDrtyDCZKZotbUymzV/R5s+M0I=", - "owner": "hyprwm", - "repo": "hyprland-plugins", - "rev": "b85a56b9531013c79f2f3846fd6ee2ff014b8960", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-plugins", - "type": "github" - } - }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -701,11 +693,11 @@ ] }, "locked": { - "lastModified": 1765214753, - "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", "type": "github" }, "original": { @@ -730,11 +722,11 @@ ] }, "locked": { - "lastModified": 1771866172, - "narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=", + "lastModified": 1772459629, + "narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41", + "rev": "7615ee388de18239a4ab1400946f3d0e498a8186", "type": "github" }, "original": { @@ -782,11 +774,11 @@ ] }, "locked": { - "lastModified": 1764592794, - "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", + "lastModified": 1772462885, + "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", + "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998", "type": "github" }, "original": { @@ -807,11 +799,11 @@ ] }, "locked": { - "lastModified": 1771271487, - "narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=", + "lastModified": 1774911391, + "narHash": "sha256-c4YVwO33Mmw+FIV8E0u3atJZagHvGTJ9Jai6RtiB8rE=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d", + "rev": "e6caa3d4d1427eedbdf556cf4ceb70f2d9c0b56d", "type": "github" }, "original": { @@ -832,11 +824,11 @@ ] }, "locked": { - "lastModified": 1770501770, - "narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=", + "lastModified": 1772459835, + "narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40", + "rev": "0a692d4a645165eebd65f109146b8861e3a925e7", "type": "github" }, "original": { @@ -861,11 +853,11 @@ ] }, "locked": { - "lastModified": 1771606233, - "narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=", + "lastModified": 1775414057, + "narHash": "sha256-mDpHnf+MkdOxEqIM1TnckYYh9p1SXR8B3KQfNZ12M8s=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a", + "rev": "86012ee01b0fdd8bf3101ef38816f2efbee42490", "type": "github" }, "original": { @@ -877,7 +869,7 @@ "iamb": { "inputs": { "crane": "crane", - "fenix": "fenix_2", + "fenix": "fenix", "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs-unstable" @@ -991,16 +983,16 @@ "scenefx": "scenefx" }, "locked": { - "lastModified": 1772792509, - "narHash": "sha256-c2X+x/D8txqV5UaN6TYYh9PEXyMaWVZl4mAQ0Sl21f8=", - "owner": "DreamMaoMao", - "repo": "mangowc", - "rev": "9a17a0279c39b330d155d50282d1d2641d519dc3", + "lastModified": 1775461179, + "narHash": "sha256-4vvuk6tl8M2wuW3VJU9Uwc3HCrL95cSJImEODNNQEy8=", + "owner": "mangowm", + "repo": "mango", + "rev": "e83a9dff820ce2215ecbbbea7d617d24d0825174", "type": "github" }, "original": { - "owner": "DreamMaoMao", - "repo": "mangowc", + "owner": "mangowm", + "repo": "mango", "type": "github" } }, @@ -1013,11 +1005,11 @@ "spectrum": "spectrum" }, "locked": { - "lastModified": 1773018425, - "narHash": "sha256-fpgZBmZpKoEXEowBK/6m8g9FcOLWQ4UxhXHqCw2CpSM=", + "lastModified": 1775329298, + "narHash": "sha256-xmntQolopr1WwBO5rAC+SKyON+ritVQLUHZdvpjUM90=", "owner": "microvm-nix", "repo": "microvm.nix", - "rev": "25ebda3c558e923720c965832dc9a04f559a055c", + "rev": "4a9ff5adcefd23e68de76f33ebc7b3909e06c09b", "type": "github" }, "original": { @@ -1034,11 +1026,11 @@ "spectrum": "spectrum_2" }, "locked": { - "lastModified": 1772742184, - "narHash": "sha256-zGnRxJQZ8wZTwvSxF4SAGoefbta15/W032tK22uIF2E=", + "lastModified": 1775329298, + "narHash": "sha256-xmntQolopr1WwBO5rAC+SKyON+ritVQLUHZdvpjUM90=", "owner": "microvm-nix", "repo": "microvm.nix", - "rev": "a257ca90febb686c75826918f9f8876d74f875eb", + "rev": "4a9ff5adcefd23e68de76f33ebc7b3909e06c09b", "type": "github" }, "original": { @@ -1203,11 +1195,11 @@ }, "nixcats": { "locked": { - "lastModified": 1770584904, - "narHash": "sha256-9Zaz8lbKF2W9pwXZEnbiGsicHdBoU+dHt3Wv3mCJoZ8=", + "lastModified": 1774835836, + "narHash": "sha256-6ok7iv/9R82vl6MYe3Lwyyb6S5bmW2PxEZtmjzlqyPs=", "owner": "BirdeeHub", "repo": "nixCats-nvim", - "rev": "538fdde784d2909700d97a8ef307783b33a86fb1", + "rev": "ebb9f279a55ca60ff4e37e4accf6518dc627aa8d", "type": "github" }, "original": { @@ -1222,14 +1214,15 @@ "flake-parts": "flake-parts_4", "nixpkgs": [ "nixpkgs" - ] + ], + "nixpkgs-nixcord": "nixpkgs-nixcord" }, "locked": { - "lastModified": 1772813986, - "narHash": "sha256-x0fD+LL+O99p36c2UnjnHvVq4/7TvGH/8G5lTNIJBCo=", + "lastModified": 1775592269, + "narHash": "sha256-SB76MADRKDwYwLmKP3tpjlnhmQ9xVBE6WHyv9sskvZI=", "owner": "FlameFlag", "repo": "nixcord", - "rev": "e433a2919eb9b3a8c85ab3017c08685816e63a66", + "rev": "814ebf38f04e99a37ebaf9159f5112238f828a1e", "type": "github" }, "original": { @@ -1240,11 +1233,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1772774498, - "narHash": "sha256-85HBHBEzVRQ0ZRe6u3E2snUvAyTr5mSvi5m2vl4HExo=", + "lastModified": 1775545155, + "narHash": "sha256-hTjWyj6wz9Iw6IjfrP+rZj1V1DjbVRCd1WjcpxH8Fqs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "943ba5b1a58e68eb9a2c284ba6e3b30ebfe45abe", + "rev": "f97e195236002ce34b91d43ffe68557ac7d007fc", "type": "github" }, "original": { @@ -1256,11 +1249,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1772328832, - "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", + "lastModified": 1774748309, + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", "type": "github" }, "original": { @@ -1301,11 +1294,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1772820052, - "narHash": "sha256-qXEI8n+4eXT+BqMzUMuKFdkltE82TjgIceiJCpdjzD4=", + "lastModified": 1775605449, + "narHash": "sha256-7xNGBc+aDnV5O2NEbVedKqTJZf7fMQplQ2KP0Uuso2c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d78e468770f4ab5e00c5015f4d77c1a499a76dc8", + "rev": "ad1602de15363141e019f759c7c9fe8646b28b30", "type": "github" }, "original": { @@ -1315,13 +1308,29 @@ "type": "github" } }, - "nixpkgs-staging": { + "nixpkgs-nixcord": { "locked": { - "lastModified": 1772820753, - "narHash": "sha256-Sv689sGseiqNPXGSggxrESyivroe8cgY4dxqJdBLsEc=", + "lastModified": 1773222311, + "narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e2239e5b2c5676b963d78dccbee06a9bbbdb05d6", + "rev": "0590cd39f728e129122770c029970378a79d076a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-staging": { + "locked": { + "lastModified": 1775585988, + "narHash": "sha256-lIfMIN05ks3wNz3MqM9H6RkdNLg6RJuuDH0o4o1LOvI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2d38540b4428002cf24c82e81d947a3b2670d8a6", "type": "github" }, "original": { @@ -1333,11 +1342,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1772624091, - "narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=", + "lastModified": 1775423009, + "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "80bdc1e5ce51f56b19791b52b2901187931f5353", + "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "type": "github" }, "original": { @@ -1365,11 +1374,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1772598333, - "narHash": "sha256-YaHht/C35INEX3DeJQNWjNaTcPjYmBwwjFJ2jdtr+5U=", + "lastModified": 1775305101, + "narHash": "sha256-/74n1oQPtKG52Yw41cbToxspxHbYz6O3vi+XEw16Qe8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fabb8c9deee281e50b1065002c9828f2cf7b2239", + "rev": "36a601196c4ebf49e035270e10b2d103fe39076b", "type": "github" }, "original": { @@ -1386,11 +1395,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1773738366, - "narHash": "sha256-oH22HyNHEdCoCQo734sQCHUr6C0jmGQJMZ13dsgEHkk=", + "lastModified": 1770975056, + "narHash": "sha256-ZXTz/P3zUbbM6lNXzt91u8EwfNqhXpYMu8+wvFZqQHE=", "owner": "cry128", "repo": "nt", - "rev": "f32c3a726a3d608d30aaaa1df2301c1eaf5ef8f4", + "rev": "f42dcdd49a7921a7f433512e83d5f93696632412", "type": "github" }, "original": { @@ -1409,11 +1418,11 @@ ] }, "locked": { - "lastModified": 1772024342, - "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=", + "lastModified": 1775036584, + "narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", + "rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735", "type": "github" }, "original": { @@ -1444,11 +1453,9 @@ "awww": "awww", "cachyos": "cachyos", "cerulean": "cerulean", - "fenix": "fenix", - "home-manager": "home-manager", + "home-manager": "home-manager_2", "home-manager-unstable": "home-manager-unstable", "hyprland-git": "hyprland-git", - "hyprland-plugins": "hyprland-plugins", "iamb": "iamb", "mango": "mango", "microvm": "microvm_2", @@ -1466,23 +1473,6 @@ } }, "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1772701851, - "narHash": "sha256-2g4Xg+w6wx2ewn1Tv576RzDc6Uof99H8kofHWdJktEs=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "2a8f00fb9344cc6701063192fe0aaf66ecf9d337", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "rust-analyzer-src_2": { "flake": false, "locked": { "lastModified": 1760457219, @@ -1548,11 +1538,11 @@ ] }, "locked": { - "lastModified": 1771956684, - "narHash": "sha256-+EtzmEzGA2xqwIvKrP0euYaOzrmTQWEWAiWV+k2WBEM=", + "lastModified": 1775529071, + "narHash": "sha256-z7LF/Vn8Zfbh5pgF/y7TPhz19AwTlQKrfGJdJHpOqOg=", "owner": "uiriansan", "repo": "SilentSDDM", - "rev": "34f82e1fb8412fff78b82a0dcce763492b36054c", + "rev": "f8ec3cd49dcd98c04860ca1ac105727b5cfc6981", "type": "github" }, "original": { @@ -1561,27 +1551,6 @@ "type": "github" } }, - "sops-nix": { - "inputs": { - "nixpkgs": [ - "cerulean", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773096132, - "narHash": "sha256-M3zEnq9OElB7zqc+mjgPlByPm1O5t2fbUrH3t/Hm5Ag=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "d1ff3b1034d5bab5d7d8086a7803c5a5968cd784", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, "spectrum": { "flake": false, "locked": { @@ -1601,11 +1570,11 @@ "spectrum_2": { "flake": false, "locked": { - "lastModified": 1759482047, - "narHash": "sha256-H1wiXRQHxxPyMMlP39ce3ROKCwI5/tUn36P8x6dFiiQ=", + "lastModified": 1772189877, + "narHash": "sha256-i1p90Rgssb//aNiTDFq46ZG/fk3LmyRLChtp/9lddyA=", "ref": "refs/heads/main", - "rev": "c5d5786d3dc938af0b279c542d1e43bce381b4b9", - "revCount": 996, + "rev": "fe39e122d898f66e89ffa17d4f4209989ccb5358", + "revCount": 1255, "type": "git", "url": "https://spectrum-os.org/git/spectrum" }, @@ -1624,11 +1593,11 @@ ] }, "locked": { - "lastModified": 1772494187, - "narHash": "sha256-6ksgNAFXVK+Cg/6ww7bB2nJUPZlnS75UwZC7G+L03EE=", + "lastModified": 1775421933, + "narHash": "sha256-JkEbzFDFTsUlVtHEzA8Y4r3O9LInhb96eOCbtGjGnbM=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "915ab06b046d05613041780c575c62a32fe67cea", + "rev": "ec8d73085fdf807d55765335dc8126e14e7b2096", "type": "github" }, "original": { @@ -1798,11 +1767,11 @@ ] }, "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", + "lastModified": 1773601989, + "narHash": "sha256-2tJf/CQoHApoIudxHeJye+0Ii7scR0Yyi7pNiWk0Hn8=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", + "rev": "a9b862d1aa000a676d310cc62d249f7ad726233d", "type": "github" }, "original": { @@ -1813,19 +1782,17 @@ }, "zen": { "inputs": { - "home-manager": [ - "home-manager" - ], + "home-manager": "home-manager_3", "nixpkgs": [ "nixpkgs-unstable" ] }, "locked": { - "lastModified": 1772772172, - "narHash": "sha256-OCEb6jXTvhnMTMqMLleYChekDO/zh+VtunBAS0WevPM=", + "lastModified": 1775453133, + "narHash": "sha256-VIlMG985ONqVqF+OnPuS5Shbz5k6tqbOWnDL7EH+IT4=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "5f8f34c0dd56808ecbfa35697353c455e4a416b3", + "rev": "8d0508ffceba8ad785ae442591dd115080a55142", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d50ddc3..b5ffaf7 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ }; cerulean = { - url = "github:cry128/cerulean/v0.2.6-alpha"; + url = "git+https://tearforge.net/cry/cerulean?rev=d5211287bd3cb96078f2053488d67d557848a8f2"; inputs = { systems.follows = "systems"; nixpkgs.follows = "nixpkgs"; @@ -40,13 +40,13 @@ url = "github:hyprwm/Hyprland"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; - hyprland-plugins = { - url = "github:hyprwm/hyprland-plugins"; - inputs.hyprland.follows = "hyprland-git"; - }; + # hyprland-plugins = { + # url = "github:hyprwm/hyprland-plugins"; + # inputs.hyprland.follows = "hyprland-git"; + # }; mango = { - url = "github:DreamMaoMao/mangowc"; + url = "github:mangowm/mango"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; @@ -59,10 +59,7 @@ zen = { url = "github:0xc000022070/zen-browser-flake"; - inputs = { - nixpkgs.follows = "nixpkgs-unstable"; - home-manager.follows = "home-manager"; - }; + inputs.nixpkgs.follows = "nixpkgs-unstable"; }; iamb = { @@ -88,11 +85,6 @@ }; }; - fenix = { - url = "github:nix-community/fenix"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; - }; - # temp theme until i bother creating my own ", function() vim.cmd("wincmd h") end) @@ -21,73 +25,71 @@ vim.keymap.set("n", "", function() vim.cmd("wincmd l") end) -local uv = vim.loop -local colorscheme_filepath = "/home/aurora/.cache/nvim/neovim-colors" -local colors = {} +-- splits <3 (i love splits sm) +vim.keymap.set("n", "s", function() + vim.cmd("split") +end) +vim.keymap.set("n", "v", function() + vim.cmd("vsplit") +end) --- function to load colors -local function load_colors() - local new_colors = {} - for line in io.lines(colorscheme_filepath) do - table.insert(new_colors, line) +-- u can put delta inside of neovim omg they are spoiling me <3 +local git_diff_win = nil + +vim.api.nvim_create_autocmd("VimResized", { + callback = function() + if git_diff_win and vim.api.nvim_win_is_valid(git_diff_win) then + local width = math.floor(vim.o.columns * 0.9) + local height = math.floor((vim.o.lines - 2) * 0.9) + + vim.api.nvim_win_set_config(git_diff_win, { + relative = "editor", + width = width, + height = height, + col = math.floor((vim.o.columns - width) / 2), + row = math.floor((vim.o.lines - height) / 2) - 2, + }) + end + end, +}) + +vim.keymap.set("n", "gd", function() + if git_diff_win and vim.api.nvim_win_is_valid(git_diff_win) then + vim.api.nvim_win_close(git_diff_win, true) + git_diff_win = nil + return end - -- ensure the table has enough entries to avoid indexing issues - if #new_colors >= 18 then - colors = new_colors - require("base16-colorscheme").setup({ - base00 = colors[17], - base01 = colors[1], - base02 = colors[3], - base03 = colors[3], - base04 = colors[5], - base05 = colors[8], - base06 = colors[5], - base07 = colors[8], - base08 = colors[18], - base09 = colors[4], - base0A = colors[11], - base0B = colors[5], - base0C = colors[6], - base0D = colors[7], - base0E = colors[6], - base0F = colors[16], - }) + local buf = vim.api.nvim_create_buf(false, true) - -- set colors for blink.cmp's completion menu - vim.api.nvim_set_hl(0, "BlinkCmpMenu", { bg = colors[17] }) - vim.api.nvim_set_hl(0, "BlinkCmpMenuBorder", { bg = colors[17], fg = colors[13] }) - vim.api.nvim_set_hl(0, "BlinkCmpMenuSelection", { bg = colors[15], fg = colors[17] }) - vim.api.nvim_set_hl(0, "BlinkCmpScrollBarThumb", { bg = colors[18] }) - vim.api.nvim_set_hl(0, "BlinkCmpKind", { bg = colors[17], fg = colors[14] }) - vim.api.nvim_set_hl(0, "BlinkCmpLabel", { bg = colors[17], fg = colors[18] }) - vim.api.nvim_set_hl(0, "BlinkCmpLabelMatch", { bg = colors[17], fg = colors[18] }) - vim.api.nvim_set_hl(0, "BlinkCmpLabelDetail", { bg = colors[17], fg = colors[18] }) - vim.api.nvim_set_hl(0, "BlinkCmpLabelDescription", { bg = colors[17], fg = colors[18] }) - else - print("Error: Not enough colors in file") - end -end + vim.bo[buf].filetype = "terminal" --- initial load -load_colors() + -- deletes the last two lines of the buffer when the process exits :3 + vim.api.nvim_create_autocmd("TermClose", { + buffer = buf, + callback = function() + vim.defer_fn(function() + vim.bo[buf].modifiable = true + vim.api.nvim_buf_set_lines(buf, -3, -1, false, {}) + vim.bo[buf].modifiable = false + end, 10) + end, + }) --- vim.defer_fn(load_colors, 1) + local width = math.floor(vim.o.columns * 0.9) + local height = math.floor((vim.o.lines - 2) * 0.9) --- set up a file watcher -local function watch_colorscheme() - local handle - handle = uv.new_fs_event() - if handle then - uv.fs_event_start(handle, colorscheme_filepath, {}, function(err, _, _) - if err then - print("Error watching colorscheme file:", err) - return - end - -- debounce by adding a slight delay before reloading - vim.defer_fn(load_colors, 100) - end) - end -end + git_diff_win = vim.api.nvim_open_win(buf, true, { + relative = "editor", + width = width, + height = height, + col = math.floor((vim.o.columns - width) / 2), + row = math.floor((vim.o.lines - height) / 2) - 2, + style = "minimal", + border = "rounded", + }) -watch_colorscheme() + vim.fn.jobstart("git diff | delta --pager=never", { term = true }) + + vim.keymap.set("n", "q", "close", { buffer = buf }) +end) diff --git a/homes/modules/programs/neovim/lua/colors.lua b/homes/modules/programs/neovim/lua/colors.lua new file mode 100644 index 0000000..3a5bbc6 --- /dev/null +++ b/homes/modules/programs/neovim/lua/colors.lua @@ -0,0 +1,238 @@ +local colorscheme_filepath = "/home/aurora/.cache/nvim/neovim-colors" +local colors = {} + +local function hex_to_int(hex) + hex = hex:gsub("#", "") + return tonumber(hex:sub(1, 2), 16) * 0x10000 + tonumber(hex:sub(3, 4), 16) * 0x100 + tonumber(hex:sub(5, 6), 16) +end + +-- TODO: change to use lab color space +local function blend_colors(c1, c2, t) + local r1 = math.floor(c1 / 0x10000) + local g1 = math.floor((c1 % 0x10000) / 0x100) + local b1 = c1 % 0x100 + + local r2 = math.floor(c2 / 0x10000) + local g2 = math.floor((c2 % 0x10000) / 0x100) + local b2 = c2 % 0x100 + + return math.floor(r1 + (r2 - r1) * t) * 0x10000 + + math.floor(g1 + (g2 - g1) * t) * 0x100 + + math.floor(b1 + (b2 - b1) * t) +end + +-- function to load colors +local function load_colors() + local new_colors = {} + for line in io.lines(colorscheme_filepath) do + table.insert(new_colors, line) + end + + -- ensure the table has enough entries to avoid indexing issues + if #new_colors == 18 then + colors = new_colors + require("base16-colorscheme").setup({ + base00 = colors[18], + base01 = colors[1], + base02 = colors[3], + base03 = colors[3], + base04 = colors[5], + base05 = colors[8], + base06 = colors[5], + base07 = colors[8], + base08 = colors[17], + base09 = colors[4], + base0A = colors[11], + base0B = colors[5], + base0C = colors[6], + base0D = colors[7], + base0E = colors[6], + base0F = colors[16], + }) + + -- colors ------------------------------------------------------------------ + + local color_00 = colors[1] + local color_01 = colors[2] + local color_02 = colors[3] + local color_03 = colors[4] + local color_04 = colors[5] + local color_05 = colors[6] + local color_06 = colors[7] + local color_07 = colors[8] + + local color_08 = colors[9] + local color_09 = colors[10] + local color_10 = colors[11] + local color_11 = colors[12] + local color_12 = colors[13] + local color_13 = colors[14] + local color_14 = colors[15] + local color_15 = colors[16] + + local fg = colors[17] + local bg = colors[18] + + local bg_90 = blend_colors(hex_to_int("#000000"), hex_to_int(bg), 0.90) + + local fg_10 = blend_colors(hex_to_int(bg), hex_to_int(fg), 0.10) + local fg_30 = blend_colors(hex_to_int(bg), hex_to_int(fg), 0.30) + + local secondary_10 = blend_colors(hex_to_int(bg), hex_to_int(color_13), 0.10) + local secondary_30 = blend_colors(hex_to_int(bg), hex_to_int(color_13), 0.30) + + -- editor colors :3 -------------------------------------------------------- + + vim.api.nvim_set_hl(0, "Visual", { bg = secondary_10 }) + vim.api.nvim_set_hl(0, "ColorColumn", { bg = secondary_30 }) + + -- blink.cmp --------------------------------------------------------------- + + vim.api.nvim_set_hl(0, "BlinkCmpMenu", { bg = bg }) + vim.api.nvim_set_hl(0, "BlinkCmpMenuBorder", { fg = color_12, bg = bg }) + vim.api.nvim_set_hl(0, "BlinkCmpMenuSelection", { fg = bg, bg = color_14 }) + vim.api.nvim_set_hl(0, "BlinkCmpScrollBarThumb", { bg = fg }) + vim.api.nvim_set_hl(0, "BlinkCmpKind", { fg = fg, bg = bg }) + vim.api.nvim_set_hl(0, "BlinkCmpLabel", { fg = fg, bg = bg }) + vim.api.nvim_set_hl(0, "BlinkCmpLabelMatch", { fg = fg, bg = bg }) + vim.api.nvim_set_hl(0, "BlinkCmpLabelDetail", { fg = fg, bg = bg }) + vim.api.nvim_set_hl(0, "BlinkCmpLabelDescription", { fg = fg, bg = bg }) + + -- telescope :3 ------------------------------------------------------------ + + vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopePromptNormal", { bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopeResultsNormal", { bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopePreviewNormal", { bg = bg_90 }) + + vim.api.nvim_set_hl(0, "TelescopeBorder", { fg = color_15, bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopePromptBorder", { fg = color_15, bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopeResultsBorder", { fg = color_15, bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopePreviewBorder", { fg = color_15, bg = bg_90 }) + + vim.api.nvim_set_hl(0, "TelescopePromptTitle", { fg = color_15, bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopeResultsTitle", { fg = color_15, bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopePreviewTitle", { fg = color_15, bg = bg_90 }) + + vim.api.nvim_set_hl(0, "TelescopePromptPrefix", { fg = color_14, bg = bg_90 }) + vim.api.nvim_set_hl(0, "TelescopePromptCounter", { fg = color_13, bg = bg_90 }) + + -- gitsigns.nvim ----------------------------------------------------------- + + vim.api.nvim_set_hl(0, "GitSignsAdd", { fg = color_13 }) + vim.api.nvim_set_hl(0, "GitSignsChange", { fg = color_11 }) + vim.api.nvim_set_hl(0, "GitSignsDelete", { fg = color_09 }) + + local blame_palette = { + color_13, + color_11, + color_09, + color_06, + color_05, + color_04, + color_03, + color_12, + } + + local blame_group = vim.api.nvim_create_augroup("GitSignsBlameColors", { clear = true }) + + local function get_heatmap_palette() + local c1 = hex_to_int(color_13) -- old + local c2 = hex_to_int(color_14) -- recent + + local palette = {} + for i = 0, 7 do + palette[i] = blend_colors(c1, c2, i / 7) + end + + return palette + end + + local heatmap_palette = get_heatmap_palette() + + local function set_blame_colors() + local highlights = vim.api.nvim_exec2("highlight", { output = true }).output + + local i = 1 + for hl_name in highlights:gmatch("(GitSignsBlameColor%.[%x]+)") do + local color = blame_palette[(i - 1) % #blame_palette + 1] + vim.api.nvim_set_hl(0, hl_name, { fg = color }) + i = i + 1 + end + + i = 1 + for hl_name in highlights:gmatch("(GitSignsColorTemp%.fg%.[%d]+)") do + local color = heatmap_palette[(i - 1) % #heatmap_palette + 1] + vim.api.nvim_set_hl(0, hl_name, { fg = color }) + i = i + 1 + end + end + + set_blame_colors() + + vim.api.nvim_create_autocmd("FileType", { + group = blame_group, + pattern = "gitsigns-blame", + callback = function() + set_blame_colors() + end, + }) + + -- fyler.nvim -------------------------------------------------------------- + + vim.api.nvim_set_hl(0, "FylerBlue", { fg = color_06 }) + vim.api.nvim_set_hl(0, "FylerGreen", { fg = color_02 }) + vim.api.nvim_set_hl(0, "FylerGrey", { fg = color_08 }) + vim.api.nvim_set_hl(0, "FylerRed", { fg = color_01 }) + vim.api.nvim_set_hl(0, "FylerYellow", { fg = color_03 }) + + vim.api.nvim_set_hl(0, "FylerFSDirectoryIcon", { fg = color_06 }) + vim.api.nvim_set_hl(0, "FylerFSDirectoryName", { fg = fg }) + vim.api.nvim_set_hl(0, "FylerFSFile", { fg = color_15 }) + vim.api.nvim_set_hl(0, "FylerFSLink", { fg = color_08 }) + + vim.api.nvim_set_hl(0, "FylerGitAdded", { fg = color_04 }) + vim.api.nvim_set_hl(0, "FylerGitConflict", { fg = color_03 }) + vim.api.nvim_set_hl(0, "FylerGitDeleted", { fg = color_03 }) + vim.api.nvim_set_hl(0, "FylerGitIgnored", { fg = color_08 }) + vim.api.nvim_set_hl(0, "FylerGitModified", { fg = color_05 }) + vim.api.nvim_set_hl(0, "FylerGitRenamed", { fg = color_05 }) + vim.api.nvim_set_hl(0, "FylerGitStaged", { fg = color_04 }) + vim.api.nvim_set_hl(0, "FylerGitUnstaged", { fg = color_05 }) + vim.api.nvim_set_hl(0, "FylerGitUntracked", { fg = color_06 }) + + vim.api.nvim_set_hl(0, "FylerWinPick", { fg = color_15, bg = fg }) + + -- lualine.nvim + vim.api.nvim_exec_autocmds("User", { pattern = "RefreshLualine" }) + + -- hlchunk.nvim + vim.api.nvim_set_hl(0, "HLIndent1", { fg = secondary_30 }) + vim.api.nvim_set_hl(0, "HLChunk1", { fg = color_11 }) + else + print("Error: Not enough colors in file") + end +end + +-- initial load +load_colors() + +-- vim.defer_fn(load_colors, 1) + +-- set up a file watcher +local function watch_colorscheme() + local handle + handle = vim.loop.new_fs_event() + if handle then + vim.loop.fs_event_start(handle, colorscheme_filepath, {}, function(err, _, _) + if err then + print("Error watching colorscheme file:", err) + return + end + -- debounce by adding a slight delay before reloading + vim.defer_fn(load_colors, 100) + end) + end +end + +watch_colorscheme() diff --git a/homes/modules/programs/neovim/lua/lsp/completion.lua b/homes/modules/programs/neovim/lua/lsp/completion.lua index b408f23..6d80a6d 100644 --- a/homes/modules/programs/neovim/lua/lsp/completion.lua +++ b/homes/modules/programs/neovim/lua/lsp/completion.lua @@ -17,7 +17,7 @@ return { keymap = { [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "hide", "fallback" }, - [""] = { "select_and_accept", "fallback" }, + [""] = { "select_and_accept", "fallback" }, [""] = { "select_prev", "fallback_to_mappings" }, [""] = { "select_next", "fallback_to_mappings" }, @@ -30,7 +30,7 @@ return { [""] = { "snippet_forward", "fallback" }, [""] = { "snippet_backward", "fallback" }, - [""] = { "show_signature", "hide_signature", "fallback" }, + [""] = { "show_signature", "hide_signature", "fallback" }, }, appearance = { @@ -84,7 +84,7 @@ return { }, documentation = { - auto_show = false, + auto_show = true, window = { border = "rounded", }, diff --git a/homes/modules/programs/neovim/lua/lsp/indentation.lua b/homes/modules/programs/neovim/lua/lsp/indentation.lua index 5deae31..8516bad 100644 --- a/homes/modules/programs/neovim/lua/lsp/indentation.lua +++ b/homes/modules/programs/neovim/lua/lsp/indentation.lua @@ -1,5 +1,12 @@ vim.api.nvim_create_autocmd("FileType", { - pattern = { "lua", "nix", "gleam" }, + pattern = { + "lua", + "nix", + "gleam", + "css", + "json", + "haskell", + }, callback = function() vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 @@ -7,14 +14,38 @@ vim.api.nvim_create_autocmd("FileType", { end, }) +vim.api.nvim_create_autocmd("FileType", { + pattern = { + "sql", + }, + callback = function() + vim.opt_local.shiftwidth = 4 + vim.opt_local.tabstop = 4 + vim.opt_local.expandtab = true + end, +}) + vim.api.nvim_create_autocmd("User", { pattern = "TelescopePreviewerLoaded", callback = function(args) local ft = args.data.filetype - if vim.tbl_contains({ "lua", "nix", "gleam", "rust" }, ft) then + if vim.tbl_contains({ + "lua", + "nix", + "gleam", + "css", + "json", + "haskell", + }, ft) then vim.bo.shiftwidth = 2 vim.bo.tabstop = 2 vim.bo.expandtab = true + elseif vim.tbl_contains({ + "sql", + }, ft) then + vim.bo.shiftwidth = 4 + vim.bo.tabstop = 4 + vim.bo.expandtab = true end end, }) diff --git a/homes/modules/programs/neovim/lua/lsp/lsp.lua b/homes/modules/programs/neovim/lua/lsp/lsp.lua index 230033a..0be588b 100644 --- a/homes/modules/programs/neovim/lua/lsp/lsp.lua +++ b/homes/modules/programs/neovim/lua/lsp/lsp.lua @@ -47,6 +47,11 @@ if nixCats("lang.rust.lsp") then diagnostics = { enable = true, }, + ["rust-analyzer"] = { + procMacro = { + enable = true, + }, + }, }, } end diff --git a/homes/modules/programs/neovim/lua/plugins/dressing.lua b/homes/modules/programs/neovim/lua/plugins/dressing.lua index 42e7280..9c4decd 100644 --- a/homes/modules/programs/neovim/lua/plugins/dressing.lua +++ b/homes/modules/programs/neovim/lua/plugins/dressing.lua @@ -1,5 +1,6 @@ return { { "dressing.nvim", + enabled = nixCats("ui.dressing") or false, }, } diff --git a/homes/modules/programs/neovim/lua/plugins/format.lua b/homes/modules/programs/neovim/lua/plugins/format.lua index c3f85e2..636008b 100644 --- a/homes/modules/programs/neovim/lua/plugins/format.lua +++ b/homes/modules/programs/neovim/lua/plugins/format.lua @@ -58,10 +58,22 @@ return { formatters_by_ft = { lua = nixCats("lang.lua.format") and { "stylua" } or nil, nix = nixCats("lang.nix.format") and { "alejandra" } or nil, - rust = nixCats("lang.rust.format") and { "rustfmt", lsp_format = "fallback" } or nil, + rust = (function() + if not nixCats("lang.rust.format") then + return nil + end + local formatters = {} + if nixCats("lang.rust.formatters.leptos") then + table.insert(formatters, "leptosfmt") + end + table.insert(formatters, "rustfmt") + formatters.lsp_format = "fallback" + return formatters + end)(), haskell = nixCats("lang.haskell.format") and { "ormolu" } or nil, proto = nixCats("lang.protobuf.format") and { "buf" } or nil, toml = nixCats("lang.toml.format") and { "taplo" } or nil, + sql = nixCats("lang.sql.format") and { "sqlfluff" } or nil, }, format_on_save = { timeout_ms = 500, diff --git a/homes/modules/programs/neovim/lua/plugins/fyler.lua b/homes/modules/programs/neovim/lua/plugins/fyler.lua index 2737b78..282e257 100644 --- a/homes/modules/programs/neovim/lua/plugins/fyler.lua +++ b/homes/modules/programs/neovim/lua/plugins/fyler.lua @@ -4,12 +4,12 @@ return { cmd = { "Fyler" }, keys = { { - "tf", + "F", function() return require("fyler").toggle({ kind = "split_right" }) end, mode = { "n" }, - desc = "Open [F]yler", + desc = "Open File [E]xplorer (Fyler)", }, }, load = function(name) diff --git a/homes/modules/programs/neovim/lua/plugins/git.lua b/homes/modules/programs/neovim/lua/plugins/git.lua index c2250cc..46ee0e2 100644 --- a/homes/modules/programs/neovim/lua/plugins/git.lua +++ b/homes/modules/programs/neovim/lua/plugins/git.lua @@ -1,12 +1,12 @@ return { { "vim-fugitive", - enabled = nixCats("git") or false, + enabled = nixCats("git.merge") or false, cmd = { "Git", "Gvdiffsplit" }, }, { "resolve-nvim", - enabled = nixCats("git") or false, + enabled = nixCats("git.merge") or false, event = { "BufReadPre", "BufNewFile" }, after = function(plugin) require("resolve").setup({ @@ -21,4 +21,73 @@ return { }) end, }, + { + "gitsigns.nvim", + enabled = nixCats("git.gitsigns") or false, + after = function(plugin) + require("gitsigns").setup({ + signs = { + add = { text = "┃" }, + change = { text = "┇" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "╎" }, + }, + signs_staged = { + add = { text = "┃" }, + change = { text = "┇" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "╎" }, + }, + on_attach = function(bufnr) + local gitsigns = require("gitsigns") + + -- toggle git blame + vim.keymap.set("n", "gb", function() + local wins = vim.api.nvim_list_wins() + for _, win in ipairs(wins) do + local buf = vim.api.nvim_win_get_buf(win) + local ft = vim.api.nvim_get_option_value("filetype", { buf = buf }) + if ft == "gitsigns-blame" then + vim.api.nvim_win_close(win, true) + return + end + end + vim.cmd("Gitsigns blame") + end) + + vim.keymap.set("n", "bl", gitsigns.toggle_current_line_blame) + + vim.keymap.set("n", "]c", function() + if vim.wo.diff then + vim.cmd.normal({ "]c", bang = true }) + else + gitsigns.nav_hunk("next") + end + end) + + vim.keymap.set("n", "[c", function() + if vim.wo.diff then + vim.cmd.normal({ "[c", bang = true }) + else + gitsigns.nav_hunk("prev") + end + end) + + vim.keymap.set("n", "hs", gitsigns.stage_hunk) + vim.keymap.set("n", "hu", gitsigns.undo_stage_hunk) + + vim.keymap.set("n", "hS", gitsigns.stage_buffer) + vim.keymap.set("n", "hU", gitsigns.reset_buffer_index) + + vim.keymap.set("n", "hi", gitsigns.toggle_current_line_blame) + + vim.keymap.set("n", "hp", gitsigns.preview_hunk_inline) + end, + }) + end, + }, } diff --git a/homes/modules/programs/neovim/lua/plugins/hlchunk.lua b/homes/modules/programs/neovim/lua/plugins/hlchunk.lua new file mode 100644 index 0000000..d4c920d --- /dev/null +++ b/homes/modules/programs/neovim/lua/plugins/hlchunk.lua @@ -0,0 +1,36 @@ +return { + { + "hlchunk.nvim", + enabled = nixCats("ui.hlchunk") or false, + after = function(plugin) + require("hlchunk").setup({ + chunk = { + enable = true, + use_treesitter = true, + chars = { + horizontal_line = "─", + vertical_line = "│", + left_top = "╭", + left_bottom = "╰", + right_arrow = "─", + }, + style = { + "#B0F0FA", + }, + }, + indent = { + enable = true, + use_treesitter = false, + ahead_lines = 10, + delay = 25, + chars = { + "│", + }, + style = { + "#9080FA", + }, + }, + }) + end, + }, +} diff --git a/homes/modules/programs/neovim/lua/plugins/init.lua b/homes/modules/programs/neovim/lua/plugins/init.lua index cceea69..d23ef30 100644 --- a/homes/modules/programs/neovim/lua/plugins/init.lua +++ b/homes/modules/programs/neovim/lua/plugins/init.lua @@ -7,4 +7,6 @@ require("lze").load({ { import = "plugins.format" }, { import = "plugins.comment" }, { import = "plugins.git" }, + { import = "plugins.lualine" }, + { import = "plugins.hlchunk" }, }) diff --git a/homes/modules/programs/neovim/lua/plugins/lualine.lua b/homes/modules/programs/neovim/lua/plugins/lualine.lua new file mode 100644 index 0000000..a0303d5 --- /dev/null +++ b/homes/modules/programs/neovim/lua/plugins/lualine.lua @@ -0,0 +1,22 @@ +local config = { + options = { + theme = "auto", + }, +} + +return { + { + "lualine.nvim", + enabled = nixCats("ui.lualine") or false, + after = function(plugin) + require("lualine").setup(config) + + vim.api.nvim_create_autocmd("User", { + pattern = "RefreshLualine", + callback = function() + require("lualine").setup(config) + end, + }) + end, + }, +} diff --git a/homes/modules/programs/neovim/lua/plugins/telescope.lua b/homes/modules/programs/neovim/lua/plugins/telescope.lua index a61f19c..7a2a2b6 100644 --- a/homes/modules/programs/neovim/lua/plugins/telescope.lua +++ b/homes/modules/programs/neovim/lua/plugins/telescope.lua @@ -1,12 +1,16 @@ return { { "telescope.nvim", + enabled = nixCats("telescope.enable") or false, cmd = { "Telescope" }, keys = { { "f", function() - return require("telescope.builtin").find_files() + return require("telescope.builtin").find_files({ + hidden = true, + file_ignore_patterns = { "^.git/" }, + }) end, mode = { "n" }, desc = "Telescope search [F]iles", @@ -22,7 +26,10 @@ return { { "ts", function() - return require("telescope.builtin").live_grep() + return require("telescope.builtin").live_grep({ + additional_args = { "--hidden" }, + glob_pattern = { "!.git/" }, + }) end, mode = { "n" }, desc = "[T]elescope [S]earch cwd with grep", @@ -30,7 +37,10 @@ return { { "tw", function() - return require("telescope.builtin").grep_string() + return require("telescope.builtin").grep_string({ + additional_args = { "--hidden" }, + glob_pattern = { "!.git/" }, + }) end, mode = { "n" }, desc = "[T]elescope search current [W]ord", @@ -51,10 +61,33 @@ return { mode = { "n" }, desc = "[T]elescope search [B]uffers", }, + { + "th", + function() + return require("telescope.builtin").highlights() + end, + mode = { "n" }, + desc = "[T]elescope [H]ighlights", + }, + { + "gs", + function() + return require("telescope.builtin").git_status() + end, + mode = { "n" }, + desc = "[G]it [S]tatus", + }, }, load = function(name) vim.cmd.packadd(name) - vim.cmd.packadd("telescope-fzf-native.nvim") + + if nixCats("telescope.fzf") then + vim.cmd.packadd("telescope-fzf-native.nvim") + end + + if nixCats("telescope.zf") then + vim.cmd.packadd("telescope-zf-native.nvim") + end end, after = function(plugin) local telescope = require("telescope") @@ -62,6 +95,8 @@ return { telescope.setup({ defaults = { + border = true, + borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, mappings = { i = { [""] = actions.move_selection_previous, -- move to prev result @@ -72,7 +107,13 @@ return { }, }) - pcall(telescope.load_extension, "fzf") + if nixCats("telescope.fzf") then + telescope.load_extension("fzf") + end + + if nixCats("telescope.zf") then + telescope.load_extension("zf-native") + end end, }, } diff --git a/homes/modules/programs/neovim/nixcats.nix b/homes/modules/programs/neovim/nixcats.nix index 564b652..79ee410 100644 --- a/homes/modules/programs/neovim/nixcats.nix +++ b/homes/modules/programs/neovim/nixcats.nix @@ -15,11 +15,10 @@ in { ]; config = { - # this value, nixCats is the defaultPackageName you pass to mkNixosModules - # it will be the namespace for your options. nixCats = { enable = true; nixpkgs_version = inputs.nixpkgs-unstable; + # TODO: ask butterfly about this, am confused :3 # this will add the overlays from ./overlays and also, # add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins # It will not apply to overall system, just nixCats. @@ -28,15 +27,13 @@ in { [ (utils.standardPluginOverlay inputs) ]; - # see the packageDefinitions below. + # This says which of those to install. packageNames = ["auroranvim"]; luaPath = "${./.}"; - # the .replace vs .merge options are for modules based on existing configurations, - # they refer to how multiple categoryDefinitions get merged together by the module. - # for useage of this section, refer to :h nixCats.flake.outputs.categories + # for usage of this section, refer to :h nixCats.flake.outputs.categories categoryDefinitions.replace = { pkgs, settings, @@ -67,7 +64,10 @@ in { rust = { lsp = [cargo mpkgs.rust-analyzer]; # nightly rustfmt has nicer features :3 - format = [inputs.fenix.packages.${system}.complete.rustfmt]; + format = [(rustfmt.override {asNightly = true;})]; + formatters = { + leptos = [leptosfmt]; + }; }; zig = { lsp = [zls]; @@ -100,6 +100,12 @@ in { toml = { format = [taplo]; }; + bash = { + lsp = [bash-language-server]; + }; + sql = { + format = [sqlfluff]; + }; }; }; @@ -120,18 +126,23 @@ in { optionalPlugins = with pkgs.vimPlugins; { general = []; - ui = [ - dressing-nvim - ]; + ui = { + dressing = [dressing-nvim]; + lualine = [lualine-nvim]; + hlchunk = [hlchunk-nvim]; + }; qol = [ undotree mini-hipatterns ]; - telescope = [ - telescope-nvim - telescope-fzf-native-nvim - telescope-ui-select-nvim - ]; + telescope = { + enable = [ + telescope-nvim + telescope-ui-select-nvim + ]; + fzf = [telescope-fzf-native-nvim]; + zf = [telescope-zf-native-nvim]; + }; fyler = [ fyler-nvim ]; @@ -159,10 +170,15 @@ in { comment = [ comment-nvim ]; - git = [ - resolve-nvim - vim-fugitive - ]; + git = { + merge = [ + resolve-nvim + vim-fugitive + ]; + gitsigns = [ + gitsigns-nvim + ]; + }; lang = { java = [ nvim-jdtls @@ -173,9 +189,7 @@ in { # shared libraries to be added to LD_LIBRARY_PATH # variable available to nvim runtime sharedLibraries = { - general = with pkgs; [ - # libgit2 - ]; + general = with pkgs; []; }; environmentVariables = { @@ -211,15 +225,11 @@ in { # see :help nixCats.flake.outputs.packageDefinitions packageDefinitions.replace = { - # these are the names of your packages - # you can include as many as you wish. auroranvim = {pkgs, ...}: { # they contain a settings set defined above # see :help nixCats.flake.outputs.settings settings = { wrapRc = true; - # IMPORTANT: - # your alias may not conflict with your other packages. aliases = [ "auravim" "foxyvim" @@ -227,14 +237,26 @@ in { "fvix" ]; }; - # and a set of categories that you want - # (and other information to pass to lua) + categories = { general = true; - ui = true; + ui = { + dressing = true; + lualine = true; + hlchunk = true; + }; + qol = true; - telescope = true; + + telescope = { + enable = true; + + # only enable one at a time + fzf = true; + zf = false; + }; + fyler = true; lsp = true; @@ -244,50 +266,48 @@ in { format = true; comment = true; - git = false; # not really setup yet + git = { + merge = false; # not really setup yet..