Compare commits
61 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 98069fa8d9 | |||
| 077d8f07e7 | |||
| 2eb24167e5 | |||
| ce94f3e813 | |||
| 0a3cff7b74 | |||
| c0d2e8cd47 | |||
| b6915ab988 | |||
| e4b359c5ca | |||
| b9b932e990 | |||
| 616adf696b | |||
| 092e6cfd88 | |||
| 2c2d54a4a7 | |||
| 79769e4dc5 | |||
| 12b69102d9 | |||
| eb2c93805a | |||
| b82c18145e | |||
| cf2227a8c5 | |||
| 1ec541004a | |||
| 79ff636fa4 | |||
| d0986a97f3 | |||
| 6644a6aff7 | |||
| 44488a7959 | |||
| b31142964c | |||
| 5ddc8f7686 | |||
| f912025218 | |||
| ef63afecbe | |||
| 312c6321ed | |||
| 6755410f74 | |||
| db7a9afae7 | |||
| 34d4d0f707 | |||
| 86a677095a | |||
| 33213e6507 | |||
| 5edd43b802 | |||
| a435b7d0cc | |||
| 38f618f8c7 | |||
| 7f01bed179 | |||
| 3e6c55ebcb | |||
| 4ef866927d | |||
| 7da6280a1e | |||
| 60d1363f58 | |||
| f2628ed320 | |||
| c3517a0f7f | |||
| 380b774ee3 | |||
| cfc4e49f16 | |||
| e5bfd117b4 | |||
| 68ed6d035e | |||
| c41e664a6b | |||
| c78292ac67 | |||
| 88b161347d | |||
| a751485bf0 | |||
| e2d9522d89 | |||
| 53f787d6c8 | |||
| 45ed10b1ec | |||
| 041be371e5 | |||
| e32b7ce0a5 | |||
| 62160ebcf0 | |||
| 276d64816b | |||
| 743bec0bae | |||
| 881faf7aac | |||
| cb8eacf322 | |||
| 1a756d60e8 |
Generated
+207
-108
@@ -2,7 +2,9 @@
|
||||
"nodes": {
|
||||
"affinity-nix": {
|
||||
"inputs": {
|
||||
"elemental-wine-source": "elemental-wine-source",
|
||||
"corefonts": "corefonts",
|
||||
"crane": "crane",
|
||||
"fenix": "fenix",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
@@ -11,15 +13,15 @@
|
||||
],
|
||||
"nixpkgs-wine": "nixpkgs-wine",
|
||||
"on-linux": "on-linux",
|
||||
"plugin-loader": "plugin-loader",
|
||||
"plugin-loader-src": "plugin-loader-src",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767916874,
|
||||
"narHash": "sha256-IcvLwoF1CIOd7yELc0Xwqskilw2FxHHRm5ZnmNdBuKc=",
|
||||
"lastModified": 1779522232,
|
||||
"narHash": "sha256-43PUS3kPWEWVArFV9h1m4mrWIdHeeVXv7kdteYhobOs=",
|
||||
"owner": "mrshmllow",
|
||||
"repo": "affinity-nix",
|
||||
"rev": "0c110a15fb5605490f7de451073db1c775745fee",
|
||||
"rev": "328f8f66e375c64255dc3cb3453271aab4d4c273",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -66,11 +68,11 @@
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1760703920,
|
||||
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
||||
"lastModified": 1776754714,
|
||||
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
||||
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -96,33 +98,67 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"elemental-wine-source": {
|
||||
"corefonts": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.winehq.org",
|
||||
"lastModified": 1722747031,
|
||||
"narHash": "sha256-XVhz9p2kgFBoJ376vg8OaFXxcMEjAe9AK1hk0I1rb1Q=",
|
||||
"owner": "ElementalWarrior",
|
||||
"repo": "wine",
|
||||
"rev": "a7c9b19e1a26cf49c63a7c19189a3e2bbe2c6ac2",
|
||||
"type": "gitlab"
|
||||
"lastModified": 1431183738,
|
||||
"narHash": "sha256-610Km9GCtYWxi2SH5jH/XYPXc5f58q5lB05/5XxO/qM=",
|
||||
"owner": "pushcx",
|
||||
"repo": "corefonts",
|
||||
"rev": "8f8627b0004b5f1b952c09cf6390e4ae46475e59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.winehq.org",
|
||||
"owner": "ElementalWarrior",
|
||||
"ref": "affinity-photo3-wine9.13-part3",
|
||||
"repo": "wine",
|
||||
"type": "gitlab"
|
||||
"owner": "pushcx",
|
||||
"repo": "corefonts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1779130139,
|
||||
"narHash": "sha256-BLrtr42azquO7MdGFU5a7KiMl3YpFlTeIXqy1fT5GlQ=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "edb38893982a3338972bb4a2ec7ce7c29ba10fd9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"affinity-nix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1779270500,
|
||||
"narHash": "sha256-r60KTphdevmdIDz1iJ529HvcpOq082ZZ1OnN3jDnrqk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "848395a91def85c11694587636151d89555f1ddb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762929886,
|
||||
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
|
||||
@@ -145,11 +181,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1769918637,
|
||||
"narHash": "sha256-3XyGk89S0UFvKRZiKpFL4ImP5qP/2AOJUaYC7ogXnJo=",
|
||||
"lastModified": 1779508957,
|
||||
"narHash": "sha256-gNwsa7Hwp+pUNe9pvv2aFphcFnm8BoCUUQRm0HXJHD0=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "5659e4c18d1350d1b511fcdce885fdd879effa22",
|
||||
"rev": "3bd76938b820b6f7cf537fffa206bb6a73094b4f",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -162,11 +198,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1764873433,
|
||||
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||
"lastModified": 1776136500,
|
||||
"narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||
"rev": "0f8ba203d475587f477e7ae12661bd8459e225b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -209,11 +245,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"lastModified": 1778716662,
|
||||
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -229,11 +265,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"lastModified": 1775087534,
|
||||
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -260,7 +296,7 @@
|
||||
},
|
||||
"garandos-tui": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
"fenix": "fenix_2",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -290,11 +326,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767281941,
|
||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
||||
"lastModified": 1778507602,
|
||||
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
||||
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -326,20 +362,18 @@
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1767737596,
|
||||
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||
"type": "gitlab"
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"owner": "GNOME",
|
||||
"ref": "gnome-49",
|
||||
"repo": "gnome-shell",
|
||||
"type": "gitlab"
|
||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
@@ -349,11 +383,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769952507,
|
||||
"narHash": "sha256-eNTfxT3v8b7s1dqswgposi5Y1CUMoOUhQKiy29QY25U=",
|
||||
"lastModified": 1779507042,
|
||||
"narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b59376563943ce163b2553aeb63d0c170967d74e",
|
||||
"rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -366,11 +400,11 @@
|
||||
"libnbtplusplus": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1744811532,
|
||||
"narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=",
|
||||
"lastModified": 1772016279,
|
||||
"narHash": "sha256-7itkptyjoRcXfGLwg1/jxajetZ3a4mDc66+w4X6yW8s=",
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78",
|
||||
"rev": "687e43031df0dc641984b4256bcca50d5b3f7de3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -422,11 +456,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1769789167,
|
||||
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
|
||||
"lastModified": 1779508470,
|
||||
"narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5",
|
||||
"rev": "29916453413845e54a65b8a1cf996842300cd299",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -438,11 +472,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1765674936,
|
||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||
"lastModified": 1777168982,
|
||||
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -471,14 +505,15 @@
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
],
|
||||
"noctalia-qs": "noctalia-qs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769983098,
|
||||
"narHash": "sha256-PKej3N1BxAoKzusrdWuS9gT8bXW0U/Zk8RkedsP3qYc=",
|
||||
"lastModified": 1779504029,
|
||||
"narHash": "sha256-f8u9DV9Qk8KJh7DVvk4UgUFTN0NDJeFxgrffTSwPkpA=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "2a98d04b2f5e251935ba296c0d7dc374bdc5e32d",
|
||||
"rev": "b99b7a7f06ff749df9ac43181ff7889ff90c5599",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -487,6 +522,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia-qs": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems",
|
||||
"treefmt-nix": "treefmt-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1778983195,
|
||||
"narHash": "sha256-hE3EFK5GoSdbO5WHZ8bZDUVYkofbDLQN/KK25z7IOOI=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"rev": "4116b41cdc89e186be7cb8b24a9b6022af95d742",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
@@ -498,11 +556,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767810917,
|
||||
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
||||
"lastModified": 1777598946,
|
||||
"narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
||||
"rev": "5d55af01c0f86be583931fe99207fc56c14134b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -514,11 +572,11 @@
|
||||
"on-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1766544016,
|
||||
"narHash": "sha256-3X1426N7n6bwM7GAQOvpCq2OVdlQevCzbpak0l9B6BU=",
|
||||
"lastModified": 1772699425,
|
||||
"narHash": "sha256-xhqkN2I5r+Ty2k8HEsLg5e8Eaazb0Qyioqjs87BQOnY=",
|
||||
"owner": "seapear",
|
||||
"repo": "AffinityOnLinux",
|
||||
"rev": "da601564dfefe2ae3ec10e3f177db81578847b7b",
|
||||
"rev": "a0c4421946709c24c3f371fcbf15a45b814f188c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -527,16 +585,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"plugin-loader": {
|
||||
"plugin-loader-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-mixBa/xIfSIrSS3+bGqznXxSE6h8s7e2xoJM2g4eXhg=",
|
||||
"type": "file",
|
||||
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz"
|
||||
"lastModified": 1776972538,
|
||||
"narHash": "sha256-2EvrOYQCB2Z2YXhcPnjR67KoOCvwTVW3TfLcmU3//ak=",
|
||||
"owner": "noahc3",
|
||||
"repo": "AffinityPluginLoader",
|
||||
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz"
|
||||
"owner": "noahc3",
|
||||
"repo": "AffinityPluginLoader",
|
||||
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"prismlauncher-cracked": {
|
||||
@@ -547,11 +610,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768437816,
|
||||
"narHash": "sha256-GG+V2g5NfVrypTs8qbtGnUWTXTMkGtohy/uIDa5duI0=",
|
||||
"lastModified": 1776795718,
|
||||
"narHash": "sha256-YrqHeE9ZEnmxJiXE+IBAxbmNRFPE7mn9KbxZ3Mpu388=",
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"rev": "e8418b74059bdbe4fcc97522b25dc17373b0cc21",
|
||||
"rev": "0c20d448a3c89cbff85ef5dc7420bf60dc1e65ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -574,6 +637,23 @@
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1779221047,
|
||||
"narHash": "sha256-HkOWI9C4kxA6xkS9GXhe4hAAme7ekOWje3b1U7rLSIo=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "f4bd646a7867c7814770168e0d4b9bd3418c1066",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1762860488,
|
||||
@@ -603,19 +683,18 @@
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"systems": "systems_2",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
"tinted-tmux": "tinted-tmux",
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769888473,
|
||||
"narHash": "sha256-4KWbaJwaYnZ60bFyTudZYAKskjr7Sa17R3/yh+oXS7w=",
|
||||
"lastModified": 1779378391,
|
||||
"narHash": "sha256-IsDb9erotvx9npI94UDosvMeYQK17p7/vmU2v9batrY=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "ae5c0239ae4f82a8c7e33ad8a456535d5a9ba813",
|
||||
"rev": "c1456cc4ba3c9485e7b4158c909eeca5a752cd59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -625,6 +704,21 @@
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
@@ -639,23 +733,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726913040,
|
||||
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -675,11 +752,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767710407,
|
||||
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
||||
"lastModified": 1777041405,
|
||||
"narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
||||
"rev": "5f868b3a338b6904c47f3833b9c411be641983a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -691,11 +768,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767489635,
|
||||
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
||||
"lastModified": 1777169200,
|
||||
"narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
||||
"rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -707,11 +784,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767488740,
|
||||
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
||||
"lastModified": 1777463218,
|
||||
"narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
||||
"rev": "5768d08ed2e7944a26a958868cdb073cb8856dae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -727,11 +804,33 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767801790,
|
||||
"narHash": "sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2+gM5tf8=",
|
||||
"lastModified": 1775636079,
|
||||
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "778a1d691f1ef45dd68c661715c5bf8cbf131c80",
|
||||
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"noctalia-qs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775636079,
|
||||
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -65,25 +65,14 @@
|
||||
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
||||
|
||||
mkHost = hostName: let
|
||||
inherit
|
||||
(import ./hosts/${hostName}/variables.nix)
|
||||
host
|
||||
username
|
||||
profile
|
||||
system
|
||||
;
|
||||
hostVars = import ./hosts/${hostName}/variables.nix;
|
||||
hostPrinterVars = import ./hosts/${hostName}/printers.nix;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit username;
|
||||
inherit host;
|
||||
inherit profile;
|
||||
inherit system;
|
||||
};
|
||||
inherit (hostVars) system;
|
||||
specialArgs = hostVars // hostPrinterVars // {inherit inputs;};
|
||||
modules = [
|
||||
./profiles/${profile}
|
||||
./profiles/${hostVars.profile}
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
garandos-tui.nixosModules.garandos-tui
|
||||
];
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# Enables DHCP on each ethernet and wireless inter.. 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`.
|
||||
|
||||
@@ -5,7 +5,7 @@ _: {
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
remote-server.enable = false; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -18,13 +18,14 @@ _: {
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
@@ -57,9 +58,10 @@ _: {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
chatgpt.enable = false; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
printEnable = true;
|
||||
|
||||
ensureDefaultPrinter = "Brother-T525W";
|
||||
|
||||
ensurePrinters = [
|
||||
{
|
||||
deviceUri = "ipp://192.168.1.110/ipp";
|
||||
location = "home";
|
||||
name = "Brother-T525W";
|
||||
model = "everywhere";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -3,13 +3,14 @@ _: {
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = true; # VirtualBox: PC emulator
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
upscaler.enable = true; # Upscaler: Upscale and enhance images
|
||||
};
|
||||
};
|
||||
|
||||
@@ -18,6 +19,11 @@ _: {
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
@@ -25,18 +31,34 @@ _: {
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
@@ -44,21 +66,23 @@ _: {
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
exercism.enable = false; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = true; # Logisim-Evolution: Digital logic designer and simulator
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = true; # Slack: team communication and collaboration tool
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
@@ -70,21 +94,22 @@ _: {
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
kdenlive.enable = true; # Kdenlive: video editing software
|
||||
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
jellyfin.enable = true; # Jellyfin: foss media player
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
galculator.enable = false; # Galculator: simple calculator
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = true; # Gedit: GNOME text editor
|
||||
winboat.enable = true; # Winboat: Windows remote desktop via RDP
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# User shell
|
||||
# Availabe options: "fish", "bash"
|
||||
shell = "fish";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
@@ -33,28 +37,27 @@
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = true;
|
||||
enableNFS = false;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||
# stylixImage = "Avatar-1.jpg"; # 5/10
|
||||
# stylixImage = "Avatar-2.jpg"; # 4/10
|
||||
# stylixImage = "Avatar-3.jpg"; # 2/10
|
||||
# stylixImage = "Avatar-4.jpg"; # 3/10
|
||||
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
|
||||
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||
# stylixImage = "Friren-2.jpg"; # 2/10
|
||||
# stylixImage = "Friren-3.jpg"; # 4/10
|
||||
# stylixImage = "Jablon.png"; # 1/10
|
||||
# stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
|
||||
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
|
||||
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
|
||||
@@ -61,5 +61,8 @@
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware = {
|
||||
amdgpu.opencl.enable = true;
|
||||
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,26 +5,27 @@ _: {
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
remote-server.enable = false; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
@@ -57,9 +58,10 @@ _: {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
chatgpt.enable = false; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
printEnable = true;
|
||||
|
||||
ensureDefaultPrinter = "Brother-T525W";
|
||||
|
||||
ensurePrinters = [
|
||||
{
|
||||
deviceUri = "ipp://192.168.1.110/ipp";
|
||||
location = "home";
|
||||
name = "Brother-T525W";
|
||||
model = "everywhere";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -10,6 +10,7 @@ _: {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
upscaler.enable = true; # Upscaler: Upscale and enhance images
|
||||
};
|
||||
};
|
||||
|
||||
@@ -18,6 +19,11 @@ _: {
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
@@ -25,18 +31,34 @@ _: {
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
@@ -44,7 +66,7 @@ _: {
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
exercism.enable = false; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
@@ -54,11 +76,13 @@ _: {
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = true; # Slack: team communication and collaboration tool
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
@@ -70,20 +94,21 @@ _: {
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
jellyfin.enable = true; # Jellyfin: foss media player
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
galculator.enable = false; # Galculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = true; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# User shell
|
||||
# Availabe options: "fish", "bash"
|
||||
shell = "fish";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
@@ -33,28 +37,27 @@
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = false;
|
||||
enableNFS = false;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||
# stylixImage = "Avatar-1.jpg"; # 5/10
|
||||
# stylixImage = "Avatar-2.jpg"; # 4/10
|
||||
# stylixImage = "Avatar-3.jpg"; # 2/10
|
||||
# stylixImage = "Avatar-4.jpg"; # 3/10
|
||||
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
|
||||
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||
# stylixImage = "Friren-2.jpg"; # 2/10
|
||||
# stylixImage = "Friren-3.jpg"; # 4/10
|
||||
# stylixImage = "Jablon.png"; # 1/10
|
||||
# stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
|
||||
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
|
||||
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
|
||||
@@ -18,6 +18,7 @@ _: {
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
@@ -60,6 +61,7 @@ _: {
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
# Whether printing services should be enabled.
|
||||
printEnable = false;
|
||||
|
||||
# Name of the default printer.
|
||||
ensureDefaultPrinter = "[name]";
|
||||
|
||||
# List of printers to ensure are configured.
|
||||
ensurePrinters = [
|
||||
{
|
||||
# URI of the printer device.
|
||||
deviceUri = "ipp://[IPv4]/ipp";
|
||||
# Physical location description of the printer.
|
||||
location = "[location]";
|
||||
# Human‑readable printer name.
|
||||
name = "[name]";
|
||||
# Printer model; "everywhere" uses generic driver.
|
||||
model = "everywhere";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -10,6 +10,7 @@ _: {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
upscaler.enable = false; # Upscaler: Upscale and enhance images
|
||||
};
|
||||
};
|
||||
|
||||
@@ -18,6 +19,11 @@ _: {
|
||||
*/
|
||||
tailscale.enable = false; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
@@ -25,13 +31,29 @@ _: {
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
@@ -54,11 +76,13 @@ _: {
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = true; # Slack: team communication and collaboration tool
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
@@ -70,19 +94,20 @@ _: {
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
jellyfin.enable = true; # Jellyfin: foss media player
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
galculator.enable = false; # Galculator: simple calculator
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
|
||||
+20
-17
@@ -15,6 +15,10 @@
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "my@email.com";
|
||||
|
||||
# User shell
|
||||
# Availabe options: "fish", "bash"
|
||||
shell = "fish";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
@@ -35,10 +39,7 @@
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = false;
|
||||
enableNFS = false;
|
||||
|
||||
# Themes, waybar and animation.
|
||||
# Only uncomment your selection
|
||||
@@ -48,19 +49,21 @@
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||
# stylixImage = "Avatar-1.jpg"; # 5/10
|
||||
# stylixImage = "Avatar-2.jpg"; # 4/10
|
||||
# stylixImage = "Avatar-3.jpg"; # 2/10
|
||||
# stylixImage = "Avatar-4.jpg"; # 3/10
|
||||
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
|
||||
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||
# stylixImage = "Friren-2.jpg"; # 2/10
|
||||
# stylixImage = "Friren-3.jpg"; # 4/10
|
||||
# stylixImage = "Jablon.png"; # 1/10
|
||||
# stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
|
||||
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
|
||||
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
options.affinity.enable = lib.mkEnableOption "Affinity";
|
||||
|
||||
config = lib.mkIf config.affinity.enable {
|
||||
nixpkgs.overlays = [inputs.affinity-nix.overlays.default];
|
||||
environment.systemPackages = with pkgs; [affinity-v3];
|
||||
};
|
||||
}
|
||||
+5
-11
@@ -1,7 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
boot = {
|
||||
@@ -15,16 +14,11 @@
|
||||
efi.canTouchEfiVariables = true;
|
||||
limine = {
|
||||
enable = true;
|
||||
style = {
|
||||
wallpapers = [
|
||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
||||
];
|
||||
wallpaperStyle = lib.mkForce "centered";
|
||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||
interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
resolution = "1920x1080";
|
||||
};
|
||||
package = pkgs.limine;
|
||||
resolution = "1920x1080";
|
||||
style.interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
brandingColor = "${config.stylix.base16Scheme.base01}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.calendar.enable = lib.mkEnableOption "Enable GNOME Calendar";
|
||||
|
||||
config = {
|
||||
services.gnome.evolution-data-server.enable = lib.mkIf config.calendar.enable true;
|
||||
environment.systemPackages = lib.mkIf config.calendar.enable (with pkgs; [
|
||||
gnome-calendar
|
||||
gnome-contacts
|
||||
]);
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
./packages
|
||||
./affinity.nix
|
||||
./boot.nix
|
||||
./calendar.nix
|
||||
./docker.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
@@ -11,7 +13,6 @@
|
||||
./nfs.nix
|
||||
./nh.nix
|
||||
./printing.nix
|
||||
./quickshell.nix
|
||||
./greetd.nix
|
||||
./security.nix
|
||||
./services.nix
|
||||
@@ -22,9 +23,11 @@
|
||||
./tailscale.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./ventoy.nix
|
||||
./virtualbox.nix
|
||||
./xdg.nix
|
||||
./xserver.nix
|
||||
./zram.nix
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
profile,
|
||||
...
|
||||
}: {
|
||||
options.docker.enable = lib.mkEnableOption "Docker";
|
||||
|
||||
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
||||
enable = true;
|
||||
enableNvidia =
|
||||
if profile == "nvidia"
|
||||
then true
|
||||
else false;
|
||||
package = pkgs.docker;
|
||||
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
||||
};
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
sober = "org.vinegarhq.Sober";
|
||||
warehouse = "io.github.flattool.Warehouse";
|
||||
flatseal = "com.github.tchx84.Flatseal";
|
||||
upscaler = "io.gitlab.theevilskeleton.Upscaler";
|
||||
};
|
||||
in {
|
||||
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
{
|
||||
host,
|
||||
hostId,
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
||||
in {
|
||||
}: {
|
||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||
assertions = [
|
||||
{
|
||||
@@ -28,10 +27,22 @@ in {
|
||||
59011
|
||||
8080
|
||||
];
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
59010
|
||||
59011
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
|
||||
in {
|
||||
{enableNFS, ...}: {
|
||||
services = {
|
||||
rpcbind.enable = enableNFS;
|
||||
nfs.server.enable = enableNFS;
|
||||
|
||||
+6
-1
@@ -1,6 +1,11 @@
|
||||
{username, ...}: {
|
||||
{
|
||||
username,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
package = pkgs.nh;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 7d --keep 5";
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
mkAppImagePackage = name: pkg: {
|
||||
options.packages.appImages.${name}.enable = lib.mkEnableOption name;
|
||||
|
||||
config.environment.systemPackages =
|
||||
lib.mkIf config.packages.appImages.${name}.enable [pkg];
|
||||
};
|
||||
|
||||
appImagePackages = {
|
||||
fluxer = pkgs.callPackage ./fluxer.nix {};
|
||||
helium = pkgs.callPackage ./helium.nix {};
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages);
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "fluxer";
|
||||
version = "canary";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
|
||||
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
|
||||
};
|
||||
appimageContents = appimageTools.extract {inherit pname version src;};
|
||||
|
||||
iconSize = "512x512";
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
# mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/${iconSize}/apps/${pname}.png \
|
||||
$out/share/icons/hicolor/${iconSize}/apps/${pname}.png
|
||||
substituteInPlace $out/share/applications/${pname}.desktop \
|
||||
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fluxer desktop app";
|
||||
homepage = "https://github.com/fluxerapp/fluxer";
|
||||
license = licenses.agpl3Only;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "helium";
|
||||
version = "0.12.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/imputnet/helium-linux/releases/download/${version}/helium-${version}-x86_64.AppImage";
|
||||
sha256 = "sha256-OgS8HkLBseFrEhNFJxMwp1bg0gzPdfY1VaySAAp7vq0=";
|
||||
};
|
||||
appimageContents = appimageTools.extract {inherit pname version src;};
|
||||
|
||||
iconSize = "256x256";
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
# mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/${iconSize}/apps/${pname}.png \
|
||||
$out/share/icons/hicolor/${iconSize}/apps/${pname}.png
|
||||
# substituteInPlace $out/share/applications/${pname}.desktop \
|
||||
# --replace-fail 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Helium browser";
|
||||
homepage = "https://github.com/imputnet/helium";
|
||||
license = licenses.agpl3Plus;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
# https://github.com/imputnet/helium-linux/releases/download/0.11.7.1/helium-0.11.7.1-x86_64.AppImage
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
_: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
imports = [
|
||||
./appimages
|
||||
./essentials.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
duf
|
||||
dysk
|
||||
ncdu
|
||||
smartmontools
|
||||
# Network & system utilities
|
||||
ripgrep
|
||||
wget
|
||||
@@ -35,6 +36,7 @@
|
||||
brightnessctl
|
||||
killall
|
||||
dex
|
||||
ffmpeg
|
||||
# Desktop environment
|
||||
networkmanagerapplet
|
||||
tuigreet
|
||||
@@ -42,6 +44,7 @@
|
||||
waypaper
|
||||
uwsm
|
||||
hyprpicker
|
||||
hyprshot
|
||||
cliphist
|
||||
# Development utilities
|
||||
pkg-config
|
||||
@@ -58,7 +61,7 @@
|
||||
app2unit
|
||||
gpu-screen-recorder
|
||||
# hyprland
|
||||
swww
|
||||
awww
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
packages = with pkgs; {
|
||||
bitwarden = bitwarden-desktop;
|
||||
eddieAirVPN = eddie;
|
||||
galculator = galculator;
|
||||
gnomeCalculator = gnome-calculator;
|
||||
gedit = gedit;
|
||||
iotas = iotas;
|
||||
logseq = logseq;
|
||||
@@ -31,17 +31,39 @@
|
||||
spaceCadetPinball = space-cadet-pinball;
|
||||
ttySolitaire = tty-solitaire;
|
||||
gimp = gimp;
|
||||
affinity = inputs.affinity-nix.packages.${system}.v3;
|
||||
eyeOfGnome = eog;
|
||||
kdenlive = kdePackages.kdenlive;
|
||||
kdenlive = kdePackages.kdenlive.overrideAttrs (old: {
|
||||
postInstall =
|
||||
(old.postInstall or "")
|
||||
+ ''
|
||||
wrapProgram $out/bin/kdenlive \
|
||||
--set QT_SCALE_FACTOR 0.8
|
||||
'';
|
||||
});
|
||||
plex = [
|
||||
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
|
||||
(
|
||||
plex-desktop.override {
|
||||
extraEnv = {
|
||||
QT_QPA_PLATFORM = "xcb";
|
||||
};
|
||||
}
|
||||
)
|
||||
plexamp
|
||||
];
|
||||
jellyfin = [
|
||||
tsukimi
|
||||
finamp
|
||||
];
|
||||
freetube = freetube;
|
||||
lazydocker = lazydocker;
|
||||
distrobox = [distrobox pkgs.boxbuddy];
|
||||
winboat = [winboat freerdp];
|
||||
distrobox = [
|
||||
distrobox
|
||||
pkgs.boxbuddy
|
||||
];
|
||||
winboat = [
|
||||
winboat
|
||||
freerdp
|
||||
];
|
||||
signal = signal-desktop;
|
||||
pixieditor = pixieditor;
|
||||
bottles = bottles;
|
||||
@@ -50,6 +72,9 @@
|
||||
teams = teams-for-linux;
|
||||
ferdium = ferdium;
|
||||
logisim-evolution = logisim-evolution;
|
||||
notify = notify-client;
|
||||
boxes = gnome-boxes;
|
||||
switcheroo = switcheroo;
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
||||
|
||||
@@ -5,6 +5,7 @@ _: {
|
||||
enable = true;
|
||||
withUWSM = false;
|
||||
};
|
||||
fish.enable = true;
|
||||
dconf.enable = true;
|
||||
seahorse.enable = true;
|
||||
fuse.userAllowOther = true;
|
||||
|
||||
+32
-12
@@ -1,18 +1,38 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) printEnable;
|
||||
in {
|
||||
services = {
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
printEnable,
|
||||
ensureDefaultPrinter,
|
||||
ensurePrinters,
|
||||
...
|
||||
}: {
|
||||
services = lib.mkIf printEnable {
|
||||
printing = {
|
||||
enable = printEnable;
|
||||
drivers = [
|
||||
# pkgs.hplipWithPlugin
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
cups-filters
|
||||
cups-browsed
|
||||
];
|
||||
};
|
||||
avahi = {
|
||||
enable = printEnable;
|
||||
nssmdns4 = true;
|
||||
listenAddresses = ["*:631"];
|
||||
allowFrom = ["all"];
|
||||
browsing = true;
|
||||
defaultShared = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
ipp-usb.enable = printEnable;
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
userServices = true;
|
||||
};
|
||||
};
|
||||
ipp-usb.enable = true;
|
||||
};
|
||||
|
||||
hardware.printers = lib.mkIf printEnable {
|
||||
ensureDefaultPrinter = ensureDefaultPrinter;
|
||||
ensurePrinters = ensurePrinters;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
quickshell
|
||||
|
||||
# Qt6 related kits(for slove Qt5Compat problem)
|
||||
qt6.qt5compat
|
||||
qt6.qtbase
|
||||
qt6.qtquick3d
|
||||
qt6.qtwayland
|
||||
qt6.qtdeclarative
|
||||
qt6.qtsvg
|
||||
|
||||
# alternate options
|
||||
# libsForQt5.qt5compat
|
||||
kdePackages.qt5compat
|
||||
libsForQt5.qt5.qtgraphicaleffects
|
||||
];
|
||||
# necessary environment variables
|
||||
variables = {
|
||||
QML_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
|
||||
QML2_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
|
||||
};
|
||||
# make sure the Qt application is working properly
|
||||
sessionVariables = {
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -18,10 +18,7 @@
|
||||
ports = [22];
|
||||
};
|
||||
tumbler.enable = true; # Image/video preview
|
||||
gnome = {
|
||||
gnome-keyring.enable = true;
|
||||
evolution-data-server.enable = true;
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
smartd = {
|
||||
enable =
|
||||
if profile == "vm"
|
||||
|
||||
+11
-4
@@ -1,10 +1,8 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
stylixImage,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||
in {
|
||||
}: {
|
||||
# Styling Options
|
||||
stylix = {
|
||||
enable = true;
|
||||
@@ -36,5 +34,14 @@ in {
|
||||
popups = 12;
|
||||
};
|
||||
};
|
||||
targets.limine = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
image.enable = true;
|
||||
imageScalingMode = {
|
||||
enable = true;
|
||||
override = "tile";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
host,
|
||||
consoleKeyMap,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
||||
in {
|
||||
}: {
|
||||
nix = {
|
||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
settings = {
|
||||
|
||||
+20
-4
@@ -5,10 +5,14 @@
|
||||
host,
|
||||
profile,
|
||||
system,
|
||||
gitUsername,
|
||||
shell,
|
||||
extraMonitorSettings,
|
||||
keyboardLayout,
|
||||
gitEmail,
|
||||
location,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
||||
in {
|
||||
}: {
|
||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
@@ -21,6 +25,12 @@ in {
|
||||
host
|
||||
profile
|
||||
system
|
||||
extraMonitorSettings
|
||||
shell
|
||||
keyboardLayout
|
||||
gitEmail
|
||||
gitUsername
|
||||
location
|
||||
;
|
||||
};
|
||||
users.${username} = {
|
||||
@@ -33,6 +43,7 @@ in {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "25.11";
|
||||
shell.enableFishIntegration = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -51,8 +62,13 @@ in {
|
||||
"wheel" # sudo access
|
||||
"vboxusers" # Virtual Box
|
||||
"gamemode"
|
||||
"lpadmin"
|
||||
];
|
||||
shell = pkgs.bash;
|
||||
shell = with pkgs; (
|
||||
if shell == "fish"
|
||||
then fish
|
||||
else bash
|
||||
);
|
||||
ignoreShellProgramCheck = true;
|
||||
linger = true;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.ventoy.enable = lib.mkEnableOption "Enable Ventoy";
|
||||
|
||||
config = lib.mkIf config.ventoy.enable {
|
||||
environment.systemPackages = with pkgs; [ventoy-full-gtk];
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"ventoy-gtk3-1.1.12"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in {
|
||||
{keyboardLayout, ...}: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{pkgs, ...}: {
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
priority = 5;
|
||||
memoryMax = 16 * 1024 * 1024 * 1024;
|
||||
algorithm = "zstd";
|
||||
swapDevices = 1;
|
||||
memoryPercent = 50;
|
||||
};
|
||||
boot = {
|
||||
kernelParams = [
|
||||
"zswap.enabled=1" # enables zswap
|
||||
"zswap.compressor=zstd" # compression algorithm
|
||||
"zswap.max_pool_percent=20" # maximum percentage of RAM that zswap is allowed to use
|
||||
"zswap.shrinker_enabled=1" # whether to shrink the pool proactively on high memory pressure
|
||||
];
|
||||
tmp = {
|
||||
useZram = true;
|
||||
zramSettings = {
|
||||
compression-algorithm = "zstd";
|
||||
zram-size = "ram * 0.5";
|
||||
fs-type = "ext4";
|
||||
options = "X-mount.mode=1777,discard";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.zram-generator = {
|
||||
enable = true;
|
||||
package = pkgs.zram-generator;
|
||||
settings = {};
|
||||
};
|
||||
}
|
||||
@@ -13,7 +13,9 @@ in {
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
environment.systemPackages = with pkgs; [nvidia-docker];
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvidia-docker
|
||||
];
|
||||
hardware = {
|
||||
nvidia-container-toolkit.enable = true;
|
||||
nvidia = {
|
||||
@@ -36,7 +38,7 @@ in {
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
package = pkgs.anki;
|
||||
language = "pl_PL";
|
||||
style = "native";
|
||||
sync.username = username;
|
||||
profiles."${username}".sync.username = username;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,30 +6,38 @@
|
||||
programs.bash.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch --hostname ${host}";
|
||||
upg = "nh os switch --hostname ${host} --update";
|
||||
upd = "nh os switch -H ${host} -d always";
|
||||
upg = "nh os switch -H ${host} --update -d always";
|
||||
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upd-bt = "nh os boot --hostname ${host}";
|
||||
upd-ts = "nh os test --hostname ${host}";
|
||||
upd-bd = "nh os build --hostname ${host}";
|
||||
upd-bt = "nh os boot -H ${host} -d always";
|
||||
upd-ts = "nh os test -H ${host} -d always";
|
||||
upd-bd = "nh os build -H ${host} -d always";
|
||||
tui = "garandos-tui";
|
||||
ncg = "nh clean all";
|
||||
ncg = "nh clean all --optimise";
|
||||
|
||||
# Development aliases
|
||||
## Django
|
||||
srvenv = "source .venv/bin/activate";
|
||||
"..srvenv" = "source ../.venv/bin/activate";
|
||||
uv-add = "uv add -r requirements.txt";
|
||||
pm = "uv run manage.py";
|
||||
pm-rs = "uv run manage.py runserver";
|
||||
pm-mg = "uv run manage.py migrate";
|
||||
pm-mm = "uv run manage.py makemigrations";
|
||||
pm-sq = "uv run manage.py sqlmigrate";
|
||||
f8 = "uv run flake8 .";
|
||||
## JavaScript/TypeScript
|
||||
bbr = "bun --bun run";
|
||||
## Git
|
||||
"ga." = "git add .";
|
||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||
|
||||
# Development aliases for nix flake
|
||||
nd = "nix develop";
|
||||
nb = "nix build";
|
||||
nr = "nix run";
|
||||
nbr = "nix build && nix run";
|
||||
nb = "nix build .";
|
||||
nr = "nix run .";
|
||||
nbr = "nix build . && nix run .";
|
||||
nbd = "nix build .#develop";
|
||||
nrd = "nix run .#develop";
|
||||
nbrd = "nix build .#develop && nix run .#develop";
|
||||
@@ -42,7 +50,8 @@
|
||||
|
||||
# System aliases
|
||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "shutdown now";
|
||||
kys = "systemctl poweroff";
|
||||
jezus = "systemctl reboot";
|
||||
ookla = "speedtest";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
_: {
|
||||
{shell, ...}: {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enable =
|
||||
if shell == "bash"
|
||||
then true
|
||||
else false;
|
||||
enableCompletion = true;
|
||||
# initExtra = ''
|
||||
# fastfetch
|
||||
|
||||
@@ -140,5 +140,22 @@ _: {
|
||||
pwdtail() {
|
||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||
}
|
||||
|
||||
ffmpeg_dl() {
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo "Usage: ffmpeg_dl <url> <name> <fs_path>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local url="$1"
|
||||
local name="$2"
|
||||
local fs_path="$3"
|
||||
|
||||
mkdir -p "$fs_path"
|
||||
|
||||
local output="${"$"}{fs_path}/${"$"}{name}.mp4"
|
||||
|
||||
ffmpeg -i "$url" -c copy "$output"
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
batgrep
|
||||
];
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
MANROFFOPT = "-c";
|
||||
|
||||
@@ -3,6 +3,7 @@ _: {
|
||||
./bash
|
||||
./chromium
|
||||
./fastfetch
|
||||
./fish
|
||||
./hyprland
|
||||
./kitty
|
||||
./librewolf
|
||||
@@ -15,7 +16,7 @@ _: {
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./cava.nix
|
||||
./emoji.nix
|
||||
./easyeffects.nix
|
||||
./eza.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.easyeffects.enable = lib.mkEnableOption "Easy Effects";
|
||||
|
||||
config.services.easyeffects = lib.mkIf config.easyeffects.enable {
|
||||
enable = true;
|
||||
package = pkgs.easyeffects;
|
||||
|
||||
preset = "Default";
|
||||
extraPresets."Default".input = {
|
||||
blocklist = [];
|
||||
"deepfilternet#0" = {
|
||||
attenuation-limit = 100.0;
|
||||
bypass = false;
|
||||
input-gain = 0.0;
|
||||
max-df-processing-threshol = 20.0;
|
||||
max-erb-processing-threshold = 30.0;
|
||||
min-processing-buffer = 0;
|
||||
min-processing-threshold = -10.0;
|
||||
output-gain = 0.0;
|
||||
post-filter-beta = 0.019999999552965164;
|
||||
};
|
||||
"exciter#0" = {
|
||||
amount = 0.0;
|
||||
blend = 0.0;
|
||||
bypass = false;
|
||||
ceil = 16000.0;
|
||||
ceil-active = false;
|
||||
harmonics = 8.5;
|
||||
input-gain = 0.0;
|
||||
output-gain = 0.0;
|
||||
scope = 7500.0;
|
||||
};
|
||||
plugins_order = [
|
||||
"rnnoise#0"
|
||||
"deepfilternet#0"
|
||||
"speex#0"
|
||||
"exciter#0"
|
||||
"stereo_tools#0"
|
||||
];
|
||||
"rnnoise#0" = {
|
||||
bypass = false;
|
||||
enable-vad = true;
|
||||
input-gain = 5.0;
|
||||
model-name = "\"\"";
|
||||
output-gain = -5.0;
|
||||
release = 20.0;
|
||||
use-standard-model = true;
|
||||
vad-thres = 50.0;
|
||||
wet = 0.0;
|
||||
};
|
||||
"speex#0" = {
|
||||
bypass = true;
|
||||
enable-agc = true;
|
||||
enable-denoise = true;
|
||||
enable-dereverb = true;
|
||||
input-gain = 0.0;
|
||||
noise-suppression = -70;
|
||||
output-gain = 0.0;
|
||||
vad = {
|
||||
enable = true;
|
||||
probability-continue = 90;
|
||||
probability-start = 95;
|
||||
};
|
||||
};
|
||||
"stereo_tools#0" = {
|
||||
balance-in = 0.0;
|
||||
balance-out = 0.0;
|
||||
bypass = false;
|
||||
delay = 0.0;
|
||||
dry = -100.0;
|
||||
input-gain = 0.0;
|
||||
middle-level = 0.0;
|
||||
middle-panorama = 0.0;
|
||||
mode = "LR > L+R (Mono Sum L+R)";
|
||||
mutel = false;
|
||||
muter = false;
|
||||
output-gain = 0.0;
|
||||
phasel = false;
|
||||
phaser = false;
|
||||
sc-level = 1.0;
|
||||
side-balance = 0.0;
|
||||
side-level = 0.0;
|
||||
softclip = true;
|
||||
stereo-base = 0.0;
|
||||
stereo-phase = 0.0;
|
||||
wet = 0.0;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,7 @@
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
git = true;
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.fish.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch -H ${host} -d always";
|
||||
upg = "nh os switch -H ${host} --update -d always";
|
||||
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upd-bt = "nh os boot -H ${host} -d always";
|
||||
upd-ts = "nh os test -H ${host} -d always";
|
||||
upd-bd = "nh os build -H ${host} -d always";
|
||||
tui = "garandos-tui";
|
||||
ncg = "nh clean all --optimise";
|
||||
|
||||
# Development aliases
|
||||
## Django
|
||||
srvenv = "source .venv/bin/activate";
|
||||
"..srvenv" = "source ../.venv/bin/activate";
|
||||
uv-add = "uv add -r requirements.txt";
|
||||
pm = "uv run manage.py";
|
||||
pm-rs = "uv run manage.py runserver";
|
||||
pm-mg = "uv run manage.py migrate";
|
||||
pm-mm = "uv run manage.py makemigrations";
|
||||
pm-sq = "uv run manage.py sqlmigrate";
|
||||
f8 = "uv run flake8 .";
|
||||
## JavaScript/TypeScript
|
||||
bbr = "bun --bun run";
|
||||
## Git
|
||||
"ga." = "git add .";
|
||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||
|
||||
# Development aliases for nix flake
|
||||
nd = "nix develop";
|
||||
nb = "nix build .";
|
||||
nr = "nix run .";
|
||||
nbr = "nix build . && nix run .";
|
||||
nbd = "nix build .#develop";
|
||||
nrd = "nix run .#develop";
|
||||
nbrd = "nix build .#develop && nix run .#develop";
|
||||
|
||||
# Development aliases for docker
|
||||
dcu = "docker compose up -d";
|
||||
dcd = "docker compose down";
|
||||
dcb = "docker compose build";
|
||||
dcub = "docker compose up -d --build";
|
||||
|
||||
# System aliases
|
||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "systemctl poweroff";
|
||||
jezus = "systemctl reboot";
|
||||
ookla = "speedtest";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
# Navigation aliases
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
"....." = "cd ../../../..";
|
||||
|
||||
# Modifies commands
|
||||
cat = "bat";
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
rm = "trash -v";
|
||||
mkdir = "mkdir -p";
|
||||
ps = "ps auxf";
|
||||
ping = "ping -c 10";
|
||||
less = "less -R";
|
||||
cls = "clear";
|
||||
multitail = "multitail --no-repeat -c";
|
||||
freshclam = "sudo freshclam";
|
||||
|
||||
# Alias"s for multiple directory listing commands
|
||||
la = "eza -alh --icons"; # show hidden files
|
||||
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
|
||||
lx = "eza -lh --icons --sort=extension"; # sort by extension
|
||||
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
|
||||
lc = "eza -lh --icons --sort=changed"; # sort by change time
|
||||
lu = "eza -lh --icons --sort=accessed"; # sort by access time
|
||||
lr = "eza -lh --icons --recurse"; # recursive ls
|
||||
lt = "eza -lh --icons --sort=modified"; # sort by date
|
||||
lm = "eza -alh --icons | more"; # pipe through "more"
|
||||
lw = "eza -xh --icons"; # wide listing format
|
||||
ll = "eza -lh --icons"; # long listing format
|
||||
labc = "eza -lah --icons --sort=name"; # alphabetical sort
|
||||
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
|
||||
ldir = "eza -lh --icons --only-dirs"; # directories only
|
||||
lla = "eza -alh --icons"; # List and Hidden Files
|
||||
las = "eza -a --icons"; # Hidden Files
|
||||
lls = "eza -lh --icons"; # List
|
||||
|
||||
# chmod commands
|
||||
mx = "chmod a+x";
|
||||
"000" = "chmod -R 000";
|
||||
"644" = "chmod -R 644";
|
||||
"666" = "chmod -R 666";
|
||||
"755" = "chmod -R 755";
|
||||
"777" = "chmod -R 777";
|
||||
|
||||
# Search command line history
|
||||
h = "history | grep ";
|
||||
|
||||
# Search running processes
|
||||
p = "ps aux | grep ";
|
||||
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
|
||||
|
||||
# Search files in the current folder
|
||||
f = "find . | grep ";
|
||||
|
||||
# Alias"s to show disk space and space used in a folder
|
||||
diskspace = "du -S | sort -n -r |more";
|
||||
folders = "du -h --max-depth=1";
|
||||
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
|
||||
tree = "tree -CAhF --dirsfirst";
|
||||
treed = "tree -CAFd";
|
||||
mountedinfo = "df -hT";
|
||||
|
||||
# fix kitty ssh connection
|
||||
kssh = "kitty +kitten ssh";
|
||||
|
||||
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
|
||||
|
||||
# Remove a directory and all files
|
||||
rmd = "/bin/rm --recursive --force --verbose ";
|
||||
|
||||
# Fun aliases
|
||||
pasjans = "ttysolitaire -p 10 --no-background-color";
|
||||
fc = "fortune | cowsay";
|
||||
|
||||
# Network aliases
|
||||
kssh-server = "kssh hp-t640-homeserver";
|
||||
kssh-server-ts = "kssh hp-t640-homeserver-tailscale";
|
||||
ssh-server = "ssh hp-t640-homeserver";
|
||||
ssh-server-ts = "ssh hp-t640-homeserver-tailscale";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
pkgs,
|
||||
shell,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
fish = {
|
||||
enable =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
package = pkgs.fish;
|
||||
generateCompletions = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
# fastfetch
|
||||
'';
|
||||
};
|
||||
|
||||
nix-your-shell = {
|
||||
enable = true;
|
||||
package = pkgs.nix-your-shell;
|
||||
enableFishIntegration = true;
|
||||
nix-output-monitor = {
|
||||
enable = true;
|
||||
package = pkgs.nix-output-monitor;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./aliases.nix
|
||||
./functions.nix
|
||||
./plugins.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,236 @@
|
||||
_: {
|
||||
programs.fish.functions = {
|
||||
# Count files, links and directories in the current folder
|
||||
countfiles = {
|
||||
body = ''
|
||||
for t in files links directories
|
||||
# $t[1] – pierwszy znak (f, l, d)
|
||||
echo (find . -type $t[1] | wc -l) $t
|
||||
end
|
||||
'';
|
||||
description = "Count files, links and directories in the current folder";
|
||||
};
|
||||
|
||||
# Tail all text logs in /var/log
|
||||
logs = {
|
||||
body = ''
|
||||
sudo find /var/log -type f -exec file {} \; \
|
||||
| grep 'text' \
|
||||
| cut -d' ' -f1 \
|
||||
| sed -e 's/:$//g' \
|
||||
| grep -v '[0-9]$' \
|
||||
| xargs tail -f
|
||||
'';
|
||||
description = "Tail all text logs in /var/log";
|
||||
};
|
||||
|
||||
# Quick directory creation and navigation
|
||||
mkcd = {
|
||||
body = ''
|
||||
mkdir -p $argv[1]; and cd $argv[1]
|
||||
'';
|
||||
description = "Create a directory and cd into it";
|
||||
};
|
||||
|
||||
# Extract various archive formats
|
||||
extract = {
|
||||
body = ''
|
||||
for archive in $argv
|
||||
if test -f $archive
|
||||
switch $archive
|
||||
case *.tar.bz2
|
||||
tar xvjf $archive
|
||||
case *.tar.gz
|
||||
tar xvzf $archive
|
||||
case *.bz2
|
||||
bunzip2 $archive
|
||||
case *.rar
|
||||
unrar x $archive
|
||||
case *.gz
|
||||
gunzip $archive
|
||||
case *.tar
|
||||
tar xvf $archive
|
||||
case *.tbz2
|
||||
tar xvjf $archive
|
||||
case *.tgz
|
||||
tar xvzf $archive
|
||||
case *.zip
|
||||
unzip $archive
|
||||
case *.Z
|
||||
uncompress $archive
|
||||
case *.7z
|
||||
7z x $archive
|
||||
case '*'
|
||||
echo "don't know how to extract '$archive'..."
|
||||
end
|
||||
else
|
||||
echo "'$archive' is not a valid file!"
|
||||
end
|
||||
end
|
||||
'';
|
||||
description = "Extract various archive formats";
|
||||
};
|
||||
|
||||
# Find files quickly
|
||||
ff = {
|
||||
body = ''
|
||||
if test -n "$argv[1]"
|
||||
find . -type f -name "*$argv[1]*"
|
||||
else
|
||||
echo "Usage: ff <pattern>"
|
||||
end
|
||||
'';
|
||||
description = "Find files matching a pattern";
|
||||
};
|
||||
|
||||
# Find directories quickly
|
||||
fd = {
|
||||
body = ''
|
||||
if test -n "$argv[1]"
|
||||
find . -type d -name "*$argv[1]*"
|
||||
else
|
||||
echo "Usage: fd <pattern>"
|
||||
end
|
||||
'';
|
||||
description = "Find directories matching a pattern";
|
||||
};
|
||||
|
||||
# IP address lookup
|
||||
whatismyip = {
|
||||
body = ''
|
||||
# Internal IP
|
||||
if command -v ip >/dev/null
|
||||
echo -n "Internal IP: "
|
||||
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
|
||||
else
|
||||
echo -n "Internal IP: "
|
||||
ifconfig wlan0 | grep "inet " | awk '{print $2}'
|
||||
end
|
||||
|
||||
# External IP
|
||||
echo -n "External IP: "
|
||||
curl -4 ifconfig.me
|
||||
'';
|
||||
description = "Show internal and external IP addresses";
|
||||
};
|
||||
|
||||
# Search for text in all files in the current folder
|
||||
ftext = {
|
||||
body = ''
|
||||
if test -n "$argv[1]"
|
||||
grep -iIHrn --color=always "$argv[1]" . | less -r
|
||||
else
|
||||
echo "Usage: ftext <search term>"
|
||||
end
|
||||
'';
|
||||
description = "Search text in files, showing matches with highlighting";
|
||||
};
|
||||
|
||||
# Copy file with a progress bar
|
||||
cpp = {
|
||||
body = ''
|
||||
set -e
|
||||
# Use strace to monitor cp progress
|
||||
strace -q -ewrite cp -- $argv[1] $argv[2] 2>&1 |
|
||||
awk '
|
||||
{
|
||||
count += $NF
|
||||
if (count % 10 == 0) {
|
||||
percent = count / total_size * 100
|
||||
printf "%3d%% [", percent
|
||||
for (i=0;i<=percent;i++) printf "="
|
||||
printf ">"
|
||||
for (i=percent;i<100;i++) printf " "
|
||||
printf "]\r"
|
||||
}
|
||||
}
|
||||
END { print "" }' total_size="$(stat -c "%s" $argv[1])" count=0
|
||||
'';
|
||||
description = "Copy a file with a visual progress bar";
|
||||
};
|
||||
|
||||
# Copy and go to the directory
|
||||
cpg = {
|
||||
body = ''
|
||||
cp $argv[1] $argv[2]
|
||||
if test -d $argv[2]
|
||||
cd $argv[2]
|
||||
end
|
||||
'';
|
||||
description = "Copy a file and cd into the destination directory if it's a directory";
|
||||
};
|
||||
|
||||
# Move and go to the directory
|
||||
mvg = {
|
||||
body = ''
|
||||
mv $argv[1] $argv[2]
|
||||
if test -d $argv[2]
|
||||
cd $argv[2]
|
||||
end
|
||||
'';
|
||||
description = "Move a file and cd into the destination directory if it's a directory";
|
||||
};
|
||||
|
||||
# Create and go to the directory
|
||||
mkdirg = {
|
||||
body = ''
|
||||
mkdir -p $argv[1]; and cd $argv[1]
|
||||
'';
|
||||
description = "Create a directory and cd into it";
|
||||
};
|
||||
|
||||
# Go up N directories (e.g. up 4)
|
||||
up = {
|
||||
body = ''
|
||||
set limit $argv[1]
|
||||
if test -z "$limit"
|
||||
set limit 1
|
||||
end
|
||||
set path (pwd)
|
||||
for i in (seq $limit)
|
||||
set path (dirname $path)
|
||||
end
|
||||
cd $path
|
||||
'';
|
||||
description = "Go up N directories";
|
||||
};
|
||||
|
||||
# cd with automatic ls after each cd
|
||||
cd = {
|
||||
body = ''
|
||||
builtin cd $argv
|
||||
if test $status -eq 0
|
||||
ls
|
||||
end
|
||||
'';
|
||||
description = "cd with automatic ls";
|
||||
};
|
||||
|
||||
# Return the last two components of the working directory
|
||||
pwdtail = {
|
||||
body = ''
|
||||
pwd | awk -F/ '{nlast = NF - 1; print $nlast "/" $NF}'
|
||||
'';
|
||||
description = "Show the last two components of the current path";
|
||||
};
|
||||
|
||||
# Download video via ffmpeg
|
||||
ffmpeg_dl = {
|
||||
body = ''
|
||||
if count $argv != 3
|
||||
echo "Usage: ffmpeg_dl <url> <name> <fs_path>"
|
||||
return 1
|
||||
end
|
||||
set url $argv[1]
|
||||
set name $argv[2]
|
||||
set fs_path $argv[3]
|
||||
|
||||
mkdir -p $fs_path
|
||||
set output "$fs_path/$name.mp4"
|
||||
|
||||
ffmpeg -i $url -c copy $output
|
||||
'';
|
||||
description = "Download a video using ffmpeg to a given location";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{pkgs, ...}: {
|
||||
programs.fish.plugins = [
|
||||
# {
|
||||
# name = "z";
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "jethrokuan";
|
||||
# repo = "z";
|
||||
# rev = "ddeb28a7b6a1f0ec6dae40c636e5ca4908ad160a";
|
||||
# sha256 = "0c5i7sdrsp0q3vbziqzdyqn4fmp235ax4mn4zslrswvn8g3fvdyh";
|
||||
# };
|
||||
# }
|
||||
|
||||
# # oh-my-fish plugins are stored in their own repositories, which
|
||||
# # makes them simple to import into home-manager.
|
||||
# {
|
||||
# name = "fasd";
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "oh-my-fish";
|
||||
# repo = "plugin-fasd";
|
||||
# rev = "38a5b6b6011106092009549e52249c6d6f501fba";
|
||||
# sha256 = "06v37hqy5yrv5a6ssd1p3cjd9y3hnp19d3ab7dag56fs1qmgyhbs";
|
||||
# };
|
||||
# }
|
||||
];
|
||||
}
|
||||
+2
-18
@@ -1,24 +1,8 @@
|
||||
# Fzf is a general-purpose command-line fuzzy finder.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in {
|
||||
_: {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
colors = lib.mkForce {
|
||||
"fg+" = accent;
|
||||
"bg+" = "-1";
|
||||
"fg" = foreground;
|
||||
"bg" = "-1";
|
||||
"prompt" = muted;
|
||||
"pointer" = accent;
|
||||
};
|
||||
defaultOptions = [
|
||||
"--margin=1"
|
||||
"--layout=reverse"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
|
||||
in {
|
||||
{
|
||||
gitUsername,
|
||||
gitEmail,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -4,11 +4,12 @@
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk4 = {
|
||||
theme = null;
|
||||
extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,14 +13,16 @@
|
||||
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
|
||||
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
|
||||
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
|
||||
"SUPER, H, exec, helium #\"Helium web browser\""
|
||||
"SUPER, I, exec, iotas #\"Note-taking app\""
|
||||
"SUPER, J, exec, Jan #\"Local AI chat interface\""
|
||||
"SUPER, K, exec, galculator #\"Scientific calculator\""
|
||||
"SUPER, K, exec, gnome-calculator #\"Scientific calculator\""
|
||||
"SUPER, L, exec, logseq #\"Knowledge management tool\""
|
||||
"SUPER, M, exec, plexamp #\"Music player for Plex\""
|
||||
"SUPER, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
|
||||
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
|
||||
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
|
||||
"SUPER, P, exec, plex-desktop #\"Plex media player\""
|
||||
"SUPER, R, exec, noctalia-shell ipc call plugin:screen-recorder saveReplay #\"Save Replay\""
|
||||
"SUPER, Return, exec, kitty #\"Kitty terminal\""
|
||||
"SUPER, S, exec, steam #\"Steam Game launcher\""
|
||||
"SUPER, T, exec, thunar #\"File manager\""
|
||||
@@ -31,24 +33,31 @@
|
||||
|
||||
shiftBinds = [
|
||||
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
|
||||
"SUPER SHIFT, E, exec, evolution #\"Personal information management application\""
|
||||
"SUPER SHIFT, Escape, exec, noctalia-shell ipc call sessionMenu toggle #\"Open Session Menu\""
|
||||
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\""
|
||||
"SUPER SHIFT, J, exec, dex ${desktopEntriesPath}/jellyfinClient.desktop #\"Jellyfin PWA\""
|
||||
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
|
||||
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
|
||||
"SUPER SHIFT, M, exec, plexamp #\"Music player for Plex\""
|
||||
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
|
||||
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
||||
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
|
||||
"SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\""
|
||||
"SUPER SHIFT, R, exec, restart-noctalia #\"Restart Noctalia shell\""
|
||||
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
|
||||
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
|
||||
"SUPER SHIFT, S, exec, noctalia-shell ipc call plugin:screenshot takeScreenshot region #\"Take screenshot\""
|
||||
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
|
||||
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
|
||||
];
|
||||
|
||||
altBinds = [
|
||||
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
|
||||
"SUPER ALT, F, exec, finamp #\"Jellyfin music client\""
|
||||
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
|
||||
"SUPER ALT, K, exec, kdenlive #\"Video editing software\""
|
||||
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
|
||||
"SUPER ALT, N, exec, noctalia-shell ipc call plugin:ntfy-notifications toggle #\"Open ntfy panel\""
|
||||
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
|
||||
"SUPER ALT, R, exec, noctalia-shell ipc call plugin:screen-recorder toggleReplay #\"Toggle Replay\""
|
||||
"SUPER ALT, S, exec, slack #\"Slack team communication tool\""
|
||||
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
|
||||
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
|
||||
@@ -58,14 +67,17 @@
|
||||
"SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
|
||||
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
|
||||
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
|
||||
"SUPER CONTROL, N, exec, noctalia-shell ipc call plugin:ntfy-notifications refresh #\"Refresh ntfy\""
|
||||
"SUPER CONTROL, R, exec, noctalia-shell ipc call plugin:screen-recorder toggle #\"Toogle screen recording\""
|
||||
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
|
||||
"SUPER CONTROL, T, exec, tsukimi #\"A simple Emby/Jellyfin Client\""
|
||||
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
|
||||
];
|
||||
|
||||
windowManagementBinds = [
|
||||
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
|
||||
"SUPER, Q, killactive, #\"Close active window\""
|
||||
"SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
|
||||
# "SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
|
||||
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
|
||||
];
|
||||
|
||||
@@ -123,9 +135,9 @@
|
||||
systemMediaAndControllsBinds = [
|
||||
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
|
||||
",XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #\"Mute audio output\""
|
||||
",XF86AudioMicMute, exec, noctalia-shell ipc call volume muteInput #\"Mute audio input\""
|
||||
",XF86AudioNext, exec, noctalia-shell ipc call media next #\"Next media track\""
|
||||
",XF86AudioPause, exec, noctalia-shell ipc call media pause #\"Pause media playback\""
|
||||
",XF86AudioPlay, exec, noctalia-shell ipc call media play #\"Play media\""
|
||||
",XF86AudioPlay, exec, noctalia-shell ipc call media playPause #\"Play/Pause media\""
|
||||
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
|
||||
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
|
||||
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"wl-paste --type text --watch cliphist store" # Saves text
|
||||
"wl-paste --type image --watch cliphist store" # Saves images
|
||||
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user start hyprpolkitagent"
|
||||
|
||||
# "killall -q waybar"
|
||||
# "pkill waybar"
|
||||
# "killall -q swaync"
|
||||
# "pkill swaync"
|
||||
"noctalia-shell &"
|
||||
"noctalia-shell"
|
||||
"wl-paste --type text --watch cliphist store" # Saves text
|
||||
"wl-paste --type image --watch cliphist store" # Saves images
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{
|
||||
host,
|
||||
config,
|
||||
extraMonitorSettings,
|
||||
keyboardLayout,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
||||
in {
|
||||
}: {
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
@@ -21,12 +19,13 @@ in {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = pkgs.hyprland;
|
||||
configType = "hyprlang"; # TODO: hyprlang => lua migration.
|
||||
xwayland.enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
enableXdgAutostart = true;
|
||||
variables = ["--all"];
|
||||
};
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "${keyboardLayout}";
|
||||
@@ -63,8 +62,8 @@ in {
|
||||
gaps_out = 8;
|
||||
border_size = 2;
|
||||
resize_on_border = true;
|
||||
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||
# "col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||
# "col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||
};
|
||||
|
||||
misc = {
|
||||
@@ -76,7 +75,6 @@ in {
|
||||
disable_splash_rendering = true;
|
||||
enable_swallow = true;
|
||||
swallow_regex = "^(kitty)$";
|
||||
vfr = true; # Variable Frame Rate
|
||||
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
||||
# Screen flashing to black momentarily or going black when app is fullscreen
|
||||
# Try setting vrr to 0
|
||||
@@ -87,7 +85,7 @@ in {
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
# pseudotile = true;
|
||||
preserve_split = true;
|
||||
force_split = 2;
|
||||
};
|
||||
@@ -107,7 +105,7 @@ in {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
# color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -131,7 +129,10 @@ in {
|
||||
direct_scanout = 0;
|
||||
};
|
||||
|
||||
debug.full_cm_proto = true;
|
||||
debug = {
|
||||
vfr = true; # Variable Frame Rate
|
||||
full_cm_proto = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
|
||||
@@ -41,6 +41,7 @@ _: {
|
||||
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"center on, match:title Authentication Required"
|
||||
"center on, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Idle inhibit rules
|
||||
"idle_inhibit fullscreen, match:class .*"
|
||||
@@ -61,11 +62,13 @@ _: {
|
||||
"float on, match:initial_title Add Folder to Workspace"
|
||||
"float on, match:initial_title Open Files"
|
||||
"float on, match:initial_title wants to save"
|
||||
"float on, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Size rules
|
||||
"size 70% 60%, match:initial_title Open Files"
|
||||
"size 70% 60%, match:initial_title Add Folder to Workspace"
|
||||
"size 70% 70%, match:tag settings*"
|
||||
"size 360 616, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Tile rules
|
||||
"tile on, match:class affinity\.exe"
|
||||
@@ -84,6 +87,7 @@ _: {
|
||||
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
|
||||
"opacity 0.9 0.8, match:class seahorse # gnome-keyring gui"
|
||||
"opacity 0.95 0.75, match:title Picture-in-Picture"
|
||||
"opacity 0.9 0.8, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Picture-in-Picture specific rules
|
||||
"pin on, match:title Picture-in-Picture"
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
}: {
|
||||
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
|
||||
|
||||
config.services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
config = {
|
||||
services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
||||
enable = true;
|
||||
indicator = false;
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
package = pkgs.kitty;
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
};
|
||||
|
||||
imports = [
|
||||
|
||||
@@ -37,6 +37,6 @@
|
||||
"privacy.clearOnShutdown.history" = true;
|
||||
|
||||
"network.trr.mode" = 3;
|
||||
"network.trr.uri" = "https://dns.mullvad.net/dns-query";
|
||||
"network.trr.uri" = "https://dns.quad9.net/dns-query";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
stylix = config.stylix.base16Scheme;
|
||||
in {
|
||||
programs.noctalia-shell.colors = lib.mkForce {
|
||||
mPrimary = "#${stylix.base04}";
|
||||
mOnPrimary = "#${stylix.base00}";
|
||||
|
||||
mSecondary = "#${stylix.base05}";
|
||||
mOnSecondary = "#${stylix.base00}";
|
||||
|
||||
mTertiary = "#${stylix.base03}";
|
||||
mOnTertiary = "#${stylix.base00}";
|
||||
|
||||
mError = "#${stylix.base02}";
|
||||
mOnError = "#${stylix.base00}";
|
||||
|
||||
mSurface = "#${stylix.base01}";
|
||||
mOnSurface = "#${stylix.base0E}";
|
||||
|
||||
mSurfaceVariant = "#${stylix.base00}";
|
||||
mOnSurfaceVariant = "#${stylix.base0A}";
|
||||
|
||||
mOutline = "#${stylix.base08}";
|
||||
mShadow = "#${stylix.base00}";
|
||||
|
||||
mOnHover = "#${stylix.base0B}";
|
||||
mHover = "#${stylix.base00}";
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
lib,
|
||||
# lib,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
@@ -9,13 +9,11 @@
|
||||
package = inputs.noctalia.packages.${system}.default.override {
|
||||
calendarSupport = true;
|
||||
};
|
||||
systemd.enable = true;
|
||||
settings.settingsVersion = lib.mkForce 46;
|
||||
# settings.settingsVersion = lib.mkForce 46;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./settings
|
||||
./colors.nix
|
||||
./plugins.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,28 +1,46 @@
|
||||
{lib, ...}: {
|
||||
{lib, ...}: let
|
||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||
in {
|
||||
programs.noctalia-shell = lib.mkForce {
|
||||
plugins = {
|
||||
sources = [
|
||||
{
|
||||
enabled = true;
|
||||
name = "Noctalia Plugins";
|
||||
url = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||
url = sourceUrl;
|
||||
}
|
||||
];
|
||||
states = {
|
||||
mini-docker = {
|
||||
enabled = true;
|
||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
timer = {
|
||||
enabled = true;
|
||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
keybind-cheatsheet = {
|
||||
enabled = true;
|
||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
kde-connect = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
screen-recorder = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
screenshot = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
ntfy-notifications = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
};
|
||||
version = 1;
|
||||
version = 2;
|
||||
};
|
||||
pluginSettings = {
|
||||
mini-docker.refreshInterval = 5000;
|
||||
@@ -32,9 +50,48 @@
|
||||
hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
|
||||
modKeyVariable = "SUPER";
|
||||
windowHeight = 850;
|
||||
windowWidth = 700;
|
||||
windowWidth = 1100;
|
||||
columnCount = 2;
|
||||
autoHeight = true;
|
||||
};
|
||||
kde-connect = {
|
||||
hideIfNoDeviceConnected = true;
|
||||
};
|
||||
screen-recorder = {
|
||||
hideInactive = true;
|
||||
iconColor = "none";
|
||||
directory = "";
|
||||
filenamePattern = "recording_yyyyMMdd_HHmmss";
|
||||
frameRate = 60;
|
||||
audioCodec = "aac";
|
||||
videoCodec = "hevc";
|
||||
quality = "ultra";
|
||||
colorRange = "full";
|
||||
showCursor = true;
|
||||
copyToClipboard = false;
|
||||
audioSource = "both";
|
||||
videoSource = "portal";
|
||||
resolution = "1920x1080";
|
||||
replayEnabled = true;
|
||||
replayDuration = 60;
|
||||
customReplayDuration = 30;
|
||||
replayStorage = "disk";
|
||||
restorePortalSession = true;
|
||||
customFrameRate = 6;
|
||||
};
|
||||
screenshot.mode = "region";
|
||||
# ntfy-notifications = {
|
||||
# serverUrl = "https://ntfy.garandplg.com";
|
||||
# topics = "beszel,dockhand,jellyfin,nixos-unstable,radarr,rss-feeds,seerr,sonarr";
|
||||
# authMethod = "basic";
|
||||
# authToken = "";
|
||||
# authUsername = ''$(cat ${config.sops.secrets."credentials/ntfy/username".path})'';
|
||||
# authPassword = ''$(cat ${config.sops.secrets."credentials/ntfy/password".path})'';
|
||||
# pollInterval = 30;
|
||||
# enableToasts = true;
|
||||
# maxMessages = 100;
|
||||
# readMessageIds = [];
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ _: {
|
||||
}
|
||||
{
|
||||
id = "SystemMonitor";
|
||||
compactMode = true;
|
||||
compactMode = false;
|
||||
diskPath = "/home";
|
||||
showCpuFreq = false;
|
||||
showCpuTemp = false;
|
||||
@@ -25,7 +25,7 @@ _: {
|
||||
showDiskUsage = true;
|
||||
showGpuTemp = false;
|
||||
showLoadAverage = false;
|
||||
showMemoryAsPercent = false;
|
||||
showMemoryAsPercent = true;
|
||||
showMemoryUsage = true;
|
||||
showNetworkStats = true;
|
||||
showSwapUsage = false;
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
right = [
|
||||
{
|
||||
id = "Tray";
|
||||
blacklist = [];
|
||||
blacklist = [
|
||||
"nm-applet"
|
||||
"Easy Effects"
|
||||
];
|
||||
colorizeIcons = false;
|
||||
drawerEnabled = false;
|
||||
hidePassive = false;
|
||||
@@ -25,6 +28,9 @@
|
||||
showUnreadBadge = true;
|
||||
unreadBadgeColor = "primary";
|
||||
}
|
||||
{
|
||||
id = "plugin:kde-connect";
|
||||
}
|
||||
{
|
||||
id = "Bluetooth";
|
||||
displayMode = "onhover";
|
||||
@@ -32,22 +38,47 @@
|
||||
{
|
||||
id = "Battery";
|
||||
deviceNativePath = "__default__";
|
||||
displayMode = "onhover";
|
||||
displayMode = "graphic";
|
||||
hideIfIdle = false;
|
||||
hideIfNotDetected = true;
|
||||
showNoctaliaPerformance = false;
|
||||
showPowerProfiles = false;
|
||||
showNoctaliaPerformance = true;
|
||||
showPowerProfiles = true;
|
||||
warningThreshold = 30;
|
||||
}
|
||||
{
|
||||
id = "plugin:screen-recorder";
|
||||
defaultSettings = {
|
||||
hideInactive = true;
|
||||
iconColor = "none";
|
||||
directory = "";
|
||||
filenamePattern = "recording_yyyyMMdd_HHmmss";
|
||||
frameRate = 60;
|
||||
audioCodec = "aac";
|
||||
videoCodec = "hevc";
|
||||
quality = "ultra";
|
||||
colorRange = "full";
|
||||
showCursor = true;
|
||||
copyToClipboard = false;
|
||||
audioSource = "both";
|
||||
videoSource = "portal";
|
||||
resolution = "1920x1080";
|
||||
replayEnabled = true;
|
||||
replayDuration = 60;
|
||||
customReplayDuration = 30;
|
||||
replayStorage = "disk";
|
||||
restorePortalSession = true;
|
||||
customFrameRate = 6;
|
||||
};
|
||||
}
|
||||
{
|
||||
id = "Volume";
|
||||
displayMode = "alwaysShow";
|
||||
middleClickCommand = "pwvucontrol || pavucontrol";
|
||||
}
|
||||
# {
|
||||
# "id" = "Brightness";
|
||||
# "displayMode" = "onhover";
|
||||
# }
|
||||
{
|
||||
id = "Network";
|
||||
displayMode = "onhover";
|
||||
}
|
||||
{
|
||||
id = "ControlCenter";
|
||||
colorizeDistroLogo = false;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
host,
|
||||
keyboardLayout,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in {
|
||||
}: {
|
||||
programs.noctalia-shell.settings.general = lib.mkForce {
|
||||
avatarImage = "/home/${username}/.face.icon";
|
||||
dimmerOpacity = 0.2;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
host,
|
||||
location,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../../hosts/${host}/variables.nix) location;
|
||||
in {
|
||||
}: {
|
||||
programs.noctalia-shell.settings.location = lib.mkForce {
|
||||
name = "${location}";
|
||||
weatherEnabled = true;
|
||||
|
||||
@@ -16,8 +16,8 @@ in {
|
||||
memCriticalThreshold = 90;
|
||||
swapWarningThreshold = 80;
|
||||
swapCriticalThreshold = 90;
|
||||
diskWarningThreshold = 80;
|
||||
diskCriticalThreshold = 90;
|
||||
diskWarningThreshold = 90;
|
||||
diskCriticalThreshold = 95;
|
||||
cpuPollingInterval = 3000;
|
||||
tempPollingInterval = 3000;
|
||||
gpuPollingInterval = 3000;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
host,
|
||||
config,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../../hosts/${host}/variables.nix) stylixImage;
|
||||
in {
|
||||
}: {
|
||||
programs.noctalia-shell.settings.wallpaper = lib.mkForce {
|
||||
enabled = true;
|
||||
overviewEnabled = false;
|
||||
@@ -42,6 +40,6 @@ in {
|
||||
};
|
||||
|
||||
home.file.".cache/noctalia/wallpapers.json".text = lib.mkForce (builtins.toJSON {
|
||||
defaultWallpaper = ../../../../wallpapers/${stylixImage};
|
||||
defaultWallpaper = config.stylix.image;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
(import ./nvidia-offload.nix {inherit pkgs;})
|
||||
(import ./restart.noctalia.nix {inherit pkgs;})
|
||||
(import ./screenshootin.nix {inherit pkgs;})
|
||||
(import ./restart-noctalia.nix {inherit pkgs;})
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{pkgs}:
|
||||
pkgs.writeShellScriptBin "restart-noctalia" ''
|
||||
noctalia-shell kill
|
||||
sleep 1.5
|
||||
noctalia-shell -d
|
||||
''
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Restart the Noctalia QuickShell session by terminating only the noctalia-shell
|
||||
# processes, avoiding any signals to unrelated process groups (e.g. Hyprland).
|
||||
|
||||
log() { printf "[restart.noctalia] %s\n" "$*"; }
|
||||
|
||||
list_target_pids() {
|
||||
# Collect only PIDs whose command explicitly runs noctalia-shell
|
||||
# - direct wrapper: ".../noctalia-shell"
|
||||
# - quickshell/qs with "-c noctalia-shell"
|
||||
ps -eo pid=,cmd= \
|
||||
| ${GREP:-grep} -E "(^|/)(noctalia-shell)( |$)|(^| )((qs|quickshell))( | ).*-c( |=)?noctalia-shell( |$)" \
|
||||
| awk '{print $1}'
|
||||
}
|
||||
|
||||
terminate_targets() {
|
||||
local pids left tries
|
||||
mapfile -t pids < <(list_target_pids || true)
|
||||
|
||||
if ((${#pids[@]} > 0)); then
|
||||
kill -TERM "${pids[@]}" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Wait up to ~3s for clean exit
|
||||
for tries in {1..15}; do
|
||||
mapfile -t left < <(list_target_pids || true)
|
||||
((${#left[@]} == 0)) && break
|
||||
sleep 0.2
|
||||
done
|
||||
|
||||
# Force kill leftovers only (do not touch anything else)
|
||||
if ((${#left[@]} > 0)); then
|
||||
kill -KILL "${left[@]}" 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
start_noctalia() {
|
||||
# Prefer the noctalia-shell wrapper to ensure proper env and runtime flags
|
||||
if command -v noctalia-shell >/dev/null 2>&1; then
|
||||
nohup setsid noctalia-shell >/dev/null 2>&1 &
|
||||
elif command -v quickshell >/dev/null 2>&1; then
|
||||
nohup setsid quickshell -c noctalia-shell >/dev/null 2>&1 &
|
||||
elif command -v qs >/dev/null 2>&1; then
|
||||
nohup setsid qs -c noctalia-shell >/dev/null 2>&1 &
|
||||
else
|
||||
echo "Error: noctalia-shell/quickshell/qs not found in PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
terminate_targets
|
||||
start_noctalia
|
||||
@@ -1,24 +0,0 @@
|
||||
{pkgs, ...}: let
|
||||
binPath = pkgs.lib.makeBinPath [
|
||||
pkgs.coreutils
|
||||
pkgs.procps
|
||||
pkgs.psmisc
|
||||
pkgs.gnugrep
|
||||
pkgs.findutils
|
||||
pkgs.util-linux
|
||||
pkgs.bash
|
||||
];
|
||||
script = builtins.readFile ./restart.noctalia;
|
||||
in
|
||||
pkgs.writeShellScriptBin "restart.noctalia" ''
|
||||
set -euo pipefail
|
||||
export PATH=${binPath}:$PATH
|
||||
|
||||
tmp_script=$(mktemp)
|
||||
trap 'rm -f "$tmp_script"' EXIT
|
||||
cat > "$tmp_script" <<'BASH_EOF'
|
||||
${script}
|
||||
BASH_EOF
|
||||
chmod +x "$tmp_script"
|
||||
exec ${pkgs.bash}/bin/bash "$tmp_script" "$@"
|
||||
''
|
||||
@@ -1,4 +0,0 @@
|
||||
{pkgs}:
|
||||
pkgs.writeShellScriptBin "screenshootin" ''
|
||||
grim -g "$(slurp)" - | swappy -f -
|
||||
''
|
||||
@@ -2,7 +2,7 @@
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
matchBlocks = {
|
||||
settings = {
|
||||
"hp-t640-homeserver" = {
|
||||
hostname = "192.168.1.156";
|
||||
user = "${username}";
|
||||
@@ -15,6 +15,13 @@
|
||||
port = 22;
|
||||
identityFile = "~/.ssh/hp-t640-homeserver";
|
||||
};
|
||||
"gitssh.garandplg.com" = {
|
||||
hostname = "gitssh.garandplg.com";
|
||||
user = "git";
|
||||
port = 222;
|
||||
identityFile = "~/.ssh/id_ed25519_gitea";
|
||||
identitiesOnly = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
+12
-17
@@ -1,12 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
in {
|
||||
{lib, ...}: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
format = lib.concatStrings [
|
||||
@@ -33,24 +28,24 @@ in {
|
||||
truncation_symbol = "…/";
|
||||
truncate_to_repo = false;
|
||||
substitutions = {
|
||||
"Documents" = " ";
|
||||
"Downloads" = " ";
|
||||
"Music" = " ";
|
||||
"Pictures" = " ";
|
||||
"Projects" = " ";
|
||||
"nix" = " ";
|
||||
"nixos" = " ";
|
||||
"Documents" = "";
|
||||
"Downloads" = "";
|
||||
"Music" = "";
|
||||
"Pictures" = "";
|
||||
"Projects" = "";
|
||||
"nix" = "";
|
||||
"nixos" = "";
|
||||
};
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[ ](${accent})";
|
||||
error_symbol = "[ ](red)";
|
||||
success_symbol = "";
|
||||
error_symbol = "";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
format = "[$symbol]($style) ";
|
||||
symbol = " ";
|
||||
symbol = "";
|
||||
style = "";
|
||||
};
|
||||
|
||||
|
||||
+59
-3
@@ -1,14 +1,70 @@
|
||||
{host, ...}: {
|
||||
stylix.targets = {
|
||||
librewolf.profileNames = ["${host}"];
|
||||
hyprland.enable = false;
|
||||
|
||||
hyprland = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
hyprpaper.enable = true;
|
||||
image.enable = true;
|
||||
};
|
||||
|
||||
vscode.enable = false;
|
||||
|
||||
zed.enable = false;
|
||||
vesktop.enable = false;
|
||||
|
||||
vesktop = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
fonts.enable = true;
|
||||
};
|
||||
|
||||
noctalia-shell.enable = true;
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platform = "qtct";
|
||||
};
|
||||
noctalia-shell.enable = true;
|
||||
|
||||
fish = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
inputs.enable = true;
|
||||
};
|
||||
|
||||
starship = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
};
|
||||
|
||||
fzf = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
};
|
||||
|
||||
bat = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
};
|
||||
|
||||
anki = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
};
|
||||
|
||||
btop = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
opacity.enable = true;
|
||||
};
|
||||
|
||||
kitty = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
fonts.enable = true;
|
||||
inputs.enable = true;
|
||||
opacity.enable = true;
|
||||
variant256Colors = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
+12
-14
@@ -1,16 +1,14 @@
|
||||
{username, ...}: {
|
||||
home.file = {
|
||||
".config/swappy/config".text = ''
|
||||
[Default]
|
||||
save_dir=/home/${username}/Pictures/Screenshots
|
||||
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
||||
show_panel=false
|
||||
line_size=5
|
||||
text_size=20
|
||||
text_font=Ubuntu
|
||||
paint_mode=brush
|
||||
early_exit=true
|
||||
fill_shape=false
|
||||
'';
|
||||
};
|
||||
home.file.".config/swappy/config".text = ''
|
||||
[Default]
|
||||
save_dir=/home/${username}/Pictures/Screenshots
|
||||
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
||||
show_panel=false
|
||||
line_size=5
|
||||
text_size=20
|
||||
text_font=Ubuntu
|
||||
paint_mode=brush
|
||||
early_exit=true
|
||||
fill_shape=false
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
_: {
|
||||
dconf.settings = {
|
||||
"org/virt-manager/virt-manager/connections" = {
|
||||
autoconnect = ["qemu:///system"];
|
||||
uris = ["qemu:///system"];
|
||||
};
|
||||
dconf.settings."org/virt-manager/virt-manager/connections" = {
|
||||
autoconnect = ["qemu:///system"];
|
||||
uris = ["qemu:///system"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
makeEntry = app: {
|
||||
name = app.displayName;
|
||||
genericName = app.genericName or app.displayName;
|
||||
exec = "chromium --profile-directory=Default --app=${app.url}";
|
||||
exec = "helium --profile-directory=Default --app=${app.url}";
|
||||
icon = "${fetchIcon app.iconUrl app.iconSha}";
|
||||
terminal = false;
|
||||
type = "Application";
|
||||
@@ -22,7 +22,7 @@
|
||||
{
|
||||
name = "messenger";
|
||||
displayName = "Messenger";
|
||||
url = "https://www.messenger.com/";
|
||||
url = "https://www.facebook.com/messages/";
|
||||
iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
|
||||
iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
|
||||
}
|
||||
@@ -62,6 +62,13 @@
|
||||
iconUrl = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/glance.png";
|
||||
iconSha = "sha256-xyFlmPpt+DABoGX5oBqj/aQVdxtmNflat9Jb2BE7SOY=";
|
||||
}
|
||||
{
|
||||
name = "jellyfinClient";
|
||||
displayName = "Jellyfin Client";
|
||||
url = "https://jellyfin.garandplg.com";
|
||||
iconUrl = "https://jellyfin.org/images/logo.svg";
|
||||
iconSha = "sha256-sRSB2rxThd4+vMmdpRTz+bEKgdrmF5NG4I74I6kfCyY=";
|
||||
}
|
||||
];
|
||||
in {
|
||||
options.xdgDesktopEntries = {
|
||||
|
||||
@@ -19,5 +19,6 @@ _: {
|
||||
"deputy"
|
||||
"biome"
|
||||
"opencode"
|
||||
"fish"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
nixd
|
||||
alejandra
|
||||
opencode
|
||||
uv
|
||||
python314
|
||||
ruff
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
_: {
|
||||
programs.zed-editor.userSettings.agent = {
|
||||
always_allow_tool_actions = true;
|
||||
default_profile = "ask";
|
||||
default_model = {
|
||||
provider = "Cerebras";
|
||||
provider = "Cerebras PAUG";
|
||||
model = "gpt-oss-120b";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -5,8 +5,14 @@ _: {
|
||||
metrics = false;
|
||||
};
|
||||
icon_theme = "VSCode Icons for Zed (Dark)";
|
||||
ui_font_family = "FiraCode Nerd Font Mono";
|
||||
ui_font_size = 16;
|
||||
buffer_font_family = "FiraCode Nerd Font Mono";
|
||||
buffer_font_size = 15;
|
||||
terminal = {
|
||||
font_family = "FiraCode Nerd Font Mono";
|
||||
font_size = 14;
|
||||
};
|
||||
theme = {
|
||||
mode = "dark";
|
||||
light = "One Light";
|
||||
|
||||
@@ -1,43 +1,158 @@
|
||||
_: {
|
||||
programs.zed-editor.userSettings.language_models.openai_compatible."Cerebras" = {
|
||||
api_url = "https://api.cerebras.ai/v1";
|
||||
available_models = [
|
||||
{
|
||||
name = "qwen-3-235b-a22b-instruct-2507";
|
||||
display_name = "Qwen 3 235B Instruct";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 32000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = false;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "llama-3.3-70b";
|
||||
display_name = "Llama 3.3 70B";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 8000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "gpt-oss-120b";
|
||||
display_name = "OpenAI GPT OSS";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 32000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = false;
|
||||
};
|
||||
}
|
||||
];
|
||||
programs.zed-editor.userSettings.language_models.openai_compatible = {
|
||||
"Cerebras FREE" = {
|
||||
api_url = "https://api.cerebras.ai/v1";
|
||||
available_models = [
|
||||
{
|
||||
name = "gpt-oss-120b";
|
||||
display_name = "OpenAI GPT OSS";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 32000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = false;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zai-glm-4.7";
|
||||
display_name = "Z.ai GLM 4.7";
|
||||
max_tokens = 64000;
|
||||
max_output_tokens = 40000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "llama3.1-8b";
|
||||
display_name = "Llama 3.1 8B";
|
||||
max_tokens = 8000;
|
||||
max_output_tokens = 8000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "llama-3.3-70b";
|
||||
display_name = "Llama 3.3 70B";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 8000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "qwen-3-32b";
|
||||
display_name = "Qwen 3 32B";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 8000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = false;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "qwen-3-235b-a22b-instruct-2507";
|
||||
display_name = "Qwen 3 235B Instruct";
|
||||
max_tokens = 65000;
|
||||
max_output_tokens = 32000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = false;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
"Cerebras PAUG" = {
|
||||
api_url = "https://api.cerebras.ai/v1";
|
||||
available_models = [
|
||||
{
|
||||
name = "gpt-oss-120b";
|
||||
display_name = "OpenAI GPT OSS";
|
||||
max_tokens = 131000;
|
||||
max_output_tokens = 40000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = false;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zai-glm-4.7";
|
||||
display_name = "Z.ai GLM 4.7";
|
||||
max_tokens = 131000;
|
||||
max_output_tokens = 40000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "llama3.1-8b";
|
||||
display_name = "Llama 3.1 8B";
|
||||
max_tokens = 32000;
|
||||
max_output_tokens = 8000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "llama-3.3-70b";
|
||||
display_name = "Llama 3.3 70B";
|
||||
max_tokens = 128000;
|
||||
max_output_tokens = 65000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = true;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "qwen-3-32b";
|
||||
display_name = "Qwen 3 32B";
|
||||
max_tokens = 131000;
|
||||
max_output_tokens = 8000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = false;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "qwen-3-235b-a22b-instruct-2507";
|
||||
display_name = "Qwen 3 235B Instruct";
|
||||
max_tokens = 131000;
|
||||
max_output_tokens = 40000;
|
||||
capabilities = {
|
||||
tools = true;
|
||||
images = true;
|
||||
parallel_tool_calls = false;
|
||||
prompt_cache_key = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,7 +4,17 @@ _: {
|
||||
"nixd"
|
||||
"!nil"
|
||||
];
|
||||
Python.language_servers = ["!basedpyright"];
|
||||
Python = {
|
||||
format_on_save = "off";
|
||||
formatter.language_server.name = "ruff";
|
||||
code_actions_on_format."source.organizeImports.ruff" = true;
|
||||
language_servers = [
|
||||
"ruff"
|
||||
"!ty"
|
||||
"!basedpyright"
|
||||
];
|
||||
tab_size = 4;
|
||||
};
|
||||
YAML.tab_size = 2;
|
||||
JavaScript = {
|
||||
formatter.language_server.name = "biome";
|
||||
|
||||
@@ -72,5 +72,27 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
ruff = {
|
||||
binary = {
|
||||
path = lib.getExe pkgs.bash;
|
||||
arguments = [
|
||||
"-c"
|
||||
"if [ -e flake.nix ]; then nix develop --command ruff server; else ruff server; fi"
|
||||
];
|
||||
};
|
||||
initialization_options = {
|
||||
check.command = "ruff check .";
|
||||
inlayHints = {
|
||||
maxLength = null;
|
||||
lifetimeElisionHints = {
|
||||
enable = "skip_trivial";
|
||||
useParameterNames = true;
|
||||
};
|
||||
closureReturnTypeHints = {
|
||||
enable = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
_: {
|
||||
programs = {
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
options = [
|
||||
"--cmd cd"
|
||||
];
|
||||
};
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
options = [
|
||||
"--cmd cd"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) intelID nvidiaID;
|
||||
in {
|
||||
{
|
||||
host,
|
||||
intelID,
|
||||
nvidiaID,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../hosts/${host}
|
||||
../../modules/drivers
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.8 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.4 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 644 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 514 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user