Compare commits
25 Commits
6804d95a08
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 72bf23b05b | |||
| d413b9de71 | |||
| 620777f3fb | |||
| ffb6138ea7 | |||
| 2aa1fff18b | |||
| 4f04bde4f2 | |||
| 64def5d8ae | |||
| 4e6cb03e8c | |||
| fc18681a5d | |||
| 6925f6a46b | |||
| f8fca9092d | |||
| c66dd11217 | |||
| bcdb501d4d | |||
| 3953e25500 | |||
| a3b13c47ef | |||
| e6609fd6f4 | |||
| 03aebab782 | |||
| d3266d1c1d | |||
| b693e9d02c | |||
| ac8850ae00 | |||
| 49e4f0e7ef | |||
| d4c4cd0d0a | |||
| f31ba5ad4d | |||
| 982f2aed1e | |||
| d099faf68a |
2
.gitignore
vendored
@@ -4,3 +4,5 @@ result/
|
||||
.DS_Store
|
||||
.pre-commit-config.yaml
|
||||
logs/
|
||||
avatar/pallete.*
|
||||
cache/
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
BIN
avatar/avatar_high.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
avatar/avatar_no_bg.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
avatar/avatar_sloth.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
avatar/avatar_sloth_no_bg.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
avatar/avatar_talking.gif
Normal file
|
After Width: | Height: | Size: 23 MiB |
BIN
avatar/avatar_talking.mp4
Normal file
BIN
avatar/avatar_talking_no_bg.gif
Normal file
|
After Width: | Height: | Size: 20 MiB |
BIN
avatar/avatar_talking_no_bg.mp4
Normal file
BIN
avatar/avatar_weather.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
avatar/avatar_weather_no_bg.png
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
442
flake.lock
generated
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742213273,
|
||||
"narHash": "sha256-0l0vDb4anfsBu1rOs94bC73Hub+xEivgBAo6QXl2MmU=",
|
||||
"lastModified": 1762356719,
|
||||
"narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "484b732195cc53f4536ce4bd59a5c6402b1e7ccf",
|
||||
"rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -38,11 +38,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743801669,
|
||||
"narHash": "sha256-RxQQQCGqywOPbdNrWGbFyFdcrdrXM4YBHW7vYt13OeI=",
|
||||
"lastModified": 1763110997,
|
||||
"narHash": "sha256-S2vF+3D/9vna3/vBV7LHiGUbp+ltPsQhvccIyim6VQg=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "07beb389d69a52c4dd5895da9553463c3740a26a",
|
||||
"rev": "e6928cdd3dd20636326c2756d2bc8fd1cd825768",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -54,11 +54,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -99,6 +99,45 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762980239,
|
||||
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -128,16 +167,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743387206,
|
||||
"narHash": "sha256-24N3NAuZZbYqZ39NgToZgHUw6M7xHrtrAm18kv0+2Wo=",
|
||||
"lastModified": 1763416652,
|
||||
"narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "15c5f9d04fabd176f30286c8f52bbdb2c853a146",
|
||||
"rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -158,11 +196,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742215578,
|
||||
"narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=",
|
||||
"lastModified": 1753964049,
|
||||
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "2fd36421c21aa87e2fe3bee11067540ae612f719",
|
||||
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -187,11 +225,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739049071,
|
||||
"narHash": "sha256-3+7TpXMrbsUXSwgr5VAKAnmkzMb6JO+Rvc9XRb5NMg4=",
|
||||
"lastModified": 1762462052,
|
||||
"narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "175c6b29b6ff82100539e7c4363a35a02c74dd73",
|
||||
"rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -205,8 +243,8 @@
|
||||
"aquamarine": "aquamarine",
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprgraphics": "hyprgraphics",
|
||||
"hyprland-guiutils": "hyprland-guiutils",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprland-qtutils": "hyprland-qtutils",
|
||||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
@@ -216,11 +254,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742860753,
|
||||
"narHash": "sha256-ItOsU1v6CZNe6spfKtJ+cpVr0S87jq69PYe3lpOLzjI=",
|
||||
"lastModified": 1763540034,
|
||||
"narHash": "sha256-TogNk567BTZib1XiYheW04ELxNB2bhee6G4SgphRqmA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "f7ba86d1f335112ae0d13548947ddbd76b1477b6",
|
||||
"rev": "fbb31503f1b69402eeda81ba75a547c862c88bf2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -229,6 +267,52 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-guiutils": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprtoolkit": "hyprtoolkit",
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762755186,
|
||||
"narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"rev": "66356e20a8ed348aa49c1b9ceace786e224225b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-plugins": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
@@ -246,11 +330,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742861859,
|
||||
"narHash": "sha256-lbdHyp2+NoyciCJBtBt3Cgm2dDvoHvTdCRMbmwJoUmk=",
|
||||
"lastModified": 1763484609,
|
||||
"narHash": "sha256-rkxg7+bWmgOxCf4B9ED+Z4SuOO46sbtz9qgIBrYfZRc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "1f332c09a2382cb23da0f69a6f504f8b33433831",
|
||||
"rev": "1bc5b0253fc950c46145713ccb46750aba56ea6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -271,11 +355,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738422629,
|
||||
"narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=",
|
||||
"lastModified": 1759610243,
|
||||
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed",
|
||||
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -284,74 +368,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qt-support": {
|
||||
"inputs": {
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737634706,
|
||||
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"rev": "8810df502cdee755993cb803eba7b23f189db795",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qtutils": {
|
||||
"inputs": {
|
||||
"hyprland-qt-support": "hyprland-qt-support",
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739048983,
|
||||
"narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
@@ -368,11 +384,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741191527,
|
||||
"narHash": "sha256-kM+11Nch47Xwfgtw2EpRitJuORy4miwoMuRi5tyMBDY=",
|
||||
"lastModified": 1763254292,
|
||||
"narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "72df3861f1197e41b078faa3e38eedd60e00018d",
|
||||
"rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -381,6 +397,58 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprtoolkit": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762463729,
|
||||
"narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"rev": "88483bdee5329ec985f0c8f834c519cd18cfe532",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprutils": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -393,11 +461,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741534688,
|
||||
"narHash": "sha256-EV3945SnjOCuRVbGRghsWx/9D89FyshnSO1Q6/TuQ14=",
|
||||
"lastModified": 1763323331,
|
||||
"narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "dd1f720cbc2dbb3c71167c9598045dd3261d27b3",
|
||||
"rev": "0c6411851cc779d551edc89b83966696201611aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -418,11 +486,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739870480,
|
||||
"narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
|
||||
"lastModified": 1755184602,
|
||||
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
|
||||
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -431,6 +499,34 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ixx": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754860581,
|
||||
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.1.1",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixcord": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
@@ -438,11 +534,11 @@
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755307498,
|
||||
"narHash": "sha256-6AXJWZnW/Y9qxlblabRx3NeMtfeMGicndefYEolzgtg=",
|
||||
"lastModified": 1763223362,
|
||||
"narHash": "sha256-iH+tM4MmtYMfWuWoo6KIc7Al+zQL13f3ScJloqSKyAs=",
|
||||
"owner": "kaylorben",
|
||||
"repo": "nixcord",
|
||||
"rev": "a171d05a26467a74c66138ac83f1dd1fb07e4a3e",
|
||||
"rev": "35c173408a25cae1c5af23b9d4fd80a181a395d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -453,11 +549,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1743583204,
|
||||
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
|
||||
"lastModified": 1762111121,
|
||||
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
|
||||
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -484,11 +580,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1742669843,
|
||||
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
|
||||
"lastModified": 1763283776,
|
||||
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
|
||||
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -516,27 +612,27 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1743576891,
|
||||
"narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
|
||||
"lastModified": 1763421233,
|
||||
"narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "44a69ed688786e98a101f02b712c313f1ade37ab",
|
||||
"rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1751984180,
|
||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||
"lastModified": 1762977756,
|
||||
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -546,6 +642,52 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763565747,
|
||||
"narHash": "sha256-FgCL7pEFgZjaYoiDbY+f9fAwHqgVNSZEkcLUvTnhwHw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "82bc02466cccb7594aef296aea128b9b59621efe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"ixx": "ixx",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761730856,
|
||||
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
@@ -556,11 +698,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742649964,
|
||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
||||
"lastModified": 1763319842,
|
||||
"narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
||||
"rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -577,21 +719,21 @@
|
||||
"hyprland-plugins": "hyprland-plugins",
|
||||
"nixcord": "nixcord",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"unstable": "unstable"
|
||||
"nixvim": "nixvim",
|
||||
"spicetify-nix": "spicetify-nix"
|
||||
}
|
||||
},
|
||||
"spicetify-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751776600,
|
||||
"narHash": "sha256-75wd/aSvSoXUVd/buwI+Gsqx6LdmBVMbdXw+tCV1u58=",
|
||||
"lastModified": 1763267524,
|
||||
"narHash": "sha256-CywB4iCpGr4CYZAD+WboFwBQ7Wnc7LdfSemFWuH/1Ro=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "54fad36eeae085f4a6ce4522bc351705b9c0c58a",
|
||||
"rev": "cf33e39bd1a21993a28ffee8be433e212ecf346a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -630,19 +772,33 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"unstable": {
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1756787288,
|
||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -674,11 +830,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741934139,
|
||||
"narHash": "sha256-ZhTcTH9FoeAtbPfWGrhkH7RjLJZ7GeF18nygLAMR+WE=",
|
||||
"lastModified": 1761431178,
|
||||
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "150b0b6f52bb422a1b232a53698606fe0320dde0",
|
||||
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
105
flake.nix
@@ -15,8 +15,13 @@
|
||||
|
||||
inputs = {
|
||||
# Core
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
# Editor
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Desktop ENV
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
@@ -31,7 +36,7 @@
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
|
||||
# User Config
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
};
|
||||
@@ -42,11 +47,11 @@
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
catppuccin,
|
||||
nixvim,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Common Configuration
|
||||
commonModules = [
|
||||
@@ -72,23 +77,20 @@
|
||||
];
|
||||
|
||||
commonHomeManagerConfig =
|
||||
{
|
||||
username,
|
||||
monitorSetup ? "single",
|
||||
}:
|
||||
{ username, monitorSetup }:
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "backup";
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit username monitorSetup;
|
||||
inherit inputs username monitorSetup;
|
||||
};
|
||||
users.${username} = import ./users/${username}/home.nix;
|
||||
sharedModules = [
|
||||
inputs.catppuccin.homeModules.catppuccin
|
||||
inputs.nixcord.homeModules.nixcord
|
||||
inputs.nixvim.homeModules.nixvim
|
||||
];
|
||||
};
|
||||
};
|
||||
@@ -100,13 +102,18 @@
|
||||
username,
|
||||
system ? "x86_64-linux",
|
||||
monitorSetup ? "single",
|
||||
containerization ? "none",
|
||||
extraModules ? [ ],
|
||||
}:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit username monitorSetup;
|
||||
inherit
|
||||
inputs
|
||||
username
|
||||
monitorSetup
|
||||
containerization
|
||||
;
|
||||
};
|
||||
modules =
|
||||
commonModules
|
||||
@@ -115,59 +122,87 @@
|
||||
./users/${username}/nixos.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
(commonHomeManagerConfig { inherit username monitorSetup; })
|
||||
./modules/containerization
|
||||
|
||||
# {
|
||||
# nixpkgs.overlays = [
|
||||
# inputs.rust-overlay.overlays.default
|
||||
# ] ++ builtins.attrValues (import ./overlays);
|
||||
# }
|
||||
]
|
||||
++ extraModules;
|
||||
|
||||
};
|
||||
|
||||
# ISO configuration
|
||||
isoConfig = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
curl
|
||||
];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
mkIsoConfig =
|
||||
{ system }:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
curl
|
||||
];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
packages.${system}.default = self.nixosConfigurations.iso.config.system.build.isoImage;
|
||||
# ISO and Image Defaults
|
||||
packages.x86_64-linux.iso = self.nixosConfigurations.iso.config.system.build.isoImage;
|
||||
packages.x86_64-linux.default = self.packages.x86_64-linux.iso;
|
||||
|
||||
nixosConfigurations = {
|
||||
iso = isoConfig;
|
||||
iso = mkIsoConfig { system = "x86_64-linux"; };
|
||||
|
||||
qemu = mkSystem {
|
||||
hostname = "qemu";
|
||||
username = "phil";
|
||||
monitorSetup = "single";
|
||||
containerization = "none";
|
||||
};
|
||||
|
||||
m920q = mkSystem {
|
||||
hostname = "m920q";
|
||||
username = "phil";
|
||||
monitorSetup = "dual";
|
||||
containerization = "podman";
|
||||
};
|
||||
|
||||
hp15-n028sg = mkSystem {
|
||||
hostname = "hp15-n028sg";
|
||||
username = "phil";
|
||||
monitorSetup = "single";
|
||||
containerization = "docker";
|
||||
};
|
||||
|
||||
cloud = mkSystem {
|
||||
hostname = "cluster.cyperpunk.de";
|
||||
username = "phil";
|
||||
monitorSetup = "none";
|
||||
containerization = "podman";
|
||||
};
|
||||
|
||||
rpi4-1 = mkSystem {
|
||||
system = "aarch64-linux";
|
||||
hostname = "rpi4-1";
|
||||
username = "phil";
|
||||
monitorSetup = "none";
|
||||
containerization = "podman";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.dolphin
|
||||
libsForQt5.kio-extras
|
||||
kio-fuse
|
||||
];
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
krusader
|
||||
krename
|
||||
kdiff3
|
||||
# kdePackages.kompare
|
||||
xxdiff
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
progams.spacefm.enable = true;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Font
|
||||
font = {
|
||||
normal = {
|
||||
family = "FiraCode Nerd Font Mono"; # Change to your preferred Nerd Font
|
||||
style = "Regular";
|
||||
};
|
||||
bold = {
|
||||
family = "FiraCode Nerd Font Mono";
|
||||
style = "Bold";
|
||||
};
|
||||
italic = {
|
||||
family = "FiraCode Nerd Font Mono";
|
||||
style = "Italic";
|
||||
};
|
||||
size = 11;
|
||||
};
|
||||
window = {
|
||||
opacity = 0.6; # Adjust between 0.0 (fully transparent) and 1.0 (opaque)
|
||||
padding = {
|
||||
x = 10;
|
||||
y = 10;
|
||||
};
|
||||
decorations = "full"; # none, transparent, full, buttonless
|
||||
title = "Alacritty";
|
||||
dynamic_title = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
monospace = [ "FiraCode Nerd Font Mono" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fira-code-nerdfont
|
||||
];
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{ monitorSetup, ... }:
|
||||
{
|
||||
imports = [
|
||||
./kitty.nix # Terminal
|
||||
./hyprland.nix
|
||||
./hypridle.nix
|
||||
./hyprlock.nix
|
||||
./hyprpaper.nix
|
||||
./rofi # App Launcher
|
||||
./mako.nix # Notifyer
|
||||
./cava.nix # Music Visualizer
|
||||
];
|
||||
|
||||
programs.waybar =
|
||||
if monitorSetup == "single" then
|
||||
import ../../home/hyprland/waybar/single.nix
|
||||
else if monitorSetup == "dual" then
|
||||
import ../../home/hyprland/waybar/dual.nix
|
||||
else
|
||||
{ };
|
||||
|
||||
home.file.".config/waybar" = {
|
||||
source = ./waybar/configs;
|
||||
# copy the scripts directory recursively
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/hypr/hyprland.conf".enable = false;
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.kitty = lib.mkForce {
|
||||
enable = true;
|
||||
settings = {
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
confirm_os_window_close = 0;
|
||||
dynamic_background_opacity = true;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = "-1.0";
|
||||
window_padding_width = 10;
|
||||
background_opacity = "0.8";
|
||||
background_blur = 5;
|
||||
tab_bar_min_tabs = 1;
|
||||
tab_bar_edge = "bottom";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "slanted";
|
||||
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
||||
symbol_map =
|
||||
let
|
||||
mappings = [
|
||||
"U+23FB-U+23FE"
|
||||
"U+2B58"
|
||||
"U+E200-U+E2A9"
|
||||
"U+E0A0-U+E0A3"
|
||||
"U+E0B0-U+E0BF"
|
||||
"U+E0C0-U+E0C8"
|
||||
"U+E0CC-U+E0CF"
|
||||
"U+E0D0-U+E0D2"
|
||||
"U+E0D4"
|
||||
"U+E700-U+E7C5"
|
||||
"U+F000-U+F2E0"
|
||||
"U+2665"
|
||||
"U+26A1"
|
||||
"U+F400-U+F4A8"
|
||||
"U+F67C"
|
||||
"U+E000-U+E00A"
|
||||
"U+F300-U+F313"
|
||||
"U+E5FA-U+E62B"
|
||||
];
|
||||
in
|
||||
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
font = "FiraCodeNerdFontPropo 12";
|
||||
borderSize = 4;
|
||||
borderRadius = 8;
|
||||
defaultTimeout = 5000;
|
||||
|
||||
extraConfig = ''
|
||||
[app-name=Spotify]
|
||||
border-color=#a6e3a1
|
||||
'';
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
};
|
||||
|
||||
home.file.".config/waybar" = {
|
||||
source = ./configs;
|
||||
# copy the scripts directory recursively
|
||||
recursive = true;
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
let
|
||||
common = import ./common.nix;
|
||||
hyprland = import ./hyprland.nix;
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar =
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
output = [ "DP-1" ];
|
||||
modules-left = [
|
||||
"custom/nixicon"
|
||||
"clock"
|
||||
];
|
||||
modules-center = [
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
modules-right = [
|
||||
"group/hardware"
|
||||
];
|
||||
}
|
||||
// common.widgets
|
||||
// hyprland.widgets;
|
||||
|
||||
secondBar =
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
output = [ "HDMI-A-2" ];
|
||||
modules-left = [ "group/media" ];
|
||||
modules-center = [ "hyprland/workspaces" ];
|
||||
modules-right = [ "custom/weather" ];
|
||||
}
|
||||
// common.widgets
|
||||
// hyprland.widgets;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.niri.enable = true;
|
||||
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
catppuccin-bat,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
|
||||
];
|
||||
|
||||
programs = {
|
||||
tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
keyMode = "vi";
|
||||
extraConfig = "mouse on";
|
||||
};
|
||||
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
theme = "catppuccin-mocha";
|
||||
};
|
||||
themes = {
|
||||
# https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme
|
||||
catppuccin-mocha = {
|
||||
src = catppuccin-bat;
|
||||
file = "Catppuccin-mocha.tmTheme";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
btop.enable = true; # replacement of htop/nmon
|
||||
eza.enable = true; # A modern replacement for ‘ls’
|
||||
jq.enable = true; # A lightweight and flexible command-line JSON processor
|
||||
ssh.enable = true;
|
||||
aria2.enable = true;
|
||||
|
||||
skim = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
defaultCommand = "rg --files --hidden";
|
||||
changeDirWidgetOptions = [
|
||||
"--preview 'exa --icons --git --color always -T -L 3 {} | head -200'"
|
||||
"--exact"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
#syncthing.enable = true;
|
||||
|
||||
# auto mount usb drives
|
||||
udiskie.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install sqlitebrowser (DB Browser for SQLite)
|
||||
home.packages = with pkgs; [
|
||||
beekeeper-studio
|
||||
];
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# C / C++
|
||||
clang
|
||||
#gcc
|
||||
lua
|
||||
|
||||
# Rust
|
||||
cargo
|
||||
rustc
|
||||
|
||||
# Zig
|
||||
zig
|
||||
|
||||
#python
|
||||
python314
|
||||
];
|
||||
|
||||
programs.go = {
|
||||
enable = true;
|
||||
packages = { };
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
./git.nix
|
||||
./neovim
|
||||
./fstl.nix
|
||||
./openscad.nix
|
||||
./sqllite_browser.nix
|
||||
./compilers.nix
|
||||
./beekeeper-studio.nix
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install fstl
|
||||
home.packages = with pkgs; [
|
||||
fstl
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = [ pkgs.gh ];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
||||
# ... Other options ...
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install OpenSCAD
|
||||
home.packages = with pkgs; [
|
||||
openscad
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install sqlitebrowser (DB Browser for SQLite)
|
||||
home.packages = with pkgs; [
|
||||
sqlitebrowser
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
airshipper
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
itch
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
lutris
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
xonotic
|
||||
# armagetron
|
||||
# freeciv
|
||||
# mindustry
|
||||
# openra
|
||||
];
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
/*
|
||||
home.packages = with pkgs; [
|
||||
steam
|
||||
];
|
||||
*/
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
audacity
|
||||
yt-dlp
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# images
|
||||
imv
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
# media - control and enjoy audio/video
|
||||
{
|
||||
imports = [
|
||||
./audio.nix
|
||||
./image.nix
|
||||
./webcam.nix
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
#enableVirtualCamera = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-vkcapture
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.spicetify =
|
||||
let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
spotifyPackage = pkgs.spotify;
|
||||
theme = spicePkgs.themes.catppuccin;
|
||||
colorScheme = "mocha";
|
||||
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
bookmark
|
||||
fullAppDisplay
|
||||
keyboardShortcut
|
||||
popupLyrics
|
||||
shuffle
|
||||
autoVolume
|
||||
betterGenres
|
||||
adblock
|
||||
wikify
|
||||
songStats
|
||||
];
|
||||
|
||||
enabledCustomApps = with spicePkgs.apps; [
|
||||
lyricsPlus
|
||||
newReleases
|
||||
marketplace
|
||||
];
|
||||
|
||||
#enabledSnippets = with spicePkgs.snippets; [ ];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Blender
|
||||
home.packages = with pkgs; [
|
||||
blender
|
||||
];
|
||||
|
||||
# Optional: Install specific versions of Blender (e.g., LTS)
|
||||
# home.packages = with pkgs; [
|
||||
# blender-bin # Latest stable release
|
||||
# blender-lts
|
||||
# ];
|
||||
|
||||
# Optional: Install Blender plugins
|
||||
# home.packages = with pkgs; [
|
||||
# blender
|
||||
# blender-addons.io-scene-gltf2 # Example GLTF exporter/importer
|
||||
# # Add other Blender addons here
|
||||
# ];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.programs.geary.enable = true;
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
logseq-patch = pkgs.logseq.override {
|
||||
electron_27 = pkgs.electron_34;
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
logseq-patch
|
||||
logseq
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ notesnook ];
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Obsidian
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
|
||||
# Optional: You might want to configure Obsidian's data directory.
|
||||
# By default, Obsidian stores its data in ~/Obsidian.
|
||||
# You can change this using environment variables, but it's less common to manage this declaratively.
|
||||
# Example (you might not need this):
|
||||
# environment.variables = {
|
||||
# OBSIDIAN_VAULT_PATH = "/path/to/your/vaults";
|
||||
# };
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.libsForQt5.okular ];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install OnlyOffice Desktop Editors
|
||||
home.packages = with pkgs; [
|
||||
onlyoffice-desktopeditors
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Slic3r
|
||||
home.packages = with pkgs; [
|
||||
slic3r
|
||||
];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.trilium-desktop ];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Element Desktop
|
||||
home.packages = with pkgs; [
|
||||
element-desktop
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Teamspeak Desktop
|
||||
home.packages = with pkgs; [
|
||||
teamspeak3
|
||||
# teamspeak6-client
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Telegram Desktop
|
||||
home.packages = with pkgs; [
|
||||
telegram-desktop
|
||||
telegram-cli
|
||||
];
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
discord = lib.mkForce { enable = false; };
|
||||
vesktop.enable = true;
|
||||
|
||||
config = {
|
||||
useQuickCss = true;
|
||||
plugins = {
|
||||
betterFolders.enable = true;
|
||||
betterRoleContext.enable = true;
|
||||
mentionAvatars.enable = true;
|
||||
# Add other plugins as needed
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Element Desktop
|
||||
home.packages = with pkgs; [
|
||||
zapzap
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
|
||||
extensions = [
|
||||
# {id = "";} // extension id, query from chrome web store
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = false;
|
||||
profiles.${username} = { };
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.floorp = {
|
||||
enable = true;
|
||||
profiles.${username} = { };
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./qt.nix
|
||||
# ./gtk.nix
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
home.packages = with pkgs.libsForQt5; [
|
||||
qt5ct
|
||||
qtstyleplugin-kvantum
|
||||
];
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
|
||||
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
|
||||
};
|
||||
}
|
||||
@@ -14,11 +14,9 @@
|
||||
../../modules/localisation.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/pipewire.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/services.nix
|
||||
../../modules/regreet/regreet.nix
|
||||
../../modules/plymouth.nix
|
||||
../../modules/file_managers/spacefm.nix
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
@@ -52,4 +52,5 @@
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../modules/system.nix
|
||||
@@ -17,8 +12,6 @@
|
||||
../../modules/localisation.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/pipewire.nix
|
||||
#../../modules/podman.nix
|
||||
../../modules/docker.nix
|
||||
../../modules/services.nix
|
||||
../../modules/regreet/regreet.nix
|
||||
../../modules/plymouth.nix
|
||||
@@ -26,7 +19,7 @@
|
||||
../../modules/appimage.nix
|
||||
../../modules/qemu.nix
|
||||
../../modules/thunderbird.nix
|
||||
../../modules/canon_eos_550d.nix
|
||||
# ../../modules/canon_eos_550d.nix
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
@@ -37,38 +30,41 @@
|
||||
systemd-boot.enable = true;
|
||||
};
|
||||
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
|
||||
networking = {
|
||||
hostName = "nix-desktop";
|
||||
networkmanager.enable = true;
|
||||
#useDHCP = lib.mkForce true;
|
||||
#dhcpcd.enable = true;
|
||||
interfaces = {
|
||||
eno1.ipv4.addresses = [
|
||||
{
|
||||
address = "192.168.2.40";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
defaultGateway = {
|
||||
address = "192.168.2.1";
|
||||
interface = "eno1";
|
||||
useNetworkd = false;
|
||||
useDHCP = false;
|
||||
wireless = {
|
||||
enable = false; # Disable wpa_supplicant, NetworkManager handles WiFi
|
||||
};
|
||||
};
|
||||
|
||||
nameservers = [
|
||||
"192.168.2.2"
|
||||
"1.1.1.1"
|
||||
"8.8.8.8"
|
||||
];
|
||||
# Configure static IP for wired connection via NetworkManager
|
||||
# Create this file: /etc/NetworkManager/system-connections/eno1.nmconnection
|
||||
environment.etc."NetworkManager/system-connections/eno1.nmconnection" = {
|
||||
text = ''
|
||||
[connection]
|
||||
id=eno1
|
||||
type=ethernet
|
||||
interface-name=eno1
|
||||
|
||||
[ipv4]
|
||||
method=manual
|
||||
address1=192.168.2.40/24
|
||||
gateway=192.168.2.1
|
||||
dns=192.168.2.2;1.1.1.1;8.8.8.8;
|
||||
|
||||
[ipv6]
|
||||
method=auto
|
||||
'';
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.onlyoffice-bin
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -14,11 +14,9 @@
|
||||
../../modules/localisation.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/pipewire.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/services.nix
|
||||
../../modules/regreet/regreet.nix
|
||||
../../modules/plymouth.nix
|
||||
../../modules/file_managers/spacefm.nix
|
||||
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
|
||||
16
hosts/rpi4-1/default.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
../rpi4
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "nix-rpi1";
|
||||
interfaces.end0.ipv4.addresses = [
|
||||
{
|
||||
address = "192.168.2.35";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
51
hosts/rpi4/default.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
./fan-controll.nix
|
||||
];
|
||||
|
||||
boot.loader = {
|
||||
grub.enable = false;
|
||||
generic-extlinux-compatible.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = false;
|
||||
useNetworkd = true;
|
||||
useDHCP = false;
|
||||
|
||||
nameservers = [
|
||||
"192.168.2.2"
|
||||
"1.1.1.1"
|
||||
"8.8.8.8"
|
||||
];
|
||||
defaultGateway = {
|
||||
address = "192.168.2.1";
|
||||
interface = "end0";
|
||||
};
|
||||
|
||||
wireless = {
|
||||
enable = true;
|
||||
userControlled.enable = false;
|
||||
networks = {
|
||||
"LANFRED".psk = "CooleJungsWG";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
networking.firewall.enable = false;
|
||||
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
|
||||
}
|
||||
50
hosts/rpi4/fan-controll.nix
Normal file
@@ -0,0 +1,50 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python3.withPackages (ps: [ ps.smbus2 ]))
|
||||
];
|
||||
|
||||
|
||||
# Fan control service
|
||||
systemd.services.argon-fan = {
|
||||
description = "Argon40 Fan Control via I2C";
|
||||
after = [ "multi-user.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
Restart = "always";
|
||||
ExecStart = pkgs.writeScript "argon-fan.py" ''
|
||||
#!${pkgs.python3.withPackages (ps: [ ps.smbus2 ])}/bin/python3
|
||||
import smbus2
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
bus = smbus2.SMBus(1)
|
||||
|
||||
while True:
|
||||
try:
|
||||
# Get temperature
|
||||
temp_output = subprocess.check_output(['${pkgs.libraspberrypi}/bin/vcgencmd', 'measure_temp']).decode()
|
||||
temp = float(temp_output.replace("temp=","").replace("'C\n",""))
|
||||
|
||||
# Set fan speed based on temperature (0-100)
|
||||
if temp < 55:
|
||||
speed = 0
|
||||
elif temp < 60:
|
||||
speed = 25
|
||||
elif temp < 65:
|
||||
speed = 50
|
||||
else:
|
||||
speed = 100
|
||||
|
||||
bus.write_byte(0x1a, speed)
|
||||
print(f"Temp: {temp}°C, Fan: {speed}%")
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
|
||||
time.sleep(30)
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
26
hosts/rpi4/hardware-configuration.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/storage" =
|
||||
{ device = "/dev/disk/by-label/STORAGE";
|
||||
fsType = "ext4";
|
||||
options = [ "nofail" ];
|
||||
};
|
||||
swapDevices = [
|
||||
{ device = "/swapfile";
|
||||
size = 4096;
|
||||
}
|
||||
];
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
hardware.i2c.enable = true;
|
||||
}
|
||||
41
modules/containerization/default.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
containerization ? "none",
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
# Import the appropriate containerization module based on the parameter
|
||||
containerModule =
|
||||
if containerization == "podman" then
|
||||
import ./podman.nix
|
||||
else if containerization == "docker" then
|
||||
import ./docker.nix
|
||||
else if containerization == "none" then
|
||||
{ }
|
||||
else
|
||||
throw "Unknown containerization type: ${containerization}. Valid options are: podman, docker, none";
|
||||
in
|
||||
|
||||
{
|
||||
imports = [ containerModule ];
|
||||
|
||||
# Common packages and configuration for all systems
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Remove the curly braces {}
|
||||
dive # docker layer viewer
|
||||
tailscale # VPN
|
||||
];
|
||||
|
||||
virtualisation.containers.enable = true;
|
||||
virtualisation.oci-containers.containers = {
|
||||
/*
|
||||
container-name = {
|
||||
image = "image";
|
||||
autoStart = true;
|
||||
ports = [ "127.0.0.1:1234:1234" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
}
|
||||
18
modules/containerization/docker.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
docker-compose
|
||||
lazydocker # docker tui
|
||||
];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
}
|
||||
17
modules/containerization/podman.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
podman-compose # docker-compose alternative
|
||||
podman-tui # status of containers in terminal
|
||||
podman-desktop # Desktop client
|
||||
];
|
||||
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "podman";
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Virtualisation
|
||||
docker-compose # docker-compose alternative
|
||||
dive # docker layer viewer
|
||||
tailscale # Vpn
|
||||
];
|
||||
# Virtualisation
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
|
||||
docker = {
|
||||
enable = true;
|
||||
rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
};
|
||||
|
||||
oci-containers = {
|
||||
backend = "docker";
|
||||
containers = {
|
||||
/*
|
||||
container-name = {
|
||||
image = "image";
|
||||
autoStart = true;
|
||||
ports = [ "127.0.0.1:1234:1234" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,20 +1,95 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
font-manager
|
||||
gnome-characters
|
||||
];
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
# icon fonts
|
||||
material-icons
|
||||
material-black-colors
|
||||
material-design-icons
|
||||
icomoon-feather
|
||||
nixos-icons
|
||||
|
||||
# normal fonts
|
||||
noto-fonts
|
||||
noto-fonts-emoji
|
||||
noto-fonts-color-emoji
|
||||
|
||||
nerdfonts
|
||||
# Microsoft
|
||||
corefonts
|
||||
vista-fonts
|
||||
|
||||
# All Nerd Fonts
|
||||
nerd-fonts._0xproto
|
||||
nerd-fonts._3270
|
||||
nerd-fonts.agave
|
||||
nerd-fonts.anonymice
|
||||
nerd-fonts.arimo
|
||||
nerd-fonts.aurulent-sans-mono
|
||||
nerd-fonts.bigblue-terminal
|
||||
nerd-fonts.bitstream-vera-sans-mono
|
||||
nerd-fonts.blex-mono
|
||||
nerd-fonts.caskaydia-cove
|
||||
nerd-fonts.caskaydia-mono
|
||||
nerd-fonts.code-new-roman
|
||||
nerd-fonts.comic-shanns-mono
|
||||
nerd-fonts.commit-mono
|
||||
nerd-fonts.cousine
|
||||
nerd-fonts.d2coding
|
||||
nerd-fonts.daddy-time-mono
|
||||
nerd-fonts.dejavu-sans-mono
|
||||
nerd-fonts.droid-sans-mono
|
||||
nerd-fonts.envy-code-r
|
||||
nerd-fonts.fantasque-sans-mono
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.fira-mono
|
||||
nerd-fonts.geist-mono
|
||||
nerd-fonts.go-mono
|
||||
nerd-fonts.gohufont
|
||||
nerd-fonts.hack
|
||||
nerd-fonts.hasklug
|
||||
nerd-fonts.heavy-data
|
||||
nerd-fonts.hurmit
|
||||
nerd-fonts.im-writing
|
||||
nerd-fonts.inconsolata
|
||||
nerd-fonts.inconsolata-go
|
||||
nerd-fonts.inconsolata-lgc
|
||||
nerd-fonts.intone-mono
|
||||
nerd-fonts.iosevka
|
||||
nerd-fonts.iosevka-term
|
||||
nerd-fonts.iosevka-term-slab
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.lekton
|
||||
nerd-fonts.liberation
|
||||
nerd-fonts.lilex
|
||||
nerd-fonts.martian-mono
|
||||
nerd-fonts.meslo-lg
|
||||
nerd-fonts.monaspace
|
||||
nerd-fonts.monofur
|
||||
nerd-fonts.monoid
|
||||
nerd-fonts.mononoki
|
||||
nerd-fonts.noto
|
||||
nerd-fonts.open-dyslexic
|
||||
nerd-fonts.overpass
|
||||
nerd-fonts.profont
|
||||
nerd-fonts.proggy-clean-tt
|
||||
nerd-fonts.recursive-mono
|
||||
nerd-fonts.roboto-mono
|
||||
nerd-fonts.sauce-code-pro
|
||||
nerd-fonts.shure-tech-mono
|
||||
nerd-fonts.space-mono
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.terminess-ttf
|
||||
nerd-fonts.tinos
|
||||
nerd-fonts.ubuntu
|
||||
nerd-fonts.ubuntu-mono
|
||||
nerd-fonts.ubuntu-sans
|
||||
nerd-fonts.victor-mono
|
||||
nerd-fonts.zed-mono
|
||||
];
|
||||
|
||||
fontDir.enable = true;
|
||||
|
||||
# use fonts specified by user rather than default ones
|
||||
enableDefaultPackages = false;
|
||||
|
||||
@@ -23,16 +98,16 @@
|
||||
# B&W emojis that would sometimes show instead of some Color emojis
|
||||
fontconfig.defaultFonts = {
|
||||
serif = [
|
||||
"Noto Serif"
|
||||
"Noto Color Emoji"
|
||||
"FiraCode Nerd Font"
|
||||
#"Noto Color Emoji"
|
||||
];
|
||||
sansSerif = [
|
||||
"Noto Sans"
|
||||
"Noto Color Emoji"
|
||||
"FiraCode Nerd Font"
|
||||
#"Noto Color Emoji"
|
||||
];
|
||||
monospace = [
|
||||
"JetBrainsMono Nerd Font"
|
||||
"Noto Color Emoji"
|
||||
"FiraCode Nerd Font"
|
||||
#"Noto Color Emoji"
|
||||
];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{
|
||||
# Enable sound with pipewire.
|
||||
#sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
services.pulseaudio.enable = false;
|
||||
environment.systemPackages = with pkgs; [ pamixer ];
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Virtualisation
|
||||
podman-compose # docker-compose alternative
|
||||
dive # docker layer viewer
|
||||
podman-tui # status of containers in terminal
|
||||
podman-desktop # Desktop client
|
||||
tailscale # Vpn
|
||||
];
|
||||
# Virtualisation
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
|
||||
oci-containers = {
|
||||
backend = "podman";
|
||||
containers = {
|
||||
/*
|
||||
container-name = {
|
||||
image = "image";
|
||||
autoStart = true;
|
||||
ports = [ "127.0.0.1:1234:1234" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -3,10 +3,21 @@
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu
|
||||
quickemu
|
||||
quickgui
|
||||
nemu
|
||||
];
|
||||
|
||||
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
|
||||
|
||||
boot.binfmt.emulatedSystems = [
|
||||
"aarch64-linux"
|
||||
"riscv64-linux"
|
||||
];
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
environment.etc."qemu/bridge.conf".text = ''
|
||||
allow br0
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
@@ -17,9 +15,7 @@
|
||||
};
|
||||
*/
|
||||
|
||||
services.displayManager = {
|
||||
sessionPackages = [ pkgs.hyprland ];
|
||||
};
|
||||
environment.variables.QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||
|
||||
environment.etc = {
|
||||
"greetd/background.png".source = ../../wallpapers/lucy_with_cat.png;
|
||||
@@ -27,6 +23,23 @@
|
||||
hyprland
|
||||
fish
|
||||
'';
|
||||
|
||||
"greetd/wayland-sessions/hyprland.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Name=Hyprland
|
||||
Comment=Hyprland WM
|
||||
Exec=Hyprland
|
||||
Type=Application
|
||||
'';
|
||||
/*
|
||||
"greetd/wayland-sessions/niri.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Name=Niri
|
||||
Comment=Hyprland WM
|
||||
Exec=niri
|
||||
Type=Application
|
||||
'';
|
||||
*/
|
||||
};
|
||||
|
||||
programs.regreet = {
|
||||
@@ -47,7 +60,7 @@
|
||||
GTK = {
|
||||
application_prefer_dark_theme = true;
|
||||
cursor_theme_name = "Adwaita";
|
||||
font_name = lib.mkForce "FiraCodeNerdFontPropo 12";
|
||||
font_name = lib.mkForce "FiraCodeNerdFontProto 12";
|
||||
icon_theme_name = lib.mkForce "materialdesignicons";
|
||||
theme_name = "Adwaita";
|
||||
};
|
||||
|
||||
@@ -14,11 +14,12 @@
|
||||
printing.enable = true;
|
||||
|
||||
power-profiles-daemon.enable = true;
|
||||
logind.extraConfig = ''
|
||||
HandlePowerKey=ignore
|
||||
HandleSuspendKey=ignore
|
||||
HandleHibernateKey=ignore
|
||||
'';
|
||||
#logind.settings.Login = ''
|
||||
# HandlePowerKey=ignore
|
||||
# HandleSuspendKey=ignore
|
||||
# HandleHibernateKey=ignore
|
||||
# '';
|
||||
|
||||
flatpak.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
username,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -18,6 +18,25 @@
|
||||
];
|
||||
};
|
||||
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
config = {
|
||||
common.default = [ "gtk" ];
|
||||
hyprland.default = [
|
||||
"gtk"
|
||||
"hyprland"
|
||||
];
|
||||
};
|
||||
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.steam.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
|
||||
@@ -25,31 +44,37 @@
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Bare minimum
|
||||
vim
|
||||
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
git
|
||||
|
||||
cmatrix
|
||||
tdf
|
||||
figlet
|
||||
tty-clock
|
||||
lolcat
|
||||
# System tools
|
||||
sysstat
|
||||
lm_sensors # for `sensors` command
|
||||
ethtool
|
||||
pciutils # lspci
|
||||
pciutils # lspci:wwith
|
||||
usbutils # lsusb
|
||||
lshw
|
||||
nvme-cli
|
||||
smartmontools
|
||||
bluez
|
||||
impala
|
||||
hping
|
||||
|
||||
# Graphics
|
||||
libGL
|
||||
glxinfo
|
||||
mesa-demos
|
||||
|
||||
# Rizz
|
||||
fastfetch
|
||||
cpufetch
|
||||
hyfetch
|
||||
ramfetch
|
||||
neofetch
|
||||
ghfetch
|
||||
libnotify
|
||||
|
||||
@@ -63,6 +88,9 @@
|
||||
iftop # network monitor
|
||||
iperf3 # network tester
|
||||
nmap # network discovery
|
||||
rustscan
|
||||
rustup
|
||||
perl
|
||||
eza # ls replacement
|
||||
curl
|
||||
dnsutils
|
||||
@@ -76,11 +104,13 @@
|
||||
zstd
|
||||
gnupg
|
||||
fzf
|
||||
tabiew
|
||||
|
||||
# nix related
|
||||
nix-index
|
||||
nix-tree
|
||||
nix-health
|
||||
direnv
|
||||
|
||||
# Archives
|
||||
zip
|
||||
@@ -88,12 +118,13 @@
|
||||
p7zip
|
||||
xz
|
||||
|
||||
postman
|
||||
#teamspeak6-client
|
||||
];
|
||||
|
||||
security.pam.services.swaylock = { };
|
||||
security.polkit.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
programs.ssh.startAgent = true;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
programs.thunderbird.enable = true;
|
||||
}
|
||||
|
||||
10
overlays/default.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
let
|
||||
dir = ./.;
|
||||
files = builtins.filter (f: f != "default.nix") (builtins.attrNames (builtins.readDir dir));
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
map (f: {
|
||||
name = f;
|
||||
value = import "${dir}/${f}";
|
||||
}) files
|
||||
)
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
26
programs/wm/common/floorp.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.floorp = {
|
||||
enable = true;
|
||||
profiles.${username} = {
|
||||
extensions.force = true;
|
||||
settings = {
|
||||
"browser.startup.homepage" = "https://www.cyperpunk.de";
|
||||
"browser.search.region" = "DE";
|
||||
"browser.search.isUS" = false;
|
||||
"general.useragent.locale" = "de-DE";
|
||||
"browser.bookmarks.showMobileBookmarks" = true;
|
||||
"browser.newtabpage.pinned" = [
|
||||
{
|
||||
title = "Cyperpunk";
|
||||
url = "https://www.cyperpunk.de/";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
112
programs/wm/common/kitty.nix
Normal file
@@ -0,0 +1,112 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.kitty = lib.mkForce {
|
||||
enable = true;
|
||||
settings = {
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
confirm_os_window_close = 0;
|
||||
dynamic_background_opacity = true;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = "-1.0";
|
||||
window_padding_width = 10;
|
||||
background_opacity = "0.8";
|
||||
background_blur = 5;
|
||||
tab_bar_min_tabs = 1;
|
||||
tab_bar_edge = "bottom";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "slanted";
|
||||
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
||||
symbol_map =
|
||||
let
|
||||
mappings = [
|
||||
"U+23FB-U+23FE"
|
||||
"U+2B58"
|
||||
"U+E200-U+E2A9"
|
||||
"U+E0A0-U+E0A3"
|
||||
"U+E0B0-U+E0BF"
|
||||
"U+E0C0-U+E0C8"
|
||||
"U+E0CC-U+E0CF"
|
||||
"U+E0D0-U+E0D2"
|
||||
"U+E0D4"
|
||||
"U+E700-U+E7C5"
|
||||
"U+F000-U+F2E0"
|
||||
"U+2665"
|
||||
"U+26A1"
|
||||
"U+F400-U+F4A8"
|
||||
"U+F67C"
|
||||
"U+E000-U+E00A"
|
||||
"U+F300-U+F313"
|
||||
"U+E5FA-U+E62B"
|
||||
];
|
||||
in
|
||||
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
|
||||
};
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
command_timeout = 500;
|
||||
|
||||
format = "$username$hostname $directory $git_branch$git_status\n$character ";
|
||||
right_format = "$cmd_duration";
|
||||
|
||||
username = {
|
||||
style_user = "bold #cba6f7";
|
||||
style_root = "bold #f38ba8";
|
||||
format = "[┌](bold #a6e3a1)[$user]($style)";
|
||||
show_always = true;
|
||||
};
|
||||
|
||||
hostname = {
|
||||
style = "bold #74c7ec";
|
||||
format = "[@](bold #fab387)[$hostname]($style)";
|
||||
ssh_only = false;
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "bold #a6e3a1";
|
||||
truncation_length = 0;
|
||||
truncation_symbol = "";
|
||||
format = "[⤇ ](bold #f38ba8)[《$path 》]($style)";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = "[⟦$branch⟧]($style)";
|
||||
style = "bold #f9e2af";
|
||||
};
|
||||
|
||||
# Git status module settings
|
||||
git_status = {
|
||||
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
|
||||
style = "bold #a6e3a1";
|
||||
conflicted = "";
|
||||
untracked = "";
|
||||
modified = "";
|
||||
staged = "";
|
||||
renamed = "";
|
||||
deleted = "";
|
||||
};
|
||||
|
||||
# Command duration module
|
||||
cmd_duration = {
|
||||
format = "[$duration]($style)";
|
||||
style = "bold #cdd6f4";
|
||||
min_time = 5000; # Only show if command takes longer than 5 seconds
|
||||
};
|
||||
|
||||
# Character module (prompt symbol)
|
||||
character = {
|
||||
success_symbol = "[└──────⇴ ](bold #a6e3a1)";
|
||||
error_symbol = "[└──────⇴ ](bold #f38ba8)";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
format = "[$symbol$state( \($name\))]($style)";
|
||||
symbol = "U+02744";
|
||||
style = "bold #89dceb";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -54,7 +54,6 @@ require("mason-lspconfig").setup({
|
||||
"nil_ls",
|
||||
"rust_analyzer",
|
||||
"pylsp",
|
||||
"stylelint-lsp",
|
||||
},
|
||||
automatic_installation = true,
|
||||
})
|
||||
@@ -83,16 +82,32 @@ cmp.setup({
|
||||
}),
|
||||
})
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
-- Keymaps
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, {})
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
|
||||
|
||||
-- Setup language servers
|
||||
lspconfig.lua_ls.setup({
|
||||
-- Set default capabilities for all servers
|
||||
vim.lsp.config("*", {
|
||||
capabilities = capabilities,
|
||||
})
|
||||
|
||||
-- Configure lua_ls with specific settings
|
||||
vim.lsp.config("lua_ls", {
|
||||
cmd = { "lua-language-server" },
|
||||
root_markers = {
|
||||
".luarc.json",
|
||||
".luarc.jsonc",
|
||||
".luacheckrc",
|
||||
".stylua.toml",
|
||||
"stylua.toml",
|
||||
"selene.toml",
|
||||
"selene.yml",
|
||||
".git",
|
||||
},
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = { version = "LuaJIT" },
|
||||
@@ -103,15 +118,20 @@ lspconfig.lua_ls.setup({
|
||||
},
|
||||
})
|
||||
|
||||
lspconfig.nil_ls.setup({ capabilities = capabilities })
|
||||
lspconfig.rust_analyzer.setup({ capabilities = capabilities })
|
||||
lspconfig.pylsp.setup({ capabilities = capabilities })
|
||||
lspconfig.stylelint_lsp.setup({
|
||||
cmd = { "stylelint-lsp", "--stdio" },
|
||||
filetypes = { "css", "scss", "rasi" },
|
||||
capabilities = vim.lsp.protocol.make_client_capabilities(),
|
||||
-- Configure stylelint_lsp with custom cmd and filetypes
|
||||
vim.lsp.config("stylelint_lsp", {
|
||||
cmd = { "stylelint-lsp", "--stdio" },
|
||||
filetypes = { "css", "scss", "rasi" },
|
||||
root_markers = { ".stylelintrc", ".stylelintrc.json", "stylelint.config.js", ".git" },
|
||||
})
|
||||
|
||||
-- Enable all language servers
|
||||
vim.lsp.enable("lua_ls")
|
||||
vim.lsp.enable("nil_ls")
|
||||
vim.lsp.enable("rust_analyzer")
|
||||
vim.lsp.enable("pylsp")
|
||||
vim.lsp.enable("stylelint_lsp")
|
||||
|
||||
-- Conform
|
||||
require("conform").setup({
|
||||
formatters_by_ft = {
|
||||
@@ -25,7 +25,15 @@
|
||||
alpha-nvim
|
||||
cheatsheet-nvim
|
||||
toggleterm-nvim
|
||||
avante-nvim # AI Stuff
|
||||
|
||||
# AI Stuff
|
||||
avante-nvim
|
||||
plenary-nvim
|
||||
nui-nvim
|
||||
dressing-nvim
|
||||
nvim-web-devicons
|
||||
img-clip-nvim
|
||||
render-markdown-nvim
|
||||
|
||||
# Add conform.nvim as a custom plugin
|
||||
(pkgs.vimUtils.buildVimPlugin {
|
||||
@@ -39,16 +47,17 @@
|
||||
})
|
||||
|
||||
# Add telescope.vim as a custom plugin
|
||||
(pkgs.vimUtils.buildVimPlugin {
|
||||
name = "telescope-nvim";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nvim-telescope";
|
||||
repo = "telescope.nvim";
|
||||
rev = "0.1.8";
|
||||
sha256 = "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=";
|
||||
};
|
||||
})
|
||||
|
||||
/*
|
||||
(pkgs.vimUtils.buildVimPlugin {
|
||||
name = "telescope-nvim";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nvim-telescope";
|
||||
repo = "telescope.nvim";
|
||||
rev = "0.1.8";
|
||||
sha256 = "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=";
|
||||
};
|
||||
})
|
||||
*/
|
||||
];
|
||||
|
||||
extraLuaConfig = builtins.readFile (./. + "/config.lua");
|
||||
@@ -68,5 +77,11 @@
|
||||
nil
|
||||
rust-analyzer
|
||||
python3Packages.python-lsp-server
|
||||
# Avante
|
||||
curl
|
||||
cargo
|
||||
clang
|
||||
zig
|
||||
rustc
|
||||
];
|
||||
}
|
||||
12
programs/wm/common/notifier/mako.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
settings = {
|
||||
font = "FiraCodeNerdFontPropo 12";
|
||||
border-size = 4;
|
||||
border-radius = 8;
|
||||
default-timeout = 5000;
|
||||
};
|
||||
};
|
||||
}
|
||||
110
programs/wm/common/notifier/swaync.nix
Normal file
@@ -0,0 +1,110 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
positionX = "center";
|
||||
positionY = "center";
|
||||
layer = "overlay";
|
||||
control-center-layer = "top";
|
||||
layer-shell = true;
|
||||
cssPriority = "user";
|
||||
control-center-margin-top = 100;
|
||||
control-center-margin-bottom = 200;
|
||||
control-center-margin-right = 0;
|
||||
control-center-margin-left = 0;
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = false;
|
||||
notification-icon-size = 64;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
widgets = [
|
||||
"mpris"
|
||||
"volume"
|
||||
"inhibitors"
|
||||
"title"
|
||||
"dnd"
|
||||
"notifications"
|
||||
];
|
||||
widget-config = {
|
||||
|
||||
mpris = {
|
||||
blacklist = [ ];
|
||||
autohide = false;
|
||||
show-album-art = "always";
|
||||
loop-carousel = false;
|
||||
image-size = 96;
|
||||
image-radius = 12;
|
||||
};
|
||||
|
||||
volume = {
|
||||
label = "gain";
|
||||
show-per-app = false;
|
||||
empty-list-label = "Nothin' is playin'";
|
||||
expand-button-label = "⤢";
|
||||
collaps-button-label = "⤡";
|
||||
};
|
||||
|
||||
title = {
|
||||
text = "Hollerin'";
|
||||
clear-all-button = true;
|
||||
button-text = "Sheriff's Pardon";
|
||||
};
|
||||
|
||||
dnd = {
|
||||
text = "Let'er rest";
|
||||
};
|
||||
|
||||
menubar = {
|
||||
"menu#power" = {
|
||||
label = "Power";
|
||||
position = "right";
|
||||
animation-type = "slide_down";
|
||||
animation-duration = 250;
|
||||
actions = [
|
||||
{
|
||||
label = "Bolt It";
|
||||
command = "hyprlock";
|
||||
}
|
||||
{
|
||||
label = "Ride Out";
|
||||
command = "hyprctl dispatch exit";
|
||||
}
|
||||
{
|
||||
label = "Circle Back";
|
||||
command = "systemctl reboot";
|
||||
}
|
||||
{
|
||||
label = "Bet Down the Horses";
|
||||
command = "systemctl poweroff";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
"buttons#media" = {
|
||||
position = "left";
|
||||
actions = [
|
||||
{
|
||||
label = "Play/Pause";
|
||||
command = "playerctl play-pause";
|
||||
}
|
||||
{
|
||||
label = "Next";
|
||||
command = "playerctl next";
|
||||
}
|
||||
{
|
||||
label = "Previous";
|
||||
command = "playerctl previous";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
notifications = {
|
||||
vexpand = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 9.2 MiB After Width: | Height: | Size: 9.2 MiB |
29
programs/wm/common/rofi/configs/config.ini
Normal file
@@ -0,0 +1,29 @@
|
||||
[dmenu]
|
||||
dmenu_command = rofi -theme ~/.config/rofi/network.rasi
|
||||
active_chars = ==
|
||||
highlight = True
|
||||
highlight_fg =
|
||||
highlight_bg =
|
||||
highlight_bold = True
|
||||
compact = False
|
||||
pinentry =
|
||||
wifi_icons =
|
||||
format = {name:<{max_len_name}s} {sec:<{max_len_sec}s} {icon:>4}
|
||||
list_saved = False
|
||||
prompt = Networks
|
||||
|
||||
[dmenu_passphrase]
|
||||
obscure = False
|
||||
obscure_color = #222222
|
||||
|
||||
[pinentry]
|
||||
description = Get network password
|
||||
prompt = Password:
|
||||
|
||||
[editor]
|
||||
terminal = kitty
|
||||
gui_if_available = True
|
||||
gui = nm-connection-editor
|
||||
|
||||
[nmdm]
|
||||
rescan_delay = 5
|
||||
140
programs/wm/common/rofi/configs/network.rasi
Normal file
@@ -0,0 +1,140 @@
|
||||
* {
|
||||
rosewater: #f5e0dc;
|
||||
flamingo: #f2cdcd;
|
||||
pink: #f5c2e7;
|
||||
mauve: #cba6f7;
|
||||
red: #f38ba8;
|
||||
maroon: #eba0ac;
|
||||
peach: #fab387;
|
||||
yellow: #f9e2af;
|
||||
green: #a6e3a1;
|
||||
teal: #94e2d5;
|
||||
sky: #89dceb;
|
||||
sapphire: #74c7ec;
|
||||
blue: #89b4fa;
|
||||
lavender: #b4befe;
|
||||
text: #cdd6f4;
|
||||
subtext1: #bac2de;
|
||||
subtext0: #a6adc8;
|
||||
overlay2: #9399b2;
|
||||
overlay1: #7f849c;
|
||||
overlay0: #6c7086;
|
||||
surface2: #585b70;
|
||||
surface1: #45475a;
|
||||
surface0: #313244;
|
||||
base: #1e1e2e;
|
||||
mantle: #181825;
|
||||
crust: #11111b;
|
||||
}
|
||||
* {
|
||||
background-color: transparent;
|
||||
text-color: #cdd6f4;
|
||||
font: "JetBrainsMono Nerd Font 12";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 408px;
|
||||
height: 728px;
|
||||
background-color: @base;
|
||||
border: 2px solid;
|
||||
border-color: @sapphire;
|
||||
border-radius: 12px;
|
||||
padding: 20px;
|
||||
|
||||
/* Center on screen */
|
||||
location: center;
|
||||
anchor: center;
|
||||
x-offset: 0;
|
||||
y-offset: 0;
|
||||
|
||||
background-image: url("~/.config/rofi/smoking_girl.png", both);
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
mainbox {
|
||||
spacing: 15px;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
inputbar {
|
||||
padding: 12px;
|
||||
border-radius: 8px;
|
||||
background-color: @mantle;
|
||||
children: [ "prompt", "entry" ];
|
||||
spacing: 10px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-color: @sky;
|
||||
font: "JetBrainsMono Nerd Font Bold 13";
|
||||
}
|
||||
|
||||
entry {
|
||||
placeholder: "Search networks...";
|
||||
placeholder-color: @surface2;
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
message {
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
background-color: @mantle;
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
listview {
|
||||
lines: 10;
|
||||
scrollbar: true;
|
||||
spacing: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
width: 4px;
|
||||
handle-width: 4px;
|
||||
handle-color: @blue;
|
||||
border-radius: 4px;
|
||||
background-color: @mantle;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 12px 15px;
|
||||
border-radius: 2px;
|
||||
background-color: rgba(30, 30, 46, 0.6);
|
||||
text-color: @text;
|
||||
spacing: 12px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @blue;
|
||||
border: 2px solid;
|
||||
border-color: @teal;
|
||||
text-color: @mantle;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 20px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* Active/Connected network highlight */
|
||||
element selected.active {
|
||||
background-color: @sapphire;
|
||||
border-color: @sky;
|
||||
}
|
||||
|
||||
/* Urgent (disconnected/error) state */
|
||||
element.urgent {
|
||||
background-color: @red;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @red;
|
||||
border-color: @peach;
|
||||
}
|
||||