Compare commits
2
Commits
main
..
dff9e94470
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dff9e94470 | ||
|
|
92dba21fd8 |
No files matched your search
@@ -97,7 +97,12 @@ sudo nano /mnt/etc/nixos/hardware-configuration.nix
|
||||
|
||||
**Add BEFORE `fileSystems` section (replace UUID with yours):**
|
||||
```nix
|
||||
boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-uuid/YOUR-LUKS-UUID";
|
||||
boot.initrd.luks.devices = {
|
||||
cryptroot = {
|
||||
device = "/dev/disk/by-uuid/YOUR-LUKS-UUID";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
**Also make sure SWAP is mounted**
|
||||
|
||||
Generated
-744
@@ -1,744 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"affinity-nix": {
|
||||
"inputs": {
|
||||
"corefonts": "corefonts",
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"on-linux": "on-linux",
|
||||
"plugin-loader-src": "plugin-loader-src",
|
||||
"treefmt-nix": "treefmt-nix",
|
||||
"windows-rs": "windows-rs",
|
||||
"wintypes_shim": "wintypes_shim"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1792710311,
|
||||
"narHash": "sha256-Uyd6UpHOZ6ly18cIlWz6HBIw5TfV4lCqVpcr01Lzer0=",
|
||||
"owner": "mrshmllow",
|
||||
"repo": "affinity-nix",
|
||||
"rev": "69c5cb42a7dd596027183776d82bf206d732fc91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mrshmllow",
|
||||
"repo": "affinity-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755819240,
|
||||
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1765809053,
|
||||
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1776754714,
|
||||
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-vim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1732806396,
|
||||
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"corefonts": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1431183738,
|
||||
"narHash": "sha256-610Km9GCtYWxi2SH5jH/XYPXc5f58q5lB05/5XxO/qM=",
|
||||
"owner": "pushcx",
|
||||
"repo": "corefonts",
|
||||
"rev": "8f8627b0004b5f1b952c09cf6390e4ae46475e59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pushcx",
|
||||
"repo": "corefonts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1792350552,
|
||||
"narHash": "sha256-292lvpvxTGKryKxh3/3tcIVi85CwYGdl4oOi113Sob8=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "e675a36b7377bebe41d548388a2501cbb16d380d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762929886,
|
||||
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "6998514dce2c365142a0a119a95ef95d89b84086",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1793419353,
|
||||
"narHash": "sha256-UiTaJe+0zJK9a+aUrsdG8AqtSkbV1ltkFYtZLBrozuE=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "cba186973c89f9d54df352a790484de3e72425cb",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1783570805,
|
||||
"narHash": "sha256-ptl5aRlCv9/uRSv2u8Hq8UFVFeZ6Q/bT049bpqNgc3w=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "5602ed62d638142c1ab31dccd01dfbfb28841225",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1751685974,
|
||||
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790898470,
|
||||
"narHash": "sha256-zTwuwezD0w3hpga6a6P8emidzAZFyWqlNeRBlpWOOl8=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "024633cd702b10285db5cb19b40ad48d2399ba60",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1782949081,
|
||||
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1731966426,
|
||||
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"garandos-tui": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765060905,
|
||||
"narHash": "sha256-YLU5g2aSs1Sh+6j301BtQYUdQ8IqLvoeR4Eivr4eVYc=",
|
||||
"ref": "main",
|
||||
"rev": "028b50c9e4d7160cfa8fac8150a54a52680f4ff5",
|
||||
"revCount": 13,
|
||||
"type": "git",
|
||||
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
|
||||
},
|
||||
"original": {
|
||||
"ref": "main",
|
||||
"type": "git",
|
||||
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1791909798,
|
||||
"narHash": "sha256-VAhpCOmrun/KXimYfR8NM88bciKCui7CqHHhThSzgag=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "1ba1dbfe28738c9a71c266be6efa5b89e75491a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1776175984,
|
||||
"narHash": "sha256-RJFlFW8GiMei6oqUGrMkGEvVqOH8U7Q8abc1yK4VKD8=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "e0fdc4c13250e9a9b8ea9594c83925274f4a5dca",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"owner": "GNOME",
|
||||
"ref": "50.1",
|
||||
"repo": "gnome-shell",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1793193205,
|
||||
"narHash": "sha256-X6xa6sGA7RnJQuZGbFMC+K+KToWAlBDCCjJXfTwEPsw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "095fef2f265c3c0da4fe315efba8f8a04495ab34",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libnbtplusplus": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1772016279,
|
||||
"narHash": "sha256-7itkptyjoRcXfGLwg1/jxajetZ3a4mDc66+w4X6yW8s=",
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"rev": "687e43031df0dc641984b4256bcca50d5b3f7de3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"fenix": [
|
||||
"garandos-tui",
|
||||
"fenix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752689277,
|
||||
"narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "0e72363d0938b0208d6c646d10649164c43f4d64",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1790428548,
|
||||
"narHash": "sha256-OsZ/I7v3ArCrk0XOUvkiU1dFtGtE1qZTHRGjvBXIKUU=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "f1f045fc8b35ff59f88982c1752d3f3a42ca6a61",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gmodena",
|
||||
"ref": "latest",
|
||||
"repo": "nix-flatpak",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1793341285,
|
||||
"narHash": "sha256-Y1CiZ4SoBUjLQyQM/pY+rS2dXD3CHLPstF0lmOc73D4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1c89083e451e891152365b799595cf7790a43325",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1790477367,
|
||||
"narHash": "sha256-oujbxmVKDhci2E4EM3KyAbRUgp5/IsCoiA/LfEF7OOk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "f7cd230690d9fc982d06129f9189b101fddcfa3b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1793423963,
|
||||
"narHash": "sha256-uFBOC6cKGUJhSdseWU8Y9GA8WakQYHgVubk6UEdl+/0=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "f2cebd97e01657ea2581af099eb5c8c2e194fb80",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
"stylix",
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785549842,
|
||||
"narHash": "sha256-DCwBZmGsySF7oKGTRgEv2HvpxVXkHT+38VhTM76k0B4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "a9f987b57594e845e3e5cdd423b9a70846d70308",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"on-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1787435510,
|
||||
"narHash": "sha256-ENn1Xh+JR+6ITt3oe4DC0EiTT2b6PErPQTFPkYQRJBA=",
|
||||
"owner": "seapear",
|
||||
"repo": "AffinityOnLinux",
|
||||
"rev": "4dd5635eab8502bd4653e2e478478af04ff84449",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "seapear",
|
||||
"repo": "AffinityOnLinux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"plugin-loader-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1776972538,
|
||||
"narHash": "sha256-2EvrOYQCB2Z2YXhcPnjR67KoOCvwTVW3TfLcmU3//ak=",
|
||||
"owner": "noahc3",
|
||||
"repo": "AffinityPluginLoader",
|
||||
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noahc3",
|
||||
"repo": "AffinityPluginLoader",
|
||||
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"prismlauncher-cracked": {
|
||||
"inputs": {
|
||||
"libnbtplusplus": "libnbtplusplus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1784295107,
|
||||
"narHash": "sha256-d6En6xP3XWvVj0/QlgGad6zxjWknVxTttVk+G7HLFBQ=",
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"rev": "d393323fdc52ef645c48a04ca73aff2bbe24ffc9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"affinity-nix": "affinity-nix",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"garandos-tui": "garandos-tui",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"noctalia": "noctalia",
|
||||
"prismlauncher-cracked": "prismlauncher-cracked",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1762860488,
|
||||
"narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "2efc80078029894eec0699f62ec8d5c1a56af763",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
"tinted-tmux": "tinted-tmux",
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1792920263,
|
||||
"narHash": "sha256-2pkE97wOXAYIn2/Nhs9y+iR0qVT+g/3UtukXdkywxXc=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "3e27b6c499e507df6e3bb8eca3614f5c95e28140",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1774449309,
|
||||
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"ref": "future-26.11",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1735730497,
|
||||
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1785153830,
|
||||
"narHash": "sha256-fNdfCTeCXU3tZG3TMincd+u68qBHQgCr2Ljr/M1mWP0=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "9bd28ed313560db3c5b605c63bc4e309e78e3fc8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1785031658,
|
||||
"narHash": "sha256-mZp9O2LjzdMzlqQF3l3fjqsuPBzXy+1qTfBEUGjTlpk=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "5d2c67f61ea7af36f16865ab6d541cdba41dc257",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1785030526,
|
||||
"narHash": "sha256-klZf8UviewRkxuu74Bhbq6tqy7oxebQC7UVRWbbtQxU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "16f5a8adf4a6b1310d0a61ab172de963e8f76a02",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1791885023,
|
||||
"narHash": "sha256-C3alQ2MEt0zVrUSho5NUDo3jmhbff72++bfwoqT9Omo=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "0d6d739a833ba9a9c93034862e4a7b061a062a1c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"windows-rs": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1771531570,
|
||||
"narHash": "sha256-UmhpbCd3+0We7JiXFXgcS8jWMnZI2NRqPOs+UOsjrUc=",
|
||||
"owner": "microsoft",
|
||||
"repo": "windows-rs",
|
||||
"rev": "628f84c51645217c7a06a20774ea1275dc7270ca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "microsoft",
|
||||
"repo": "windows-rs",
|
||||
"rev": "628f84c51645217c7a06a20774ea1275dc7270ca",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wintypes_shim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750396180,
|
||||
"narHash": "sha256-E3go8SmUkAWrxQnr852WQB0huzdkO7CWiuB8Q2QyMZ4=",
|
||||
"owner": "ElementalWarrior",
|
||||
"repo": "wine-wintypes.dll-for-affinity",
|
||||
"rev": "f8a2d42ba3abc5dcdc584daa6728a2fa019be72e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ElementalWarrior",
|
||||
"repo": "wine-wintypes.dll-for-affinity",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
@@ -1,82 +1,15 @@
|
||||
{
|
||||
description = "GarandOS";
|
||||
description = "GarandOS flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
|
||||
import-tree.url = "github:vic/import-tree";
|
||||
};
|
||||
|
||||
stylix = {
|
||||
url = "github:danth/stylix";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||
nur.inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.follows = "stylix/flake-parts";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
prismlauncher-cracked = {
|
||||
url = "github:Diegiwg/PrismLauncher-Cracked";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
affinity-nix = {
|
||||
url = "github:mrshmllow/affinity-nix";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
git-hooks.inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
gitignore.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||
|
||||
garandos-tui = {
|
||||
url = "git+https://gitea.garandplg.com/GarandPLG/garandos-tui?ref=main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
nix-flatpak,
|
||||
garandos-tui,
|
||||
...
|
||||
} @ inputs: let
|
||||
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
||||
|
||||
mkHost = hostName: let
|
||||
hostVars = import ./hosts/${hostName}/variables.nix;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit (hostVars) system;
|
||||
specialArgs = hostVars // {inherit inputs;};
|
||||
modules = [
|
||||
./profiles/${hostVars.profile}
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
garandos-tui.nixosModules.garandos-tui
|
||||
];
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
|
||||
};
|
||||
outputs = inputs: inputs.flake-parts.lib.mkFlake {
|
||||
inherit inputs;
|
||||
} (inputs.import-tree ./src);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = ["dm-snapshot"];
|
||||
luks.devices.cryptroot.device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
|
||||
};
|
||||
kernelModules = ["kvm-amd"];
|
||||
extraModulePackages = [];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/783D-A507";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = lib.mkForce [
|
||||
{
|
||||
device = "/dev/disk/by-uuid/8e8cc3dc-5754-4757-a2d7-53e6a2c3b5a4";
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless inter.. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = false; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
opencode.enable = true; # OpenCode: terminal coding agent
|
||||
codex.enable = true; # Codex: Lightweight coding agent that runs in your terminal
|
||||
ollama.enable = false; # Ollama: Local Llms
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = false; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
mangohud.enable = true; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
obsidian = {
|
||||
enable = true; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
|
||||
vaults = {
|
||||
"BoM".enable = true; # Blood of Mages: ttrpg session
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
|
||||
openWebUI.enable = true; # Open WebUI: Comprehensive suite for LLMs with a user-friendly WebUI
|
||||
};
|
||||
};
|
||||
|
||||
# /*
|
||||
# Noctalia-shell plugins
|
||||
# */
|
||||
# noctalia-plugins = {
|
||||
# mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
|
||||
# timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
|
||||
# keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
|
||||
# kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
|
||||
# screen-recorder.enable = true; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
|
||||
# screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
|
||||
# ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
|
||||
# tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
|
||||
# };
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
virualization.enable = true; # GUI application for managing local and remote virtual machines through libvirt
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
upscaler.enable = true; # Upscaler: Upscale and enhance images
|
||||
arduino.enable = false; # Arduino: Open-source electronics prototyping platform
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
kmines.enable = true; # KMines: KMines is the classic Minesweeper game
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = false; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
jan.enable = false; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
# appImages.logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = true; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = false; # Plex: media player and server client
|
||||
jellyfin.enable = true; # Jellyfin: foss media player
|
||||
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = true; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
simpleScan.enable = true; # simple-scan: Simple scanning utility
|
||||
};
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "Garand-Desktop";
|
||||
username = "garand_plg";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "nvidia";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# User shell
|
||||
# Availabe options: "fish", "bash"
|
||||
shell = "fish";
|
||||
|
||||
# Hyprland monitors (Lua hl.monitor tables).
|
||||
# Example: [{ output = "HDMI-A-1"; mode = "1920x1080@60"; position = "auto"; scale = 1; }]
|
||||
extraMonitorSettings = [
|
||||
{
|
||||
output = "DP-1";
|
||||
mode = "1920x1080@144";
|
||||
position = "auto";
|
||||
scale = 1;
|
||||
}
|
||||
];
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
location = "Żywiec, PL";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = false;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||
# stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||
# stylixImage = "Avatar-1.jpg"; # 7/10
|
||||
# stylixImage = "Dinozaurus-1.jpg"; # 6/10
|
||||
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||
# stylixImage = "Jablon.png"; # 1/10
|
||||
# stylixImage = "Kapitan-bomba.jpg"; # 8/10
|
||||
# stylixImage = "SoA-1.jpg"; # 6/10
|
||||
stylixImage = "SoTtE-1.jpg"; # 9/10
|
||||
# stylixImage = "SoTtE-2.jpg"; # 7/10
|
||||
# stylixImage = "V-for-vendetta.jpg"; # 7.5/10
|
||||
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
|
||||
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "5ab03f50";
|
||||
|
||||
# Whether printing services should be enabled.
|
||||
printEnable = true;
|
||||
# Name of the default printer.
|
||||
ensureDefaultPrinter = "Brother_DCP-T510W";
|
||||
# List of printers to ensure are configured.
|
||||
ensurePrinters = [
|
||||
{
|
||||
deviceUri = "ipp://192.168.1.106/ipp";
|
||||
location = "home";
|
||||
name = "Brother_DCP-T525W";
|
||||
model = "everywhere";
|
||||
}
|
||||
{
|
||||
deviceUri = "ipp://192.168.1.159/ipp";
|
||||
location = "home";
|
||||
name = "Brother_DCP-T510W";
|
||||
model = "everywhere";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = ["dm-snapshot"];
|
||||
luks.devices.cryptroot.device = "/dev/disk/by-uuid/6abc2228-823e-42b0-94c7-48fda757732c";
|
||||
};
|
||||
kernelModules = ["kvm-amd"];
|
||||
extraModulePackages = [];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/d30939d0-53ed-4728-9190-6a5b9dec8fb4";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/3df34a25-7e42-433d-b723-be80f1738ba5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/0E68-9A34";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware = {
|
||||
amdgpu.opencl.enable = true;
|
||||
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
};
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = false; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
opencode.enable = true; # OpenCode: terminal coding agent
|
||||
codex.enable = true; # Codex: Lightweight coding agent that runs in your terminal
|
||||
ollama.enable = false; # Ollama: Local Llms
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = false; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
mangohud.enable = true; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
|
||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
obsidian = {
|
||||
enable = true; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
|
||||
vaults = {
|
||||
"BoM".enable = true; # Blood of Mages: ttrpg session
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
|
||||
openWebUI.enable = true; # Open WebUI: Comprehensive suite for LLMs with a user-friendly WebUI
|
||||
};
|
||||
};
|
||||
|
||||
# /*
|
||||
# Noctalia-shell plugins
|
||||
# */
|
||||
# noctalia-plugins = {
|
||||
# mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
|
||||
# timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
|
||||
# keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
|
||||
# kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
|
||||
# screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
|
||||
# screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
|
||||
# ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
|
||||
# tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
|
||||
# };
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = true; # VirtualBox: PC emulator
|
||||
virualization.enable = false; # GUI application for managing local and remote virtual machines through libvirt
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
upscaler.enable = true; # Upscaler: Upscale and enhance images
|
||||
arduino.enable = false; # Arduino: Open-source electronics prototyping platform
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
kmines.enable = true; # KMines: KMines is the classic Minesweeper game
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = false; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
jan.enable = false; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
# appImages.logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = false; # Plex: media player and server client
|
||||
jellyfin.enable = true; # Jellyfin: foss media player
|
||||
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = true; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
simpleScan.enable = true; # simple-scan: Simple scanning utility
|
||||
};
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "Garand-Laptop";
|
||||
username = "garand_plg";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "amd";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# User shell
|
||||
# Availabe options: "fish", "bash"
|
||||
shell = "fish";
|
||||
|
||||
# Hyprland monitors (Lua hl.monitor tables).
|
||||
# Example: [{ output = "HDMI-A-1"; mode = "1920x1080@60"; position = "auto"; scale = 1; }]
|
||||
extraMonitorSettings = [
|
||||
{
|
||||
output = "eDP-1";
|
||||
mode = "1920x1080@60";
|
||||
position = "auto";
|
||||
scale = 1;
|
||||
}
|
||||
];
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
location = "Żywiec, PL";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = false;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||
# stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||
# stylixImage = "Avatar-1.jpg"; # 7/10
|
||||
# stylixImage = "Dinozaurus-1.jpg"; # 6/10
|
||||
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||
# stylixImage = "Jablon.png"; # 1/10
|
||||
# stylixImage = "Kapitan-bomba.jpg"; # 8/10
|
||||
# stylixImage = "SoA-1.jpg"; # 6/10
|
||||
stylixImage = "SoTtE-1.jpg"; # 9/10
|
||||
# stylixImage = "SoTtE-2.jpg"; # 7/10
|
||||
# stylixImage = "V-for-vendetta.jpg"; # 7.5/10
|
||||
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
|
||||
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "7bc04e61";
|
||||
|
||||
printEnable = true;
|
||||
ensureDefaultPrinter = "Brother_DCP-T510W";
|
||||
ensurePrinters = [
|
||||
{
|
||||
deviceUri = "ipp://192.168.1.106/ipp";
|
||||
location = "home";
|
||||
name = "Brother_DCP-T525W";
|
||||
model = "everywhere";
|
||||
}
|
||||
{
|
||||
deviceUri = "ipp://192.168.1.159/ipp";
|
||||
location = "home";
|
||||
name = "Brother_DCP-T510W";
|
||||
model = "everywhere";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/C2A6-DF56";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = lib.mkForce [
|
||||
{
|
||||
device = "/dev/vg0/swap";
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.docker0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = false; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = false; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
opencode.enable = false; # OpenCode: terminal coding agent
|
||||
codex.enable = false; # Codex: Lightweight coding agent that runs in your terminal
|
||||
ollama.enable = false; # Ollama: Local Llms
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = false; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
easyeffects.enable = false; # EasyEffects: Audio effects for PipeWire applications
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = false; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = false; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
mangohud.enable = false; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
|
||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = false; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = false; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
obsidian = {
|
||||
enable = false; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
|
||||
vaults = {
|
||||
"BoM".enable = false; # Blood of Mages: ttrpg session
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = false; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = false; # Messenger: Facebook Messenger
|
||||
mastodon.enable = false; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = false; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = false; # ChatGPT: a large language model
|
||||
claude.enable = false; # Claude: a large language model
|
||||
glance.enable = false; # Glance: my home server dashboard
|
||||
jellyfinClient.enable = false; # Jellyfin: My Jellyfin
|
||||
openWebUI.enable = false; # Open WebUI: Comprehensive suite for LLMs with a user-friendly WebUI
|
||||
};
|
||||
};
|
||||
|
||||
# /*
|
||||
# Noctalia-shell plugins
|
||||
# */
|
||||
# noctalia-plugins = {
|
||||
# mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
|
||||
# timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
|
||||
# keybind-cheatsheet.enable = false; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
|
||||
# kde-connect.enable = false; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
|
||||
# screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
|
||||
# screenshot.enable = false; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
|
||||
# ntfy-notifications.enable = false; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
|
||||
# tailscale.enable = false; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
|
||||
# };
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = false; # Docker: container runtime and management
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
virualization.enable = false; # GUI application for managing local and remote virtual machines through libvirt
|
||||
flatpak = {
|
||||
enable = false; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = false; # Flatpak manager
|
||||
flatseal.enable = false; # Flatpak permissions manager
|
||||
upscaler.enable = false; # Upscaler: Upscale and enhance images
|
||||
arduino.enable = false; # Arduino: Open-source electronics prototyping platform
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = false; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = false; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = false; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = false; # Steam: platform for buying and playing games
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
|
||||
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
boxes.enable = false; # Gnome-Boxes: virtual machine manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
spaceCadetPinball.enable = false; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = false; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
kmines.enable = false; # KMines: KMines is the classic Minesweeper game
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = false; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
jan.enable = false; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = false; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = false; # Tutanota: secure email client
|
||||
signal.enable = false; # Signal: secure messaging app
|
||||
teams.enable = false; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
iotas.enable = false; # Iotas: lightweight notes manager
|
||||
# appImages.logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
eyeOfGnome.enable = false; # Eye of GNOME: image viewer
|
||||
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = false; # Plex: media player and server client
|
||||
jellyfin.enable = false; # Jellyfin: foss media player
|
||||
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = false; # Eddie AirVPN: VPN client
|
||||
gnomeCalculator.enable = false; # gnomeCalculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
simpleScan.enable = false; # simple-scan: Simple scanning utility
|
||||
};
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "My-Desktop";
|
||||
username = "my_username";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "nvidia";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "my@email.com";
|
||||
|
||||
# User shell
|
||||
# Availabe options: "fish", "bash"
|
||||
shell = "fish";
|
||||
|
||||
# Hyprland monitors (Lua hl.monitor tables).
|
||||
# Example: [{ output = "HDMI-A-1"; mode = "1920x1080@60"; position = "auto"; scale = 1; }]
|
||||
extraMonitorSettings = [];
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
location = "Warszawa, PL";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = false;
|
||||
|
||||
# Themes, waybar and animation.
|
||||
# Only uncomment your selection
|
||||
# The others much be commented out.
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
|
||||
# stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
|
||||
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
|
||||
# stylixImage = "Avatar-1.jpg"; # 7/10
|
||||
# stylixImage = "Dinozaurus-1.jpg"; # 6/10
|
||||
# stylixImage = "Friren-1.jpg"; # 6.5/10
|
||||
# stylixImage = "Jablon.png"; # 1/10
|
||||
# stylixImage = "Kapitan-bomba.jpg"; # 8/10
|
||||
# stylixImage = "SoA-1.jpg"; # 6/10
|
||||
stylixImage = "SoTtE-1.jpg"; # 9/10
|
||||
# stylixImage = "SoTtE-2.jpg"; # 7/10
|
||||
# stylixImage = "V-for-vendetta.jpg"; # 7.5/10
|
||||
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
|
||||
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "5ab03f50";
|
||||
|
||||
# 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";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
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];
|
||||
};
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelModules = ["v4l2loopback"];
|
||||
extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
|
||||
kernel.sysctl = {
|
||||
"vm.max_map_count" = 2147483642;
|
||||
};
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
limine = {
|
||||
enable = true;
|
||||
package = pkgs.limine;
|
||||
resolution = "1920x1080";
|
||||
style.interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
brandingColor = "${config.stylix.base16Scheme.base01}";
|
||||
};
|
||||
};
|
||||
};
|
||||
# Appimage Support
|
||||
binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
plymouth.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
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,34 +0,0 @@
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
./packages
|
||||
./affinity.nix
|
||||
./boot.nix
|
||||
./calendar.nix
|
||||
./docker.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
./garandos-tui.nix
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
./nfs.nix
|
||||
./nh.nix
|
||||
./printing.nix
|
||||
./greetd.nix
|
||||
./security.nix
|
||||
./services.nix
|
||||
./steam.nix
|
||||
./stylix.nix
|
||||
./syncthing.nix
|
||||
./system.nix
|
||||
./tailscale.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./ventoy.nix
|
||||
./virtualbox.nix
|
||||
./virualization.nix
|
||||
./xdg.nix
|
||||
./xserver.nix
|
||||
./zram.nix
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
profile,
|
||||
...
|
||||
}: {
|
||||
options.docker.enable = lib.mkEnableOption "Docker";
|
||||
|
||||
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
||||
enable = true;
|
||||
enableNvidia =
|
||||
if profile == "nvidia"
|
||||
then true
|
||||
else false;
|
||||
package = pkgs.docker;
|
||||
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
mkFlatpakPackage = name: pkgId: {
|
||||
options.flatpak.packages.${name}.enable = lib.mkEnableOption "Flatpak: ${name}";
|
||||
|
||||
config.services.flatpak.packages =
|
||||
lib.mkIf config.flatpak.packages.${name}.enable [pkgId];
|
||||
};
|
||||
|
||||
flatpakPackages = {
|
||||
sober = "org.vinegarhq.Sober";
|
||||
warehouse = "io.github.flattool.Warehouse";
|
||||
flatseal = "com.github.tchx84.Flatseal";
|
||||
upscaler = "io.gitlab.theevilskeleton.Upscaler";
|
||||
arduino = "cc.arduino.IDE2";
|
||||
};
|
||||
in {
|
||||
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||
|
||||
config.services.flatpak = lib.mkIf config.flatpak.enable {
|
||||
enable = true;
|
||||
update.onActivation = true;
|
||||
packages = [];
|
||||
};
|
||||
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkFlatpakPackage flatpakPackages);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome
|
||||
hackgen-nf-font
|
||||
ibm-plex
|
||||
inter
|
||||
jetbrains-mono
|
||||
material-icons
|
||||
maple-mono.NF
|
||||
minecraftia
|
||||
nerd-fonts.im-writing
|
||||
nerd-fonts.blex-mono
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-monochrome-emoji
|
||||
powerline-fonts
|
||||
roboto
|
||||
roboto-mono
|
||||
#symbola
|
||||
terminus_font
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
host,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
programs.garandos-tui = {
|
||||
enable = true;
|
||||
systemModulesFilePath = "/home/${username}/garandos/hosts/${host}/system-modules.nix";
|
||||
homeModulesFilePath = "/home/${username}/garandos/hosts/${host}/home-modules.nix";
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
#vt = 3;
|
||||
settings.default_session = {
|
||||
user = username;
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd start-hyprland"; # start Hyprland with a TUI login manager
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
extraBackends = [pkgs.sane-airscan];
|
||||
disabledDefaultBackends = ["escl"];
|
||||
};
|
||||
logitech.wireless.enable = false;
|
||||
graphics.enable = true;
|
||||
enableRedistributableFirmware = true;
|
||||
keyboard.qmk.enable = true;
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = false;
|
||||
};
|
||||
};
|
||||
local.hardware-clock.enable = false;
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
host,
|
||||
hostId,
|
||||
options,
|
||||
...
|
||||
}: {
|
||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.match "^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$" host != null;
|
||||
message = "Invalid hostname '${host}'. Must be 1-63 chars, start/end alphanumeric; allowed middle chars: letters, digits, '-' or '_'.";
|
||||
}
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "${host}";
|
||||
hostId = hostId;
|
||||
networkmanager.enable = true;
|
||||
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
80
|
||||
443
|
||||
5173
|
||||
59010
|
||||
59011
|
||||
8080
|
||||
];
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
5173
|
||||
5353
|
||||
54925
|
||||
59010
|
||||
59011
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{enableNFS, ...}: {
|
||||
services = {
|
||||
rpcbind.enable = enableNFS;
|
||||
nfs.server.enable = enableNFS;
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
username,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
package = pkgs.nh;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 7d --keep 5";
|
||||
};
|
||||
flake = "/home/${username}/garandos";
|
||||
};
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
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 {};
|
||||
# logseq = pkgs.callPackage ./logseq.nix {};
|
||||
losslesscut = pkgs.callPackage ./losslesscut.nix {};
|
||||
omniget = pkgs.callPackage ./omniget.nix {};
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages);
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "fluxer";
|
||||
version = "canary";
|
||||
hash = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
|
||||
sha256 = hash;
|
||||
};
|
||||
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];
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "helium";
|
||||
version = "0.20.3.1";
|
||||
hash = "sha256-H69Thkj+FKHqkuMlyxI4rojEeGZsteY9DSrxcP5MoDc=";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/imputnet/helium-linux/releases/download/${version}/helium-${version}-x86_64.AppImage";
|
||||
sha256 = hash;
|
||||
};
|
||||
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];
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "logseq";
|
||||
version = "0.10.15";
|
||||
hash = "sha256-i5EQUvSW1ix+8NT8nCs6mGH2B9xF7G4mB7vBhDJ7JdE=";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/logseq/logseq/releases/download/${version}/Logseq-linux-x64-${version}.AppImage";
|
||||
sha256 = hash;
|
||||
};
|
||||
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 = "Logseq";
|
||||
homepage = "https://github.com/logseq/logseq";
|
||||
license = licenses.gpl3;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
# https://github.com/logseq/logseq/releases/download/0.10.15/Logseq-linux-x64-0.10.15.AppImage
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "losslesscut";
|
||||
version = "3.70.2";
|
||||
hash = "sha256-6eoAyc9s3aENudnNE/ycoQ1hzcBGpg9e40DbZkMWSko=";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mifi/lossless-cut/releases/download/v${version}/LosslessCut-linux-x86_64.AppImage";
|
||||
sha256 = hash;
|
||||
};
|
||||
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 = "Lossless cut";
|
||||
homepage = "https://github.com/mifi/lossless-cut";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
# https://github.com/mifi/lossless-cut/releases/download/v3.68.0/LosslessCut-linux-x86_64.AppImage
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "omniget";
|
||||
version = "0.7.2";
|
||||
hash = "sha256-L1h7ViMLRSsGB0TmR5ZOjXqJCF1QsYU5c24OHHGPv+4=";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/tonhowtf/${pname}/releases/download/v${version}/${pname}_${version}_amd64.AppImage";
|
||||
sha256 = hash;
|
||||
};
|
||||
appimageContents = appimageTools.extract {inherit pname version src;};
|
||||
|
||||
iconSize = "256x256@2";
|
||||
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 = "Download Udemy courses, YouTube, music, books, and 1,800+ sites in one app. No terminal.";
|
||||
homepage = "https://github.com/tonhowtf/omniget";
|
||||
license = licenses.gpl3;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
imports = [
|
||||
./appimages
|
||||
./essentials.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
];
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
mpv
|
||||
pavucontrol
|
||||
playerctl
|
||||
cmatrix
|
||||
cowsay
|
||||
sl
|
||||
fortune
|
||||
yt-dlp
|
||||
pdfium
|
||||
bitwarden-cli
|
||||
xdg-utils
|
||||
gcc
|
||||
# File management
|
||||
trash-cli
|
||||
file-roller
|
||||
unrar
|
||||
unzip
|
||||
p7zip
|
||||
# System monitoring & info
|
||||
inxi
|
||||
lm_sensors
|
||||
lshw
|
||||
pciutils
|
||||
usbutils
|
||||
mesa-demos
|
||||
nix-output-monitor
|
||||
nvd
|
||||
onefetch
|
||||
# Disk utilities
|
||||
duf
|
||||
dysk
|
||||
ncdu
|
||||
smartmontools
|
||||
# Network & system utilities
|
||||
ripgrep
|
||||
wget
|
||||
socat
|
||||
ookla-speedtest
|
||||
brightnessctl
|
||||
killall
|
||||
dex
|
||||
ffmpeg
|
||||
# Desktop environment
|
||||
networkmanagerapplet
|
||||
tuigreet
|
||||
nwg-displays
|
||||
waypaper
|
||||
uwsm
|
||||
hyprpicker
|
||||
hyprshot
|
||||
cliphist
|
||||
# Development utilities
|
||||
pkg-config
|
||||
appimage-run
|
||||
libnotify
|
||||
v4l-utils
|
||||
tasktimer
|
||||
# Language dicts for Iotas
|
||||
hunspell
|
||||
hunspellDicts.pl_PL
|
||||
hunspellDicts.en_US
|
||||
# Noctalia Shell Dependencies
|
||||
matugen
|
||||
app2unit
|
||||
gpu-screen-recorder
|
||||
# hyprland
|
||||
awww
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swappy
|
||||
ydotool
|
||||
hyprpolkitagent
|
||||
# pyprland
|
||||
pyprland
|
||||
];
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
mkPackage = name: pkgsOrList: {
|
||||
options.packages.${name}.enable = lib.mkEnableOption name;
|
||||
config.environment.systemPackages =
|
||||
lib.mkIf config.packages.${name}.enable
|
||||
(lib.toList pkgsOrList);
|
||||
};
|
||||
|
||||
packages = with pkgs; {
|
||||
eddieAirVPN = eddie;
|
||||
gnomeCalculator = gnome-calculator;
|
||||
gedit = gedit;
|
||||
iotas = iotas;
|
||||
# logseq = logseq;
|
||||
mattermost = mattermost-desktop;
|
||||
slack = slack;
|
||||
tutanota = tutanota-desktop;
|
||||
exercism = exercism;
|
||||
jan = jan;
|
||||
lazygit = lazygit;
|
||||
spaceCadetPinball = space-cadet-pinball;
|
||||
ttySolitaire = tty-solitaire;
|
||||
gimp = gimp;
|
||||
eyeOfGnome = eog;
|
||||
kdenlive =
|
||||
kdePackages.kdenlive.overrideAttrs
|
||||
(old: {
|
||||
postInstall =
|
||||
(old.postInstall or "")
|
||||
+ ''
|
||||
wrapProgram $out/bin/kdenlive \
|
||||
--set QT_SCALE_FACTOR 0.8
|
||||
'';
|
||||
});
|
||||
plex = [
|
||||
(
|
||||
plex-desktop.override {
|
||||
extraEnv = {
|
||||
QT_QPA_PLATFORM = "xcb";
|
||||
};
|
||||
}
|
||||
)
|
||||
plexamp
|
||||
];
|
||||
jellyfin = [
|
||||
tsukimi
|
||||
finamp
|
||||
];
|
||||
freetube = freetube;
|
||||
lazydocker = lazydocker;
|
||||
distrobox = [
|
||||
distrobox
|
||||
pkgs.boxbuddy
|
||||
];
|
||||
winboat = [
|
||||
winboat
|
||||
freerdp
|
||||
];
|
||||
signal = signal-desktop;
|
||||
pixieditor = pixieditor;
|
||||
bottles = bottles;
|
||||
heroic = heroic;
|
||||
adb = android-tools;
|
||||
teams = teams-for-linux;
|
||||
ferdium = ferdium;
|
||||
logisim-evolution = logisim-evolution;
|
||||
notify = notify-client;
|
||||
boxes = gnome-boxes;
|
||||
kmines = kdePackages.kmines;
|
||||
switcheroo = switcheroo;
|
||||
simpleScan = simple-scan.overrideAttrs (old: {
|
||||
postFixup =
|
||||
(old.postFixup or "")
|
||||
+ ''
|
||||
wrapProgram $out/bin/simple-scan \
|
||||
--prefix LD_LIBRARY_PATH : "/etc/sane-libs"
|
||||
'';
|
||||
});
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{shell, ...}: {
|
||||
programs = {
|
||||
nano.enable = true;
|
||||
|
||||
hyprland = {
|
||||
enable = true;
|
||||
withUWSM = false;
|
||||
};
|
||||
|
||||
fish.enable =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
|
||||
dconf.enable = true;
|
||||
|
||||
seahorse.enable = true;
|
||||
|
||||
fuse.userAllowOther = true;
|
||||
|
||||
mtr.enable = true;
|
||||
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
solaar.enable = false;
|
||||
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
# libraries = with pkgs; [
|
||||
# biome
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
printEnable,
|
||||
ensureDefaultPrinter,
|
||||
ensurePrinters,
|
||||
...
|
||||
}: {
|
||||
services = lib.mkIf printEnable {
|
||||
printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
cups-filters
|
||||
cups-browsed
|
||||
];
|
||||
listenAddresses = ["*:631"];
|
||||
allowFrom = ["all"];
|
||||
browsing = true;
|
||||
defaultShared = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
settings.publish = {
|
||||
disable-publishing = false;
|
||||
disable-user-service-publishing = false;
|
||||
publish-addresses = true;
|
||||
};
|
||||
};
|
||||
|
||||
ipp-usb.enable = true;
|
||||
|
||||
udev = {
|
||||
enable = true;
|
||||
packages = with pkgs; [sane-airscan];
|
||||
};
|
||||
|
||||
saned.enable = true;
|
||||
};
|
||||
|
||||
hardware = lib.mkIf printEnable {
|
||||
printers = {
|
||||
ensureDefaultPrinter = ensureDefaultPrinter;
|
||||
ensurePrinters = ensurePrinters;
|
||||
};
|
||||
|
||||
sane = {
|
||||
enable = true;
|
||||
extraBackends = with pkgs; [sane-airscan];
|
||||
disabledDefaultBackends = ["escl"];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
_: {
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
polkit = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ( subject.isInGroup("users") && (
|
||||
action.id == "org.freedesktop.login1.reboot" ||
|
||||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
||||
action.id == "org.freedesktop.login1.power-off" ||
|
||||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
|
||||
))
|
||||
{ return polkit.Result.YES; }
|
||||
})
|
||||
'';
|
||||
};
|
||||
pam.services.swaylock = {
|
||||
text = ''auth include login '';
|
||||
};
|
||||
sudo = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
Defaults pwfeedback
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
profile,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# Services to start
|
||||
services = {
|
||||
libinput.enable = true; # Input Handling
|
||||
fstrim.enable = true; # SSD Optimizer
|
||||
gvfs.enable = true; # For Mounting USB & More
|
||||
openssh = {
|
||||
enable = true; # Enable SSH
|
||||
settings = {
|
||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||
PasswordAuthentication = true; # Users can SSH using kb and password
|
||||
KbdInteractiveAuthentication = true;
|
||||
};
|
||||
ports = [22];
|
||||
};
|
||||
tumbler.enable = true; # Image/video preview
|
||||
gnome.gnome-keyring.enable = true;
|
||||
smartd = {
|
||||
enable =
|
||||
if profile == "vm"
|
||||
then false
|
||||
else true;
|
||||
autodetect = true;
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
extraConfig.pipewire."92-low-latency" = {
|
||||
"context.properties" = {
|
||||
"default.clock.rate" = 48000;
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 256;
|
||||
"default.clock.max-quantum" = 256;
|
||||
};
|
||||
};
|
||||
extraConfig.pipewire-pulse."92-low-latency" = {
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-protocol-pulse";
|
||||
args = {
|
||||
pulse.min.req = "256/48000";
|
||||
pulse.default.req = "256/48000";
|
||||
pulse.max.req = "256/48000";
|
||||
pulse.min.quantum = "256/48000";
|
||||
pulse.max.quantum = "256/48000";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
upower = {
|
||||
enable = true;
|
||||
package = pkgs.upower;
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
enable = true;
|
||||
package = pkgs.power-profiles-daemon;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
steam.enable = lib.mkEnableOption "Steam";
|
||||
gamescope.enable = lib.mkEnableOption "Gamescope";
|
||||
gamemode.enable = lib.mkEnableOption "Gamemode";
|
||||
};
|
||||
|
||||
config.programs = {
|
||||
steam = lib.mkIf config.steam.enable {
|
||||
enable = true;
|
||||
package = pkgs.steam;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
# args = [
|
||||
# "--rt"
|
||||
# "--expose-wayland"
|
||||
# ];
|
||||
};
|
||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||
};
|
||||
|
||||
gamescope = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
# args = [
|
||||
# # "--rt"
|
||||
# # "--expose-wayland"
|
||||
# ];
|
||||
};
|
||||
|
||||
gamemode = lib.mkIf config.gamemode.enable {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
# gamescope -W 1920 -H 1080 -r 144 --force-grab-cursor -f --mangoapp --rt --expose-wayland --
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
stylixImage,
|
||||
...
|
||||
}: {
|
||||
# Styling Options
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../../wallpapers/${stylixImage};
|
||||
polarity = "dark";
|
||||
opacity.terminal = 1.0;
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 24;
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.fira-mono;
|
||||
name = "FiraCode Nerd Font Mono";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "FiraCode Nerd Font Propo";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "FiraCode Nerd Font";
|
||||
};
|
||||
sizes = {
|
||||
applications = 12;
|
||||
terminal = 15;
|
||||
desktop = 11;
|
||||
popups = 12;
|
||||
};
|
||||
};
|
||||
targets = {
|
||||
limine = {
|
||||
enable = true;
|
||||
colors.enable = true;
|
||||
image.enable = true;
|
||||
imageScalingMode = {
|
||||
enable = true;
|
||||
override = "tile";
|
||||
};
|
||||
};
|
||||
kmscon = {
|
||||
enable = false;
|
||||
colors.enable = true;
|
||||
fonts.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{username, ...}: {
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
user = "${username}";
|
||||
dataDir = "/home/${username}";
|
||||
configDir = "/home/${username}/.config/syncthing";
|
||||
};
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
consoleKeyMap,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
nix.settings = {
|
||||
nix-path = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
download-buffer-size = 200000000;
|
||||
auto-optimise-store = true;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
"https://noctalia.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
|
||||
];
|
||||
};
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
i18n = {
|
||||
defaultLocale = "pl_PL.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "pl_PL.UTF-8";
|
||||
LC_IDENTIFICATION = "pl_PL.UTF-8";
|
||||
LC_MEASUREMENT = "pl_PL.UTF-8";
|
||||
LC_MONETARY = "pl_PL.UTF-8";
|
||||
LC_NAME = "pl_PL.UTF-8";
|
||||
LC_NUMERIC = "pl_PL.UTF-8";
|
||||
LC_PAPER = "pl_PL.UTF-8";
|
||||
LC_TELEPHONE = "pl_PL.UTF-8";
|
||||
LC_TIME = "pl_PL.UTF-8";
|
||||
};
|
||||
};
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GARANDOS_VERSION = "1.0";
|
||||
GARANDOS = "true";
|
||||
};
|
||||
console.keyMap = "${consoleKeyMap}";
|
||||
system.stateVersion = "23.11"; # Do not change!
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
options.tailscale.enable = lib.mkEnableOption "Tailscale";
|
||||
|
||||
config.services.tailscale = lib.mkIf config.tailscale.enable {
|
||||
enable = true;
|
||||
package = pkgs.tailscale;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
username,
|
||||
host,
|
||||
profile,
|
||||
system,
|
||||
gitUsername,
|
||||
shell,
|
||||
extraMonitorSettings,
|
||||
keyboardLayout,
|
||||
gitEmail,
|
||||
location,
|
||||
stylixImage,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = false;
|
||||
backupFileExtension = "backup-nixos";
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
username
|
||||
host
|
||||
profile
|
||||
system
|
||||
extraMonitorSettings
|
||||
shell
|
||||
keyboardLayout
|
||||
gitEmail
|
||||
gitUsername
|
||||
location
|
||||
stylixImage
|
||||
;
|
||||
};
|
||||
users.${username} = {
|
||||
imports = [
|
||||
./../home
|
||||
../../hosts/${host}/home-modules.nix
|
||||
# inputs.noctalia.homeModules.default
|
||||
];
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "25.11";
|
||||
pointerCursor.enable = true;
|
||||
shell.enableFishIntegration =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
};
|
||||
};
|
||||
};
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "${gitUsername}";
|
||||
extraGroups = [
|
||||
"adbusers"
|
||||
"docker" # access to docker as non-root
|
||||
"libvirtd" # Virt manager/QEMU access
|
||||
"lp"
|
||||
"networkmanager"
|
||||
"scanner"
|
||||
"wheel" # sudo access
|
||||
"vboxusers" # Virtual Box
|
||||
"gamemode"
|
||||
"video"
|
||||
"lpadmin"
|
||||
"dialout"
|
||||
];
|
||||
shell = with pkgs; (
|
||||
if shell == "fish"
|
||||
then fish
|
||||
else bash
|
||||
);
|
||||
ignoreShellProgramCheck = true;
|
||||
linger = true;
|
||||
};
|
||||
};
|
||||
nix.settings.allowed-users = ["${username}"];
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
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,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.virtualbox.enable = lib.mkEnableOption "Enable VirtualBox";
|
||||
|
||||
config.virtualisation.virtualbox.host = lib.mkIf config.virtualbox.enable {
|
||||
enable = true;
|
||||
package = pkgs.virtualbox;
|
||||
enableKvm = true;
|
||||
enableHardening = true;
|
||||
enableExtensionPack = false;
|
||||
addNetworkInterface = false;
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.virualization.enable = lib.mkEnableOption "Enable QEMU/KVM";
|
||||
|
||||
config = lib.mkIf config.virualization.enable {
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
services = {
|
||||
qemuGuest.enable = true;
|
||||
spice-vdagentd.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [pkgs.hyprland];
|
||||
xdgOpenUsePortal = true;
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{keyboardLayout, ...}: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "${keyboardLayout}";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{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 = {};
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.amdgpu;
|
||||
in {
|
||||
options.drivers.amdgpu = {
|
||||
enable = mkEnableOption "Enable AMD Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.tmpfiles.rules = ["L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"];
|
||||
services.xserver.videoDrivers = ["amdgpu"];
|
||||
environment.systemPackages = with pkgs; [rocmPackages.rocm-smi];
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./amd-drivers.nix
|
||||
./intel-drivers.nix
|
||||
./local-hardware-clock.nix
|
||||
./nvidia-drivers.nix
|
||||
./nvidia-prime-drivers.nix
|
||||
./vm-guest-services.nix
|
||||
];
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.intel;
|
||||
in {
|
||||
options.drivers.intel = {
|
||||
enable = mkEnableOption "Enable Intel Graphics Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# OpenGL
|
||||
hardware.graphics = {
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.hardware-clock;
|
||||
in {
|
||||
options.local.hardware-clock = {
|
||||
enable = mkEnableOption "Change Hardware Clock To Local Time";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {time.hardwareClockInLocalTime = true;};
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia;
|
||||
in {
|
||||
options.drivers.nvidia = {
|
||||
enable = mkEnableOption "Enable Nvidia Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvidia-docker
|
||||
];
|
||||
hardware = {
|
||||
nvidia-container-toolkit.enable = true;
|
||||
nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
# Making nvidia docker toolkit work:
|
||||
#
|
||||
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
|
||||
#
|
||||
# sudo nvidia-ctk cdi list
|
||||
#
|
||||
# sudo tee /etc/docker/daemon.json > /dev/null <<EOF
|
||||
# {
|
||||
# "features": {
|
||||
# "cdi": true
|
||||
# }
|
||||
# }
|
||||
# EOF
|
||||
#
|
||||
# docker run --device nvidia.com/gpu=all
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia-prime;
|
||||
in {
|
||||
options.drivers.nvidia-prime = {
|
||||
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
|
||||
intelBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:1:0:0";
|
||||
};
|
||||
nvidiaBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:0:2:0";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
hardware.nvidia = {
|
||||
prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
# Make sure to use the correct Bus ID values for your system!
|
||||
intelBusId = "${cfg.intelBusID}";
|
||||
nvidiaBusId = "${cfg.nvidiaBusID}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.vm.guest-services;
|
||||
in {
|
||||
options.vm.guest-services = {
|
||||
enable = mkEnableOption "Enable Virtual Machine Guest Services";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
services.spice-webdavd.enable = false; # Causes navfs2 build failure invalid neon version 9-12-25
|
||||
};
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.anki.enable = lib.mkEnableOption "Anki";
|
||||
|
||||
config.programs.anki = lib.mkIf config.anki.enable {
|
||||
enable = true;
|
||||
package = pkgs.anki;
|
||||
language = "pl_PL";
|
||||
style = "native";
|
||||
profiles."${username}" = {
|
||||
default = true;
|
||||
sync = {
|
||||
username = username;
|
||||
url = "https://ass.garandplg.com/";
|
||||
autoSync = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.bash.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upd-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --flake /home/${username}/garandos";
|
||||
upd-pkgs = "sudo nix flake update --flake /home/${username}/garandos nixpkgs";
|
||||
upd-pkgs-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --flake /home/${username}/garandos nixpkgs";
|
||||
upd-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upg = "nh os switch -H ${host} -d always";
|
||||
upg-upd = "nh os switch -H ${host} --update -d always";
|
||||
upg-bt = "nh os boot -H ${host} -d always";
|
||||
upg-ts = "nh os test -H ${host} -d always";
|
||||
upg-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";
|
||||
dr = "docker compose down && docker compose up -d";
|
||||
dbr = "docker compose down && docker compose up --build -d";
|
||||
|
||||
# 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";
|
||||
ff = "fastfetch";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
# Navigation aliases
|
||||
"~" = "cd ~";
|
||||
".." = "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 ";
|
||||
|
||||
# Count all files (recursively) in the current folder
|
||||
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
|
||||
|
||||
# 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";
|
||||
|
||||
# Show all logs in /var/log
|
||||
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
|
||||
|
||||
# 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-hs = "kssh hp-t640-homeserver-headscale";
|
||||
ssh-server = "ssh hp-t640-homeserver";
|
||||
ssh-server-hs = "ssh hp-t640-homeserver-headscale";
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{shell, ...}: {
|
||||
programs.bash = {
|
||||
enable =
|
||||
if shell == "bash"
|
||||
then true
|
||||
else false;
|
||||
enableCompletion = true;
|
||||
# initExtra = ''
|
||||
# fastfetch
|
||||
# '';
|
||||
};
|
||||
imports = [
|
||||
./aliases.nix
|
||||
./functions.nix
|
||||
];
|
||||
}
|
||||
@@ -1,161 +0,0 @@
|
||||
_: {
|
||||
programs.bash.bashrcExtra = ''
|
||||
# Quick directory creation and navigation
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# Extract various archive formats
|
||||
extract() {
|
||||
for archive in "$@"; do
|
||||
if [ -f "$archive" ]; then
|
||||
case "$archive" in
|
||||
*.tar.bz2) tar xvjf "$archive" ;;
|
||||
*.tar.gz) tar xvzf "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.tar) tar xvf "$archive" ;;
|
||||
*.tbz2) tar xvjf "$archive" ;;
|
||||
*.tgz) tar xvzf "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*) echo "don't know how to extract '$archive'..." ;;
|
||||
esac
|
||||
else
|
||||
echo "'$archive' is not a valid file!"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Find files quickly
|
||||
ff() {
|
||||
find . -name "*$1*" -type f
|
||||
}
|
||||
|
||||
# Find directories quickly
|
||||
fd() {
|
||||
find . -name "*$1*" -type d
|
||||
}
|
||||
|
||||
# IP address lookup
|
||||
alias whatismyip="whatsmyip"
|
||||
function whatsmyip () {
|
||||
# Internal IP Lookup.
|
||||
if command -v ip &> /dev/null; then
|
||||
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}'
|
||||
fi
|
||||
|
||||
# External IP Lookup
|
||||
echo -n "External IP: "
|
||||
curl -4 ifconfig.me
|
||||
}
|
||||
|
||||
# Searches for text in all files in the current folder
|
||||
ftext() {
|
||||
# -i case-insensitive
|
||||
# -I ignore binary files
|
||||
# -H causes filename to be printed
|
||||
# -r recursive search
|
||||
# -n causes line number to be printed
|
||||
# optional: -F treat search term as a literal, not a regular expression
|
||||
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
||||
grep -iIHrn --color=always "$1" . | less -r
|
||||
}
|
||||
|
||||
# Copy file with a progress bar
|
||||
cpp() {
|
||||
set -e
|
||||
strace -q -ewrite cp -- "$1" "$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' "$1")" count=0
|
||||
}
|
||||
|
||||
# Copy and go to the directory
|
||||
cpg() {
|
||||
if [ -d "$2" ]; then
|
||||
cp "$1" "$2" && cd "$2"
|
||||
else
|
||||
cp "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Move and go to the directory
|
||||
mvg() {
|
||||
if [ -d "$2" ]; then
|
||||
mv "$1" "$2" && cd "$2"
|
||||
else
|
||||
mv "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create and go to the directory
|
||||
mkdirg() {
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
}
|
||||
|
||||
# Goes up a specified number of directories (i.e. up 4)
|
||||
up() {
|
||||
local d=""
|
||||
limit=$1
|
||||
for ((i = 1; i <= limit; i++)); do
|
||||
d=$d/..
|
||||
done
|
||||
d=$(echo $d | sed 's/^\///')
|
||||
if [ -z "$d" ]; then
|
||||
d=..
|
||||
fi
|
||||
cd $d
|
||||
}
|
||||
|
||||
# Automatically do an ls after each cd, z, or zoxide
|
||||
cd ()
|
||||
{
|
||||
if [ -n "$1" ]; then
|
||||
builtin cd "$@" && ls
|
||||
else
|
||||
builtin cd ~ && ls
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns the last 2 fields of the working directory
|
||||
pwdtail() {
|
||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||
}
|
||||
|
||||
ffmpeg_dl() {
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo "Usage: ffmpeg_dl <url> <name> <fs_path>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local url="$1"
|
||||
local name="$2"
|
||||
local fs_path="$3"
|
||||
|
||||
mkdir -p "$fs_path"
|
||||
|
||||
local output="${"$"}{fs_path}/${"$"}{name}.mp4"
|
||||
|
||||
ffmpeg -i "$url" -c copy "$output"
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
style = "full";
|
||||
theme = lib.mkForce "base16";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman
|
||||
batpipe
|
||||
batgrep
|
||||
];
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
MANROFFOPT = "-c";
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.btop.enable = lib.mkEnableOption "Btop";
|
||||
|
||||
config.programs.btop = lib.mkIf config.btop.enable {
|
||||
enable = true;
|
||||
package = pkgs.btop.override {
|
||||
rocmSupport = true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
settings = {
|
||||
rounded_corners = true;
|
||||
proc_tree = true;
|
||||
show_gpu_info = "on";
|
||||
show_uptime = true;
|
||||
show_coretemp = true;
|
||||
cpu_sensor = "auto";
|
||||
show_disks = true;
|
||||
only_physical = true;
|
||||
io_mode = true;
|
||||
io_graph_combined = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
_: {
|
||||
# programs.cargo = {
|
||||
# enable = true;
|
||||
# cargoHome = "/home/${username}/.cargo";
|
||||
# settings = {
|
||||
# registries."gitea-garandplg".index = "sparse+https://gitea.garandplg.com/api/packages/GarandPLG/cargo/";
|
||||
# net.git-fetch-with-cli = true;
|
||||
# };
|
||||
# };
|
||||
home.file.".cargo/config.toml".text = ''
|
||||
[registries]
|
||||
gitea-garandplg = { index = "sparse+https://gitea.garandplg.com/api/packages/GarandPLG/cargo/" }
|
||||
|
||||
[net]
|
||||
git-fetch-with-cli = true
|
||||
'';
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.cava.enable = lib.mkEnableOption "Cava";
|
||||
|
||||
config.programs.cava = lib.mkIf config.cava.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
bar_spacing = 1;
|
||||
bar_width = 2;
|
||||
frame_rate = 144;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
|
||||
|
||||
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
||||
# commandLineArgs = [ ];
|
||||
dictionaries = with pkgs; [
|
||||
hunspellDictsChromium.en_US
|
||||
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
|
||||
];
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extensions.nix
|
||||
];
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
_: {
|
||||
programs.chromium.extensions = [
|
||||
{
|
||||
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
|
||||
}
|
||||
{
|
||||
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
|
||||
}
|
||||
{
|
||||
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
|
||||
}
|
||||
{
|
||||
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
|
||||
}
|
||||
{
|
||||
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
|
||||
}
|
||||
{
|
||||
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
|
||||
}
|
||||
{
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.codex.enable = lib.mkEnableOption "Codex";
|
||||
|
||||
config = lib.mkIf config.codex.enable {
|
||||
home.packages = with pkgs; [
|
||||
nodejs
|
||||
bubblewrap
|
||||
];
|
||||
|
||||
programs.codex = {
|
||||
enable = true;
|
||||
package = pkgs.codex;
|
||||
mutableSettings = true;
|
||||
# skills = {
|
||||
# beads = "${pkgs.beads.src}/plugins/beads/skills/beads";
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./plugins.nix
|
||||
];
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{pkgs, ...}: let
|
||||
ponytail = pkgs.fetchFromGitHub {
|
||||
name = "ponytail";
|
||||
owner = "DietrichGebert";
|
||||
repo = "ponytail";
|
||||
tag = "v5.3.3";
|
||||
sha256 = "sha256-CY0EifTY0UVc6/FPGVJjEfYEf/8QLsINQmoYYKZYh98=";
|
||||
};
|
||||
|
||||
context-mode = pkgs.fetchFromGitHub {
|
||||
name = "context-mode";
|
||||
owner = "mksglu";
|
||||
repo = "context-mode";
|
||||
tag = "v1.0.169";
|
||||
sha256 = "sha256-1pV56ZB2aqod+C0kb5myuiWLAJ7+opiaurwZZ3BGKYk=";
|
||||
};
|
||||
|
||||
understand-anything-src = pkgs.fetchFromGitHub {
|
||||
name = "understand-anything";
|
||||
owner = "Egonex-AI";
|
||||
repo = "Understand-Anything";
|
||||
tag = "v2.9.0";
|
||||
sha256 = "sha256-nECfbp0vyFZRZX0Zg2s4ga/kYSCihJxYt9lxUHLGmFA=";
|
||||
};
|
||||
|
||||
understand-anything =
|
||||
pkgs.runCommand "understand-anything" {
|
||||
version = "2.9.0";
|
||||
nativeBuildInputs = [pkgs.jq];
|
||||
} ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${understand-anything-src}/understand-anything-plugin/. "$out/"
|
||||
mkdir -p "$out/.codex-plugin"
|
||||
jq '. + {skills: "./skills/", hooks: "./hooks/hooks.json"}' \
|
||||
"$out/.claude-plugin/plugin.json" > "$out/.codex-plugin/plugin.json"
|
||||
test -f "$out/skills/understand/SKILL.md"
|
||||
test -f "$out/hooks/hooks.json"
|
||||
'';
|
||||
in {
|
||||
programs.codex = {
|
||||
plugins = [ponytail understand-anything context-mode];
|
||||
marketplaces = {
|
||||
ponytail = ponytail;
|
||||
Understand-Anything = understand-anything-src;
|
||||
context-mode = context-mode;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./bash
|
||||
./chromium
|
||||
./codex
|
||||
./fastfetch
|
||||
./fish
|
||||
./hyprland
|
||||
./kitty
|
||||
./librewolf
|
||||
./noctalia
|
||||
# ./noctalia-shell
|
||||
./obsidian
|
||||
./opencode
|
||||
./scripts
|
||||
./vscodium
|
||||
./xdg
|
||||
./zed
|
||||
./anki.nix
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./cargo.nix
|
||||
./cava.nix
|
||||
./easyeffects.nix
|
||||
./eza.nix
|
||||
./fzf.nix
|
||||
./gh.nix
|
||||
./git.nix
|
||||
./gtk.nix
|
||||
./kdeConnect.nix
|
||||
./lutris.nix
|
||||
./mangohud.nix
|
||||
./nextcloud.nix
|
||||
./nix-search-tv.nix
|
||||
./nixpkgs.nix
|
||||
./obs-studio.nix
|
||||
./ollama.nix
|
||||
./onlyoffice.nix
|
||||
./prismlauncher.nix
|
||||
./qt.nix
|
||||
./skills.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./stylix.nix
|
||||
./swappy.nix
|
||||
./tealdeer.nix
|
||||
./vesktop.nix
|
||||
./virtmanager.nix
|
||||
./zoxide.nix
|
||||
];
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{shell, ...}: {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableFishIntegration =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
enableBashIntegration =
|
||||
if shell == "bash"
|
||||
then true
|
||||
else false;
|
||||
git = true;
|
||||
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
"--no-quotes"
|
||||
"--header" # Show header row
|
||||
"--git-ignore"
|
||||
"--icons=always"
|
||||
# "--time-style=long-iso" # ISO 8601 extended format for time
|
||||
"--classify" # append indicator (/, *, =, @, |)
|
||||
"--hyperlink" # make paths clickable in some terminals
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.fastfetch.enable = lib.mkEnableOption "FastFetch";
|
||||
|
||||
config.programs.fastfetch = lib.mkIf config.fastfetch.enable {
|
||||
enable = true;
|
||||
package = pkgs.fastfetch;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./settings
|
||||
];
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB |
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./display.nix
|
||||
./logo.nix
|
||||
./modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.display = {
|
||||
color = {
|
||||
keys = "35";
|
||||
output = "90";
|
||||
};
|
||||
separator = " ➜ ";
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.logo = {
|
||||
source = ../garandos.png;
|
||||
type = "kitty-direct";
|
||||
height = 15;
|
||||
width = 30;
|
||||
padding = {
|
||||
top = 3;
|
||||
left = 3;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,155 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.modules = [
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Hardware────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "host";
|
||||
format = "{5} {1} Type {2}";
|
||||
key = "│ PC";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
format = "{1} ({3}) @ {7} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
format = "{1} {2} @ {12} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "swap";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "disk";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
key = "│ └ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Software─────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "os";
|
||||
key = "│ OS";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "│ └ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "│ WM";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "wmtheme";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "icons";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "cursor";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminal";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminalfont";
|
||||
key = "│ └ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌───────────────────────────────Age / Uptime───────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ IN";
|
||||
text = ''
|
||||
birth_install=$(stat -c %W /)
|
||||
if [ "$birth_install" -gt 0 ]; then
|
||||
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
|
||||
else
|
||||
echo "Installation date unknown"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
text = ''
|
||||
birth_install=$(stat -c %W /)
|
||||
current=$(date +%s)
|
||||
delta=$((current - birth_install))
|
||||
delta_days=$((delta / 86400))
|
||||
echo $delta_days days
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "│ └ ";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
"break"
|
||||
];
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.fish.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upd-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --flake /home/${username}/garandos";
|
||||
upd-pkgs = "sudo nix flake update --flake /home/${username}/garandos nixpkgs";
|
||||
upd-pkgs-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --flake /home/${username}/garandos nixpkgs";
|
||||
upd-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upg = "nh os switch -H ${host} -d always";
|
||||
upg-upd = "nh os switch -H ${host} --update -d always";
|
||||
upg-bt = "nh os boot -H ${host} -d always";
|
||||
upg-ts = "nh os test -H ${host} -d always";
|
||||
upg-bd = "nh os build -H ${host} -d always";
|
||||
tui = "garandos-tui";
|
||||
ncg = "nh clean all --optimise";
|
||||
nsf = "nix-search-tv print | fzf --multi --preview 'nix-search-tv preview {}' --scheme history --bind='enter:accept' | cut -d' ' -f2 | awk '{printf \"nixpkgs#%s \", $0}' | xargs -ro nix shell";
|
||||
|
||||
# Development aliases
|
||||
## Django
|
||||
srvenv = "source .venv/bin/activate.fish";
|
||||
"..srvenv" = "source ../.venv/bin/activate.fish";
|
||||
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";
|
||||
dr = "docker compose down && docker compose up -d";
|
||||
dbr = "docker compose down && docker compose up --build -d";
|
||||
|
||||
# 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";
|
||||
ff = "fastfetch";
|
||||
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-hs = "kssh hp-t640-homeserver-headscale";
|
||||
ssh-server = "ssh hp-t640-homeserver";
|
||||
ssh-server-hs = "ssh hp-t640-homeserver-headscale";
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
shell,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
fish = {
|
||||
enable =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
package = pkgs.fish;
|
||||
generateCompletions = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
# fastfetch
|
||||
'';
|
||||
shellInit = ''
|
||||
set -gx LD_LIBRARY_PATH /etc/sane-libs $LD_LIBRARY_PATH
|
||||
'';
|
||||
};
|
||||
|
||||
nix-your-shell = {
|
||||
enable = true;
|
||||
package = pkgs.nix-your-shell;
|
||||
enableFishIntegration =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
nix-output-monitor = {
|
||||
enable = true;
|
||||
package = pkgs.nix-output-monitor;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./aliases.nix
|
||||
./functions.nix
|
||||
./plugins.nix
|
||||
];
|
||||
}
|
||||
@@ -1,236 +0,0 @@
|
||||
_: {
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{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";
|
||||
# };
|
||||
# }
|
||||
];
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{shell, ...}: {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableFishIntegration =
|
||||
if shell == "fish"
|
||||
then true
|
||||
else false;
|
||||
enableBashIntegration =
|
||||
if shell == "bash"
|
||||
then true
|
||||
else false;
|
||||
defaultOptions = [
|
||||
"--margin=1"
|
||||
"--layout=reverse"
|
||||
"--border=none"
|
||||
"--info='hidden'"
|
||||
"--header=''"
|
||||
"--prompt='/ '"
|
||||
"-i"
|
||||
"--no-bold"
|
||||
"--bind='enter:execute(nano {})'"
|
||||
"--preview='bat --style=numbers --color=always --line-range :500 {}'"
|
||||
"--preview-window=right:60%:wrap"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
gitUsername,
|
||||
...
|
||||
}: {
|
||||
programs.gh = {
|
||||
enable = true;
|
||||
package = pkgs.gh;
|
||||
hosts."github.com" = {
|
||||
git_protocol = "https";
|
||||
users = [
|
||||
"${gitUsername}"
|
||||
];
|
||||
user = "${gitUsername}";
|
||||
};
|
||||
settings = {
|
||||
git_protocol = "https";
|
||||
version = "1";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
gitUsername,
|
||||
gitEmail,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "${gitUsername}";
|
||||
email = "${gitEmail}";
|
||||
};
|
||||
push.default = "simple";
|
||||
credential.helper = "cache --timeout=7200";
|
||||
init.defaultBranch = "main";
|
||||
log = {
|
||||
decorate = "full";
|
||||
date = "iso";
|
||||
};
|
||||
merge.conflictStyle = "diff3";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
}
|
||||
@@ -1,200 +0,0 @@
|
||||
{...}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
config.animations.enabled = true;
|
||||
curve = [
|
||||
{
|
||||
_args = [
|
||||
"linear"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0 0] [1 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"md3_standard"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.2 0] [0 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"md3_decel"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.05 0.7] [0.1 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"md3_accel"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.3 0] [0.8 0.15]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"overshot"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.05 0.9] [0.1 1.1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"crazyshot"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.1 1.5] [0.76 0.92]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"hyprnostretch"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.05 0.9] [0.1 1.0]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"menu_decel"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.1 1] [0 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"menu_accel"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.38 0.04] [1 0.07]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"easeInOutCirc"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.85 0] [0.15 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"easeOutCirc"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0 0.55] [0.45 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"easeOutExpo"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.16 1] [0.3 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"softAcDecel"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.26 0.26] [0.15 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"md2"
|
||||
{
|
||||
type = "bezier";
|
||||
points = [[0.4 0] [0.2 1]];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
animation = [
|
||||
{
|
||||
leaf = "windows";
|
||||
enabled = true;
|
||||
speed = 3;
|
||||
bezier = "md3_decel";
|
||||
style = "popin 60%";
|
||||
}
|
||||
{
|
||||
leaf = "windowsIn";
|
||||
enabled = true;
|
||||
speed = 3;
|
||||
bezier = "md3_decel";
|
||||
style = "popin 60%";
|
||||
}
|
||||
{
|
||||
leaf = "windowsOut";
|
||||
enabled = true;
|
||||
speed = 3;
|
||||
bezier = "md3_accel";
|
||||
style = "popin 60%";
|
||||
}
|
||||
{
|
||||
leaf = "border";
|
||||
enabled = true;
|
||||
speed = 10;
|
||||
bezier = "default";
|
||||
}
|
||||
{
|
||||
leaf = "fade";
|
||||
enabled = true;
|
||||
speed = 3;
|
||||
bezier = "md3_decel";
|
||||
}
|
||||
{
|
||||
leaf = "layersIn";
|
||||
enabled = true;
|
||||
speed = 3;
|
||||
bezier = "menu_decel";
|
||||
style = "slide";
|
||||
}
|
||||
{
|
||||
leaf = "layersOut";
|
||||
enabled = true;
|
||||
speed = 1.6;
|
||||
bezier = "menu_accel";
|
||||
}
|
||||
{
|
||||
leaf = "fadeLayersIn";
|
||||
enabled = true;
|
||||
speed = 2;
|
||||
bezier = "menu_decel";
|
||||
}
|
||||
{
|
||||
leaf = "fadeLayersOut";
|
||||
enabled = true;
|
||||
speed = 4.5;
|
||||
bezier = "menu_accel";
|
||||
}
|
||||
{
|
||||
leaf = "workspaces";
|
||||
enabled = true;
|
||||
speed = 7;
|
||||
bezier = "menu_decel";
|
||||
style = "slide";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,856 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
|
||||
|
||||
mainBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + A"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"anki\")")
|
||||
{description = "Flashcard learning application";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + B"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle launcher \\\"/bw \\\"\")")
|
||||
{description = "Password manager";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + C"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"chromium\")")
|
||||
{description = "Ungoogled Chromium";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + D"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"vesktop\")")
|
||||
{description = "Discord client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + E"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle launcher \\\"/emo \\\"\")")
|
||||
{description = "Emoji picker";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + Escape"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg session lock\")")
|
||||
{description = "Lock the screen";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + G"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"affinity-v3\")")
|
||||
{description = "Graphics editor";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + H"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"helium\")")
|
||||
{description = "Helium web browser";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + I"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"iotas\")")
|
||||
{description = "Note-taking app";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + J"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"Jan\")")
|
||||
{description = "Local AI chat interface";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + K"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"gnome-calculator\")")
|
||||
{description = "Scientific calculator";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + L"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"logseq\")")
|
||||
{description = "Knowledge management tool";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + M"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/messenger.desktop\")")
|
||||
{description = "Facebook Messenger client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + N"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/garandcloud.desktop\")")
|
||||
{description = "GarandCloud client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + O"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"onlyoffice-desktopeditors\")")
|
||||
{description = "Office suite";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + P"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"plex-desktop\")")
|
||||
{description = "Plex media player";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + R"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg plugin noctalia/screen_recorder:service all replay-save\")")
|
||||
{description = "Save Replay";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + Return"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"kitty\")")
|
||||
{description = "Kitty terminal";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + S"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"steam\")")
|
||||
{description = "Steam Game launcher";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + T"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"thunar\")")
|
||||
{description = "File manager";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + V"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"codium\")")
|
||||
{description = "VS Codium";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + W"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"librewolf\")")
|
||||
{description = "Main Web browser (Librewolf)";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + Z"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"zeditor\")")
|
||||
{description = "Zed IDE";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
shiftBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + C"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/claude.desktop\")")
|
||||
{description = "Claude AI chat";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + E"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"evolution\")")
|
||||
{description = "Personal information management application";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + Escape"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle session\")")
|
||||
{description = "Open Session Menu";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + G"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/chatgpt.desktop\")")
|
||||
{description = "ChatGPT AI chat";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + J"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/jellyfinClient.desktop\")")
|
||||
{description = "Jellyfin PWA";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + K"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle kenn/keybind-cheatsheet:cheatsheet\")")
|
||||
{description = "Toggle keybind cheatsheet";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + M"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"plexamp\")")
|
||||
{description = "Music player for Plex";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + N"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"nextcloud\")")
|
||||
{description = "Nextcloud desktop sync client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + O"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"obs\")")
|
||||
{description = "Open Broadcaster Software";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + P"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"pavucontrol\")")
|
||||
{description = "Toggle volume control panel";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + R"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg config-reload\")")
|
||||
{description = "Restart Noctalia shell";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + Return"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle launcher\")")
|
||||
{description = "Toggle application launcher";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + S"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg screenshot-region\")")
|
||||
{description = "Take screenshot";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + T"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"tutanota-desktop\")")
|
||||
{description = "Tutanota encrypted email client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + V"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle clipboard\")")
|
||||
{description = "Open clipboard manager";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
altBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + C"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle control-center [tab]\")")
|
||||
{description = "Toggle control center";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + F"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"finamp\")")
|
||||
{description = "Jellyfin music client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + G"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/glance.desktop\")")
|
||||
{description = "Glance server panel";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + K"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"kdenlive\")")
|
||||
{description = "Video editing software";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + M"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/mastodon.desktop\")")
|
||||
{description = "Mastodon social network client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + N"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle avivbintangaringga/nix-monitor:panel\")")
|
||||
{description = "Open nix-monitor";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + O"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"obsidian\")")
|
||||
{description = "Notes app";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + P"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg settings-open\")")
|
||||
{description = "Open settings panel";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + R"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg plugin noctalia/screen_recorder:service all replay-toggle\")")
|
||||
{description = "Toggle Replay";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + S"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"slack\")")
|
||||
{description = "Slack team communication tool";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + T"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"gedit\")")
|
||||
{description = "GNOME text editor";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + W"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle wallpaper\")")
|
||||
{description = "Toggle wallpaper";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
controlBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + C"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg power-cycle\")")
|
||||
{description = "Cycle through power profiles";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + F"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle nightwatch75/file-search:panel\")")
|
||||
{description = "File search";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + G"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"gimp\")")
|
||||
{description = "GNU Image Manipulation Program";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + M"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"mattermost-desktop\")")
|
||||
{description = "Mattermost team chat client";}
|
||||
];
|
||||
}
|
||||
# {
|
||||
# _args = [
|
||||
# "SUPER + CONTROL + N"
|
||||
# (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia-shell ipc call plugin:ntfy-notifications refresh\")")
|
||||
# {description = "Refresh ntfy";}
|
||||
# ];
|
||||
# }
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + O"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"dex ${desktopEntriesPath}/openWebUI.desktop\")")
|
||||
{description = "My own AI chat interface";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + R"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg plugin noctalia/screen_recorder:service all toggle\")")
|
||||
{description = "Toogle screen recording";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + S"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"signal-desktop\")")
|
||||
{description = "Signal encrypted messaging";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + T"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"tsukimi\")")
|
||||
{description = "A simple Emby/Jellyfin Client";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + P"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg panel-toggle oldirtty/color_picker:panel\")")
|
||||
{description = "Pick color from screen";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
windowManagementBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + F"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({ action = \"toggle\" })")
|
||||
{description = "Toggle fullscreen mode";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + Q"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.close()")
|
||||
{description = "Close active window";}
|
||||
];
|
||||
}
|
||||
# {
|
||||
# _args = [
|
||||
# "SUPER + SHIFT + I"
|
||||
# (lib.generators.mkLuaInline "hl.dsp.window.float({ action = \"togglesplit\" })")
|
||||
# {description = "Toggle split layout";}
|
||||
# ];
|
||||
# }
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + F"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.float({ action = \"toggle\" })")
|
||||
{description = "Toggle floating mode";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
windowFocusBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + down"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"down\" })")
|
||||
{description = "Move focus down";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + left"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"left\" })")
|
||||
{description = "Move focus left";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + right"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"right\" })")
|
||||
{description = "Move focus right";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + up"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"up\" })")
|
||||
{description = "Move focus up";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
windowMovementBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + down"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ direction = \"down\" })")
|
||||
{description = "Move window down";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + left"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ direction = \"left\" })")
|
||||
{description = "Move window left";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + right"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ direction = \"right\" })")
|
||||
{description = "Move window right";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + up"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ direction = \"up\" })")
|
||||
{description = "Move window up";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
windowSwapBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + down"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({ direction = \"down\" })")
|
||||
{description = "Swap active window with window below";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + left"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({ direction = \"left\" })")
|
||||
{description = "Swap active window with window on the left";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + right"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({ direction = \"right\" })")
|
||||
{description = "Swap active window with window on the right";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + ALT + up"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({ direction = \"up\" })")
|
||||
{description = "Swap active window with window above";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
workspacesSwitchBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 0"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 10 })")
|
||||
{description = "Switch to workspace 10";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 1"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 1 })")
|
||||
{description = "Switch to workspace 1";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 2"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 2 })")
|
||||
{description = "Switch to workspace 2";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 3"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 3 })")
|
||||
{description = "Switch to workspace 3";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 4"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 4 })")
|
||||
{description = "Switch to workspace 4";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 5"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 5 })")
|
||||
{description = "Switch to workspace 5";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 6"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 6 })")
|
||||
{description = "Switch to workspace 6";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 7"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 7 })")
|
||||
{description = "Switch to workspace 7";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 8"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 8 })")
|
||||
{description = "Switch to workspace 8";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + 9"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = 9 })")
|
||||
{description = "Switch to workspace 9";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + left"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = \"e-1\" })")
|
||||
{description = "Switch to previous workspace";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + CONTROL + right"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = \"e+1\" })")
|
||||
{description = "Switch to next workspace";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + mouse_down"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = \"e+1\" })")
|
||||
{description = "Switch to next workspace with mouse";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + mouse_up"
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({ workspace = \"e-1\" })")
|
||||
{description = "Switch to previous workspace with mouse";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
workspacesSwapBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 0"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 10 })")
|
||||
{description = "Move active window to workspace 10";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 1"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 1 })")
|
||||
{description = "Move active window to workspace 1";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 2"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 2 })")
|
||||
{description = "Move active window to workspace 2";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 3"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 3 })")
|
||||
{description = "Move active window to workspace 3";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 4"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 4 })")
|
||||
{description = "Move active window to workspace 4";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 5"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 5 })")
|
||||
{description = "Move active window to workspace 5";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 6"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 6 })")
|
||||
{description = "Move active window to workspace 6";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 7"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 7 })")
|
||||
{description = "Move active window to workspace 7";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 8"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 8 })")
|
||||
{description = "Move active window to workspace 8";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + SHIFT + 9"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = 9 })")
|
||||
{description = "Move active window to workspace 9";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
systemMediaAndControlsBinds = [
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioLowerVolume"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg volume-down\")")
|
||||
{description = "Lower system volume";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioMute"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg volume-mute\")")
|
||||
{description = "Mute audio output";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioMicMute"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg mic-mute\")")
|
||||
{description = "Mute audio input";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioNext"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg media next\")")
|
||||
{description = "Next media track";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioPlay"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg media toggle\")")
|
||||
{description = "Play/Pause media";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioPrev"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg media previous\")")
|
||||
{description = "Previous media track";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86AudioRaiseVolume"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg volume-up\")")
|
||||
{description = "Raise system volume";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86MonBrightnessDown"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg brightness-down\")")
|
||||
{description = "Decrease screen brightness";}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XF86MonBrightnessUp"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"noctalia msg brightness-up\")")
|
||||
{description = "Increase screen brightness";}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
mouseBinds = [
|
||||
{
|
||||
_args = [
|
||||
"SUPER + mouse:272"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.drag()")
|
||||
{
|
||||
mouse = true;
|
||||
description = "Drag active window";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SUPER + mouse:273"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.resize()")
|
||||
{
|
||||
mouse = true;
|
||||
description = "Resize active window";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
toLua = lib.generators.toLua {};
|
||||
|
||||
# Noctalia scans numbered Lua headings and bare description fields.
|
||||
mkBlock = header: binds:
|
||||
lib.concatLines (
|
||||
["-- ${header}"]
|
||||
++ map (bind: let
|
||||
args = lib.concatMapStringsSep ", " toLua (lib.take 2 bind._args);
|
||||
options = lib.concatStringsSep ", " (
|
||||
lib.mapAttrsToList (name: value: "${name} = ${toLua value}") (builtins.elemAt bind._args 2)
|
||||
);
|
||||
in "hl.bind(${args}, { ${options} })")
|
||||
binds
|
||||
);
|
||||
in {
|
||||
wayland.windowManager.hyprland.extraConfig = lib.concatLines [
|
||||
(mkBlock "1. MAIN APPS" mainBinds)
|
||||
(mkBlock "2. SHIFT APPS" shiftBinds)
|
||||
(mkBlock "3. ALT APPS" altBinds)
|
||||
(mkBlock "4. CONTROL APPS" controlBinds)
|
||||
(mkBlock "5. WINDOW MANAGEMENT" windowManagementBinds)
|
||||
(mkBlock "6. WINDOWS FOCUS" windowFocusBinds)
|
||||
(mkBlock "7. WINDOWS MOVEMENT" windowMovementBinds)
|
||||
(mkBlock "8. WINDOWS SWAP" windowSwapBinds)
|
||||
(mkBlock "9. WORKSPACES SWITCH" workspacesSwitchBinds)
|
||||
(mkBlock "10. WORKSPACES SWAP" workspacesSwapBinds)
|
||||
(mkBlock "11. SYSTEM MEDIA & CONTROLS" systemMediaAndControlsBinds)
|
||||
(mkBlock "12. MOUSE" mouseBinds)
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./animations.nix
|
||||
./binds.nix
|
||||
./env.nix
|
||||
./exec-once.nix
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./pyprland.nix
|
||||
./windowrules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
{...}: {
|
||||
wayland.windowManager.hyprland.settings.env = [
|
||||
{
|
||||
_args = [
|
||||
"NIXOS_OZONE_WL"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"NIXPKGS_ALLOW_UNFREE"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XDG_CURRENT_DESKTOP"
|
||||
"Hyprland"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XDG_SESSION_TYPE"
|
||||
"wayland"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XDG_SESSION_DESKTOP"
|
||||
"Hyprland"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"GDK_BACKEND"
|
||||
"wayland, x11"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"CLUTTER_BACKEND"
|
||||
"wayland"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"QT_QPA_PLATFORM"
|
||||
"wayland;xcb"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"SDL_VIDEODRIVER"
|
||||
"x11"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"MOZ_ENABLE_WAYLAND"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"ELECTRON_OZONE_PLATFORM_HINT"
|
||||
"wayland"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"GDK_SCALE"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"QT_SCALE_FACTOR"
|
||||
"1"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"EDITOR"
|
||||
"nano"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"TERMINAL"
|
||||
"kitty"
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
"XDG_TERMINAL_EMULATOR"
|
||||
"kitty"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
Loaded 100 of 240 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user