Compare commits
1 Commits
98ed85c4b0
...
demo
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f1331185a |
11
README.md
11
README.md
@@ -1,11 +0,0 @@
|
|||||||
# Eclypse's Nix Config
|
|
||||||
|
|
||||||
My personal nixos configuration. Utilizes the dendritic pattern to manage my devices:
|
|
||||||
|
|
||||||
- Vanta: Framework 13 (12th Gen Intel)
|
|
||||||
- Onyx: Desktop Workstation
|
|
||||||
- Umbra: Mackbook (2015)
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
- Look into Kitty terminal as replacement for Foot & Zellij
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 622 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.2 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 826 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.0 MiB |
688
flake.lock
generated
688
flake.lock
generated
@@ -10,11 +10,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770165109,
|
"lastModified": 1754433428,
|
||||||
"narHash": "sha256-9VnK6Oqai65puVJ4WYtCTvlJeXxMzAp/69HhQuTdl/I=",
|
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "b027ee29d959fda4b60b57566d64c98a202e0feb",
|
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -23,57 +23,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"agenix-rekey": {
|
|
||||||
"inputs": {
|
|
||||||
"devshell": "devshell",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1774522439,
|
|
||||||
"narHash": "sha256-GvINrdGznE7mGlDNjW0/PMgOJlC+Nl9MkfxALB4QvWs=",
|
|
||||||
"owner": "oddlama",
|
|
||||||
"repo": "agenix-rekey",
|
|
||||||
"rev": "8b9c179bc1300ab130c90f2d25426bf0e7a2b58d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oddlama",
|
|
||||||
"repo": "agenix-rekey",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"assets": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"path": "./assets",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"path": "./assets",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"parent": []
|
|
||||||
},
|
|
||||||
"crane": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765739568,
|
|
||||||
"narHash": "sha256-gQYx35Of4UDKUjAYvmxjUEh/DdszYeTtT6MDin4loGE=",
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"rev": "67d2baff0f9f677af35db61b32b5df6863bcc075",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"darwin": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -96,83 +45,23 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devshell": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"agenix-rekey",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728330715,
|
|
||||||
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "devshell",
|
|
||||||
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "devshell",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1751685974,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||||
"owner": "edolstra",
|
"ref": "refs/heads/main",
|
||||||
"repo": "flake-compat",
|
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"revCount": 92,
|
||||||
"type": "github"
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "edolstra",
|
"type": "git",
|
||||||
"repo": "flake-compat",
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"agenix-rekey",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733312601,
|
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1772408722,
|
|
||||||
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_3": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nur",
|
"nur",
|
||||||
@@ -193,61 +82,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-parts_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"nixpkgs-lib": [
|
||||||
},
|
"nvf",
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"agenix-rekey",
|
|
||||||
"pre-commit-hooks",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709087332,
|
"lastModified": 1756770412,
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "gitignore.nix",
|
"repo": "flake-parts",
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "gitignore.nix",
|
"repo": "flake-parts",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -279,11 +131,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774738535,
|
"lastModified": 1757698511,
|
||||||
"narHash": "sha256-2jfBEZUC67IlnxO5KItFCAd7Oc+1TvyV/jQlR+2ykGQ=",
|
"narHash": "sha256-UqHHGydF/q3jfYXCpvYLA0TWtvByOp1NwOKCUjhYmPs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "769e07ef8f4cf7b1ec3b96ef015abec9bc6b1e2a",
|
"rev": "a3fcc92180c7462082cd849498369591dfb20855",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -292,123 +144,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"import-tree": {
|
"mnw": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773693634,
|
"lastModified": 1756659871,
|
||||||
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
|
"narHash": "sha256-v6Rh4aQ6RKjM2N02kK9Usn0Ix7+OY66vNpeklc1MnGE=",
|
||||||
"owner": "vic",
|
"owner": "Gerg-L",
|
||||||
"repo": "import-tree",
|
"repo": "mnw",
|
||||||
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
|
"rev": "ed6cc3e48557ba18266e598a5ebb6602499ada16",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "vic",
|
"owner": "Gerg-L",
|
||||||
"repo": "import-tree",
|
"repo": "mnw",
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"monique": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775640310,
|
|
||||||
"narHash": "sha256-AYo7jk6xE2NX9IihdV1ec65eUMGyZomXRDQIdsOccnc=",
|
|
||||||
"owner": "ToRvaLDz",
|
|
||||||
"repo": "monique",
|
|
||||||
"rev": "1c22dacf89966bedcb21fe01864158b401395f3f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ToRvaLDz",
|
|
||||||
"repo": "monique",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"niri": {
|
|
||||||
"inputs": {
|
|
||||||
"niri-stable": "niri-stable",
|
|
||||||
"niri-unstable": [
|
|
||||||
"niri-blur"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
|
||||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775042939,
|
|
||||||
"narHash": "sha256-qcCBdnnKj8g/TiYmfDl3LmTdLYVPxr08yht9JaTXW00=",
|
|
||||||
"owner": "sodiboo",
|
|
||||||
"repo": "niri-flake",
|
|
||||||
"rev": "0e4df2c05361ed0f5e8738335369b304a0962b02",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "sodiboo",
|
|
||||||
"repo": "niri-flake",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"niri-blur": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775673716,
|
|
||||||
"narHash": "sha256-nFScVrzNWXSbovyZOT5r5dgeHxgSGyksfRXbFD/tbqM=",
|
|
||||||
"owner": "niri-wm",
|
|
||||||
"repo": "niri",
|
|
||||||
"rev": "8bb271153260acdb2f78f1ef874da9b8b13f607a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "niri-wm",
|
|
||||||
"ref": "wip/branch",
|
|
||||||
"repo": "niri",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"niri-stable": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1756556321,
|
|
||||||
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
|
||||||
"owner": "YaLTeR",
|
|
||||||
"repo": "niri",
|
|
||||||
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "YaLTeR",
|
|
||||||
"ref": "v25.08",
|
|
||||||
"repo": "niri",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-jmu-cs345": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745564874,
|
|
||||||
"narHash": "sha256-WrHuoXd3hiZ7sbrPKF8mJD6jPemwzM5swuDrDkVXlV0=",
|
|
||||||
"owner": "Eclypsed",
|
|
||||||
"repo": "nix-jmu-cs345",
|
|
||||||
"rev": "323dd2c148eb13fbbae5da48d8a0ed61f47c31ad",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Eclypsed",
|
|
||||||
"repo": "nix-jmu-cs345",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774777275,
|
"lastModified": 1757103352,
|
||||||
"narHash": "sha256-qogBiYFq8hZusDPeeKRqzelBAhZvREc7Cl+qlewGUCg=",
|
"narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "b8f81636927f1af0cca812d22c876bad0a883ccd",
|
"rev": "11b2a10c7be726321bb854403fdeec391e798bf0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -419,11 +176,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775423009,
|
"lastModified": 1757487488,
|
||||||
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
|
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
|
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -433,126 +190,19 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1772328832,
|
|
||||||
"narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775002709,
|
|
||||||
"narHash": "sha256-d3Yx83vSrN+2z/loBh4mJpyRqr9aAJqlke4TkpFmRJA=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "bcd464ccd2a1a7cd09aa2f8d4ffba83b761b1d0e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-25.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773389992,
|
|
||||||
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765934234,
|
|
||||||
"narHash": "sha256-pJjWUzNnjbIAMIc5gRFUuKCDQ9S1cuh3b2hKgA7Mc4A=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "af84f9d270d404c17699522fab95bbf928a2d92f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"noctalia": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"noctalia-qs": "noctalia-qs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775039613,
|
|
||||||
"narHash": "sha256-5VzBe0SOXamABAbtjNF5Y7jaMbSeVtGQRhbICoJ6izo=",
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-shell",
|
|
||||||
"rev": "7b29c11d7aaf476723af14865665cf04750f8d20",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-shell",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"noctalia-qs": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"noctalia",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems_3",
|
|
||||||
"treefmt-nix": "treefmt-nix_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1774994931,
|
|
||||||
"narHash": "sha256-WmXA8kyqvDA226DRPrXyR6bLO9VsRr4SUAYCVH6H6Ns=",
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-qs",
|
|
||||||
"rev": "b053facf8421df220d0bf2496a543b23dee3ca85",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-qs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774965252,
|
"lastModified": 1757705205,
|
||||||
"narHash": "sha256-wmrXM9Q8zgx2DEUjBqgPorjn1YSrwy89Ixo92uVnTQ0=",
|
"narHash": "sha256-8xB4M6tCmaSaAAb72plJK3H8EH/yfOMnUWzIWKg521g=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "2662849d18110617a22243480a9b474c8f8602c6",
|
"rev": "338f8cc3d30bb635459c5198e676eb123b1ff4fe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -561,96 +211,64 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages": {
|
"nvf": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"path": "./packages",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"path": "./packages",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"parent": []
|
|
||||||
},
|
|
||||||
"pre-commit-hooks": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"gitignore": "gitignore",
|
"flake-parts": "flake-parts_2",
|
||||||
|
"mnw": "mnw",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757397598,
|
||||||
|
"narHash": "sha256-v/FANUOWyeWlWCD61HDLSNO9nHnQALAtvLf2VtE1+WU=",
|
||||||
|
"owner": "notashelf",
|
||||||
|
"repo": "nvf",
|
||||||
|
"rev": "c7944a48a3c61cb3ca08ac2dc8b8de124d15dcb8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "notashelf",
|
||||||
|
"repo": "nvf",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plasma-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"agenix-rekey",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735882644,
|
"lastModified": 1756632588,
|
||||||
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
|
"narHash": "sha256-ydam6eggXf3ZwRutyCABwSbMAlX+5lW6w1SVZQ+kfSo=",
|
||||||
"owner": "cachix",
|
"owner": "nix-community",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "plasma-manager",
|
||||||
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
|
"rev": "d47428e5390d6a5a8f764808a4db15929347cd77",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cachix",
|
"owner": "nix-community",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "plasma-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"agenix-rekey": "agenix-rekey",
|
|
||||||
"assets": "assets",
|
|
||||||
"flake-parts": "flake-parts_2",
|
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"import-tree": "import-tree",
|
|
||||||
"monique": "monique",
|
|
||||||
"niri": "niri",
|
|
||||||
"niri-blur": "niri-blur",
|
|
||||||
"nix-jmu-cs345": "nix-jmu-cs345",
|
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs",
|
||||||
"noctalia": "noctalia",
|
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"packages": "packages",
|
"nvf": "nvf",
|
||||||
"secrets": "secrets",
|
"plasma-manager": "plasma-manager"
|
||||||
"zen-browser": "zen-browser",
|
|
||||||
"zjstatus": "zjstatus"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"zjstatus",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765939271,
|
|
||||||
"narHash": "sha256-7F/d+ZrTYyOxnBZcleQZjOOEWc1IMXR/CLLRLLsVtHo=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "8028944c1339469124639da276d403d8ab7929a8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"secrets": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"path": "./secrets",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"path": "./secrets",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"parent": []
|
|
||||||
},
|
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
@@ -680,156 +298,6 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"agenix-rekey",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735135567,
|
|
||||||
"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"noctalia",
|
|
||||||
"noctalia-qs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773297127,
|
|
||||||
"narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "71b125cd05fbfd78cab3e070b73544abe24c5016",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xwayland-satellite-stable": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1755491097,
|
|
||||||
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
|
||||||
"owner": "Supreeeme",
|
|
||||||
"repo": "xwayland-satellite",
|
|
||||||
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Supreeeme",
|
|
||||||
"ref": "v0.7",
|
|
||||||
"repo": "xwayland-satellite",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xwayland-satellite-unstable": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773622265,
|
|
||||||
"narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=",
|
|
||||||
"owner": "Supreeeme",
|
|
||||||
"repo": "xwayland-satellite",
|
|
||||||
"rev": "a879e5e0896a326adc79c474bf457b8b99011027",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Supreeeme",
|
|
||||||
"repo": "xwayland-satellite",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"zen-browser": {
|
|
||||||
"inputs": {
|
|
||||||
"home-manager": [
|
|
||||||
"home-manager"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775744672,
|
|
||||||
"narHash": "sha256-Qg3Wnn3WYiiii35CE9kE+XX4ooSFzupAnGC1/NjI5C8=",
|
|
||||||
"owner": "0xc000022070",
|
|
||||||
"repo": "zen-browser-flake",
|
|
||||||
"rev": "14a238beb0621977e9bf04cba68919d5650deea9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "0xc000022070",
|
|
||||||
"repo": "zen-browser-flake",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"zjstatus": {
|
|
||||||
"inputs": {
|
|
||||||
"crane": "crane",
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"rust-overlay": "rust-overlay"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773119656,
|
|
||||||
"narHash": "sha256-AE6SthrvDyUU70myW7wAq4mzQbtmK5Spng7Y/OdCdhI=",
|
|
||||||
"owner": "dj95",
|
|
||||||
"repo": "zjstatus",
|
|
||||||
"rev": "e80d508ffbff6ab6b39a481ae9986109d3c313ac",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "dj95",
|
|
||||||
"repo": "zjstatus",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
84
flake.nix
84
flake.nix
@@ -4,84 +4,42 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
||||||
import-tree.url = "github:vic/import-tree";
|
|
||||||
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
agenix = {
|
|
||||||
url = "github:ryantm/agenix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
agenix-rekey = {
|
|
||||||
url = "github:oddlama/agenix-rekey";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
nur = {
|
nur = {
|
||||||
url = "github:nix-community/NUR";
|
url = "github:nix-community/NUR";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# nvf = {
|
nvf = {
|
||||||
# url = "github:notashelf/nvf";
|
url = "github:notashelf/nvf";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# };
|
|
||||||
|
|
||||||
noctalia = {
|
|
||||||
url = "github:noctalia-dev/noctalia-shell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
niri-blur = {
|
plasma-manager = {
|
||||||
url = "github:niri-wm/niri/wip/branch";
|
url = "github:nix-community/plasma-manager";
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
niri = {
|
|
||||||
url = "github:sodiboo/niri-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.niri-unstable.follows = "niri-blur";
|
inputs.home-manager.follows = "home-manager";
|
||||||
};
|
|
||||||
|
|
||||||
monique.url = "github:ToRvaLDz/monique";
|
|
||||||
|
|
||||||
zjstatus = {
|
|
||||||
url = "github:dj95/zjstatus";
|
|
||||||
};
|
|
||||||
|
|
||||||
zen-browser = {
|
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
|
||||||
inputs = {
|
|
||||||
# IMPORTANT: To ensure compatibility with the latest Firefox version, use nixpkgs-unstable.
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nix-jmu-cs345.url = "github:Eclypsed/nix-jmu-cs345";
|
|
||||||
|
|
||||||
assets = {
|
|
||||||
flake = false;
|
|
||||||
url = "path:./assets";
|
|
||||||
};
|
|
||||||
|
|
||||||
packages = {
|
|
||||||
flake = false;
|
|
||||||
url = "path:./packages";
|
|
||||||
};
|
|
||||||
|
|
||||||
secrets = {
|
|
||||||
flake = false;
|
|
||||||
url = "path:./secrets";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
|
outputs =
|
||||||
|
{ nixpkgs, ... }@inputs:
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
host = "demo";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations.${host} = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
specialArgs = { inherit inputs host; };
|
||||||
|
modules = [
|
||||||
|
./modules/system
|
||||||
|
./hosts/${host}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
1
hosts/demo/placeholder.txt
Normal file
1
hosts/demo/placeholder.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Put host config here!
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hyprland.nix
|
|
||||||
./keybinds.nix
|
|
||||||
./monitors.nix
|
|
||||||
./pyprland.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hyprpolkitagent
|
|
||||||
hyprpicker
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = false;
|
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
||||||
portalPackage =
|
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
source = [
|
|
||||||
"${config.xdg.configHome}/hypr/monitors.conf"
|
|
||||||
"${config.xdg.configHome}/hypr/noctalia/noctalia-colors.conf"
|
|
||||||
];
|
|
||||||
|
|
||||||
# monitor = [
|
|
||||||
# "desc:BOE 0x095F,2256x1504@60.00,0x0,1"
|
|
||||||
# "desc:LG Electronics LG TV SSCR2 0x01010101,3840x2160@120.00,2256x0,1"
|
|
||||||
# ];
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
# Stolen from https://github.com/Vobledoble/nixparency-dots/
|
|
||||||
enabled = true;
|
|
||||||
bezier = [
|
|
||||||
"easeOutQuint,0.23,1,0.32,1"
|
|
||||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
|
||||||
"linear,0,0,1,1"
|
|
||||||
"almostLinear,0.5,0.5,0.75,1.0"
|
|
||||||
"quick,0.15,0,0.1,1"
|
|
||||||
];
|
|
||||||
animation = [
|
|
||||||
"global, 1, 10, default"
|
|
||||||
"border, 1, 5.39, easeOutQuint"
|
|
||||||
"windows, 1, 4.79, easeOutQuint"
|
|
||||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
|
||||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
|
||||||
"fadeIn, 1, 1.73, almostLinear"
|
|
||||||
"fadeOut, 1, 1.46, almostLinear"
|
|
||||||
"fade, 1, 3.03, quick"
|
|
||||||
"layers, 1, 3.81, easeOutQuint"
|
|
||||||
"layersIn, 1, 4, easeOutQuint, fade"
|
|
||||||
"layersOut, 1, 1.5, linear, fade"
|
|
||||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
|
||||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
|
||||||
"workspaces, 1, 1.94, almostLinear, fade"
|
|
||||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
|
||||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
debug.disable_logs = false;
|
|
||||||
|
|
||||||
general = {
|
|
||||||
gaps_in = 5;
|
|
||||||
gaps_out = 10;
|
|
||||||
border_size = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 20;
|
|
||||||
rounding_power = 2;
|
|
||||||
|
|
||||||
# active_opacity = 0.95;
|
|
||||||
# inactive_opacity = 0.85;
|
|
||||||
# fullscreen_opacity = 1.0;
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
size = 3;
|
|
||||||
passes = 2;
|
|
||||||
vibrancy = 0.1696;
|
|
||||||
new_optimizations = true;
|
|
||||||
popups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
shadow = {
|
|
||||||
enabled = true;
|
|
||||||
range = 4;
|
|
||||||
render_power = 3;
|
|
||||||
color = "rgba(1a1a1aee)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "us";
|
|
||||||
kb_options = "compose:ralt";
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
vfr = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
windowrule = {
|
|
||||||
name = "floating-terminal-dropdown";
|
|
||||||
"match:class" = "term_dropdown";
|
|
||||||
float = "on";
|
|
||||||
};
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"systemctl --user enable --now hyprpolkitagent.service"
|
|
||||||
"noctalia-shell"
|
|
||||||
"pypr"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"NIXOS_OZONE_WL, 1"
|
|
||||||
"HYPRSHOT_DIR, ${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}"
|
|
||||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
|
||||||
"XDG_SESSION_TYPE, wayland"
|
|
||||||
"XDG_SESSION_DESKTOP, Hyprland"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
exec = "hyprctl dispatch submap global";
|
|
||||||
submap = "global";
|
|
||||||
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
|
|
||||||
bind = [
|
|
||||||
"$mod, Q, killactive"
|
|
||||||
"$mod, W, exec, foot"
|
|
||||||
"$mod, S, exec, vicinae toggle"
|
|
||||||
"$mod, Escape, exec, noctalia-shell ipc call sessionMenu toggle"
|
|
||||||
|
|
||||||
# Window Movement
|
|
||||||
"$mod, left, movefocus, l"
|
|
||||||
"$mod, right, movefocus, r"
|
|
||||||
"$mod, up, movefocus, u"
|
|
||||||
"$mod, down, movefocus, d"
|
|
||||||
"$mod SHIFT, left, movewindow, l"
|
|
||||||
"$mod SHIFT, right, movewindow, r"
|
|
||||||
"$mod SHIFT, up, movewindow, u"
|
|
||||||
"$mod SHIFT, down, movewindow, d"
|
|
||||||
"$mod CTRL, left, workspace, r-1"
|
|
||||||
"$mod CTRL, right, workspace, r+1"
|
|
||||||
"$mod CTRL SHIFT, left, movetoworkspace, r-1"
|
|
||||||
"$mod CTRL SHIFT, right, movetoworkspace, r+1"
|
|
||||||
|
|
||||||
# Screenshoting
|
|
||||||
", PRINT, exec, grim -g \"$(slurp)\" - | wl-copy"
|
|
||||||
"SHIFT, PRINT, exec, wl-paste | swappy -f -"
|
|
||||||
|
|
||||||
# Media Control Keys
|
|
||||||
", XF86AudioPrev, exec, playerctl previous"
|
|
||||||
", XF86AudioPlay, exec, playerctl play-pause"
|
|
||||||
", XF86AudioNext, exec, playerctl next"
|
|
||||||
", XF86AudioMute, exec, pamixer -t"
|
|
||||||
"ALT, XF86AudioMute, exec, pamixer --default-source -t"
|
|
||||||
|
|
||||||
# Notification Center
|
|
||||||
"$mod, n, exec, noctalia-shell ipc call notifications toggleHistory"
|
|
||||||
|
|
||||||
# Scratchpads
|
|
||||||
"$mod, TAB, exec, pypr toggle term"
|
|
||||||
]
|
|
||||||
++ (
|
|
||||||
# workspaces
|
|
||||||
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
|
|
||||||
builtins.concatLists (
|
|
||||||
builtins.genList (
|
|
||||||
i:
|
|
||||||
let
|
|
||||||
ws = i + 1;
|
|
||||||
in
|
|
||||||
[
|
|
||||||
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
|
||||||
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
|
||||||
]
|
|
||||||
) 9
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
"$mod ALT, mouse:272, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindel = [
|
|
||||||
# Volume Controls
|
|
||||||
", XF86AudioRaiseVolume, exec, pamixer -i 5"
|
|
||||||
", XF86AudioLowerVolume, exec, pamixer -d 5"
|
|
||||||
"ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5"
|
|
||||||
"ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5"
|
|
||||||
|
|
||||||
# Brightness Controls
|
|
||||||
", XF86MonBrightnessUp, exec, brightnessctl set 5%+"
|
|
||||||
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.hyprdynamicmonitors.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
inputs.hyprdynamicmonitors.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
||||||
];
|
|
||||||
|
|
||||||
home.hyprdynamicmonitors = {
|
|
||||||
enable = true;
|
|
||||||
installExamples = false;
|
|
||||||
extraFlags = [
|
|
||||||
"--enable-lid-events"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
pyprland
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.configFile."hypr/pyprland.toml".text = ''
|
|
||||||
[pyprland]
|
|
||||||
plugins = ["scratchpads"]
|
|
||||||
|
|
||||||
[scratchpads.term]
|
|
||||||
command = "foot --app-id term_dropdown"
|
|
||||||
class = "term_dropdown"
|
|
||||||
animation = "fromTop"
|
|
||||||
margin = 150
|
|
||||||
size = "80% 80%"
|
|
||||||
max_size = "1920px 1080px"
|
|
||||||
multi = false
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.hypridle = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
lock_cmd = "pidof hyprlock || hyprlock --grace 10";
|
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
|
||||||
after_sleep_cmd = "hypctl dispatch dpms on";
|
|
||||||
};
|
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = 300;
|
|
||||||
on-timeout = "loginctl lock-session";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = 450;
|
|
||||||
on-timeout = "hyprctl dispatch dpms off";
|
|
||||||
on-resume = "hyprctl dispatch dpms on";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = 600;
|
|
||||||
on-timeout = "systemctl suspend";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
wallpaper,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
settings = with config.lib.stylix.colors; {
|
|
||||||
general = {
|
|
||||||
hide_cursor = true;
|
|
||||||
};
|
|
||||||
background = [
|
|
||||||
{
|
|
||||||
path = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}";
|
|
||||||
blur_size = 4;
|
|
||||||
blur_passes = 3;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
input-field = [
|
|
||||||
rec {
|
|
||||||
size = "250, 50";
|
|
||||||
outline_thickness = 3;
|
|
||||||
dots_size = 0.25;
|
|
||||||
dots_spacing = 0.4;
|
|
||||||
outer_color = "rgba(${base0F}55)";
|
|
||||||
capslock_color = outer_color;
|
|
||||||
numlock_color = outer_color;
|
|
||||||
bothlock_color = outer_color;
|
|
||||||
inner_color = "rgba(${base0F}11)";
|
|
||||||
font_color = "rgba(${base0F}ff)";
|
|
||||||
fade_on_empty = true;
|
|
||||||
placeholder_text = "<i>Password...</i>";
|
|
||||||
position = "0, -60";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
label = [
|
|
||||||
# Hours
|
|
||||||
{
|
|
||||||
text = "cmd[update:1000] echo \"<b><big> $(date +\"%H\") </big></b>\"";
|
|
||||||
color = "rgb(${base0F})";
|
|
||||||
font_size = 112;
|
|
||||||
font_family = "GeistMono Nerd Font";
|
|
||||||
position = "0, 350";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Minutes
|
|
||||||
{
|
|
||||||
text = "cmd[update:1000] echo \"<b><big> $(date +\"%M\") </big></b>\"";
|
|
||||||
color = "rgb(${base0F})";
|
|
||||||
font_size = 112;
|
|
||||||
font_family = "GeistMono Nerd Font";
|
|
||||||
position = "0, 220";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Day of the Week
|
|
||||||
{
|
|
||||||
text = "cmd[update:18000000] echo \"<b><big> \"$(date +'%A')\" </big></b>\"";
|
|
||||||
color = "rgb(${base0F})";
|
|
||||||
font_size = 22;
|
|
||||||
font_family = "JetBrainsMono Nerd Font";
|
|
||||||
position = "0, 115";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Date
|
|
||||||
{
|
|
||||||
text = "cmd[update:18000000] echo \"<b> \"$(date +'%d %b')\" </b>\"";
|
|
||||||
color = "rgb(${base0F})";
|
|
||||||
font_size = 18;
|
|
||||||
font_family = "JetBrainsMono Nerd Font";
|
|
||||||
position = "0, 85";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Temperature
|
|
||||||
{
|
|
||||||
text = "cmd[update:18000000] echo \"<b>Feels like<big> $(curl -s 'wttr.in?format=%t' | tr -d '+') </big></b>\"";
|
|
||||||
color = "rgb(${base0F})";
|
|
||||||
font_size = 18;
|
|
||||||
font_family = "GeistMono Nerd Font";
|
|
||||||
position = "0, 40";
|
|
||||||
halign = "center";
|
|
||||||
valign = "bottom";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Caps Lock Warning
|
|
||||||
{
|
|
||||||
text = "cmd[update:250] check-capslock";
|
|
||||||
color = "rgb(${base0F})";
|
|
||||||
font_size = 13;
|
|
||||||
font_family = "JetBrainsMono Nerd Font";
|
|
||||||
position = "0, -120";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.mango.hmModules.mango
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.mango = {
|
|
||||||
enable = true;
|
|
||||||
settings = ''
|
|
||||||
source=${config.xdg.configHome}/mango/noctalia.conf
|
|
||||||
|
|
||||||
monitorrule=name:eDP-1,width:2256,height:1504,refresh:59.999001,x:0,y:0,scale:1.0,vrr:0,rr:0
|
|
||||||
monitorrule=name:LG Electronics LG TV SSCR2 *,width:3840,height:2160,refresh:120.0,x:2256,y:0,scale:1.0,vrr:0,rr:0
|
|
||||||
|
|
||||||
cursor_size=16
|
|
||||||
cursor_theme=catppuccin-mocha-dark-cursors
|
|
||||||
|
|
||||||
bind=SUPER,q,killclient
|
|
||||||
bind=SUPER,w,spawn,foot
|
|
||||||
bind=SUPER,a,spawn,vicinae toggle
|
|
||||||
bind=SUPER,Escape,spawn,noctalia-shell ipc call sessionMenu toggle
|
|
||||||
bind=SUPER,n,spawn,noctalia-shell ipc call notifications toggleHistory
|
|
||||||
|
|
||||||
bind=SUPER+SHIFT,r,reload_config
|
|
||||||
|
|
||||||
bind=SUPER,t,setlayout,tile
|
|
||||||
bind=SUPER,s,setlayout,scroller
|
|
||||||
|
|
||||||
bind=SUPER,f,togglefloating
|
|
||||||
bind=SUPER+SHIFT,f,togglefullscreen
|
|
||||||
|
|
||||||
bind=NONE,XF86AudioPrev,spawn,playerctl previous
|
|
||||||
bind=NONE,XF86AudioPlay,spawn,playerctl play-pause
|
|
||||||
bind=NONE,XF86AudioNext,spawn,playerctl next
|
|
||||||
|
|
||||||
bindl=NONE,XF86AudioRaiseVolume,spawn,pamixer -i 5
|
|
||||||
bindl=NONE,XF86AudioLowerVolume,spawn,pamixer -d 5
|
|
||||||
bindl=NONE,XF86AudioMute,spawn,pamixer -t
|
|
||||||
bindl=ALT,XF86AudioRaiseVolume,spawn,pamixer --default-source -i 5
|
|
||||||
bindl=ALT,XF86AudioLowerVolume,spawn,pamixer --default-source -d 5
|
|
||||||
bindl=ALT,XF86AudioMute,spawn,pamixer --default-source -t
|
|
||||||
|
|
||||||
bindl=NONE,XF86MonBrightnessUp,spawn,brightnessctl set 5%+
|
|
||||||
bindl=NONE,XF86MonBrightnessDown,spawn,brightnessctl set 5%-
|
|
||||||
|
|
||||||
bind=NONE,Print,spawn_shell,grim -g "$(slurp)" - | wl-copy
|
|
||||||
bind=SHIFT,Print,spawn_shell,wl-paste | swappy -f -
|
|
||||||
|
|
||||||
bind=SUPER,Up,focusdir,up
|
|
||||||
bind=SUPER,Down,focusdir,down
|
|
||||||
bind=SUPER,Left,focusdir,left
|
|
||||||
bind=SUPER,Right,focusdir,right
|
|
||||||
bind=SUPER+SHIFT,Up,exchange_client,up
|
|
||||||
bind=SUPER+SHIFT,Down,exchange_client,down
|
|
||||||
bind=SUPER+SHIFT,Left,exchange_client,left
|
|
||||||
bind=SUPER+SHIFT,Right,exchange_client,right
|
|
||||||
|
|
||||||
bind=SUPER+CTRL,Left,viewtoleft
|
|
||||||
bind=SUPER+CTRL,Right,viewtoright
|
|
||||||
bind=SUPER+CTRL+SHIFT,Left,tagtoleft
|
|
||||||
bind=SUPER+CTRL+SHIFT,Right,tagtoright
|
|
||||||
|
|
||||||
mousebind=SUPER,btn_left,moveresize,curmove
|
|
||||||
mousebind=SUPER,btn_right,moveresize,curresize
|
|
||||||
mousebind=SUPER+ALT,btn_left,moveresize,curresize
|
|
||||||
|
|
||||||
bind=SUPER,Tab,toggleoverview
|
|
||||||
|
|
||||||
blur=1
|
|
||||||
blur_params_radius=6
|
|
||||||
blur_params_num_passes=2
|
|
||||||
|
|
||||||
windowrule=blur:1,unfocused_opacity:0.95,focused_opacity:0.95,appid:foot
|
|
||||||
|
|
||||||
exec-once=${config.xdg.configHome}/mango/autostart.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
autostart_sh = ''
|
|
||||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=wlroots
|
|
||||||
noctalia-shell
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.swaync = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
positionX = "right";
|
|
||||||
positionY = "top";
|
|
||||||
cssPriority = "user"; # "application"
|
|
||||||
|
|
||||||
control-center-width = 380;
|
|
||||||
control-center-height = 860;
|
|
||||||
control-center-margin-top = 10;
|
|
||||||
control-center-margin-bottom = 10;
|
|
||||||
control-center-margin-right = 10;
|
|
||||||
control-center-margin-left = 10;
|
|
||||||
|
|
||||||
notification-window-width = 400;
|
|
||||||
notification-icon-size = 48;
|
|
||||||
notification-body-image-height = 100;
|
|
||||||
notification-body-image-width = 200;
|
|
||||||
|
|
||||||
timeout = 4;
|
|
||||||
timeout-low = 2;
|
|
||||||
timeout-critical = 6;
|
|
||||||
|
|
||||||
fit-to-screen = false;
|
|
||||||
keyboard-shortcuts = true;
|
|
||||||
image-visibility = "when-available";
|
|
||||||
transition-time = 200;
|
|
||||||
hide-on-clear = false;
|
|
||||||
hide-on-action = false;
|
|
||||||
script-fail-notify = true;
|
|
||||||
scripts = {
|
|
||||||
example-script = {
|
|
||||||
exec = "echo 'Do something...'";
|
|
||||||
urgency = "Normal";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
notification-visibility = {
|
|
||||||
example-name = {
|
|
||||||
state = "muted";
|
|
||||||
urgency = "low";
|
|
||||||
app-name = "Spotify";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
widgets = [
|
|
||||||
"label"
|
|
||||||
"buttons-grid"
|
|
||||||
"mpris"
|
|
||||||
"dnd"
|
|
||||||
"title"
|
|
||||||
"notifications"
|
|
||||||
];
|
|
||||||
widget-config = {
|
|
||||||
title = {
|
|
||||||
text = "Notifications";
|
|
||||||
clear-all-button = true;
|
|
||||||
button-text = " ";
|
|
||||||
};
|
|
||||||
dnd = {
|
|
||||||
text = "Do Not Disturb";
|
|
||||||
};
|
|
||||||
label = {
|
|
||||||
max-lines = 1;
|
|
||||||
text = " ";
|
|
||||||
};
|
|
||||||
mpris = {
|
|
||||||
image-size = 96;
|
|
||||||
image-radius = 12;
|
|
||||||
};
|
|
||||||
volume = {
|
|
||||||
label = "";
|
|
||||||
show-per-app = true;
|
|
||||||
};
|
|
||||||
buttons-grid = {
|
|
||||||
actions = [
|
|
||||||
{
|
|
||||||
label = "";
|
|
||||||
command = "pamixer -t";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "";
|
|
||||||
command = "pamixer --default-source -t";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "";
|
|
||||||
command = "nmtui";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# label = "";
|
|
||||||
# command = "blueman-manager";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# label = "";
|
|
||||||
# command = "nwg-look";
|
|
||||||
# }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,143 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.waybar = {
|
|
||||||
enable = false;
|
|
||||||
systemd.enable = true;
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
layer = "top";
|
|
||||||
position = "top";
|
|
||||||
margin-left = 10;
|
|
||||||
margin-right = 10;
|
|
||||||
margin-top = 5;
|
|
||||||
fixed-center = true;
|
|
||||||
reload_style_on_change = false;
|
|
||||||
|
|
||||||
"hyprland/workspaces" = import ./modules/hyprland-workspaces.nix { };
|
|
||||||
"custom/menu" = import ./modules/menu.nix { };
|
|
||||||
"hyprland/window" = import ./modules/hyprland-window.nix { };
|
|
||||||
"disk" = import ./modules/disk.nix { };
|
|
||||||
"cpu" = import ./modules/cpu.nix { };
|
|
||||||
"memory" = import ./modules/memory.nix { };
|
|
||||||
"temperature" = import ./modules/temperature.nix { };
|
|
||||||
"idle_inhibitor" = import ./modules/idle-inhibitor.nix { };
|
|
||||||
"tray" = import ./modules/tray.nix { };
|
|
||||||
"network" = import ./modules/network.nix { };
|
|
||||||
"wireplumber" = import ./modules/wireplumber.nix { };
|
|
||||||
"backlight" = import ./modules/backlight.nix { };
|
|
||||||
"mpris" = import ./modules/mpris.nix { };
|
|
||||||
"battery" = import ./modules/battery.nix { full-at = 80; }; # Change this to come from the TLP setting
|
|
||||||
"clock" = import ./modules/clock.nix { };
|
|
||||||
"custom/power" = import ./modules/power.nix { };
|
|
||||||
"custom/hyprpicker" = import ./modules/hyprpicker.nix { };
|
|
||||||
"custom/separator#blank" = {
|
|
||||||
format = "";
|
|
||||||
interval = "once";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
modules-left = [
|
|
||||||
"custom/menu"
|
|
||||||
"custom/separator#blank"
|
|
||||||
"clock"
|
|
||||||
"custom/separator#blank"
|
|
||||||
"custom/hyprpicker"
|
|
||||||
];
|
|
||||||
|
|
||||||
modules-center = [
|
|
||||||
"hyprland/workspaces"
|
|
||||||
];
|
|
||||||
|
|
||||||
modules-right = [
|
|
||||||
"tray"
|
|
||||||
"custom/separator#blank"
|
|
||||||
"group/motherboard"
|
|
||||||
"custom/separator#blank"
|
|
||||||
"wireplumber"
|
|
||||||
"custom/separator#blank"
|
|
||||||
"battery"
|
|
||||||
"custom/separator#blank"
|
|
||||||
"custom/power"
|
|
||||||
];
|
|
||||||
|
|
||||||
"group/motherboard" = {
|
|
||||||
orientation = "inherit";
|
|
||||||
modules = [
|
|
||||||
"cpu"
|
|
||||||
"memory"
|
|
||||||
"temperature"
|
|
||||||
"disk"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
style = ''
|
|
||||||
@define-color base00 #192435; /* Darkest background (night sky / deep shadows) */
|
|
||||||
@define-color base01 #243449; /* Slightly lighter background */
|
|
||||||
@define-color base02 #36455D; /* Selection / inactive UI */
|
|
||||||
@define-color base03 #51637E; /* Comments / subtle foreground */
|
|
||||||
|
|
||||||
@define-color base04 #8FA3BA; /* Dark foreground (status bars) */
|
|
||||||
@define-color base05 #C7D2DF; /* Default foreground (text) */
|
|
||||||
@define-color base06 #E3EAF2; /* Light foreground (highlighted text) */
|
|
||||||
@define-color base07 #F4D9C7; /* Bright foreground (lantern light) */
|
|
||||||
|
|
||||||
@define-color base08 #D88C7A; /* Red / Errors (warm wood & lantern glow) */
|
|
||||||
@define-color base09 #E5AD97; /* Orange / Numbers / Constants */
|
|
||||||
@define-color base0A #E9C48A; /* Yellow / Classes / Warnings */
|
|
||||||
@define-color base0B #9FBFA8; /* Green / Strings */
|
|
||||||
@define-color base0C #8FB6C8; /* Cyan / Support / Regex */
|
|
||||||
@define-color base0D #7FA6D9; /* Blue / Functions / Keywords */
|
|
||||||
@define-color base0E #B69BCB; /* Purple / Types / Specials */
|
|
||||||
@define-color base0F #B0896A; /* Brown / Deprecated */
|
|
||||||
|
|
||||||
* {
|
|
||||||
all: unset;
|
|
||||||
font-family: "JetBrainsMono Nerd Font Propo"; /* The Propo(rtional) variant of the ensures icons are properly spaced */
|
|
||||||
font-feature-settings: '"zero", "tnum", "ss01", "ss02", "ss03", "cv01"';
|
|
||||||
font-weight: 700;
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.module {
|
|
||||||
padding: 0 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modules-left,
|
|
||||||
.modules-center,
|
|
||||||
.modules-right {
|
|
||||||
background: @base00;
|
|
||||||
padding: 6px 8px;
|
|
||||||
border-color: @base03;
|
|
||||||
border-width: 1.5px;
|
|
||||||
border-style: solid;
|
|
||||||
border-radius: 0.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
color: @base04;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
padding: 0 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#motherboard,
|
|
||||||
#custom-menu {
|
|
||||||
color: @base04;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wireplumber,
|
|
||||||
#battery,
|
|
||||||
#custom-power,
|
|
||||||
#custom-hyprpicker,
|
|
||||||
#clock {
|
|
||||||
color: @base05;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{icon}";
|
|
||||||
tooltip-format = "Backlight {percent}%";
|
|
||||||
format-icons = [
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
];
|
|
||||||
icon-size = 10;
|
|
||||||
on-scroll-down = "brightnessctl set 10%-";
|
|
||||||
on-scroll-up = "brightnessctl set +10%";
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
full-at ? 100,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
inherit full-at;
|
|
||||||
states = {
|
|
||||||
# These values are percentages based on `full-at`
|
|
||||||
good = 95;
|
|
||||||
warning = 30;
|
|
||||||
critical = 15;
|
|
||||||
};
|
|
||||||
format = "{icon} {capacity}%";
|
|
||||||
format-charging = " {capacity}%";
|
|
||||||
format-plugged = " {capacity}%";
|
|
||||||
format-full = "{icon} {capacity}%";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
format-time = "{H}h {M}min";
|
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "{timeTo} {power}w";
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "";
|
|
||||||
format-disabled = "";
|
|
||||||
format-connected = " {num_connections}";
|
|
||||||
tooltip-format = " {device_alias}";
|
|
||||||
tooltip-format-connected = "{device_enumerate}";
|
|
||||||
tooltip-format-enumerate-connected = " {device_alias} {device_battery_percentage}%";
|
|
||||||
tooltip = true;
|
|
||||||
# on-click = "blueman-manager";
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
interval = 1; # Poll every second
|
|
||||||
format = "{:%H:%M - %d/%b}";
|
|
||||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
|
||||||
calendar = {
|
|
||||||
mode = "year";
|
|
||||||
mode-mon-col = 3;
|
|
||||||
weeks-pos = "right";
|
|
||||||
on-scroll = 1;
|
|
||||||
format = {
|
|
||||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
|
||||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
|
||||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
|
||||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
|
||||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{usage}% ";
|
|
||||||
interval = 1;
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
interval = 30;
|
|
||||||
format = "{percentage_used}% ";
|
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "{specific_free:0.1f}/{specific_total:0.1f}GiB";
|
|
||||||
unit = "GiB";
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{title}";
|
|
||||||
max-length = 40;
|
|
||||||
separate-outputs = true; # List different titles for each monitor
|
|
||||||
offscreen-css = true; # No idea what this does
|
|
||||||
offscreen-css-text = "(inactive)"; # No idea what this does either
|
|
||||||
rewrite = {
|
|
||||||
"(.*) — Mozilla Firefox" = " Firefox";
|
|
||||||
# Foot terminal doesn't display any title for some reason
|
|
||||||
# Find a fix
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
active-only = false; # Show all workspaces
|
|
||||||
all-outputs = true; # Show all workspace groups
|
|
||||||
format = "{icon}";
|
|
||||||
show-special = false; # Hide Hyprland's "special" workspaces
|
|
||||||
on-click = "activate";
|
|
||||||
on-scroll-up = "hyprctl dispatch workspace r+1";
|
|
||||||
on-scroll-down = "hyprctl dispatch workspace r-1";
|
|
||||||
persistent-workspaces = {
|
|
||||||
"1" = [ ];
|
|
||||||
"2" = [ ];
|
|
||||||
"3" = [ ];
|
|
||||||
"4" = [ ];
|
|
||||||
"5" = [ ];
|
|
||||||
};
|
|
||||||
format-icons = {
|
|
||||||
active = "";
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "";
|
|
||||||
on-click = "hyprpicker | tr -d '\\n' | wl-copy";
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
activated = " ";
|
|
||||||
deactivated = " ";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
interval = 10;
|
|
||||||
format = "{used:0.1f}G ";
|
|
||||||
format-alt = "{percentage}% ";
|
|
||||||
format-alt-click = "click";
|
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "{used:0.1f}/{total:0.1f}GiB";
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{}";
|
|
||||||
exec = "echo ; echo app launcher";
|
|
||||||
interval = 86400;
|
|
||||||
tooltip = true;
|
|
||||||
on-click = "walker";
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
interval = 10;
|
|
||||||
format = "{player_icon} ";
|
|
||||||
format-paused = "{status_icon} <i>{dynamic}</i>";
|
|
||||||
player-icons = {
|
|
||||||
chromium = "";
|
|
||||||
mpd = "";
|
|
||||||
default = "";
|
|
||||||
firefox = "";
|
|
||||||
kdeconnect = "";
|
|
||||||
mopidy = "";
|
|
||||||
mpv = "";
|
|
||||||
spotify = "";
|
|
||||||
vlc = "";
|
|
||||||
};
|
|
||||||
status-icons = {
|
|
||||||
paused = "";
|
|
||||||
playing = "";
|
|
||||||
stopped = "";
|
|
||||||
};
|
|
||||||
max-length = 30;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{ifname}";
|
|
||||||
format-wifi = "{icon}";
|
|
||||||
format-ethernet = "";
|
|
||||||
format-disconnected = "";
|
|
||||||
format-linked = " {ifname} (No IP)";
|
|
||||||
tooltip-format = "{ipaddr} {bandwidthUpBytes} {bandwidthDownBytes}";
|
|
||||||
tooltip-format-wifi = "{essid} {icon} {signalStrength}%";
|
|
||||||
tooltip-format-ethernet = "{essid} ";
|
|
||||||
tooltip-format-disconnected = " Disconnected";
|
|
||||||
max-length = 50;
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "⏻";
|
|
||||||
exec = "echo ; echo power";
|
|
||||||
on-click = "wlogout";
|
|
||||||
interval = 86400; # once every day
|
|
||||||
tooltip = true;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
interval = 10;
|
|
||||||
tooltip = true;
|
|
||||||
# Thermal Zone 12 refers to the CPU package temp
|
|
||||||
# This might vary between devices. Maybe make it an input?
|
|
||||||
thermal-zone = 12;
|
|
||||||
critical-threshold = 85;
|
|
||||||
format-critical = "{temperatureC}°C {icon}";
|
|
||||||
format = "{temperatureC}°C {icon}";
|
|
||||||
format-icons = [ "" ];
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
icon-size = 15;
|
|
||||||
spacing = 8;
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
format = "{icon} {volume}% {format_source}";
|
|
||||||
format-muted = " {format_source}";
|
|
||||||
format-source = " {volume}%";
|
|
||||||
format-source-muted = "";
|
|
||||||
format-icons = {
|
|
||||||
headphone = "";
|
|
||||||
hands-free = "";
|
|
||||||
headset = "";
|
|
||||||
phone = "";
|
|
||||||
portable = "";
|
|
||||||
car = "";
|
|
||||||
default = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
scroll-step = 5.0;
|
|
||||||
on-click = "pavucontrol -t 3";
|
|
||||||
on-click-right = "pavucontrol -t 4";
|
|
||||||
tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%";
|
|
||||||
}
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
wallpaper,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.wlogout = {
|
|
||||||
enable = true;
|
|
||||||
layout = [
|
|
||||||
{
|
|
||||||
label = "lock";
|
|
||||||
action = "loginctl lock-session";
|
|
||||||
text = "Lock";
|
|
||||||
keybind = "l";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "hibernate";
|
|
||||||
action = "systemctl hibernate";
|
|
||||||
text = "Hibernate";
|
|
||||||
keybind = "h";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "logout";
|
|
||||||
action = "uwsm stop";
|
|
||||||
text = "Logout";
|
|
||||||
keybind = "e";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "shutdown";
|
|
||||||
action = "systemctl poweroff";
|
|
||||||
text = "Shutdown";
|
|
||||||
keybind = "s";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "suspend";
|
|
||||||
action = "systemctl suspend";
|
|
||||||
text = "Suspend";
|
|
||||||
keybind = "u";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "reboot";
|
|
||||||
action = "systemctl reboot";
|
|
||||||
text = "Reboot";
|
|
||||||
keybind = "r";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# * IMPORTANT
|
|
||||||
# * The for some reason the SVG icons will not be rendered when wlogout is called
|
|
||||||
# * from a hyprland keybind unless librsvg is installed.
|
|
||||||
# * See packages.nix (programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];)
|
|
||||||
style = with config.lib.stylix.colors.withHashtag; ''
|
|
||||||
* {
|
|
||||||
font-family: "Rubik Light";
|
|
||||||
background-image: none;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
window {
|
|
||||||
background: url("${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}");
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
margin: 10px;
|
|
||||||
border-radius: 20px;
|
|
||||||
border-color: ${base0F};
|
|
||||||
text-decoration-color: ${base0F};
|
|
||||||
color: ${base0F};
|
|
||||||
background-color: alpha(${base01}, 0.5);
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 2px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
background-size: 25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus, button:active, button:hover {
|
|
||||||
background-color: alpha(${base0F}, 0.3);
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:hover {
|
|
||||||
background-size: 27%;
|
|
||||||
}
|
|
||||||
|
|
||||||
button span {
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lock {
|
|
||||||
background-image: url("${pkgs.wlogout}/share/wlogout/assets/lock.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
#logout {
|
|
||||||
background-image: url("${pkgs.wlogout}/share/wlogout/assets/logout.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
#suspend {
|
|
||||||
background-image: url("${pkgs.wlogout}/share/wlogout/assets/suspend.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
#hibernate {
|
|
||||||
background-image: url("${pkgs.wlogout}/share/wlogout/assets/hibernate.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
#shutdown {
|
|
||||||
background-image: url("${pkgs.wlogout}/share/wlogout/assets/shutdown.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
#reboot {
|
|
||||||
background-image: url("${pkgs.wlogout}/share/wlogout/assets/reboot.svg");
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.agenix-rekey.flakeModule
|
|
||||||
];
|
|
||||||
|
|
||||||
perSystem =
|
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
packages = [ config.agenix-rekey.package ];
|
|
||||||
};
|
|
||||||
|
|
||||||
agenix-rekey.nixosConfigurations = inputs.self.nixosConfigurations;
|
|
||||||
};
|
|
||||||
|
|
||||||
flake.modules.nixos.agenix =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
inputs.agenix-rekey.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
services.openssh.generateHostKeys = true;
|
|
||||||
|
|
||||||
age = {
|
|
||||||
# Need to explicitly set identity paths because OpenSSH daemon is disabled
|
|
||||||
# but the host keys are still generated via services.openssh.generateHostKeys = true
|
|
||||||
identityPaths = map (key: key.path) config.services.openssh.hostKeys;
|
|
||||||
rekey = {
|
|
||||||
masterIdentities = [ (inputs.secrets + "/age-yubikey-identity-d9ed335b.pub") ];
|
|
||||||
storageMode = "local";
|
|
||||||
localStorageDir = inputs.secrets + "/rekeyed/${config.networking.hostName}";
|
|
||||||
}
|
|
||||||
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
|
|
||||||
# exist until it is generated after the first rebuild. Runtime decryption will fail
|
|
||||||
# but then the ssh host key will be generated in /etc/ssh and can be supplied
|
|
||||||
// lib.optionalAttrs (config.hostPubkey != null) {
|
|
||||||
hostPubkey = config.hostPubkey;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.assets =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
profilePicture = lib.mkOption {
|
|
||||||
type = lib.types.path;
|
|
||||||
default = null;
|
|
||||||
description = "The user's profile picture, to be used as ~/.face";
|
|
||||||
};
|
|
||||||
wallpaperDir = lib.mkOption {
|
|
||||||
type = lib.types.path;
|
|
||||||
default = null;
|
|
||||||
description = "The path to a directory containing wallpapers to being linked to XDG_WALLPAPERS_DIR";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config.xdg.userDirs.extraConfig.WALLPAPERS = "${config.xdg.userDirs.pictures}/Wallpapers";
|
|
||||||
|
|
||||||
config.home.file.".face".source = lib.mkIf (config.profilePicture != null) config.profilePicture;
|
|
||||||
|
|
||||||
config.home.file."${config.xdg.userDirs.extraConfig.WALLPAPERS}" =
|
|
||||||
lib.mkIf (config.wallpaperDir != null)
|
|
||||||
{
|
|
||||||
source = config.wallpaperDir;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.bat =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.bat = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs.bat-extras; [
|
|
||||||
batgrep
|
|
||||||
batman
|
|
||||||
batpipe
|
|
||||||
batwatch
|
|
||||||
batdiff
|
|
||||||
prettybat
|
|
||||||
];
|
|
||||||
config = {
|
|
||||||
theme = "Catppuccin Mocha";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.bluetooth = {
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
powerOnBoot = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.boot = {
|
|
||||||
boot = {
|
|
||||||
loader = {
|
|
||||||
systemd-boot = {
|
|
||||||
enable = true;
|
|
||||||
configurationLimit = 10;
|
|
||||||
};
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.direnv = {
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.eza = {
|
|
||||||
programs.eza = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
git = true;
|
|
||||||
icons = "always";
|
|
||||||
theme = {
|
|
||||||
colorful = true;
|
|
||||||
|
|
||||||
filekinds = {
|
|
||||||
normal.foreground = "#BAC2DE";
|
|
||||||
directory.foreground = "#89B4FA";
|
|
||||||
symlink.foreground = "#89DCEB";
|
|
||||||
pipe.foreground = "#7F849C";
|
|
||||||
block_device.foreground = "#EBA0AC";
|
|
||||||
char_device.foreground = "#EBA0AC";
|
|
||||||
socket.foreground = "#585B70";
|
|
||||||
special.foreground = "#CBA6F7";
|
|
||||||
executable.foreground = "#A6E3A1";
|
|
||||||
mount_point.foreground = "#74C7EC";
|
|
||||||
};
|
|
||||||
|
|
||||||
perms = {
|
|
||||||
user_read.foreground = "#CDD6F4";
|
|
||||||
user_write.foreground = "#F9E2AF";
|
|
||||||
user_execute_file.foreground = "#A6E3A1";
|
|
||||||
user_execute_other.foreground = "#A6E3A1";
|
|
||||||
group_read.foreground = "#BAC2DE";
|
|
||||||
group_write.foreground = "#F9E2AF";
|
|
||||||
group_execute.foreground = "#A6E3A1";
|
|
||||||
other_read.foreground = "#A6ADC8";
|
|
||||||
other_write.foreground = "#F9E2AF";
|
|
||||||
other_execute.foreground = "#A6E3A1";
|
|
||||||
special_user_file.foreground = "#CBA6F7";
|
|
||||||
special_other.foreground = "#585B70";
|
|
||||||
attribute.foreground = "#A6ADC8";
|
|
||||||
};
|
|
||||||
|
|
||||||
size = {
|
|
||||||
major.foreground = "#A6ADC8";
|
|
||||||
minor.foreground = "#89DCEB";
|
|
||||||
number_byte.foreground = "#CDD6F4";
|
|
||||||
number_kilo.foreground = "#BAC2DE";
|
|
||||||
number_mega.foreground = "#89B4FA";
|
|
||||||
number_giga.foreground = "#CBA6F7";
|
|
||||||
number_huge.foreground = "#CBA6F7";
|
|
||||||
unit_byte.foreground = "#A6ADC8";
|
|
||||||
unit_kilo.foreground = "#89B4FA";
|
|
||||||
unit_mega.foreground = "#CBA6F7";
|
|
||||||
unit_giga.foreground = "#CBA6F7";
|
|
||||||
unit_huge.foreground = "#74C7EC";
|
|
||||||
};
|
|
||||||
|
|
||||||
users = {
|
|
||||||
user_you.foreground = "#CDD6F4";
|
|
||||||
user_root.foreground = "#F38BA8";
|
|
||||||
user_other.foreground = "#CBA6F7";
|
|
||||||
group_yours.foreground = "#BAC2DE";
|
|
||||||
group_other.foreground = "#7F849C";
|
|
||||||
group_root.foreground = "#F38BA8";
|
|
||||||
};
|
|
||||||
|
|
||||||
links = {
|
|
||||||
normal.foreground = "#89DCEB";
|
|
||||||
multi_link_file.foreground = "#74C7EC";
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
|
||||||
new.foreground = "#A6E3A1";
|
|
||||||
modified.foreground = "#F9E2AF";
|
|
||||||
deleted.foreground = "#F38BA8";
|
|
||||||
renamed.foreground = "#94E2D5";
|
|
||||||
typechange.foreground = "#F5C2E7";
|
|
||||||
ignored.foreground = "#7F849C";
|
|
||||||
conflicted.foreground = "#EBA0AC";
|
|
||||||
};
|
|
||||||
|
|
||||||
git_repo = {
|
|
||||||
branch_main.foreground = "#CDD6F4";
|
|
||||||
branch_other.foreground = "#CBA6F7";
|
|
||||||
git_clean.foreground = "#A6E3A1";
|
|
||||||
git_dirty.foreground = "#F38BA8";
|
|
||||||
};
|
|
||||||
|
|
||||||
security_context = {
|
|
||||||
colon.foreground = "#7F849C";
|
|
||||||
user.foreground = "#BAC2DE";
|
|
||||||
role.foreground = "#CBA6F7";
|
|
||||||
typ.foreground = "#585B70";
|
|
||||||
range.foreground = "#CBA6F7";
|
|
||||||
};
|
|
||||||
|
|
||||||
file_type = {
|
|
||||||
image.foreground = "#F9E2AF";
|
|
||||||
video.foreground = "#F38BA8";
|
|
||||||
music.foreground = "#A6E3A1";
|
|
||||||
lossless.foreground = "#94E2D5";
|
|
||||||
crypto.foreground = "#585B70";
|
|
||||||
document.foreground = "#CDD6F4";
|
|
||||||
compressed.foreground = "#F5C2E7";
|
|
||||||
temp.foreground = "#EBA0AC";
|
|
||||||
compiled.foreground = "#74C7EC";
|
|
||||||
build.foreground = "#585B70";
|
|
||||||
source.foreground = "#89B4FA";
|
|
||||||
};
|
|
||||||
|
|
||||||
punctuation.foreground = "#7F849C";
|
|
||||||
date.foreground = "#F9E2AF";
|
|
||||||
inode.foreground = "#A6ADC8";
|
|
||||||
blocks.foreground = "#9399B2";
|
|
||||||
header.foreground = "#CDD6F4";
|
|
||||||
octal.foreground = "#94E2D5";
|
|
||||||
flags.foreground = "#CBA6F7";
|
|
||||||
|
|
||||||
symlink_path.foreground = "#89DCEB";
|
|
||||||
control_char.foreground = "#74C7EC";
|
|
||||||
broken_symlink.foreground = "#F38BA8";
|
|
||||||
broken_path_overlay.foreground = "#585B70";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.fastfetch = {
|
|
||||||
programs.fastfetch = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,161 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.firefox =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# This gets around having to run `pywalfox install` manually, which just creates this manifest
|
|
||||||
home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = builtins.toJSON {
|
|
||||||
name = "pywalfox";
|
|
||||||
description = "Automatically theme your browser using the colors generated by Pywal";
|
|
||||||
path = lib.getExe' pkgs.pywalfox-native "pywalfox";
|
|
||||||
# path = "${pkgs.pywalfox-native}/bin/pywalfox";
|
|
||||||
type = "stdio";
|
|
||||||
allowed_extensions = [ "pywalfox@frewacom.org" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
languagePacks = [ "en-US" ];
|
|
||||||
nativeMessagingHosts = with pkgs; [
|
|
||||||
pywalfox-native
|
|
||||||
];
|
|
||||||
policies = {
|
|
||||||
DefaultDownloadDirectory = config.xdg.userDirs.download;
|
|
||||||
DisableFirefoxAccounts = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
DisablePocket = true;
|
|
||||||
DisableProfileImport = true;
|
|
||||||
DisableProfileRefresh = true;
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DisplayBookmarksToolbar = "never";
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true; # Tracking protection is enabled by default in both the regular browser and private browsing
|
|
||||||
Locked = true; # Whether or not a user can change tracking protection
|
|
||||||
Cryptomining = true; # Block cryptomining scripts
|
|
||||||
Fingerprinting = true; # Block fingerprinting scripts
|
|
||||||
EmailTracking = true; # Block email tracking pixels and scripts
|
|
||||||
};
|
|
||||||
FirefoxHome = {
|
|
||||||
Search = true;
|
|
||||||
TopSites = true;
|
|
||||||
SponsoredTopSites = false;
|
|
||||||
Highlights = false;
|
|
||||||
Pocket = false;
|
|
||||||
Stories = false;
|
|
||||||
SponsoredPocket = false;
|
|
||||||
SponsoredStories = false;
|
|
||||||
Snippets = true;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
FirefoxSuggest = {
|
|
||||||
WebSuggestions = true;
|
|
||||||
SponsoredSuggestions = false;
|
|
||||||
ImproveSuggest = false;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
Homepage = {
|
|
||||||
URL = "http://100.78.212.35:30054";
|
|
||||||
Locked = true;
|
|
||||||
StartPage = "homepage";
|
|
||||||
};
|
|
||||||
OfferToSaveLogins = false;
|
|
||||||
OverrideFirstRunPage = "";
|
|
||||||
PasswordManagerEnabled = false;
|
|
||||||
PopupBlocking = {
|
|
||||||
Default = false;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
PrimaryPassword = false;
|
|
||||||
SearchBar = "unified";
|
|
||||||
ShowHomeButton = true;
|
|
||||||
SkipTermsOfUse = true;
|
|
||||||
};
|
|
||||||
profiles.eclypse = {
|
|
||||||
name = "Eclypse";
|
|
||||||
isDefault = true;
|
|
||||||
extensions = {
|
|
||||||
force = true;
|
|
||||||
# For a list of available packaged extensions, see:
|
|
||||||
# https://github.com/nix-community/nur-combined/blob/main/repos/rycee/pkgs/firefox-addons/addons.json
|
|
||||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
|
||||||
ublock-origin
|
|
||||||
bitwarden
|
|
||||||
pywalfox
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
"uBlock0@raymondhill.net".settings = {
|
|
||||||
selectedFilterLists = [
|
|
||||||
"ublock-filters"
|
|
||||||
"ublock-badware"
|
|
||||||
"ublock-privacy"
|
|
||||||
"ublock-unbreak"
|
|
||||||
"ublock-quick-fixes"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
search = {
|
|
||||||
default = "google";
|
|
||||||
force = true;
|
|
||||||
engines = {
|
|
||||||
nix-packages = {
|
|
||||||
name = "Nix Packages";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://search.nixos.org/packages";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "channel";
|
|
||||||
value = "unstable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
||||||
definedAliases = [ "@np" ];
|
|
||||||
};
|
|
||||||
home-manager = {
|
|
||||||
name = "Home Manager";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://home-manager-options.extranix.com";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
||||||
definedAliases = [ "@hm" ];
|
|
||||||
};
|
|
||||||
surugaya = {
|
|
||||||
name = "Surugaya";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://www.suruga-ya.jp/search?search_word={searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
iconMapObj."16" = "https://www.suruga-ya.jp/drupal/themes/surugaya/favicon.ico";
|
|
||||||
definedAliases = [ "@suru" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
# Auto-enable extensions
|
|
||||||
"extensions.autoDisableScopes" = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.firmware = {
|
|
||||||
services.fwupd = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.fonts =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
fonts = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
# Maple Mono
|
|
||||||
maple-mono.truetype
|
|
||||||
maple-mono.NF-unhinted
|
|
||||||
maple-mono.NF-CN-unhinted
|
|
||||||
|
|
||||||
# JetBrains Mono
|
|
||||||
nerd-fonts.jetbrains-mono
|
|
||||||
|
|
||||||
# Noto
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-color-emoji
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
flake.modules.homeManager.fonts = {
|
|
||||||
fonts.fontconfig = {
|
|
||||||
enable = true;
|
|
||||||
defaultFonts = {
|
|
||||||
sansSerif = [ "Noto Sans" ];
|
|
||||||
monospace = [
|
|
||||||
"Maple Mono"
|
|
||||||
"JetBrainsMono Nerd Font"
|
|
||||||
];
|
|
||||||
emoji = [ "Noto Color Emoji" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.foot =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
programs.foot = {
|
|
||||||
enable = true;
|
|
||||||
server.enable = false;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
term = "xterm-256color";
|
|
||||||
include = "${config.xdg.configHome}/foot/themes/noctalia";
|
|
||||||
dpi-aware = "no";
|
|
||||||
font = "${builtins.head config.fonts.fontconfig.defaultFonts.monospace}:size=12";
|
|
||||||
pad = "10x10";
|
|
||||||
};
|
|
||||||
mouse = {
|
|
||||||
hide-when-typing = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.fprintd = {
|
|
||||||
services.fprintd.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.fzf = {
|
|
||||||
programs.fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.gdm = {
|
|
||||||
services.displayManager = {
|
|
||||||
gdm = {
|
|
||||||
enable = true;
|
|
||||||
wayland = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.git =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
name = "Eclypsed";
|
|
||||||
email = "Ec1ypsed@proton.me";
|
|
||||||
signingKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIB2h6y1Al2OVotYIpwPZMjiBLAncAI2pAPgES2+gVbJqAAAABHNzaDo= ssh:";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [ git-ignore ];
|
|
||||||
|
|
||||||
xdg.configFile."git/allowed_signers".text = ''
|
|
||||||
${email} namespaces="git" ${signingKey}
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
user = { inherit name email; };
|
|
||||||
init = {
|
|
||||||
defaultBranch = "main";
|
|
||||||
};
|
|
||||||
gpg.ssh.allowedSignersFile = "${config.xdg.configHome}/git/allowed_signers";
|
|
||||||
};
|
|
||||||
signing = {
|
|
||||||
format = "ssh";
|
|
||||||
key = "${config.home.homeDirectory}/.ssh/id_ed25519_sk_rk.pub";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lazygit = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
shellWrapperName = "lg";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,362 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.helix =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
yazi-picker = pkgs.writeShellApplication {
|
|
||||||
name = "yazi-picker";
|
|
||||||
text = ''
|
|
||||||
paths=$(yazi --chooser-file=/dev/stdout)
|
|
||||||
|
|
||||||
if [[ -n "$paths" ]]; then
|
|
||||||
zellij action toggle-floating-panes
|
|
||||||
zellij action write 27 # send <Escape> key
|
|
||||||
zellij action write-chars ":$1 $paths"
|
|
||||||
zellij action write 13 # send <Enter> key
|
|
||||||
else
|
|
||||||
zellij action toggle-floating-panes
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = [ yazi-picker ];
|
|
||||||
|
|
||||||
programs.helix = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
basedpyright # Python static type checker
|
|
||||||
ruff # Pyhton linter and formatter
|
|
||||||
nixd # Nix language server
|
|
||||||
nixfmt # Nix formatter
|
|
||||||
rust-analyzer # Rust language server
|
|
||||||
rustfmt # Rust formmater
|
|
||||||
clippy # Rust linter
|
|
||||||
lldb # Debugger for llvm languages
|
|
||||||
marksman # Markdown language server
|
|
||||||
markdown-oxide # Markdown PKM language server
|
|
||||||
rumdl # Markdown linter and formatter
|
|
||||||
libclang # C language family frontend for LLVM
|
|
||||||
typescript-language-server # Typescript language server
|
|
||||||
vscode-langservers-extracted # HTML/CSS/JSON/ESLint language servers extracted from vscode
|
|
||||||
emmet-language-server # Emmet support based on LSP
|
|
||||||
prettier # Formatter for HTML/CSS/JSON/ESLint languages
|
|
||||||
superhtml # HTML Language server and Templating Language Library
|
|
||||||
ruby-lsp # Ruby language server
|
|
||||||
solargraph # Alternative ruby language server
|
|
||||||
rubocop # Ruby linter and formatter
|
|
||||||
jdt-language-server # Java language server
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
editor = {
|
|
||||||
line-number = "relative";
|
|
||||||
cursorline = true;
|
|
||||||
auto-format = true;
|
|
||||||
completion-timeout = 5;
|
|
||||||
completion-trigger-len = 1;
|
|
||||||
bufferline = "always";
|
|
||||||
color-modes = true;
|
|
||||||
end-of-line-diagnostics = "hint";
|
|
||||||
lsp = {
|
|
||||||
display-inlay-hints = true;
|
|
||||||
};
|
|
||||||
cursor-shape = {
|
|
||||||
insert = "bar";
|
|
||||||
normal = "block";
|
|
||||||
select = "underline";
|
|
||||||
};
|
|
||||||
indent-guides = {
|
|
||||||
render = true;
|
|
||||||
skip-levels = 1;
|
|
||||||
};
|
|
||||||
soft-wrap = {
|
|
||||||
enable = true;
|
|
||||||
max-indent-retain = 80;
|
|
||||||
};
|
|
||||||
inline-diagnostics = {
|
|
||||||
cursor-line = "warning";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
keys =
|
|
||||||
let
|
|
||||||
arrow_keys = {
|
|
||||||
"up" = "jump_view_up";
|
|
||||||
"down" = "jump_view_down";
|
|
||||||
"left" = "jump_view_left";
|
|
||||||
"right" = "jump_view_right";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
normal = {
|
|
||||||
"C-y" =
|
|
||||||
":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- yazi-picker open %{buffer_name}";
|
|
||||||
}
|
|
||||||
// arrow_keys;
|
|
||||||
insert = {
|
|
||||||
"C-k" = "move_visual_line_up";
|
|
||||||
"C-j" = "move_visual_line_down";
|
|
||||||
"C-h" = "move_char_left";
|
|
||||||
"C-l" = "move_char_right";
|
|
||||||
}
|
|
||||||
// arrow_keys;
|
|
||||||
select = { } // arrow_keys;
|
|
||||||
};
|
|
||||||
theme = "catppuccin_mocha";
|
|
||||||
};
|
|
||||||
# Check https://github.com/helix-editor/helix/blob/master/languages.toml for default language configuration
|
|
||||||
# Only explictly set options you want to override / make explicit
|
|
||||||
languages = {
|
|
||||||
language = [
|
|
||||||
{
|
|
||||||
name = "python";
|
|
||||||
language-servers = [
|
|
||||||
"basedpyright"
|
|
||||||
"ruff"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "ruff";
|
|
||||||
args = [
|
|
||||||
"format"
|
|
||||||
"-"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nix";
|
|
||||||
language-servers = [ "nixd" ];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "nixfmt";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "rust";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "rustfmt";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "markdown";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "rumdl";
|
|
||||||
args = [
|
|
||||||
"fmt"
|
|
||||||
"-"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "c";
|
|
||||||
file-types = [
|
|
||||||
"c"
|
|
||||||
"h"
|
|
||||||
]; # "h" is currently missing from the default config
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "clang-format";
|
|
||||||
args = [
|
|
||||||
"--style=WebKit"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "typescript";
|
|
||||||
language-servers = [
|
|
||||||
"typescript-language-server"
|
|
||||||
"vscode-eslint-language-server"
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"typescript"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "tsx";
|
|
||||||
language-servers = [
|
|
||||||
"typescript-language-server"
|
|
||||||
"vscode-eslint-language-server"
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"typescript"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "javascript";
|
|
||||||
language-servers = [
|
|
||||||
"typescript-language-server"
|
|
||||||
"vscode-eslint-language-server"
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"typescript"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "jsx";
|
|
||||||
language-servers = [
|
|
||||||
"typescript-language-server"
|
|
||||||
"vscode-eslint-language-server"
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"typescript"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "json";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"json"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "jsonc";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"jsonc"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "html";
|
|
||||||
language-servers = [
|
|
||||||
"vscode-html-language-server"
|
|
||||||
{
|
|
||||||
name = "superhtml";
|
|
||||||
except-features = [ "format" ];
|
|
||||||
}
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"html"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "css";
|
|
||||||
language-servers = [
|
|
||||||
"vscode-css-language-server"
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"css"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "scss";
|
|
||||||
language-servers = [
|
|
||||||
"vscode-css-language-server"
|
|
||||||
"emmet-language-server"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "prettier";
|
|
||||||
args = [
|
|
||||||
"--parser"
|
|
||||||
"scss"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ruby";
|
|
||||||
language-servers = [
|
|
||||||
"ruby-lsp"
|
|
||||||
"solargraph"
|
|
||||||
];
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "rubocop";
|
|
||||||
args = [
|
|
||||||
"--stdin"
|
|
||||||
"placeholder.rb"
|
|
||||||
"-a"
|
|
||||||
"--stderr"
|
|
||||||
"--fail-level"
|
|
||||||
"fatal"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
language-server = {
|
|
||||||
basedpyright.config.python.analysis.typeCheckingMode = "strict";
|
|
||||||
rust-analyzer.config.check.command = "clippy";
|
|
||||||
emmet-language-server = {
|
|
||||||
command = "emmet-language-server";
|
|
||||||
args = [ "--stdio" ];
|
|
||||||
};
|
|
||||||
vscode-eslint-language-server = {
|
|
||||||
config = {
|
|
||||||
# Automatically fix ESLint errors
|
|
||||||
codeActionsOnSave = {
|
|
||||||
mode = "all";
|
|
||||||
"source.fixAll.eslint" = true;
|
|
||||||
};
|
|
||||||
quiet = false;
|
|
||||||
experimental = {
|
|
||||||
# Support for the modern ESLint configuration format
|
|
||||||
useFlatConfig = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
ruby-lsp = {
|
|
||||||
command = "ruby-lsp";
|
|
||||||
config = {
|
|
||||||
diagnostics = true;
|
|
||||||
formatting = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
solargraph = {
|
|
||||||
command = "solargraph";
|
|
||||||
config = {
|
|
||||||
diagnostics = true;
|
|
||||||
formatting = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.kanshi = {
|
|
||||||
services.kanshi = {
|
|
||||||
enable = true;
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
profile = {
|
|
||||||
name = "laptop";
|
|
||||||
outputs = [
|
|
||||||
{
|
|
||||||
criteria = "eDP-1";
|
|
||||||
status = "enable";
|
|
||||||
scale = 1.0;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
profile = {
|
|
||||||
name = "docked";
|
|
||||||
outputs = [
|
|
||||||
{
|
|
||||||
criteria = "eDP-1";
|
|
||||||
status = "disable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = "LG Electronics LG TV SSCR2 *";
|
|
||||||
mode = "3840x2160@120Hz";
|
|
||||||
scale = 1.0;
|
|
||||||
status = "enable";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.monique = {
|
|
||||||
imports = [ inputs.monique.nixosModules.default ];
|
|
||||||
|
|
||||||
programs.monique.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.network = {
|
|
||||||
networking = {
|
|
||||||
# Pick only one of the below networking options.
|
|
||||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# firewall.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,644 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.niri =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.niri.nixosModules.niri
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
niri = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.niri-unstable;
|
|
||||||
};
|
|
||||||
uwsm = {
|
|
||||||
waylandCompositors.niri = {
|
|
||||||
prettyName = "Niri";
|
|
||||||
binPath = "/run/current-system/sw/bin/niri-session";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.xwayland-satellite-unstable ];
|
|
||||||
};
|
|
||||||
|
|
||||||
flake.modules.homeManager.niri =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
# Executables
|
|
||||||
foot = lib.getExe' config.programs.foot.package "foot";
|
|
||||||
vicinae = lib.getExe' config.programs.vicinae.package "vicinae";
|
|
||||||
yazi = lib.getExe' config.programs.yazi.package "yazi";
|
|
||||||
noctalia-shell = lib.getExe' config.programs.noctalia-shell.package "noctalia-shell";
|
|
||||||
playerctl = lib.getExe' pkgs.playerctl "playerctl";
|
|
||||||
wpctl = lib.getExe' pkgs.wireplumber "wpctl";
|
|
||||||
brightnessctl = lib.getExe' pkgs.brightnessctl "brightnessctl";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = [
|
|
||||||
pkgs.nautilus
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
configPackages = [ pkgs.gnome-session ];
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gnome
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."niri/config.kdl".text = ''
|
|
||||||
input {
|
|
||||||
keyboard {
|
|
||||||
xkb {
|
|
||||||
layout "us"
|
|
||||||
model ""
|
|
||||||
rules ""
|
|
||||||
variant ""
|
|
||||||
options "compose:ralt"
|
|
||||||
}
|
|
||||||
repeat-delay 400
|
|
||||||
repeat-rate 35
|
|
||||||
track-layout "global"
|
|
||||||
}
|
|
||||||
touchpad {
|
|
||||||
tap
|
|
||||||
dwt
|
|
||||||
drag true
|
|
||||||
drag-lock
|
|
||||||
scroll-method "two-finger"
|
|
||||||
click-method "clickfinger"
|
|
||||||
tap-button-map "left-right-middle"
|
|
||||||
}
|
|
||||||
warp-mouse-to-focus mode="center-xy-always"
|
|
||||||
focus-follows-mouse
|
|
||||||
mod-key "Super"
|
|
||||||
}
|
|
||||||
screenshot-path "${config.xdg.userDirs.extraConfig.SCREENSHOTS}/%Y%m%d-%H%M%S.png"
|
|
||||||
prefer-no-csd
|
|
||||||
layout {
|
|
||||||
gaps 16
|
|
||||||
struts {
|
|
||||||
left 0
|
|
||||||
right 0
|
|
||||||
top 0
|
|
||||||
bottom 0
|
|
||||||
}
|
|
||||||
focus-ring { width 4; }
|
|
||||||
border { off; }
|
|
||||||
default-column-width
|
|
||||||
center-focused-column "never"
|
|
||||||
}
|
|
||||||
cursor {
|
|
||||||
xcursor-theme "${config.home.pointerCursor.name}"
|
|
||||||
xcursor-size ${toString config.home.pointerCursor.size}
|
|
||||||
hide-when-typing
|
|
||||||
}
|
|
||||||
hotkey-overlay { skip-at-startup; }
|
|
||||||
environment { "NIXOS_OZONE_WL" "1"; }
|
|
||||||
binds {
|
|
||||||
Alt+XF86AudioLowerVolume allow-when-locked=true hotkey-overlay-title="Lower microphone volume" { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SOURCE@" "0.05-"; }
|
|
||||||
Alt+XF86AudioMute allow-when-locked=true hotkey-overlay-title="Mute microphone" repeat=false { spawn "${wpctl}" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
|
||||||
Alt+XF86AudioRaiseVolume allow-when-locked=true hotkey-overlay-title="Raise microphone volume" { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SOURCE@" "0.05+"; }
|
|
||||||
Mod+A hotkey-overlay-title="Launcher" repeat=false { spawn "${vicinae}" "toggle"; }
|
|
||||||
Mod+BracketLeft hotkey-overlay-title="Move window left" repeat=false { consume-or-expel-window-left; }
|
|
||||||
Mod+BracketRight hotkey-overlay-title="Move window right" repeat=false { consume-or-expel-window-right; }
|
|
||||||
Mod+Ctrl+0 hotkey-overlay-title="Reset display scale" { spawn "output-scale" "1.0"; }
|
|
||||||
Mod+Ctrl+Equal hotkey-overlay-title="Increase display scale" { spawn "output-scale" "+0.1"; }
|
|
||||||
Mod+Ctrl+F hotkey-overlay-title="Fill empty column space" repeat=false { expand-column-to-available-width; }
|
|
||||||
Mod+Ctrl+J hotkey-overlay-title="Focus workspace down" repeat=false { focus-workspace-down; }
|
|
||||||
Mod+Ctrl+K hotkey-overlay-title="Focus workspace up" repeat=false { focus-workspace-up; }
|
|
||||||
Mod+Ctrl+Minus hotkey-overlay-title="Decrease display scale" { spawn "output-scale" "-0.1"; }
|
|
||||||
Mod+Ctrl+N hotkey-overlay-title="Clear notifications" repeat=false { spawn "${noctalia-shell}" "ipc" "call" "notifications" "clear"; }
|
|
||||||
Mod+Ctrl+Shift+J hotkey-overlay-title="Move column to workspace down" repeat=false { move-column-to-workspace-down; }
|
|
||||||
Mod+Ctrl+Shift+K hotkey-overlay-title="Move column to workspace up" repeat=false { move-column-to-workspace-up; }
|
|
||||||
Mod+E hotkey-overlay-title="File Explorer" repeat=false { spawn "${foot}" "-e" "${yazi}"; }
|
|
||||||
Mod+Equal hotkey-overlay-title="Increase column width" { set-column-width "+10%"; }
|
|
||||||
Mod+Escape hotkey-overlay-title="Session menu" repeat=false { spawn "${noctalia-shell}" "ipc" "call" "sessionMenu" "toggle"; }
|
|
||||||
Mod+F hotkey-overlay-title="Maximize Column" repeat=false { maximize-column; }
|
|
||||||
Mod+H hotkey-overlay-title="Focus window left" repeat=false { focus-column-or-monitor-left; }
|
|
||||||
Mod+J hotkey-overlay-title="Focus window down" repeat=false { focus-window-or-monitor-down; }
|
|
||||||
Mod+K hotkey-overlay-title="Focus window up" repeat=false { focus-window-or-monitor-up; }
|
|
||||||
Mod+L hotkey-overlay-title="Focus window right" repeat=false { focus-column-or-monitor-right; }
|
|
||||||
Mod+Minus hotkey-overlay-title="Decrease column width" { set-column-width "-10%"; }
|
|
||||||
Mod+N hotkey-overlay-title="Show notifications" repeat=false { spawn "${noctalia-shell}" "ipc" "call" "notifications" "toggleHistory"; }
|
|
||||||
Mod+Print hotkey-overlay-title="Screenshot window" repeat=false { screenshot-window; }
|
|
||||||
Mod+Q hotkey-overlay-title="Close window" repeat=false { close-window; }
|
|
||||||
Mod+Shift+Equal hotkey-overlay-title="Increase window height" { set-window-height "+10%"; }
|
|
||||||
Mod+Shift+F hotkey-overlay-title="Fullscreen" repeat=false { fullscreen-window; }
|
|
||||||
Mod+Shift+H hotkey-overlay-title="Move column left" repeat=false { move-column-left-or-to-monitor-left; }
|
|
||||||
Mod+Shift+J hotkey-overlay-title="Move column down" repeat=false { move-column-to-monitor-down; }
|
|
||||||
Mod+Shift+K hotkey-overlay-title="Move column up" repeat=false { move-column-to-monitor-up; }
|
|
||||||
Mod+Shift+L hotkey-overlay-title="Move column right" repeat=false { move-column-right-or-to-monitor-right; }
|
|
||||||
Mod+Shift+Minus hotkey-overlay-title="Decrease window height" { set-window-height "-10%"; }
|
|
||||||
Mod+Slash hotkey-overlay-title="Show hotkeys" repeat=false { show-hotkey-overlay; }
|
|
||||||
Mod+T hotkey-overlay-title="Toggle tabbed column" repeat=false { toggle-column-tabbed-display; }
|
|
||||||
Mod+Tab hotkey-overlay-title="Toggle overview" repeat=false { toggle-overview; }
|
|
||||||
Mod+W hotkey-overlay-title="Terminal" repeat=false { spawn "${foot}"; }
|
|
||||||
Mod+Z hotkey-overlay-title="Toggle floating" repeat=false { toggle-window-floating; }
|
|
||||||
Print hotkey-overlay-title="Screenshot" repeat=false { screenshot show-pointer=false; }
|
|
||||||
Shift+Print hotkey-overlay-title="Screenshot screen" repeat=false { screenshot-screen show-pointer=false; }
|
|
||||||
XF86AudioLowerVolume allow-when-locked=true hotkey-overlay-title="Lower volume" { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"; }
|
|
||||||
XF86AudioMute allow-when-locked=true hotkey-overlay-title="Mute playback" repeat=false { spawn "${wpctl}" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
|
||||||
XF86AudioNext hotkey-overlay-title="Next track" repeat=false { spawn "${playerctl}" "next"; }
|
|
||||||
XF86AudioPlay hotkey-overlay-title="Play / pause track" repeat=false { spawn "${playerctl}" "play-pause"; }
|
|
||||||
XF86AudioPrev hotkey-overlay-title="Previous track" repeat=false { spawn "${playerctl}" "previous"; }
|
|
||||||
XF86AudioRaiseVolume allow-when-locked=true hotkey-overlay-title="Raise volume" { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"; }
|
|
||||||
XF86MonBrightnessDown allow-when-locked=true hotkey-overlay-title="Decrease brightness" { spawn "${brightnessctl}" "set" "5%-"; }
|
|
||||||
XF86MonBrightnessUp allow-when-locked=true hotkey-overlay-title="Increase brightness" { spawn "${brightnessctl}" "set" "5%+"; }
|
|
||||||
}
|
|
||||||
spawn-at-startup "noctalia-shell"
|
|
||||||
blur {
|
|
||||||
passes 2
|
|
||||||
offset 4.0
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
geometry-corner-radius 10.000000 10.000000 10.000000 10.000000
|
|
||||||
clip-to-geometry true
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="foot"
|
|
||||||
match app-id="Alacritty"
|
|
||||||
default-column-width { proportion 0.400000; }
|
|
||||||
opacity 0.870000
|
|
||||||
background-effect {
|
|
||||||
blur true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
layer-rule {
|
|
||||||
match namespace="^noctalia-overview*"
|
|
||||||
place-within-backdrop true
|
|
||||||
}
|
|
||||||
gestures { hot-corners { off; }; }
|
|
||||||
xwayland-satellite { path "${lib.getExe pkgs.xwayland-satellite-unstable}"; }
|
|
||||||
'';
|
|
||||||
# settings = {
|
|
||||||
# input = {
|
|
||||||
# keyboard = {
|
|
||||||
# xkb = {
|
|
||||||
# layout = "us";
|
|
||||||
# options = "compose:ralt";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# touchpad = {
|
|
||||||
# enable = true;
|
|
||||||
# click-method = "clickfinger";
|
|
||||||
# drag = true;
|
|
||||||
# drag-lock = true;
|
|
||||||
# dwt = true;
|
|
||||||
# natural-scroll = false;
|
|
||||||
# scroll-method = "two-finger";
|
|
||||||
# tap = true;
|
|
||||||
# tap-button-map = "left-right-middle"; # Mouse button click to register when tapping with 1, 2, or 3 fingers
|
|
||||||
# };
|
|
||||||
# warp-mouse-to-focus = {
|
|
||||||
# enable = true;
|
|
||||||
# mode = "center-xy-always";
|
|
||||||
# };
|
|
||||||
# focus-follows-mouse = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
# mod-key = "Super";
|
|
||||||
# };
|
|
||||||
# binds = {
|
|
||||||
# # General
|
|
||||||
# "Mod+Slash" = {
|
|
||||||
# action.show-hotkey-overlay = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Show hotkeys";
|
|
||||||
# };
|
|
||||||
# "Mod+Q" = {
|
|
||||||
# action.close-window = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Close window";
|
|
||||||
# };
|
|
||||||
# "Mod+W" = {
|
|
||||||
# action.spawn = foot;
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Terminal";
|
|
||||||
# };
|
|
||||||
# "Mod+A" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# vicinae
|
|
||||||
# "toggle"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Launcher";
|
|
||||||
# };
|
|
||||||
# "Mod+E" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# foot
|
|
||||||
# "-e"
|
|
||||||
# yazi
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "File Explorer";
|
|
||||||
# };
|
|
||||||
# "Mod+Escape" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# noctalia-shell
|
|
||||||
# "ipc"
|
|
||||||
# "call"
|
|
||||||
# "sessionMenu"
|
|
||||||
# "toggle"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Session menu";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Notifications
|
|
||||||
# "Mod+N" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# noctalia-shell
|
|
||||||
# "ipc"
|
|
||||||
# "call"
|
|
||||||
# "notifications"
|
|
||||||
# "toggleHistory"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Show notifications";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+N" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# noctalia-shell
|
|
||||||
# "ipc"
|
|
||||||
# "call"
|
|
||||||
# "notifications"
|
|
||||||
# "clear"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Clear notifications";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Media keys
|
|
||||||
# "XF86AudioPrev" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# playerctl
|
|
||||||
# "previous"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Previous track";
|
|
||||||
# };
|
|
||||||
# "XF86AudioPlay" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# playerctl
|
|
||||||
# "play-pause"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Play / pause track";
|
|
||||||
# };
|
|
||||||
# "XF86AudioNext" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# playerctl
|
|
||||||
# "next"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Next track";
|
|
||||||
# };
|
|
||||||
# "XF86AudioRaiseVolume" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# wpctl
|
|
||||||
# "set-volume"
|
|
||||||
# "@DEFAULT_AUDIO_SINK@"
|
|
||||||
# "0.05+"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Raise volume";
|
|
||||||
# };
|
|
||||||
# "XF86AudioLowerVolume" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# wpctl
|
|
||||||
# "set-volume"
|
|
||||||
# "@DEFAULT_AUDIO_SINK@"
|
|
||||||
# "0.05-"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Lower volume";
|
|
||||||
# };
|
|
||||||
# "XF86AudioMute" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# wpctl
|
|
||||||
# "set-mute"
|
|
||||||
# "@DEFAULT_AUDIO_SINK@"
|
|
||||||
# "toggle"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Mute playback";
|
|
||||||
# };
|
|
||||||
# "Alt+XF86AudioRaiseVolume" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# wpctl
|
|
||||||
# "set-volume"
|
|
||||||
# "@DEFAULT_AUDIO_SOURCE@"
|
|
||||||
# "0.05+"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Raise microphone volume";
|
|
||||||
# };
|
|
||||||
# "Alt+XF86AudioLowerVolume" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# wpctl
|
|
||||||
# "set-volume"
|
|
||||||
# "@DEFAULT_AUDIO_SOURCE@"
|
|
||||||
# "0.05-"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Lower microphone volume";
|
|
||||||
# };
|
|
||||||
# "Alt+XF86AudioMute" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# wpctl
|
|
||||||
# "set-mute"
|
|
||||||
# "@DEFAULT_AUDIO_SOURCE@"
|
|
||||||
# "toggle"
|
|
||||||
# ];
|
|
||||||
# repeat = false;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Mute microphone";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Brightness
|
|
||||||
# "XF86MonBrightnessUp" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# brightnessctl
|
|
||||||
# "set"
|
|
||||||
# "5%+"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Increase brightness";
|
|
||||||
# };
|
|
||||||
# "XF86MonBrightnessDown" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# brightnessctl
|
|
||||||
# "set"
|
|
||||||
# "5%-"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# allow-when-locked = true;
|
|
||||||
# hotkey-overlay.title = "Decrease brightness";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Screen capture
|
|
||||||
# "Print" = {
|
|
||||||
# action.screenshot = {
|
|
||||||
# show-pointer = false;
|
|
||||||
# };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Screenshot";
|
|
||||||
# };
|
|
||||||
# "Mod+Print" = {
|
|
||||||
# action.screenshot-window = {
|
|
||||||
# # show-pointer = false;
|
|
||||||
# };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Screenshot window";
|
|
||||||
# };
|
|
||||||
# "Shift+Print" = {
|
|
||||||
# action.screenshot-screen = {
|
|
||||||
# show-pointer = false;
|
|
||||||
# };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Screenshot screen";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Display scaling
|
|
||||||
# "Mod+Ctrl+Equal" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# "output-scale"
|
|
||||||
# "+0.1"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Increase display scale";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+Minus" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# "output-scale"
|
|
||||||
# "-0.1"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Decrease display scale";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+0" = {
|
|
||||||
# action.spawn = [
|
|
||||||
# "output-scale"
|
|
||||||
# "1.0"
|
|
||||||
# ];
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Reset display scale";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Window and column size
|
|
||||||
# "Mod+F" = {
|
|
||||||
# action.maximize-column = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Maximize Column";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+F" = {
|
|
||||||
# action.fullscreen-window = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Fullscreen";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+F" = {
|
|
||||||
# action.expand-column-to-available-width = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Fill empty column space";
|
|
||||||
# };
|
|
||||||
# "Mod+Equal" = {
|
|
||||||
# action.set-column-width = "+10%";
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Increase column width";
|
|
||||||
# };
|
|
||||||
# "Mod+Minus" = {
|
|
||||||
# action.set-column-width = "-10%";
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Decrease column width";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+Equal" = {
|
|
||||||
# action.set-window-height = "+10%";
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Increase window height";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+Minus" = {
|
|
||||||
# action.set-window-height = "-10%";
|
|
||||||
# repeat = true;
|
|
||||||
# hotkey-overlay.title = "Decrease window height";
|
|
||||||
# };
|
|
||||||
# "Mod+Z" = {
|
|
||||||
# action.toggle-window-floating = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Toggle floating";
|
|
||||||
# };
|
|
||||||
# "Mod+T" = {
|
|
||||||
# action.toggle-column-tabbed-display = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Toggle tabbed column";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Window and column movement
|
|
||||||
# "Mod+K" = {
|
|
||||||
# action.focus-window-or-monitor-up = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Focus window up";
|
|
||||||
# };
|
|
||||||
# "Mod+J" = {
|
|
||||||
# action.focus-window-or-monitor-down = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Focus window down";
|
|
||||||
# };
|
|
||||||
# "Mod+H" = {
|
|
||||||
# action.focus-column-or-monitor-left = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Focus window left";
|
|
||||||
# };
|
|
||||||
# "Mod+L" = {
|
|
||||||
# action.focus-column-or-monitor-right = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Focus window right";
|
|
||||||
# };
|
|
||||||
# "Mod+BracketLeft" = {
|
|
||||||
# action.consume-or-expel-window-left = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move window left";
|
|
||||||
# };
|
|
||||||
# "Mod+BracketRight" = {
|
|
||||||
# action.consume-or-expel-window-right = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move window right";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+K" = {
|
|
||||||
# action.move-column-to-monitor-up = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move column up";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+J" = {
|
|
||||||
# action.move-column-to-monitor-down = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move column down";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+H" = {
|
|
||||||
# action.move-column-left-or-to-monitor-left = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move column left";
|
|
||||||
# };
|
|
||||||
# "Mod+Shift+L" = {
|
|
||||||
# action.move-column-right-or-to-monitor-right = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move column right";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Workspaces
|
|
||||||
# "Mod+Ctrl+K" = {
|
|
||||||
# action.focus-workspace-up = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Focus workspace up";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+J" = {
|
|
||||||
# action.focus-workspace-down = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Focus workspace down";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+Shift+K" = {
|
|
||||||
# action.move-column-to-workspace-up = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move column to workspace up";
|
|
||||||
# };
|
|
||||||
# "Mod+Ctrl+Shift+J" = {
|
|
||||||
# action.move-column-to-workspace-down = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Move column to workspace down";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Overview
|
|
||||||
# "Mod+Tab" = {
|
|
||||||
# action.toggle-overview = { };
|
|
||||||
# repeat = false;
|
|
||||||
# hotkey-overlay.title = "Toggle overview";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# window-rules = [
|
|
||||||
# {
|
|
||||||
# geometry-corner-radius = {
|
|
||||||
# bottom-left = 10.0;
|
|
||||||
# bottom-right = 10.0;
|
|
||||||
# top-left = 10.0;
|
|
||||||
# top-right = 10.0;
|
|
||||||
# };
|
|
||||||
# clip-to-geometry = true;
|
|
||||||
# }
|
|
||||||
# # Unfortunately windows like firefox extensions set their titles after spawning preventing
|
|
||||||
# # the window rules from being applied. There is a script to fix this but it is pretty hacky.
|
|
||||||
# # {
|
|
||||||
# # matches = [
|
|
||||||
# # {
|
|
||||||
# # title = "^Extension:.*";
|
|
||||||
# # app-id = "firefox";
|
|
||||||
# # }
|
|
||||||
# # ];
|
|
||||||
# # open-floating = true;
|
|
||||||
# # }
|
|
||||||
# {
|
|
||||||
# matches = [
|
|
||||||
# { app-id = "foot"; }
|
|
||||||
# { app-id = "Alacritty"; }
|
|
||||||
# ];
|
|
||||||
# opacity = 0.90;
|
|
||||||
# default-column-width.proportion = 0.4;
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# layer-rules = [
|
|
||||||
# {
|
|
||||||
# # Use noctalia wallpaper as overview backdrop
|
|
||||||
# matches = [ { namespace = "^noctalia-overview*"; } ];
|
|
||||||
# place-within-backdrop = true;
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# prefer-no-csd = true;
|
|
||||||
# screenshot-path = "${config.xdg.userDirs.extraConfig.SCREENSHOTS}/%Y%m%d-%H%M%S.png";
|
|
||||||
# hotkey-overlay = {
|
|
||||||
# skip-at-startup = true;
|
|
||||||
# };
|
|
||||||
# spawn-at-startup = [
|
|
||||||
# { argv = [ "noctalia-shell" ]; }
|
|
||||||
# ];
|
|
||||||
# cursor = {
|
|
||||||
# size = config.home.pointerCursor.size;
|
|
||||||
# theme = config.home.pointerCursor.name;
|
|
||||||
# hide-when-typing = true;
|
|
||||||
# };
|
|
||||||
# gestures = {
|
|
||||||
# hot-corners.enable = false;
|
|
||||||
# };
|
|
||||||
# xwayland-satellite = {
|
|
||||||
# enable = true;
|
|
||||||
# path = lib.getExe pkgs.xwayland-satellite-unstable;
|
|
||||||
# };
|
|
||||||
# environment = {
|
|
||||||
# "NIXOS_OZONE_WL" = "1";
|
|
||||||
# };
|
|
||||||
# debug = {
|
|
||||||
# # Allows notification actions and window activation from Noctalia.
|
|
||||||
# honor-xdg-activation-with-invalid-serial = { };
|
|
||||||
# };
|
|
||||||
# # Support for external 'includes' sounds like it is in the works.
|
|
||||||
# # Will just have to wait until then for noctalia color scheme integration.
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.nix = {
|
|
||||||
imports = [
|
|
||||||
inputs.nur.modules.nixos.default
|
|
||||||
];
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
|
||||||
settings = {
|
|
||||||
experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
substituters = [
|
|
||||||
"https://cache.nixos.org"
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://devenv.cachix.org"
|
|
||||||
"https://hyprland.cachix.org"
|
|
||||||
"https://vicinae.cachix.org"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
"vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs = {
|
|
||||||
config.allowUnfree = true;
|
|
||||||
overlays = [
|
|
||||||
self.overlays.default
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.noctalia =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.noctalia.homeModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.noctalia-shell = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
avatarImage = "~/.face";
|
|
||||||
autoStartAuth = true;
|
|
||||||
allowPasswordWithFprintd = true;
|
|
||||||
};
|
|
||||||
location.name = "Washington DC";
|
|
||||||
bar = {
|
|
||||||
widgets = {
|
|
||||||
right = [
|
|
||||||
{
|
|
||||||
id = "plugin:tailscale";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Tray";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "NotificationHistory";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Battery";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Volume";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Brightness";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "ControlCenter";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
templates = {
|
|
||||||
activeTemplates = [
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "alacritty";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "discord";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "foot";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "helix";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "niri";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "pywalfox";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "qt";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "vicinae";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "yazi";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
id = "zed";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
enableUserTheming = true;
|
|
||||||
};
|
|
||||||
wallpaper = {
|
|
||||||
enabled = true;
|
|
||||||
overviewEnabled = true;
|
|
||||||
directory = "${config.xdg.userDirs.extraConfig.WALLPAPERS}";
|
|
||||||
};
|
|
||||||
colorSchemes.predefinedScheme = "Catppuccin";
|
|
||||||
};
|
|
||||||
plugins = {
|
|
||||||
sources = [
|
|
||||||
{
|
|
||||||
enabled = true;
|
|
||||||
name = "Noctalia Plugins";
|
|
||||||
url = "https://github.com/noctalia-dev/noctalia-plugins";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
states = {
|
|
||||||
tailscale = {
|
|
||||||
enabled = true;
|
|
||||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
|
||||||
};
|
|
||||||
activate-linux = {
|
|
||||||
enabled = true;
|
|
||||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
version = 1;
|
|
||||||
};
|
|
||||||
pluginSettings = {
|
|
||||||
tailscale = {
|
|
||||||
refreshInterval = 5000;
|
|
||||||
compactMode = true;
|
|
||||||
showIpAddress = false;
|
|
||||||
showPeerCount = false;
|
|
||||||
hideDisconnected = false;
|
|
||||||
terminalCommand = "foot";
|
|
||||||
pingCount = 5;
|
|
||||||
defaultPeerAction = "copy-ip";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.pipewire = {
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
# If you want to use JACK applications, uncomment this
|
|
||||||
# jack.enable = true;
|
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
||||||
# no need to redefine it in your config for now)
|
|
||||||
# media-session.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.power-management = {
|
|
||||||
services = {
|
|
||||||
upower.enable = true;
|
|
||||||
|
|
||||||
system76-scheduler.settings.cfsProfiles.enable = true;
|
|
||||||
|
|
||||||
tlp = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
CPU_BOOST_ON_AC = 1;
|
|
||||||
CPU_BOOST_ON_BAT = 0;
|
|
||||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
|
||||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
|
||||||
PLATFORM_PROFILE_ON_AC = "performance";
|
|
||||||
PLATFORM_PROFILE_ON_BAT = "balanced";
|
|
||||||
START_CHARGE_THRESH_BAT1 = 65; # Only STOP_CHARGE_THRESH available on Framework
|
|
||||||
STOP_CHARGE_THRESH_BAT1 = 80;
|
|
||||||
# Fixes stuttering Hyprland animations on Intel iGPU (https://wiki.hypr.land/Configuring/Performance/)
|
|
||||||
INTEL_GPU_MIN_FREQ_ON_AC = 300;
|
|
||||||
INTEL_GPU_MIN_FREQ_ON_BAT = 300;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Disable GNOME's power management (conflicts with TLP)
|
|
||||||
power-profiles-daemon.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
powerManagement = {
|
|
||||||
enable = true;
|
|
||||||
powertop.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.printing =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
printing = {
|
|
||||||
enable = true;
|
|
||||||
drivers = with pkgs; [
|
|
||||||
gutenprint
|
|
||||||
cnijfilter2
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
avahi = {
|
|
||||||
enable = true;
|
|
||||||
nssmdns4 = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.sane.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.ssh = {
|
|
||||||
programs.ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
|
||||||
"*" = {
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
identityFile = [ "~/.ssh/id_ed25519_sk_rk" ];
|
|
||||||
};
|
|
||||||
"stu" = {
|
|
||||||
hostname = "stu.cs.jmu.edu";
|
|
||||||
user = "tamassno";
|
|
||||||
localForwards = [
|
|
||||||
{
|
|
||||||
bind.port = 5432;
|
|
||||||
host = {
|
|
||||||
address = "data.cs.jmu.edu";
|
|
||||||
port = 5432;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
serverAliveCountMax = 5;
|
|
||||||
serverAliveInterval = 60;
|
|
||||||
};
|
|
||||||
"cluster" = {
|
|
||||||
hostname = "login02.cluster.cs.jmu.edu";
|
|
||||||
user = "tamassno";
|
|
||||||
proxyJump = "stu";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.starship =
|
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
add_newline = true;
|
|
||||||
format = lib.strings.concatStrings [
|
|
||||||
"[ ╭─[\\[](1)$username([@](bold 2)$hostname)[\\]:](1) $directory( $git_branch)](5)"
|
|
||||||
"$line_break"
|
|
||||||
"[ ╰─$character](5)"
|
|
||||||
];
|
|
||||||
username = {
|
|
||||||
style_root = "white";
|
|
||||||
format = "[$user](3)";
|
|
||||||
disabled = false;
|
|
||||||
show_always = true;
|
|
||||||
};
|
|
||||||
hostname = {
|
|
||||||
format = "[$hostname](bold 4)";
|
|
||||||
disabled = false;
|
|
||||||
ssh_only = false;
|
|
||||||
};
|
|
||||||
character = {
|
|
||||||
success_symbol = "[❯](bold 5)";
|
|
||||||
error_symbol = "[✘](bold 5)";
|
|
||||||
vimcmd_symbol = "[❮](bold 5)";
|
|
||||||
};
|
|
||||||
directory = {
|
|
||||||
read_only = "";
|
|
||||||
format = "[ $path](5)";
|
|
||||||
read_only_style = "bold white";
|
|
||||||
truncation_length = 5;
|
|
||||||
};
|
|
||||||
git_branch = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bright-black";
|
|
||||||
format = "[$symbol $branch]($style)";
|
|
||||||
};
|
|
||||||
scan_timeout = 100;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.styling =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
home = {
|
|
||||||
pointerCursor = {
|
|
||||||
name = "catppuccin-mocha-dark-cursors";
|
|
||||||
package = pkgs.catppuccin-cursors.mochaDark;
|
|
||||||
size = 16;
|
|
||||||
x11.enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
colorScheme = "dark";
|
|
||||||
iconTheme = {
|
|
||||||
name = "MoreWaita";
|
|
||||||
package = pkgs.morewaita-icon-theme;
|
|
||||||
};
|
|
||||||
theme = {
|
|
||||||
name = "adw-gtk3-dark";
|
|
||||||
package = pkgs.adw-gtk3;
|
|
||||||
};
|
|
||||||
gtk4.theme = config.gtk.theme;
|
|
||||||
};
|
|
||||||
|
|
||||||
qt =
|
|
||||||
let
|
|
||||||
qt_settings = ver: {
|
|
||||||
Appearance = {
|
|
||||||
color_scheme_path = "${config.xdg.configHome}/${ver}/colors/noctalia.conf";
|
|
||||||
custom_palette = true;
|
|
||||||
icon_theme = "MoreWaita";
|
|
||||||
standard_dialogs = "xdgdesktopportal";
|
|
||||||
style = "Breeze";
|
|
||||||
};
|
|
||||||
Fonts = {
|
|
||||||
fixed = "\"${builtins.head config.fonts.fontconfig.defaultFonts.monospace},12\"";
|
|
||||||
general = "\"${builtins.head config.fonts.fontconfig.defaultFonts.sansSerif},12\"";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "qtct";
|
|
||||||
style.name = "breeze";
|
|
||||||
qt5ctSettings = qt_settings "qt5ct";
|
|
||||||
qt6ctSettings = qt_settings "qt6ct";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
QS_ICON_THEME = "MoreWaita";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.swappy =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.swappy = {
|
|
||||||
enable = true;
|
|
||||||
# Configuration options: https://github.com/jtheoof/swappy?tab=readme-ov-file#config
|
|
||||||
settings = {
|
|
||||||
Default = {
|
|
||||||
save_dir = config.xdg.userDirs.extraConfig.SCREENSHOTS;
|
|
||||||
save_filename_format = "%Y%m%d-%H%M%S.png";
|
|
||||||
show_panel = false;
|
|
||||||
auto_save = false;
|
|
||||||
early_exit = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.tailscale =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
useRoutingFeatures = "client";
|
|
||||||
authKeyFile = config.age.secrets.tailscale-auth.path;
|
|
||||||
|
|
||||||
# * Only applied if `authKeyFile` is specified
|
|
||||||
extraUpFlags = [
|
|
||||||
"--ssh"
|
|
||||||
"--accept-routes=true"
|
|
||||||
];
|
|
||||||
extraSetFlags = [
|
|
||||||
"--operator=eclypse"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
age.secrets.tailscale-auth.rekeyFile = "${inputs.secrets}/tailscale-auth.age";
|
|
||||||
|
|
||||||
# Taildrop
|
|
||||||
systemd.user.services.taildrop = {
|
|
||||||
description = "Taildrop File Receiver Service";
|
|
||||||
wantedBy = [ "default.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
ExecStart = "${lib.getExe config.services.tailscale.package} file get --verbose --loop %h/Downloads/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.vesktop = {
|
|
||||||
programs.vesktop = {
|
|
||||||
enable = true;
|
|
||||||
vencord = {
|
|
||||||
settings = {
|
|
||||||
oUpdate = false;
|
|
||||||
autoUpdateNotification = false;
|
|
||||||
notifyAboutUpdates = false;
|
|
||||||
useQuickCss = true;
|
|
||||||
disableMinSize = true;
|
|
||||||
enabledThemes = [ "noctalia.theme.css" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.vicinae = {
|
|
||||||
# Not using Vicinae's flake because the server fucking seg faults immediately
|
|
||||||
programs.vicinae = {
|
|
||||||
enable = true;
|
|
||||||
systemd = {
|
|
||||||
enable = true;
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
# For configuration option documentation, see: https://github.com/vicinaehq/vicinae/blob/f6222f1e82fe2077ad42f10a6d6837dc61c67fd0/vicinae/assets/config.jsonc
|
|
||||||
settings = {
|
|
||||||
escape_key_behavior = "close_window";
|
|
||||||
close_on_focus_loss = true;
|
|
||||||
pop_to_root_on_close = true;
|
|
||||||
favicon_service = "twenty";
|
|
||||||
telemetry = {
|
|
||||||
system_info = false;
|
|
||||||
};
|
|
||||||
font = {
|
|
||||||
normal = {
|
|
||||||
size = 12;
|
|
||||||
family = "JetBrainsMono Nerd Font";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
theme = {
|
|
||||||
light = {
|
|
||||||
name = "noctalia";
|
|
||||||
icon_theme = "MoreWaita";
|
|
||||||
};
|
|
||||||
dark = {
|
|
||||||
name = "noctalia";
|
|
||||||
icon_theme = "MoreWaita";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.virtualization =
|
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ virtualbox ];
|
|
||||||
kernelParams = [
|
|
||||||
"kvm.enable_virt_at_load=0" # Fixes some virtuallization issues
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
podman.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.distrobox ];
|
|
||||||
|
|
||||||
users.extraGroups.vboxusers.members = [ "eclypse" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.wayland = {
|
|
||||||
programs = {
|
|
||||||
uwsm.enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.x11 = {
|
|
||||||
services.xserver = {
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# You can disable this if you're only using the Wayland session.
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
xkb = {
|
|
||||||
layout = "us";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.xdg =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
xdg = {
|
|
||||||
enable = true;
|
|
||||||
userDirs = {
|
|
||||||
enable = true;
|
|
||||||
setSessionVariables = true;
|
|
||||||
createDirectories = true;
|
|
||||||
extraConfig = {
|
|
||||||
DEV = "${config.home.homeDirectory}/Dev";
|
|
||||||
SCREENSHOTS = "${config.xdg.userDirs.pictures}/Screenshots";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.yazi =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
wl-clipboard-rs
|
|
||||||
dragon-drop
|
|
||||||
trash-cli
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.yazi = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
shellWrapperName = "y";
|
|
||||||
plugins = with pkgs.yaziPlugins; {
|
|
||||||
inherit
|
|
||||||
git
|
|
||||||
full-border
|
|
||||||
chmod
|
|
||||||
compress
|
|
||||||
wl-clipboard
|
|
||||||
recycle-bin
|
|
||||||
mount
|
|
||||||
lazygit
|
|
||||||
;
|
|
||||||
};
|
|
||||||
initLua = ''
|
|
||||||
require("git"):setup {
|
|
||||||
-- Order of status signs showing in the linemode
|
|
||||||
order = 1500,
|
|
||||||
}
|
|
||||||
require("full-border"):setup()
|
|
||||||
require("recycle-bin"):setup()
|
|
||||||
'';
|
|
||||||
keymap =
|
|
||||||
let
|
|
||||||
leader = "c";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
mgr.prepend_keymap = [
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"d"
|
|
||||||
];
|
|
||||||
run = "shell -- dragon-drop -x -i -T %s1";
|
|
||||||
desc = "Open a prompt to drag and drop a file";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"c"
|
|
||||||
];
|
|
||||||
run = "plugin chmod";
|
|
||||||
desc = "Chmod on selected files";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"a"
|
|
||||||
"a"
|
|
||||||
];
|
|
||||||
run = "plugin compress";
|
|
||||||
desc = "Archive selected files";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"a"
|
|
||||||
"p"
|
|
||||||
];
|
|
||||||
run = "plugin compress -p";
|
|
||||||
desc = "Archive selected files (password)";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"a"
|
|
||||||
"h"
|
|
||||||
];
|
|
||||||
run = "plugin compress -ph";
|
|
||||||
desc = "Archive selected files (password+header)";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"a"
|
|
||||||
"h"
|
|
||||||
];
|
|
||||||
run = "plugin compress -ph";
|
|
||||||
desc = "Archive selected files (password+header)";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"a"
|
|
||||||
"l"
|
|
||||||
];
|
|
||||||
run = "plugin compress -l";
|
|
||||||
desc = "Archive selected files (compression level)";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"a"
|
|
||||||
"u"
|
|
||||||
];
|
|
||||||
run = "plugin compress -phl";
|
|
||||||
desc = "Archive selected files (password+header+level)";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"y"
|
|
||||||
];
|
|
||||||
run = "plugin wl-clipboard";
|
|
||||||
desc = "Copy file to clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"r"
|
|
||||||
];
|
|
||||||
run = "plugin recycle-bin";
|
|
||||||
desc = "Open Recycle Bin Menu";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"m"
|
|
||||||
];
|
|
||||||
run = "plugin mount";
|
|
||||||
desc = "Open Mount Manager";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [
|
|
||||||
leader
|
|
||||||
"l"
|
|
||||||
];
|
|
||||||
run = "plugin lazygit";
|
|
||||||
desc = "Open lazygit";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
plugin = {
|
|
||||||
# Disable all preset previewers, preloaders
|
|
||||||
# This is recommended by yazi when working with network shares
|
|
||||||
preloaders = [ ];
|
|
||||||
previewers = [ ];
|
|
||||||
|
|
||||||
prepend_fetchers = [
|
|
||||||
{
|
|
||||||
id = "git";
|
|
||||||
url = "*";
|
|
||||||
run = "git";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "git";
|
|
||||||
url = "*/";
|
|
||||||
run = "git";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.yubikey =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
yubikey-manager.enable = true;
|
|
||||||
yubikey-touch-detector.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.age-plugin-yubikey
|
|
||||||
];
|
|
||||||
|
|
||||||
services.yubikey-agent.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.zed =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.zed-editor = {
|
|
||||||
enable = true;
|
|
||||||
extensions = [
|
|
||||||
"nix"
|
|
||||||
];
|
|
||||||
extraPackages = [ pkgs.nixd ];
|
|
||||||
|
|
||||||
userSettings = {
|
|
||||||
features = {
|
|
||||||
edit_prediction_provider = "copilot";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,384 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.zellij =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.zellij =
|
|
||||||
let
|
|
||||||
mod = "Alt"; # Can be one of "Ctrl", "Alt", "Shift", "Super"
|
|
||||||
|
|
||||||
action = name: { ${name} = { }; };
|
|
||||||
actionWith = name: args: { ${name}._args = args; };
|
|
||||||
switchMode = mode: actionWith "SwitchToMode" [ mode ];
|
|
||||||
bind =
|
|
||||||
{ keys, actions }:
|
|
||||||
{
|
|
||||||
bind = {
|
|
||||||
_args = [ keys ];
|
|
||||||
_children = actions;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
modeBinds = mode: bindings: {
|
|
||||||
${mode}._children = map bind bindings;
|
|
||||||
};
|
|
||||||
sharedExcept = modes: bindings: {
|
|
||||||
shared_except = {
|
|
||||||
_args = modes;
|
|
||||||
_children = map bind bindings;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
theme = "catppuccin-mocha";
|
|
||||||
show_startup_tips = false;
|
|
||||||
default_mode = "locked";
|
|
||||||
|
|
||||||
ui._children = [
|
|
||||||
{
|
|
||||||
pane_frames._children = [
|
|
||||||
{ rounded_corners = true; }
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
keybinds = {
|
|
||||||
_props = {
|
|
||||||
clear-defaults = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
_children = [
|
|
||||||
(modeBinds "locked" [
|
|
||||||
{
|
|
||||||
keys = "${mod} q";
|
|
||||||
actions = [
|
|
||||||
(switchMode "Normal")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
(sharedExcept
|
|
||||||
[ "locked" "normal" "renamepane" "renametab" ]
|
|
||||||
[
|
|
||||||
{
|
|
||||||
keys = "Esc";
|
|
||||||
actions = [ (switchMode "Normal") ];
|
|
||||||
}
|
|
||||||
]
|
|
||||||
)
|
|
||||||
(modeBinds "normal" [
|
|
||||||
{
|
|
||||||
keys = "Esc";
|
|
||||||
actions = [ (switchMode "Locked") ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "h";
|
|
||||||
actions = [ (actionWith "MoveFocusOrTab" [ "Left" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "j";
|
|
||||||
actions = [ (actionWith "MoveFocus" [ "Down" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "k";
|
|
||||||
actions = [ (actionWith "MoveFocus" [ "Up" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "l";
|
|
||||||
actions = [ (actionWith "MoveFocusOrTab" [ "Right" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "H";
|
|
||||||
actions = [ (action "GoToPreviousTab") ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "L";
|
|
||||||
actions = [ (action "GoToNextTab") ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "p";
|
|
||||||
actions = [ (switchMode "Pane") ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "t";
|
|
||||||
actions = [ (switchMode "Tab") ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "r";
|
|
||||||
actions = [ (switchMode "Resize") ];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
(modeBinds "pane" [
|
|
||||||
{
|
|
||||||
keys = "h";
|
|
||||||
actions = [ (actionWith "MovePane" [ "Left" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "j";
|
|
||||||
actions = [ (actionWith "MovePane" [ "Down" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "k";
|
|
||||||
actions = [ (actionWith "MovePane" [ "Up" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "l";
|
|
||||||
actions = [ (actionWith "MovePane" [ "Right" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "s";
|
|
||||||
actions = [
|
|
||||||
(actionWith "NewPane" [ "stacked" ])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "d";
|
|
||||||
actions = [
|
|
||||||
(actionWith "NewPane" [ "down" ])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "r";
|
|
||||||
actions = [
|
|
||||||
(actionWith "NewPane" [ "right" ])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "x";
|
|
||||||
actions = [
|
|
||||||
(action "CloseFocus")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "e";
|
|
||||||
actions = [
|
|
||||||
(action "TogglePaneEmbedOrFloating")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "f";
|
|
||||||
actions = [
|
|
||||||
(action "ToggleFocusFullscreen")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "c";
|
|
||||||
actions = [
|
|
||||||
(switchMode "RenamePane")
|
|
||||||
(actionWith "PaneNameInput" [ 0 ])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "w";
|
|
||||||
actions = [
|
|
||||||
(action "ToggleFloatingPanes")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "[";
|
|
||||||
actions = [
|
|
||||||
(action "BreakPaneLeft")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "]";
|
|
||||||
actions = [
|
|
||||||
(action "BreakPaneRight")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
(modeBinds "tab" [
|
|
||||||
{
|
|
||||||
keys = "h";
|
|
||||||
actions = [ (actionWith "MoveTab" [ "Left" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "l";
|
|
||||||
actions = [ (actionWith "MoveTab" [ "Right" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "b";
|
|
||||||
actions = [
|
|
||||||
(action "BreakPane")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "x";
|
|
||||||
actions = [
|
|
||||||
(action "CloseTab")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "n";
|
|
||||||
actions = [
|
|
||||||
(action "NewTab")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "c";
|
|
||||||
actions = [
|
|
||||||
(switchMode "RenameTab")
|
|
||||||
(actionWith "TabNameInput" [ 0 ])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
(modeBinds "renamepane" [
|
|
||||||
{
|
|
||||||
keys = "Enter";
|
|
||||||
actions = [
|
|
||||||
(switchMode "Pane")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "Esc";
|
|
||||||
actions = [
|
|
||||||
(action "UndoRenamePane")
|
|
||||||
(switchMode "Pane")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
(modeBinds "renametab" [
|
|
||||||
{
|
|
||||||
keys = "Enter";
|
|
||||||
actions = [
|
|
||||||
(switchMode "Tab")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "Esc";
|
|
||||||
actions = [
|
|
||||||
(action "UndoRenameTab")
|
|
||||||
(switchMode "Tab")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
(modeBinds "resize" [
|
|
||||||
{
|
|
||||||
keys = "h";
|
|
||||||
actions = [ (actionWith "Resize" [ "Increase Left" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "j";
|
|
||||||
actions = [ (actionWith "Resize" [ "Increase Down" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "k";
|
|
||||||
actions = [ (actionWith "Resize" [ "Increase Up" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "l";
|
|
||||||
actions = [ (actionWith "Resize" [ "Increase Right" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "H";
|
|
||||||
actions = [ (actionWith "Resize" [ "Decrease Right" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "J";
|
|
||||||
actions = [ (actionWith "Resize" [ "Decrease Up" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "K";
|
|
||||||
actions = [ (actionWith "Resize" [ "Decrease Down" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "L";
|
|
||||||
actions = [ (actionWith "Resize" [ "Decrease Left" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "+";
|
|
||||||
actions = [ (actionWith "Resize" [ "Increase" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "=";
|
|
||||||
actions = [ (actionWith "Resize" [ "Increase" ]) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
keys = "-";
|
|
||||||
actions = [ (actionWith "Resize" [ "Decrease" ]) ];
|
|
||||||
}
|
|
||||||
])
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins = {
|
|
||||||
compact-bar = {
|
|
||||||
_props = {
|
|
||||||
location = "zellij:compact-bar";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# simplified_ui = true;
|
|
||||||
# pane_frames = true;
|
|
||||||
copy_on_select = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."zellij/layouts/default.kdl".text =
|
|
||||||
let
|
|
||||||
zjstatus = inputs.zjstatus.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
||||||
in
|
|
||||||
''
|
|
||||||
layout {
|
|
||||||
default_tab_template {
|
|
||||||
pane size=2 borderless=true {
|
|
||||||
plugin location="file:${zjstatus}/bin/zjstatus.wasm" {
|
|
||||||
hide_frame_except_for_search "true"
|
|
||||||
|
|
||||||
border_enabled "true"
|
|
||||||
border_char "─"
|
|
||||||
border_format "#[fg=#6C7086]{char}"
|
|
||||||
border_position "bottom"
|
|
||||||
|
|
||||||
format_left " {mode} #[fg=#6c7086]│ #[fg=#eba0ac] {session}"
|
|
||||||
format_center "{tabs}"
|
|
||||||
format_right ""
|
|
||||||
format_space ""
|
|
||||||
|
|
||||||
format_hide_on_overlength "true"
|
|
||||||
format_precedence "crl"
|
|
||||||
|
|
||||||
tab_normal "#[fg=#f5e0dc] {name}{fullscreen_indicator}{sync_indicator}{floating_indicator} "
|
|
||||||
tab_active "#[fg=#1e1e2e,bg=#fab387] {name}{fullscreen_indicator}{sync_indicator}{floating_indicator} "
|
|
||||||
tab_fullscreen_indicator " □"
|
|
||||||
tab_sync_indicator " "
|
|
||||||
tab_floating_indicator " "
|
|
||||||
tab_separator "#[fg=#6C7086] │ "
|
|
||||||
|
|
||||||
mode_normal "#[fg=#a6da95]NORMAL"
|
|
||||||
mode_locked "#[fg=#6e738d]LOCKED "
|
|
||||||
mode_resize "#[fg=#f38ba8]RESIZE"
|
|
||||||
mode_pane "#[fg=#89b4fa]PANE"
|
|
||||||
mode_tab "#[fg=#b4befe]TAB"
|
|
||||||
mode_scroll "#[fg=#f9e2af]SCROLL"
|
|
||||||
mode_enter_search "#[fg=#8aadf4]ENT-SEARCH"
|
|
||||||
mode_search "#[fg=#8aadf4]SEARCHARCH"
|
|
||||||
mode_rename_tab "#[fg=#b4befe]RENAME-TAB"
|
|
||||||
mode_rename_pane "#[fg=#89b4fa]RENAME-PANE"
|
|
||||||
mode_session "#[fg=#74c7ec]SESSION"
|
|
||||||
mode_move "#[fg=#f5c2e7]MOVE"
|
|
||||||
mode_prompt "#[fg=#8aadf4]PROMPT"
|
|
||||||
mode_tmux "#[fg=#f5a97f]TMUX"
|
|
||||||
|
|
||||||
command_host_command "uname -n"
|
|
||||||
command_host_format "{stdout}"
|
|
||||||
command_host_interval "0"
|
|
||||||
command_host_rendermode "static"
|
|
||||||
|
|
||||||
command_user_command "whoami"
|
|
||||||
command_user_format "{stdout}"
|
|
||||||
command_user_interval "0"
|
|
||||||
command_user_rendermode "static"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
children
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.zen-browser =
|
|
||||||
{ pkgs, config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.zen-browser.homeModules.twilight
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.zen-browser =
|
|
||||||
let
|
|
||||||
mkPluginUrl = id: "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi";
|
|
||||||
|
|
||||||
mkExtensionEntry =
|
|
||||||
{
|
|
||||||
id,
|
|
||||||
pinned ? false,
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
base = {
|
|
||||||
install_url = mkPluginUrl id;
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
if pinned then base // { default_area = "navbar"; } else base;
|
|
||||||
|
|
||||||
mkExtensionSettings = builtins.mapAttrs (
|
|
||||||
_: entry: if builtins.isAttrs entry then entry else mkExtensionEntry { id = entry; }
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
setAsDefaultBrowser = true;
|
|
||||||
languagePacks = [ "en-US" ];
|
|
||||||
policies = {
|
|
||||||
DefaultDownloadDirectory = config.xdg.userDirs.download;
|
|
||||||
DisableFirefoxAccounts = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
DisablePocket = true;
|
|
||||||
DisableProfileImport = true;
|
|
||||||
DisableProfileRefresh = true;
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DisplayBookmarksToolbar = "never";
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true; # Tracking protection is enabled by default in both the regular browser and private browsing
|
|
||||||
Locked = true; # Whether or not a user can change tracking protection
|
|
||||||
Cryptomining = true; # Block cryptomining scripts
|
|
||||||
Fingerprinting = true; # Block fingerprinting scripts
|
|
||||||
EmailTracking = true; # Block email tracking pixels and scripts
|
|
||||||
};
|
|
||||||
ExtensionSettings = mkExtensionSettings {
|
|
||||||
"uBlock0@raymondhill.net" = mkExtensionEntry {
|
|
||||||
id = "ublock-origin";
|
|
||||||
pinned = true;
|
|
||||||
};
|
|
||||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = "bitwarden-password-manager";
|
|
||||||
};
|
|
||||||
FirefoxSuggest = {
|
|
||||||
WebSuggestions = true;
|
|
||||||
SponsoredSuggestions = false;
|
|
||||||
ImproveSuggest = false;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
Homepage = {
|
|
||||||
URL = "http://100.78.212.35:30054";
|
|
||||||
Locked = true;
|
|
||||||
StartPage = "homepage";
|
|
||||||
};
|
|
||||||
OfferToSaveLogins = false;
|
|
||||||
OverrideFirstRunPage = "";
|
|
||||||
PasswordManagerEnabled = false;
|
|
||||||
PopupBlocking = {
|
|
||||||
Default = false;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
PrimaryPassword = false;
|
|
||||||
SearchBar = "unified";
|
|
||||||
ShowHomeButton = true;
|
|
||||||
SkipTermsOfUse = true;
|
|
||||||
};
|
|
||||||
profiles.default = {
|
|
||||||
search = {
|
|
||||||
force = true;
|
|
||||||
default = "google";
|
|
||||||
engines =
|
|
||||||
let
|
|
||||||
nixSnowflakeIcon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
nix-packages = {
|
|
||||||
name = "Nix Packages";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://search.nixos.org/packages";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "channel";
|
|
||||||
value = "unstable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
icon = nixSnowflakeIcon;
|
|
||||||
definedAliases = [ "@np" ];
|
|
||||||
};
|
|
||||||
nix-options = {
|
|
||||||
name = "Nix Options";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://search.nixos.org/options";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "channel";
|
|
||||||
value = "unstable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
icon = nixSnowflakeIcon;
|
|
||||||
definedAliases = [ "@no" ];
|
|
||||||
};
|
|
||||||
home-manager = {
|
|
||||||
name = "Home Manager";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://home-manager-options.extranix.com";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
icon = nixSnowflakeIcon;
|
|
||||||
definedAliases = [ "@hm" ];
|
|
||||||
};
|
|
||||||
surugaya = {
|
|
||||||
name = "Surugaya";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://www.suruga-ya.jp/search?search_word={searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
iconMapObj."16" = "https://www.suruga-ya.jp/drupal/themes/surugaya/favicon.ico";
|
|
||||||
definedAliases = [ "@suru" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
# Auto-enable extensions
|
|
||||||
"extensions.autoDisableScopes" = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.zoxide = {
|
|
||||||
programs.zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.zsh = {
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
environment.pathsToLink = [ "/share/zsh" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
flake.modules.homeManager.zsh =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = false;
|
|
||||||
antidote = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [
|
|
||||||
"Aloxaf/fzf-tab"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
dotDir = "${config.xdg.configHome}/zsh";
|
|
||||||
history = {
|
|
||||||
append = true;
|
|
||||||
findNoDups = true;
|
|
||||||
ignoreSpace = true;
|
|
||||||
ignoreDups = true;
|
|
||||||
saveNoDups = true;
|
|
||||||
share = true;
|
|
||||||
};
|
|
||||||
historySubstringSearch = {
|
|
||||||
enable = true;
|
|
||||||
searchDownKey = "^p";
|
|
||||||
searchUpKey = "^n";
|
|
||||||
};
|
|
||||||
initContent = ''
|
|
||||||
# disable sort when completing `git checkout`
|
|
||||||
zstyle ':completion:*:git-checkout:*' sort false
|
|
||||||
# set descriptions format to enable group support
|
|
||||||
# NOTE: don't use escape sequences (like '%F{red}%d%f') here, fzf-tab will ignore them
|
|
||||||
zstyle ':completion:*:descriptions' format '[%d]'
|
|
||||||
# preview directory's content when completing cd or zoxide
|
|
||||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
|
||||||
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
|
|
||||||
# custom fzf flags
|
|
||||||
# NOTE: fzf-tab does not follow FZF_DEFAULT_OPTS by default
|
|
||||||
zstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2 --bind=tab:accept
|
|
||||||
# switch group using `<` and `>`
|
|
||||||
zstyle ':fzf-tab:*' switch-group '<' '>'
|
|
||||||
'';
|
|
||||||
syntaxHighlighting.enable = true;
|
|
||||||
shellAliases = {
|
|
||||||
ff = "fastfetch";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.eclypsecloud-shares =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = with self.factory.nixos; [
|
|
||||||
(cifs {
|
|
||||||
destination = "/mnt/EclypseCloud";
|
|
||||||
host = "100.78.212.35";
|
|
||||||
resource = "EclypseCloud";
|
|
||||||
credentialsPath = config.age.secrets.eclypsecloud-eclypse.path;
|
|
||||||
uid = config.users.users.eclypse.uid;
|
|
||||||
})
|
|
||||||
(cifs {
|
|
||||||
destination = "/mnt/Music";
|
|
||||||
host = "100.78.212.35";
|
|
||||||
resource = "music";
|
|
||||||
credentialsPath = config.age.secrets.eclypsecloud-eclypse.path;
|
|
||||||
uid = config.users.users.eclypse.uid;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
age.secrets.eclypsecloud-eclypse.rekeyFile = "${inputs.secrets}/eclypsecloud-eclypse.age";
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
cifs-utils
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
flake.factory.nixos.cifs =
|
|
||||||
{
|
|
||||||
destination,
|
|
||||||
host,
|
|
||||||
resource,
|
|
||||||
credentialsPath,
|
|
||||||
uid,
|
|
||||||
gid ? null,
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
fileSystems."${destination}" = {
|
|
||||||
device = "//${host}/${resource}";
|
|
||||||
fsType = "cifs";
|
|
||||||
options =
|
|
||||||
let
|
|
||||||
automount-opts = [
|
|
||||||
"x-systemd.automount"
|
|
||||||
"x-systemd.idle-timeout=60"
|
|
||||||
"x-systemd.device-timeout=5s"
|
|
||||||
"x-systemd.mount-timeout=5s"
|
|
||||||
"noauto"
|
|
||||||
"nofail"
|
|
||||||
"soft"
|
|
||||||
];
|
|
||||||
mount-opts = [
|
|
||||||
"rw"
|
|
||||||
"iocharset=utf8"
|
|
||||||
];
|
|
||||||
user = [ "uid=${toString uid}" ] ++ (lib.optionals (gid != null) [ "gid=${toString gid}" ]);
|
|
||||||
credentials = [ "credentials=${credentialsPath}" ];
|
|
||||||
in
|
|
||||||
automount-opts ++ mount-opts ++ user ++ credentials;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
14
modules/home/default.nix
Normal file
14
modules/home/default.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./firefox.nix
|
||||||
|
./git.nix
|
||||||
|
./nvf.nix
|
||||||
|
./packages.nix
|
||||||
|
./plasma.nix
|
||||||
|
./vscode.nix
|
||||||
|
./zsh.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
138
modules/home/firefox.nix
Normal file
138
modules/home/firefox.nix
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
languagePacks = [ "en-US" ];
|
||||||
|
nativeMessagingHosts = with pkgs; [
|
||||||
|
kdePackages.plasma-browser-integration
|
||||||
|
];
|
||||||
|
policies = {
|
||||||
|
DefaultDownloadDirectory = config.xdg.userDirs.download;
|
||||||
|
DisableFirefoxAccounts = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableProfileImport = true;
|
||||||
|
DisableProfileRefresh = true;
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
EnableTrackingProtection = {
|
||||||
|
Value = true; # Tracking protection is enabled by default in both the regular browser and private browsing
|
||||||
|
Locked = true; # Whether or not a user can change tracking protection
|
||||||
|
Cryptomining = true; # Block cryptomining scripts
|
||||||
|
Fingerprinting = true; # Block fingerprinting scripts
|
||||||
|
EmailTracking = true; # Block email tracking pixels and scripts
|
||||||
|
};
|
||||||
|
FirefoxHome = {
|
||||||
|
Search = true;
|
||||||
|
TopSites = true;
|
||||||
|
SponsoredTopSites = false;
|
||||||
|
Highlights = false;
|
||||||
|
Pocket = false;
|
||||||
|
Stories = false;
|
||||||
|
SponsoredPocket = false;
|
||||||
|
SponsoredStories = false;
|
||||||
|
Snippets = true;
|
||||||
|
Locked = true;
|
||||||
|
};
|
||||||
|
FirefoxSuggest = {
|
||||||
|
WebSuggestions = true;
|
||||||
|
SponsoredSuggestions = false;
|
||||||
|
ImproveSuggest = false;
|
||||||
|
Locked = true;
|
||||||
|
};
|
||||||
|
Homepage = {
|
||||||
|
URL = "http://100.78.212.35:30054";
|
||||||
|
Locked = true;
|
||||||
|
StartPage = "homepage";
|
||||||
|
};
|
||||||
|
OfferToSaveLogins = false;
|
||||||
|
OverrideFirstRunPage = "";
|
||||||
|
PasswordManagerEnabled = false;
|
||||||
|
PopupBlocking = {
|
||||||
|
Default = false;
|
||||||
|
Locked = true;
|
||||||
|
};
|
||||||
|
PrimaryPassword = false;
|
||||||
|
SearchBar = "unified";
|
||||||
|
ShowHomeButton = true;
|
||||||
|
SkipTermsOfUse = true;
|
||||||
|
};
|
||||||
|
profiles.eclypse = {
|
||||||
|
name = "Eclypse";
|
||||||
|
isDefault = true;
|
||||||
|
extensions = {
|
||||||
|
force = true;
|
||||||
|
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
ublock-origin
|
||||||
|
bitwarden
|
||||||
|
plasma-integration
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
"uBlock0@raymondhill.net".settings = {
|
||||||
|
selectedFilterLists = [
|
||||||
|
"ublock-filters"
|
||||||
|
"ublock-badware"
|
||||||
|
"ublock-privacy"
|
||||||
|
"ublock-unbreak"
|
||||||
|
"ublock-quick-fixes"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
search = {
|
||||||
|
default = "google";
|
||||||
|
engines = {
|
||||||
|
nix-packages = {
|
||||||
|
name = "Nix Packages";
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://search.nixos.org/packages";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "channel";
|
||||||
|
value = "unstable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = [ "@np" ];
|
||||||
|
};
|
||||||
|
chat-gpt = {
|
||||||
|
name = "ChatGPT";
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://chatgpt.com?q={searchTerms}&temporary-chat=true";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
iconMapObj."64" = "https://chatgpt.com/favicon.ico";
|
||||||
|
definedAliases = [ "@gpt" ];
|
||||||
|
};
|
||||||
|
surugaya = {
|
||||||
|
name = "Surugaya";
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://www.suruga-ya.jp/search?search_word={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
iconMapObj."32" =
|
||||||
|
"https://www.suruga-ya.jp/drupal/themes/surugaya_mobile/images/pwa/images/icons/favicon-32x32.png";
|
||||||
|
definedAliases = [ "@suru" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
# Auto-enable extensions
|
||||||
|
"extensions.autoDisableScopes" = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
18
modules/home/git.nix
Normal file
18
modules/home/git.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Eclypsed";
|
||||||
|
userEmail = "Ec1ypsed@proton.me";
|
||||||
|
extraConfig = {
|
||||||
|
init = {
|
||||||
|
defaultBranch = "main";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ git-ignore ];
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
# host,
|
host,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -13,19 +13,11 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
vim = {
|
vim = {
|
||||||
viAlias = true;
|
viAlias = false;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
||||||
# lazy.plugins = {
|
|
||||||
# "kanagawa.nvim" = {
|
|
||||||
# package = pkgs.vimPlugins.kanagawa-nvim;
|
|
||||||
# setupModule = "kanagawa";
|
|
||||||
# after = "vim.cmd(\"colorscheme kanagawa\")";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
wrap = true;
|
wrap = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
clipboard = {
|
clipboard = {
|
||||||
@@ -69,18 +61,15 @@
|
|||||||
# Formatting files
|
# Formatting files
|
||||||
formatter.conform-nvim = {
|
formatter.conform-nvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
setupOpts = {
|
||||||
|
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
binds = {
|
binds = {
|
||||||
whichKey.enable = true;
|
whichKey.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
theme = {
|
|
||||||
enable = true;
|
|
||||||
name = "catppuccin";
|
|
||||||
style = "mocha";
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
{
|
{
|
||||||
key = "<A-e>";
|
key = "<A-e>";
|
||||||
@@ -138,6 +127,12 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
enable = true;
|
||||||
|
name = "catppuccin";
|
||||||
|
style = "mocha";
|
||||||
|
};
|
||||||
|
|
||||||
languages = {
|
languages = {
|
||||||
enableTreesitter = true;
|
enableTreesitter = true;
|
||||||
enableFormat = true;
|
enableFormat = true;
|
||||||
@@ -148,7 +143,7 @@
|
|||||||
dap.enable = true;
|
dap.enable = true;
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = [ "clangd" ];
|
server = "clangd";
|
||||||
};
|
};
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
};
|
};
|
||||||
@@ -157,7 +152,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = [ "prettier" ];
|
type = "prettier";
|
||||||
};
|
};
|
||||||
lsp.enable = true;
|
lsp.enable = true;
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
@@ -178,7 +173,6 @@
|
|||||||
};
|
};
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = [ "prettierd" ];
|
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -192,19 +186,21 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = [ "nixfmt" ];
|
package = pkgs.nixfmt;
|
||||||
|
type = "nixfmt";
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = [ "nixd" ];
|
package = pkgs.nixd;
|
||||||
# options = {
|
server = "nixd";
|
||||||
# nixos = {
|
options = {
|
||||||
# expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options";
|
nixos = {
|
||||||
# };
|
expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options";
|
||||||
# home-manager = {
|
};
|
||||||
# expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []";
|
home-manager = {
|
||||||
# };
|
expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []";
|
||||||
# };
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
};
|
};
|
||||||
@@ -217,10 +213,7 @@
|
|||||||
};
|
};
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = [
|
type = "black-and-isort";
|
||||||
"black"
|
|
||||||
"isort"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -228,17 +221,6 @@
|
|||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
rust = {
|
|
||||||
enable = true;
|
|
||||||
# crates = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
dap.enable = true;
|
|
||||||
format.enable = true;
|
|
||||||
lsp.enable = true;
|
|
||||||
treesitter.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
tailwind = {
|
tailwind = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lsp.enable = true;
|
lsp.enable = true;
|
||||||
@@ -252,7 +234,7 @@
|
|||||||
extraDiagnostics.enable = true;
|
extraDiagnostics.enable = true;
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = [ "prettier" ];
|
type = "prettier";
|
||||||
};
|
};
|
||||||
lsp.enable = true;
|
lsp.enable = true;
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
27
modules/home/packages.nix
Normal file
27
modules/home/packages.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
zoom-us
|
||||||
|
devenv
|
||||||
|
discord
|
||||||
|
sqlitebrowser
|
||||||
|
drawio
|
||||||
|
bitwarden-desktop
|
||||||
|
|
||||||
|
# Libre Office
|
||||||
|
libreoffice-qt
|
||||||
|
hunspell
|
||||||
|
hunspellDicts.en_US
|
||||||
|
|
||||||
|
# KDE
|
||||||
|
kdePackages.kate
|
||||||
|
|
||||||
|
# CD Stuff
|
||||||
|
picard
|
||||||
|
heybrochecklog
|
||||||
|
rsgain
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -18,7 +17,6 @@
|
|||||||
aaron-bond.better-comments
|
aaron-bond.better-comments
|
||||||
yzane.markdown-pdf
|
yzane.markdown-pdf
|
||||||
mechatroner.rainbow-csv
|
mechatroner.rainbow-csv
|
||||||
catppuccin.catppuccin-vsc
|
|
||||||
|
|
||||||
# Remote development
|
# Remote development
|
||||||
ms-vscode-remote.remote-ssh
|
ms-vscode-remote.remote-ssh
|
||||||
@@ -48,14 +46,6 @@
|
|||||||
# General
|
# General
|
||||||
"editor.formatOnSave" = true;
|
"editor.formatOnSave" = true;
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
"workbench.iconTheme" = "material-icon-theme";
|
||||||
"workbench.colorTheme" = "Catppuccin Mocha";
|
|
||||||
"catppuccin.accentColor" = "flamingo";
|
|
||||||
|
|
||||||
# Remote SSH
|
|
||||||
# VSCode attempts to write to ~/.ssh/config for remote ssh connections.
|
|
||||||
# Because ~/.ssh/config is managed with home-manager, it is not writeable.
|
|
||||||
# So we specify a custom ssh config path
|
|
||||||
"remote.SSH.configFile" = "${config.home.homeDirectory}/.ssh/vscode-config";
|
|
||||||
|
|
||||||
# Prettier
|
# Prettier
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||||
@@ -95,13 +85,6 @@
|
|||||||
|
|
||||||
# C / C++
|
# C / C++
|
||||||
"C_Cpp.clang_format_style" = "GNU"; # This is really just for cs361, I actually hate the GNU style
|
"C_Cpp.clang_format_style" = "GNU"; # This is really just for cs361, I actually hate the GNU style
|
||||||
"C_Cpp.default.cStandard" = "gnu17";
|
|
||||||
"[c]" = {
|
|
||||||
"editor.defaultFormatter" = "ms-vscode.cpptools";
|
|
||||||
};
|
|
||||||
"[cpp]" = {
|
|
||||||
"editor.defaultFormatter" = "ms-vscode.cpptools";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
20
modules/home/zsh.nix
Normal file
20
modules/home/zsh.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
sessionVariables = {
|
||||||
|
SSH_AUTH_SOCK = "/home/eclypse/.bitwarden-ssh-agent.sock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.host =
|
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
# ? Could potentially move this directly into the agenix module
|
|
||||||
options = {
|
|
||||||
# Host public SSH key (e.g. /etc/ssh/ssh_host_ed25519_key.pub).
|
|
||||||
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
|
|
||||||
# exist until it is generated after the first rebuild.
|
|
||||||
hostPubkey = lib.mkOption {
|
|
||||||
type = lib.types.nullOr lib.types.str;
|
|
||||||
default = null;
|
|
||||||
description = "The public key of the host. Will be null until generated on first rebuild";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
{
|
|
||||||
self,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.nixosConfigurations.vanta = inputs.nixpkgs.lib.nixosSystem {
|
|
||||||
modules = [ self.modules.nixos.vanta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
flake.modules.nixos.vanta =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = with self.modules.nixos; [
|
|
||||||
vantaHardware
|
|
||||||
profiles-intel
|
|
||||||
host
|
|
||||||
base
|
|
||||||
eclypsecloud-shares
|
|
||||||
fprintd
|
|
||||||
gdm
|
|
||||||
niri
|
|
||||||
# monique
|
|
||||||
|
|
||||||
# Users
|
|
||||||
home-manager
|
|
||||||
eclypse
|
|
||||||
];
|
|
||||||
|
|
||||||
hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
|
|
||||||
|
|
||||||
networking.hostName = "vanta";
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/New_York";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n = {
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
|
||||||
LC_PAPER = "en_US.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
|
||||||
LC_TIME = "en_US.UTF-8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
|
||||||
# to actually do that.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.vantaHardware =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"xhci_pci"
|
|
||||||
"thunderbolt"
|
|
||||||
"nvme"
|
|
||||||
"usbhid"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/1df00fd1-f531-49b9-9dc6-6d17ca39b67a";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/EE0E-CAE4";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [
|
|
||||||
"fmask=0077"
|
|
||||||
"dmask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-uuid/fbacd982-b161-447c-a34a-7b44bc063a08"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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.wlp166s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
8
modules/overlays/default.nix
Normal file
8
modules/overlays/default.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(import ./heybrochecklog.nix)
|
||||||
|
];
|
||||||
|
}
|
||||||
43
modules/overlays/heybrochecklog.nix
Normal file
43
modules/overlays/heybrochecklog.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
self: super: with super.python3Packages; rec {
|
||||||
|
pprp = buildPythonPackage rec {
|
||||||
|
pname = "pprp";
|
||||||
|
version = "0.2.7";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "sha256-2ednecxSsJONvH9XJ6GV3ExgdcPrUEAlYRpZt2Nrkw0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
format = "setuptools";
|
||||||
|
doCheck = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
heybrochecklog = buildPythonApplication rec {
|
||||||
|
pname = "heybrochecklog";
|
||||||
|
version = "1.4.7";
|
||||||
|
|
||||||
|
src = super.fetchurl {
|
||||||
|
url = "https://github.com/doujincafe/hbcl/releases/download/v${version}/heybrochecklog-${version}.tar.gz";
|
||||||
|
sha256 = "sha256-nCJJvzw/BoCEGDIX62zZr1ZI/b0W5nnFOZlMw4Btcnw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
format = "pyproject";
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
poetry-core
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
faust-cchardet
|
||||||
|
chardet
|
||||||
|
pprp
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace pyproject.toml \
|
||||||
|
--replace 'poetry.masonry.api' 'poetry.core.masonry.api' \
|
||||||
|
--replace 'poetry>=' 'poetry-core>='
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.flake-parts.flakeModules.easyOverlay
|
|
||||||
];
|
|
||||||
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
system,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
python-extensions = python-final: python-prev: {
|
|
||||||
pprp = python-final.callPackage "${inputs.packages}/pprp.nix" { };
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
_module.args.pkgs = import inputs.nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
overlays = [
|
|
||||||
(final: prev: {
|
|
||||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ python-extensions ];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
packages = {
|
|
||||||
# monique = pkgs.callPackage "${inputs.packages}/monique.nix" { };
|
|
||||||
heybrochecklog = pkgs.callPackage "${inputs.packages}/heybrochecklog.nix" { };
|
|
||||||
pywalfox-native = pkgs.callPackage "${inputs.packages}/pywalfox-native.nix" { };
|
|
||||||
};
|
|
||||||
overlayAttrs = {
|
|
||||||
inherit (config.packages)
|
|
||||||
# monique
|
|
||||||
heybrochecklog
|
|
||||||
pywalfox-native
|
|
||||||
;
|
|
||||||
|
|
||||||
pythonPackagesExtensions = pkgs.pythonPackagesExtensions ++ [ python-extensions ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.flake-parts.flakeModules.modules
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
# Have to nest `systems` in `config` otherwise flake-parts gets mad for some reason
|
|
||||||
systems = [
|
|
||||||
"aarch64-darwin"
|
|
||||||
"aarch64-linux"
|
|
||||||
"x86_64-darwin"
|
|
||||||
"x86_64-linux"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enables the *Factory Aspect*
|
|
||||||
options.flake.factory = lib.mkOption {
|
|
||||||
type = lib.types.attrsOf lib.types.unspecified;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.profiles-intel =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.thermald.enable = true;
|
|
||||||
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
intel-media-driver
|
|
||||||
intel-ocl
|
|
||||||
intel-vaapi-driver
|
|
||||||
vpl-gpu-rt
|
|
||||||
libvdpau-va-gl
|
|
||||||
libva-vdpau-driver
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user