Compare commits
162 commits
experiment
...
main
Author | SHA1 | Date | |
---|---|---|---|
Aria Nolan | 05dc8e29b2 | ||
Aria Nolan | a5a189107a | ||
Aria Nolan | eeb3d215d8 | ||
Aria Nolan | 8dc0f5ae42 | ||
Aria Nolan | 32b63c10a5 | ||
Aria Nolan | 7d342f94ee | ||
Aria Nolan | 3196a9713e | ||
Aria Nolan | 58af283418 | ||
Aria Nolan | b4a0681c07 | ||
Aria Nolan | 7203708871 | ||
Aria Nolan | c22db00225 | ||
Aria Nolan | 4a5f3d9b9b | ||
Aria Nolan | fb3ada0c55 | ||
Aria Nolan | 389829472e | ||
Aria Nolan | df585dccad | ||
Aria Nolan | 885a0c05f9 | ||
Aria Nolan | 6fd3f3c54c | ||
Aria Nolan | 804e83a456 | ||
Aria Nolan | 4fb0be475b | ||
Aria Nolan | 4842e15d96 | ||
Aria Nolan | ba9eb822d0 | ||
Aria Nolan | eceff55fca | ||
Aria Nolan | 05f6c1129b | ||
Aria Nolan | e82f59b798 | ||
Aria Nolan | 0853afd06e | ||
Aria Nolan | a46628ace4 | ||
Aria Nolan | f77f518349 | ||
Aria Nolan | 2dcec69655 | ||
Aria Nolan | 28115a7756 | ||
Aria Nolan | ae4bb98ea3 | ||
Aria Nolan | 879ec80912 | ||
Aria Nolan | 8b5a533791 | ||
Aria Nolan | 5534fb4321 | ||
Aria Nolan | 5ff463bab3 | ||
Aria Nolan | 3ae435fcd4 | ||
Aria Nolan | 5fb569e3aa | ||
Aria Nolan | 3fc5f87f03 | ||
Aria Nolan | 6113cb2132 | ||
Aria Nolan | f3b84d39ff | ||
Aria Nolan | 081e95317d | ||
Aria Nolan | 8d436b570e | ||
Aria Nolan | 0a41229092 | ||
Aria Nolan | 02f756385f | ||
Aria Nolan | f28e02e5c9 | ||
Aria Nolan | 95fad15496 | ||
Aria Nolan | 8d94c9220b | ||
Aria Nolan | ceb8312769 | ||
Aria Nolan | c76fcd1ee5 | ||
Aria Nolan | ff948fdd89 | ||
Aria Nolan | cff2d1ea16 | ||
Aria Nolan | 1cfb2b255a | ||
Aria Nolan | 85f9ad7802 | ||
Aria Nolan | 137b64805d | ||
Aria Nolan | 83ec84ae08 | ||
Aria Nolan | c9c41d1d3f | ||
Aria Nolan | 48628c4934 | ||
Aria Nolan | 17636a3009 | ||
Aria Nolan | e45046a3d0 | ||
Aria Nolan | 03847beac3 | ||
Aria Nolan | c24e6e7ff7 | ||
Aria Nolan | 8eee1584fe | ||
Aria Nolan | 2849e3683e | ||
Aria Nolan | eb24fc2273 | ||
Aria Nolan | 353d652824 | ||
Aria Nolan | abfd7c1dc8 | ||
Aria Nolan | 2d6cf08f2b | ||
Aria Nolan | f0c0e37e57 | ||
Aria Nolan | b6b9232ff5 | ||
Aria Nolan | bfac35ebfa | ||
Aria Nolan | d2a5bb9929 | ||
Aria Nolan | 1dbcc5c062 | ||
Aria Nolan | 1e3fdcec05 | ||
Aria Nolan | 2f76f79c9f | ||
Aria Nolan | 60a72f467d | ||
Aria Nolan | 6fc1817bba | ||
Aria Nolan | 78ecf40dfd | ||
Aria Nolan | c1162ef0f6 | ||
Aria Nolan | a1388075a2 | ||
Aria Nolan | 13b11cbed5 | ||
Aria Nolan | e99934d8b3 | ||
Aria Nolan | 51a9650171 | ||
Aria Nolan | 731e291954 | ||
Aria Nolan | c5202f98cc | ||
Aria Nolan | ce8ea0c860 | ||
Aria Nolan | 334e04848e | ||
Aria Nolan | 7edf0a82a1 | ||
Aria Nolan | 44d2091021 | ||
Aria Nolan | bc222b8283 | ||
Aria Nolan | c20aab9a14 | ||
Aria Nolan | f0ae1cf6c0 | ||
Aria Nolan | b452f0c1e9 | ||
Aria Nolan | d81628c136 | ||
Aria Nolan | 460b3f0625 | ||
Aria Nolan | cd0acc1147 | ||
Aria Nolan | 642c0784ab | ||
Aria Nolan | fc9b3a020c | ||
Aria Nolan | 810acd92b0 | ||
Aria Nolan | 419b00792a | ||
Aria Nolan | 08047fdfc7 | ||
Aria Nolan | 527a5c58bb | ||
Aria Nolan | a62dae1c26 | ||
Aria Nolan | f568db4441 | ||
Aria Nolan | e3f6e27fcf | ||
Aria Nolan | d831d88b6a | ||
Aria Nolan | a837266f6c | ||
Aria Nolan | a43d37b3f4 | ||
Aria Nolan | 4e3e13363d | ||
Aria Nolan | 2f27ba530b | ||
Aria Nolan | ced394fe30 | ||
Aria Nolan | c0c5b58949 | ||
Aria Nolan | 3a26f94254 | ||
Aria Nolan | e560e73a92 | ||
Aria Nolan | 30a0a86078 | ||
Aria Nolan | c0d5473564 | ||
Aria Nolan | e32e56c1ab | ||
Aria Nolan | 063e058ebc | ||
Aria Nolan | d9fbf9a69f | ||
Aria Nolan | a017dcd253 | ||
Aria Nolan | 3988d465f5 | ||
Aria Nolan | 5ebfbaaf76 | ||
Aria Nolan | 6d05566699 | ||
Aria Nolan | 5dd2e67f15 | ||
Aria Nolan | 6db5aa3dbb | ||
Aria Nolan | 1938932955 | ||
Aria Nolan | 92b21a4dcb | ||
Aria Nolan | d7d4160d21 | ||
Aria Nolan | ac2fc1b8c2 | ||
Aria Nolan | cf286d3ed7 | ||
Aria Nolan | 0c0af29dd3 | ||
Aria Nolan | ea943135ff | ||
Aria Nolan | be43caebe2 | ||
Aria Nolan | 6b46acf17a | ||
Aria Nolan | ad9340bf41 | ||
Aria Nolan | 6777dd1fbe | ||
Aria Nolan | 3240f76822 | ||
Aria Nolan | 0f51722cc3 | ||
Aria Nolan | d5b84593f9 | ||
Aria Nolan | 7f696d31c2 | ||
Aria Nolan | 83cc1f0abe | ||
Aria Nolan | 086a29746c | ||
Aria Nolan | 1262f8853c | ||
Aria Nolan | c2c1491088 | ||
Aria Nolan | 73daeb7edd | ||
Aria Nolan | d3915360e9 | ||
Aria Nolan | be9ae24e2c | ||
Aria Nolan | db0efe6f85 | ||
Aria Nolan | 9538b7e11f | ||
Aria Nolan | 18d5a49e6e | ||
Aria Nolan | 8ac857faf4 | ||
Aria Nolan | 6b62637d8f | ||
Aria Nolan | 4a70bad579 | ||
Aria Nolan | df4d47ebca | ||
Aria Nolan | cb266bcfa4 | ||
Aria Nolan | 8aa3ad1a61 | ||
Aria Nolan | e15a806e1d | ||
Aria Nolan | 2293744253 | ||
Aria Nolan | 5ffd2cdeeb | ||
Aria Nolan | 0e10b72290 | ||
Aria Nolan | a38427d539 | ||
Aria Nolan | 4b58cbe687 | ||
Aria Nolan | e2637dcb5c | ||
Aria Nolan | cc354afe69 |
6
README.md
Normal file
6
README.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# TODO
|
||||||
|
|
||||||
|
- Add NetworkManager mullvad vpn configs
|
||||||
|
- Flesh out nixvim
|
||||||
|
- Reformat nixos-common module (its getting messy)
|
||||||
|
- Make xdg-mime not bad
|
402
flake.lock
402
flake.lock
|
@ -1,36 +1,147 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"crane": {
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714136352,
|
||||||
|
"narHash": "sha256-BtWQ2Th/jamO1SlD+2ASSW5Jaf7JhA/JLpQHk0Goqpg=",
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "24a7ea390564ccd5b39b7884f597cfc8d7f6f44e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"helix",
|
"agenix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701025348,
|
"lastModified": 1700795494,
|
||||||
"narHash": "sha256-42GHmYH+GF7VjwGSt+fVT1CQuNpGanJbNgVHTAZppUM=",
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
"owner": "ipetkov",
|
"owner": "lnl7",
|
||||||
"repo": "crane",
|
"repo": "nix-darwin",
|
||||||
"rev": "42afaeb1a0325194a7cdb526332d2cb92fddd07b",
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "ipetkov",
|
"owner": "lnl7",
|
||||||
"repo": "crane",
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"devshell": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713532798,
|
||||||
|
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"revCount": 57,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712014858,
|
||||||
|
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694529238,
|
"lastModified": 1701680307,
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -39,40 +150,59 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"helix": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"systems": "systems_3"
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"rust-overlay": "rust-overlay"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702999846,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-5/sHtALCy1HymaJgdcmXM4/qpY3SBqlXvfOlB7DCocY=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "helix-editor",
|
"owner": "numtide",
|
||||||
"repo": "helix",
|
"repo": "flake-utils",
|
||||||
"rev": "63218a512687cf6cfdbd11f088d0a2cb7d4dfcb8",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "helix-editor",
|
"owner": "numtide",
|
||||||
"ref": "master",
|
"repo": "flake-utils",
|
||||||
"repo": "helix",
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"pre-commit-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702937117,
|
"lastModified": 1703113217,
|
||||||
"narHash": "sha256-4GjkL2D01bDg00UZN/SeGrnBZrDVOFeZTbQx6U702Vc=",
|
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e8aaced73ebaf6bfa8e3c6ab0a19cb184bc4d798",
|
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -81,13 +211,96 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714515075,
|
||||||
|
"narHash": "sha256-azMK7aWH0eUc3IqU4Fg5rwZdB9WZBvimOGG3piqvtsY=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "6d3b6dc9222c12b951169becdf4b0592ee9576ef",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714343445,
|
||||||
|
"narHash": "sha256-OzD1P0o46uD3Ix4ZI/g9z3YAeg+4g+W3qctB6bNOReo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "9fe79591c1005ce6f93084ae7f7dab0a2891440d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713946171,
|
||||||
|
"narHash": "sha256-lc75rgRQLdp4Dzogv5cfqOg6qYc5Rp83oedF2t0kDp8=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "230a197063de9287128e2c68a7a4b0cd7d0b50a7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-matlab": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714489314,
|
||||||
|
"narHash": "sha256-rHxViIhUYZGfFfSoQcRer4NBLLfIpbKM0BeGUGk70+A=",
|
||||||
|
"owner": "doronbehar",
|
||||||
|
"repo": "nix-matlab",
|
||||||
|
"rev": "caf167febec16cdf3f9c517fb1c9c7c358546bfe",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "doronbehar",
|
||||||
|
"repo": "nix-matlab",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702453208,
|
"lastModified": 1714465198,
|
||||||
"narHash": "sha256-0wRi9SposfE2wHqjuKt8WO2izKB/ASDOV91URunIqgo=",
|
"narHash": "sha256-ySkEJvS0gPz2UhXm0H3P181T8fUxvDVcoUyGn0Kc5AI=",
|
||||||
"owner": "NixOs",
|
"owner": "NixOs",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "7763c6fd1f299cb9361ff2abf755ed9619ef01d6",
|
"rev": "68d680c1b7c0e67a9b2144d6776583ee83664ef4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -99,15 +312,15 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1700794826,
|
"lastModified": 1703013332,
|
||||||
"narHash": "sha256-RyJTnTNKhO0yqRpDISk03I/4A67/dp96YRxc86YOPgU=",
|
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8",
|
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
|
@ -115,11 +328,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702830618,
|
"lastModified": 1714253743,
|
||||||
"narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=",
|
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "91a00709aebb3602f172a0bf47ba1ef013e34835",
|
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -129,13 +342,39 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell",
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"home-manager": "home-manager_3",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714578316,
|
||||||
|
"narHash": "sha256-0WnM2nbgj12FGOOCD6NVreiruadmgBijdLiqvqTISaY=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"rev": "afa64f35eefa388ca897656f7b3928a6e9e09e4d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702997397,
|
"lastModified": 1714592754,
|
||||||
"narHash": "sha256-th/EqbtB6jDFhe12kTsssDzF9Ev0p9Yq/oaiWXS3H9w=",
|
"narHash": "sha256-Tc+4iDfTEyYBWOfH82OGIBvkCHzs0iODXUknzQO2UbQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "a04eea76ecdc42258fc3ed8391ba838145d0b96a",
|
"rev": "f4ede26a75d93a3f73744169368890a3aaa8db38",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -144,41 +383,76 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pre-commit-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713954846,
|
||||||
|
"narHash": "sha256-RWFafuSb5nkWGu8dDbW7gVb8FOQOPqmX/9MlxUUDguw=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "6fb82e44254d6a0ece014ec423cb62d92435336f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"helix": "helix",
|
"agenix": "agenix",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-matlab": "nix-matlab",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nixvim": "nixvim",
|
||||||
"nur": "nur"
|
"nur": "nur"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"systems": {
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"helix",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"helix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701137803,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-0LcPAdql5IhQSUXJx3Zna0dYTgdIoYO7zUrsKgiBd04=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"owner": "oxalica",
|
"owner": "nix-systems",
|
||||||
"repo": "rust-overlay",
|
"repo": "default",
|
||||||
"rev": "9dd940c967502f844eacea52a61e9596268d4f70",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "oxalica",
|
"owner": "nix-systems",
|
||||||
"repo": "rust-overlay",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
|
65
flake.nix
65
flake.nix
|
@ -6,23 +6,29 @@
|
||||||
extra-substituters = [
|
extra-substituters = [
|
||||||
# Nix community's cache server
|
# Nix community's cache server
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://helix.cachix.org"
|
|
||||||
];
|
];
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
helix.url = "github:helix-editor/helix/master";
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-hardware.url = "github:NixOs/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOs/nixos-hardware/master";
|
||||||
nur.url = "github:nix-community/nur";
|
nur.url = "github:nix-community/nur";
|
||||||
|
agenix.url = "github:ryantm/agenix";
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nix-matlab = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "gitlab:doronbehar/nix-matlab";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# pass in the urls defined above
|
# pass in the urls defined above
|
||||||
|
@ -31,52 +37,63 @@
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
helix,
|
|
||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
nur,
|
nur,
|
||||||
|
agenix,
|
||||||
|
nixvim,
|
||||||
|
nix-matlab,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||||
overlays = [
|
overlays = [
|
||||||
nur.overlay
|
nur.overlay
|
||||||
|
nix-matlab.overlay
|
||||||
];
|
];
|
||||||
home-manager-config = toplevel: [
|
home-manager-config = toplevel: [
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
|
home-manager.backupFileExtension = "bk";
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.extraSpecialArgs = {inherit inputs;};
|
home-manager.extraSpecialArgs = {inherit inputs;};
|
||||||
home-manager.users.tacocat = {
|
home-manager.users.tacocat = {
|
||||||
imports = [toplevel];
|
imports = [
|
||||||
_module.args.theme = import ./modules/themes;
|
toplevel
|
||||||
|
agenix.homeManagerModules.default
|
||||||
|
nixvim.homeManagerModules.nixvim
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
common =
|
||||||
|
[
|
||||||
|
./modules/nixos-common.nix
|
||||||
|
{nixpkgs.overlays = overlays;}
|
||||||
|
agenix.nixosModules.default
|
||||||
|
]
|
||||||
|
++ home-manager-config ./users/tacocat/home.nix;
|
||||||
in {
|
in {
|
||||||
# desktop
|
# desktop
|
||||||
nixosConfigurations."BICEP" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."bicep" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
|
||||||
modules = [
|
|
||||||
./hosts/BICEP/configuration.nix
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.users."tacocat" = ./users/tacocat/home.nix;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# laptop
|
|
||||||
nixosConfigurations."JWST" = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = {inherit inputs;};
|
specialArgs = {inherit inputs;};
|
||||||
modules =
|
modules =
|
||||||
[
|
[
|
||||||
./hosts/JWST/configuration.nix
|
./hosts/bicep/configuration.nix
|
||||||
nixos-hardware.nixosModules.dell-xps-15-9520
|
|
||||||
{nixpkgs.overlays = overlays;}
|
|
||||||
]
|
]
|
||||||
++ home-manager-config ./users/tacocat/home.nix;
|
++ common;
|
||||||
|
};
|
||||||
|
|
||||||
|
# laptop
|
||||||
|
nixosConfigurations."jwst" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
specialArgs = {inherit inputs;};
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
./hosts/jwst/configuration.nix
|
||||||
|
nixos-hardware.nixosModules.dell-xps-15-9520
|
||||||
|
]
|
||||||
|
++ common;
|
||||||
};
|
};
|
||||||
|
|
||||||
formatter.${system} = pkgs.alejandra;
|
formatter.${system} = pkgs.alejandra;
|
||||||
|
|
|
@ -1,188 +0,0 @@
|
||||||
{
|
|
||||||
# config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
# Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# ------------ System ------------
|
|
||||||
|
|
||||||
users.users.tacocat = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = ["wheel" "networkmanager" "audio" "video" "bluetooth" "kvm"];
|
|
||||||
home = "/home/tacocat";
|
|
||||||
description = "Aria Nolan";
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.loader = {
|
|
||||||
efi.canTouchEfiVariables = false;
|
|
||||||
grub = {
|
|
||||||
efiSupport = true;
|
|
||||||
configurationLimit = 10;
|
|
||||||
device = "nodev";
|
|
||||||
extraEntries = ''
|
|
||||||
menuentry "Void" {
|
|
||||||
search --set=void --fs-uuid 987518fa-8ea0-49a6-b1e5-1fed4e4ae50f
|
|
||||||
configfile "($void)/boot/grub/grub.cfg"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
console = {
|
|
||||||
font = "Lat2-Terminus16";
|
|
||||||
keyMap = "us";
|
|
||||||
};
|
|
||||||
|
|
||||||
time.timeZone = "America/New_York";
|
|
||||||
|
|
||||||
networking.hostName = "JWST";
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
networking.resolvconf.extraConfig = ''
|
|
||||||
name_servers="1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001"
|
|
||||||
name_server_blacklist="129.21.3.17 129.21.4.18 2620:8d:8000:0:aba:ca:daba:ec"
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Sound
|
|
||||||
sound.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Services/Hardware
|
|
||||||
hardware.opentabletdriver.enable = true;
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
services.blueman.enable = true;
|
|
||||||
services.printing.enable = true;
|
|
||||||
services.geoclue2.enable = true;
|
|
||||||
services.mullvad-vpn.enable = true;
|
|
||||||
services.mullvad-vpn.enableExcludeWrapper = false;
|
|
||||||
services.fwupd.enable = true;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.resolved.enable = true;
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It's perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "23.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
# ------------ Nix ------------
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
experimental-features = ["nix-command" "flakes"];
|
|
||||||
auto-optimise-store = true;
|
|
||||||
trusted-users = ["root" "tacocat"];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
options = "--delete-older-than 1w";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
|
||||||
builtins.elem (lib.getName pkg) [
|
|
||||||
"steam"
|
|
||||||
"steam-original"
|
|
||||||
"steam-run"
|
|
||||||
"nvidia-x11"
|
|
||||||
"nvidia-settings"
|
|
||||||
"discord"
|
|
||||||
"spotify"
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.nix-index.enable = true;
|
|
||||||
programs.command-not-found.enable = false;
|
|
||||||
|
|
||||||
# ------------ Software ------------
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
screen
|
|
||||||
pyocd
|
|
||||||
vim
|
|
||||||
exfat
|
|
||||||
encfs
|
|
||||||
ntfs3g
|
|
||||||
];
|
|
||||||
# remove nano
|
|
||||||
defaultPackages = with pkgs; [
|
|
||||||
perl
|
|
||||||
rsync
|
|
||||||
strace
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.sway = {
|
|
||||||
enable = true;
|
|
||||||
wrapperFeatures.gtk = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
swaylock
|
|
||||||
swayidle
|
|
||||||
brightnessctl
|
|
||||||
wl-mirror
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.waybar.enable = true;
|
|
||||||
programs.steam.enable = true;
|
|
||||||
programs.steam.remotePlay.openFirewall = true;
|
|
||||||
# programs.steam.gamescopeSession = {
|
|
||||||
# enable = true;
|
|
||||||
# args = [
|
|
||||||
# "-f"
|
|
||||||
# "--expose-wayland"
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
programs.gamemode.enable = true;
|
|
||||||
# programs.gamescope.enable = true;
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
wlr.enable = true;
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk.iconCache.enable = true;
|
|
||||||
|
|
||||||
# ------------ Graphics ------------
|
|
||||||
|
|
||||||
hardware.opengl = {
|
|
||||||
enable = true;
|
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
intel-compute-runtime
|
|
||||||
vaapiVdpau
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
powerManagement.enable = false;
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
prime = {
|
|
||||||
offload.enable = true;
|
|
||||||
offload.enableOffloadCmd = true;
|
|
||||||
intelBusId = "PCI:0:2:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
|
||||||
}
|
|
39
hosts/bicep/configuration.nix
Normal file
39
hosts/bicep/configuration.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# ------------ System ------------
|
||||||
|
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
networking.hostName = "bicep";
|
||||||
|
|
||||||
|
services.interception-tools = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.interception-tools-plugins; [
|
||||||
|
dual-function-keys
|
||||||
|
];
|
||||||
|
udevmonConfig = ''
|
||||||
|
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/interception/dual-function-keys/my-mappings.yaml | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
|
||||||
|
DEVICE:
|
||||||
|
NAME: "AT Translated Set 2 keyboard"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
environment.etc."interception/dual-function-keys/my-mappings.yaml".text = ''
|
||||||
|
MAPPINGS:
|
||||||
|
- KEY: KEY_CAPSLOCK
|
||||||
|
TAP: KEY_CAPSLOCK
|
||||||
|
HOLD: KEY_LEFTMETA
|
||||||
|
HOLD_START: BEFORE_RELEASE
|
||||||
|
'';
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It's perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
}
|
49
hosts/bicep/hardware-configuration.nix
Normal file
49
hosts/bicep/hardware-configuration.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid"];
|
||||||
|
boot.initrd.kernelModules = [];
|
||||||
|
boot.kernelModules = ["kvm-amd"];
|
||||||
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/7204d9a8-ccfd-4fa7-8b94-c791ad80a34f";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/AB77-4404";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/data" = {
|
||||||
|
device = "/dev/disk/by-uuid/7408a47c-4fe5-482f-84f0-fa27d86570fc";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{device = "/dev/disk/by-uuid/614e4b01-8946-44fc-a4b3-d53499f29a3e";}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
75
hosts/jwst/configuration.nix
Normal file
75
hosts/jwst/configuration.nix
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
{
|
||||||
|
# config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# ------------ System ------------
|
||||||
|
|
||||||
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
boot.loader.grub.enableCryptodisk = true;
|
||||||
|
|
||||||
|
boot.initrd = {
|
||||||
|
luks.devices."root" = {
|
||||||
|
device = "/dev/disk/by-uuid/25e06c9e-3f53-4abc-a656-d8b388b27f58"; # UUID for /dev/nvme01np2
|
||||||
|
preLVM = true;
|
||||||
|
keyFile = "/keyfile0.bin";
|
||||||
|
allowDiscards = true;
|
||||||
|
};
|
||||||
|
secrets = {
|
||||||
|
# Create /mnt/etc/secrets/initrd directory and copy keys to it
|
||||||
|
"keyfile0.bin" = "/etc/secrets/initrd/keyfile0.bin";
|
||||||
|
"keyfile1.bin" = "/etc/secrets/initrd/keyfile1.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Data mount
|
||||||
|
fileSystems."/data" = {
|
||||||
|
device = "/dev/disk/by-uuid/12c28d9c-f781-499c-bd58-ad2608c9322a"; # UUID for /dev/mapper/crypted-data
|
||||||
|
encrypted = {
|
||||||
|
enable = true;
|
||||||
|
label = "crypted-data";
|
||||||
|
blkDev = "/dev/disk/by-uuid/3f16043b-ab85-42af-a3aa-a687372dae67"; # UUID for /dev/nvme1n1p1
|
||||||
|
keyFile = "/keyfile1.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
networking.hostName = "jwst";
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It's perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.11"; # Did you read the comment?
|
||||||
|
|
||||||
|
# ------------ Graphics ------------
|
||||||
|
|
||||||
|
hardware.opengl.extraPackages = with pkgs; [
|
||||||
|
intel-compute-runtime
|
||||||
|
vaapiVdpau
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
prime = {
|
||||||
|
offload.enable = true;
|
||||||
|
offload.enableOffloadCmd = true;
|
||||||
|
intelBusId = "PCI:0:2:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
}
|
|
@ -13,32 +13,22 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
||||||
boot.initrd.kernelModules = [];
|
boot.initrd.kernelModules = ["dm-snapshot"];
|
||||||
boot.kernelModules = ["kvm-intel"];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
boot.extraModulePackages = [];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/d05d358d-19d4-4629-b0bd-594a754ad76d";
|
device = "/dev/disk/by-uuid/09e1694e-5236-45d3-b454-1dbe9ac473da";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot/efi" = {
|
||||||
device = "/dev/disk/by-uuid/6DD4-5A29";
|
device = "/dev/disk/by-uuid/20C7-3E47";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/void" = {
|
|
||||||
device = "/dev/disk/by-uuid/987518fa-8ea0-49a6-b1e5-1fed4e4ae50f";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/secondary" = {
|
|
||||||
device = "/dev/disk/by-uuid/3b424592-6b20-42e0-9d28-8bf562c15913";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{device = "/dev/disk/by-uuid/802e89ce-52b8-41b9-85ea-b969ab08765f";}
|
{device = "/dev/disk/by-uuid/9d8aab67-42c8-4139-a178-275523260792";}
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
@ -49,6 +39,5 @@
|
||||||
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
70
modules/mullvad.nix
Normal file
70
modules/mullvad.nix
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
age.secrets.mullvad.file = ../secrets/mullvad.age;
|
||||||
|
|
||||||
|
environment.shellAliases = {
|
||||||
|
mullvad-up = "systemctl start wg-quick-wg0.service";
|
||||||
|
mullvad-down = "systemctl stop wg-quick-wg0.service";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.wg-quick.interfaces = let
|
||||||
|
server_ip = "146.70.198.194";
|
||||||
|
in {
|
||||||
|
wg0 = {
|
||||||
|
autostart = false;
|
||||||
|
|
||||||
|
# IP address of this machine in the *tunnel network*
|
||||||
|
address = [
|
||||||
|
"10.70.139.192/32"
|
||||||
|
"fc00:bbbb:bbbb:bb01::7:8bbf/128"
|
||||||
|
];
|
||||||
|
|
||||||
|
# To match firewall allowedUDPPorts (without this wg
|
||||||
|
# uses random port numbers).
|
||||||
|
listenPort = 51820;
|
||||||
|
|
||||||
|
# Path to the private key file.
|
||||||
|
privateKeyFile = config.age.secrets.mullvad.path;
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
publicKey = "57Zu2qPzRScZWsoC2NhXgz0FiC0HiKkbEa559sbxB3k=";
|
||||||
|
allowedIPs = ["0.0.0.0/0"];
|
||||||
|
endpoint = "${server_ip}:51820";
|
||||||
|
persistentKeepalive = 25;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
postUp = ''
|
||||||
|
wg set wg0 fwmark 51820
|
||||||
|
|
||||||
|
${pkgs.iptables}/bin/iptables -I OUTPUT \
|
||||||
|
! -o wg0 \
|
||||||
|
-m mark ! --mark $(wg show wg0 fwmark) \
|
||||||
|
-m addrtype ! --dst-type LOCAL \
|
||||||
|
-j REJECT
|
||||||
|
${pkgs.iptables}/bin/ip6tables -I OUTPUT \
|
||||||
|
! -o wg0 \
|
||||||
|
-m mark ! --mark $(wg show wg0 fwmark) \
|
||||||
|
-m addrtype ! --dst-type LOCAL \
|
||||||
|
-j REJECT
|
||||||
|
'';
|
||||||
|
|
||||||
|
preDown = ''
|
||||||
|
${pkgs.iptables}/bin/iptables -D OUTPUT \
|
||||||
|
! -o wg0 \
|
||||||
|
-m mark ! --mark $(wg show wg0 fwmark) \
|
||||||
|
-m addrtype ! --dst-type LOCAL \
|
||||||
|
-j REJECT
|
||||||
|
${pkgs.iptables}/bin/ip6tables -D OUTPUT \
|
||||||
|
! -o wg0 -m mark \
|
||||||
|
! --mark $(wg show wg0 fwmark) \
|
||||||
|
-m addrtype ! --dst-type LOCAL \
|
||||||
|
-j REJECT
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
229
modules/nixos-common.nix
Normal file
229
modules/nixos-common.nix
Normal file
|
@ -0,0 +1,229 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# ------------ System ------------
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./mullvad.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
users.users.tacocat = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = ["wheel" "networkmanager" "audio" "video" "bluetooth" "kvm" "docker" "libvirtd"];
|
||||||
|
home = "/home/tacocat";
|
||||||
|
description = "Aria Nolan";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader = {
|
||||||
|
efi.canTouchEfiVariables = false;
|
||||||
|
grub = {
|
||||||
|
efiSupport = true;
|
||||||
|
configurationLimit = 10;
|
||||||
|
device = "nodev";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "us";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
dns = "none";
|
||||||
|
};
|
||||||
|
networking.resolvconf.extraConfig = ''
|
||||||
|
name_servers="1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001"
|
||||||
|
name_server_blacklist="129.21.3.17 129.21.4.18 2620:8d:8000:0:aba:ca:daba:ec"
|
||||||
|
'';
|
||||||
|
networking.firewall.allowedTCPPorts = [2234];
|
||||||
|
|
||||||
|
# Sound
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Services/Hardware
|
||||||
|
hardware.opentabletdriver.enable = true;
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
services.blueman.enable = true;
|
||||||
|
services.printing.enable = true;
|
||||||
|
services.geoclue2.enable = true;
|
||||||
|
services.fwupd.enable = true;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
# services.resolved.enable = true;
|
||||||
|
services.udisks2.enable = true;
|
||||||
|
services.pcscd.enable = true;
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
services.mpd = {
|
||||||
|
enable = true;
|
||||||
|
user = "tacocat";
|
||||||
|
musicDirectory = "/data/music";
|
||||||
|
startWhenNeeded = true;
|
||||||
|
extraConfig = ''
|
||||||
|
audio_output {
|
||||||
|
type "pipewire"
|
||||||
|
name "Pipewire sound server"
|
||||||
|
}
|
||||||
|
|
||||||
|
replaygain "track"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
systemd.services.mpd.environment = {
|
||||||
|
# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/609
|
||||||
|
XDG_RUNTIME_DIR = "/run/user/1000";
|
||||||
|
# User-id must match above user. MPD will look inside this directory for
|
||||||
|
# the PipeWire socket.
|
||||||
|
};
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
# 0d28:0204 DAPLink
|
||||||
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", MODE:="666"
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.syncthing = {
|
||||||
|
enable = true;
|
||||||
|
user = "tacocat";
|
||||||
|
dataDir = "/home/tacocat";
|
||||||
|
configDir = "/home/tacocat/.config/syncthing";
|
||||||
|
settings = {
|
||||||
|
devices = {
|
||||||
|
bicep = {
|
||||||
|
id = "3EPQMGY-4ZY2MCG-A43QZ5E-IKZ3CL4-AD25LCZ-YNMZTVS-OCSMU54-ZTGFYAR";
|
||||||
|
autoAcceptFolders = true;
|
||||||
|
};
|
||||||
|
jwst = {
|
||||||
|
id = "7LY5XXK-4F7MKFG-6ZCP5QH-24WT3LX-NODOWUP-JXRFAKP-MARTKOA-QJRW3QM";
|
||||||
|
autoAcceptFolders = true;
|
||||||
|
};
|
||||||
|
echo = {
|
||||||
|
id = "LW6Z6CI-PDKQUZG-725FF6F-GUZ6GH2-SFHVXVZ-37YJUC4-7ZW4EMP-TC4REAZ";
|
||||||
|
autoAcceptFolders = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
folders = {
|
||||||
|
"/data/homework" = {
|
||||||
|
id = "homework";
|
||||||
|
devices = ["bicep" "jwst" "echo"];
|
||||||
|
};
|
||||||
|
"/data/books" = {
|
||||||
|
id = "books";
|
||||||
|
devices = ["bicep" "jwst" "echo"];
|
||||||
|
};
|
||||||
|
"/data/music" = {
|
||||||
|
id = "music";
|
||||||
|
devices = ["bicep" "jwst" "echo"];
|
||||||
|
};
|
||||||
|
"/var/lib/mpd" = {
|
||||||
|
id = "mpd state";
|
||||||
|
devices = ["bicep" "jwst" "echo"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# ------------ Nix ------------
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
experimental-features = ["nix-command" "flakes"];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
trusted-users = ["root" "tacocat"];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 1w";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nix-index.enable = true;
|
||||||
|
programs.command-not-found.enable = false;
|
||||||
|
|
||||||
|
# ------------ Software ------------
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
screen
|
||||||
|
distrobox
|
||||||
|
udiskie
|
||||||
|
pyocd
|
||||||
|
vim
|
||||||
|
exfat
|
||||||
|
encfs
|
||||||
|
ntfs3g
|
||||||
|
gnutls
|
||||||
|
inputs.agenix.packages.${system}.default
|
||||||
|
];
|
||||||
|
# remove nano
|
||||||
|
defaultPackages = with pkgs; [
|
||||||
|
perl
|
||||||
|
rsync
|
||||||
|
strace
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.sway = {
|
||||||
|
enable = true;
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
swaylock
|
||||||
|
swayidle
|
||||||
|
brightnessctl
|
||||||
|
wl-mirror
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar.enable = true;
|
||||||
|
programs.steam.enable = true;
|
||||||
|
programs.steam.remotePlay.openFirewall = true;
|
||||||
|
# programs.steam.gamescopeSession = {
|
||||||
|
# enable = true;
|
||||||
|
# args = [
|
||||||
|
# "-f"
|
||||||
|
# "--expose-wayland"
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
programs.gamemode.enable = true;
|
||||||
|
# programs.gamescope.enable = true;
|
||||||
|
|
||||||
|
programs.ssh.startAgent = true;
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
# pinentryFlavor = "curses";
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk.iconCache.enable = true;
|
||||||
|
|
||||||
|
# ------------ Graphics ------------
|
||||||
|
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
let
|
|
||||||
tokyonight = import ./tokyonight.nix;
|
|
||||||
in
|
|
||||||
tokyonight
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
base00 = "#1a1b26";
|
|
||||||
base01 = "#a9b1d6";
|
|
||||||
base02 = "#24283b";
|
|
||||||
base03 = "#f7768e";
|
|
||||||
base04 = "#9ece6a";
|
|
||||||
base05 = "#e0af68";
|
|
||||||
base06 = "#7aa2f7";
|
|
||||||
base07 = "#bb9af7";
|
|
||||||
base08 = "#7dcfff";
|
|
||||||
base09 = "#414868";
|
|
||||||
base0A = "#ff9e64";
|
|
||||||
base0B = "#9ece6a";
|
|
||||||
base0C = "#e0af68";
|
|
||||||
base0D = "#7aa2f7";
|
|
||||||
base0E = "#bb9af7";
|
|
||||||
base0F = "#7dcfff";
|
|
||||||
}
|
|
9
secrets/mullvad.age
Normal file
9
secrets/mullvad.age
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 ozffKQ CkcpkTq9vVNTE+jghNH8tu349y1TtgDN6NwWU0QbER0
|
||||||
|
6wRQIui7/mWJwzR6SfHYowaS5/Z7Me1hN5BEpW11tHA
|
||||||
|
-> ssh-ed25519 95Hm4w gR3lnTJsYQvgyP5WcAbVcG6iBHgmIkKOjhk8Y0UK/xY
|
||||||
|
4oJCwVLhUVz9mB1Qq4XBswvcjNdx/yLs09BVRGAok2Q
|
||||||
|
-> ssh-ed25519 +vYWqQ xDtHwWOQBpzqS3+7Hi/wPwxzEgHyb/qbl+h/ZOkOdA0
|
||||||
|
7zibbuUxXwFQd6Z7tRDIUi7eaIio8pDitElyPWsfPOc
|
||||||
|
--- Xu0Nb3MrNnmRkNfd605ev8LQuV5vTMlVM7TP+Z6yJuE
|
||||||
|
!»^·¸¢`[7SÐ3°wÇF>g‰ºWl#<23>‚ r¶™Í2ÂÊ!˜›³›í“>ÏDT¡‚BÖëìŽxI—ÕËûÒ³&‚¦MÚ
|
13
secrets/secrets.nix
Normal file
13
secrets/secrets.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
let
|
||||||
|
aria = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFy/qHGXBgAYhhk2hy0HIEvZxgmLF6bN3aQ7rZTf4Lxf";
|
||||||
|
users = [aria];
|
||||||
|
|
||||||
|
bicep = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIrnQd4xYIg24VjBBEikC+dt1pNmo9pcD69TMCzRYiZn";
|
||||||
|
jwst = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIME17TyJvo5MBNRVFTuXW23arQnI9f3OnAEv/3M6RM1g";
|
||||||
|
systems = [bicep jwst];
|
||||||
|
in {
|
||||||
|
"taskd-ca-cert.age".publicKeys = users ++ systems;
|
||||||
|
"taskd-aria-cert.age".publicKeys = users ++ systems;
|
||||||
|
"taskd-aria-key.age".publicKeys = users ++ systems;
|
||||||
|
"mullvad.age".publicKeys = users ++ systems;
|
||||||
|
}
|
BIN
secrets/taskd-aria-cert.age
Normal file
BIN
secrets/taskd-aria-cert.age
Normal file
Binary file not shown.
BIN
secrets/taskd-aria-key.age
Normal file
BIN
secrets/taskd-aria-key.age
Normal file
Binary file not shown.
BIN
secrets/taskd-ca-cert.age
Normal file
BIN
secrets/taskd-ca-cert.age
Normal file
Binary file not shown.
1
users/tacocat/.config/emacs/early-init.el
Normal file
1
users/tacocat/.config/emacs/early-init.el
Normal file
|
@ -0,0 +1 @@
|
||||||
|
(setq package-enable-at-startup nil)
|
118
users/tacocat/.config/emacs/init.el
Normal file
118
users/tacocat/.config/emacs/init.el
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
;; Initialize straight package manager
|
||||||
|
(defvar bootstrap-version)
|
||||||
|
(let ((bootstrap-file
|
||||||
|
(expand-file-name
|
||||||
|
"straight/repos/straight.el/bootstrap.el"
|
||||||
|
(or (bound-and-true-p straight-base-dir)
|
||||||
|
user-emacs-directory)))
|
||||||
|
(bootstrap-version 7))
|
||||||
|
(unless (file-exists-p bootstrap-file)
|
||||||
|
(with-current-buffer
|
||||||
|
(url-retrieve-synchronously
|
||||||
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
||||||
|
'silent 'inhibit-cookies)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(eval-print-last-sexp)))
|
||||||
|
(load bootstrap-file nil 'nomessage))
|
||||||
|
|
||||||
|
(straight-use-package 'use-package)
|
||||||
|
(setq straight-use-package-by-default t)
|
||||||
|
|
||||||
|
(use-package material-theme
|
||||||
|
:config
|
||||||
|
(load-theme 'material t))
|
||||||
|
|
||||||
|
(use-package nerd-icons)
|
||||||
|
|
||||||
|
(use-package dashboard
|
||||||
|
:config
|
||||||
|
(setq dashboard-center-content t
|
||||||
|
dashboard-display-icons-p t
|
||||||
|
dashboard-icon-type 'nerd-icons
|
||||||
|
dashboard-set-file-icons t)
|
||||||
|
(dashboard-setup-startup-hook))
|
||||||
|
|
||||||
|
(use-package nerd-icons-dired
|
||||||
|
:hook
|
||||||
|
(dired-mode . nerd-icons-dired-mode))
|
||||||
|
|
||||||
|
(use-package nix-mode
|
||||||
|
:mode "\\.nix\\'")
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:commands (magit-status magit-get-current-branch))
|
||||||
|
|
||||||
|
(use-package diff-hl)
|
||||||
|
(global-diff-hl-mode)
|
||||||
|
(diff-hl-flydiff-mode)
|
||||||
|
|
||||||
|
(use-package pdf-tools
|
||||||
|
:magic ("%PDF" . pdf-view-mode)
|
||||||
|
:config
|
||||||
|
(pdf-tools-install)
|
||||||
|
(setq-default pdf-view-display-size 'fit-page))
|
||||||
|
|
||||||
|
(use-package markdown-mode
|
||||||
|
:mode ("README\\.md\\'" . gfm-mode)
|
||||||
|
:init (setq markdown-command "multimarkdown"))
|
||||||
|
|
||||||
|
;; cant get auctex to work
|
||||||
|
;; (use-package tex
|
||||||
|
;; :defer t
|
||||||
|
;; :straight auctex
|
||||||
|
;; :config
|
||||||
|
;; (setq TeX-auto-save t))
|
||||||
|
|
||||||
|
;; Tell Emacs to prefer the treesitter mode
|
||||||
|
;; You'll want to run the command `M-x treesit-install-language-grammar' before editing.
|
||||||
|
(setq major-mode-remap-alist
|
||||||
|
'((bash-mode . bash-ts-mode)
|
||||||
|
(c-mode . c-ts-mode)
|
||||||
|
(c++-mode . c++-ts-mode)
|
||||||
|
(java-mode . java-ts-mode)
|
||||||
|
(js-mode . js-ts-mode)
|
||||||
|
(typescript-mode . typescript-ts-mode)
|
||||||
|
(rust-mode . rust-ts-mode)
|
||||||
|
(go-mode . go-ts-mode)
|
||||||
|
(json-mode . json-ts-mode)
|
||||||
|
(css-mode . css-ts-mode)
|
||||||
|
(python-mode . python-ts-mode)))
|
||||||
|
|
||||||
|
(setq treesit-language-source-alist
|
||||||
|
'((bash "https://github.com/tree-sitter/tree-sitter-bash")
|
||||||
|
(css "https://github.com/tree-sitter/tree-sitter-css")
|
||||||
|
(go "https://github.com/tree-sitter/tree-sitter-go")
|
||||||
|
(rust "https://github.com/tree-sitter/tree-sitter-rust")
|
||||||
|
(html "https://github.com/tree-sitter/tree-sitter-html")
|
||||||
|
(ruby "https://github.com/tree-sitter/tree-sitter-ruby")
|
||||||
|
(javascript "https://github.com/tree-sitter/tree-sitter-javascript" "master" "src")
|
||||||
|
(json "https://github.com/tree-sitter/tree-sitter-json")
|
||||||
|
(python "https://github.com/tree-sitter/tree-sitter-python")
|
||||||
|
(typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")
|
||||||
|
(java "https://github.com/tree-sitter/tree-sitter-java")
|
||||||
|
(scala "https://github.com/tree-sitter/tree-sitter-scala")
|
||||||
|
(c "https://github.com/tree-sitter/tree-sitter-c")
|
||||||
|
(cpp "https://github.com/tree-sitter/tree-sitter-cpp")
|
||||||
|
(elisp "https://github.com/Wilfred/tree-sitter-elisp")))
|
||||||
|
|
||||||
|
(setq-default fill-column 80)
|
||||||
|
(setq-default tab-width 2)
|
||||||
|
(setq ring-bell-function 'ignore)
|
||||||
|
|
||||||
|
(setq display-line-numbers-type 'relative)
|
||||||
|
(blink-cursor-mode 0)
|
||||||
|
(global-hl-line-mode 1)
|
||||||
|
|
||||||
|
;; Turn off some unneeded UI elements
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(scroll-bar-mode -1)
|
||||||
|
|
||||||
|
(add-hook 'text-mode-hook 'auto-fill-mode)
|
||||||
|
(add-hook 'text-mode-hook 'flyspell-mode)
|
||||||
|
(add-hook 'text-mode-hook 'display-line-numbers-mode)
|
||||||
|
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
||||||
|
|
||||||
|
(add-to-list 'default-frame-alist
|
||||||
|
'(font . "Mononoki-14"))
|
||||||
|
|
39
users/tacocat/emacs/default.el
Normal file
39
users/tacocat/emacs/default.el
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
(("apheleia" . "8f512dba3ee2eabae0dbfd8289b89d54c132cb87")
|
||||||
|
("auctex" . "53b82804c9dd9dbea306876f3be84ebacbeb7e74")
|
||||||
|
("blackout" . "7707211370f03f03a2f74df15f42ac24a1e99300")
|
||||||
|
("company-mode" . "f1877a370ca76d5cd6614c527635b2d6983188af")
|
||||||
|
("compat" . "2748abd7c7135fe5d873020061b2d58a66b8d505")
|
||||||
|
("ctrlf" . "9b4cf6c79a961f2bfbb949805aa300fcf1eb40a6")
|
||||||
|
("dash.el" . "b6eef1a24dfbe57ba72d5eb1613fc05ff92e8e92")
|
||||||
|
("diff-hl" . "09a0f8fcc7e6ce3f49dca64cdfab898d6762f2a4")
|
||||||
|
("el-get" . "a5ba5852648a90ee0cde9fb5d72e69497d260eec")
|
||||||
|
("emacs-dashboard" . "263f9f1760b8303955c03ccc3c509692075af019")
|
||||||
|
("emacs-which-key" . "1ab1d0cc88843c9a614ed3226c5a1070e32e4823")
|
||||||
|
("emacsmirror-mirror" . "95617befb9ac26869e2ab2101e4a76fa5d40fdb7")
|
||||||
|
("f.el" . "d2019d4f9625bcc44349c69fe46d6645fd9ff4ff")
|
||||||
|
("gnu-elpa-mirror" . "a4f2d4b0e1d3dd8bde2d768458a402d63ad06722")
|
||||||
|
("ht.el" . "c4c1be487d6ecb353d07881526db05d7fc90ea87")
|
||||||
|
("hydra" . "9e9e00cb240ea1903ffd36a54956b3902c379d29")
|
||||||
|
("lsp-mode" . "c9db552dcef80c481ecca6bf53c86a12f2a9cd55")
|
||||||
|
("lsp-pyright" . "c745228f39fdb35372b29b909f25fa6c98dc7c88")
|
||||||
|
("magit" . "49ba535f526266b69fcaf7442acfa59ad8473caf")
|
||||||
|
("markdown-mode" . "193b61605f44c85d261b8bd82e0a213fd8f1ff32")
|
||||||
|
("melpa" . "382cb915901971ff5e9b32156cbeb5639c3bf20f")
|
||||||
|
("monokai-emacs" . "df6c23d14e52f9d7f5bc2265facfbedfb07a444e")
|
||||||
|
("nerd-icons-dired" . "c1c73488630cc1d19ce1677359f614122ae4c1b9")
|
||||||
|
("nerd-icons.el" . "fb395120e9de33b276d16caaccaefd98d4340b92")
|
||||||
|
("nix-mode" . "719feb7868fb567ecfe5578f6119892c771ac5e5")
|
||||||
|
("nongnu-elpa" . "e5adab3409abfa69ecbaeb07bb88d48f78e03d3f")
|
||||||
|
("org" . "3303a54d74805cdd2b6eda37285f259949f7ba2e")
|
||||||
|
("org-contrib" . "c6aef31ccfc7c4418c3b51e98f7c3bd8e255f5e6")
|
||||||
|
("prescient.el" . "c0eca3328313f1e93d24e686307516f43a484ba2")
|
||||||
|
("projectile" . "271007c6611fcb08ddd326d7de9727c2ad5ef265")
|
||||||
|
("s.el" . "08661efb075d1c6b4fa812184c1e5e90c08795a9")
|
||||||
|
("seq" . "4355cde01767911660f761cf874edb412d06bd7a")
|
||||||
|
("spinner" . "34905eae12a236753fa88abc831eff1e41e8576e")
|
||||||
|
("straight.el" . "b3760f5829dba37e855add7323304561eb57a3d4")
|
||||||
|
("transient" . "2dd0102ec3df901d421fc338e5c768467cc54ecf")
|
||||||
|
("use-package" . "0ad5d9d5d8a61517a207ab04bf69e71c081149eb")
|
||||||
|
("vertico" . "e077e957672ae8be35fbd95a7724fbdaa288236c")
|
||||||
|
("with-editor" . "cfcbc2731e402b9169c0dc03e89b5b57aa988502"))
|
||||||
|
:gamma
|
1
users/tacocat/emacs/early-init.el
Normal file
1
users/tacocat/emacs/early-init.el
Normal file
|
@ -0,0 +1 @@
|
||||||
|
(setq package-enable-at-startup nil)
|
437
users/tacocat/emacs/init.el
Normal file
437
users/tacocat/emacs/init.el
Normal file
|
@ -0,0 +1,437 @@
|
||||||
|
;; Initialize straight package manager
|
||||||
|
(defvar bootstrap-version)
|
||||||
|
(let ((bootstrap-file
|
||||||
|
(expand-file-name
|
||||||
|
"straight/repos/straight.el/bootstrap.el"
|
||||||
|
(or (bound-and-true-p straight-base-dir)
|
||||||
|
user-emacs-directory)))
|
||||||
|
(bootstrap-version 7))
|
||||||
|
(unless (file-exists-p bootstrap-file)
|
||||||
|
(with-current-buffer
|
||||||
|
(url-retrieve-synchronously
|
||||||
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
||||||
|
'silent 'inhibit-cookies)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(eval-print-last-sexp)))
|
||||||
|
(load bootstrap-file nil 'nomessage))
|
||||||
|
|
||||||
|
(straight-use-package 'use-package)
|
||||||
|
(setq straight-use-package-by-default t)
|
||||||
|
|
||||||
|
;; Disable frequency of GC. This helps performance both during init
|
||||||
|
;; and after init. Value is in bytes so this is 100MB, as suggested in
|
||||||
|
;; <https://github.com/emacs-lsp/lsp-mode#performance>.
|
||||||
|
(setq gc-cons-threshold (* 100 1024 1024))
|
||||||
|
|
||||||
|
;; If you have something on the system clipboard, and then kill
|
||||||
|
;; something in Emacs, then by default whatever you had on the system
|
||||||
|
;; clipboard is gone and there is no way to get it back. Setting the
|
||||||
|
;; following option makes it so that when you kill something in Emacs,
|
||||||
|
;; whatever was previously on the system clipboard is pushed into the
|
||||||
|
;; kill ring. This way, you can paste it with `yank-pop'.
|
||||||
|
(setq save-interprogram-paste-before-kill t)
|
||||||
|
|
||||||
|
(straight-register-package 'org)
|
||||||
|
(straight-register-package 'org-contrib)
|
||||||
|
|
||||||
|
(use-package monokai-theme
|
||||||
|
:config
|
||||||
|
(load-theme 'monokai t))
|
||||||
|
|
||||||
|
(use-package blackout
|
||||||
|
:demand t)
|
||||||
|
|
||||||
|
(use-package nerd-icons)
|
||||||
|
|
||||||
|
(use-package projectile
|
||||||
|
:defer 1
|
||||||
|
:bind-keymap* (("C-c p" . projectile-command-map))
|
||||||
|
:config
|
||||||
|
;; Use Vertico (via `completing-read') for Projectile instead of
|
||||||
|
;; IDO.
|
||||||
|
(setq projectile-completion-system 'default)
|
||||||
|
|
||||||
|
;; When switching projects, give the option to choose what to do.
|
||||||
|
;; This is a way better interface than having to remember ahead of
|
||||||
|
;; time to use a prefix argument on `projectile-switch-project'
|
||||||
|
;; (because, and please be honest here, when was the last time you
|
||||||
|
;; actually remembered to do that?).
|
||||||
|
(setq projectile-switch-project-action 'projectile-commander)
|
||||||
|
|
||||||
|
(def-projectile-commander-method ?\C-m
|
||||||
|
"Find file in project."
|
||||||
|
(call-interactively #'find-file))
|
||||||
|
|
||||||
|
(projectile-mode +1)
|
||||||
|
:blackout t)
|
||||||
|
|
||||||
|
(use-package dashboard
|
||||||
|
:config
|
||||||
|
(setq dashboard-center-content t
|
||||||
|
dashboard-display-icons-p t
|
||||||
|
dashboard-icon-type 'nerd-icons
|
||||||
|
dashboard-set-file-icons t
|
||||||
|
dashboard-projects-backend 'projectile)
|
||||||
|
(setq dashboard-items '((recents . 5)
|
||||||
|
(bookmarks . 5)
|
||||||
|
(projects . 5)
|
||||||
|
(agenda . 5)
|
||||||
|
(registers . 5)))
|
||||||
|
(dashboard-setup-startup-hook))
|
||||||
|
|
||||||
|
(use-package ctrlf
|
||||||
|
:init
|
||||||
|
(ctrlf-mode +1))
|
||||||
|
|
||||||
|
(use-package which-key
|
||||||
|
:demand t
|
||||||
|
:config
|
||||||
|
(which-key-mode +1)
|
||||||
|
:blackout t)
|
||||||
|
|
||||||
|
(use-package nerd-icons-dired
|
||||||
|
:hook
|
||||||
|
(dired-mode . nerd-icons-dired-mode))
|
||||||
|
|
||||||
|
(use-package nix-mode
|
||||||
|
:mode "\\.nix\\'")
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:commands (magit-status magit-get-current-branch))
|
||||||
|
|
||||||
|
(use-package diff-hl)
|
||||||
|
(global-diff-hl-mode)
|
||||||
|
(diff-hl-flydiff-mode)
|
||||||
|
|
||||||
|
(use-package markdown-mode
|
||||||
|
:mode ("README\\.md\\'" . gfm-mode)
|
||||||
|
:init (setq markdown-command "multimarkdown"))
|
||||||
|
|
||||||
|
|
||||||
|
;; using an older version of auctex since newer versions changed how config
|
||||||
|
;; works and I can't figure it out
|
||||||
|
(use-package tex-site
|
||||||
|
:straight auctex)
|
||||||
|
|
||||||
|
(use-package tex
|
||||||
|
:straight nil
|
||||||
|
:config
|
||||||
|
(setq TeX-auto-save t)
|
||||||
|
(setq TeX-parse-self t)
|
||||||
|
(setq TeX-save-query nil)
|
||||||
|
(setq TeX-PDF-mode t)
|
||||||
|
(setq TeX-source-correlate-mode t)
|
||||||
|
(setq TeX-source-correlate-start-server t)
|
||||||
|
(add-to-list 'TeX-expand-list'("%sn" (lambda () server-name)))
|
||||||
|
(add-to-list 'TeX-view-program-list
|
||||||
|
'("Zathura"
|
||||||
|
("zathura %o"
|
||||||
|
(mode-io-correlate " --synctex-forward %n:0:\"%b\" -x \"emacsclient --socket-name=%sn +%{line} %{input}\""))
|
||||||
|
"zathura"))
|
||||||
|
(setcar (cdr (assoc 'output-pdf TeX-view-program-selection)) "Zathura"))
|
||||||
|
|
||||||
|
(use-package latex
|
||||||
|
:straight nil
|
||||||
|
:mode
|
||||||
|
("\\.tex\\'" . latex-mode)
|
||||||
|
:hook
|
||||||
|
(LaTeX-mode . LaTeX-math-mode)
|
||||||
|
(LaTeX-mode . TeX-source-correlate-mode))
|
||||||
|
|
||||||
|
(use-package font-latex
|
||||||
|
:straight nil
|
||||||
|
:init
|
||||||
|
(setq font-latex-fontify-script nil)
|
||||||
|
(setq font-latex-fontify-sectioning 'color))
|
||||||
|
|
||||||
|
(use-package org
|
||||||
|
:bind*
|
||||||
|
("C-c l" . #'org-store-link)
|
||||||
|
("C-c a" . #'org-agenda)
|
||||||
|
("C-c c" . #'org-capture))
|
||||||
|
|
||||||
|
(use-package vertico
|
||||||
|
:demand t
|
||||||
|
:config
|
||||||
|
(vertico-mode +1)
|
||||||
|
;; Ignore case... otherwise the behavior is really weird and
|
||||||
|
;; confusing.
|
||||||
|
(setq read-file-name-completion-ignore-case t
|
||||||
|
read-buffer-completion-ignore-case t
|
||||||
|
completion-ignore-case t)
|
||||||
|
;; Don't re-sort buffer candidates. The recency order is correct.
|
||||||
|
(vertico-multiform-mode +1)
|
||||||
|
(setq vertico-multiform-categories
|
||||||
|
'((buffer (vertico-sort-function . copy-sequence)))))
|
||||||
|
|
||||||
|
(use-package prescient
|
||||||
|
:config
|
||||||
|
;; Remember usage statistics across Emacs sessions.
|
||||||
|
(prescient-persist-mode +1)
|
||||||
|
|
||||||
|
;; The default settings seem a little forgetful to me. Let's try
|
||||||
|
;; this out.
|
||||||
|
(setq prescient-history-length 1000)
|
||||||
|
|
||||||
|
;; Common sense.
|
||||||
|
(setq prescient-sort-full-matches-first t))
|
||||||
|
|
||||||
|
(use-package vertico-prescient
|
||||||
|
:demand t
|
||||||
|
:after vertico
|
||||||
|
:config
|
||||||
|
(vertico-prescient-mode +1))
|
||||||
|
|
||||||
|
(use-package apheleia
|
||||||
|
:init
|
||||||
|
(apheleia-global-mode +1))
|
||||||
|
|
||||||
|
(use-package company
|
||||||
|
:defer 0.5
|
||||||
|
:bind (:filter company-mode
|
||||||
|
|
||||||
|
;; Remap the standard Emacs keybindings for invoking
|
||||||
|
;; completion to instead use Company. You might think this
|
||||||
|
;; could be put in the `:bind*' declaration below, but it
|
||||||
|
;; seems that `bind-key*' does not work with remappings.
|
||||||
|
([remap completion-at-point] . #'company-manual-begin)
|
||||||
|
([remap complete-symbol] . #'company-manual-begin)
|
||||||
|
|
||||||
|
;; The following are keybindings that take effect whenever
|
||||||
|
;; the completions menu is visible, even if the user has not
|
||||||
|
;; explicitly interacted with Company.
|
||||||
|
|
||||||
|
:map company-active-map
|
||||||
|
|
||||||
|
;; Make TAB always complete the current selection, instead of
|
||||||
|
;; only completing a common prefix.
|
||||||
|
("<tab>" . #'company-complete-selection)
|
||||||
|
("TAB" . #'company-complete-selection)
|
||||||
|
|
||||||
|
;; When was the last time you used the C-s binding for
|
||||||
|
;; searching candidates? It conflicts with buffer search,
|
||||||
|
;; anyway. Same for the scroll commands.
|
||||||
|
("C-s" . nil)
|
||||||
|
([remap scroll-down-command] . nil)
|
||||||
|
([remap scroll-up-command] . nil)
|
||||||
|
|
||||||
|
;; The following are keybindings that only take effect if the
|
||||||
|
;; user has explicitly interacted with Company. Note that
|
||||||
|
;; `:map' from above is "sticky", and applies also below: see
|
||||||
|
;; https://github.com/jwiegley/use-package/issues/334#issuecomment-349473819.
|
||||||
|
|
||||||
|
:filter (company-explicit-action-p)
|
||||||
|
|
||||||
|
;; Make RET trigger a completion if and only if the user has
|
||||||
|
;; explicitly interacted with Company, instead of always
|
||||||
|
;; doing so.
|
||||||
|
("<return>" . #'company-complete-selection)
|
||||||
|
("RET" . #'company-complete-selection)
|
||||||
|
|
||||||
|
;; We then make <up> and <down> abort the completions menu
|
||||||
|
;; unless the user has interacted explicitly. Note that we
|
||||||
|
;; use `company-select-previous' instead of
|
||||||
|
;; `company-select-previous-or-abort'. I think the former
|
||||||
|
;; makes more sense since the general idea of this `company'
|
||||||
|
;; configuration is to decide whether or not to steal
|
||||||
|
;; keypresses based on whether the user has explicitly
|
||||||
|
;; interacted with `company', not based on the number of
|
||||||
|
;; candidates.
|
||||||
|
;;
|
||||||
|
;; Note that M-p and M-n work regardless of whether explicit
|
||||||
|
;; interaction has happened yet, and note also that M-TAB
|
||||||
|
;; when the completions menu is open counts as an
|
||||||
|
;; interaction.
|
||||||
|
("<up>" . #'company-select-previous)
|
||||||
|
("<down>" . #'company-select-next))
|
||||||
|
|
||||||
|
:bind* (:filter company-mode
|
||||||
|
|
||||||
|
;; The default keybinding for `completion-at-point' and
|
||||||
|
;; `complete-symbol' is M-TAB or equivalently C-M-i. We
|
||||||
|
;; already remapped those bindings to `company-manual-begin'
|
||||||
|
;; above. Here we make sure that they definitely invoke
|
||||||
|
;; `company-manual-begin' even if a minor mode binds M-TAB
|
||||||
|
;; directly.
|
||||||
|
("M-TAB" . #'company-manual-begin))
|
||||||
|
|
||||||
|
:config
|
||||||
|
|
||||||
|
;; Make completions display twice as soon.
|
||||||
|
(setq company-idle-delay 0.15)
|
||||||
|
|
||||||
|
;; Make completions display when you have only typed one character,
|
||||||
|
;; instead of three.
|
||||||
|
(setq company-minimum-prefix-length 1)
|
||||||
|
|
||||||
|
;; Always display the entire suggestion list onscreen, placing it
|
||||||
|
;; above the cursor if necessary.
|
||||||
|
(setq company-tooltip-minimum company-tooltip-limit)
|
||||||
|
|
||||||
|
;; Always display suggestions in the tooltip, even if there is only
|
||||||
|
;; one. Also, don't display metadata in the echo area. (This
|
||||||
|
;; conflicts with ElDoc.)
|
||||||
|
(setq company-frontends '(company-pseudo-tooltip-frontend))
|
||||||
|
|
||||||
|
;; Show quick-reference numbers in the tooltip. (Select a completion
|
||||||
|
;; with M-1 through M-0.)
|
||||||
|
(setq company-show-quick-access t)
|
||||||
|
|
||||||
|
;; Prevent non-matching input (which will dismiss the completions
|
||||||
|
;; menu), but only if the user interacts explicitly with Company.
|
||||||
|
(setq company-require-match #'company-explicit-action-p)
|
||||||
|
|
||||||
|
;; Only search the current buffer to get suggestions for
|
||||||
|
;; `company-dabbrev' (a backend that creates suggestions from text
|
||||||
|
;; found in your buffers). This prevents Company from causing lag
|
||||||
|
;; once you have a lot of buffers open.
|
||||||
|
(setq company-dabbrev-other-buffers nil)
|
||||||
|
|
||||||
|
;; Make the `company-dabbrev' backend fully case-sensitive, to
|
||||||
|
;; improve the UX when working with domain-specific words that have
|
||||||
|
;; particular casing.
|
||||||
|
(setq company-dabbrev-ignore-case nil)
|
||||||
|
(setq company-dabbrev-downcase nil)
|
||||||
|
|
||||||
|
;; When candidates in the autocompletion tooltip have additional
|
||||||
|
;; metadata, like a type signature, align that information to the
|
||||||
|
;; right-hand side. This usually makes it look neater.
|
||||||
|
(setq company-tooltip-align-annotations t)
|
||||||
|
|
||||||
|
(global-company-mode +1)
|
||||||
|
|
||||||
|
:blackout t)
|
||||||
|
|
||||||
|
(use-package company-prescient
|
||||||
|
:demand t
|
||||||
|
:after company
|
||||||
|
:config
|
||||||
|
(company-prescient-mode +1))
|
||||||
|
|
||||||
|
|
||||||
|
(use-package lsp-mode
|
||||||
|
:init
|
||||||
|
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||||
|
(setq lsp-keymap-prefix "C-m")
|
||||||
|
:hook
|
||||||
|
(lsp-mode . lsp-enable-which-key-integration)
|
||||||
|
:commands lsp
|
||||||
|
:config
|
||||||
|
;; As per <https://github.com/emacs-lsp/lsp-mode#performance>.
|
||||||
|
(setq read-process-output-max (* 1024 1024))
|
||||||
|
|
||||||
|
;; Disable LSP reformatting your code as you type. We use Apheleia
|
||||||
|
;; for that instead.
|
||||||
|
(setq lsp-enable-on-type-formatting nil))
|
||||||
|
|
||||||
|
(use-package lsp-pyright
|
||||||
|
:hook (python-mode . (lambda ()
|
||||||
|
(require 'lsp-pyright)
|
||||||
|
(lsp)))) ; or lsp-deferred
|
||||||
|
|
||||||
|
(use-package emacs
|
||||||
|
:straight nil
|
||||||
|
:init
|
||||||
|
;; Add prompt indicator to `completing-read-multiple'.
|
||||||
|
;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
|
||||||
|
(defun crm-indicator (args)
|
||||||
|
(cons (format "[CRM%s] %s"
|
||||||
|
(replace-regexp-in-string
|
||||||
|
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
||||||
|
crm-separator)
|
||||||
|
(car args))
|
||||||
|
(cdr args)))
|
||||||
|
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
||||||
|
|
||||||
|
;; Do not allow the cursor in the minibuffer prompt
|
||||||
|
(setq minibuffer-prompt-properties
|
||||||
|
'(read-only t cursor-intangible t face minibuffer-prompt))
|
||||||
|
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
||||||
|
|
||||||
|
;; Support opening new minibuffers from inside existing minibuffers.
|
||||||
|
(setq enable-recursive-minibuffers t)
|
||||||
|
|
||||||
|
;; Emacs 28 and newer: Hide commands in M-x which do not work in the current
|
||||||
|
;; mode. Vertico commands are hidden in normal buffers. This setting is
|
||||||
|
;; useful beyond Vertico.
|
||||||
|
(setq read-extended-command-predicate #'command-completion-default-include-p))
|
||||||
|
|
||||||
|
|
||||||
|
(setq-default fill-column 80)
|
||||||
|
(setq ring-bell-function 'ignore)
|
||||||
|
|
||||||
|
(setq mode-line-position (list "(%l,%c)"))
|
||||||
|
|
||||||
|
;; https://dougie.io/emacs/indentation/#tldr-the-full-configuration
|
||||||
|
; START TABS CONFIG
|
||||||
|
;; Create a variable for our preferred tab width
|
||||||
|
(setq custom-tab-width 2)
|
||||||
|
|
||||||
|
;; Two callable functions for enabling/disabling tabs in Emacs
|
||||||
|
(defun disable-tabs () (setq indent-tabs-mode nil))
|
||||||
|
(defun enable-tabs ()
|
||||||
|
(local-set-key (kbd "TAB") 'tab-to-tab-stop)
|
||||||
|
(setq indent-tabs-mode t)
|
||||||
|
(setq-default tab-width custom-tab-width))
|
||||||
|
|
||||||
|
;; Hooks to Enable Tabs
|
||||||
|
(add-hook 'prog-mode-hook 'enable-tabs)
|
||||||
|
;; Hooks to Disable Tabs
|
||||||
|
(add-hook 'lisp-mode-hook 'disable-tabs)
|
||||||
|
(add-hook 'emacs-lisp-mode-hook 'disable-tabs)
|
||||||
|
|
||||||
|
;; Language-Specific Tweaks
|
||||||
|
(setq-default python-indent-offset custom-tab-width) ;; Python
|
||||||
|
(setq-default js-indent-level custom-tab-width) ;; Javascript
|
||||||
|
|
||||||
|
;; Making electric-indent behave sanely
|
||||||
|
(setq-default electric-indent-inhibit t)
|
||||||
|
|
||||||
|
;; Make the backspace properly erase the tab instead of
|
||||||
|
;; removing 1 space at a time.
|
||||||
|
(setq backward-delete-char-untabify-method 'hungry)
|
||||||
|
|
||||||
|
;; WARNING: This will change your life
|
||||||
|
;; (OPTIONAL) Visualize tabs as a pipe character - "|"
|
||||||
|
;; This will also show trailing characters as they are useful to spot.
|
||||||
|
(setq whitespace-style '(face tabs tab-mark trailing))
|
||||||
|
(custom-set-faces
|
||||||
|
'(whitespace-tab ((t (:foreground "#636363")))))
|
||||||
|
(setq whitespace-display-mappings
|
||||||
|
'((tab-mark 9 [124 9] [92 9]))) ; 124 is the ascii ID for '\|'
|
||||||
|
(global-whitespace-mode) ; Enable whitespace mode everywhere
|
||||||
|
; END TABS CONFIG
|
||||||
|
|
||||||
|
(setq display-line-numbers-type 'relative)
|
||||||
|
(blink-cursor-mode 0)
|
||||||
|
(global-hl-line-mode 1)
|
||||||
|
|
||||||
|
(setq scroll-preserve-screen-position t)
|
||||||
|
(setq scroll-conservatively 1)
|
||||||
|
(setq scroll-margin 5)
|
||||||
|
|
||||||
|
(defun gcm-scroll-down ()
|
||||||
|
(interactive)
|
||||||
|
(scroll-up 1))
|
||||||
|
|
||||||
|
(defun gcm-scroll-up ()
|
||||||
|
(interactive)
|
||||||
|
(scroll-down 1))
|
||||||
|
|
||||||
|
(global-set-key [(control down)] 'gcm-scroll-down)
|
||||||
|
(global-set-key [(control up)] 'gcm-scroll-up)
|
||||||
|
|
||||||
|
;; Turn off some unneeded UI elements
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(scroll-bar-mode -1)
|
||||||
|
|
||||||
|
(add-hook 'text-mode-hook 'auto-fill-mode)
|
||||||
|
(add-hook 'text-mode-hook 'visual-line-mode)
|
||||||
|
(add-hook 'text-mode-hook 'flyspell-mode)
|
||||||
|
(add-hook 'text-mode-hook 'display-line-numbers-mode)
|
||||||
|
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
||||||
|
|
||||||
|
(add-to-list 'default-frame-alist
|
||||||
|
'(font . "Mononoki-14"))
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
{
|
|
||||||
# config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./languages.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.helix = {
|
|
||||||
enable = true;
|
|
||||||
package = inputs.helix.packages.${pkgs.system}.default;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
clang-tools
|
|
||||||
marksman
|
|
||||||
nil
|
|
||||||
nodePackages.bash-language-server
|
|
||||||
shellcheck
|
|
||||||
texlab
|
|
||||||
tectonic
|
|
||||||
lua-language-server
|
|
||||||
zathura
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
theme = "catppuccin_frappe";
|
|
||||||
editor = {
|
|
||||||
line-number = "relative";
|
|
||||||
lsp.display-messages = true;
|
|
||||||
scrolloff = 10;
|
|
||||||
middle-click-paste = false;
|
|
||||||
cursorline = true;
|
|
||||||
auto-format = false;
|
|
||||||
idle-timeout = 400;
|
|
||||||
color-modes = true;
|
|
||||||
soft-wrap.enable = true;
|
|
||||||
whitespace = {
|
|
||||||
render = {
|
|
||||||
space = "none";
|
|
||||||
tab = "none";
|
|
||||||
newline = "none";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
indent-guides = {
|
|
||||||
render = true;
|
|
||||||
character = "▏";
|
|
||||||
rainbow-option = "dim";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.helix.languages = {
|
|
||||||
language = [
|
|
||||||
{
|
|
||||||
name = "latex";
|
|
||||||
indent = {
|
|
||||||
tab-width = 2;
|
|
||||||
unit = "\t";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
language-server = {
|
|
||||||
nil = {
|
|
||||||
config.nil.formatting.command = ["${lib.getExe pkgs.alejandra}" "-q"];
|
|
||||||
};
|
|
||||||
|
|
||||||
texlab = {
|
|
||||||
config.texlab = {
|
|
||||||
forwardSearch.executable = "zathura";
|
|
||||||
forwardSearch.args = ["--synctex-forward" "%l:1:%f" "%p"];
|
|
||||||
build = {
|
|
||||||
executable = "tectonic";
|
|
||||||
onSave = true;
|
|
||||||
forwardSearchAfter = true;
|
|
||||||
auxDirectory = "build";
|
|
||||||
logDirectory = "build";
|
|
||||||
pdfDirectory = "build";
|
|
||||||
args = [
|
|
||||||
"-X"
|
|
||||||
"compile"
|
|
||||||
"%f"
|
|
||||||
"--synctex"
|
|
||||||
"--keep-logs"
|
|
||||||
"--keep-intermediates"
|
|
||||||
"--outdir"
|
|
||||||
"build"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +1,20 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./programs
|
||||||
|
./services
|
||||||
|
./shell
|
||||||
|
./wayland
|
||||||
|
./email.nix
|
||||||
|
./lf
|
||||||
|
./neovim
|
||||||
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = "tacocat";
|
username = "tacocat";
|
||||||
homeDirectory = "/home/tacocat";
|
homeDirectory = "/home/tacocat";
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = "hx";
|
EDITOR = "nvim";
|
||||||
BAT_THEME = "ansi";
|
BAT_THEME = "ansi";
|
||||||
DOTNET_ROOT = "$HOME/.dotnet";
|
DOTNET_ROOT = "$HOME/.dotnet";
|
||||||
};
|
};
|
||||||
|
@ -13,76 +23,99 @@
|
||||||
"$HOME/.dotnet"
|
"$HOME/.dotnet"
|
||||||
];
|
];
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
fd
|
||||||
|
emacs
|
||||||
|
vimpc
|
||||||
|
ashuffle
|
||||||
|
ardour
|
||||||
|
giada
|
||||||
|
carla
|
||||||
|
surge-XT
|
||||||
|
atkinson-hyperlegible
|
||||||
|
rsgain
|
||||||
|
swayimg
|
||||||
|
virtualenv
|
||||||
|
whipper
|
||||||
|
unzip
|
||||||
|
mpc-cli
|
||||||
|
nicotine-plus
|
||||||
|
texliveFull
|
||||||
|
ripgrep
|
||||||
|
matlab
|
||||||
|
octave
|
||||||
mpv
|
mpv
|
||||||
|
krita
|
||||||
|
tree
|
||||||
|
gimp
|
||||||
rtorrent
|
rtorrent
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
spotify
|
|
||||||
nextcloud-client
|
|
||||||
xournalpp
|
xournalpp
|
||||||
cardinal
|
cardinal
|
||||||
tor-browser
|
tor-browser
|
||||||
discord
|
|
||||||
neovim
|
|
||||||
libreoffice
|
libreoffice
|
||||||
notify-desktop
|
notify-desktop
|
||||||
texlive.combined.scheme-medium
|
|
||||||
libsixel
|
|
||||||
aspell
|
aspell
|
||||||
aspellDicts.en
|
aspellDicts.en
|
||||||
qalculate-qt
|
qalculate-qt
|
||||||
fzf
|
|
||||||
zathura
|
zathura
|
||||||
wineWowPackages.stable
|
wineWowPackages.waylandFull
|
||||||
comic-mono
|
comic-mono
|
||||||
maple-mono
|
maple-mono
|
||||||
jetbrains-mono
|
jetbrains-mono
|
||||||
fira-code
|
fira-code
|
||||||
mononoki
|
mononoki
|
||||||
inter
|
inter
|
||||||
(nerdfonts.override {fonts = ["FiraCode"];})
|
(nerdfonts.override {fonts = ["FiraCode" "Mononoki" "NerdFontsSymbolsOnly"];})
|
||||||
gnupg
|
|
||||||
pandoc
|
pandoc
|
||||||
maven
|
|
||||||
pdftk
|
pdftk
|
||||||
git
|
|
||||||
lua
|
lua
|
||||||
python3
|
python3
|
||||||
|
python311Packages.eyed3
|
||||||
pamixer
|
pamixer
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
htop
|
htop
|
||||||
p7zip
|
p7zip
|
||||||
cachix
|
cachix
|
||||||
aria
|
aria
|
||||||
|
fastfetch
|
||||||
|
gcc
|
||||||
|
gcc-arm-embedded-13
|
||||||
|
gnumake
|
||||||
|
webcord
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.nix-index.enable = true;
|
programs.nix-index.enable = true;
|
||||||
|
|
||||||
|
# programs.gpg = {
|
||||||
|
# enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
news.display = "silent";
|
news.display = "silent";
|
||||||
|
|
||||||
imports = [
|
|
||||||
./programs
|
|
||||||
./services
|
|
||||||
./shell
|
|
||||||
./helix
|
|
||||||
./wayland
|
|
||||||
./email.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mimeApps = {
|
mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
"application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];
|
"application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];
|
||||||
|
"image/jpg" = ["swayimg.desktop"];
|
||||||
|
"image/jpeg" = ["swayimg.desktop"];
|
||||||
|
"image/png" = ["swayimg.desktop"];
|
||||||
|
"image/gif" = ["swayimg.desktop"];
|
||||||
|
"image/svg+xml" = ["swayimg.desktop"];
|
||||||
|
"image/webp" = ["swayimg.desktop"];
|
||||||
|
"image/heif" = ["swayimg.desktop"];
|
||||||
|
"image/bmp" = ["swayimg.desktop"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
# ------------ GTK ------------
|
# ------------ GTK ------------
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
|
@ -96,4 +129,14 @@
|
||||||
name = "Papirus";
|
name = "Papirus";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# xdg.configFile."./" = {
|
||||||
|
# source = ./.config;
|
||||||
|
# recursive = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
xdg.configFile."emacs/init.el".source = ./emacs/init.el;
|
||||||
|
xdg.configFile."emacs/early-init.el".source = ./emacs/early-init.el;
|
||||||
|
xdg.configFile."emacs/straight/versions/default.el".source = ./emacs/default.el;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
62
users/tacocat/lf/default.nix
Normal file
62
users/tacocat/lf/default.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
xdg.configFile."lf/icons".source = ./icons;
|
||||||
|
|
||||||
|
programs.lf = {
|
||||||
|
enable = true;
|
||||||
|
commands = {
|
||||||
|
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"'';
|
||||||
|
editor-open = ''$$EDITOR $f'';
|
||||||
|
mkdir = ''
|
||||||
|
''${{
|
||||||
|
printf "Directory Name: "
|
||||||
|
read DIR
|
||||||
|
mkdir $DIR
|
||||||
|
}}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
keybindings = {
|
||||||
|
"\\\"" = "";
|
||||||
|
o = "";
|
||||||
|
m = "";
|
||||||
|
mm = "mark-save";
|
||||||
|
md = "mkdir";
|
||||||
|
"." = "set hidden!";
|
||||||
|
"`" = "mark-load";
|
||||||
|
"\\'" = "mark-load";
|
||||||
|
"<enter>" = "open";
|
||||||
|
|
||||||
|
d = "";
|
||||||
|
do = "dragon-out";
|
||||||
|
dd = "cut";
|
||||||
|
|
||||||
|
"g~" = "cd";
|
||||||
|
gh = "cd";
|
||||||
|
"g/" = "/";
|
||||||
|
|
||||||
|
ee = "editor-open";
|
||||||
|
V = ''$${pkgs.bat}/bin/bat --paging=always "$f"'';
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
preview = true;
|
||||||
|
hidden = true;
|
||||||
|
drawbox = true;
|
||||||
|
icons = true;
|
||||||
|
ignorecase = true;
|
||||||
|
tabstop = 2;
|
||||||
|
};
|
||||||
|
previewer = {
|
||||||
|
keybinding = "i";
|
||||||
|
source = pkgs.writeShellScript "pv.sh" ''
|
||||||
|
#!/bin/sh
|
||||||
|
case "$1" in
|
||||||
|
*.tar*) ${pkgs.gnutar}/bin/tar tf "$1";;
|
||||||
|
*.zip) ${pkgs.unzip}/bin/unzip -l "$1";;
|
||||||
|
*.rar) ${pkgs.unrar}/bin/unrar l "$1";;
|
||||||
|
*.7z) ${pkgs.p7zip}/bin/7z l "$1";;
|
||||||
|
*.pdf) ${pkgs.poppler_utils}/bin/pdftotext "$1" -;;
|
||||||
|
*) ${pkgs.highlight}/bin/highlight -O ansi "$1" || cat "$1";;
|
||||||
|
esac
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
357
users/tacocat/lf/icons
Normal file
357
users/tacocat/lf/icons
Normal file
|
@ -0,0 +1,357 @@
|
||||||
|
# vim:ft=conf
|
||||||
|
|
||||||
|
# These examples require Nerd Fonts or a compatible font to be used.
|
||||||
|
# See https://www.nerdfonts.com for more information.
|
||||||
|
|
||||||
|
# default values from lf (with matching order)
|
||||||
|
# ln l # LINK
|
||||||
|
# or l # ORPHAN
|
||||||
|
# tw t # STICKY_OTHER_WRITABLE
|
||||||
|
# ow d # OTHER_WRITABLE
|
||||||
|
# st t # STICKY
|
||||||
|
# di d # DIR
|
||||||
|
# pi p # FIFO
|
||||||
|
# so s # SOCK
|
||||||
|
# bd b # BLK
|
||||||
|
# cd c # CHR
|
||||||
|
# su u # SETUID
|
||||||
|
# sg g # SETGID
|
||||||
|
# ex x # EXEC
|
||||||
|
# fi - # FILE
|
||||||
|
|
||||||
|
# file types (with matching order)
|
||||||
|
ln # LINK
|
||||||
|
or # ORPHAN
|
||||||
|
tw t # STICKY_OTHER_WRITABLE
|
||||||
|
ow # OTHER_WRITABLE
|
||||||
|
st t # STICKY
|
||||||
|
di # DIR
|
||||||
|
pi p # FIFO
|
||||||
|
so s # SOCK
|
||||||
|
bd b # BLK
|
||||||
|
cd c # CHR
|
||||||
|
su u # SETUID
|
||||||
|
sg g # SETGID
|
||||||
|
ex # EXEC
|
||||||
|
fi # FILE
|
||||||
|
|
||||||
|
# file extensions (vim-devicons)
|
||||||
|
*.styl
|
||||||
|
*.sass
|
||||||
|
*.scss
|
||||||
|
*.htm
|
||||||
|
*.html
|
||||||
|
*.slim
|
||||||
|
*.haml
|
||||||
|
*.ejs
|
||||||
|
*.css
|
||||||
|
*.less
|
||||||
|
*.md
|
||||||
|
*.mdx
|
||||||
|
*.markdown
|
||||||
|
*.rmd
|
||||||
|
*.json
|
||||||
|
*.webmanifest
|
||||||
|
*.js
|
||||||
|
*.mjs
|
||||||
|
*.jsx
|
||||||
|
*.rb
|
||||||
|
*.gemspec
|
||||||
|
*.rake
|
||||||
|
*.php
|
||||||
|
*.py
|
||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
*.pyd
|
||||||
|
*.coffee
|
||||||
|
*.mustache
|
||||||
|
*.hbs
|
||||||
|
*.conf
|
||||||
|
*.ini
|
||||||
|
*.yml
|
||||||
|
*.yaml
|
||||||
|
*.toml
|
||||||
|
*.bat
|
||||||
|
*.mk
|
||||||
|
*.jpg
|
||||||
|
*.jpeg
|
||||||
|
*.bmp
|
||||||
|
*.png
|
||||||
|
*.webp
|
||||||
|
*.gif
|
||||||
|
*.ico
|
||||||
|
*.twig
|
||||||
|
*.cpp
|
||||||
|
*.c++
|
||||||
|
*.cxx
|
||||||
|
*.cc
|
||||||
|
*.cp
|
||||||
|
*.c
|
||||||
|
*.cs
|
||||||
|
*.h
|
||||||
|
*.hh
|
||||||
|
*.hpp
|
||||||
|
*.hxx
|
||||||
|
*.hs
|
||||||
|
*.lhs
|
||||||
|
*.nix
|
||||||
|
*.lua
|
||||||
|
*.java
|
||||||
|
*.sh
|
||||||
|
*.fish
|
||||||
|
*.bash
|
||||||
|
*.zsh
|
||||||
|
*.ksh
|
||||||
|
*.csh
|
||||||
|
*.awk
|
||||||
|
*.ps1
|
||||||
|
*.ml λ
|
||||||
|
*.mli λ
|
||||||
|
*.diff
|
||||||
|
*.db
|
||||||
|
*.sql
|
||||||
|
*.dump
|
||||||
|
*.clj
|
||||||
|
*.cljc
|
||||||
|
*.cljs
|
||||||
|
*.edn
|
||||||
|
*.scala
|
||||||
|
*.go
|
||||||
|
*.dart
|
||||||
|
*.xul
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.pl
|
||||||
|
*.pm
|
||||||
|
*.t
|
||||||
|
*.rss
|
||||||
|
'*.f#'
|
||||||
|
*.fsscript
|
||||||
|
*.fsx
|
||||||
|
*.fs
|
||||||
|
*.fsi
|
||||||
|
*.rs
|
||||||
|
*.rlib
|
||||||
|
*.d
|
||||||
|
*.erl
|
||||||
|
*.hrl
|
||||||
|
*.ex
|
||||||
|
*.exs
|
||||||
|
*.eex
|
||||||
|
*.leex
|
||||||
|
*.heex
|
||||||
|
*.vim
|
||||||
|
*.ai
|
||||||
|
*.psd
|
||||||
|
*.psb
|
||||||
|
*.ts
|
||||||
|
*.tsx
|
||||||
|
*.jl
|
||||||
|
*.pp
|
||||||
|
*.vue
|
||||||
|
*.elm
|
||||||
|
*.swift
|
||||||
|
*.xcplayground
|
||||||
|
*.tex
|
||||||
|
*.r
|
||||||
|
*.rproj
|
||||||
|
*.sol
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# file names (vim-devicons) (case-insensitive not supported in lf)
|
||||||
|
*gruntfile.coffee
|
||||||
|
*gruntfile.js
|
||||||
|
*gruntfile.ls
|
||||||
|
*gulpfile.coffee
|
||||||
|
*gulpfile.js
|
||||||
|
*gulpfile.ls
|
||||||
|
*mix.lock
|
||||||
|
*dropbox
|
||||||
|
*.ds_store
|
||||||
|
*.gitconfig
|
||||||
|
*.gitignore
|
||||||
|
*.gitattributes
|
||||||
|
*.gitlab-ci.yml
|
||||||
|
*.bashrc
|
||||||
|
*.zshrc
|
||||||
|
*.zshenv
|
||||||
|
*.zprofile
|
||||||
|
*.vimrc
|
||||||
|
*.gvimrc
|
||||||
|
*_vimrc
|
||||||
|
*_gvimrc
|
||||||
|
*.bashprofile
|
||||||
|
*favicon.ico
|
||||||
|
*license
|
||||||
|
*node_modules
|
||||||
|
*react.jsx
|
||||||
|
*procfile
|
||||||
|
*dockerfile
|
||||||
|
*docker-compose.yml
|
||||||
|
*rakefile
|
||||||
|
*config.ru
|
||||||
|
*gemfile
|
||||||
|
*makefile
|
||||||
|
*cmakelists.txt
|
||||||
|
*robots.txt
|
||||||
|
|
||||||
|
# file names (case-sensitive adaptations)
|
||||||
|
*Gruntfile.coffee
|
||||||
|
*Gruntfile.js
|
||||||
|
*Gruntfile.ls
|
||||||
|
*Gulpfile.coffee
|
||||||
|
*Gulpfile.js
|
||||||
|
*Gulpfile.ls
|
||||||
|
*Dropbox
|
||||||
|
*.DS_Store
|
||||||
|
*LICENSE
|
||||||
|
*React.jsx
|
||||||
|
*Procfile
|
||||||
|
*Dockerfile
|
||||||
|
*Docker-compose.yml
|
||||||
|
*Rakefile
|
||||||
|
*Gemfile
|
||||||
|
*Makefile
|
||||||
|
*CMakeLists.txt
|
||||||
|
|
||||||
|
# file patterns (vim-devicons) (patterns not supported in lf)
|
||||||
|
# .*jquery.*\.js$
|
||||||
|
# .*angular.*\.js$
|
||||||
|
# .*backbone.*\.js$
|
||||||
|
# .*require.*\.js$
|
||||||
|
# .*materialize.*\.js$
|
||||||
|
# .*materialize.*\.css$
|
||||||
|
# .*mootools.*\.js$
|
||||||
|
# .*vimrc.*
|
||||||
|
# Vagrantfile$
|
||||||
|
|
||||||
|
# file patterns (file name adaptations)
|
||||||
|
*jquery.min.js
|
||||||
|
*angular.min.js
|
||||||
|
*backbone.min.js
|
||||||
|
*require.min.js
|
||||||
|
*materialize.min.js
|
||||||
|
*materialize.min.css
|
||||||
|
*mootools.min.js
|
||||||
|
*vimrc
|
||||||
|
Vagrantfile
|
||||||
|
|
||||||
|
# archives or compressed (extensions from dircolors defaults)
|
||||||
|
*.tar
|
||||||
|
*.tgz
|
||||||
|
*.arc
|
||||||
|
*.arj
|
||||||
|
*.taz
|
||||||
|
*.lha
|
||||||
|
*.lz4
|
||||||
|
*.lzh
|
||||||
|
*.lzma
|
||||||
|
*.tlz
|
||||||
|
*.txz
|
||||||
|
*.tzo
|
||||||
|
*.t7z
|
||||||
|
*.zip
|
||||||
|
*.z
|
||||||
|
*.dz
|
||||||
|
*.gz
|
||||||
|
*.lrz
|
||||||
|
*.lz
|
||||||
|
*.lzo
|
||||||
|
*.xz
|
||||||
|
*.zst
|
||||||
|
*.tzst
|
||||||
|
*.bz2
|
||||||
|
*.bz
|
||||||
|
*.tbz
|
||||||
|
*.tbz2
|
||||||
|
*.tz
|
||||||
|
*.deb
|
||||||
|
*.rpm
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
*.sar
|
||||||
|
*.rar
|
||||||
|
*.alz
|
||||||
|
*.ace
|
||||||
|
*.zoo
|
||||||
|
*.cpio
|
||||||
|
*.7z
|
||||||
|
*.rz
|
||||||
|
*.cab
|
||||||
|
*.wim
|
||||||
|
*.swm
|
||||||
|
*.dwm
|
||||||
|
*.esd
|
||||||
|
|
||||||
|
# image formats (extensions from dircolors defaults)
|
||||||
|
*.jpg
|
||||||
|
*.jpeg
|
||||||
|
*.mjpg
|
||||||
|
*.mjpeg
|
||||||
|
*.gif
|
||||||
|
*.bmp
|
||||||
|
*.pbm
|
||||||
|
*.pgm
|
||||||
|
*.ppm
|
||||||
|
*.tga
|
||||||
|
*.xbm
|
||||||
|
*.xpm
|
||||||
|
*.tif
|
||||||
|
*.tiff
|
||||||
|
*.png
|
||||||
|
*.svg
|
||||||
|
*.svgz
|
||||||
|
*.mng
|
||||||
|
*.pcx
|
||||||
|
*.mov
|
||||||
|
*.mpg
|
||||||
|
*.mpeg
|
||||||
|
*.m2v
|
||||||
|
*.mkv
|
||||||
|
*.webm
|
||||||
|
*.ogm
|
||||||
|
*.mp4
|
||||||
|
*.m4v
|
||||||
|
*.mp4v
|
||||||
|
*.vob
|
||||||
|
*.qt
|
||||||
|
*.nuv
|
||||||
|
*.wmv
|
||||||
|
*.asf
|
||||||
|
*.rm
|
||||||
|
*.rmvb
|
||||||
|
*.flc
|
||||||
|
*.avi
|
||||||
|
*.fli
|
||||||
|
*.flv
|
||||||
|
*.gl
|
||||||
|
*.dl
|
||||||
|
*.xcf
|
||||||
|
*.xwd
|
||||||
|
*.yuv
|
||||||
|
*.cgm
|
||||||
|
*.emf
|
||||||
|
*.ogv
|
||||||
|
*.ogx
|
||||||
|
|
||||||
|
# audio formats (extensions from dircolors defaults)
|
||||||
|
*.aac
|
||||||
|
*.au
|
||||||
|
*.flac
|
||||||
|
*.m4a
|
||||||
|
*.mid
|
||||||
|
*.midi
|
||||||
|
*.mka
|
||||||
|
*.mp3
|
||||||
|
*.mpc
|
||||||
|
*.ogg
|
||||||
|
*.ra
|
||||||
|
*.wav
|
||||||
|
*.oga
|
||||||
|
*.opus
|
||||||
|
*.spx
|
||||||
|
*.xspf
|
||||||
|
|
||||||
|
# other formats
|
||||||
|
*.pdf
|
38
users/tacocat/neovim/cmp.nix
Normal file
38
users/tacocat/neovim/cmp.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim.plugins.cmp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{
|
||||||
|
name = "nvim_lsp";
|
||||||
|
priority = 10;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "treesitter";
|
||||||
|
priority = 6;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "luasnip";
|
||||||
|
priority = 8;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "path";
|
||||||
|
priority = 0;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
snippet.expand = "luasnip";
|
||||||
|
completion = {
|
||||||
|
autocomplete = false;
|
||||||
|
};
|
||||||
|
mapping = {
|
||||||
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
|
"<C-e>" = "cmp.mapping.close()";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||||
|
"<C-p>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||||
|
"<C-n>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
123
users/tacocat/neovim/default.nix
Normal file
123
users/tacocat/neovim/default.nix
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./lsp.nix
|
||||||
|
./plugins.nix
|
||||||
|
./cmp.nix
|
||||||
|
];
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
colorschemes.kanagawa.enable = true;
|
||||||
|
clipboard = {
|
||||||
|
providers.wl-copy.enable = true;
|
||||||
|
register = "unnamedplus";
|
||||||
|
};
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
tectonic
|
||||||
|
texliveMedium
|
||||||
|
zathura
|
||||||
|
];
|
||||||
|
opts = {
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
tabstop = 2;
|
||||||
|
shiftwidth = 2;
|
||||||
|
expandtab = false;
|
||||||
|
scrolloff = 5;
|
||||||
|
autoindent = true;
|
||||||
|
smartindent = true;
|
||||||
|
copyindent = true;
|
||||||
|
signcolumn = "yes";
|
||||||
|
cursorline = true;
|
||||||
|
showmode = false;
|
||||||
|
};
|
||||||
|
extraConfigLuaPre = ''
|
||||||
|
local has_words_before = function()
|
||||||
|
unpack = unpack or table.unpack
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
files = {
|
||||||
|
"ftplugin/nix.lua" = {
|
||||||
|
options = {
|
||||||
|
expandtab = true;
|
||||||
|
shiftwidth = 2;
|
||||||
|
tabstop = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"ftplugin/markdown.lua" = {
|
||||||
|
options = {
|
||||||
|
spell = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"ftplugin/tex.lua" = {
|
||||||
|
options = {
|
||||||
|
spell = true;
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<cmd>TexlabBuild<CR>";
|
||||||
|
key = "<C-,>";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<cmd>nohl<CR>";
|
||||||
|
key = "<C-q>";
|
||||||
|
mode = ["n"];
|
||||||
|
options = {
|
||||||
|
desc = "Remove search highlighting";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "function() require(\"luasnip\").expand() end";
|
||||||
|
key = "<C-L>";
|
||||||
|
mode = ["i"];
|
||||||
|
lua = true;
|
||||||
|
options = {
|
||||||
|
desc = "Luasnip expand";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "function() require(\"luasnip\").jump(1) end";
|
||||||
|
key = "<C-J>";
|
||||||
|
mode = ["i" "s"];
|
||||||
|
lua = true;
|
||||||
|
options = {
|
||||||
|
desc = "Luasnip jump to next";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "function() require(\"luasnip\").jump(-1) end";
|
||||||
|
key = "<C-K>";
|
||||||
|
mode = ["i" "s"];
|
||||||
|
lua = true;
|
||||||
|
options = {
|
||||||
|
desc = "Luasnip jump to previous";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = ''
|
||||||
|
function()
|
||||||
|
if require("luasnip").choice_active() then
|
||||||
|
require("luasnip").change_choice(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
key = "<C-E>";
|
||||||
|
mode = ["i" "s"];
|
||||||
|
lua = true;
|
||||||
|
options = {
|
||||||
|
desc = "Luasnip change choice";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
60
users/tacocat/neovim/lsp.nix
Normal file
60
users/tacocat/neovim/lsp.nix
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
lsp-format = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
keymaps.lspBuf = {
|
||||||
|
K = "hover";
|
||||||
|
gD = "references";
|
||||||
|
gd = "definition";
|
||||||
|
gi = "implementation";
|
||||||
|
gt = "type_definition";
|
||||||
|
};
|
||||||
|
servers = {
|
||||||
|
nil_ls.enable = true;
|
||||||
|
lua-ls.enable = true;
|
||||||
|
bashls.enable = true;
|
||||||
|
pylsp.enable = true;
|
||||||
|
html.enable = true;
|
||||||
|
cssls.enable = true;
|
||||||
|
texlab = {
|
||||||
|
enable = true;
|
||||||
|
extraOptions.settings.texlab = {
|
||||||
|
build = {
|
||||||
|
executable = "tectonic";
|
||||||
|
args = [
|
||||||
|
"-X"
|
||||||
|
"compile"
|
||||||
|
"%f"
|
||||||
|
"--outdir"
|
||||||
|
"build/"
|
||||||
|
"--synctex"
|
||||||
|
"--keep-logs"
|
||||||
|
"--keep-intermediates"
|
||||||
|
];
|
||||||
|
auxDirectory = "build/";
|
||||||
|
logDirectory = "build/";
|
||||||
|
pdfDirectory = "build/";
|
||||||
|
forwardSearchAfter = true;
|
||||||
|
onSave = false;
|
||||||
|
};
|
||||||
|
forwardSearch = {
|
||||||
|
executable = "zathura";
|
||||||
|
args = [
|
||||||
|
"--synctex-forward"
|
||||||
|
"%l:1:%f"
|
||||||
|
"%p"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
chktex = {
|
||||||
|
onOpenAndSave = true;
|
||||||
|
onEdit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
54
users/tacocat/neovim/plugins.nix
Normal file
54
users/tacocat/neovim/plugins.nix
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
telescope = {
|
||||||
|
enable = true;
|
||||||
|
keymaps = {
|
||||||
|
"<leader>g" = {
|
||||||
|
action = "git_files";
|
||||||
|
options.desc = "Telescope git files";
|
||||||
|
};
|
||||||
|
"<leader>d" = {
|
||||||
|
action = "diagnostics";
|
||||||
|
options.desc = "Telescope diagnostics";
|
||||||
|
};
|
||||||
|
"<leader>f" = {
|
||||||
|
action = "fd";
|
||||||
|
options.desc = "Telescope find files";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
comment = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
markdown-preview = {
|
||||||
|
enable = true;
|
||||||
|
settings.browser = "firefox";
|
||||||
|
};
|
||||||
|
lualine = {
|
||||||
|
enable = true;
|
||||||
|
sectionSeparators = {
|
||||||
|
left = "";
|
||||||
|
right = "";
|
||||||
|
};
|
||||||
|
componentSeparators = {
|
||||||
|
left = "•";
|
||||||
|
right = "•";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
luasnip = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
friendly-snippets.enable = true;
|
||||||
|
gitsigns = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
nixvimInjections = true;
|
||||||
|
indent = true;
|
||||||
|
};
|
||||||
|
which-key = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,16 +1,16 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./kitty.nix
|
|
||||||
./git.nix
|
./git.nix
|
||||||
./taskwarrior.nix
|
./taskwarrior.nix
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./vscode.nix
|
./fzf.nix
|
||||||
# ./thunderbird.nix
|
./tiny.nix
|
||||||
|
./zoxide.nix
|
||||||
|
./zellij.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.eza = {
|
programs.eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableAliases = true;
|
|
||||||
git = true;
|
git = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
theme,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
policies = {
|
policies = {
|
||||||
|
@ -44,13 +40,13 @@
|
||||||
profiles = {
|
profiles = {
|
||||||
"aria" = {
|
"aria" = {
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
vimium
|
||||||
|
tabcenter-reborn
|
||||||
ublock-origin
|
ublock-origin
|
||||||
bitwarden
|
bitwarden
|
||||||
canvasblocker
|
canvasblocker
|
||||||
aria2-integration
|
|
||||||
sponsorblock
|
sponsorblock
|
||||||
xbrowsersync
|
xbrowsersync
|
||||||
sidebery
|
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
"browser.aboutConfig.showWarning" = false;
|
"browser.aboutConfig.showWarning" = false;
|
||||||
|
@ -71,10 +67,11 @@
|
||||||
"browser.tabs.firefox-view" = false;
|
"browser.tabs.firefox-view" = false;
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
"browser.toolbars.bookmarks.visibility" = "never";
|
"browser.toolbars.bookmarks.visibility" = "never";
|
||||||
|
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||||
};
|
};
|
||||||
search = {
|
search = {
|
||||||
force = true;
|
force = true;
|
||||||
default = "Catgirl";
|
default = "Celtic Lite";
|
||||||
engines = {
|
engines = {
|
||||||
"Nix Packages" = {
|
"Nix Packages" = {
|
||||||
urls = [
|
urls = [
|
||||||
|
@ -99,6 +96,29 @@
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = ["@np"];
|
definedAliases = ["@np"];
|
||||||
};
|
};
|
||||||
|
"Nix Options" = {
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://search.nixos.org/options";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "type";
|
||||||
|
value = "options";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "channel";
|
||||||
|
value = "unstable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = ["@no"];
|
||||||
|
};
|
||||||
"Celtic Lite" = {
|
"Celtic Lite" = {
|
||||||
urls = [
|
urls = [
|
||||||
{
|
{
|
||||||
|
@ -134,203 +154,17 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
userChrome = ''
|
userChrome = ''
|
||||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
|
||||||
* {
|
|
||||||
font-family: "Inter" !important;
|
|
||||||
font-size: 14px !important;
|
|
||||||
|
|
||||||
--arrowpanel-background: ${theme.base00} !important;
|
|
||||||
--arrowpanel-border-color: ${theme.base02} !important;
|
|
||||||
--autocomplete-popup-highlight-color: ${theme.base02} !important;
|
|
||||||
--autocomplete-popup-highlight-background: ${theme.base06} !important;
|
|
||||||
--toolbarbutton-active-background: ${theme.base06} !important;
|
|
||||||
--lwt-toolbarbutton-icon-fill-attention: var(--button-primary-bgcolor, ${theme.base06}) !important;
|
|
||||||
--toolbar-field-focus-border-color: ${theme.base06} !important;
|
|
||||||
}
|
|
||||||
.toolbar {
|
|
||||||
background-color: #11171D !important;
|
|
||||||
}
|
|
||||||
window,
|
|
||||||
#main-window,
|
|
||||||
#toolbar-menubar,
|
|
||||||
#TabsToolbar,
|
|
||||||
#PersonalToolbar,
|
|
||||||
#navigator-toolbox,
|
|
||||||
#sidebar-box {
|
|
||||||
background-color: ${theme.base02} !important;
|
|
||||||
}
|
|
||||||
.tab-background[selected="true"] {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
}
|
|
||||||
.tab-background {
|
|
||||||
background-color: ${theme.base02} !important;
|
|
||||||
}
|
|
||||||
.tabbrowser-tab:hover .tab-background {
|
|
||||||
background-color: ${theme.base09} !important;
|
|
||||||
}
|
|
||||||
#urlbar {
|
|
||||||
background-color: #11171D !important;
|
|
||||||
border-radius: 10px !important;
|
|
||||||
}
|
|
||||||
#nav-bar {
|
|
||||||
background-color: ${theme.base02} !important;
|
|
||||||
}
|
|
||||||
#firefox-view-button {
|
#firefox-view-button {
|
||||||
visibility: collapse;
|
visibility: collapse;
|
||||||
}
|
}
|
||||||
#alltabs-button {
|
#alltabs-button {
|
||||||
visibility: collapse;
|
visibility: collapse;
|
||||||
}
|
}
|
||||||
#mainPopupSet menupopup,
|
|
||||||
menupopup:not(.in-menulist) > menuitem,
|
|
||||||
menupopup:not(.in-menulist) > menu {
|
|
||||||
border: 0 !important;
|
|
||||||
border-radius: 0px !important;
|
|
||||||
padding: 0px 0px 0px 0px !important;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
*/
|
|
||||||
#back-button>.toolbarbutton-icon {
|
|
||||||
transform: scale(.85, .85) !important;
|
|
||||||
animation: none !important;
|
|
||||||
border: none !important;
|
|
||||||
box-shadow: none !important;
|
|
||||||
}
|
|
||||||
#back-button:not(:hover),
|
|
||||||
#back-button:not(:hover) > .toolbarbutton-icon {
|
|
||||||
background: none !important;
|
|
||||||
}
|
|
||||||
#back-button:hover,
|
|
||||||
#back-button:hover > .toolbarbutton-icon {
|
|
||||||
border-radius: 2px !important;
|
|
||||||
}
|
|
||||||
#whats-new-menu-button,
|
|
||||||
#pocket-button,
|
|
||||||
#save-to-pocket-button
|
|
||||||
#reader-mode-button {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
#star-button {
|
|
||||||
color: ${theme.base06} !important;
|
|
||||||
}
|
|
||||||
#save-to-pocket-button {
|
|
||||||
visibility: hidden !important;
|
|
||||||
}
|
|
||||||
#urlbar-input {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
padding-left: 5px !important;
|
|
||||||
}
|
|
||||||
#urlbar-results {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
border-radius: 5px !important;
|
|
||||||
}
|
|
||||||
#urlbar-results .urlbarView-row:hover{
|
|
||||||
color: ${theme.base06} !important;
|
|
||||||
border-radius: 5px !important;
|
|
||||||
}
|
|
||||||
.urlbarView-row[selected] .urlbarView-row-inner {
|
|
||||||
border-radius: 5px !important;
|
|
||||||
background-color: ${theme.base06} !important;
|
|
||||||
color: ${theme.base00} !important;
|
|
||||||
}
|
|
||||||
#urlbar ::-moz-selection,
|
|
||||||
.searchbar-textbox ::-moz-selection {
|
|
||||||
background-color: ${theme.base01} !important;
|
|
||||||
color: ${theme.base09} !important;
|
|
||||||
}
|
|
||||||
#tabbrowser-tabpanels {
|
|
||||||
background-color: ${theme.base01} !important;
|
|
||||||
}
|
|
||||||
urlbar > #urlbar-background {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
}
|
|
||||||
#urlbar-background {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
color: ${theme.base02} !important;
|
|
||||||
border: 1px solid ${theme.base06} !important;
|
|
||||||
}
|
|
||||||
#urlbar-background:not([focused]) {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
color: ${theme.base02} !important;
|
|
||||||
}
|
|
||||||
#urlbar-one-offs-header-label{
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.search-one-offs > .search-panel-one-offs-header::before{
|
|
||||||
display: block;
|
|
||||||
content: "Search With:";
|
|
||||||
padding-inline: var(--urlbarView-item-inline-padding) 18px;
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
#tabbrowser-tabs {
|
#tabbrowser-tabs {
|
||||||
border-inline-start: none !important;
|
border-inline-start: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
userContent = ''
|
|
||||||
@namespace url("http://www.w3.org/1999/xhtml");
|
|
||||||
:root {
|
|
||||||
scrollbar-color: ${theme.base00} ${theme.base02};
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
scrollbar-width: thin;
|
|
||||||
}
|
|
||||||
@-moz-document url-prefix("about:") {
|
|
||||||
:root {
|
|
||||||
--in-content-page-background: ${theme.base00} !important;
|
|
||||||
--toolbar-field-focus-border-color: ${theme.base06} !important;
|
|
||||||
--toolbarbutton-active-background: ${theme.base06} !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-document url("about:newtab"), url("about:home") {
|
|
||||||
* {
|
|
||||||
font-family: "Inter" !important;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
}
|
|
||||||
.logo-and-wordmark {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
.SnippetBaseContainer {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
.search-handoff-button {
|
|
||||||
border-radius: 15px !important;
|
|
||||||
border-width: 4px !important;
|
|
||||||
border-color: ${theme.base02} !important;
|
|
||||||
background-size: 0px !important;
|
|
||||||
background-color: ${theme.base00} !important;
|
|
||||||
padding-inline-start: 10px !important;
|
|
||||||
padding-inline-end: 10px !important;
|
|
||||||
}
|
|
||||||
.icon-settings {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
.fake-textbox {
|
|
||||||
text-align: center !important;
|
|
||||||
}
|
|
||||||
.search-wrapper input {
|
|
||||||
background-color: ${theme.base09} !important;
|
|
||||||
border-radius: 0px !important;
|
|
||||||
background-image: none !important;
|
|
||||||
background-size: none !important;
|
|
||||||
text-align: center !important;
|
|
||||||
font-size: 17px !important;
|
|
||||||
padding-inline-start: 10px !important;
|
|
||||||
padding-inline-end: 10px !important;
|
|
||||||
}
|
|
||||||
.search-wrapper input:focus {
|
|
||||||
text-align: left !important;
|
|
||||||
}
|
|
||||||
.body-wrapper {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
6
users/tacocat/programs/fzf.nix
Normal file
6
users/tacocat/programs/fzf.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
programs.fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,10 +1,12 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userEmail = "tacocat@chytrid.org";
|
package = pkgs.gitAndTools.gitFull;
|
||||||
|
userEmail = "aria@chytrid.org";
|
||||||
userName = "Aria Nolan";
|
userName = "Aria Nolan";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init.defaultbranch = "main";
|
init.defaultbranch = "main";
|
||||||
|
diff.tool = "nvimdiff";
|
||||||
};
|
};
|
||||||
aliases = {
|
aliases = {
|
||||||
co = "checkout";
|
co = "checkout";
|
||||||
|
@ -12,19 +14,6 @@
|
||||||
pom = "push -u origin main";
|
pom = "push -u origin main";
|
||||||
cm = "commit -m";
|
cm = "commit -m";
|
||||||
};
|
};
|
||||||
delta = {
|
|
||||||
enable = true;
|
|
||||||
options = {
|
|
||||||
decorations = {
|
|
||||||
commit-decoration-style = "bold yellow box ul";
|
|
||||||
file-decoration-style = "none";
|
|
||||||
file-style = "bold yellow ul";
|
|
||||||
};
|
|
||||||
features = "decorations";
|
|
||||||
whitespace-error-style = "22 reverse";
|
|
||||||
syntax-theme = "ansi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gitui = {
|
programs.gitui = {
|
||||||
|
|
24
users/tacocat/programs/ncmpcpp.nix
Normal file
24
users/tacocat/programs/ncmpcpp.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{...}: {
|
||||||
|
programs.ncmpcpp = {
|
||||||
|
enable = true;
|
||||||
|
bindings = [
|
||||||
|
{
|
||||||
|
key = "j";
|
||||||
|
command = "scroll_down";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "k";
|
||||||
|
command = "scroll_up";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "J";
|
||||||
|
command = ["select_item" "scroll_down"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "K";
|
||||||
|
command = ["select_item" "scroll_up"];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
mpdMusicDir = "/data/music";
|
||||||
|
};
|
||||||
|
}
|
13
users/tacocat/programs/radioboat.nix
Normal file
13
users/tacocat/programs/radioboat.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = [pkgs.radioboat];
|
||||||
|
|
||||||
|
xdg.configFile."radioboat/urls.csv".text = ''
|
||||||
|
url,"name"
|
||||||
|
http://cinema.acs.its.nyu.edu:8000/wnyu128.mp3,wnyu
|
||||||
|
https://ncpr-ice.streamguys1.com/ncpr-256k.aac,ncpr
|
||||||
|
https://streaming.witr.rit.edu/live-mp3,witr
|
||||||
|
http://streaming.witr.rit.edu/udg-mp3,witr-udg
|
||||||
|
https://streaming.live365.com/a45877,wknc-hd1
|
||||||
|
https://streaming.live365.com/a30009,wknc-hd2
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,7 +1,20 @@
|
||||||
{...}: {
|
{config, ...}: {
|
||||||
|
age.secrets = {
|
||||||
|
taskd-ca-cert.file = ../../../secrets/taskd-ca-cert.age;
|
||||||
|
taskd-aria-cert.file = ../../../secrets/taskd-aria-cert.age;
|
||||||
|
taskd-aria-key.file = ../../../secrets/taskd-aria-key.age;
|
||||||
|
};
|
||||||
|
|
||||||
programs.taskwarrior = {
|
programs.taskwarrior = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
taskd = {
|
||||||
|
server = "aria.cat:53589";
|
||||||
|
credentials = "myself/aria/e67e2e9f-78af-42c2-9c55-3c59054246c6";
|
||||||
|
certificate = config.age.secrets.taskd-aria-cert.path;
|
||||||
|
key = config.age.secrets.taskd-aria-key.path;
|
||||||
|
ca = config.age.secrets.taskd-ca-cert.path;
|
||||||
|
};
|
||||||
dateformat = "Y-M-D H:N";
|
dateformat = "Y-M-D H:N";
|
||||||
report.list.columns = [
|
report.list.columns = [
|
||||||
"id"
|
"id"
|
||||||
|
|
32
users/tacocat/programs/tiny.nix
Normal file
32
users/tacocat/programs/tiny.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{...}: {
|
||||||
|
programs.tiny = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
servers = [
|
||||||
|
{
|
||||||
|
addr = "irc.libera.chat";
|
||||||
|
port = 6697;
|
||||||
|
tls = true;
|
||||||
|
nicks = ["tacocatgirl"];
|
||||||
|
realname = "Aria Nolan";
|
||||||
|
join = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
addr = "irc.freenode.net";
|
||||||
|
port = 6697;
|
||||||
|
tls = true;
|
||||||
|
nicks = ["tacocatgirl"];
|
||||||
|
realname = "Aria Nolan";
|
||||||
|
join = [];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
defaults = {
|
||||||
|
nicks = ["tacocatgirl"];
|
||||||
|
realname = "Aria Nolan";
|
||||||
|
join = [];
|
||||||
|
tls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
users/tacocat/programs/tmux.nix
Normal file
19
users/tacocat/programs/tmux.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
clock24 = true;
|
||||||
|
mouse = true;
|
||||||
|
keyMode = "vi";
|
||||||
|
newSession = true;
|
||||||
|
shell = "${pkgs.fish}/bin/fish";
|
||||||
|
sensibleOnTop = true;
|
||||||
|
terminal = "tmux-256color";
|
||||||
|
extraConfig = ''
|
||||||
|
set -g focus-events on
|
||||||
|
set -g allow-passthrough on
|
||||||
|
set -g set-clipboard on
|
||||||
|
set -sa terminal-features ',foot:RGB'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,7 +6,6 @@
|
||||||
enableUpdateCheck = false;
|
enableUpdateCheck = false;
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
ritwickdey.liveserver
|
ritwickdey.liveserver
|
||||||
asvetliakov.vscode-neovim
|
|
||||||
];
|
];
|
||||||
userSettings = {
|
userSettings = {
|
||||||
"extensions.experimental.affinity" = {
|
"extensions.experimental.affinity" = {
|
||||||
|
|
27
users/tacocat/programs/zellij.nix
Normal file
27
users/tacocat/programs/zellij.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{...}: {
|
||||||
|
programs.zellij = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
settings = {
|
||||||
|
simplified_ui = true;
|
||||||
|
default_shell = "fish";
|
||||||
|
copy_command = "wl-copy";
|
||||||
|
pane_frames = false;
|
||||||
|
default_mode = "locked";
|
||||||
|
theme = "custom";
|
||||||
|
themes.custom = {
|
||||||
|
bg = "#44415a";
|
||||||
|
fg = "#e0def4";
|
||||||
|
red = "#eb6f92";
|
||||||
|
green = "#3e8fb0";
|
||||||
|
blue = "#9ccfd8";
|
||||||
|
yellow = "#f6c177";
|
||||||
|
magenta = "#c4a7e7";
|
||||||
|
orange = "#fe640b";
|
||||||
|
cyan = "#ea9a97";
|
||||||
|
black = "#393552";
|
||||||
|
white = "#e0def4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
users/tacocat/programs/zoxide.nix
Normal file
6
users/tacocat/programs/zoxide.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{...}: {
|
||||||
|
programs.zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,9 +1,4 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
services.nextcloud-client = {
|
|
||||||
enable = true;
|
|
||||||
startInBackground = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gammastep = {
|
services.gammastep = {
|
||||||
enable = true;
|
enable = true;
|
||||||
provider = "geoclue2";
|
provider = "geoclue2";
|
||||||
|
|
|
@ -3,19 +3,17 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
enableVteIntegration = true;
|
enableVteIntegration = true;
|
||||||
|
profileExtra = ''
|
||||||
|
ssh-add ~/.ssh/git_personal
|
||||||
|
ssh-add ~/.ssh/id_ed25519
|
||||||
|
'';
|
||||||
bashrcExtra = ''
|
bashrcExtra = ''
|
||||||
|
|
||||||
PS1='[\u@\h \W]\$ '
|
PS1='[\u@\h \W]\$ '
|
||||||
|
|
||||||
'';
|
'';
|
||||||
|
sessionVariables = {
|
||||||
profileExtra = ''
|
_JAVA_AWT_WM_NONREPARENTING = 1;
|
||||||
|
};
|
||||||
eval "$(ssh-agent -s)"
|
|
||||||
ssh-add ~/.ssh/git_school
|
|
||||||
ssh-add ~/.ssh/git_personal
|
|
||||||
ssh-add ~/.ssh/id_ed25519
|
|
||||||
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
"$git_status"
|
"$git_status"
|
||||||
"$package"
|
"$package"
|
||||||
"$nix_shell"
|
"$nix_shell"
|
||||||
|
"$container"
|
||||||
"$cmd_duration"
|
"$cmd_duration"
|
||||||
"$line_break"
|
"$line_break"
|
||||||
"$status"
|
"$status"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{pkgs, ...}: {
|
{...}: {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
|
@ -7,16 +7,5 @@
|
||||||
fish_vi_key_bindings
|
fish_vi_key_bindings
|
||||||
set -g fish_cursor_insert line
|
set -g fish_cursor_insert line
|
||||||
'';
|
'';
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "z";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "jethrokuan";
|
|
||||||
repo = "z";
|
|
||||||
rev = "85f863f20f24faf675827fb00f3a4e15c7838d76";
|
|
||||||
sha256 = "+FUBM7CodtZrYKqU542fQD+ZDGrd2438trKM0tIESs0=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
sway-contrib.grimshot
|
sway-contrib.grimshot
|
||||||
|
sway-audio-idle-inhibit
|
||||||
];
|
];
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
{
|
{
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
server.enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
shell = "/usr/bin/env fish";
|
shell = "/usr/bin/env fish";
|
||||||
font = "Mononoki:size=14,FiraCode Nerd Font:size=14";
|
font = "Mononoki Nerd Font:size=13.5";
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
background = "232136";
|
background = "232136";
|
||||||
|
|
|
@ -1,188 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
|
|
||||||
# documentation.
|
|
||||||
|
|
||||||
# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc.
|
|
||||||
|
|
||||||
# riverctl spawn "dbus-update-activation-environment SEATD_SOCK DISPLAY WAYLAND _DISPLAY XDG_CURRENT_DESKTOP=river"
|
|
||||||
riverctl spawn "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP"
|
|
||||||
|
|
||||||
riverctl map normal Super+Shift Return spawn 'foot'
|
|
||||||
riverctl map normal Super D spawn 'rofi -show drun'
|
|
||||||
|
|
||||||
# firefox
|
|
||||||
riverctl map normal Super+Shift F spawn "firefox"
|
|
||||||
|
|
||||||
# screenshot utility
|
|
||||||
riverctl map normal None Print spawn 'IMG=~/Pictures/screenshots/$(date | sed "s/\s/-/g" | sed "s/--/-/g").png&&grim -g "$(slurp)" $IMG && cat $IMG | wl-copy && notify-send "Screenshot has been saved and copied to your clipboard" -a "grim" -u normal -t 2000'
|
|
||||||
|
|
||||||
# Super+Q to close the focused view
|
|
||||||
riverctl map normal Super Q close
|
|
||||||
|
|
||||||
# Super+Shift+E to exit river
|
|
||||||
riverctl map normal Super+Shift E exit
|
|
||||||
|
|
||||||
# Super+J and Super+K to focus the next/previous view in the layout stack
|
|
||||||
riverctl map normal Super J focus-view next
|
|
||||||
riverctl map normal Super K focus-view previous
|
|
||||||
|
|
||||||
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
|
|
||||||
# view in the layout stack
|
|
||||||
riverctl map normal Super+Shift J swap next
|
|
||||||
riverctl map normal Super+Shift K swap previous
|
|
||||||
|
|
||||||
# Super+Period and Super+Comma to focus the next/previous output
|
|
||||||
riverctl map normal Super Period focus-output next
|
|
||||||
riverctl map normal Super Comma focus-output previous
|
|
||||||
|
|
||||||
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
|
|
||||||
riverctl map normal Super+Shift Period send-to-output next
|
|
||||||
riverctl map normal Super+Shift Comma send-to-output previous
|
|
||||||
|
|
||||||
# Super+Return to bump the focused view to the top of the layout stack
|
|
||||||
riverctl map normal Super Return zoom
|
|
||||||
|
|
||||||
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
|
|
||||||
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
|
|
||||||
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
|
|
||||||
|
|
||||||
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
|
|
||||||
riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
|
|
||||||
riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
|
|
||||||
|
|
||||||
# Super+Alt+{H,J,K,L} to move views
|
|
||||||
riverctl map normal Super+Alt H move left 100
|
|
||||||
riverctl map normal Super+Alt J move down 100
|
|
||||||
riverctl map normal Super+Alt K move up 100
|
|
||||||
riverctl map normal Super+Alt L move right 100
|
|
||||||
|
|
||||||
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
|
|
||||||
riverctl map normal Super+Alt+Control H snap left
|
|
||||||
riverctl map normal Super+Alt+Control J snap down
|
|
||||||
riverctl map normal Super+Alt+Control K snap up
|
|
||||||
riverctl map normal Super+Alt+Control L snap right
|
|
||||||
|
|
||||||
# Super+Alt+Shift+{H,J,K,L} to resize views
|
|
||||||
riverctl map normal Super+Alt+Shift H resize horizontal -100
|
|
||||||
riverctl map normal Super+Alt+Shift J resize vertical 100
|
|
||||||
riverctl map normal Super+Alt+Shift K resize vertical -100
|
|
||||||
riverctl map normal Super+Alt+Shift L resize horizontal 100
|
|
||||||
|
|
||||||
# Super + Left Mouse Button to move views
|
|
||||||
riverctl map-pointer normal Super BTN_LEFT move-view
|
|
||||||
|
|
||||||
# Super + Right Mouse Button to resize views
|
|
||||||
riverctl map-pointer normal Super BTN_RIGHT resize-view
|
|
||||||
|
|
||||||
# Super + Middle Mouse Button to toggle float
|
|
||||||
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
|
|
||||||
|
|
||||||
for i in $(seq 1 9)
|
|
||||||
do
|
|
||||||
tags=$((1 << ($i - 1)))
|
|
||||||
|
|
||||||
# Super+[1-9] to focus tag [0-8]
|
|
||||||
riverctl map normal Super $i set-focused-tags $tags
|
|
||||||
|
|
||||||
# Super+Shift+[1-9] to tag focused view with tag [0-8]
|
|
||||||
riverctl map normal Super+Shift $i set-view-tags $tags
|
|
||||||
|
|
||||||
# Super+Control+[1-9] to toggle focus of tag [0-8]
|
|
||||||
riverctl map normal Super+Control $i toggle-focused-tags $tags
|
|
||||||
|
|
||||||
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
|
|
||||||
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
|
|
||||||
done
|
|
||||||
|
|
||||||
# Super+0 to focus all tags
|
|
||||||
# Super+Shift+0 to tag focused view with all tags
|
|
||||||
all_tags=$(((1 << 32) - 1))
|
|
||||||
riverctl map normal Super 0 set-focused-tags $all_tags
|
|
||||||
riverctl map normal Super+Shift 0 set-view-tags $all_tags
|
|
||||||
|
|
||||||
# Super+Space to toggle float
|
|
||||||
riverctl map normal Super Space toggle-float
|
|
||||||
|
|
||||||
# Super+F to toggle fullscreen
|
|
||||||
riverctl map normal Super F toggle-fullscreen
|
|
||||||
|
|
||||||
# Super+{Up,Right,Down,Left} to change layout orientation
|
|
||||||
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
|
|
||||||
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
|
|
||||||
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
|
|
||||||
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
|
|
||||||
|
|
||||||
# Declare a passthrough mode. This mode has only a single mapping to return to
|
|
||||||
# normal mode. This makes it useful for testing a nested wayland compositor
|
|
||||||
riverctl declare-mode passthrough
|
|
||||||
|
|
||||||
# Super+F11 to enter passthrough mode
|
|
||||||
riverctl map normal Super F11 enter-mode passthrough
|
|
||||||
|
|
||||||
# Super+F11 to return to normal mode
|
|
||||||
riverctl map passthrough Super F11 enter-mode normal
|
|
||||||
|
|
||||||
# Various media key mapping examples for both normal and locked mode which do
|
|
||||||
# not have a modifier
|
|
||||||
for mode in normal locked
|
|
||||||
do
|
|
||||||
# Eject the optical drive (well if you still have one that is)
|
|
||||||
riverctl map $mode None XF86Eject spawn 'eject -T'
|
|
||||||
|
|
||||||
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
|
|
||||||
riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
|
|
||||||
riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
|
|
||||||
riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
|
|
||||||
|
|
||||||
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
|
|
||||||
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
|
|
||||||
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
|
|
||||||
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
|
|
||||||
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
|
|
||||||
|
|
||||||
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
|
|
||||||
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl s +5%'
|
|
||||||
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl s 5%-'
|
|
||||||
done
|
|
||||||
|
|
||||||
# Set background and border color
|
|
||||||
riverctl background-color 0x002b36
|
|
||||||
riverctl border-color-focused 0x93a1a1
|
|
||||||
riverctl border-color-unfocused 0x586e75
|
|
||||||
riverctl spawn "wbg $HOME/.config/river/background.jpg"
|
|
||||||
|
|
||||||
# Set keyboard repeat rate
|
|
||||||
riverctl set-repeat 50 300
|
|
||||||
|
|
||||||
|
|
||||||
# Make all views with an app-id that starts with "float" and title "foo" start floating.
|
|
||||||
riverctl rule-add float -app-id 'float*' -title 'foo'
|
|
||||||
|
|
||||||
# Make all views with app-id "bar" and any title use client-side decorations
|
|
||||||
riverctl rule-add csd -app-id "bar"
|
|
||||||
|
|
||||||
# Set the default layout generator to be rivertile and start it.
|
|
||||||
# River will send the process group of the init executable SIGTERM on exit.
|
|
||||||
riverctl default-layout rivertile
|
|
||||||
|
|
||||||
if [ -n "$(pgrep rivertile)" ]
|
|
||||||
then
|
|
||||||
printf 'RIVERCTL: rivertile already running with pid %s\n' "$(pidof rivertile)"
|
|
||||||
else
|
|
||||||
rivertile \
|
|
||||||
-view-padding 6 \
|
|
||||||
-outer-padding 6 \
|
|
||||||
-main-count 1 \
|
|
||||||
-main-ratio 0.5 >/dev/null 2>&1 &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# autostart apps
|
|
||||||
# riverctl spawn "$HOME/.config/river/process"
|
|
||||||
riverctl spawn 'dunst'
|
|
||||||
riverctl spawn 'gammastep-indicator'
|
|
||||||
riverctl spawn 'nm-applet --indicator'
|
|
||||||
riverctl spawn 'waybar'
|
|
||||||
riverctl spawn "swayidle -w \
|
|
||||||
timeout 600 'swaylock -f -c 14171d' \
|
|
||||||
before-sleep 'swaylock -f -c 14171d'"
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
dunst &
|
|
||||||
gammastep-indicator &
|
|
||||||
nm-applet --indicator &
|
|
||||||
waybar &
|
|
||||||
|
|
||||||
# void linux specific setup
|
|
||||||
# if test -f ~/.config/river/void-setup; then
|
|
||||||
# exec ~/.config/river/void-setup
|
|
||||||
# exit
|
|
||||||
# fi
|
|
||||||
|
|
||||||
exec swayidle -w \
|
|
||||||
timeout 600 'swaylock -f -c 14171d' \
|
|
||||||
before-sleep 'swaylock -f -c 14171d'
|
|
|
@ -51,6 +51,7 @@ client.unfocused $unfocus $unfocus $unfocus $unfocus
|
||||||
#
|
#
|
||||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
output * bg ~/.config/sway/background.jpg fill
|
output * bg ~/.config/sway/background.jpg fill
|
||||||
|
output DP-1 mode 2560x1440@143.856Hz
|
||||||
|
|
||||||
bar swaybar_command waybar
|
bar swaybar_command waybar
|
||||||
#
|
#
|
||||||
|
@ -84,9 +85,11 @@ exec swayidle -w \
|
||||||
middle_emulation enabled
|
middle_emulation enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
input "1:1:AT_Translated_Set_2_keyboard" {
|
input "type:keyboard" {
|
||||||
repeat_delay 200
|
repeat_delay 200
|
||||||
repeat_rate 35
|
repeat_rate 35
|
||||||
|
xkb_layout us
|
||||||
|
xkb_options caps:escape
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -254,6 +257,9 @@ bindsym $mod+r mode "resize"
|
||||||
# Screenshot
|
# Screenshot
|
||||||
bindsym Print exec grimshot copy area
|
bindsym Print exec grimshot copy area
|
||||||
|
|
||||||
|
# Screen Lock
|
||||||
|
bindsym $mod+Shift+n exec swaylock -c 000000
|
||||||
|
|
||||||
#
|
#
|
||||||
# Player
|
# Player
|
||||||
#
|
#
|
||||||
|
|
|
@ -3,6 +3,9 @@ exec blueman-applet
|
||||||
# exec systemctl --user restart wireplumber
|
# exec systemctl --user restart wireplumber
|
||||||
exec gammastep-indicator
|
exec gammastep-indicator
|
||||||
exec dunst
|
exec dunst
|
||||||
|
exec udiskie --no-automount --tray
|
||||||
|
exec sway-audio-idle-inhibit
|
||||||
|
exec otd-daemon
|
||||||
#exec swayidle -w \
|
#exec swayidle -w \
|
||||||
# timeout 600 'swaylock -f -c 14171d' \
|
# timeout 600 'swaylock -f -c 14171d' \
|
||||||
# before-sleep 'swaylock -f -c 14171d'
|
# before-sleep 'swaylock -f -c 14171d'
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
"sway/window"
|
"sway/window"
|
||||||
];
|
];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
|
"mpd"
|
||||||
"custom/arrow9"
|
"custom/arrow9"
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
"custom/arrow8"
|
"custom/arrow8"
|
||||||
|
@ -42,9 +43,9 @@
|
||||||
"network" = {
|
"network" = {
|
||||||
interval = 5;
|
interval = 5;
|
||||||
format-wifi = " {essid} ({signalStrength}%)";
|
format-wifi = " {essid} ({signalStrength}%)";
|
||||||
format-ethernet = " {ifname}";
|
format-ethernet = " {ifname}";
|
||||||
format-disconnected = "No connection";
|
format-disconnected = "No connection";
|
||||||
format-alt = " {ipaddr}/{cidr}";
|
format-alt = "{ipaddr}/{cidr}";
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
"river/mode" = {
|
"river/mode" = {
|
||||||
|
|
Loading…
Reference in a new issue