Initial commit
This commit is contained in:
832
flake.lock
generated
Normal file
832
flake.lock
generated
Normal file
@@ -0,0 +1,832 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762618334,
|
||||||
|
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ags": {
|
||||||
|
"inputs": {
|
||||||
|
"astal": "astal",
|
||||||
|
"nixpkgs": [
|
||||||
|
"statusbar",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762046771,
|
||||||
|
"narHash": "sha256-baVZvZZN0t9F3fvVhxmQA1/oNykXGd/YhlF19JqCLc8=",
|
||||||
|
"owner": "aylur",
|
||||||
|
"repo": "ags",
|
||||||
|
"rev": "fe13af2daec716226ccdb3158606a8577853e0ff",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "aylur",
|
||||||
|
"repo": "ags",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"astal": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"statusbar",
|
||||||
|
"ags",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762012522,
|
||||||
|
"narHash": "sha256-ncEN4OVFM5M9VFc4oR3gOI5K8r99GcYxtU+Cf4Z8pbs=",
|
||||||
|
"owner": "aylur",
|
||||||
|
"repo": "astal",
|
||||||
|
"rev": "671d4229c798834190a50fb8b8d8addd19b529e9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "aylur",
|
||||||
|
"repo": "astal",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16": {
|
||||||
|
"inputs": {
|
||||||
|
"fromYaml": "fromYaml"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755819240,
|
||||||
|
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-fish": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754405784,
|
||||||
|
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-helix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752979451,
|
||||||
|
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732806396,
|
||||||
|
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bettersoundcloud": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758915997,
|
||||||
|
"narHash": "sha256-alfX86Dk0NfhQu8PwonzKFxhA4XR40LoOhhdiIsFztc=",
|
||||||
|
"owner": "demenik",
|
||||||
|
"repo": "BetterSoundCloud-nix",
|
||||||
|
"rev": "c79babf9a51269b55924fdec69670ce76e0abcf3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "demenik",
|
||||||
|
"repo": "BetterSoundCloud-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744478979,
|
||||||
|
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"firefox-gnome-theme": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758112371,
|
||||||
|
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761588595,
|
||||||
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763759067,
|
||||||
|
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756770412,
|
||||||
|
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fromYaml": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731966426,
|
||||||
|
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gnome-shell": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"host": "gitlab.gnome.org",
|
||||||
|
"lastModified": 1762869044,
|
||||||
|
"narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"host": "gitlab.gnome.org",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"ref": "gnome-49",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745494811,
|
||||||
|
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763992752,
|
||||||
|
"narHash": "sha256-iinKiBTAx7F9EkMqKFSqaWTCaay463toAPtQiA8RRyc=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "55af952c5612190c3e7862f4e2504048c50841aa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ixx": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"nixvim",
|
||||||
|
"nuschtosSearch",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nuschtosSearch",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754860581,
|
||||||
|
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "ixx",
|
||||||
|
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"ref": "v0.1.1",
|
||||||
|
"repo": "ixx",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mcmojave-cursors": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1614124859,
|
||||||
|
"narHash": "sha256-4YqSucpxA7jsuJ9aADjJfKRPgPR89oq2l0T1N28+GV0=",
|
||||||
|
"owner": "vinceliuice",
|
||||||
|
"repo": "McMojave-cursors",
|
||||||
|
"rev": "7d0bfc1f91028191cdc220b87fd335a235ee4439",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vinceliuice",
|
||||||
|
"repo": "McMojave-cursors",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-wsl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763946063,
|
||||||
|
"narHash": "sha256-mxIPAXPmkf5aG7/pj59+82gvtgw2qi8pWIolMPTswu8=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-wsl",
|
||||||
|
"rev": "8d8506cea352fba187cfc748078e0c920c4e2129",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "nixos-wsl",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763835633,
|
||||||
|
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763618868,
|
||||||
|
"narHash": "sha256-v5afmLjn/uyD9EQuPBn7nZuaZVV9r+JerayK/4wvdWA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a8d610af3f1a5fb71e23e08434d8d61a466fc942",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
|
"systems": "systems_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763984728,
|
||||||
|
"narHash": "sha256-i07UsSg+kedev5Bh/p/ERG1xrbRivOztih8laHZR6W8=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"rev": "3dc952d69cd38cdc3ad3ec7570fc4a1caed2bfea",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"stylix",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758998580,
|
||||||
|
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nuschtosSearch": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"ixx": "ixx",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761730856,
|
||||||
|
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
|
"bettersoundcloud": "bettersoundcloud",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"mcmojave-cursors": "mcmojave-cursors",
|
||||||
|
"nixos-wsl": "nixos-wsl",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixvim": "nixvim",
|
||||||
|
"spicetify-nix": "spicetify-nix",
|
||||||
|
"statusbar": "statusbar",
|
||||||
|
"stylix": "stylix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spicetify-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763985453,
|
||||||
|
"narHash": "sha256-vUqODgLIjeyHN7DP8dVx7oH9yB/L8qcxpN//4EmMQcM=",
|
||||||
|
"owner": "gerg-l",
|
||||||
|
"repo": "spicetify-nix",
|
||||||
|
"rev": "89cd40c646ec5b12e5c20c0e18f082e7629d4819",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gerg-l",
|
||||||
|
"repo": "spicetify-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"statusbar": {
|
||||||
|
"inputs": {
|
||||||
|
"ags": "ags",
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762946029,
|
||||||
|
"narHash": "sha256-GTYYOh/Bl++Ddi0g5y29Kne7g0LqemcfSkEfWGxrJo4=",
|
||||||
|
"owner": "demenik",
|
||||||
|
"repo": "statusbar",
|
||||||
|
"rev": "3256d7a50059c72599b4f6ca940bcf4054216263",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "demenik",
|
||||||
|
"repo": "statusbar",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stylix": {
|
||||||
|
"inputs": {
|
||||||
|
"base16": "base16",
|
||||||
|
"base16-fish": "base16-fish",
|
||||||
|
"base16-helix": "base16-helix",
|
||||||
|
"base16-vim": "base16-vim",
|
||||||
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"gnome-shell": "gnome-shell",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nur": "nur",
|
||||||
|
"systems": "systems_7",
|
||||||
|
"tinted-foot": "tinted-foot",
|
||||||
|
"tinted-kitty": "tinted-kitty",
|
||||||
|
"tinted-schemes": "tinted-schemes",
|
||||||
|
"tinted-tmux": "tinted-tmux",
|
||||||
|
"tinted-zed": "tinted-zed"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763845141,
|
||||||
|
"narHash": "sha256-o8TKdZluj/yC8qPIVNe2g4qopyFmQglH52+lvQx82kE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "stylix",
|
||||||
|
"rev": "adc650610085adbe130b9860d5bdb869f96050af",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "stylix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-foot": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726913040,
|
||||||
|
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-kitty": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735730497,
|
||||||
|
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757716333,
|
||||||
|
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-tmux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757811970,
|
||||||
|
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-zed": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757811247,
|
||||||
|
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
151
flake.nix
Normal file
151
flake.nix
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
{
|
||||||
|
description = "demenik's dots";
|
||||||
|
|
||||||
|
nixConfig.experimentalFeatures = ["nix-command" "flakes"];
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nixos-wsl = {
|
||||||
|
url = "github:nix-community/nixos-wsl/main";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
agenix = {
|
||||||
|
url = "github:ryantm/agenix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
stylix = {
|
||||||
|
url = "github:nix-community/stylix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
|
spicetify-nix = {
|
||||||
|
url = "github:gerg-l/spicetify-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
mcmojave-cursors = {
|
||||||
|
url = "github:vinceliuice/McMojave-cursors";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
bettersoundcloud = {
|
||||||
|
url = "github:demenik/BetterSoundCloud-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
statusbar = {
|
||||||
|
url = "github:demenik/statusbar";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
home-manager,
|
||||||
|
agenix,
|
||||||
|
stylix,
|
||||||
|
nixos-wsl,
|
||||||
|
statusbar,
|
||||||
|
...
|
||||||
|
} @ inputs: {
|
||||||
|
nixosConfigurations = let
|
||||||
|
mkNixConfig = {
|
||||||
|
hostName,
|
||||||
|
system ? "x86_64-linux",
|
||||||
|
user ? "demenik",
|
||||||
|
stateVersion ? "25.05",
|
||||||
|
dotsDir ? "/home/${user}/dots",
|
||||||
|
nixOsModules ? [],
|
||||||
|
hmModules ? [],
|
||||||
|
}: let
|
||||||
|
specialArgs = {inherit inputs stateVersion user dotsDir;};
|
||||||
|
in
|
||||||
|
nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system specialArgs;
|
||||||
|
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
{
|
||||||
|
networking.hostName = hostName;
|
||||||
|
}
|
||||||
|
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
# useGlobalPkgs = true;
|
||||||
|
backupFileExtension = "backup";
|
||||||
|
|
||||||
|
users."${user}".imports = hmModules;
|
||||||
|
extraSpecialArgs = specialArgs;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ nixOsModules;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
thinkpad = mkNixConfig {
|
||||||
|
hostName = "thinkpad";
|
||||||
|
nixOsModules = [
|
||||||
|
./hosts/thinkpad.nix
|
||||||
|
./nixos/full.nix
|
||||||
|
|
||||||
|
statusbar.nixosModules.default
|
||||||
|
];
|
||||||
|
hmModules = [
|
||||||
|
./home/demenik.nix
|
||||||
|
|
||||||
|
agenix.homeManagerModules.default
|
||||||
|
./secrets
|
||||||
|
|
||||||
|
stylix.homeModules.stylix
|
||||||
|
./home/stylix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
wsl = mkNixConfig rec {
|
||||||
|
hostName = "wsl";
|
||||||
|
nixOsModules = [
|
||||||
|
./hosts/wsl.nix
|
||||||
|
./nixos/headless.nix
|
||||||
|
|
||||||
|
nixos-wsl.nixosModules.default
|
||||||
|
<nixos-wsl/modules>
|
||||||
|
];
|
||||||
|
hmModules = [
|
||||||
|
./home/headless.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
homeConfigurations = let
|
||||||
|
mkHomeConfig = {
|
||||||
|
system ? "x86_64-linux",
|
||||||
|
user ? "demenik",
|
||||||
|
stateVersion ? "25.05",
|
||||||
|
dotsDir ? "/home/${user}/dots",
|
||||||
|
modules ? [],
|
||||||
|
}:
|
||||||
|
home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
inherit modules;
|
||||||
|
extraSpecialArgs = {inherit inputs stateVersion user dotsDir;};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
"nix@homelab" = mkHomeConfig {
|
||||||
|
user = "nix";
|
||||||
|
dotsDir = "/home/homelab-dots";
|
||||||
|
modules = [
|
||||||
|
./home/headless.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"db56@wsl50" = mkHomeConfig {
|
||||||
|
user = "db56";
|
||||||
|
modules = [
|
||||||
|
./home/headless.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
home/accounts/default.nix
Normal file
5
home/accounts/default.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./mail.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
135
home/accounts/mail.nix
Normal file
135
home/accounts/mail.nix
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pass
|
||||||
|
];
|
||||||
|
|
||||||
|
accounts.email.accounts = let
|
||||||
|
getPass = address: "${lib.getExe pkgs.pass} show ${address}";
|
||||||
|
in {
|
||||||
|
"iCloud" = rec {
|
||||||
|
primary = true;
|
||||||
|
address = "dominik.bernroider@icloud.com";
|
||||||
|
userName = address;
|
||||||
|
realName = "Dominik Bernroider";
|
||||||
|
|
||||||
|
passwordCommand = getPass address;
|
||||||
|
|
||||||
|
imap = {
|
||||||
|
host = "imap.mail.me.com";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
smtp = {
|
||||||
|
host = "smtp.mail.me.com";
|
||||||
|
port = 587;
|
||||||
|
tls = {
|
||||||
|
enable = true;
|
||||||
|
useStartTls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"Gmail" = rec {
|
||||||
|
address = "domerepu@gmail.com";
|
||||||
|
userName = address;
|
||||||
|
realName = "Dominik Bernroider";
|
||||||
|
flavor = "gmail.com";
|
||||||
|
|
||||||
|
passwordCommand = getPass address;
|
||||||
|
|
||||||
|
imap = {
|
||||||
|
host = "imap.gmail.com";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
smtp = {
|
||||||
|
host = "smtp.gmail.com";
|
||||||
|
port = 465;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"Uni-Ulm" = rec {
|
||||||
|
address = "dominik.bernroider@uni-ulm.de";
|
||||||
|
userName = "tct47";
|
||||||
|
realName = "Dominik Bernroider";
|
||||||
|
|
||||||
|
passwordCommand = getPass address;
|
||||||
|
|
||||||
|
imap = {
|
||||||
|
host = "imap.uni-ulm.de";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
smtp = {
|
||||||
|
host = "mail.uni-ulm.de";
|
||||||
|
port = 587;
|
||||||
|
tls = {
|
||||||
|
enable = true;
|
||||||
|
useStartTls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"Self-hosted" = rec {
|
||||||
|
address = "mail@demenik.tech";
|
||||||
|
userName = address;
|
||||||
|
realName = "Dominik Bernroider";
|
||||||
|
|
||||||
|
passwordCommand = getPass address;
|
||||||
|
|
||||||
|
imap = {
|
||||||
|
host = "mail.demenik.tech";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
smtp = {
|
||||||
|
host = "mail.demenik.tech";
|
||||||
|
port = 587;
|
||||||
|
tls = {
|
||||||
|
enable = true;
|
||||||
|
useStartTls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"Alte Gmail" = rec {
|
||||||
|
address = "domemc.netzwerk@gmail.com";
|
||||||
|
flavor = "gmail.com";
|
||||||
|
userName = address;
|
||||||
|
realName = "Dominik Bernroider";
|
||||||
|
|
||||||
|
passwordCommand = getPass address;
|
||||||
|
|
||||||
|
imap = {
|
||||||
|
host = "imap.gmail.com";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
smtp = {
|
||||||
|
host = "smtp.gmail.com";
|
||||||
|
port = 465;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
33
home/demenik.nix
Normal file
33
home/demenik.nix
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./global.nix
|
||||||
|
./xdg-desktop.nix
|
||||||
|
./accounts
|
||||||
|
|
||||||
|
./desktops/hyprland
|
||||||
|
|
||||||
|
./services/kanshi.nix
|
||||||
|
./services/bisync.nix
|
||||||
|
|
||||||
|
./shells/zsh
|
||||||
|
./terminals/kitty
|
||||||
|
|
||||||
|
./programs
|
||||||
|
./editors/nvim
|
||||||
|
./editors/intellij.nix
|
||||||
|
./editors/cursor.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".face" = {
|
||||||
|
source = pkgs.fetchurl {
|
||||||
|
url = "https://github.com/demenik.png";
|
||||||
|
hash = "sha256-+1ugmn5qeAvijj5Lm3Ye0rW9UEF9OCGxiSMfZKVjxI4=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
mpvpaper
|
||||||
|
];
|
||||||
|
|
||||||
|
services.swww.enable = true;
|
||||||
|
}
|
||||||
21
home/desktops/global.nix
Normal file
21
home/desktops/global.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home = {
|
||||||
|
sessionVariables = {
|
||||||
|
GTK_USE_PORTAL = "1";
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
QT_SCALE_FACTOR = "1";
|
||||||
|
DISABLE_QT5_COMPAT = "0";
|
||||||
|
_JAVA_AWT_WM_NONREPARENTING = "1";
|
||||||
|
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "qtct";
|
||||||
|
};
|
||||||
|
}
|
||||||
2
home/desktops/hyprland/animations.nix
Normal file
2
home/desktops/hyprland/animations.nix
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[
|
||||||
|
]
|
||||||
5
home/desktops/hyprland/binds/app-binds.nix
Normal file
5
home/desktops/hyprland/binds/app-binds.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# hyprlang
|
||||||
|
''
|
||||||
|
bind = SUPER, b, exec, [workspace 2] firefox
|
||||||
|
bind = SUPER, Return, exec, kitty-cwd
|
||||||
|
''
|
||||||
57
home/desktops/hyprland/binds/default.nix
Normal file
57
home/desktops/hyprland/binds/default.nix
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
settings = {
|
||||||
|
bind = let
|
||||||
|
numbers = [1 2 3 4 5 6 7 8 9];
|
||||||
|
workspace = num: "SUPER, ${toString num}, workspace, ${toString num}";
|
||||||
|
move-to-workspace = num: "SUPER SHIFT, ${toString num}, movetoworkspace, ${toString num}";
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"SUPER SHIFT, q, exit"
|
||||||
|
|
||||||
|
"SUPER, x, killactive"
|
||||||
|
"SUPER, t, togglefloating"
|
||||||
|
"SUPER SHIFT, p, pin"
|
||||||
|
"SUPER, f, fullscreen, 0"
|
||||||
|
"SUPER, m, fullscreen, 1"
|
||||||
|
"SUPER SHIFT, f, fullscreenstate, -1 2"
|
||||||
|
|
||||||
|
"SUPER, 0, workspace, 10"
|
||||||
|
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||||
|
]
|
||||||
|
++ map move-to-workspace numbers
|
||||||
|
++ map workspace numbers;
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
"SUPER, mouse:272, movewindow"
|
||||||
|
"SUPER, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
binde = let
|
||||||
|
volume-value = 5;
|
||||||
|
brightness-value = 5;
|
||||||
|
volume-cmd = "wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ ${toString volume-value}%";
|
||||||
|
in [
|
||||||
|
",XF86MonBrightnessUp, exec, light -A ${toString brightness-value}"
|
||||||
|
",XF86MonBrightnessDown, exec, light -U ${toString brightness-value}"
|
||||||
|
# TODO: these dont work on the ThinkPad
|
||||||
|
|
||||||
|
",XF86AudioRaiseVolume, exec, ${volume-cmd}+"
|
||||||
|
",XF86AudioLowerVolume, exec, ${volume-cmd}-"
|
||||||
|
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindl = [
|
||||||
|
",XF86AudioPlay, exec, playerctl play-pause"
|
||||||
|
",XF86AudioNext, exec, playerctl next"
|
||||||
|
",XF86AudioPrev, exec, playerctl previous"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = import ./vim-binds.nix + import ./app-binds.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.playerctld.enable = true;
|
||||||
|
home.packages = with pkgs; [light];
|
||||||
|
}
|
||||||
27
home/desktops/hyprland/binds/vim-binds.nix
Normal file
27
home/desktops/hyprland/binds/vim-binds.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# hyprlang
|
||||||
|
''
|
||||||
|
bind = SUPER, h, bringactivetotop
|
||||||
|
bind = SUPER, j, bringactivetotop
|
||||||
|
bind = SUPER, k, bringactivetotop
|
||||||
|
bind = SUPER, l, bringactivetotop
|
||||||
|
|
||||||
|
bind = SUPER, h, movefocus, l
|
||||||
|
bind = SUPER, j, movefocus, d
|
||||||
|
bind = SUPER, k, movefocus, u
|
||||||
|
bind = SUPER, l, movefocus, r
|
||||||
|
|
||||||
|
bind = SUPER ALT, h, swapwindow, l
|
||||||
|
bind = SUPER ALT, j, swapwindow, d
|
||||||
|
bind = SUPER ALT, k, swapwindow, u
|
||||||
|
bind = SUPER ALT, l, swapwindow, r
|
||||||
|
|
||||||
|
bind = SUPER CTRL, h, moveactive, l
|
||||||
|
bind = SUPER CTRL, j, moveactive, d
|
||||||
|
bind = SUPER CTRL, k, moveactive, u
|
||||||
|
bind = SUPER CTRL, l, moveactive, r
|
||||||
|
|
||||||
|
bind = SUPER SHIFT, h, resizeactive, -20 0
|
||||||
|
bind = SUPER SHIFT, j, resizeactive, 0 20
|
||||||
|
bind = SUPER SHIFT, k, resizeactive, 0 -20
|
||||||
|
bind = SUPER SHIFT, l, resizeactive, 20 0
|
||||||
|
''
|
||||||
75
home/desktops/hyprland/default.nix
Normal file
75
home/desktops/hyprland/default.nix
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
../global.nix
|
||||||
|
../wayland.nix
|
||||||
|
|
||||||
|
./binds
|
||||||
|
./hyprlock.nix
|
||||||
|
./dunst.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
hyprland
|
||||||
|
hyprshade
|
||||||
|
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
|
||||||
|
settings = let
|
||||||
|
rules = import ./rules.nix;
|
||||||
|
in {
|
||||||
|
monitor = [",preferred,auto,1"];
|
||||||
|
|
||||||
|
misc.disable_hyprland_logo = true;
|
||||||
|
misc.focus_on_activate = true;
|
||||||
|
xwayland.force_zero_scaling = true;
|
||||||
|
|
||||||
|
layerrule = rules.layer;
|
||||||
|
windowrulev2 = rules.window;
|
||||||
|
inherit (rules) workspace;
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "de";
|
||||||
|
kb_variant = "nodeadkeys";
|
||||||
|
repeat_delay = 300;
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
clickfinger_behavior = true;
|
||||||
|
disable_while_typing = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 5;
|
||||||
|
gaps_out = 5;
|
||||||
|
border_size = 2;
|
||||||
|
layout = "master";
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 8;
|
||||||
|
blur = {
|
||||||
|
size = 4;
|
||||||
|
passes = 3;
|
||||||
|
};
|
||||||
|
dim_around = 0.6;
|
||||||
|
};
|
||||||
|
|
||||||
|
animation = import ./animations.nix;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.hypridle = import ./hypridle.nix;
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
XDG_SESSION_DESKTOP = "Hyprland";
|
||||||
|
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||||
|
};
|
||||||
|
}
|
||||||
45
home/desktops/hyprland/dunst.nix
Normal file
45
home/desktops/hyprland/dunst.nix
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{config, ...}: {
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
name = config.stylix.icons.dark;
|
||||||
|
inherit (config.stylix.icons) package;
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = let
|
||||||
|
inherit (config.lib.stylix) colors;
|
||||||
|
in {
|
||||||
|
global = {
|
||||||
|
width = 400;
|
||||||
|
offset = "5x5";
|
||||||
|
corner_radius = 4;
|
||||||
|
|
||||||
|
progress_bar_min_width = 380;
|
||||||
|
progress_bar_max_width = 380;
|
||||||
|
progress_bar_corner_radius = 8;
|
||||||
|
|
||||||
|
padding = 10;
|
||||||
|
horizontal_padding = 10;
|
||||||
|
frame_width = 1;
|
||||||
|
gap_size = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_low = {
|
||||||
|
format = "<b><span>%s</span></b>\n%b";
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_normal = {
|
||||||
|
highlight = colors.base0A;
|
||||||
|
default_icon = "dialog-information";
|
||||||
|
format = "<b><span>%s</span></b>\n%b";
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_critical = {
|
||||||
|
highlight = colors.base08;
|
||||||
|
default_icon = "dialog-error";
|
||||||
|
format = "<b><span>%s</span></b>\n%b";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
32
home/desktops/hyprland/hypridle.nix
Normal file
32
home/desktops/hyprland/hypridle.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
lock_cmd = "pidof hyprlock || hyprlock";
|
||||||
|
before_sleep_cmd = "hyprlock";
|
||||||
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
|
};
|
||||||
|
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = 300; # 5min
|
||||||
|
on-timeout = "light -S 10";
|
||||||
|
on-resume = "brightnessctl -r";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 150; # 2.5min
|
||||||
|
on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0";
|
||||||
|
on-resume = "brightnessctl -rd rgb:kbd_backlight";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 600; # 10min
|
||||||
|
on-timeout = "hyprlock";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 900; # 15min
|
||||||
|
on-timeout = "hyprctl dispatch dpms off";
|
||||||
|
on-resume = "hyprctl dispatch dpms on";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
107
home/desktops/hyprland/hyprlock.nix
Normal file
107
home/desktops/hyprland/hyprlock.nix
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = let
|
||||||
|
profilePhoto = "$HOME/Pictures/pfp/bladee/egobaby.jpg";
|
||||||
|
wallpaper = "$HOME/Pictures/wallpapers/takopi/class.png";
|
||||||
|
font_family = config.stylix.fonts.sansSerif.name;
|
||||||
|
|
||||||
|
inherit (config.lib.stylix) colors;
|
||||||
|
text = colors.base05;
|
||||||
|
yellow = colors.base0A;
|
||||||
|
accent = colors.base0D;
|
||||||
|
in {
|
||||||
|
authentication.fingerprint.enabled = true;
|
||||||
|
|
||||||
|
background = {
|
||||||
|
monitor = "";
|
||||||
|
path = wallpaper;
|
||||||
|
blur_passes = 0;
|
||||||
|
blur_size = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
hide_cursor = true;
|
||||||
|
ignore_empty_input = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
input-field = {
|
||||||
|
monitor = "";
|
||||||
|
size = "250, 60";
|
||||||
|
position = "0, -225";
|
||||||
|
outline_thickness = 2;
|
||||||
|
dots_size = 0.2;
|
||||||
|
dots_spacing = 0.2;
|
||||||
|
dots_center = true;
|
||||||
|
outer_color = lib.mkForce "rgba(0, 0, 0, 0)";
|
||||||
|
inner_color = lib.mkForce "rgba(100, 114, 125, 0.4)";
|
||||||
|
font_color = lib.mkForce "rgb(${text})";
|
||||||
|
fade_on_empty = false;
|
||||||
|
inherit font_family;
|
||||||
|
placeholder_text = "<span foreground=\"##${text}99\"><i> Login as </i><span foreground=\"##${accent}ff\">$USER</span></span>";
|
||||||
|
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
||||||
|
capslock_color = "rgb(${yellow})";
|
||||||
|
check_color = lib.mkForce "rgb(${accent})";
|
||||||
|
};
|
||||||
|
|
||||||
|
label = [
|
||||||
|
# Layout
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "Layout: $LAYOUT";
|
||||||
|
color = "#rgb(${text})";
|
||||||
|
font_size = 12;
|
||||||
|
inherit font_family;
|
||||||
|
position = "30, -30";
|
||||||
|
halign = "left";
|
||||||
|
valign = "top";
|
||||||
|
}
|
||||||
|
# Time
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "cmd[update:1000] echo \"$(date +\"%H:%M\")\"";
|
||||||
|
color = "rgb(${text})";
|
||||||
|
font_size = 130;
|
||||||
|
inherit font_family;
|
||||||
|
position = "0, 240";
|
||||||
|
}
|
||||||
|
# Day-Month
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "cmd[update:43200000] echo -e \"$(date +\"%A, %d. %B %Y\")\"";
|
||||||
|
color = "rgb(${text})";
|
||||||
|
font_size = 30;
|
||||||
|
inherit font_family;
|
||||||
|
position = "0, 105";
|
||||||
|
}
|
||||||
|
# Fingerprint
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "$FPRINTPROMPT";
|
||||||
|
color = "rgb(${text})";
|
||||||
|
font_size = 14;
|
||||||
|
inherit font_family;
|
||||||
|
position = "0, -130";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# image = [
|
||||||
|
# # Profile Photo
|
||||||
|
# {
|
||||||
|
# monitor = "";
|
||||||
|
# path = profilePhoto;
|
||||||
|
# border_size = 0;
|
||||||
|
# size = 120;
|
||||||
|
# rounding = -1;
|
||||||
|
# rotate = 0;
|
||||||
|
# position = "0, -20";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
18
home/desktops/hyprland/rules.nix
Normal file
18
home/desktops/hyprland/rules.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
layer = [];
|
||||||
|
|
||||||
|
window =
|
||||||
|
[
|
||||||
|
"float, class:^(hyprland-share-picker)$"
|
||||||
|
"workspace 3, class:^(Electron)$, title:^(BSC)$" # BetterSoundCloud
|
||||||
|
"workspace 3, class:^(opensoundcloud)$"
|
||||||
|
]
|
||||||
|
++ map (rule: "${rule}, class:^(xdg-desktop-portal-gtk)$") [
|
||||||
|
"float"
|
||||||
|
"size 800 600"
|
||||||
|
"center 1"
|
||||||
|
"dimaround"
|
||||||
|
];
|
||||||
|
|
||||||
|
workspace = [];
|
||||||
|
}
|
||||||
22
home/desktops/wayland.nix
Normal file
22
home/desktops/wayland.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./global.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
GDK_BACKEND = "wayland";
|
||||||
|
QT_QPA_PLATFORM = "wayland";
|
||||||
|
CLUTTER_BACKEND = "wayland";
|
||||||
|
SDL_VIDEODRIVER = "wayland";
|
||||||
|
XDG_SESSION_TYPE = "wayland";
|
||||||
|
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.clipman.enable = true;
|
||||||
|
}
|
||||||
3
home/editors/cursor.nix
Normal file
3
home/editors/cursor.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [code-cursor-fhs];
|
||||||
|
}
|
||||||
5
home/editors/intellij.nix
Normal file
5
home/editors/intellij.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
jetbrains.idea-community
|
||||||
|
];
|
||||||
|
}
|
||||||
32
home/editors/nvim/colorschemes.nix
Normal file
32
home/editors/nvim/colorschemes.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
colorscheme = "catppuccin";
|
||||||
|
|
||||||
|
colorschemes.catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
flavour = "mocha";
|
||||||
|
transparent_background = true;
|
||||||
|
integrations = {
|
||||||
|
cmp = true;
|
||||||
|
gitsigns = true;
|
||||||
|
mini = {
|
||||||
|
enable = true;
|
||||||
|
indentscope_color = "lavender";
|
||||||
|
};
|
||||||
|
nvimtree = true;
|
||||||
|
treesitter = true;
|
||||||
|
alpha = true;
|
||||||
|
fzf = true;
|
||||||
|
grug_far = true;
|
||||||
|
harpoon = true;
|
||||||
|
markdown = true;
|
||||||
|
noice = true;
|
||||||
|
copilot_vim = true;
|
||||||
|
lsp_trouble = true;
|
||||||
|
which_key = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
47
home/editors/nvim/default.nix
Normal file
47
home/editors/nvim/default.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{inputs, ...}: {
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeModules.nixvim
|
||||||
|
./plugins
|
||||||
|
./colorschemes.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
|
||||||
|
globals.mapleader = " ";
|
||||||
|
clipboard.register = "unnamedplus";
|
||||||
|
luaLoader.enable = true;
|
||||||
|
|
||||||
|
opts = import ./options.nix;
|
||||||
|
keymaps = import ./keymaps.nix;
|
||||||
|
|
||||||
|
extraConfigLua =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
-- Disable netrw
|
||||||
|
g.loaded_netrw = 1
|
||||||
|
g.loaded_netrwPlugin = 1
|
||||||
|
|
||||||
|
-- Hide line numbers in terminal mode
|
||||||
|
vim.cmd [[ autocmd TermOpen * setlocal nonumber norelativenumber ]]
|
||||||
|
|
||||||
|
-- Disable arrow keys
|
||||||
|
-- vim.cmd [[ :map <Up> <Nop> ]]
|
||||||
|
-- vim.cmd [[ :map <Left> <Nop> ]]
|
||||||
|
-- vim.cmd [[ :map <Right> <Nop> ]]
|
||||||
|
-- vim.cmd [[ :map <Down> <Nop> ]]
|
||||||
|
|
||||||
|
-- Enable diagnostics virtual text
|
||||||
|
vim.diagnostic.config({ virtual_text = true })
|
||||||
|
|
||||||
|
-- Add filetypes
|
||||||
|
vim.filetype.add({
|
||||||
|
pattern = {
|
||||||
|
[".*%.arb"] = "json",
|
||||||
|
["%.sqruff"] = "toml",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
43
home/editors/nvim/keymaps.nix
Normal file
43
home/editors/nvim/keymaps.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
let
|
||||||
|
toggle = key: action: {
|
||||||
|
key = "\\${key}";
|
||||||
|
options.desc = "Toggle ${action}";
|
||||||
|
action = "<cmd>setlocal ${action}!<cr>";
|
||||||
|
};
|
||||||
|
window-jump = key: {
|
||||||
|
key = "<c-${key}>";
|
||||||
|
action = "<c-w>${key}";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
[
|
||||||
|
{
|
||||||
|
key = "<S-u>";
|
||||||
|
options.desc = "Redo";
|
||||||
|
action = "<C-r>";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
key = "<c-c>";
|
||||||
|
options.desc = "Comment line";
|
||||||
|
action = "<cmd>normal gcc<cr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
(toggle "w" "wrap")
|
||||||
|
(toggle "n" "number")
|
||||||
|
(toggle "r" "relativenumber")
|
||||||
|
(toggle "i" "ignorecase")
|
||||||
|
(toggle "c" "cursorline")
|
||||||
|
(toggle "C" "cursorcolumn")
|
||||||
|
|
||||||
|
{
|
||||||
|
key = "<s-h>";
|
||||||
|
options.desc = "Previous buffer";
|
||||||
|
action = "<cmd>bprevious<cr>";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<s-l>";
|
||||||
|
options.desc = "Next Buffer";
|
||||||
|
action = "<cmd>bnext<cr>";
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ map window-jump ["h" "j" "k" "l"]
|
||||||
38
home/editors/nvim/options.nix
Normal file
38
home/editors/nvim/options.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
# General
|
||||||
|
undofile = true;
|
||||||
|
backup = false;
|
||||||
|
writebackup = false;
|
||||||
|
mouse = "a";
|
||||||
|
|
||||||
|
# Appearance
|
||||||
|
breakindent = true;
|
||||||
|
cursorline = false;
|
||||||
|
linebreak = true;
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
|
||||||
|
# Editing
|
||||||
|
ignorecase = true;
|
||||||
|
incsearch = true;
|
||||||
|
infercase = true;
|
||||||
|
smartcase = true;
|
||||||
|
smartindent = true;
|
||||||
|
|
||||||
|
hidden = true;
|
||||||
|
title = true;
|
||||||
|
tabstop = 2;
|
||||||
|
scrolloff = 8;
|
||||||
|
shiftwidth = 2;
|
||||||
|
numberwidth = 4;
|
||||||
|
showcmd = true;
|
||||||
|
hlsearch = true;
|
||||||
|
swapfile = false;
|
||||||
|
expandtab = true;
|
||||||
|
updatetime = 100;
|
||||||
|
timeoutlen = 1000;
|
||||||
|
sidescrolloff = 8;
|
||||||
|
termguicolors = true;
|
||||||
|
splitkeep = "screen";
|
||||||
|
fileencoding = "utf-8";
|
||||||
|
}
|
||||||
56
home/editors/nvim/plugins/builds.nix
Normal file
56
home/editors/nvim/plugins/builds.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
pkgs: let
|
||||||
|
build = {
|
||||||
|
version,
|
||||||
|
owner,
|
||||||
|
name,
|
||||||
|
rev,
|
||||||
|
hash,
|
||||||
|
}:
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
pname = name;
|
||||||
|
inherit version;
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
repo = name;
|
||||||
|
inherit owner rev;
|
||||||
|
sha256 = hash;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
# INFO: Last update: 18. Aug. 2025 | Sort latest -> oldest
|
||||||
|
|
||||||
|
# https://github.com/SCJangra/table-nvim
|
||||||
|
table-nvim = build {
|
||||||
|
version = "27-09-2024";
|
||||||
|
owner = "SCJangra";
|
||||||
|
name = "table-nvim";
|
||||||
|
rev = "c044fd37169eb10376962b0d0cec5f94d58ca626";
|
||||||
|
hash = "1ygn4bvnpbd49gcgbkh0cdj3p75jsmwi87hby78w0fd22205pvmi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/michaelrommel/nvim-silicon
|
||||||
|
silicon = build {
|
||||||
|
version = "09-01-2025";
|
||||||
|
owner = "michaelrommel";
|
||||||
|
name = "nvim-silicon";
|
||||||
|
rev = "7f66bda8f60c97a5bf4b37e5b8acb0e829ae3c32";
|
||||||
|
hash = "1zk6lgghvdcys20cqvh2g1kjf661q1w97niq5nx1zz4yppy2f9jy";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/b0o/incline.nvim
|
||||||
|
incline = build {
|
||||||
|
version = "05-06-2025";
|
||||||
|
owner = "b0o";
|
||||||
|
name = "incline.nvim";
|
||||||
|
rev = "0fd2d5a27504dba7fdc507a53275f22c081fe640";
|
||||||
|
hash = "19x35z2sj3hl3icrxzbs67xhxgq9d237vhgzqrz8ppdc74p8wgaz";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/Aasim-A/scrollEOF.nvim
|
||||||
|
scrollEOF = build {
|
||||||
|
version = "31-05-2025";
|
||||||
|
owner = "Aasim-A";
|
||||||
|
name = "scrollEOF.nvim";
|
||||||
|
rev = "2575109749b4bf3a0bf979a17947b3c1e8c5137e";
|
||||||
|
hash = "1s66v9n0arg81wgw1z8iv9s304j78cd506z522avpc88d3ji4yl4";
|
||||||
|
};
|
||||||
|
}
|
||||||
257
home/editors/nvim/plugins/cmp/cmp.nix
Normal file
257
home/editors/nvim/plugins/cmp/cmp.nix
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
{lib, ...}: {
|
||||||
|
plugins = {
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
autoEnableSources = true;
|
||||||
|
settings = {
|
||||||
|
experimental.ghost_text = true;
|
||||||
|
mapping.__raw = ''
|
||||||
|
cmp.mapping.preset.insert({
|
||||||
|
["<C-j>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
["<C-k>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
["<CR>"] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true
|
||||||
|
}),
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
local luasnip = require("luasnip")
|
||||||
|
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.locally_jumpable(1) then
|
||||||
|
luasnip.jump(1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
local luasnip = require("luasnip")
|
||||||
|
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.locally_jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
|
||||||
|
window = {
|
||||||
|
completion = {
|
||||||
|
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None";
|
||||||
|
col_offset = -3;
|
||||||
|
side_padding = 0;
|
||||||
|
};
|
||||||
|
documentation = {
|
||||||
|
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None";
|
||||||
|
col_offset = -3;
|
||||||
|
side_padding = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
snippet.expand =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(args)
|
||||||
|
require'luasnip'.lsp_expand(args.body)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
formatting = {
|
||||||
|
# expandable_indicator = true;
|
||||||
|
fields = ["kind" "abbr" "menu"];
|
||||||
|
|
||||||
|
format =
|
||||||
|
lib.mkForce
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(entry, vim_item)
|
||||||
|
local kind = require("lspkind").cmp_format({ mode = "symbol_text", maxwidth = 50 })(entry, vim_item)
|
||||||
|
local strings = vim.split(kind.kind, "%s", { trimempty = true })
|
||||||
|
kind.kind = " " .. (strings[1] or "") .. " "
|
||||||
|
kind.menu = " (" .. (strings[2] or "") .. ")"
|
||||||
|
return kind
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
completion.completeopt = "menu,menuone,preview,noinsert";
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
{name = "nvim_lsp";}
|
||||||
|
{name = "buffer";}
|
||||||
|
{name = "path";}
|
||||||
|
{name = "luasnip";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
cmdline = {
|
||||||
|
"/" = {
|
||||||
|
mapping.__raw = "cmp.mapping.preset.cmdline()";
|
||||||
|
sources = [{name = "buffer";}];
|
||||||
|
};
|
||||||
|
":" = {
|
||||||
|
mapping.__raw = "cmp.mapping.preset.cmdline()";
|
||||||
|
sources = [
|
||||||
|
{
|
||||||
|
name = "path";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "cmdline";
|
||||||
|
option.ignore_cmds = ["Man" "!"];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cmp-nvim-lsp.enable = true;
|
||||||
|
cmp-buffer.enable = true;
|
||||||
|
cmp-path.enable = true;
|
||||||
|
cmp-cmdline.enable = true;
|
||||||
|
cmp_luasnip.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: fix (https://github.com/hrsh7th/nvim-cmp/wiki/Menu-Appearance#how-to-get-types-on-the-left-and-offset-the-menu)
|
||||||
|
highlight = {
|
||||||
|
PmenuSel = {
|
||||||
|
bg = "#282C34";
|
||||||
|
fg = "NONE";
|
||||||
|
};
|
||||||
|
Pmenu = {
|
||||||
|
fg = "#C5CDD9";
|
||||||
|
bg = "#22252A";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemAbbrDeprecated = {
|
||||||
|
fg = "#7E8294";
|
||||||
|
bg = "NONE";
|
||||||
|
strikethrough = true;
|
||||||
|
};
|
||||||
|
CmpItemAbbrMatch = {
|
||||||
|
fg = "#82AAFF";
|
||||||
|
bg = "NONE";
|
||||||
|
bold = true;
|
||||||
|
};
|
||||||
|
CmpItemAbbrMatchFuzzy = {
|
||||||
|
fg = "#82AAFF";
|
||||||
|
bg = "NONE";
|
||||||
|
bold = true;
|
||||||
|
};
|
||||||
|
CmpItemMenu = {
|
||||||
|
fg = "#C792EA";
|
||||||
|
bg = "NONE";
|
||||||
|
italic = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindField = {
|
||||||
|
fg = "#EED8DA";
|
||||||
|
bg = "#B5585F";
|
||||||
|
};
|
||||||
|
CmpItemKindProperty = {
|
||||||
|
fg = "#EED8DA";
|
||||||
|
bg = "#B5585F";
|
||||||
|
};
|
||||||
|
CmpItemKindEvent = {
|
||||||
|
fg = "#EED8DA";
|
||||||
|
bg = "#B5585F";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindText = {
|
||||||
|
fg = "#C3E88D";
|
||||||
|
bg = "#9FBD73";
|
||||||
|
};
|
||||||
|
CmpItemKindEnum = {
|
||||||
|
fg = "#C3E88D";
|
||||||
|
bg = "#9FBD73";
|
||||||
|
};
|
||||||
|
CmpItemKindKeyword = {
|
||||||
|
fg = "#C3E88D";
|
||||||
|
bg = "#9FBD73";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindConstant = {
|
||||||
|
fg = "#FFE082";
|
||||||
|
bg = "#D4BB6C";
|
||||||
|
};
|
||||||
|
CmpItemKindConstructor = {
|
||||||
|
fg = "#FFE082";
|
||||||
|
bg = "#D4BB6C";
|
||||||
|
};
|
||||||
|
CmpItemKindReference = {
|
||||||
|
fg = "#FFE082";
|
||||||
|
bg = "#D4BB6C";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindFunction = {
|
||||||
|
fg = "#EADFF0";
|
||||||
|
bg = "#A377BF";
|
||||||
|
};
|
||||||
|
CmpItemKindStruct = {
|
||||||
|
fg = "#EADFF0";
|
||||||
|
bg = "#A377BF";
|
||||||
|
};
|
||||||
|
CmpItemKindClass = {
|
||||||
|
fg = "#EADFF0";
|
||||||
|
bg = "#A377BF";
|
||||||
|
};
|
||||||
|
CmpItemKindModule = {
|
||||||
|
fg = "#EADFF0";
|
||||||
|
bg = "#A377BF";
|
||||||
|
};
|
||||||
|
CmpItemKindOperator = {
|
||||||
|
fg = "#EADFF0";
|
||||||
|
bg = "#A377BF";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindVariable = {
|
||||||
|
fg = "#C5CDD9";
|
||||||
|
bg = "#7E8294";
|
||||||
|
};
|
||||||
|
CmpItemKindFile = {
|
||||||
|
fg = "#C5CDD9";
|
||||||
|
bg = "#7E8294";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindUnit = {
|
||||||
|
fg = "#F5EBD9";
|
||||||
|
bg = "#D4A959";
|
||||||
|
};
|
||||||
|
CmpItemKindSnippet = {
|
||||||
|
fg = "#F5EBD9";
|
||||||
|
bg = "#D4A959";
|
||||||
|
};
|
||||||
|
CmpItemKindFolder = {
|
||||||
|
fg = "#F5EBD9";
|
||||||
|
bg = "#D4A959";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindMethod = {
|
||||||
|
fg = "#DDE5F5";
|
||||||
|
bg = "#6C8ED4";
|
||||||
|
};
|
||||||
|
CmpItemKindValue = {
|
||||||
|
fg = "#DDE5F5";
|
||||||
|
bg = "#6C8ED4";
|
||||||
|
};
|
||||||
|
CmpItemKindEnumMember = {
|
||||||
|
fg = "#DDE5F5";
|
||||||
|
bg = "#6C8ED4";
|
||||||
|
};
|
||||||
|
|
||||||
|
CmpItemKindInterface = {
|
||||||
|
fg = "#D8EEEB";
|
||||||
|
bg = "#58B5A8";
|
||||||
|
};
|
||||||
|
CmpItemKindColor = {
|
||||||
|
fg = "#D8EEEB";
|
||||||
|
bg = "#58B5A8";
|
||||||
|
};
|
||||||
|
CmpItemKindTypeParameter = {
|
||||||
|
fg = "#D8EEEB";
|
||||||
|
bg = "#58B5A8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
33
home/editors/nvim/plugins/cmp/copilot.nix
Normal file
33
home/editors/nvim/plugins/cmp/copilot.nix
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
panel.enabled = false;
|
||||||
|
|
||||||
|
suggestion = {
|
||||||
|
autoTrigger = true;
|
||||||
|
keymap = {
|
||||||
|
accept = "<M-l>";
|
||||||
|
next = "<M-]>";
|
||||||
|
prev = "<M-[>";
|
||||||
|
dismiss = "<C-]>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
filetypes = {
|
||||||
|
yaml = true;
|
||||||
|
markdown = true;
|
||||||
|
|
||||||
|
javascript = true;
|
||||||
|
typescript = true;
|
||||||
|
|
||||||
|
help = false;
|
||||||
|
gitcommit = false;
|
||||||
|
gitrebase = false;
|
||||||
|
hgcommit = false;
|
||||||
|
svn = false;
|
||||||
|
cvs = false;
|
||||||
|
"." = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
home/editors/nvim/plugins/cmp/default.nix
Normal file
10
home/editors/nvim/plugins/cmp/default.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./cmp.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
emmet.enable = true;
|
||||||
|
# copilot-lua = import ./copilot.nix;
|
||||||
|
};
|
||||||
|
}
|
||||||
10
home/editors/nvim/plugins/decoration/config.lua
Normal file
10
home/editors/nvim/plugins/decoration/config.lua
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
require("incline").setup {}
|
||||||
|
|
||||||
|
-- vim_current_word
|
||||||
|
vim.cmd [[
|
||||||
|
hi CurrentWord guifg=#cba6f7
|
||||||
|
let g:vim_current_word#hightlight_twins = 0
|
||||||
|
let g:vim_current_word#excluded_filetypes = ["minifiles", "netrw", "alpha"]
|
||||||
|
]]
|
||||||
|
|
||||||
|
local g = vim.g
|
||||||
17
home/editors/nvim/plugins/decoration/default.nix
Normal file
17
home/editors/nvim/plugins/decoration/default.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
extraPlugins = let
|
||||||
|
builds = import ../builds.nix pkgs;
|
||||||
|
in
|
||||||
|
with builds;
|
||||||
|
with pkgs.vimPlugins; [
|
||||||
|
incline
|
||||||
|
scrollEOF
|
||||||
|
|
||||||
|
vim-hexokinase
|
||||||
|
vim_current_word
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.noice.enable = true;
|
||||||
|
|
||||||
|
extraConfigLua = builtins.readFile ./config.lua;
|
||||||
|
}
|
||||||
26
home/editors/nvim/plugins/default.nix
Normal file
26
home/editors/nvim/plugins/default.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./lsp
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
# TODO: make these hm level
|
||||||
|
imports = [
|
||||||
|
./cmp
|
||||||
|
./decoration
|
||||||
|
./editing
|
||||||
|
./formatting
|
||||||
|
./git
|
||||||
|
./lang
|
||||||
|
./snippet
|
||||||
|
./treesitter
|
||||||
|
./utils
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.mini.enable = true;
|
||||||
|
plugins.web-devicons.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
extraPlugins = with pkgs.vimPlugins; [plenary-nvim dressing-nvim];
|
||||||
|
};
|
||||||
|
}
|
||||||
38
home/editors/nvim/plugins/editing/default.nix
Normal file
38
home/editors/nvim/plugins/editing/default.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
plugins = {
|
||||||
|
nvim-autopairs = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
mapBs = false;
|
||||||
|
checkTs = true;
|
||||||
|
tsConfig = {
|
||||||
|
lua = ["string" "source"];
|
||||||
|
javascript = ["string" "template_string"];
|
||||||
|
};
|
||||||
|
disabledFiletypes = ["minifiles"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mini = {
|
||||||
|
modules = {
|
||||||
|
move = {};
|
||||||
|
splitjoin = {};
|
||||||
|
# surround = {};
|
||||||
|
trailspace = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
rainbow-delimiters.enable = true;
|
||||||
|
twilight.enable = true;
|
||||||
|
zen-mode.enable = true;
|
||||||
|
|
||||||
|
nvim-tree = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
renderer = {
|
||||||
|
group_empty = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
128
home/editors/nvim/plugins/formatting/conform.nix
Normal file
128
home/editors/nvim/plugins/formatting/conform.nix
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
shfmt
|
||||||
|
shellcheck
|
||||||
|
stylua
|
||||||
|
alejandra
|
||||||
|
|
||||||
|
prettier
|
||||||
|
prettierd
|
||||||
|
|
||||||
|
sqruff
|
||||||
|
|
||||||
|
yamlfmt
|
||||||
|
|
||||||
|
black
|
||||||
|
|
||||||
|
go
|
||||||
|
gotools
|
||||||
|
google-java-format
|
||||||
|
ktlint
|
||||||
|
rustfmt
|
||||||
|
clang-tools
|
||||||
|
cmake-format
|
||||||
|
|
||||||
|
kdePackages.qtdeclarative # qmlformat
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
notifyOnError = true;
|
||||||
|
|
||||||
|
formatters_by_ft = let
|
||||||
|
prettier = {
|
||||||
|
__unkeyed-1 = "prettierd";
|
||||||
|
__unkeyed-2 = "prettier";
|
||||||
|
timeout_ms = 2000;
|
||||||
|
stop_after_first = true;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
sh = ["shellcheck" "shfmt"];
|
||||||
|
lua = ["stylua"];
|
||||||
|
nix = ["alejandra"];
|
||||||
|
|
||||||
|
html = prettier;
|
||||||
|
css = prettier;
|
||||||
|
javascript = prettier;
|
||||||
|
typescript = prettier;
|
||||||
|
javascriptreact = prettier;
|
||||||
|
typescriptreact = prettier;
|
||||||
|
|
||||||
|
sql = ["sqruff"];
|
||||||
|
|
||||||
|
json = prettier;
|
||||||
|
yaml = ["yamlfmt"];
|
||||||
|
|
||||||
|
python = ["black"];
|
||||||
|
|
||||||
|
go = ["goimports" "gofmt"];
|
||||||
|
java = ["google-java-format"];
|
||||||
|
kotlin = ["ktlint"];
|
||||||
|
rust = ["rustfmt"];
|
||||||
|
c = ["clang_format"];
|
||||||
|
cmake = ["cmake_format"];
|
||||||
|
cpp = ["clang_format"];
|
||||||
|
|
||||||
|
qml = ["qmlformat"];
|
||||||
|
qmljs = ["qmlformat"];
|
||||||
|
|
||||||
|
"_" = ["trim_whitespace" "trim_newlines"];
|
||||||
|
};
|
||||||
|
|
||||||
|
formatters = {
|
||||||
|
prettier = {
|
||||||
|
command = "prettier";
|
||||||
|
prepend_args = ["-w"];
|
||||||
|
};
|
||||||
|
prettierd = {
|
||||||
|
command = "prettierd";
|
||||||
|
prepend_args = ["-w"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
format_on_save =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.g.slow_format_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_format(err)
|
||||||
|
if err and err:match("timeout$") then
|
||||||
|
slow_format_filetypes[vim.bo[bufnr].filetype] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return { timeout_ms = 200, lsp_fallback = true }, on_format
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
format_after_save =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function (bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not vim.g.slow_format_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
return { lsp_fallback = true }
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfigLua = ''
|
||||||
|
vim.g.slow_format_filetypes = {};
|
||||||
|
'';
|
||||||
|
}
|
||||||
32
home/editors/nvim/plugins/formatting/default.nix
Normal file
32
home/editors/nvim/plugins/formatting/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
imports = [./conform.nix];
|
||||||
|
|
||||||
|
plugins.mini = {
|
||||||
|
modules = {
|
||||||
|
align = {};
|
||||||
|
indentscope = {
|
||||||
|
symbol = "▏";
|
||||||
|
draw.delay = 0;
|
||||||
|
options.try_as_border = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfigLua =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
desc = "Disable indentscope for certain filetypes",
|
||||||
|
pattern = {
|
||||||
|
"alpha",
|
||||||
|
"help",
|
||||||
|
"NvimTree",
|
||||||
|
"toggleterm",
|
||||||
|
"Trouble",
|
||||||
|
},
|
||||||
|
callback = function()
|
||||||
|
vim.b.miniindentscope_disable = true
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
14
home/editors/nvim/plugins/git/default.nix
Normal file
14
home/editors/nvim/plugins/git/default.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
plugins = {
|
||||||
|
fugitive.enable = true;
|
||||||
|
diffview.enable = true;
|
||||||
|
gitmessenger = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
include_diff = "current";
|
||||||
|
no_default_mappings = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gitsigns = import ./gitsigns.nix;
|
||||||
|
};
|
||||||
|
}
|
||||||
23
home/editors/nvim/plugins/git/gitsigns.nix
Normal file
23
home/editors/nvim/plugins/git/gitsigns.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
numhl = true;
|
||||||
|
current_line_blame = true;
|
||||||
|
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 = "▎";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
8
home/editors/nvim/plugins/lang/default.nix
Normal file
8
home/editors/nvim/plugins/lang/default.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./docs
|
||||||
|
./flutter.nix
|
||||||
|
./tailwind.nix
|
||||||
|
./rust.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
6
home/editors/nvim/plugins/lang/docs/default.nix
Normal file
6
home/editors/nvim/plugins/lang/docs/default.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./latex.nix
|
||||||
|
./markdown.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
22
home/editors/nvim/plugins/lang/docs/latex.nix
Normal file
22
home/editors/nvim/plugins/lang/docs/latex.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
extraPackages = with pkgs; [sioyek tectonic];
|
||||||
|
|
||||||
|
plugins.vimtex.enable = true;
|
||||||
|
|
||||||
|
extraConfigLua = ''
|
||||||
|
vim.g["vimtex_view_method"] = "sioyek"
|
||||||
|
vim.g["vimtex_quickfix_mode"] = 0 -- supress error reporting on save and build
|
||||||
|
vim.g["vimtex_mappings_enable"] = 0 -- ignore mappings
|
||||||
|
vim.g["vimtex_indent_enabled"] = 0 -- auto indent
|
||||||
|
vim.g["tex_flavor"] = "latex" -- how to read tex files
|
||||||
|
vim.g["tex_indent_items"] = 0 -- turn off enumerate indent
|
||||||
|
vim.g["tex_indent_brace"] = 0 -- turn off brace indent
|
||||||
|
vim.g["vimtex_compiler_method"] = "tectonic" -- tex compiler
|
||||||
|
vim.g["vimtex_log_ignore"] = ({ -- Error supression:
|
||||||
|
"Underfull",
|
||||||
|
"Overfull",
|
||||||
|
"specifier changed to",
|
||||||
|
"Token not allowed in a PDF string",
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
23
home/editors/nvim/plugins/lang/docs/markdown.nix
Normal file
23
home/editors/nvim/plugins/lang/docs/markdown.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
plugins = {
|
||||||
|
markdown-preview = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
auto_close = 0;
|
||||||
|
browser = "firefox";
|
||||||
|
page_title = "Markdown Preview";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
render-markdown = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
pipe_table.border = ["╭" "┬" "╮" "├" "┼" "┤" "╰" "┴" "╯" "│" "─"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraPlugins = let
|
||||||
|
builds = import ../../builds.nix pkgs;
|
||||||
|
in [builds.table-nvim];
|
||||||
|
}
|
||||||
3
home/editors/nvim/plugins/lang/flutter.nix
Normal file
3
home/editors/nvim/plugins/lang/flutter.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
plugins.flutter-tools.enable = true;
|
||||||
|
}
|
||||||
23
home/editors/nvim/plugins/lang/rust.nix
Normal file
23
home/editors/nvim/plugins/lang/rust.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
plugins = {
|
||||||
|
crates.enable = true;
|
||||||
|
|
||||||
|
rustaceanvim = {
|
||||||
|
enable = false;
|
||||||
|
settings = {
|
||||||
|
server.cmd = ["rust-analyzer"];
|
||||||
|
dap.adapter.__raw = let
|
||||||
|
codelldb = pkgs.vscode-extensions.vadimcn.vscode-lldb;
|
||||||
|
extensionPath = "${codelldb}/share/vscode/extensions/vadimcn.vscode-lldb";
|
||||||
|
codelldbPath = "${extensionPath}/adapter/codelldb";
|
||||||
|
liblldbPath = "${extensionPath}/lldb/lib/liblldb.so";
|
||||||
|
in ''
|
||||||
|
require("rustaceanvim.config").get_codelldb_adapter(
|
||||||
|
"${codelldbPath}",
|
||||||
|
"${liblldbPath}"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
3
home/editors/nvim/plugins/lang/tailwind.nix
Normal file
3
home/editors/nvim/plugins/lang/tailwind.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
plugins.tailwind-tools.enable = true;
|
||||||
|
}
|
||||||
31
home/editors/nvim/plugins/lsp/default.nix
Normal file
31
home/editors/nvim/plugins/lsp/default.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
imports = [./servers.nix ./lint.nix];
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
lspkind = import ./lspkind.nix;
|
||||||
|
lspconfig.enable = true;
|
||||||
|
trouble.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = let
|
||||||
|
trouble-lsp = key: action: {
|
||||||
|
mode = "";
|
||||||
|
inherit key;
|
||||||
|
options.desc = action;
|
||||||
|
action = "<cmd>Trouble lsp_${action}<cr>";
|
||||||
|
};
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
mode = "";
|
||||||
|
key = "K";
|
||||||
|
options.desc = "Hover";
|
||||||
|
action = "<cmd>Lspsaga hover_doc<cr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
(trouble-lsp "gd" "definitions")
|
||||||
|
(trouble-lsp "gr" "references")
|
||||||
|
(trouble-lsp "gi" "implementations")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
93
home/editors/nvim/plugins/lsp/kotlin-lsp.nix
Normal file
93
home/editors/nvim/plugins/lsp/kotlin-lsp.nix
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
lib,
|
||||||
|
fetchzip,
|
||||||
|
makeWrapper,
|
||||||
|
unzip,
|
||||||
|
jdk17_headless,
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "kotlin-lsp";
|
||||||
|
version = "0.253.10629";
|
||||||
|
|
||||||
|
src = fetchzip {
|
||||||
|
url = "https://download-cdn.jetbrains.com/kotlin-lsp/${version}/kotlin-${version}.zip";
|
||||||
|
hash = "sha256-LCLGo3Q8/4TYI7z50UdXAbtPNgzFYtmUY/kzo2JCln0=";
|
||||||
|
stripRoot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
unzip
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/bin $out/libexec/kotlin-lsp
|
||||||
|
cp -r $src/* $out/libexec/kotlin-lsp/
|
||||||
|
|
||||||
|
makeWrapper ${jdk17_headless}/bin/java $out/bin/kotlin-lsp \
|
||||||
|
--add-flags "--add-opens java.base/java.io=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.lang=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.lang.ref=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.lang.reflect=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.net=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.nio=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.nio.charset=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.text=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.time=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.util=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.util.concurrent=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/jdk.internal.vm=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/sun.net.dns=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/sun.nio.fs=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/sun.security.ssl=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.base/sun.security.util=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/com.apple.eawt=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/com.apple.eawt.event=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/com.apple.laf=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/com.sun.java.swing=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/java.awt=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/java.awt.dnd.peer=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/java.awt.event=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/java.awt.font=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/java.awt.image=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/java.awt.peer=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/javax.swing=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/javax.swing.plaf.basic=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/javax.swing.text=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/javax.swing.text.html=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.awt=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.awt.X11=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.awt.datatransfer=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.awt.image=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.awt.windows=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.font=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.java2d=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.lwawt=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.lwawt.macosx=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.desktop/sun.swing=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens java.management/sun.management=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens jdk.attach/sun.tools.attach=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED" \
|
||||||
|
--add-flags "--add-opens jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED" \
|
||||||
|
--add-flags "--enable-native-access=ALL-UNNAMED" \
|
||||||
|
--add-flags "-Djdk.lang.Process.launchMechanism=FORK" \
|
||||||
|
--add-flags "-cp \"$out/libexec/kotlin-lsp/lib/*\" com.jetbrains.ls.kotlinLsp.KotlinLspServerKt"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Kotlin Language Server (Standalone Binary)";
|
||||||
|
homepage = "https://github.com/Kotlin/kotlin-lsp";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||||
|
};
|
||||||
|
}
|
||||||
56
home/editors/nvim/plugins/lsp/lint.nix
Normal file
56
home/editors/nvim/plugins/lsp/lint.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
statix
|
||||||
|
selene
|
||||||
|
|
||||||
|
eslint_d
|
||||||
|
stylelint
|
||||||
|
|
||||||
|
yamllint
|
||||||
|
sqlfluff
|
||||||
|
|
||||||
|
markdownlint-cli2
|
||||||
|
|
||||||
|
ruff
|
||||||
|
rubocop
|
||||||
|
checkstyle
|
||||||
|
golangci-lint
|
||||||
|
python312Packages.flake8
|
||||||
|
|
||||||
|
clippy
|
||||||
|
cppcheck
|
||||||
|
cmake-lint
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.lint = {
|
||||||
|
enable = true;
|
||||||
|
lintersByFt = {
|
||||||
|
bash = ["bash"];
|
||||||
|
nix = ["statix"];
|
||||||
|
lua = ["selene"];
|
||||||
|
|
||||||
|
css = ["stylelint"];
|
||||||
|
javascript = ["eslint_d"];
|
||||||
|
javascriptreact = ["eslint_d"];
|
||||||
|
typescript = ["eslint_d"];
|
||||||
|
typescriptreact = ["eslint_d"];
|
||||||
|
|
||||||
|
sql = ["sqlfluff"];
|
||||||
|
|
||||||
|
yaml = ["yamllint"];
|
||||||
|
|
||||||
|
markdown = ["markdownlint-cli2"];
|
||||||
|
|
||||||
|
python = ["ruff"];
|
||||||
|
ruby = ["rubocop"];
|
||||||
|
go = ["golangcilint"];
|
||||||
|
java = ["checkstyle"];
|
||||||
|
|
||||||
|
rust = ["clippy"];
|
||||||
|
cpp = ["cppcheck"];
|
||||||
|
cmake = ["cmakelint"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
53
home/editors/nvim/plugins/lsp/lspkind.nix
Normal file
53
home/editors/nvim/plugins/lsp/lspkind.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
preset = "colorful";
|
||||||
|
|
||||||
|
symbolMap = {
|
||||||
|
Copilot = "";
|
||||||
|
Text = "";
|
||||||
|
Method = "";
|
||||||
|
Function = "";
|
||||||
|
Constructor = "";
|
||||||
|
Field = "";
|
||||||
|
Variable = "";
|
||||||
|
Class = "";
|
||||||
|
Interface = "";
|
||||||
|
Module = "";
|
||||||
|
Property = "";
|
||||||
|
Unit = "";
|
||||||
|
Value = "";
|
||||||
|
Enum = "";
|
||||||
|
Keyword = "";
|
||||||
|
Snippet = "";
|
||||||
|
Color = "";
|
||||||
|
File = "";
|
||||||
|
Reference = "";
|
||||||
|
Folder = "";
|
||||||
|
EnumMember = "";
|
||||||
|
Constant = "";
|
||||||
|
Struct = "";
|
||||||
|
Event = "";
|
||||||
|
Operator = "";
|
||||||
|
TypeParameter = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraOptions = {
|
||||||
|
maxwidth = 50;
|
||||||
|
mode = "symbol";
|
||||||
|
ellipsisChar = "...";
|
||||||
|
menu = {
|
||||||
|
path = "[Path]";
|
||||||
|
cmdline = "[CMD]";
|
||||||
|
nvim_lsp = "[LSP]";
|
||||||
|
buffer = "[Buffer]";
|
||||||
|
luasnip = "[Snippet]";
|
||||||
|
};
|
||||||
|
|
||||||
|
show_labelDetails = true;
|
||||||
|
before.__raw = ''
|
||||||
|
require'tailwind-tools.cmp'.lspkind_format
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
123
home/editors/nvim/plugins/lsp/servers.nix
Normal file
123
home/editors/nvim/plugins/lsp/servers.nix
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPlugins = with pkgs.vimPlugins; [SchemaStore-nvim];
|
||||||
|
|
||||||
|
extraPackages = let
|
||||||
|
kotlin-lsp = pkgs.callPackage ./kotlin-lsp.nix {};
|
||||||
|
in [kotlin-lsp];
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
jdtls.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp.servers = {
|
||||||
|
"*".config = {
|
||||||
|
root_markers = [
|
||||||
|
".git"
|
||||||
|
"flake.nix"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
bashls.enable = true;
|
||||||
|
nixd.enable = true;
|
||||||
|
lua_ls = {
|
||||||
|
enable = true;
|
||||||
|
config.on_init.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(client)
|
||||||
|
if client.workspace_folders then
|
||||||
|
local path = client.workspace_folders[1].name
|
||||||
|
if
|
||||||
|
path ~= vim.fn.stdpath('config')
|
||||||
|
and (vim.uv.fs_stat(path .. '/.luarc.json') or vim.uv.fs_stat(path .. '/.luarc.jsonc'))
|
||||||
|
then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
||||||
|
runtime = {
|
||||||
|
version = 'LuaJIT',
|
||||||
|
path = {
|
||||||
|
'lua/?.lua',
|
||||||
|
'lua/?/init.lua',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
checkThirdParty = false,
|
||||||
|
library = {
|
||||||
|
vim.env.VIMRUNTIME
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
typos_lsp = {
|
||||||
|
enable = true;
|
||||||
|
config.init_options.diagnosticSeverity = "Hint";
|
||||||
|
};
|
||||||
|
|
||||||
|
html.enable = true;
|
||||||
|
ts_ls.enable = true;
|
||||||
|
cssls.enable = true;
|
||||||
|
eslint.enable = true;
|
||||||
|
tailwindcss.enable = true;
|
||||||
|
|
||||||
|
taplo.enable = true;
|
||||||
|
jsonls = {
|
||||||
|
enable = true;
|
||||||
|
config.json = {
|
||||||
|
schemas.__raw = "require('schemastore').json.schemas()";
|
||||||
|
validate.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
yamlls = {
|
||||||
|
enable = true;
|
||||||
|
config.yaml = {
|
||||||
|
schemaStore = {
|
||||||
|
enable = false;
|
||||||
|
url = "";
|
||||||
|
};
|
||||||
|
schemas.__raw = "require('schemastore').yaml.schemas()";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
texlab.enable = true;
|
||||||
|
marksman.enable = true;
|
||||||
|
|
||||||
|
sqruff = {
|
||||||
|
enable = true;
|
||||||
|
config.sqruff.indentation = {
|
||||||
|
indent_unit = "space";
|
||||||
|
tab_space_size = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
graphql.enable = true;
|
||||||
|
|
||||||
|
dockerls.enable = true;
|
||||||
|
docker_compose_language_service.enable = true;
|
||||||
|
|
||||||
|
gopls.enable = true;
|
||||||
|
dartls.enable = true;
|
||||||
|
pylyzer.enable = true;
|
||||||
|
solargraph.enable = true;
|
||||||
|
|
||||||
|
jdtls.enable = true;
|
||||||
|
kotlin_lsp.enable = true;
|
||||||
|
|
||||||
|
# also see lang/rust.nix
|
||||||
|
rust_analyzer = {
|
||||||
|
enable = true;
|
||||||
|
packageFallback = true;
|
||||||
|
};
|
||||||
|
clangd.enable = true;
|
||||||
|
cmake.enable = true;
|
||||||
|
|
||||||
|
glslls.enable = true;
|
||||||
|
|
||||||
|
qmlls.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
84
home/editors/nvim/plugins/snippet/default.nix
Normal file
84
home/editors/nvim/plugins/snippet/default.nix
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
plugins.luasnip = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
enable_autosnippets = true;
|
||||||
|
store_selection_keys = "<Tab>";
|
||||||
|
};
|
||||||
|
fromVscode = [
|
||||||
|
{
|
||||||
|
lazyLoad = true;
|
||||||
|
paths = pkgs.vimPlugins.friendly-snippets;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfigLua = let
|
||||||
|
snippets = {
|
||||||
|
nix = import ./nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
escape = text: pkgs.lib.generators.toLua {} text;
|
||||||
|
escapeLines = text: pkgs.lib.generators.toLua {} (pkgs.lib.strings.splitString "\n" text);
|
||||||
|
|
||||||
|
escapeLua = pkgs.lib.escape ["\\" "\"" "\n"];
|
||||||
|
|
||||||
|
generateSnippetBody = {
|
||||||
|
template,
|
||||||
|
placeholders ? {},
|
||||||
|
delimiters ? "<>",
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
if placeholders == {}
|
||||||
|
then "t(${escapeLines template})"
|
||||||
|
else let
|
||||||
|
templateStr = escape template;
|
||||||
|
|
||||||
|
generatePlaceholderEntry = index: defaultValue: let
|
||||||
|
node =
|
||||||
|
if defaultValue == null
|
||||||
|
then "i(${index})"
|
||||||
|
else "i(${index}, \"${escapeLua defaultValue}\")";
|
||||||
|
in "[${index}] = ${node}";
|
||||||
|
|
||||||
|
placeholderEntries = pkgs.lib.attrsets.mapAttrsToList generatePlaceholderEntry placeholders;
|
||||||
|
placeholderTable = "{ ${pkgs.lib.strings.concatStringsSep ", " placeholderEntries} }";
|
||||||
|
delimitersTable = "{ delimiters = \"${escapeLua delimiters}\" }";
|
||||||
|
in "fmt(${templateStr}, ${placeholderTable}, ${delimitersTable})";
|
||||||
|
|
||||||
|
generateLanguageSnippets = langSnippets: let
|
||||||
|
snippetEntries =
|
||||||
|
pkgs.lib.attrsets.mapAttrsToList (
|
||||||
|
name: definition: let
|
||||||
|
snippetName = escapeLua name;
|
||||||
|
snippetBody = generateSnippetBody definition;
|
||||||
|
in " s(\"${snippetName}\", ${snippetBody})"
|
||||||
|
)
|
||||||
|
langSnippets;
|
||||||
|
in
|
||||||
|
pkgs.lib.strings.concatStringsSep ",\n" snippetEntries;
|
||||||
|
|
||||||
|
buildLuasnipConfig = snippets: let
|
||||||
|
languageBlocks =
|
||||||
|
pkgs.lib.attrsets.mapAttrsToList (
|
||||||
|
langName: langSnippets: ''
|
||||||
|
ls.add_snippets("${langName}", {
|
||||||
|
${generateLanguageSnippets langSnippets}
|
||||||
|
})
|
||||||
|
''
|
||||||
|
)
|
||||||
|
snippets;
|
||||||
|
|
||||||
|
allLanguageBlocks = pkgs.lib.strings.concatStringsSep "\n\n" languageBlocks;
|
||||||
|
in ''
|
||||||
|
local ls = require("luasnip")
|
||||||
|
local s = ls.snippet
|
||||||
|
local i = ls.insert_node
|
||||||
|
local t = ls.text_node
|
||||||
|
local fmt = require("luasnip.extras.fmt").fmt
|
||||||
|
|
||||||
|
${allLanguageBlocks}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
buildLuasnipConfig snippets;
|
||||||
|
}
|
||||||
84
home/editors/nvim/plugins/snippet/nix/ags.flake.nix
Normal file
84
home/editors/nvim/plugins/snippet/nix/ags.flake.nix
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
ags = {
|
||||||
|
url = "github:aylur/ags";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
ags,
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
|
||||||
|
name = "<1>";
|
||||||
|
version = "<2>";
|
||||||
|
entry = "<3>";
|
||||||
|
|
||||||
|
watchScript = pkgs.writeShellScriptBin "watch" ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
export FILES=$(find . -not \( -path "./node_modules*" -o -path "./@girs*" \) -type f -name "*.ts*")
|
||||||
|
echo "$FILES" | ${pkgs.lib.getExe pkgs.entr} -crs 'echo "Change detected, restarting..." && ags run ./main.tsx'
|
||||||
|
'';
|
||||||
|
|
||||||
|
astalPackages = with ags.packages.${system}; [
|
||||||
|
io
|
||||||
|
astal4
|
||||||
|
<0>
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
gjs
|
||||||
|
watchScript
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
libadwaita
|
||||||
|
libsoup_3
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
packages.default = pkgs.stdenv.mkDerivation {
|
||||||
|
inherit name version;
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
wrapGAppsHook3
|
||||||
|
gobject-introspection
|
||||||
|
ags.packages.${system}.default
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs =
|
||||||
|
astalPackages
|
||||||
|
++ buildInputs
|
||||||
|
++ extraPackages;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin $out/share
|
||||||
|
cp -r * $out/share
|
||||||
|
ags bundle ${entry} $out/bin/${name} -d "SRC='$out/share'"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
apps.default = flake-utils.lib.mkApp {
|
||||||
|
drv = self.packages.${system}.default;
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
buildInputs =
|
||||||
|
[
|
||||||
|
(ags.packages.${system}.default.override {
|
||||||
|
extraPackages = astalPackages ++ extraPackages;
|
||||||
|
})
|
||||||
|
]
|
||||||
|
++ buildInputs;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
116
home/editors/nvim/plugins/snippet/nix/bevy.flake.nix
Normal file
116
home/editors/nvim/plugins/snippet/nix/bevy.flake.nix
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
fenix = {
|
||||||
|
url = "github:nix-community/fenix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
crane.url = "github:ipetkov/crane";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
fenix,
|
||||||
|
crane,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
|
||||||
|
pname = "<1>";
|
||||||
|
version = "<2>";
|
||||||
|
|
||||||
|
rust-toolchain = with fenix.packages.${system};
|
||||||
|
combine [
|
||||||
|
stable.rustc
|
||||||
|
stable.cargo
|
||||||
|
stable.rust-src
|
||||||
|
stable.rust-analyzer
|
||||||
|
];
|
||||||
|
|
||||||
|
bevyDeps = with pkgs; [
|
||||||
|
pkg-config
|
||||||
|
# Audio
|
||||||
|
alsa-lib
|
||||||
|
# Vulkan
|
||||||
|
vulkan-loader
|
||||||
|
vulkan-tools
|
||||||
|
libudev-zero
|
||||||
|
# X11
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXrandr
|
||||||
|
# Wayland
|
||||||
|
wayland
|
||||||
|
libxkbcommon
|
||||||
|
# linker
|
||||||
|
lld
|
||||||
|
];
|
||||||
|
runtimeLibs = pkgs.lib.makeLibraryPath bevyDeps;
|
||||||
|
|
||||||
|
craneLib = (crane.mkLib pkgs).overrideToolchain rust-toolchain;
|
||||||
|
|
||||||
|
cargoArtifacts = craneLib.buildDepsOnly {
|
||||||
|
pname = "${pname}-deps";
|
||||||
|
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||||
|
nativeBuildInputs = with pkgs; [pkg-config];
|
||||||
|
buildInputs = bevyDeps;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
packages.default = craneLib.buildPackage {
|
||||||
|
inherit pname version;
|
||||||
|
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||||
|
inherit cargoArtifacts;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
pkg-config
|
||||||
|
rust-toolchain
|
||||||
|
lld
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = bevyDeps;
|
||||||
|
|
||||||
|
CARGO_PROFILE_RELEASE_LTO = "thin";
|
||||||
|
CARGO_PROFILE_RELEASE_CODEGEN_UNITS = 1;
|
||||||
|
CARGO_PROFILE_RELEASE_STRIP = true;
|
||||||
|
RUSTFLAGS = "-C link-arg=-fuse-ld=lld";
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram "$out/bin/${pname}" \
|
||||||
|
--prefix LD_LIBRARY_PATH : ${runtimeLibs}
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "<3>";
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
pkg-config
|
||||||
|
lld
|
||||||
|
];
|
||||||
|
|
||||||
|
packages = with pkgs;
|
||||||
|
[
|
||||||
|
rust-toolchain
|
||||||
|
cargo-watch
|
||||||
|
cargo-edit
|
||||||
|
cargo-tarpaulin
|
||||||
|
]
|
||||||
|
++ bevyDeps;
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export RUST_SRC_PATH=${fenix.packages.${system}.stable.rust-src}/lib/rustlib/src/rust/library
|
||||||
|
export LD_LIBRARY_PATH=${runtimeLibs}:$LD_LIBRARY_PATH
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
formatter = pkgs.nixpkgs-fmt;
|
||||||
|
});
|
||||||
|
}
|
||||||
44
home/editors/nvim/plugins/snippet/nix/default.nix
Normal file
44
home/editors/nvim/plugins/snippet/nix/default.nix
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
flake = {
|
||||||
|
template = builtins.readFile ./flake.nix;
|
||||||
|
placeholders = {
|
||||||
|
"0" = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flaketauri.template = builtins.readFile ./tauri.flake.nix;
|
||||||
|
flakeflutter.template = builtins.readFile ./flutter.flake.nix;
|
||||||
|
flakeags = {
|
||||||
|
template = builtins.readFile ./ags.flake.nix;
|
||||||
|
placeholders = {
|
||||||
|
"1" = "project-name";
|
||||||
|
"2" = "0.1.0";
|
||||||
|
"3" = "main.tsx";
|
||||||
|
"0" = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flakerust = {
|
||||||
|
template = builtins.readFile ./rust.flake.nix;
|
||||||
|
placeholders = {
|
||||||
|
"1" = "rust-app";
|
||||||
|
"2" = "0.1.0";
|
||||||
|
"3" = "A Rust application";
|
||||||
|
"0" = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flakebevy = {
|
||||||
|
template = builtins.readFile ./bevy.flake.nix;
|
||||||
|
placeholders = {
|
||||||
|
"1" = "bevy-app";
|
||||||
|
"2" = "0.1.0";
|
||||||
|
"3" = "A Bevy application";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flakemaven = {
|
||||||
|
template = builtins.readFile ./maven.flake.nix;
|
||||||
|
placeholders."0" = "25";
|
||||||
|
};
|
||||||
|
flakegradle = {
|
||||||
|
template = builtins.readFile ./gradle.flake.nix;
|
||||||
|
placeholders."0" = "25";
|
||||||
|
};
|
||||||
|
}
|
||||||
17
home/editors/nvim/plugins/snippet/nix/flake.nix
Normal file
17
home/editors/nvim/plugins/snippet/nix/flake.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
in {
|
||||||
|
<0>
|
||||||
|
});
|
||||||
|
}
|
||||||
46
home/editors/nvim/plugins/snippet/nix/flutter.flake.nix
Normal file
46
home/editors/nvim/plugins/snippet/nix/flutter.flake.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
android_sdk.accept_license = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
buildToolsVersion = "35.0.0";
|
||||||
|
androidComposition = pkgs.androidenv.composeAndroidPackages {
|
||||||
|
buildToolsVersions = [buildToolsVersion "28.0.3"];
|
||||||
|
platformVersions = ["36" "28"];
|
||||||
|
abiVersions = ["armeabi-v7a" "arm64-v8a"];
|
||||||
|
includeNDK = true;
|
||||||
|
ndkVersions = ["27.0.12077973"];
|
||||||
|
cmakeVersions = ["3.22.1"];
|
||||||
|
};
|
||||||
|
androidSdk = androidComposition.androidsdk;
|
||||||
|
jdk = pkgs.jdk17;
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell rec {
|
||||||
|
buildImports = with pkgs; [
|
||||||
|
flutter
|
||||||
|
androidSdk
|
||||||
|
jdk
|
||||||
|
];
|
||||||
|
|
||||||
|
ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk";
|
||||||
|
ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
|
||||||
|
|
||||||
|
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${buildToolsVersion}/aapt2";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
22
home/editors/nvim/plugins/snippet/nix/gradle.flake.nix
Normal file
22
home/editors/nvim/plugins/snippet/nix/gradle.flake.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
jdk = pkgs.jdk <0>;
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
buildInputs = [pkgs.gradle jdk];
|
||||||
|
JAVA_HOME = jdk.home;
|
||||||
|
GRADLE_OPTS = "-Dorg.gradle.java.installations.auto-download=false -Dorg.gradle.java.installations.fromEnv=true";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
21
home/editors/nvim/plugins/snippet/nix/maven.flake.nix
Normal file
21
home/editors/nvim/plugins/snippet/nix/maven.flake.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
jdk = pkgs.jdk<0>;
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
nativeBuildInputs = [pkgs.maven jdk];
|
||||||
|
JAVA_HOME = jdk.home;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
39
home/editors/nvim/plugins/snippet/nix/npm.flake.nix
Normal file
39
home/editors/nvim/plugins/snippet/nix/npm.flake.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
|
||||||
|
name = "npm-app";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
nodejs
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
packages.default = pkgs.buildNpmPackage {
|
||||||
|
inherit name version buildInputs;
|
||||||
|
|
||||||
|
npmDeps = pkgs.importNpmLock {
|
||||||
|
npmRoot = ./.;
|
||||||
|
};
|
||||||
|
inherit (pkgs.importNpmLock) npmConfigHook;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# ...
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
packages = buildInputs;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
81
home/editors/nvim/plugins/snippet/nix/rust.flake.nix
Normal file
81
home/editors/nvim/plugins/snippet/nix/rust.flake.nix
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
fenix = {
|
||||||
|
url = "github:nix-community/fenix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
crane.url = "github:ipetkov/crane";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
fenix,
|
||||||
|
crane,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {inherit system;};
|
||||||
|
|
||||||
|
pname = "<1>";
|
||||||
|
version = "<2>";
|
||||||
|
|
||||||
|
rust-toolchain = with fenix.packages.${system};
|
||||||
|
combine [
|
||||||
|
stable.rustc
|
||||||
|
stable.cargo
|
||||||
|
stable.rust-src
|
||||||
|
stable.rust-analyzer
|
||||||
|
];
|
||||||
|
|
||||||
|
craneLib = (crane.mkLib pkgs).overrideToolchain rust-toolchain;
|
||||||
|
|
||||||
|
cargoArtifacts = craneLib.buildDepsOnly {
|
||||||
|
pname = "${pname}-deps";
|
||||||
|
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
packages.default = craneLib.buildPackage {
|
||||||
|
inherit pname version;
|
||||||
|
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||||
|
inherit cargoArtifacts;
|
||||||
|
|
||||||
|
nativeBuildInputs = [rust-toolchain pkgs.lld];
|
||||||
|
buildInputs = with pkgs;
|
||||||
|
[
|
||||||
|
<0>
|
||||||
|
]
|
||||||
|
++ lib.optionals stdenv.isDarwin [
|
||||||
|
darwin.apple_sdk.frameworks.Security
|
||||||
|
];
|
||||||
|
|
||||||
|
RUSTFLAGS = "-C link-arg=-fuse-ld=lld";
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "<3>";
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
lld
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
rust-toolchain
|
||||||
|
cargo-watch
|
||||||
|
cargo-edit
|
||||||
|
cargo-tarpaulin
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export RUST_SRC_PATH=${fenix.packages.${system}.stable.rust-src}/lib/rustlib/src/rust/library
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
formatter = pkgs.nixpkgs-fmt;
|
||||||
|
});
|
||||||
|
}
|
||||||
51
home/editors/nvim/plugins/snippet/nix/tauri.flake.nix
Normal file
51
home/editors/nvim/plugins/snippet/nix/tauri.flake.nix
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
rust-overlay,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
overlays = [(import rust-overlay)];
|
||||||
|
pkgs = import nixpkgs {inherit system overlays;};
|
||||||
|
|
||||||
|
rustToolchain = pkgs.rust-bin.stable.latest.default.override {
|
||||||
|
extensions = ["rust-src"];
|
||||||
|
};
|
||||||
|
|
||||||
|
linuxDeps = with pkgs; [
|
||||||
|
webkitgtk_4_1
|
||||||
|
gtk3
|
||||||
|
cairo
|
||||||
|
gdk-pixbuf
|
||||||
|
glib
|
||||||
|
dbus
|
||||||
|
openssl
|
||||||
|
pkg-config
|
||||||
|
librsvg
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs;
|
||||||
|
[
|
||||||
|
rustToolchain
|
||||||
|
rust-analyzer
|
||||||
|
|
||||||
|
nodejs
|
||||||
|
cargo-tauri
|
||||||
|
]
|
||||||
|
++ linuxDeps;
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export WEBKIT_DISABLE_COMPOSITING_MODE=1
|
||||||
|
export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath linuxDeps}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
14
home/editors/nvim/plugins/treesitter/default.nix
Normal file
14
home/editors/nvim/plugins/treesitter/default.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
plugins = {
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
folding = false;
|
||||||
|
nixGrammars = true;
|
||||||
|
nixvimInjections = true;
|
||||||
|
settings = import ./settings.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
ts-autotag.enable = true;
|
||||||
|
treesitter-textobjects = import ./textobjects.nix;
|
||||||
|
};
|
||||||
|
}
|
||||||
83
home/editors/nvim/plugins/treesitter/settings.nix
Normal file
83
home/editors/nvim/plugins/treesitter/settings.nix
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
indent.enable = true;
|
||||||
|
highlight.enable = true;
|
||||||
|
|
||||||
|
ensureInstalled = [
|
||||||
|
"bash"
|
||||||
|
"lua"
|
||||||
|
"nix"
|
||||||
|
|
||||||
|
"c"
|
||||||
|
"cpp"
|
||||||
|
"make"
|
||||||
|
"cmake"
|
||||||
|
|
||||||
|
"rust"
|
||||||
|
|
||||||
|
"dockerfile"
|
||||||
|
|
||||||
|
"go"
|
||||||
|
"gomod"
|
||||||
|
"gosum"
|
||||||
|
|
||||||
|
"css"
|
||||||
|
"html"
|
||||||
|
"templ"
|
||||||
|
|
||||||
|
"tsx"
|
||||||
|
"astro"
|
||||||
|
"javascript"
|
||||||
|
"typescript"
|
||||||
|
|
||||||
|
"xml"
|
||||||
|
"json"
|
||||||
|
"yaml"
|
||||||
|
"toml"
|
||||||
|
|
||||||
|
"sql"
|
||||||
|
"http"
|
||||||
|
"graphql"
|
||||||
|
|
||||||
|
"python"
|
||||||
|
"requirements"
|
||||||
|
|
||||||
|
"regex"
|
||||||
|
"comment"
|
||||||
|
|
||||||
|
"latex"
|
||||||
|
"markdown"
|
||||||
|
"markdown_inline"
|
||||||
|
|
||||||
|
"diff"
|
||||||
|
"gitignore"
|
||||||
|
"git_config"
|
||||||
|
"gitattributes"
|
||||||
|
|
||||||
|
"dart"
|
||||||
|
"java"
|
||||||
|
|
||||||
|
"hyprlang"
|
||||||
|
];
|
||||||
|
|
||||||
|
refactor = {
|
||||||
|
highlight_definitions.enable = true;
|
||||||
|
highlight_current_scope = true;
|
||||||
|
};
|
||||||
|
endwise.enable = true;
|
||||||
|
matchup = {
|
||||||
|
enable = true;
|
||||||
|
include_match_words = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true;
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<C-Space>";
|
||||||
|
node_incremental = "v";
|
||||||
|
scope_incremental = false;
|
||||||
|
node_decremental = "V";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
playground.enable = true;
|
||||||
|
}
|
||||||
47
home/editors/nvim/plugins/treesitter/textobjects.nix
Normal file
47
home/editors/nvim/plugins/treesitter/textobjects.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
select = {
|
||||||
|
enable = true;
|
||||||
|
lookahead = true;
|
||||||
|
keymaps = {
|
||||||
|
"af" = "@function.outer";
|
||||||
|
"if" = "@function.inner";
|
||||||
|
"ac" = "@class.outer";
|
||||||
|
"ic" = "@class.inner";
|
||||||
|
"a," = "@parameter.outer";
|
||||||
|
"i," = "@parameter.inner";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
move = {
|
||||||
|
enable = true;
|
||||||
|
setJumps = true;
|
||||||
|
gotoNextStart = {
|
||||||
|
"]f" = "@function.outer";
|
||||||
|
"]c" = "@class.outer";
|
||||||
|
"]," = "@parameter.inner";
|
||||||
|
};
|
||||||
|
gotoNextEnd = {
|
||||||
|
"]F" = "@function.outer";
|
||||||
|
"]C" = "@function.outer";
|
||||||
|
};
|
||||||
|
gotoPreviousStart = {
|
||||||
|
"[f" = "@function.outer";
|
||||||
|
"[c" = "@class.outer";
|
||||||
|
"[," = "@parameter.inner";
|
||||||
|
};
|
||||||
|
gotoPreviousEnd = {
|
||||||
|
"[F" = "@function.outer";
|
||||||
|
"[C" = "@class.outer";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swap = {
|
||||||
|
enable = true;
|
||||||
|
swapNext = {">," = "@parameter.inner";};
|
||||||
|
swapPrevious = {"<," = "@parameter.inner";};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
61
home/editors/nvim/plugins/utils/alpha/default.nix
Normal file
61
home/editors/nvim/plugins/utils/alpha/default.nix
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
let
|
||||||
|
themes = import ./themes.nix;
|
||||||
|
theme = themes.dg_baby;
|
||||||
|
in {
|
||||||
|
plugins.alpha = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
layout = [
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "text";
|
||||||
|
val = theme.image;
|
||||||
|
opts = {
|
||||||
|
position = "center";
|
||||||
|
hl = "Type";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "group";
|
||||||
|
val = let
|
||||||
|
button = shortcut: val: {
|
||||||
|
type = "button";
|
||||||
|
inherit val;
|
||||||
|
opts = {
|
||||||
|
position = "center";
|
||||||
|
inherit shortcut;
|
||||||
|
cursor = 3;
|
||||||
|
width = 50;
|
||||||
|
align_shortcut = "right";
|
||||||
|
hl_shortcut = "Keyword";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in [
|
||||||
|
(button " ff" " Find file")
|
||||||
|
(button " fo" " Recently opened files")
|
||||||
|
(button " fl" " Live-Grep")
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "text";
|
||||||
|
val = theme.quote;
|
||||||
|
opts = {
|
||||||
|
position = "center";
|
||||||
|
hl = "Keyword";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
53
home/editors/nvim/plugins/utils/alpha/themes.nix
Normal file
53
home/editors/nvim/plugins/utils/alpha/themes.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
rei = {
|
||||||
|
quote = "「私は人形じゃない。」";
|
||||||
|
image = [
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⣠⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣡⣾⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣟⠻⣿⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⡿⢫⣷⣿⣿⣿⣿⣿⣿⣿⣾⣯⣿⡿⢧⡚⢷⣌⣽⣿⣿⣿⣿⣿⣶⡌⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⠇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣮⣇⣘⠿⢹⣿⣿⣿⣿⣿⣻⢿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⡟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣻⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⡇⠀⣬⠏⣿⡇⢻⣿⣿⣿⣿⣿⣿⣿⣷⣼⣿⣿⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⢻⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⠀⠈⠁⠀⣿⡇⠘⡟⣿⣿⣿⣿⣿⣿⣿⣿⡏⠿⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣇⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⡏⠀⠀⠐⠀⢻⣇⠀⠀⠹⣿⣿⣿⣿⣿⣿⣩⡶⠼⠟⠻⠞⣿⡈⠻⣟⢻⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⢿⠀⡆⠀⠘⢿⢻⡿⣿⣧⣷⢣⣶⡃⢀⣾⡆⡋⣧⠙⢿⣿⣿⣟⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⡥⠂⡐⠀⠁⠑⣾⣿⣿⣾⣿⣿⣿⡿⣷⣷⣿⣧⣾⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⡿⣿⣍⡴⠆⠀⠀⠀⠀⠀⠀⠀⠀⣼⣄⣀⣷⡄⣙⢿⣿⣿⣿⣿⣯⣶⣿⣿⢟⣾⣿⣿⢡⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⡏⣾⣿⣿⣿⣷⣦⠀⠀⠀⢀⡀⠀⠀⠠⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⣡⣾⣿⣿⢏⣾⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⣿⣿⣿⣿⣿⡴⠀⠀⠀⠀⠀⠠⠀⠰⣿⣿⣿⣷⣿⠿⠿⣿⣿⣭⡶⣫⠔⢻⢿⢇⣾⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⣿⣿⣿⡿⢫⣽⠟⣋⠀⠀⠀⠀⣶⣦⠀⠀⠀⠈⠻⣿⣿⣿⣾⣿⣿⣿⣿⡿⣣⣿⣿⢸⣾⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⡿⠛⣹⣶⣶⣶⣾⣿⣷⣦⣤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠉⠛⠻⢿⣿⡿⠫⠾⠿⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣀⡆⣠⢀⣴⣏⡀⠀⠀⠀⠉⠀⠀⢀⣠⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⠿⠛⠛⠛⠛⠛⠛⠻⢿⣿⣿⣿⣿⣯⣟⠷⢷⣿⡿⠋⠀⠀⠀⠀⣵⡀⢠⡿⠋⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⢿⣿⣿⠂⠀⠀⠀⠀⠀⢀⣽⣿⣿⣿⣿⣿⣿⣿⣍⠛⠿⣿⣿⣿⣿⣿⣿"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
dg_baby = {
|
||||||
|
quote = "Official Drain © Licensed Product";
|
||||||
|
image = [
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⣄⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣄⡀⠀⠀⠀⠀⠀⢀⡞⠀⠈⠛⢶⡶⢎⡹⠶⠶⠒⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠀⠀⠀⢀⡼⠁⠀⠳⢄⣀⡤⠴⠚⠉⠀⠀⠀⠀⠀⠙⢮⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⣄⠀⠀⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣠⠞⢦⣀⣾⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⠋⣸⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⠀⠀⢹⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣇⠀⠀⢸⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠛⢣⡼⠛⠋⡟⠁⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⡼⠁⠀⠀⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠹⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⡼⠁⠀⢨⡇⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⡀⣀⣰⣇⣀⡖⠒⠚⠿⣦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣄⣠⣶⠯⢄⠉⠉⠱⡎⠉⠁⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⣿⠀⠀⡴⠚⠛⠻⣏⡁⠳⣄⡀⠀⣀⠽⢚⣽⣏⣹⡋⢩⡙⢻⠛⣿⠛⣿⠀⠀⢀⡴⠁⠀⠀⠃⠀⠀⠀⠀"
|
||||||
|
"⢀⣀⣀⣤⠿⣤⣰⣇⠀⠀⠀⠃⠙⡦⢞⣒⣚⣓⠶⣯⡽⠿⠛⠿⢿⣷⡞⠒⠺⡾⣩⣗⣶⠿⠒⠒⠒⠦⡄⠀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⢿⠀⠘⡇⠀⠀⠀⠀⡞⣰⢯⡄⠈⠙⠻⣦⣖⡭⠭⣍⠳⡌⢿⡆⠀⣷⠟⠉⠀⠀⠀⠀⠀⠀⢹⡀⠀⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠘⠀⠀⢳⠀⠀⠀⠀⡇⢧⢸⠀⢸⡆⠀⡾⠁⡰⡄⠈⡇⡽⢸⣕⡞⠁⠉⠀⠀⠀⠀⠀⠀⠀⢸⠳⡇⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠈⢧⠀⠀⠀⠹⣌⢾⡀⠘⠃⣀⣅⠀⠓⠃⠀⠿⠁⠳⣿⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣏⡸⢧⣀⣀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣄⡀⠀⠈⠳⣍⠻⣍⢡⣞⠁⠘⠃⣀⣾⠶⠾⣟⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠱⡎⠉⠉"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣙⣲⣤⣴⣚⣑⣮⡓⣚⣥⣶⣛⠉⠁⣀⣴⣻⡀⠀⠀⠀⠀⢀⣠⠞⠁⠀⠀⠀⡇⠀⠀"
|
||||||
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠛⠛⠛⠛⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠲⠶⠒⠚⠛⠛⠉⠀⠀⠀⠀⠀⠀⠀"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
45
home/editors/nvim/plugins/utils/debugging.nix
Normal file
45
home/editors/nvim/plugins/utils/debugging.nix
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
plugins.neotest.enable = true;
|
||||||
|
extraConfigLua =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
-- require("neotest").setup({
|
||||||
|
-- adapters = {
|
||||||
|
-- require("rustaceanvim.neotest")
|
||||||
|
-- },
|
||||||
|
-- })
|
||||||
|
'';
|
||||||
|
|
||||||
|
plugins.dap = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
signs = {
|
||||||
|
dapBreakpoint = {
|
||||||
|
text = "";
|
||||||
|
texthl = "DiagnosticError";
|
||||||
|
numhl = "DapBreakpoint";
|
||||||
|
};
|
||||||
|
dapBreakpointCondition = {
|
||||||
|
text = "";
|
||||||
|
texthl = "DiagnosticWarn";
|
||||||
|
numhl = "DiagnosticWarn";
|
||||||
|
};
|
||||||
|
dapLogPoint = {
|
||||||
|
text = "";
|
||||||
|
texthl = "Comment";
|
||||||
|
numhl = "Comment";
|
||||||
|
};
|
||||||
|
dapStopped = {
|
||||||
|
text = "";
|
||||||
|
texthl = "IncSearch";
|
||||||
|
linehl = "CursorLine";
|
||||||
|
numhl = "IncSearch";
|
||||||
|
};
|
||||||
|
dapBreakpointRejected = {
|
||||||
|
text = "";
|
||||||
|
texthl = "DiagnosticError";
|
||||||
|
numhl = "DiagnosticError";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
33
home/editors/nvim/plugins/utils/default.nix
Normal file
33
home/editors/nvim/plugins/utils/default.nix
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./alpha
|
||||||
|
./lualine
|
||||||
|
./toggleterm.nix
|
||||||
|
./which-key
|
||||||
|
./fzf-lua.nix
|
||||||
|
./grug-far.nix
|
||||||
|
./presence.nix
|
||||||
|
./silicon.nix
|
||||||
|
./todo-comments.nix
|
||||||
|
./debugging.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
nix-develop = {
|
||||||
|
enable = true;
|
||||||
|
ignoredVariables = {
|
||||||
|
SHELL = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wakatime.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfigLua =
|
||||||
|
#lua
|
||||||
|
''
|
||||||
|
vim.api.nvim_create_autocmd("VimEnter", {
|
||||||
|
desc = "Automatically enter Nix devshell",
|
||||||
|
command = "NixDevelop",
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
12
home/editors/nvim/plugins/utils/fzf-lua.nix
Normal file
12
home/editors/nvim/plugins/utils/fzf-lua.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
plugins.fzf-lua = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
winopts = {};
|
||||||
|
files = {
|
||||||
|
git_icons = true;
|
||||||
|
file_icons = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
3
home/editors/nvim/plugins/utils/grug-far.nix
Normal file
3
home/editors/nvim/plugins/utils/grug-far.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
plugins.grug-far.enable = true;
|
||||||
|
}
|
||||||
14
home/editors/nvim/plugins/utils/lualine/colors.nix
Normal file
14
home/editors/nvim/plugins/utils/lualine/colors.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
bg = "#1e1e2e";
|
||||||
|
fg = "#cdd6f4";
|
||||||
|
yellow = "#f9e2af";
|
||||||
|
cyan = "#89dceb";
|
||||||
|
green = "#a6e3a1";
|
||||||
|
orange = "#fab387";
|
||||||
|
violet = "#b4befe";
|
||||||
|
blue = "#89b4fa";
|
||||||
|
red = "#f38ba8";
|
||||||
|
magenta = "#cba6f7";
|
||||||
|
grey = "#585b70";
|
||||||
|
pink = "#f5c2e7";
|
||||||
|
}
|
||||||
78
home/editors/nvim/plugins/utils/lualine/default.nix
Normal file
78
home/editors/nvim/plugins/utils/lualine/default.nix
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
extraConfigLua = builtins.readFile ./hide_statusbar.lua;
|
||||||
|
|
||||||
|
plugins.lualine = let
|
||||||
|
colors = import ./colors.nix;
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
options = {
|
||||||
|
section_separators = "";
|
||||||
|
component_separators = "";
|
||||||
|
theme = {
|
||||||
|
normal.c = {
|
||||||
|
bg = "";
|
||||||
|
inherit (colors) fg;
|
||||||
|
};
|
||||||
|
inactive.c = {
|
||||||
|
bg = "";
|
||||||
|
inherit (colors) fg;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
refresh.events = [
|
||||||
|
"WinEnter"
|
||||||
|
"BufEnter"
|
||||||
|
"BufWritePost"
|
||||||
|
"SessionLoadPost"
|
||||||
|
"FileChangedShellPost"
|
||||||
|
"VimResized"
|
||||||
|
"Filetype"
|
||||||
|
"CursorMoved"
|
||||||
|
"CursorMovedI"
|
||||||
|
"ModeChanged"
|
||||||
|
"RecordingEnter"
|
||||||
|
"RecordingLeave"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# to be visible, change laststatus option value at options.nix
|
||||||
|
sections = {
|
||||||
|
# these are to remove the defaults
|
||||||
|
lualine_a = [{}];
|
||||||
|
lualine_b = [{}];
|
||||||
|
lualine_c = [{}];
|
||||||
|
lualine_x = [{}];
|
||||||
|
lualine_y = [{}];
|
||||||
|
lualine_z = [{}];
|
||||||
|
};
|
||||||
|
|
||||||
|
inactive_sections = {
|
||||||
|
# these are to remove the defaults
|
||||||
|
lualine_a = [{}];
|
||||||
|
lualine_b = [{}];
|
||||||
|
lualine_c = [{}];
|
||||||
|
lualine_x = [{}];
|
||||||
|
lualine_y = [{}];
|
||||||
|
lualine_z = [{}];
|
||||||
|
};
|
||||||
|
|
||||||
|
tabline = import ./tabline.nix;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = let
|
||||||
|
buffers = bind: let
|
||||||
|
num =
|
||||||
|
if (bind == 0)
|
||||||
|
then 10
|
||||||
|
else bind;
|
||||||
|
in {
|
||||||
|
key = "<M-${toString bind}>";
|
||||||
|
mode = ["n" "i" "v" "s" "t" "o"];
|
||||||
|
options.desc = "Buffer ${toString num}";
|
||||||
|
action = "<cmd>LualineBuffersJump ${toString num}<cr>";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
map buffers [1 2 3 4 5 6 7 8 9 10];
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
vim.api.nvim_create_autocmd('WinEnter', {
|
||||||
|
once = true,
|
||||||
|
command = [[ set laststatus=0 ]],
|
||||||
|
})
|
||||||
48
home/editors/nvim/plugins/utils/lualine/section-left.nix
Normal file
48
home/editors/nvim/plugins/utils/lualine/section-left.nix
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
colors: get-mode-color: [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "mode";
|
||||||
|
color.__raw = get-mode-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
__unkeyed-1.__raw = ''
|
||||||
|
function()
|
||||||
|
local reg_rec = vim.fn.reg_recording()
|
||||||
|
if reg_rec ~= "" then
|
||||||
|
return " rec (" .. reg_rec .. ")"
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
color = {
|
||||||
|
fg = colors.red;
|
||||||
|
gui = "bold";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
icon = "";
|
||||||
|
__unkeyed-1 = "branch";
|
||||||
|
color = {
|
||||||
|
fg = colors.violet;
|
||||||
|
gui = "bold";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = 2;
|
||||||
|
__unkeyed-1 = "buffers";
|
||||||
|
symbols = {
|
||||||
|
modified = "";
|
||||||
|
alternate_file = "";
|
||||||
|
};
|
||||||
|
buffers_color = {
|
||||||
|
inactive.fg = colors.grey;
|
||||||
|
active = {
|
||||||
|
fg = colors.magenta;
|
||||||
|
gui = "bold";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
64
home/editors/nvim/plugins/utils/lualine/section-right.nix
Normal file
64
home/editors/nvim/plugins/utils/lualine/section-right.nix
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
colors: get-mode-color: [
|
||||||
|
{
|
||||||
|
path = 1;
|
||||||
|
shorting_target = 150;
|
||||||
|
color.fg = colors.grey;
|
||||||
|
__unkeyed-1 = "filename";
|
||||||
|
disabled_buftypes = ["terminal"];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
sources = ["nvim_lsp"];
|
||||||
|
__unkeyed-1 = "diagnostics";
|
||||||
|
diagnostics_color = {
|
||||||
|
color_error.fg = colors.red;
|
||||||
|
color_warn.fg = colors.yellow;
|
||||||
|
color_info.fg = colors.blue;
|
||||||
|
color_hint.fg = colors.cyan;
|
||||||
|
};
|
||||||
|
symbols = {
|
||||||
|
error = " ";
|
||||||
|
warn = " ";
|
||||||
|
info = " ";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "lsp_status";
|
||||||
|
icon = "lsp:";
|
||||||
|
disabled_buftypes = ["terminal"];
|
||||||
|
color = {
|
||||||
|
fg = colors.magenta;
|
||||||
|
gui = "bold";
|
||||||
|
};
|
||||||
|
ignore_lsp = [
|
||||||
|
"typos_lsp"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "diff";
|
||||||
|
symbols = {
|
||||||
|
added = " ";
|
||||||
|
modified = " ";
|
||||||
|
removed = " ";
|
||||||
|
};
|
||||||
|
diff_color = {
|
||||||
|
added.fg = colors.green;
|
||||||
|
removed.fg = colors.red;
|
||||||
|
modified.fg = colors.orange;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# icon = ""; # NOTE: IDK why it shows twice
|
||||||
|
icon = "";
|
||||||
|
padding.right = 1;
|
||||||
|
color.fg = colors.violet;
|
||||||
|
__unkeyed-1 = "gh-actions";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
color.fg = colors.pink;
|
||||||
|
__unkeyed-1 = "progress";
|
||||||
|
}
|
||||||
|
]
|
||||||
39
home/editors/nvim/plugins/utils/lualine/tabline.nix
Normal file
39
home/editors/nvim/plugins/utils/lualine/tabline.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
let
|
||||||
|
colors = import ./colors.nix;
|
||||||
|
get-mode-color =
|
||||||
|
# lua
|
||||||
|
"
|
||||||
|
function()
|
||||||
|
local mode_color = {
|
||||||
|
n = '${colors.blue}',
|
||||||
|
i = '${colors.green}',
|
||||||
|
|
||||||
|
v = '${colors.violet}',
|
||||||
|
[''] = '${colors.violet}',
|
||||||
|
V = '${colors.violet}',
|
||||||
|
|
||||||
|
c = '${colors.magenta}',
|
||||||
|
no = '${colors.red}',
|
||||||
|
|
||||||
|
s = '${colors.orange}',
|
||||||
|
S = '${colors.orange}',
|
||||||
|
[''] = '${colors.orange}',
|
||||||
|
|
||||||
|
ic = '${colors.yellow}',
|
||||||
|
R = '${colors.magenta}',
|
||||||
|
Rv = '${colors.magenta}',
|
||||||
|
cv = '${colors.red}',
|
||||||
|
ce = '${colors.red}',
|
||||||
|
r = '${colors.cyan}',
|
||||||
|
rm = '${colors.cyan}',
|
||||||
|
['r?'] = '${colors.cyan}',
|
||||||
|
['!'] = '${colors.red}',
|
||||||
|
t = '${colors.pink}',
|
||||||
|
}
|
||||||
|
return { fg = mode_color[vim.fn.mode()] }
|
||||||
|
end
|
||||||
|
";
|
||||||
|
in {
|
||||||
|
lualine_c = import ./section-left.nix colors get-mode-color;
|
||||||
|
lualine_x = import ./section-right.nix colors get-mode-color;
|
||||||
|
}
|
||||||
23
home/editors/nvim/plugins/utils/presence.nix
Normal file
23
home/editors/nvim/plugins/utils/presence.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
plugins.presence = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
neovim_image_text = "Neovim";
|
||||||
|
main_image = "file";
|
||||||
|
buttons.__raw = ''
|
||||||
|
function (buffer, repo_url)
|
||||||
|
local buttons = {}
|
||||||
|
|
||||||
|
if repo_url ~= nil then
|
||||||
|
table.insert(buttons, {
|
||||||
|
label = "Git Repository",
|
||||||
|
url = repo_url
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return buttons
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
24
home/editors/nvim/plugins/utils/silicon.nix
Normal file
24
home/editors/nvim/plugins/utils/silicon.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{pkgs, ...}: let
|
||||||
|
theme = "Catppuccin";
|
||||||
|
font = "JetBrainsMono Nerd Font=32;Noto Color Emoji=34";
|
||||||
|
in {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
silicon
|
||||||
|
jetbrains-mono
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPlugins = let
|
||||||
|
builds = import ../builds.nix pkgs;
|
||||||
|
in
|
||||||
|
with builds; [silicon];
|
||||||
|
|
||||||
|
extraConfigLua = ''
|
||||||
|
require 'nvim-silicon'.setup {
|
||||||
|
font = '${font}',
|
||||||
|
theme = '${theme}',
|
||||||
|
no_line_number = true,
|
||||||
|
no_window_controls = true,
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
22
home/editors/nvim/plugins/utils/todo-comments.nix
Normal file
22
home/editors/nvim/plugins/utils/todo-comments.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
plugins.todo-comments = {
|
||||||
|
enable = true;
|
||||||
|
settings.keywords = let
|
||||||
|
word = icon: color: {inherit icon color;};
|
||||||
|
hint = icon: word icon "hint";
|
||||||
|
info = icon: word icon "info";
|
||||||
|
test = icon: word icon "test";
|
||||||
|
in {
|
||||||
|
NOTE = hint "";
|
||||||
|
TODO = hint "";
|
||||||
|
REFACTOR = hint "";
|
||||||
|
|
||||||
|
INFO = info "";
|
||||||
|
DOCS = info "";
|
||||||
|
LINK = info "";
|
||||||
|
GITHUB = info "";
|
||||||
|
|
||||||
|
TEST = test "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
14
home/editors/nvim/plugins/utils/toggleterm.nix
Normal file
14
home/editors/nvim/plugins/utils/toggleterm.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
plugins.toggleterm = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
float_opts = {};
|
||||||
|
persistent_size = true;
|
||||||
|
direction = "horizontal";
|
||||||
|
open_mapping = "[[<M-CR>]]";
|
||||||
|
shade_filetypes = ["lazygit"];
|
||||||
|
|
||||||
|
highlights.FloatBorder.guifg = "#7b8496";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
227
home/editors/nvim/plugins/utils/which-key/config.lua
Normal file
227
home/editors/nvim/plugins/utils/which-key/config.lua
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
local wk = require "which-key"
|
||||||
|
local gitsigns = require "gitsigns"
|
||||||
|
local Terminal = require("toggleterm.terminal").Terminal
|
||||||
|
|
||||||
|
local set_key = {
|
||||||
|
cmd = function(key, action, desc, hidden)
|
||||||
|
return {
|
||||||
|
"<leader>" .. key,
|
||||||
|
type(action) == "string" and "<cmd>" .. action .. "<cr>" or action,
|
||||||
|
desc = desc:gsub("^%l", string.upper),
|
||||||
|
hidden = hidden or false,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
local function smart_buffer_delete()
|
||||||
|
local current_buf = vim.api.nvim_get_current_buf()
|
||||||
|
pcall(vim.cmd.bnext)
|
||||||
|
if current_buf == vim.api.nvim_get_current_buf() then
|
||||||
|
vim.cmd.enew()
|
||||||
|
end
|
||||||
|
pcall(vim.cmd, "bdelete " .. current_buf)
|
||||||
|
end
|
||||||
|
|
||||||
|
wk.add {
|
||||||
|
set_key.cmd("e", require("nvim-tree.api").tree.toggle, "Files"),
|
||||||
|
set_key.cmd("w", "w!", "Write buffer"),
|
||||||
|
set_key.cmd("d", smart_buffer_delete, "Delete buffer"),
|
||||||
|
set_key.cmd("Q", "qa", "Quit all", true),
|
||||||
|
set_key.cmd("q", "quit", "Quit window", true),
|
||||||
|
}
|
||||||
|
|
||||||
|
set_key.git_signs = function(key, action, desc)
|
||||||
|
return set_key.cmd("g" .. key, function()
|
||||||
|
gitsigns[action]()
|
||||||
|
end, desc)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function lazygit_toggle()
|
||||||
|
local lazygit = Terminal:new {
|
||||||
|
cmd = "lazygit",
|
||||||
|
hidden = true,
|
||||||
|
direction = "float",
|
||||||
|
}
|
||||||
|
lazygit:toggle()
|
||||||
|
end
|
||||||
|
|
||||||
|
wk.add {
|
||||||
|
{ "<leader>g", group = "Git" },
|
||||||
|
|
||||||
|
-- Gitsigns --
|
||||||
|
set_key.git_signs("s", "stage_buffer", "Stage buffer"),
|
||||||
|
set_key.git_signs("R", "reset_buffer", "Reset buffer"),
|
||||||
|
set_key.git_signs("t", "toggle_signs", "Toggle signs"),
|
||||||
|
set_key.git_signs("n", "toggle_numhl", "Toggle numhl"),
|
||||||
|
set_key.git_signs("L", "toggle_linehl", "Toggle linehl"),
|
||||||
|
set_key.git_signs("d", "toggle_deleted", "Toggle deleted"),
|
||||||
|
|
||||||
|
set_key.cmd("gg", lazygit_toggle, "Lazygit"),
|
||||||
|
set_key.cmd("gH", "GhActions", "Github Actions"),
|
||||||
|
set_key.cmd("gm", "GitMessenger", "Show Message"),
|
||||||
|
|
||||||
|
{ "<leader>gh", group = "Hunk" },
|
||||||
|
|
||||||
|
set_key.git_signs("hs", "stage_hunk", "Stage"),
|
||||||
|
set_key.git_signs("hr", "reset_hunk", "Reset"),
|
||||||
|
set_key.git_signs("hv", "preview_hunk", "Preview"),
|
||||||
|
set_key.git_signs("hu", "undo_stage_hunk", "Undo Stage"),
|
||||||
|
set_key.cmd("ghn", function()
|
||||||
|
gitsigns.nav_hunk "next"
|
||||||
|
end, "Next"),
|
||||||
|
set_key.cmd("ghp", function()
|
||||||
|
gitsigns.nav_hunk "prev"
|
||||||
|
end, "Previous"),
|
||||||
|
set_key.git_signs("hd", "diffthis", "Diff this"),
|
||||||
|
set_key.cmd("ghD", function()
|
||||||
|
gitsigns.diffthis "~"
|
||||||
|
end, "Diff this"),
|
||||||
|
}
|
||||||
|
|
||||||
|
--- LSP keys ---
|
||||||
|
set_key.lsp = function(key, action)
|
||||||
|
return set_key.cmd("l" .. key, "Lsp" .. action, action)
|
||||||
|
end
|
||||||
|
set_key.lsp_saga = function(key, action, desc)
|
||||||
|
return set_key.cmd("l" .. key, "Lspsaga " .. action, desc or action)
|
||||||
|
end
|
||||||
|
wk.add {
|
||||||
|
{ "<leader>l", group = "Lsp" },
|
||||||
|
set_key.lsp("i", "Info"),
|
||||||
|
set_key.lsp("R", "Restart"),
|
||||||
|
set_key.lsp("s", "Start"),
|
||||||
|
set_key.lsp("x", "Stop"),
|
||||||
|
set_key.cmd("lf", require("conform").format, "Format"),
|
||||||
|
set_key.cmd("lF", "ConformInfo", "Format"),
|
||||||
|
|
||||||
|
set_key.lsp_saga("r", "rename"),
|
||||||
|
set_key.lsp_saga("o", "outline"),
|
||||||
|
set_key.lsp_saga("a", "code_action", "Code Action"),
|
||||||
|
}
|
||||||
|
|
||||||
|
--- FZF keys ---
|
||||||
|
set_key.fzf = function(key, action, desc)
|
||||||
|
return set_key.cmd("f" .. key, function()
|
||||||
|
local fzf = require "fzf-lua"
|
||||||
|
fzf[action]()
|
||||||
|
end, desc or action)
|
||||||
|
end
|
||||||
|
|
||||||
|
wk.add {
|
||||||
|
{ "<leader>f", group = "FZF" },
|
||||||
|
set_key.fzf("f", "files", "Files"),
|
||||||
|
set_key.fzf("o", "oldfiles", "Old files"),
|
||||||
|
set_key.fzf("l", "live_grep", "Live grep"),
|
||||||
|
set_key.fzf("b", "buffers", "Buffers"),
|
||||||
|
set_key.fzf("k", "keymaps", "Keymaps"),
|
||||||
|
set_key.fzf("j", "jumps", "Jumps"),
|
||||||
|
set_key.fzf("c", "commands", "Commands"),
|
||||||
|
set_key.fzf("C", "colorschemes", "Colorschemes"),
|
||||||
|
set_key.fzf("t", "tabs", "Tabs"),
|
||||||
|
set_key.fzf("T", "treesitter", "Treesitter"),
|
||||||
|
-- set_key.cmd("fh", "FzfHarpoon", "Harpoon"),
|
||||||
|
set_key.fzf("s", "spell_suggest", "Spelling suggest"),
|
||||||
|
|
||||||
|
{ "<leader>fg", group = "Git" },
|
||||||
|
set_key.fzf("gg", "git_files", "Files"),
|
||||||
|
set_key.fzf("gs", "git_status", "Status"),
|
||||||
|
set_key.fzf("gb", "git_bcommits", "Buffer commits"),
|
||||||
|
set_key.fzf("gB", "git_branches", "Branches"),
|
||||||
|
|
||||||
|
{ "<leader>fL", group = "LSP" },
|
||||||
|
set_key.fzf("Lr", "lsp_references", "References"),
|
||||||
|
set_key.fzf("Ld", "lsp_definitions", "Definitions"),
|
||||||
|
set_key.fzf("LD", "lsp_declarations", "Declarations"),
|
||||||
|
set_key.fzf("Lt", "lsp_typedefs", "Type definitions"),
|
||||||
|
set_key.fzf("Li", "lsp_implementations", "Implementations"),
|
||||||
|
set_key.fzf("Ls", "lsp_document_symbols", "Symbols"),
|
||||||
|
set_key.fzf("LS", "lsp_workspace_symbols", "Workspace symbols"),
|
||||||
|
-- set_key.fzf("LS", "lsp_live_workspace_symbols", "Live workspace symbols"),
|
||||||
|
set_key.fzf("LI", "lsp_incoming_calls", "Incoming calls"),
|
||||||
|
set_key.fzf("Lc", "lsp_code_actions", "Code actions"),
|
||||||
|
set_key.fzf("Lf", "lsp_finder", "Finder"),
|
||||||
|
set_key.fzf("Lo", "lsp_outgoing_calls", "Outgoing calls"),
|
||||||
|
-- set_key.fzf("LD", "diagnostics_document", "Diagnostics document"),
|
||||||
|
-- set_key.fzf("LD", "diagnostics_workspace", "Diagnostics workspace"),
|
||||||
|
}
|
||||||
|
|
||||||
|
set_key.trouble = function(key, action, desc)
|
||||||
|
return set_key.cmd("x" .. key, "Trouble " .. action .. " focus=true win.position=bottom", desc)
|
||||||
|
end
|
||||||
|
wk.add {
|
||||||
|
{ "<leader>x", group = "Trouble" },
|
||||||
|
set_key.trouble("x", "diagnostics filter.buf=0", "Buffer Diagnostics"),
|
||||||
|
set_key.trouble("X", "diagnostics", "Diagnostics"),
|
||||||
|
set_key.trouble("t", "todo", "Todo"),
|
||||||
|
set_key.trouble("q", "qflist", "QuickFix List"),
|
||||||
|
set_key.trouble("L", "loclist", "Location List"),
|
||||||
|
set_key.cmd("xv", function()
|
||||||
|
local current_value = vim.diagnostic.config().virtual_text
|
||||||
|
vim.diagnostic.config({ virtual_text = not current_value })
|
||||||
|
end, "Toggle virtual text"),
|
||||||
|
|
||||||
|
--- LSP ---
|
||||||
|
set_key.trouble("l", "lsp", "LSP"),
|
||||||
|
set_key.trouble("D", "lsp_declarations", "declarations"),
|
||||||
|
set_key.trouble("d", "lsp_definitions", "definitions"),
|
||||||
|
set_key.trouble("s", "symbols", "Symbols"),
|
||||||
|
set_key.trouble("i", "lsp_implementations", "implementations"),
|
||||||
|
set_key.trouble("I", "lsp_incoming_calls", "Incoming calls"),
|
||||||
|
set_key.trouble("O", "lsp_outgoing_calls", "Outgoing calls"),
|
||||||
|
set_key.trouble("r", "lsp_references", "references"),
|
||||||
|
set_key.trouble("T", "lsp_type_definitions", "type definitions"),
|
||||||
|
}
|
||||||
|
|
||||||
|
set_key.latex = function(key, action)
|
||||||
|
return set_key.cmd("L" .. key, "Vimtex" .. action, action)
|
||||||
|
end
|
||||||
|
|
||||||
|
wk.add {
|
||||||
|
{ "<leader>m", group = "Markdown" },
|
||||||
|
set_key.cmd("mr", "RenderMarkdown toggle", "Toggle render"),
|
||||||
|
set_key.cmd("mv", "MarkdownPreviewToggle", "Browser preview"),
|
||||||
|
|
||||||
|
--- Snap (Silicon) --
|
||||||
|
{ "<leader>S", group = "Snap(Silicon)" },
|
||||||
|
set_key.cmd("Ss", require("silicon").file, "Save as file"),
|
||||||
|
set_key.cmd("Sc", require("silicon").clip, "Copy to clipboard"),
|
||||||
|
|
||||||
|
--- Latex (Vimtex) --
|
||||||
|
{ "<leader>L", group = "Latex" },
|
||||||
|
set_key.latex("v", "View"),
|
||||||
|
set_key.latex("e", "Errors"),
|
||||||
|
set_key.latex("r", "Reload"),
|
||||||
|
set_key.latex("c", "Compile"),
|
||||||
|
|
||||||
|
set_key.cmd("r", require("grug-far").open, "Replace"),
|
||||||
|
set_key.cmd("z", function()
|
||||||
|
vim.wo.number = false
|
||||||
|
require("zen-mode").toggle()
|
||||||
|
end, "Zen Mode"),
|
||||||
|
set_key.cmd("u", "UndotreeToggle", "Undo Tree"),
|
||||||
|
set_key.cmd("H", "HexokinaseToggle", "Hexokinase"),
|
||||||
|
}
|
||||||
|
|
||||||
|
wk.add {
|
||||||
|
{ "<leader>t", group = "Debugging" },
|
||||||
|
--- dap ---
|
||||||
|
set_key.cmd("tb", "DapToggleBreakpoint", "Toggle Breakpoint"),
|
||||||
|
set_key.cmd("td", "DapContinue", "Continue Debug Session"),
|
||||||
|
set_key.cmd("tD", "DapNew", "New Debug Session"),
|
||||||
|
set_key.cmd("ts", "DapStepInto", "Step Into"),
|
||||||
|
set_key.cmd("tS", "DapStepOver", "Step Over"),
|
||||||
|
set_key.cmd("tr", function()
|
||||||
|
require("dap").repl.toggle()
|
||||||
|
end, "Toggle Debug REPL"),
|
||||||
|
|
||||||
|
--- neotest ---
|
||||||
|
set_key.cmd("tt", function()
|
||||||
|
require("neotest").run.run()
|
||||||
|
end, "Run nearest test"),
|
||||||
|
set_key.cmd("tT", function()
|
||||||
|
require("neotest").run.run({strategy = "dap"})
|
||||||
|
end, "Debug nearest test"),
|
||||||
|
set_key.cmd("ta", function()
|
||||||
|
require("neotest").run.run(vim.fn.expand("%"))
|
||||||
|
end, "Run all tests in file"),
|
||||||
|
}
|
||||||
17
home/editors/nvim/plugins/utils/which-key/default.nix
Normal file
17
home/editors/nvim/plugins/utils/which-key/default.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
extraPackages = with pkgs; [lazygit];
|
||||||
|
|
||||||
|
plugins.which-key = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
preset = "helix"; # "classic" | "modern" | "helix"
|
||||||
|
sort = ["manual"];
|
||||||
|
win = {
|
||||||
|
border = "rounded";
|
||||||
|
};
|
||||||
|
icon.mappings = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfigLua = builtins.readFile ./config.lua;
|
||||||
|
}
|
||||||
2
home/editors/nvim/stylua.toml
Normal file
2
home/editors/nvim/stylua.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
quote_style = "AutoPreferSignle"
|
||||||
|
call_parentheses = "None"
|
||||||
53
home/global.nix
Normal file
53
home/global.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
user,
|
||||||
|
pkgs,
|
||||||
|
stateVersion,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
package = lib.mkDefault pkgs.nix;
|
||||||
|
settings.experimental-features = ["nix-command" "flakes"];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
commit.gpgsign = true;
|
||||||
|
|
||||||
|
url = {
|
||||||
|
"ssh://git@gitlab.uni-ulm.de".insteadOf = "https://gitlab.uni-ulm.de";
|
||||||
|
"ssh://git@github.com".insteadOf = "https://github.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
user = {
|
||||||
|
email = "dominik.bernroider@icloud.com";
|
||||||
|
name = "demenik";
|
||||||
|
signingkey = "D3EC91B5457F4864";
|
||||||
|
};
|
||||||
|
|
||||||
|
"includeIf \"hasconfig:remote.*.url:git@gitlab.uni-ulm.de:*/**\"" = {
|
||||||
|
path = "${pkgs.writeText ".gitconfig-gitlab.uni-ulm.de" ''
|
||||||
|
[user]
|
||||||
|
email = "dominik.bernroider@uni-ulm.de"
|
||||||
|
name = "Dominik Bernroider"
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gpg.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
inherit stateVersion;
|
||||||
|
username = lib.mkDefault user;
|
||||||
|
homeDirectory = lib.mkDefault "/home/${user}";
|
||||||
|
sessionPath = ["$HOME/.local/bin"];
|
||||||
|
};
|
||||||
|
}
|
||||||
5
home/programs/cli/ai.nix
Normal file
5
home/programs/cli/ai.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gemini-cli
|
||||||
|
];
|
||||||
|
}
|
||||||
21
home/programs/cli/bat.nix
Normal file
21
home/programs/cli/bat.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
# config.theme = "Catppuccin Mocha";
|
||||||
|
themes = {
|
||||||
|
"Catppuccin Mocha" = {
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "catppuccin";
|
||||||
|
repo = "bat";
|
||||||
|
rev = "6810349";
|
||||||
|
sha256 = "1y5sfi7jfr97z1g6vm2mzbsw59j1jizwlmbadvmx842m0i5ak5ll";
|
||||||
|
};
|
||||||
|
file = "themes/Catppuccin Mocha.tmTheme";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.shellAliases = {
|
||||||
|
cat = "bat";
|
||||||
|
};
|
||||||
|
}
|
||||||
15
home/programs/cli/btop.nix
Normal file
15
home/programs/cli/btop.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
# settings = {
|
||||||
|
# color_theme = "catppuccin-mocha";
|
||||||
|
# theme_background = false;
|
||||||
|
# };
|
||||||
|
themes = {
|
||||||
|
catppuccin-mocha = pkgs.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/catppuccin/btop/f437574b600f1c6d932627050b15ff5153b58fa3/themes/catppuccin_mocha.theme";
|
||||||
|
sha256 = "0i263xwkkv8zgr71w13dnq6cv10bkiya7b06yqgjqa6skfmnjx2c";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
home/programs/cli/debugging.nix
Normal file
5
home/programs/cli/debugging.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
vscode-extensions.vadimcn.vscode-lldb
|
||||||
|
];
|
||||||
|
}
|
||||||
13
home/programs/cli/default.nix
Normal file
13
home/programs/cli/default.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./zoxide.nix
|
||||||
|
./bat.nix
|
||||||
|
./eza.nix
|
||||||
|
./btop.nix
|
||||||
|
./ssh.nix
|
||||||
|
./fastfetch.nix
|
||||||
|
./jq.nix
|
||||||
|
./ai.nix
|
||||||
|
./debugging.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
21
home/programs/cli/eza.nix
Normal file
21
home/programs/cli/eza.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.eza = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
|
||||||
|
colors = "auto";
|
||||||
|
extraOptions = [
|
||||||
|
"--classify"
|
||||||
|
"--group-directories-first"
|
||||||
|
];
|
||||||
|
|
||||||
|
theme = pkgs.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/eza-community/eza-themes/17095bff4792eecd7f4f1ed8301b15000331c906/themes/catppuccin.yml";
|
||||||
|
sha256 = "0hpchiiadyxfl5rx12msww94jbj5hvqma5b2jgcvllv1b2pd1ghd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.shellAliases = {
|
||||||
|
ls = "eza";
|
||||||
|
};
|
||||||
|
}
|
||||||
47
home/programs/cli/fastfetch.nix
Normal file
47
home/programs/cli/fastfetch.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
programs.fastfetch = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
display = {
|
||||||
|
separator = " = ";
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = let
|
||||||
|
mkLiteral = type: key: format: {
|
||||||
|
inherit type;
|
||||||
|
key = " ${key}";
|
||||||
|
format = "${format};";
|
||||||
|
};
|
||||||
|
mkString = type: key: format: mkLiteral type key "\"${format}\"";
|
||||||
|
emptyLine = {
|
||||||
|
type = "custom";
|
||||||
|
format = "";
|
||||||
|
};
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
type = "title";
|
||||||
|
format = "{host-name-colored}.users.{user-name-colored} = {"; # {}
|
||||||
|
}
|
||||||
|
|
||||||
|
(mkString "host" "host" "{family}")
|
||||||
|
(mkString "cpu" "cpu" "{name} ({cores-physical}C/{cores-logical}T) @ {freq-max}")
|
||||||
|
(mkString "memory" "memory" "{used}/{total} ({percentage})")
|
||||||
|
(mkString "disk" "disk" "{name} ({filesystem}) {size-used}/{size-total} ({size-percentage})")
|
||||||
|
(mkString "os" "os" "{name} {release}")
|
||||||
|
(mkString "kernel" "kernel" "{sysname} {arch} {display-version}")
|
||||||
|
(mkString "localip" "ip" "{ipv4} {ifname}") # last seen
|
||||||
|
|
||||||
|
emptyLine
|
||||||
|
|
||||||
|
(mkString "wm" "wm" "{pretty-name} {version} ({protocol-name})")
|
||||||
|
(mkString "editor" "editor" "{name} {version}")
|
||||||
|
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "};";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
3
home/programs/cli/jq.nix
Normal file
3
home/programs/cli/jq.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
programs.jq.enable = true;
|
||||||
|
}
|
||||||
32
home/programs/cli/ssh.nix
Normal file
32
home/programs/cli/ssh.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
programs.ssh = {
|
||||||
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
|
matchBlocks = {
|
||||||
|
"*" = {
|
||||||
|
identityFile = "~/.ssh/id_rsa";
|
||||||
|
};
|
||||||
|
"homelab" = {
|
||||||
|
hostname = "46.5.154.149";
|
||||||
|
user = "nix";
|
||||||
|
};
|
||||||
|
"hyperion" = {
|
||||||
|
hostname = "192.168.178.55";
|
||||||
|
user = "demenik";
|
||||||
|
};
|
||||||
|
"sgi-uni-ulm" = {
|
||||||
|
hostname = "login.informatik.uni-ulm.de";
|
||||||
|
user = "db56";
|
||||||
|
};
|
||||||
|
"github.com" = {
|
||||||
|
user = "git";
|
||||||
|
identitiesOnly = true;
|
||||||
|
};
|
||||||
|
"gitlab.uni-ulm.de" = {
|
||||||
|
user = "git";
|
||||||
|
identitiesOnly = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
home/programs/cli/zoxide.nix
Normal file
10
home/programs/cli/zoxide.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
programs.zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.shellAliases = {
|
||||||
|
cd = "z";
|
||||||
|
};
|
||||||
|
}
|
||||||
44
home/programs/default.nix
Normal file
44
home/programs/default.nix
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./cli
|
||||||
|
|
||||||
|
./firefox.nix
|
||||||
|
./qbittorrent.nix
|
||||||
|
|
||||||
|
./nmgui.nix
|
||||||
|
./overskride.nix
|
||||||
|
./rofi.nix
|
||||||
|
./emulator.nix
|
||||||
|
./vpn.nix
|
||||||
|
|
||||||
|
./spicetify.nix
|
||||||
|
|
||||||
|
./thunderbird.nix
|
||||||
|
./obsidian.nix
|
||||||
|
./office.nix
|
||||||
|
|
||||||
|
./vesktop.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
inputs.bettersoundcloud.packages.${system}.default
|
||||||
|
|
||||||
|
gimp
|
||||||
|
aseprite
|
||||||
|
|
||||||
|
nautilus
|
||||||
|
nautilus-open-any-terminal
|
||||||
|
rquickshare
|
||||||
|
flameshot
|
||||||
|
|
||||||
|
openvpn3
|
||||||
|
|
||||||
|
libreoffice
|
||||||
|
|
||||||
|
prismlauncher
|
||||||
|
];
|
||||||
|
}
|
||||||
7
home/programs/emulator.nix
Normal file
7
home/programs/emulator.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.settings.windowrulev2 = map (rule: "${rule}, class:^(Emulator)$") [
|
||||||
|
"float"
|
||||||
|
"keepaspectratio"
|
||||||
|
"pin"
|
||||||
|
];
|
||||||
|
}
|
||||||
155
home/programs/firefox.nix
Normal file
155
home/programs/firefox.nix
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
{lib, ...}: {
|
||||||
|
home.sessionVariables."BROWSER" = "firefox";
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
env = ["BROWSER,firefox"];
|
||||||
|
|
||||||
|
windowrulev2 =
|
||||||
|
[
|
||||||
|
"workspace 2, class:^(firefox)$"
|
||||||
|
"fullscreenstate -1 2, class:^(firefox)$"
|
||||||
|
"float, title:^(Firefox - Sharing Indicator)$"
|
||||||
|
"suppressevent maximize, class:^(firefox)$"
|
||||||
|
]
|
||||||
|
++ map (rule: "${rule}, class:^(firefox)$, title:^(Picture-in-Picture)$") [
|
||||||
|
"float"
|
||||||
|
"keepaspectratio"
|
||||||
|
"pin"
|
||||||
|
"move 100%-w-5 100%-w-5"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
mimeApps.defaultApplications = builtins.listToAttrs (builtins.map (key: {
|
||||||
|
name = key;
|
||||||
|
value = ["firefox.desktop"];
|
||||||
|
}) [
|
||||||
|
"x-scheme-handler/http"
|
||||||
|
"x-scheme-handler/https"
|
||||||
|
|
||||||
|
"text/html"
|
||||||
|
"text/xml"
|
||||||
|
"application/pdf"
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default = {
|
||||||
|
name = "Default";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
|
|
||||||
|
"browser.uidensity" = 0;
|
||||||
|
"browser.urlbar.suggest.engines" = false;
|
||||||
|
"browser.urlbar.suggest.openpage" = false;
|
||||||
|
"browser.urlbar.suggest.bookmark" = true;
|
||||||
|
"browser.toolbars.bookmarks.visibility" = "only show on new tab";
|
||||||
|
"browser.urlbar.suggest.addons" = false;
|
||||||
|
"browser.urlbar.suggest.pocket" = false;
|
||||||
|
|
||||||
|
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||||
|
|
||||||
|
"browser.formfill.enable" = false;
|
||||||
|
"extensions.formautofill.addresses.enabled" = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
search = {
|
||||||
|
force = true;
|
||||||
|
|
||||||
|
default = "ud";
|
||||||
|
order = [
|
||||||
|
"ud"
|
||||||
|
|
||||||
|
"no"
|
||||||
|
"np"
|
||||||
|
"hm"
|
||||||
|
|
||||||
|
"nv"
|
||||||
|
"lsp"
|
||||||
|
|
||||||
|
"crates"
|
||||||
|
];
|
||||||
|
|
||||||
|
engines = let
|
||||||
|
mkParams = lib.mapAttrsToList (name: value: {
|
||||||
|
inherit name value;
|
||||||
|
});
|
||||||
|
|
||||||
|
mkEngine = {
|
||||||
|
icon,
|
||||||
|
template,
|
||||||
|
params ? {},
|
||||||
|
definedAliases ? [],
|
||||||
|
}: {
|
||||||
|
inherit icon definedAliases;
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
inherit template;
|
||||||
|
params = mkParams params;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
ud = mkEngine {
|
||||||
|
icon = "https://www.gstatic.com/images/branding/searchlogo/ico/favicon.ico";
|
||||||
|
template = "https://unduck.demenik.tech";
|
||||||
|
params = {q = "{searchTerms}";};
|
||||||
|
};
|
||||||
|
|
||||||
|
np = mkEngine {
|
||||||
|
icon = "https://search.nixos.org/images/nix-logo.png";
|
||||||
|
definedAliases = ["@np"];
|
||||||
|
template = "https://search.nixos.org/packages";
|
||||||
|
params = {
|
||||||
|
type = "packages";
|
||||||
|
channel = "unstable";
|
||||||
|
query = "{searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
no = mkEngine {
|
||||||
|
icon = "https://search.nixos.org/images/nix-logo.png";
|
||||||
|
definedAliases = ["@no"];
|
||||||
|
template = "https://search.nixos.org/options";
|
||||||
|
params = {
|
||||||
|
channel = "unstable";
|
||||||
|
query = "{searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hm = mkEngine {
|
||||||
|
icon = "https://home-manager-options.extranix.com/images/favicon.png";
|
||||||
|
definedAliases = ["@hm"];
|
||||||
|
template = "https://home-manager-options.extranix.com";
|
||||||
|
params = {
|
||||||
|
release = "master";
|
||||||
|
query = "{searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nv = mkEngine {
|
||||||
|
icon = "https://raw.githubusercontent.com/nix-community/nixvim/main/assets/nixvim_logo.svg";
|
||||||
|
definedAliases = ["@nv"];
|
||||||
|
template = "https://nix-community.github.io/nixvim/";
|
||||||
|
params = {
|
||||||
|
search = "{searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp = mkEngine {
|
||||||
|
icon = "https://github.com/neovim.png";
|
||||||
|
definedAliases = ["@lsp"];
|
||||||
|
template = "https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#{searchTerms}";
|
||||||
|
};
|
||||||
|
|
||||||
|
crates = mkEngine {
|
||||||
|
icon = "https://crates.io/assets/cargo.png";
|
||||||
|
definedAliases = ["@crates"];
|
||||||
|
template = "https://crates.io/search";
|
||||||
|
params = {
|
||||||
|
q = "{searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
home/programs/nmgui.nix
Normal file
11
home/programs/nmgui.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
nmgui
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings.windowrulev2 = map (rule: "${rule}, class:^(com.network.manager)$") [
|
||||||
|
"float"
|
||||||
|
"size 500 600"
|
||||||
|
"center"
|
||||||
|
];
|
||||||
|
}
|
||||||
7
home/programs/obsidian.nix
Normal file
7
home/programs/obsidian.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [obsidian];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings.windowrulev2 = [
|
||||||
|
"workspace 1, class:^(obsidian)$"
|
||||||
|
];
|
||||||
|
}
|
||||||
64
home/programs/office.nix
Normal file
64
home/programs/office.nix
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
catppuccin = {
|
||||||
|
flavour = "mocha";
|
||||||
|
accent = "mauve";
|
||||||
|
socHash = "sha256-c7BIwKlwUpD+rLKQQi43mHi2s/hlNkxPE+eX7iWb2vI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
themeName = "catppuccin-${catppuccin.flavour}-${catppuccin.accent}";
|
||||||
|
themeUrl = "https://raw.githubusercontent.com/catppuccin/libreoffice/main/themes/${catppuccin.flavour}/${catppuccin.accent}/${themeName}.soc";
|
||||||
|
|
||||||
|
themeFile = pkgs.fetchurl {
|
||||||
|
url = themeUrl;
|
||||||
|
hash = catppuccin.socHash;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
home.packages = with pkgs; [libreoffice];
|
||||||
|
|
||||||
|
xdg.configFile."libreoffice/4/user/config/catppuccin-mocha-mauve.soc" = {
|
||||||
|
source = themeFile;
|
||||||
|
executable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/catppuccin/libreoffice/blob/main/scripts/install_theme.sh (edited for nix)
|
||||||
|
# home.activation.installCatppuccinLibreofficeTheme = ''
|
||||||
|
# PATH=${pkgs.lib.makeBinPath [pkgs.gawk pkgs.gnugrep pkgs.findutils pkgs.coreutils pkgs.gettext]}
|
||||||
|
|
||||||
|
# echo "Applying Catppuccin theme to LibreOffice..."
|
||||||
|
|
||||||
|
# configFile=$(find "${config.xdg.configHome}/libreoffice" -path '*/user/registrymodifications.xcu' -print -quit)
|
||||||
|
|
||||||
|
# if [[ -z "$configFile" || ! -f "$configFile" ]]; then
|
||||||
|
# echo "LibreOffice registrymodifications.xcu not found. Skipping."
|
||||||
|
# exit 0
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# echo "Found config at: $configFile"
|
||||||
|
|
||||||
|
# if grep -q 'oor:name="${themeName}"' "$configFile"; then
|
||||||
|
# echo "Theme '${themeName}' is already installed. Nothing to do."
|
||||||
|
# exit 0
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# echo "Injecting theme '${themeName}' into $configFile..."
|
||||||
|
|
||||||
|
# gawk -i inplace -v themePath="${themeFile}" '
|
||||||
|
# BEGIN {
|
||||||
|
# while ((getline line < themePath) > 0) {
|
||||||
|
# themeContent = themeContent line "\n"
|
||||||
|
# }
|
||||||
|
# close(themePath)
|
||||||
|
# }
|
||||||
|
# /<\/oor:items>/ {
|
||||||
|
# printf "%s", themeContent
|
||||||
|
# }
|
||||||
|
# { print }
|
||||||
|
# ' "$configFile"
|
||||||
|
|
||||||
|
# echo "Successfully applied theme."
|
||||||
|
# '';
|
||||||
|
}
|
||||||
11
home/programs/overskride.nix
Normal file
11
home/programs/overskride.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
overskride
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings.windowrulev2 = map (rule: "${rule}, class:^(io.github.kaii_lb.Overskride)$") [
|
||||||
|
"float"
|
||||||
|
"size 850 650"
|
||||||
|
"center"
|
||||||
|
];
|
||||||
|
}
|
||||||
22
home/programs/qbittorrent.nix
Normal file
22
home/programs/qbittorrent.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [qbittorrent];
|
||||||
|
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"x-scheme-handler/magnet" = ["org.qbittorrent.qBittorrent.desktop"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.firefox.policies.Handlers = {
|
||||||
|
schemes.magnet = {
|
||||||
|
action = "useHelperApp";
|
||||||
|
handlers = [
|
||||||
|
{
|
||||||
|
name = "qBittorrent";
|
||||||
|
path = "${pkgs.qbittorrent}/share/application/org.qbittorrent.qBittorrent.desktop";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
123
home/programs/rofi.nix
Normal file
123
home/programs/rofi.nix
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
{config, ...}: {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
bind = [
|
||||||
|
"SUPER, Space, exec, rofi -show drun -show-icons"
|
||||||
|
];
|
||||||
|
|
||||||
|
windowrulev2 = map (rule: "${rule}, class:^(Rofi)$") [
|
||||||
|
"float"
|
||||||
|
"dimaround"
|
||||||
|
"pin"
|
||||||
|
"stayfocused"
|
||||||
|
"persistentsize"
|
||||||
|
"decorate 0"
|
||||||
|
"center 1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
stylix.targets.rofi.enable = false;
|
||||||
|
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
modi = "drun,run";
|
||||||
|
display-drun = "drun";
|
||||||
|
display-run = "run";
|
||||||
|
};
|
||||||
|
|
||||||
|
font = "sans-serif 12";
|
||||||
|
|
||||||
|
theme = let
|
||||||
|
inherit (config.lib.formats.rasi) mkLiteral;
|
||||||
|
in {
|
||||||
|
"*" = let
|
||||||
|
inherit (config.lib.stylix) colors;
|
||||||
|
in {
|
||||||
|
bg0 = mkLiteral "#${colors.base00}F2";
|
||||||
|
bg1 = mkLiteral "#${colors.base01}";
|
||||||
|
bg2 = mkLiteral "#${colors.base02}";
|
||||||
|
bg3 = mkLiteral "#${colors.base0E}";
|
||||||
|
fg0 = mkLiteral "#${colors.base05}";
|
||||||
|
fg1 = mkLiteral "#${colors.base04}";
|
||||||
|
fg2 = mkLiteral "#${colors.base03}";
|
||||||
|
fg3 = mkLiteral "#${colors.base02}";
|
||||||
|
|
||||||
|
background-color = mkLiteral "transparent";
|
||||||
|
text-color = mkLiteral "@fg0";
|
||||||
|
|
||||||
|
margin = mkLiteral "0px";
|
||||||
|
padding = mkLiteral "0px";
|
||||||
|
spacing = mkLiteral "0px";
|
||||||
|
};
|
||||||
|
|
||||||
|
"window" = {
|
||||||
|
location = mkLiteral "north";
|
||||||
|
y-offset = mkLiteral "calc(50% - 176px)";
|
||||||
|
width = 480;
|
||||||
|
border-radius = mkLiteral "8px";
|
||||||
|
|
||||||
|
background-color = mkLiteral "@bg0";
|
||||||
|
};
|
||||||
|
|
||||||
|
"mainbox".padding = mkLiteral "12px";
|
||||||
|
|
||||||
|
"inputbar" = {
|
||||||
|
background-color = mkLiteral "@bg1";
|
||||||
|
border-color = mkLiteral "@bg3";
|
||||||
|
|
||||||
|
border = mkLiteral "2px";
|
||||||
|
border-radius = mkLiteral "8px";
|
||||||
|
|
||||||
|
padding = mkLiteral "8px 16px";
|
||||||
|
spacing = mkLiteral "8px";
|
||||||
|
children = map mkLiteral ["prompt" "entry"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"prompt".text-color = mkLiteral "@fg2";
|
||||||
|
|
||||||
|
"entry" = {
|
||||||
|
placeholder = " Search...";
|
||||||
|
placeholder-color = mkLiteral "@fg3";
|
||||||
|
};
|
||||||
|
|
||||||
|
"message" = {
|
||||||
|
margin = mkLiteral "12px 0 0";
|
||||||
|
border-radius = mkLiteral "8px";
|
||||||
|
border-color = mkLiteral "@bg2";
|
||||||
|
background-color = mkLiteral "@bg2";
|
||||||
|
};
|
||||||
|
|
||||||
|
"textbox".padding = mkLiteral "8px 24px";
|
||||||
|
|
||||||
|
"listview" = {
|
||||||
|
background-color = mkLiteral "transparent";
|
||||||
|
|
||||||
|
margin = mkLiteral "12px 0 0";
|
||||||
|
lines = 8;
|
||||||
|
columns = 1;
|
||||||
|
|
||||||
|
fixed-height = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"element" = {
|
||||||
|
padding = mkLiteral "8px 16px";
|
||||||
|
spacing = mkLiteral "8px";
|
||||||
|
border-radius = mkLiteral "8px";
|
||||||
|
};
|
||||||
|
|
||||||
|
"element normal active".text-color = mkLiteral "@bg3";
|
||||||
|
"element alternate active".text-color = mkLiteral "@bg3";
|
||||||
|
"element selected normal, element selected active" = {
|
||||||
|
text-color = mkLiteral "@bg0";
|
||||||
|
background-color = mkLiteral "@bg3";
|
||||||
|
};
|
||||||
|
|
||||||
|
"element-icon" = {
|
||||||
|
size = mkLiteral "1em";
|
||||||
|
vertical-align = mkLiteral "0.5";
|
||||||
|
};
|
||||||
|
|
||||||
|
"element-text".text-color = mkLiteral "inherit";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
home/programs/spicetify.nix
Normal file
34
home/programs/spicetify.nix
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (inputs) spicetify-nix;
|
||||||
|
in {
|
||||||
|
imports = [spicetify-nix.homeManagerModules.default];
|
||||||
|
|
||||||
|
programs.spicetify = let
|
||||||
|
spicePkgs = spicetify-nix.legacyPackages.${pkgs.system};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
spotifyLaunchFlags = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||||
|
|
||||||
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
|
keyboardShortcut
|
||||||
|
shuffle
|
||||||
|
groupSession
|
||||||
|
fullAlbumDate
|
||||||
|
showQueueDuration
|
||||||
|
betterGenres
|
||||||
|
lastfm
|
||||||
|
playNext
|
||||||
|
volumePercentage
|
||||||
|
allOfArtist
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings.windowrulev2 = [
|
||||||
|
"workspace 3, class:^(Spotify)$"
|
||||||
|
];
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user