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": {
|
"nodes": {
|
||||||
"affinity-nix": {
|
"affinity-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"elemental-wine-source": "elemental-wine-source",
|
"corefonts": "corefonts",
|
||||||
|
"crane": "crane",
|
||||||
|
"fenix": "fenix",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
@@ -11,15 +13,15 @@
|
|||||||
],
|
],
|
||||||
"nixpkgs-wine": "nixpkgs-wine",
|
"nixpkgs-wine": "nixpkgs-wine",
|
||||||
"on-linux": "on-linux",
|
"on-linux": "on-linux",
|
||||||
"plugin-loader": "plugin-loader",
|
"plugin-loader-src": "plugin-loader-src",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767916874,
|
"lastModified": 1779522232,
|
||||||
"narHash": "sha256-IcvLwoF1CIOd7yELc0Xwqskilw2FxHHRm5ZnmNdBuKc=",
|
"narHash": "sha256-43PUS3kPWEWVArFV9h1m4mrWIdHeeVXv7kdteYhobOs=",
|
||||||
"owner": "mrshmllow",
|
"owner": "mrshmllow",
|
||||||
"repo": "affinity-nix",
|
"repo": "affinity-nix",
|
||||||
"rev": "0c110a15fb5605490f7de451073db1c775745fee",
|
"rev": "328f8f66e375c64255dc3cb3453271aab4d4c273",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -66,11 +68,11 @@
|
|||||||
"base16-helix": {
|
"base16-helix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760703920,
|
"lastModified": 1776754714,
|
||||||
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-helix",
|
"repo": "base16-helix",
|
||||||
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -96,33 +98,67 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"elemental-wine-source": {
|
"corefonts": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"host": "gitlab.winehq.org",
|
"lastModified": 1431183738,
|
||||||
"lastModified": 1722747031,
|
"narHash": "sha256-610Km9GCtYWxi2SH5jH/XYPXc5f58q5lB05/5XxO/qM=",
|
||||||
"narHash": "sha256-XVhz9p2kgFBoJ376vg8OaFXxcMEjAe9AK1hk0I1rb1Q=",
|
"owner": "pushcx",
|
||||||
"owner": "ElementalWarrior",
|
"repo": "corefonts",
|
||||||
"repo": "wine",
|
"rev": "8f8627b0004b5f1b952c09cf6390e4ae46475e59",
|
||||||
"rev": "a7c9b19e1a26cf49c63a7c19189a3e2bbe2c6ac2",
|
"type": "github"
|
||||||
"type": "gitlab"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"host": "gitlab.winehq.org",
|
"owner": "pushcx",
|
||||||
"owner": "ElementalWarrior",
|
"repo": "corefonts",
|
||||||
"ref": "affinity-photo3-wine9.13-part3",
|
"type": "github"
|
||||||
"repo": "wine",
|
}
|
||||||
"type": "gitlab"
|
},
|
||||||
|
"crane": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779130139,
|
||||||
|
"narHash": "sha256-BLrtr42azquO7MdGFU5a7KiMl3YpFlTeIXqy1fT5GlQ=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "edb38893982a3338972bb4a2ec7ce7c29ba10fd9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fenix": {
|
"fenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"garandos-tui",
|
"affinity-nix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"rust-analyzer-src": "rust-analyzer-src"
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1762929886,
|
"lastModified": 1762929886,
|
||||||
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
|
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
|
||||||
@@ -145,11 +181,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1769918637,
|
"lastModified": 1779508957,
|
||||||
"narHash": "sha256-3XyGk89S0UFvKRZiKpFL4ImP5qP/2AOJUaYC7ogXnJo=",
|
"narHash": "sha256-gNwsa7Hwp+pUNe9pvv2aFphcFnm8BoCUUQRm0HXJHD0=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "5659e4c18d1350d1b511fcdce885fdd879effa22",
|
"rev": "3bd76938b820b6f7cf537fffa206bb6a73094b4f",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -162,11 +198,11 @@
|
|||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764873433,
|
"lastModified": 1776136500,
|
||||||
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
"narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
"rev": "0f8ba203d475587f477e7ae12661bd8459e225b7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -209,11 +245,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767609335,
|
"lastModified": 1778716662,
|
||||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -229,11 +265,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767609335,
|
"lastModified": 1775087534,
|
||||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -260,7 +296,7 @@
|
|||||||
},
|
},
|
||||||
"garandos-tui": {
|
"garandos-tui": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"fenix": "fenix",
|
"fenix": "fenix_2",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
@@ -290,11 +326,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767281941,
|
"lastModified": 1778507602,
|
||||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -326,20 +362,18 @@
|
|||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"host": "gitlab.gnome.org",
|
|
||||||
"lastModified": 1767737596,
|
"lastModified": 1767737596,
|
||||||
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||||
"type": "gitlab"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"host": "gitlab.gnome.org",
|
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"ref": "gnome-49",
|
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"type": "gitlab"
|
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
@@ -349,11 +383,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769952507,
|
"lastModified": 1779507042,
|
||||||
"narHash": "sha256-eNTfxT3v8b7s1dqswgposi5Y1CUMoOUhQKiy29QY25U=",
|
"narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "b59376563943ce163b2553aeb63d0c170967d74e",
|
"rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -366,11 +400,11 @@
|
|||||||
"libnbtplusplus": {
|
"libnbtplusplus": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744811532,
|
"lastModified": 1772016279,
|
||||||
"narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=",
|
"narHash": "sha256-7itkptyjoRcXfGLwg1/jxajetZ3a4mDc66+w4X6yW8s=",
|
||||||
"owner": "PrismLauncher",
|
"owner": "PrismLauncher",
|
||||||
"repo": "libnbtplusplus",
|
"repo": "libnbtplusplus",
|
||||||
"rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78",
|
"rev": "687e43031df0dc641984b4256bcca50d5b3f7de3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -422,11 +456,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769789167,
|
"lastModified": 1779508470,
|
||||||
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
|
"narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5",
|
"rev": "29916453413845e54a65b8a1cf996842300cd299",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -438,11 +472,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765674936,
|
"lastModified": 1777168982,
|
||||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -471,14 +505,15 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"noctalia-qs": "noctalia-qs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769983098,
|
"lastModified": 1779504029,
|
||||||
"narHash": "sha256-PKej3N1BxAoKzusrdWuS9gT8bXW0U/Zk8RkedsP3qYc=",
|
"narHash": "sha256-f8u9DV9Qk8KJh7DVvk4UgUFTN0NDJeFxgrffTSwPkpA=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-shell",
|
"repo": "noctalia-shell",
|
||||||
"rev": "2a98d04b2f5e251935ba296c0d7dc374bdc5e32d",
|
"rev": "b99b7a7f06ff749df9ac43181ff7889ff90c5599",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -487,6 +522,29 @@
|
|||||||
"type": "github"
|
"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": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
@@ -498,11 +556,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767810917,
|
"lastModified": 1777598946,
|
||||||
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
"narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
"rev": "5d55af01c0f86be583931fe99207fc56c14134b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -514,11 +572,11 @@
|
|||||||
"on-linux": {
|
"on-linux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766544016,
|
"lastModified": 1772699425,
|
||||||
"narHash": "sha256-3X1426N7n6bwM7GAQOvpCq2OVdlQevCzbpak0l9B6BU=",
|
"narHash": "sha256-xhqkN2I5r+Ty2k8HEsLg5e8Eaazb0Qyioqjs87BQOnY=",
|
||||||
"owner": "seapear",
|
"owner": "seapear",
|
||||||
"repo": "AffinityOnLinux",
|
"repo": "AffinityOnLinux",
|
||||||
"rev": "da601564dfefe2ae3ec10e3f177db81578847b7b",
|
"rev": "a0c4421946709c24c3f371fcbf15a45b814f188c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -527,16 +585,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plugin-loader": {
|
"plugin-loader-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-mixBa/xIfSIrSS3+bGqznXxSE6h8s7e2xoJM2g4eXhg=",
|
"lastModified": 1776972538,
|
||||||
"type": "file",
|
"narHash": "sha256-2EvrOYQCB2Z2YXhcPnjR67KoOCvwTVW3TfLcmU3//ak=",
|
||||||
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz"
|
"owner": "noahc3",
|
||||||
|
"repo": "AffinityPluginLoader",
|
||||||
|
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "file",
|
"owner": "noahc3",
|
||||||
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz"
|
"repo": "AffinityPluginLoader",
|
||||||
|
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"prismlauncher-cracked": {
|
"prismlauncher-cracked": {
|
||||||
@@ -547,11 +610,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768437816,
|
"lastModified": 1776795718,
|
||||||
"narHash": "sha256-GG+V2g5NfVrypTs8qbtGnUWTXTMkGtohy/uIDa5duI0=",
|
"narHash": "sha256-YrqHeE9ZEnmxJiXE+IBAxbmNRFPE7mn9KbxZ3Mpu388=",
|
||||||
"owner": "Diegiwg",
|
"owner": "Diegiwg",
|
||||||
"repo": "PrismLauncher-Cracked",
|
"repo": "PrismLauncher-Cracked",
|
||||||
"rev": "e8418b74059bdbe4fcc97522b25dc17373b0cc21",
|
"rev": "0c20d448a3c89cbff85ef5dc7420bf60dc1e65ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -574,6 +637,23 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-analyzer-src": {
|
"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,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762860488,
|
"lastModified": 1762860488,
|
||||||
@@ -603,19 +683,18 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems",
|
"systems": "systems_2",
|
||||||
"tinted-foot": "tinted-foot",
|
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
"tinted-tmux": "tinted-tmux",
|
"tinted-tmux": "tinted-tmux",
|
||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769888473,
|
"lastModified": 1779378391,
|
||||||
"narHash": "sha256-4KWbaJwaYnZ60bFyTudZYAKskjr7Sa17R3/yh+oXS7w=",
|
"narHash": "sha256-IsDb9erotvx9npI94UDosvMeYQK17p7/vmU2v9batrY=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "ae5c0239ae4f82a8c7e33ad8a456535d5a9ba813",
|
"rev": "c1456cc4ba3c9485e7b4158c909eeca5a752cd59",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -625,6 +704,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
@@ -639,23 +733,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"tinted-kitty": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -675,11 +752,11 @@
|
|||||||
"tinted-schemes": {
|
"tinted-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767710407,
|
"lastModified": 1777041405,
|
||||||
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
"narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
"rev": "5f868b3a338b6904c47f3833b9c411be641983a8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -691,11 +768,11 @@
|
|||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767489635,
|
"lastModified": 1777169200,
|
||||||
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
"narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
"rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -707,11 +784,11 @@
|
|||||||
"tinted-zed": {
|
"tinted-zed": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767488740,
|
"lastModified": 1777463218,
|
||||||
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
"narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-zed",
|
"repo": "base16-zed",
|
||||||
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
"rev": "5768d08ed2e7944a26a958868cdb073cb8856dae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -727,11 +804,33 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767801790,
|
"lastModified": 1775636079,
|
||||||
"narHash": "sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2+gM5tf8=",
|
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"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"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -65,25 +65,14 @@
|
|||||||
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
||||||
|
|
||||||
mkHost = hostName: let
|
mkHost = hostName: let
|
||||||
inherit
|
hostVars = import ./hosts/${hostName}/variables.nix;
|
||||||
(import ./hosts/${hostName}/variables.nix)
|
hostPrinterVars = import ./hosts/${hostName}/printers.nix;
|
||||||
host
|
|
||||||
username
|
|
||||||
profile
|
|
||||||
system
|
|
||||||
;
|
|
||||||
in
|
in
|
||||||
nixpkgs.lib.nixosSystem {
|
nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit (hostVars) system;
|
||||||
specialArgs = {
|
specialArgs = hostVars // hostPrinterVars // {inherit inputs;};
|
||||||
inherit inputs;
|
|
||||||
inherit username;
|
|
||||||
inherit host;
|
|
||||||
inherit profile;
|
|
||||||
inherit system;
|
|
||||||
};
|
|
||||||
modules = [
|
modules = [
|
||||||
./profiles/${profile}
|
./profiles/${hostVars.profile}
|
||||||
nix-flatpak.nixosModules.nix-flatpak
|
nix-flatpak.nixosModules.nix-flatpak
|
||||||
garandos-tui.nixosModules.garandos-tui
|
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
|
# (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
|
# 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`.
|
# 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
|
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||||
zed-editor = {
|
zed-editor = {
|
||||||
enable = true; # Zed Editor: a modern, high‑performance code 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
|
System utilities
|
||||||
*/
|
*/
|
||||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
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
|
cava.enable = false; # Cava: terminal audio visualizer
|
||||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Communication and synchronization
|
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
|
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||||
|
|
||||||
@@ -57,9 +58,10 @@ _: {
|
|||||||
messenger.enable = true; # Messenger: Facebook Messenger
|
messenger.enable = true; # Messenger: Facebook Messenger
|
||||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
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
|
claude.enable = true; # Claude: a large language model
|
||||||
glance.enable = true; # Glance: my home server dashboard
|
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
|
Container & Packaging
|
||||||
*/
|
*/
|
||||||
docker.enable = true; # Docker: container runtime and management
|
docker.enable = true; # Docker: container runtime and management
|
||||||
virtualbox.enable = true; # VirtualBox: PC emulator
|
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||||
flatpak = {
|
flatpak = {
|
||||||
enable = true; # Flatpak: universal packaging system for Linux
|
enable = true; # Flatpak: universal packaging system for Linux
|
||||||
packages = {
|
packages = {
|
||||||
sober.enable = false; # Roblox client
|
sober.enable = false; # Roblox client
|
||||||
warehouse.enable = true; # Flatpak manager
|
warehouse.enable = true; # Flatpak manager
|
||||||
flatseal.enable = true; # Flatpak permissions 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
|
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||||
|
|
||||||
|
/*
|
||||||
|
Calendar & Contacts
|
||||||
|
*/
|
||||||
|
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
Gaming
|
||||||
*/
|
*/
|
||||||
@@ -25,18 +31,34 @@ _: {
|
|||||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||||
steam.enable = true; # Steam: platform for buying and playing 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 = {
|
packages = {
|
||||||
|
/*
|
||||||
|
Web browsers
|
||||||
|
*/
|
||||||
|
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Container & Packaging
|
Container & Packaging
|
||||||
*/
|
*/
|
||||||
distrobox.enable = false; # Distrobox: containerized development environments
|
distrobox.enable = false; # Distrobox: containerized development environments
|
||||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||||
|
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
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
|
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire 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
|
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||||
@@ -44,21 +66,23 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Development Tools
|
Development Tools
|
||||||
*/
|
*/
|
||||||
exercism.enable = true; # Exercism: coding practice platform
|
exercism.enable = false; # Exercism: coding practice platform
|
||||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||||
opencode.enable = false; # OpenCode: tools for coding and development
|
opencode.enable = false; # OpenCode: tools for coding and development
|
||||||
jan.enable = true; # Jan: AI chat UI
|
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
|
Communication & Collaboration
|
||||||
*/
|
*/
|
||||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
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
|
tutanota.enable = true; # Tutanota: secure email client
|
||||||
signal.enable = true; # Signal: secure messaging app
|
signal.enable = true; # Signal: secure messaging app
|
||||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
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
|
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
|
Productivity / Knowledge Management
|
||||||
@@ -70,21 +94,22 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Media & Graphics
|
Media & Graphics
|
||||||
*/
|
*/
|
||||||
affinity.enable = false; # Affinity: professional graphics suite
|
|
||||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||||
|
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
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
|
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
||||||
plex.enable = true; # Plex: media player and server client
|
plex.enable = true; # Plex: media player and server client
|
||||||
|
jellyfin.enable = true; # Jellyfin: foss media player
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Utilities / Misc
|
Utilities / Misc
|
||||||
*/
|
*/
|
||||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
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
|
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
|
adb.enable = false; # ADB: Android SDK platform tools
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,10 @@
|
|||||||
gitUsername = "GarandPLG";
|
gitUsername = "GarandPLG";
|
||||||
gitEmail = "garandplg@garandplg.com";
|
gitEmail = "garandplg@garandplg.com";
|
||||||
|
|
||||||
|
# User shell
|
||||||
|
# Availabe options: "fish", "bash"
|
||||||
|
shell = "fish";
|
||||||
|
|
||||||
# Hyprland Settings
|
# Hyprland Settings
|
||||||
# Examples:
|
# Examples:
|
||||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||||
@@ -33,28 +37,27 @@
|
|||||||
nvidiaID = "PCI:0:2:0";
|
nvidiaID = "PCI:0:2:0";
|
||||||
|
|
||||||
# Enable NFS
|
# Enable NFS
|
||||||
enableNFS = true;
|
enableNFS = false;
|
||||||
|
|
||||||
# Enable Printing Support
|
|
||||||
printEnable = true;
|
|
||||||
|
|
||||||
# Set Stylix Image
|
# Set Stylix Image
|
||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/garandos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||||
#stylixImage = "DW_Pacts.jpg";
|
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||||
#stylixImage = "fire-nation.jpg";
|
# stylixImage = "Avatar-1.jpg"; # 5/10
|
||||||
#stylixImage = "four-elements.jpg";
|
# stylixImage = "Avatar-2.jpg"; # 4/10
|
||||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
# stylixImage = "Avatar-3.jpg"; # 2/10
|
||||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
# stylixImage = "Avatar-4.jpg"; # 3/10
|
||||||
#stylixImage = "jablon.jpg";
|
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
|
||||||
#stylixImage = "rammstein-log-two.jpg";
|
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||||
#stylixImage = "rammstein-logo-one.jpg";
|
# stylixImage = "Friren-2.jpg"; # 2/10
|
||||||
#stylixImage = "rammstein-logo-three.jpg";
|
# stylixImage = "Friren-3.jpg"; # 4/10
|
||||||
#stylixImage = "rammstein-one.jpg";
|
# stylixImage = "Jablon.png"; # 1/10
|
||||||
#stylixImage = "1346530.jpeg";
|
# 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)
|
# Set network hostId if required (needed for zfs)
|
||||||
# Otherwise leave as-is
|
# Otherwise leave as-is
|
||||||
|
|||||||
@@ -61,5 +61,8 @@
|
|||||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
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
|
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||||
zed-editor = {
|
zed-editor = {
|
||||||
enable = true; # Zed Editor: a modern, high‑performance code 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
|
Web browsers
|
||||||
*/
|
*/
|
||||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
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
|
System utilities
|
||||||
*/
|
*/
|
||||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
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
|
cava.enable = false; # Cava: terminal audio visualizer
|
||||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Communication and synchronization
|
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
|
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||||
|
|
||||||
@@ -57,9 +58,10 @@ _: {
|
|||||||
messenger.enable = true; # Messenger: Facebook Messenger
|
messenger.enable = true; # Messenger: Facebook Messenger
|
||||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
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
|
claude.enable = true; # Claude: a large language model
|
||||||
glance.enable = true; # Glance: my home server dashboard
|
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
|
sober.enable = false; # Roblox client
|
||||||
warehouse.enable = true; # Flatpak manager
|
warehouse.enable = true; # Flatpak manager
|
||||||
flatseal.enable = true; # Flatpak permissions 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
|
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||||
|
|
||||||
|
/*
|
||||||
|
Calendar & Contacts
|
||||||
|
*/
|
||||||
|
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
Gaming
|
||||||
*/
|
*/
|
||||||
@@ -25,18 +31,34 @@ _: {
|
|||||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||||
steam.enable = true; # Steam: platform for buying and playing 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 = {
|
packages = {
|
||||||
|
/*
|
||||||
|
Web browsers
|
||||||
|
*/
|
||||||
|
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Container & Packaging
|
Container & Packaging
|
||||||
*/
|
*/
|
||||||
distrobox.enable = false; # Distrobox: containerized development environments
|
distrobox.enable = false; # Distrobox: containerized development environments
|
||||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||||
|
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
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
|
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire 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
|
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||||
@@ -44,7 +66,7 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Development Tools
|
Development Tools
|
||||||
*/
|
*/
|
||||||
exercism.enable = true; # Exercism: coding practice platform
|
exercism.enable = false; # Exercism: coding practice platform
|
||||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||||
opencode.enable = false; # OpenCode: tools for coding and development
|
opencode.enable = false; # OpenCode: tools for coding and development
|
||||||
jan.enable = true; # Jan: AI chat UI
|
jan.enable = true; # Jan: AI chat UI
|
||||||
@@ -54,11 +76,13 @@ _: {
|
|||||||
Communication & Collaboration
|
Communication & Collaboration
|
||||||
*/
|
*/
|
||||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
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
|
tutanota.enable = true; # Tutanota: secure email client
|
||||||
signal.enable = true; # Signal: secure messaging app
|
signal.enable = true; # Signal: secure messaging app
|
||||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
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
|
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
|
Productivity / Knowledge Management
|
||||||
@@ -70,20 +94,21 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Media & Graphics
|
Media & Graphics
|
||||||
*/
|
*/
|
||||||
affinity.enable = false; # Affinity: professional graphics suite
|
|
||||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||||
|
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||||
kdenlive.enable = false; # Kdenlive: video editing software
|
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
|
plex.enable = true; # Plex: media player and server client
|
||||||
|
jellyfin.enable = true; # Jellyfin: foss media player
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Utilities / Misc
|
Utilities / Misc
|
||||||
*/
|
*/
|
||||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
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
|
gedit.enable = true; # Gedit: GNOME text editor
|
||||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||||
adb.enable = false; # ADB: Android SDK platform tools
|
adb.enable = false; # ADB: Android SDK platform tools
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,6 +15,10 @@
|
|||||||
gitUsername = "GarandPLG";
|
gitUsername = "GarandPLG";
|
||||||
gitEmail = "garandplg@garandplg.com";
|
gitEmail = "garandplg@garandplg.com";
|
||||||
|
|
||||||
|
# User shell
|
||||||
|
# Availabe options: "fish", "bash"
|
||||||
|
shell = "fish";
|
||||||
|
|
||||||
# Hyprland Settings
|
# Hyprland Settings
|
||||||
# Examples:
|
# Examples:
|
||||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||||
@@ -33,28 +37,27 @@
|
|||||||
nvidiaID = "PCI:0:2:0";
|
nvidiaID = "PCI:0:2:0";
|
||||||
|
|
||||||
# Enable NFS
|
# Enable NFS
|
||||||
enableNFS = true;
|
enableNFS = false;
|
||||||
|
|
||||||
# Enable Printing Support
|
|
||||||
printEnable = false;
|
|
||||||
|
|
||||||
# Set Stylix Image
|
# Set Stylix Image
|
||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/garandos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||||
#stylixImage = "DW_Pacts.jpg";
|
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||||
#stylixImage = "fire-nation.jpg";
|
# stylixImage = "Avatar-1.jpg"; # 5/10
|
||||||
#stylixImage = "four-elements.jpg";
|
# stylixImage = "Avatar-2.jpg"; # 4/10
|
||||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
# stylixImage = "Avatar-3.jpg"; # 2/10
|
||||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
# stylixImage = "Avatar-4.jpg"; # 3/10
|
||||||
#stylixImage = "jablon.jpg";
|
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
|
||||||
#stylixImage = "rammstein-log-two.jpg";
|
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||||
#stylixImage = "rammstein-logo-one.jpg";
|
# stylixImage = "Friren-2.jpg"; # 2/10
|
||||||
#stylixImage = "rammstein-logo-three.jpg";
|
# stylixImage = "Friren-3.jpg"; # 4/10
|
||||||
#stylixImage = "rammstein-one.jpg";
|
# stylixImage = "Jablon.png"; # 1/10
|
||||||
#stylixImage = "1346530.jpeg";
|
# 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)
|
# Set network hostId if required (needed for zfs)
|
||||||
# Otherwise leave as-is
|
# Otherwise leave as-is
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ _: {
|
|||||||
System utilities
|
System utilities
|
||||||
*/
|
*/
|
||||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
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
|
cava.enable = false; # Cava: terminal audio visualizer
|
||||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||||
|
|
||||||
@@ -60,6 +61,7 @@ _: {
|
|||||||
chatgpt.enable = true; # ChatGPT: a large language model
|
chatgpt.enable = true; # ChatGPT: a large language model
|
||||||
claude.enable = true; # Claude: a large language model
|
claude.enable = true; # Claude: a large language model
|
||||||
glance.enable = true; # Glance: my home server dashboard
|
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
|
sober.enable = false; # Roblox client
|
||||||
warehouse.enable = true; # Flatpak manager
|
warehouse.enable = true; # Flatpak manager
|
||||||
flatseal.enable = true; # Flatpak permissions 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
|
tailscale.enable = false; # Tailscale: secure network for remote access
|
||||||
|
|
||||||
|
/*
|
||||||
|
Calendar & Contacts
|
||||||
|
*/
|
||||||
|
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
Gaming
|
||||||
*/
|
*/
|
||||||
@@ -25,13 +31,29 @@ _: {
|
|||||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||||
steam.enable = true; # Steam: platform for buying and playing 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 = {
|
packages = {
|
||||||
|
/*
|
||||||
|
Web browsers
|
||||||
|
*/
|
||||||
|
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Container & Packaging
|
Container & Packaging
|
||||||
*/
|
*/
|
||||||
distrobox.enable = false; # Distrobox: containerized development environments
|
distrobox.enable = false; # Distrobox: containerized development environments
|
||||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||||
|
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
Gaming
|
||||||
@@ -54,11 +76,13 @@ _: {
|
|||||||
Communication & Collaboration
|
Communication & Collaboration
|
||||||
*/
|
*/
|
||||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
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
|
tutanota.enable = true; # Tutanota: secure email client
|
||||||
signal.enable = true; # Signal: secure messaging app
|
signal.enable = true; # Signal: secure messaging app
|
||||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
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
|
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
|
Productivity / Knowledge Management
|
||||||
@@ -70,19 +94,20 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Media & Graphics
|
Media & Graphics
|
||||||
*/
|
*/
|
||||||
affinity.enable = false; # Affinity: professional graphics suite
|
|
||||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||||
|
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||||
kdenlive.enable = false; # Kdenlive: video editing software
|
kdenlive.enable = false; # Kdenlive: video editing software
|
||||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||||
plex.enable = true; # Plex: media player and server client
|
plex.enable = true; # Plex: media player and server client
|
||||||
|
jellyfin.enable = true; # Jellyfin: foss media player
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Utilities / Misc
|
Utilities / Misc
|
||||||
*/
|
*/
|
||||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
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
|
gedit.enable = false; # Gedit: GNOME text editor
|
||||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||||
adb.enable = false; # ADB: Android SDK platform tools
|
adb.enable = false; # ADB: Android SDK platform tools
|
||||||
|
|||||||
+20
-17
@@ -15,6 +15,10 @@
|
|||||||
gitUsername = "GarandPLG";
|
gitUsername = "GarandPLG";
|
||||||
gitEmail = "my@email.com";
|
gitEmail = "my@email.com";
|
||||||
|
|
||||||
|
# User shell
|
||||||
|
# Availabe options: "fish", "bash"
|
||||||
|
shell = "fish";
|
||||||
|
|
||||||
# Hyprland Settings
|
# Hyprland Settings
|
||||||
# Examples:
|
# Examples:
|
||||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||||
@@ -35,10 +39,7 @@
|
|||||||
nvidiaID = "PCI:0:2:0";
|
nvidiaID = "PCI:0:2:0";
|
||||||
|
|
||||||
# Enable NFS
|
# Enable NFS
|
||||||
enableNFS = true;
|
enableNFS = false;
|
||||||
|
|
||||||
# Enable Printing Support
|
|
||||||
printEnable = false;
|
|
||||||
|
|
||||||
# Themes, waybar and animation.
|
# Themes, waybar and animation.
|
||||||
# Only uncomment your selection
|
# Only uncomment your selection
|
||||||
@@ -48,19 +49,21 @@
|
|||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/garandos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||||
#stylixImage = "DW_Pacts.jpg";
|
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||||
#stylixImage = "fire-nation.jpg";
|
# stylixImage = "Avatar-1.jpg"; # 5/10
|
||||||
#stylixImage = "four-elements.jpg";
|
# stylixImage = "Avatar-2.jpg"; # 4/10
|
||||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
# stylixImage = "Avatar-3.jpg"; # 2/10
|
||||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
# stylixImage = "Avatar-4.jpg"; # 3/10
|
||||||
#stylixImage = "jablon.jpg";
|
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
|
||||||
#stylixImage = "rammstein-log-two.jpg";
|
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||||
#stylixImage = "rammstein-logo-one.jpg";
|
# stylixImage = "Friren-2.jpg"; # 2/10
|
||||||
#stylixImage = "rammstein-logo-three.jpg";
|
# stylixImage = "Friren-3.jpg"; # 4/10
|
||||||
#stylixImage = "rammstein-one.jpg";
|
# stylixImage = "Jablon.png"; # 1/10
|
||||||
#stylixImage = "1346530.jpeg";
|
# 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)
|
# Set network hostId if required (needed for zfs)
|
||||||
# Otherwise leave as-is
|
# 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,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
boot = {
|
boot = {
|
||||||
@@ -15,16 +14,11 @@
|
|||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
limine = {
|
limine = {
|
||||||
enable = true;
|
enable = true;
|
||||||
style = {
|
package = pkgs.limine;
|
||||||
wallpapers = [
|
resolution = "1920x1080";
|
||||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
style.interface = {
|
||||||
];
|
branding = "GarandOS Bootloader";
|
||||||
wallpaperStyle = lib.mkForce "centered";
|
brandingColor = "${config.stylix.base16Scheme.base01}";
|
||||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
|
||||||
interface = {
|
|
||||||
branding = "GarandOS Bootloader";
|
|
||||||
resolution = "1920x1080";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./packages
|
./packages
|
||||||
|
./affinity.nix
|
||||||
./boot.nix
|
./boot.nix
|
||||||
|
./calendar.nix
|
||||||
./docker.nix
|
./docker.nix
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
@@ -11,7 +13,6 @@
|
|||||||
./nfs.nix
|
./nfs.nix
|
||||||
./nh.nix
|
./nh.nix
|
||||||
./printing.nix
|
./printing.nix
|
||||||
./quickshell.nix
|
|
||||||
./greetd.nix
|
./greetd.nix
|
||||||
./security.nix
|
./security.nix
|
||||||
./services.nix
|
./services.nix
|
||||||
@@ -22,9 +23,11 @@
|
|||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
./thunar.nix
|
./thunar.nix
|
||||||
./user.nix
|
./user.nix
|
||||||
|
./ventoy.nix
|
||||||
./virtualbox.nix
|
./virtualbox.nix
|
||||||
./xdg.nix
|
./xdg.nix
|
||||||
./xserver.nix
|
./xserver.nix
|
||||||
|
./zram.nix
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,17 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
profile,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options.docker.enable = lib.mkEnableOption "Docker";
|
options.docker.enable = lib.mkEnableOption "Docker";
|
||||||
|
|
||||||
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableNvidia =
|
||||||
|
if profile == "nvidia"
|
||||||
|
then true
|
||||||
|
else false;
|
||||||
package = pkgs.docker;
|
package = pkgs.docker;
|
||||||
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
sober = "org.vinegarhq.Sober";
|
sober = "org.vinegarhq.Sober";
|
||||||
warehouse = "io.github.flattool.Warehouse";
|
warehouse = "io.github.flattool.Warehouse";
|
||||||
flatseal = "com.github.tchx84.Flatseal";
|
flatseal = "com.github.tchx84.Flatseal";
|
||||||
|
upscaler = "io.gitlab.theevilskeleton.Upscaler";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
{
|
{
|
||||||
host,
|
host,
|
||||||
|
hostId,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
|
||||||
in {
|
|
||||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
@@ -28,10 +27,22 @@ in {
|
|||||||
59011
|
59011
|
||||||
8080
|
8080
|
||||||
];
|
];
|
||||||
|
allowedTCPPortRanges = [
|
||||||
|
{
|
||||||
|
from = 1714;
|
||||||
|
to = 1764;
|
||||||
|
}
|
||||||
|
];
|
||||||
allowedUDPPorts = [
|
allowedUDPPorts = [
|
||||||
59010
|
59010
|
||||||
59011
|
59011
|
||||||
];
|
];
|
||||||
|
allowedUDPPortRanges = [
|
||||||
|
{
|
||||||
|
from = 1714;
|
||||||
|
to = 1764;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
{host, ...}: let
|
{enableNFS, ...}: {
|
||||||
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
|
|
||||||
in {
|
|
||||||
services = {
|
services = {
|
||||||
rpcbind.enable = enableNFS;
|
rpcbind.enable = enableNFS;
|
||||||
nfs.server.enable = enableNFS;
|
nfs.server.enable = enableNFS;
|
||||||
|
|||||||
+6
-1
@@ -1,6 +1,11 @@
|
|||||||
{username, ...}: {
|
{
|
||||||
|
username,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.nh = {
|
programs.nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.nh;
|
||||||
clean = {
|
clean = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraArgs = "--keep-since 7d --keep 5";
|
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;
|
nixpkgs.config.allowUnfree = true;
|
||||||
imports = [
|
imports = [
|
||||||
|
./appimages
|
||||||
./essentials.nix
|
./essentials.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
./programs.nix
|
./programs.nix
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
duf
|
duf
|
||||||
dysk
|
dysk
|
||||||
ncdu
|
ncdu
|
||||||
|
smartmontools
|
||||||
# Network & system utilities
|
# Network & system utilities
|
||||||
ripgrep
|
ripgrep
|
||||||
wget
|
wget
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
brightnessctl
|
brightnessctl
|
||||||
killall
|
killall
|
||||||
dex
|
dex
|
||||||
|
ffmpeg
|
||||||
# Desktop environment
|
# Desktop environment
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
tuigreet
|
tuigreet
|
||||||
@@ -42,6 +44,7 @@
|
|||||||
waypaper
|
waypaper
|
||||||
uwsm
|
uwsm
|
||||||
hyprpicker
|
hyprpicker
|
||||||
|
hyprshot
|
||||||
cliphist
|
cliphist
|
||||||
# Development utilities
|
# Development utilities
|
||||||
pkg-config
|
pkg-config
|
||||||
@@ -58,7 +61,7 @@
|
|||||||
app2unit
|
app2unit
|
||||||
gpu-screen-recorder
|
gpu-screen-recorder
|
||||||
# hyprland
|
# hyprland
|
||||||
swww
|
awww
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
packages = with pkgs; {
|
packages = with pkgs; {
|
||||||
bitwarden = bitwarden-desktop;
|
bitwarden = bitwarden-desktop;
|
||||||
eddieAirVPN = eddie;
|
eddieAirVPN = eddie;
|
||||||
galculator = galculator;
|
gnomeCalculator = gnome-calculator;
|
||||||
gedit = gedit;
|
gedit = gedit;
|
||||||
iotas = iotas;
|
iotas = iotas;
|
||||||
logseq = logseq;
|
logseq = logseq;
|
||||||
@@ -31,17 +31,39 @@
|
|||||||
spaceCadetPinball = space-cadet-pinball;
|
spaceCadetPinball = space-cadet-pinball;
|
||||||
ttySolitaire = tty-solitaire;
|
ttySolitaire = tty-solitaire;
|
||||||
gimp = gimp;
|
gimp = gimp;
|
||||||
affinity = inputs.affinity-nix.packages.${system}.v3;
|
|
||||||
eyeOfGnome = eog;
|
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 = [
|
||||||
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
|
(
|
||||||
|
plex-desktop.override {
|
||||||
|
extraEnv = {
|
||||||
|
QT_QPA_PLATFORM = "xcb";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
plexamp
|
plexamp
|
||||||
];
|
];
|
||||||
|
jellyfin = [
|
||||||
|
tsukimi
|
||||||
|
finamp
|
||||||
|
];
|
||||||
freetube = freetube;
|
freetube = freetube;
|
||||||
lazydocker = lazydocker;
|
lazydocker = lazydocker;
|
||||||
distrobox = [distrobox pkgs.boxbuddy];
|
distrobox = [
|
||||||
winboat = [winboat freerdp];
|
distrobox
|
||||||
|
pkgs.boxbuddy
|
||||||
|
];
|
||||||
|
winboat = [
|
||||||
|
winboat
|
||||||
|
freerdp
|
||||||
|
];
|
||||||
signal = signal-desktop;
|
signal = signal-desktop;
|
||||||
pixieditor = pixieditor;
|
pixieditor = pixieditor;
|
||||||
bottles = bottles;
|
bottles = bottles;
|
||||||
@@ -50,6 +72,9 @@
|
|||||||
teams = teams-for-linux;
|
teams = teams-for-linux;
|
||||||
ferdium = ferdium;
|
ferdium = ferdium;
|
||||||
logisim-evolution = logisim-evolution;
|
logisim-evolution = logisim-evolution;
|
||||||
|
notify = notify-client;
|
||||||
|
boxes = gnome-boxes;
|
||||||
|
switcheroo = switcheroo;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ _: {
|
|||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = false;
|
withUWSM = false;
|
||||||
};
|
};
|
||||||
|
fish.enable = true;
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
seahorse.enable = true;
|
seahorse.enable = true;
|
||||||
fuse.userAllowOther = true;
|
fuse.userAllowOther = true;
|
||||||
|
|||||||
+32
-12
@@ -1,18 +1,38 @@
|
|||||||
{host, ...}: let
|
{
|
||||||
inherit (import ../../hosts/${host}/variables.nix) printEnable;
|
pkgs,
|
||||||
in {
|
lib,
|
||||||
services = {
|
printEnable,
|
||||||
|
ensureDefaultPrinter,
|
||||||
|
ensurePrinters,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services = lib.mkIf printEnable {
|
||||||
printing = {
|
printing = {
|
||||||
enable = printEnable;
|
enable = true;
|
||||||
drivers = [
|
drivers = with pkgs; [
|
||||||
# pkgs.hplipWithPlugin
|
cups-filters
|
||||||
|
cups-browsed
|
||||||
];
|
];
|
||||||
};
|
listenAddresses = ["*:631"];
|
||||||
avahi = {
|
allowFrom = ["all"];
|
||||||
enable = printEnable;
|
browsing = true;
|
||||||
nssmdns4 = true;
|
defaultShared = true;
|
||||||
openFirewall = 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];
|
ports = [22];
|
||||||
};
|
};
|
||||||
tumbler.enable = true; # Image/video preview
|
tumbler.enable = true; # Image/video preview
|
||||||
gnome = {
|
gnome.gnome-keyring.enable = true;
|
||||||
gnome-keyring.enable = true;
|
|
||||||
evolution-data-server.enable = true;
|
|
||||||
};
|
|
||||||
smartd = {
|
smartd = {
|
||||||
enable =
|
enable =
|
||||||
if profile == "vm"
|
if profile == "vm"
|
||||||
|
|||||||
+11
-4
@@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
host,
|
stylixImage,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
|
||||||
in {
|
|
||||||
# Styling Options
|
# Styling Options
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -36,5 +34,14 @@ in {
|
|||||||
popups = 12;
|
popups = 12;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
targets.limine = {
|
||||||
|
enable = true;
|
||||||
|
colors.enable = true;
|
||||||
|
image.enable = true;
|
||||||
|
imageScalingMode = {
|
||||||
|
enable = true;
|
||||||
|
override = "tile";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
host,
|
consoleKeyMap,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
|
||||||
in {
|
|
||||||
nix = {
|
nix = {
|
||||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
+20
-4
@@ -5,10 +5,14 @@
|
|||||||
host,
|
host,
|
||||||
profile,
|
profile,
|
||||||
system,
|
system,
|
||||||
|
gitUsername,
|
||||||
|
shell,
|
||||||
|
extraMonitorSettings,
|
||||||
|
keyboardLayout,
|
||||||
|
gitEmail,
|
||||||
|
location,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
|
||||||
in {
|
|
||||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
@@ -21,6 +25,12 @@ in {
|
|||||||
host
|
host
|
||||||
profile
|
profile
|
||||||
system
|
system
|
||||||
|
extraMonitorSettings
|
||||||
|
shell
|
||||||
|
keyboardLayout
|
||||||
|
gitEmail
|
||||||
|
gitUsername
|
||||||
|
location
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
users.${username} = {
|
users.${username} = {
|
||||||
@@ -33,6 +43,7 @@ in {
|
|||||||
username = "${username}";
|
username = "${username}";
|
||||||
homeDirectory = "/home/${username}";
|
homeDirectory = "/home/${username}";
|
||||||
stateVersion = "25.11";
|
stateVersion = "25.11";
|
||||||
|
shell.enableFishIntegration = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -51,8 +62,13 @@ in {
|
|||||||
"wheel" # sudo access
|
"wheel" # sudo access
|
||||||
"vboxusers" # Virtual Box
|
"vboxusers" # Virtual Box
|
||||||
"gamemode"
|
"gamemode"
|
||||||
|
"lpadmin"
|
||||||
];
|
];
|
||||||
shell = pkgs.bash;
|
shell = with pkgs; (
|
||||||
|
if shell == "fish"
|
||||||
|
then fish
|
||||||
|
else bash
|
||||||
|
);
|
||||||
ignoreShellProgramCheck = true;
|
ignoreShellProgramCheck = true;
|
||||||
linger = 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
|
{keyboardLayout, ...}: {
|
||||||
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
|
|
||||||
in {
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xkb = {
|
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 {
|
config = mkIf cfg.enable {
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
environment.systemPackages = with pkgs; [nvidia-docker];
|
environment.systemPackages = with pkgs; [
|
||||||
|
nvidia-docker
|
||||||
|
];
|
||||||
hardware = {
|
hardware = {
|
||||||
nvidia-container-toolkit.enable = true;
|
nvidia-container-toolkit.enable = true;
|
||||||
nvidia = {
|
nvidia = {
|
||||||
@@ -36,7 +38,7 @@ in {
|
|||||||
# accessible via `nvidia-settings`.
|
# accessible via `nvidia-settings`.
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# 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;
|
package = pkgs.anki;
|
||||||
language = "pl_PL";
|
language = "pl_PL";
|
||||||
style = "native";
|
style = "native";
|
||||||
sync.username = username;
|
profiles."${username}".sync.username = username;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,30 +6,38 @@
|
|||||||
programs.bash.shellAliases = {
|
programs.bash.shellAliases = {
|
||||||
# GarandOS aliases
|
# GarandOS aliases
|
||||||
pullos = "git -C /home/${username}/garandos pull";
|
pullos = "git -C /home/${username}/garandos pull";
|
||||||
upd = "nh os switch --hostname ${host}";
|
upd = "nh os switch -H ${host} -d always";
|
||||||
upg = "nh os switch --hostname ${host} --update";
|
upg = "nh os switch -H ${host} --update -d always";
|
||||||
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
||||||
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||||
upd-bt = "nh os boot --hostname ${host}";
|
upd-bt = "nh os boot -H ${host} -d always";
|
||||||
upd-ts = "nh os test --hostname ${host}";
|
upd-ts = "nh os test -H ${host} -d always";
|
||||||
upd-bd = "nh os build --hostname ${host}";
|
upd-bd = "nh os build -H ${host} -d always";
|
||||||
tui = "garandos-tui";
|
tui = "garandos-tui";
|
||||||
ncg = "nh clean all";
|
ncg = "nh clean all --optimise";
|
||||||
|
|
||||||
# Development aliases
|
# Development aliases
|
||||||
|
## Django
|
||||||
srvenv = "source .venv/bin/activate";
|
srvenv = "source .venv/bin/activate";
|
||||||
"..srvenv" = "source ../.venv/bin/activate";
|
"..srvenv" = "source ../.venv/bin/activate";
|
||||||
|
uv-add = "uv add -r requirements.txt";
|
||||||
pm = "uv run manage.py";
|
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 .";
|
f8 = "uv run flake8 .";
|
||||||
|
## JavaScript/TypeScript
|
||||||
bbr = "bun --bun run";
|
bbr = "bun --bun run";
|
||||||
|
## Git
|
||||||
"ga." = "git add .";
|
"ga." = "git add .";
|
||||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||||
|
|
||||||
# Development aliases for nix flake
|
# Development aliases for nix flake
|
||||||
nd = "nix develop";
|
nd = "nix develop";
|
||||||
nb = "nix build";
|
nb = "nix build .";
|
||||||
nr = "nix run";
|
nr = "nix run .";
|
||||||
nbr = "nix build && nix run";
|
nbr = "nix build . && nix run .";
|
||||||
nbd = "nix build .#develop";
|
nbd = "nix build .#develop";
|
||||||
nrd = "nix run .#develop";
|
nrd = "nix run .#develop";
|
||||||
nbrd = "nix build .#develop && nix run .#develop";
|
nbrd = "nix build .#develop && nix run .#develop";
|
||||||
@@ -42,7 +50,8 @@
|
|||||||
|
|
||||||
# System aliases
|
# System aliases
|
||||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
# 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";
|
ookla = "speedtest";
|
||||||
hypr-cli = "hyprctl clients";
|
hypr-cli = "hyprctl clients";
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
_: {
|
{shell, ...}: {
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable =
|
||||||
|
if shell == "bash"
|
||||||
|
then true
|
||||||
|
else false;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
# initExtra = ''
|
# initExtra = ''
|
||||||
# fastfetch
|
# fastfetch
|
||||||
|
|||||||
@@ -140,5 +140,22 @@ _: {
|
|||||||
pwdtail() {
|
pwdtail() {
|
||||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
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
|
batgrep
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||||
MANROFFOPT = "-c";
|
MANROFFOPT = "-c";
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ _: {
|
|||||||
./bash
|
./bash
|
||||||
./chromium
|
./chromium
|
||||||
./fastfetch
|
./fastfetch
|
||||||
|
./fish
|
||||||
./hyprland
|
./hyprland
|
||||||
./kitty
|
./kitty
|
||||||
./librewolf
|
./librewolf
|
||||||
@@ -15,7 +16,7 @@ _: {
|
|||||||
./bat.nix
|
./bat.nix
|
||||||
./btop.nix
|
./btop.nix
|
||||||
./cava.nix
|
./cava.nix
|
||||||
./emoji.nix
|
./easyeffects.nix
|
||||||
./eza.nix
|
./eza.nix
|
||||||
./fzf.nix
|
./fzf.nix
|
||||||
./git.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 = {
|
programs.eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
icons = "auto";
|
icons = "auto";
|
||||||
|
enableFishIntegration = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
git = 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 = {
|
programs.fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
colors = lib.mkForce {
|
|
||||||
"fg+" = accent;
|
|
||||||
"bg+" = "-1";
|
|
||||||
"fg" = foreground;
|
|
||||||
"bg" = "-1";
|
|
||||||
"prompt" = muted;
|
|
||||||
"pointer" = accent;
|
|
||||||
};
|
|
||||||
defaultOptions = [
|
defaultOptions = [
|
||||||
"--margin=1"
|
"--margin=1"
|
||||||
"--layout=reverse"
|
"--layout=reverse"
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{host, ...}: let
|
{
|
||||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
|
gitUsername,
|
||||||
in {
|
gitEmail,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -4,11 +4,12 @@
|
|||||||
name = "Papirus-Dark";
|
name = "Papirus-Dark";
|
||||||
package = pkgs.papirus-icon-theme;
|
package = pkgs.papirus-icon-theme;
|
||||||
};
|
};
|
||||||
gtk3.extraConfig = {
|
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
gtk-application-prefer-dark-theme = 1;
|
gtk4 = {
|
||||||
};
|
theme = null;
|
||||||
gtk4.extraConfig = {
|
extraConfig = {
|
||||||
gtk-application-prefer-dark-theme = 1;
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,14 +13,16 @@
|
|||||||
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
|
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
|
||||||
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
|
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
|
||||||
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
|
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
|
||||||
|
"SUPER, H, exec, helium #\"Helium web browser\""
|
||||||
"SUPER, I, exec, iotas #\"Note-taking app\""
|
"SUPER, I, exec, iotas #\"Note-taking app\""
|
||||||
"SUPER, J, exec, Jan #\"Local AI chat interface\""
|
"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, 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, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
|
||||||
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
|
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
|
||||||
"SUPER, P, exec, plex-desktop #\"Plex media player\""
|
"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, Return, exec, kitty #\"Kitty terminal\""
|
||||||
"SUPER, S, exec, steam #\"Steam Game launcher\""
|
"SUPER, S, exec, steam #\"Steam Game launcher\""
|
||||||
"SUPER, T, exec, thunar #\"File manager\""
|
"SUPER, T, exec, thunar #\"File manager\""
|
||||||
@@ -31,24 +33,31 @@
|
|||||||
|
|
||||||
shiftBinds = [
|
shiftBinds = [
|
||||||
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
|
"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, 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, 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, N, exec, nextcloud #\"Nextcloud desktop sync client\""
|
||||||
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
||||||
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
|
"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, 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, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
|
||||||
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
|
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
|
||||||
];
|
];
|
||||||
|
|
||||||
altBinds = [
|
altBinds = [
|
||||||
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
|
"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, 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, 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, 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, S, exec, slack #\"Slack team communication tool\""
|
||||||
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
|
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
|
||||||
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
|
"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, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
|
||||||
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
|
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
|
||||||
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
|
"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, 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\""
|
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
|
||||||
];
|
];
|
||||||
|
|
||||||
windowManagementBinds = [
|
windowManagementBinds = [
|
||||||
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
|
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
|
||||||
"SUPER, Q, killactive, #\"Close active window\""
|
"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\""
|
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -123,9 +135,9 @@
|
|||||||
systemMediaAndControllsBinds = [
|
systemMediaAndControllsBinds = [
|
||||||
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
|
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
|
||||||
",XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #\"Mute audio output\""
|
",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\""
|
",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 playPause #\"Play/Pause media\""
|
||||||
",XF86AudioPlay, exec, noctalia-shell ipc call media play #\"Play media\""
|
|
||||||
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
|
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
|
||||||
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
|
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
|
||||||
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
|
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
|
||||||
|
|||||||
@@ -1,15 +1,10 @@
|
|||||||
_: {
|
_: {
|
||||||
wayland.windowManager.hyprland.settings.exec-once = [
|
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"
|
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||||
"systemctl --user start hyprpolkitagent"
|
"systemctl --user start hyprpolkitagent"
|
||||||
|
"noctalia-shell"
|
||||||
# "killall -q waybar"
|
"wl-paste --type text --watch cliphist store" # Saves text
|
||||||
# "pkill waybar"
|
"wl-paste --type image --watch cliphist store" # Saves images
|
||||||
# "killall -q swaync"
|
|
||||||
# "pkill swaync"
|
|
||||||
"noctalia-shell &"
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
{
|
{
|
||||||
host,
|
extraMonitorSettings,
|
||||||
config,
|
keyboardLayout,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
|
||||||
in {
|
|
||||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||||
"xdg-desktop-autostart.target"
|
"xdg-desktop-autostart.target"
|
||||||
];
|
];
|
||||||
@@ -21,12 +19,13 @@ in {
|
|||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.hyprland;
|
package = pkgs.hyprland;
|
||||||
|
configType = "hyprlang"; # TODO: hyprlang => lua migration.
|
||||||
|
xwayland.enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableXdgAutostart = true;
|
enableXdgAutostart = true;
|
||||||
variables = ["--all"];
|
variables = ["--all"];
|
||||||
};
|
};
|
||||||
xwayland.enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "${keyboardLayout}";
|
kb_layout = "${keyboardLayout}";
|
||||||
@@ -63,8 +62,8 @@ in {
|
|||||||
gaps_out = 8;
|
gaps_out = 8;
|
||||||
border_size = 2;
|
border_size = 2;
|
||||||
resize_on_border = true;
|
resize_on_border = true;
|
||||||
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
# "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.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||||
};
|
};
|
||||||
|
|
||||||
misc = {
|
misc = {
|
||||||
@@ -76,7 +75,6 @@ in {
|
|||||||
disable_splash_rendering = true;
|
disable_splash_rendering = true;
|
||||||
enable_swallow = true;
|
enable_swallow = true;
|
||||||
swallow_regex = "^(kitty)$";
|
swallow_regex = "^(kitty)$";
|
||||||
vfr = true; # Variable Frame Rate
|
|
||||||
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
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
|
# Screen flashing to black momentarily or going black when app is fullscreen
|
||||||
# Try setting vrr to 0
|
# Try setting vrr to 0
|
||||||
@@ -87,7 +85,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
dwindle = {
|
dwindle = {
|
||||||
pseudotile = true;
|
# pseudotile = true;
|
||||||
preserve_split = true;
|
preserve_split = true;
|
||||||
force_split = 2;
|
force_split = 2;
|
||||||
};
|
};
|
||||||
@@ -107,7 +105,7 @@ in {
|
|||||||
enabled = true;
|
enabled = true;
|
||||||
range = 4;
|
range = 4;
|
||||||
render_power = 3;
|
render_power = 3;
|
||||||
color = "rgba(1a1a1aee)";
|
# color = "rgba(1a1a1aee)";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -131,7 +129,10 @@ in {
|
|||||||
direct_scanout = 0;
|
direct_scanout = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
debug.full_cm_proto = true;
|
debug = {
|
||||||
|
vfr = true; # Variable Frame Rate
|
||||||
|
full_cm_proto = true;
|
||||||
|
};
|
||||||
|
|
||||||
master = {
|
master = {
|
||||||
new_status = "master";
|
new_status = "master";
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ _: {
|
|||||||
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
"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:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||||
"center on, match:title Authentication Required"
|
"center on, match:title Authentication Required"
|
||||||
|
"center on, match:class org\.gnome\.Calculator"
|
||||||
|
|
||||||
# Idle inhibit rules
|
# Idle inhibit rules
|
||||||
"idle_inhibit fullscreen, match:class .*"
|
"idle_inhibit fullscreen, match:class .*"
|
||||||
@@ -61,11 +62,13 @@ _: {
|
|||||||
"float on, match:initial_title Add Folder to Workspace"
|
"float on, match:initial_title Add Folder to Workspace"
|
||||||
"float on, match:initial_title Open Files"
|
"float on, match:initial_title Open Files"
|
||||||
"float on, match:initial_title wants to save"
|
"float on, match:initial_title wants to save"
|
||||||
|
"float on, match:class org\.gnome\.Calculator"
|
||||||
|
|
||||||
# Size rules
|
# Size rules
|
||||||
"size 70% 60%, match:initial_title Open Files"
|
"size 70% 60%, match:initial_title Open Files"
|
||||||
"size 70% 60%, match:initial_title Add Folder to Workspace"
|
"size 70% 60%, match:initial_title Add Folder to Workspace"
|
||||||
"size 70% 70%, match:tag settings*"
|
"size 70% 70%, match:tag settings*"
|
||||||
|
"size 360 616, match:class org\.gnome\.Calculator"
|
||||||
|
|
||||||
# Tile rules
|
# Tile rules
|
||||||
"tile on, match:class affinity\.exe"
|
"tile on, match:class affinity\.exe"
|
||||||
@@ -84,6 +87,7 @@ _: {
|
|||||||
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
|
"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.9 0.8, match:class seahorse # gnome-keyring gui"
|
||||||
"opacity 0.95 0.75, match:title Picture-in-Picture"
|
"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
|
# Picture-in-Picture specific rules
|
||||||
"pin on, match:title Picture-in-Picture"
|
"pin on, match:title Picture-in-Picture"
|
||||||
|
|||||||
@@ -6,9 +6,11 @@
|
|||||||
}: {
|
}: {
|
||||||
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
|
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
|
||||||
|
|
||||||
config.services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
config = {
|
||||||
enable = true;
|
services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
||||||
indicator = true;
|
enable = true;
|
||||||
package = pkgs.kdePackages.kdeconnect-kde;
|
indicator = false;
|
||||||
|
package = pkgs.kdePackages.kdeconnect-kde;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.kitty;
|
package = pkgs.kitty;
|
||||||
|
shellIntegration.enableFishIntegration = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|||||||
@@ -37,6 +37,6 @@
|
|||||||
"privacy.clearOnShutdown.history" = true;
|
"privacy.clearOnShutdown.history" = true;
|
||||||
|
|
||||||
"network.trr.mode" = 3;
|
"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,
|
inputs,
|
||||||
system,
|
system,
|
||||||
...
|
...
|
||||||
@@ -9,13 +9,11 @@
|
|||||||
package = inputs.noctalia.packages.${system}.default.override {
|
package = inputs.noctalia.packages.${system}.default.override {
|
||||||
calendarSupport = true;
|
calendarSupport = true;
|
||||||
};
|
};
|
||||||
systemd.enable = true;
|
# settings.settingsVersion = lib.mkForce 46;
|
||||||
settings.settingsVersion = lib.mkForce 46;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./settings
|
./settings
|
||||||
./colors.nix
|
|
||||||
./plugins.nix
|
./plugins.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +1,46 @@
|
|||||||
{lib, ...}: {
|
{lib, ...}: let
|
||||||
|
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||||
|
in {
|
||||||
programs.noctalia-shell = lib.mkForce {
|
programs.noctalia-shell = lib.mkForce {
|
||||||
plugins = {
|
plugins = {
|
||||||
sources = [
|
sources = [
|
||||||
{
|
{
|
||||||
enabled = true;
|
enabled = true;
|
||||||
name = "Noctalia Plugins";
|
name = "Noctalia Plugins";
|
||||||
url = "https://github.com/noctalia-dev/noctalia-plugins";
|
url = sourceUrl;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
states = {
|
states = {
|
||||||
mini-docker = {
|
mini-docker = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
timer = {
|
timer = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
keybind-cheatsheet = {
|
keybind-cheatsheet = {
|
||||||
enabled = true;
|
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 = {
|
pluginSettings = {
|
||||||
mini-docker.refreshInterval = 5000;
|
mini-docker.refreshInterval = 5000;
|
||||||
@@ -32,9 +50,48 @@
|
|||||||
hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
|
hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
|
||||||
modKeyVariable = "SUPER";
|
modKeyVariable = "SUPER";
|
||||||
windowHeight = 850;
|
windowHeight = 850;
|
||||||
windowWidth = 700;
|
windowWidth = 1100;
|
||||||
|
columnCount = 2;
|
||||||
autoHeight = true;
|
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";
|
id = "SystemMonitor";
|
||||||
compactMode = true;
|
compactMode = false;
|
||||||
diskPath = "/home";
|
diskPath = "/home";
|
||||||
showCpuFreq = false;
|
showCpuFreq = false;
|
||||||
showCpuTemp = false;
|
showCpuTemp = false;
|
||||||
@@ -25,7 +25,7 @@ _: {
|
|||||||
showDiskUsage = true;
|
showDiskUsage = true;
|
||||||
showGpuTemp = false;
|
showGpuTemp = false;
|
||||||
showLoadAverage = false;
|
showLoadAverage = false;
|
||||||
showMemoryAsPercent = false;
|
showMemoryAsPercent = true;
|
||||||
showMemoryUsage = true;
|
showMemoryUsage = true;
|
||||||
showNetworkStats = true;
|
showNetworkStats = true;
|
||||||
showSwapUsage = false;
|
showSwapUsage = false;
|
||||||
|
|||||||
@@ -2,7 +2,10 @@
|
|||||||
right = [
|
right = [
|
||||||
{
|
{
|
||||||
id = "Tray";
|
id = "Tray";
|
||||||
blacklist = [];
|
blacklist = [
|
||||||
|
"nm-applet"
|
||||||
|
"Easy Effects"
|
||||||
|
];
|
||||||
colorizeIcons = false;
|
colorizeIcons = false;
|
||||||
drawerEnabled = false;
|
drawerEnabled = false;
|
||||||
hidePassive = false;
|
hidePassive = false;
|
||||||
@@ -25,6 +28,9 @@
|
|||||||
showUnreadBadge = true;
|
showUnreadBadge = true;
|
||||||
unreadBadgeColor = "primary";
|
unreadBadgeColor = "primary";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
id = "plugin:kde-connect";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
id = "Bluetooth";
|
id = "Bluetooth";
|
||||||
displayMode = "onhover";
|
displayMode = "onhover";
|
||||||
@@ -32,22 +38,47 @@
|
|||||||
{
|
{
|
||||||
id = "Battery";
|
id = "Battery";
|
||||||
deviceNativePath = "__default__";
|
deviceNativePath = "__default__";
|
||||||
displayMode = "onhover";
|
displayMode = "graphic";
|
||||||
hideIfIdle = false;
|
hideIfIdle = false;
|
||||||
hideIfNotDetected = true;
|
hideIfNotDetected = true;
|
||||||
showNoctaliaPerformance = false;
|
showNoctaliaPerformance = true;
|
||||||
showPowerProfiles = false;
|
showPowerProfiles = true;
|
||||||
warningThreshold = 30;
|
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";
|
id = "Volume";
|
||||||
displayMode = "alwaysShow";
|
displayMode = "alwaysShow";
|
||||||
middleClickCommand = "pwvucontrol || pavucontrol";
|
middleClickCommand = "pwvucontrol || pavucontrol";
|
||||||
}
|
}
|
||||||
# {
|
{
|
||||||
# "id" = "Brightness";
|
id = "Network";
|
||||||
# "displayMode" = "onhover";
|
displayMode = "onhover";
|
||||||
# }
|
}
|
||||||
{
|
{
|
||||||
id = "ControlCenter";
|
id = "ControlCenter";
|
||||||
colorizeDistroLogo = false;
|
colorizeDistroLogo = false;
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
host,
|
keyboardLayout,
|
||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../../../hosts/${host}/variables.nix) keyboardLayout;
|
|
||||||
in {
|
|
||||||
programs.noctalia-shell.settings.general = lib.mkForce {
|
programs.noctalia-shell.settings.general = lib.mkForce {
|
||||||
avatarImage = "/home/${username}/.face.icon";
|
avatarImage = "/home/${username}/.face.icon";
|
||||||
dimmerOpacity = 0.2;
|
dimmerOpacity = 0.2;
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
host,
|
location,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../../../hosts/${host}/variables.nix) location;
|
|
||||||
in {
|
|
||||||
programs.noctalia-shell.settings.location = lib.mkForce {
|
programs.noctalia-shell.settings.location = lib.mkForce {
|
||||||
name = "${location}";
|
name = "${location}";
|
||||||
weatherEnabled = true;
|
weatherEnabled = true;
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ in {
|
|||||||
memCriticalThreshold = 90;
|
memCriticalThreshold = 90;
|
||||||
swapWarningThreshold = 80;
|
swapWarningThreshold = 80;
|
||||||
swapCriticalThreshold = 90;
|
swapCriticalThreshold = 90;
|
||||||
diskWarningThreshold = 80;
|
diskWarningThreshold = 90;
|
||||||
diskCriticalThreshold = 90;
|
diskCriticalThreshold = 95;
|
||||||
cpuPollingInterval = 3000;
|
cpuPollingInterval = 3000;
|
||||||
tempPollingInterval = 3000;
|
tempPollingInterval = 3000;
|
||||||
gpuPollingInterval = 3000;
|
gpuPollingInterval = 3000;
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
host,
|
config,
|
||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (import ../../../../hosts/${host}/variables.nix) stylixImage;
|
|
||||||
in {
|
|
||||||
programs.noctalia-shell.settings.wallpaper = lib.mkForce {
|
programs.noctalia-shell.settings.wallpaper = lib.mkForce {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
overviewEnabled = false;
|
overviewEnabled = false;
|
||||||
@@ -42,6 +40,6 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
home.file.".cache/noctalia/wallpapers.json".text = lib.mkForce (builtins.toJSON {
|
home.file.".cache/noctalia/wallpapers.json".text = lib.mkForce (builtins.toJSON {
|
||||||
defaultWallpaper = ../../../../wallpapers/${stylixImage};
|
defaultWallpaper = config.stylix.image;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(import ./nvidia-offload.nix {inherit pkgs;})
|
(import ./nvidia-offload.nix {inherit pkgs;})
|
||||||
(import ./restart.noctalia.nix {inherit pkgs;})
|
(import ./restart-noctalia.nix {inherit pkgs;})
|
||||||
(import ./screenshootin.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 = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
enableDefaultConfig = false;
|
||||||
matchBlocks = {
|
settings = {
|
||||||
"hp-t640-homeserver" = {
|
"hp-t640-homeserver" = {
|
||||||
hostname = "192.168.1.156";
|
hostname = "192.168.1.156";
|
||||||
user = "${username}";
|
user = "${username}";
|
||||||
@@ -15,6 +15,13 @@
|
|||||||
port = 22;
|
port = 22;
|
||||||
identityFile = "~/.ssh/hp-t640-homeserver";
|
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 @@
|
|||||||
{
|
{lib, ...}: {
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
accent = "#${config.lib.stylix.colors.base0D}";
|
|
||||||
in {
|
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
settings = {
|
settings = {
|
||||||
add_newline = true;
|
add_newline = true;
|
||||||
format = lib.concatStrings [
|
format = lib.concatStrings [
|
||||||
@@ -33,24 +28,24 @@ in {
|
|||||||
truncation_symbol = "…/";
|
truncation_symbol = "…/";
|
||||||
truncate_to_repo = false;
|
truncate_to_repo = false;
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"Documents" = " ";
|
"Documents" = "";
|
||||||
"Downloads" = " ";
|
"Downloads" = "";
|
||||||
"Music" = " ";
|
"Music" = "";
|
||||||
"Pictures" = " ";
|
"Pictures" = "";
|
||||||
"Projects" = " ";
|
"Projects" = "";
|
||||||
"nix" = " ";
|
"nix" = "";
|
||||||
"nixos" = " ";
|
"nixos" = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
character = {
|
character = {
|
||||||
success_symbol = "[ ](${accent})";
|
success_symbol = "";
|
||||||
error_symbol = "[ ](red)";
|
error_symbol = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix_shell = {
|
nix_shell = {
|
||||||
format = "[$symbol]($style) ";
|
format = "[$symbol]($style) ";
|
||||||
symbol = " ";
|
symbol = "";
|
||||||
style = "";
|
style = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+59
-3
@@ -1,14 +1,70 @@
|
|||||||
{host, ...}: {
|
{host, ...}: {
|
||||||
stylix.targets = {
|
stylix.targets = {
|
||||||
librewolf.profileNames = ["${host}"];
|
librewolf.profileNames = ["${host}"];
|
||||||
hyprland.enable = false;
|
|
||||||
|
hyprland = {
|
||||||
|
enable = true;
|
||||||
|
colors.enable = true;
|
||||||
|
hyprpaper.enable = true;
|
||||||
|
image.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
vscode.enable = false;
|
vscode.enable = false;
|
||||||
|
|
||||||
zed.enable = false;
|
zed.enable = false;
|
||||||
vesktop.enable = false;
|
|
||||||
|
vesktop = {
|
||||||
|
enable = true;
|
||||||
|
colors.enable = true;
|
||||||
|
fonts.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
noctalia-shell.enable = true;
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platform = "qtct";
|
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, ...}: {
|
{username, ...}: {
|
||||||
home.file = {
|
home.file.".config/swappy/config".text = ''
|
||||||
".config/swappy/config".text = ''
|
[Default]
|
||||||
[Default]
|
save_dir=/home/${username}/Pictures/Screenshots
|
||||||
save_dir=/home/${username}/Pictures/Screenshots
|
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
||||||
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
show_panel=false
|
||||||
show_panel=false
|
line_size=5
|
||||||
line_size=5
|
text_size=20
|
||||||
text_size=20
|
text_font=Ubuntu
|
||||||
text_font=Ubuntu
|
paint_mode=brush
|
||||||
paint_mode=brush
|
early_exit=true
|
||||||
early_exit=true
|
fill_shape=false
|
||||||
fill_shape=false
|
'';
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
_: {
|
_: {
|
||||||
dconf.settings = {
|
dconf.settings."org/virt-manager/virt-manager/connections" = {
|
||||||
"org/virt-manager/virt-manager/connections" = {
|
autoconnect = ["qemu:///system"];
|
||||||
autoconnect = ["qemu:///system"];
|
uris = ["qemu:///system"];
|
||||||
uris = ["qemu:///system"];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
makeEntry = app: {
|
makeEntry = app: {
|
||||||
name = app.displayName;
|
name = app.displayName;
|
||||||
genericName = app.genericName or 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}";
|
icon = "${fetchIcon app.iconUrl app.iconSha}";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
type = "Application";
|
type = "Application";
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
{
|
{
|
||||||
name = "messenger";
|
name = "messenger";
|
||||||
displayName = "Messenger";
|
displayName = "Messenger";
|
||||||
url = "https://www.messenger.com/";
|
url = "https://www.facebook.com/messages/";
|
||||||
iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
|
iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
|
||||||
iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
|
iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
|
||||||
}
|
}
|
||||||
@@ -62,6 +62,13 @@
|
|||||||
iconUrl = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/glance.png";
|
iconUrl = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/glance.png";
|
||||||
iconSha = "sha256-xyFlmPpt+DABoGX5oBqj/aQVdxtmNflat9Jb2BE7SOY=";
|
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 {
|
in {
|
||||||
options.xdgDesktopEntries = {
|
options.xdgDesktopEntries = {
|
||||||
|
|||||||
@@ -19,5 +19,6 @@ _: {
|
|||||||
"deputy"
|
"deputy"
|
||||||
"biome"
|
"biome"
|
||||||
"opencode"
|
"opencode"
|
||||||
|
"fish"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,5 +5,8 @@
|
|||||||
nixd
|
nixd
|
||||||
alejandra
|
alejandra
|
||||||
opencode
|
opencode
|
||||||
|
uv
|
||||||
|
python314
|
||||||
|
ruff
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
_: {
|
_: {
|
||||||
programs.zed-editor.userSettings.agent = {
|
programs.zed-editor.userSettings.agent = {
|
||||||
always_allow_tool_actions = true;
|
|
||||||
default_profile = "ask";
|
default_profile = "ask";
|
||||||
default_model = {
|
default_model = {
|
||||||
provider = "Cerebras";
|
provider = "Cerebras PAUG";
|
||||||
model = "gpt-oss-120b";
|
model = "gpt-oss-120b";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,8 +5,14 @@ _: {
|
|||||||
metrics = false;
|
metrics = false;
|
||||||
};
|
};
|
||||||
icon_theme = "VSCode Icons for Zed (Dark)";
|
icon_theme = "VSCode Icons for Zed (Dark)";
|
||||||
|
ui_font_family = "FiraCode Nerd Font Mono";
|
||||||
ui_font_size = 16;
|
ui_font_size = 16;
|
||||||
|
buffer_font_family = "FiraCode Nerd Font Mono";
|
||||||
buffer_font_size = 15;
|
buffer_font_size = 15;
|
||||||
|
terminal = {
|
||||||
|
font_family = "FiraCode Nerd Font Mono";
|
||||||
|
font_size = 14;
|
||||||
|
};
|
||||||
theme = {
|
theme = {
|
||||||
mode = "dark";
|
mode = "dark";
|
||||||
light = "One Light";
|
light = "One Light";
|
||||||
|
|||||||
@@ -1,43 +1,158 @@
|
|||||||
_: {
|
_: {
|
||||||
programs.zed-editor.userSettings.language_models.openai_compatible."Cerebras" = {
|
programs.zed-editor.userSettings.language_models.openai_compatible = {
|
||||||
api_url = "https://api.cerebras.ai/v1";
|
"Cerebras FREE" = {
|
||||||
available_models = [
|
api_url = "https://api.cerebras.ai/v1";
|
||||||
{
|
available_models = [
|
||||||
name = "qwen-3-235b-a22b-instruct-2507";
|
{
|
||||||
display_name = "Qwen 3 235B Instruct";
|
name = "gpt-oss-120b";
|
||||||
max_tokens = 65000;
|
display_name = "OpenAI GPT OSS";
|
||||||
max_output_tokens = 32000;
|
max_tokens = 65000;
|
||||||
capabilities = {
|
max_output_tokens = 32000;
|
||||||
tools = true;
|
capabilities = {
|
||||||
images = true;
|
tools = true;
|
||||||
parallel_tool_calls = true;
|
images = true;
|
||||||
prompt_cache_key = false;
|
parallel_tool_calls = true;
|
||||||
};
|
prompt_cache_key = false;
|
||||||
}
|
};
|
||||||
{
|
}
|
||||||
name = "llama-3.3-70b";
|
{
|
||||||
display_name = "Llama 3.3 70B";
|
name = "zai-glm-4.7";
|
||||||
max_tokens = 65000;
|
display_name = "Z.ai GLM 4.7";
|
||||||
max_output_tokens = 8000;
|
max_tokens = 64000;
|
||||||
capabilities = {
|
max_output_tokens = 40000;
|
||||||
tools = true;
|
capabilities = {
|
||||||
images = true;
|
tools = true;
|
||||||
parallel_tool_calls = true;
|
images = true;
|
||||||
prompt_cache_key = true;
|
parallel_tool_calls = true;
|
||||||
};
|
prompt_cache_key = true;
|
||||||
}
|
};
|
||||||
{
|
}
|
||||||
name = "gpt-oss-120b";
|
{
|
||||||
display_name = "OpenAI GPT OSS";
|
name = "llama3.1-8b";
|
||||||
max_tokens = 65000;
|
display_name = "Llama 3.1 8B";
|
||||||
max_output_tokens = 32000;
|
max_tokens = 8000;
|
||||||
capabilities = {
|
max_output_tokens = 8000;
|
||||||
tools = true;
|
capabilities = {
|
||||||
images = true;
|
tools = true;
|
||||||
parallel_tool_calls = true;
|
images = true;
|
||||||
prompt_cache_key = false;
|
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"
|
"nixd"
|
||||||
"!nil"
|
"!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;
|
YAML.tab_size = 2;
|
||||||
JavaScript = {
|
JavaScript = {
|
||||||
formatter.language_server.name = "biome";
|
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 = {
|
programs.zoxide = {
|
||||||
zoxide = {
|
enable = true;
|
||||||
enable = true;
|
enableFishIntegration = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
options = [
|
options = [
|
||||||
"--cmd cd"
|
"--cmd cd"
|
||||||
];
|
];
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
{host, ...}: let
|
{
|
||||||
inherit (import ../../hosts/${host}/variables.nix) intelID nvidiaID;
|
host,
|
||||||
in {
|
intelID,
|
||||||
|
nvidiaID,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
../../hosts/${host}
|
../../hosts/${host}
|
||||||
../../modules/drivers
|
../../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