feat: add caleastia shell
This commit is contained in:
parent
b9a369436d
commit
146418764e
20 changed files with 926 additions and 286 deletions
210
flake.lock
generated
210
flake.lock
generated
|
|
@ -75,6 +75,52 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"caelestia-cli": {
|
||||||
|
"inputs": {
|
||||||
|
"caelestia-shell": [
|
||||||
|
"caelestia-shell"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"caelestia-shell",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754708376,
|
||||||
|
"narHash": "sha256-RtOqlQ8i4EFCtPJYT6hX39EEO7sjGzSbO3tKIto/Yw4=",
|
||||||
|
"owner": "caelestia-dots",
|
||||||
|
"repo": "cli",
|
||||||
|
"rev": "9489f0d4f629bfd8751ff55784a9587d54eb40f1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "caelestia-dots",
|
||||||
|
"repo": "cli",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"caelestia-shell": {
|
||||||
|
"inputs": {
|
||||||
|
"caelestia-cli": "caelestia-cli",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"quickshell": "quickshell"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755178159,
|
||||||
|
"narHash": "sha256-ZmsQ3ZRa6U/5Axw+foMJwZpmsVdjHhat8wnY85UKQ+g=",
|
||||||
|
"owner": "caelestia-dots",
|
||||||
|
"repo": "shell",
|
||||||
|
"rev": "fa39593ca497c27ca8631091a75d883e4e3c46f2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "caelestia-dots",
|
||||||
|
"repo": "shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"chaotic": {
|
"chaotic": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-schemas": "flake-schemas",
|
"flake-schemas": "flake-schemas",
|
||||||
|
|
@ -173,11 +219,11 @@
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -449,12 +495,34 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_6": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_10"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ghostty": {
|
"ghostty": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": [
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-unstable": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"zig": "zig",
|
"zig": "zig",
|
||||||
"zon2nix": "zon2nix"
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
|
|
@ -1167,6 +1235,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"microvm": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_4",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"spectrum": "spectrum"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755102374,
|
||||||
|
"narHash": "sha256-v6xhTSgnGQoF1a51BB6OQWN8HXiYbZtVL+54TRuk9zk=",
|
||||||
|
"owner": "microvm-nix",
|
||||||
|
"repo": "microvm.nix",
|
||||||
|
"rev": "0a5cda80e48191959cf5a9c0552532599ef2cee4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "microvm-nix",
|
||||||
|
"repo": "microvm.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"neovim-nightly-overlay": {
|
"neovim-nightly-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_5",
|
"flake-compat": "flake-compat_5",
|
||||||
|
|
@ -1253,7 +1343,7 @@
|
||||||
"nix-minecraft": {
|
"nix-minecraft": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_7",
|
"flake-compat": "flake-compat_7",
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_5",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -1320,22 +1410,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1741992157,
|
|
||||||
"narHash": "sha256-nlIfTsTrMSksEJc1f7YexXiPVuzD1gOfeN1ggwZyUoc=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "da4b122f63095ca1199bd4d526f9e26426697689",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "release-24.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable_2": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1730741070,
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||||
|
|
@ -1351,22 +1425,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1741865919,
|
|
||||||
"narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_10": {
|
"nixpkgs_10": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727348695,
|
"lastModified": 1727348695,
|
||||||
|
|
@ -1545,7 +1603,7 @@
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731363552,
|
"lastModified": 1731363552,
|
||||||
|
|
@ -1561,10 +1619,32 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"quickshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"caelestia-shell",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1753595452,
|
||||||
|
"narHash": "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "a5431dd02dc23d9ef1680e67777fed00fe5f7cda",
|
||||||
|
"revCount": 665,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"Hyprspace": "Hyprspace",
|
"Hyprspace": "Hyprspace",
|
||||||
"actual-budget-api": "actual-budget-api",
|
"actual-budget-api": "actual-budget-api",
|
||||||
|
"caelestia-shell": "caelestia-shell",
|
||||||
"chaotic": "chaotic",
|
"chaotic": "chaotic",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"firefox": "firefox",
|
"firefox": "firefox",
|
||||||
|
|
@ -1576,6 +1656,7 @@
|
||||||
"hyprlock": "hyprlock",
|
"hyprlock": "hyprlock",
|
||||||
"hyprtasking": "hyprtasking",
|
"hyprtasking": "hyprtasking",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
|
"microvm": "microvm",
|
||||||
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nix-minecraft": "nix-minecraft",
|
"nix-minecraft": "nix-minecraft",
|
||||||
|
|
@ -1689,6 +1770,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"spectrum": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754675037,
|
||||||
|
"narHash": "sha256-afS08F7lfMUBR4qrBxinN1kuxu+DoHQ5TPNVp9VS/OA=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "586577f3015397afacd83bc185454f4cc3c8028f",
|
||||||
|
"revCount": 955,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
|
}
|
||||||
|
},
|
||||||
"swww": {
|
"swww": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_8",
|
"flake-compat": "flake-compat_8",
|
||||||
|
|
@ -1724,6 +1821,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_10": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems_2": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
|
@ -1908,16 +2020,16 @@
|
||||||
},
|
},
|
||||||
"yazi": {
|
"yazi": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_5",
|
"flake-utils": "flake-utils_6",
|
||||||
"nixpkgs": "nixpkgs_9",
|
"nixpkgs": "nixpkgs_9",
|
||||||
"rust-overlay": "rust-overlay_4"
|
"rust-overlay": "rust-overlay_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755142006,
|
"lastModified": 1755419104,
|
||||||
"narHash": "sha256-3PXLb+3tWkFh+eOe2wrgkxUXA+Ip4EOxoSdBQZGou/o=",
|
"narHash": "sha256-X/MltojjlzWUPXk1OT8qDotuV9s8jL+Dp4wx56NUzT4=",
|
||||||
"owner": "sxyazi",
|
"owner": "sxyazi",
|
||||||
"repo": "yazi",
|
"repo": "yazi",
|
||||||
"rev": "2ec3a6c645324295331c0f2ef6d4d946cf11c06b",
|
"rev": "9810196565513aca32bac41471ff4979a2a381ef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1931,11 +2043,11 @@
|
||||||
"nixpkgs": "nixpkgs_10"
|
"nixpkgs": "nixpkgs_10"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755134816,
|
"lastModified": 1755169841,
|
||||||
"narHash": "sha256-B1MThr/2Hbis2J4gKAvbDedXStxmmWzzOY7upEDG8/4=",
|
"narHash": "sha256-wOIetFs4h1p0fcZcHpQndB3Fhm0sa1L+ymGfas8l7hE=",
|
||||||
"owner": "dachxy",
|
"owner": "dachxy",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "751cad657e9a03e4a1de95b79ca751b8480bb049",
|
"rev": "24e7380b13aa098484474868763b97f737a51df9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1959,11 +2071,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741825901,
|
"lastModified": 1748261582,
|
||||||
"narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=",
|
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
|
||||||
"owner": "mitchellh",
|
"owner": "mitchellh",
|
||||||
"repo": "zig-overlay",
|
"repo": "zig-overlay",
|
||||||
"rev": "0b14285e283f5a747f372fb2931835dd937c4383",
|
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
348
flake.nix
348
flake.nix
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
ghostty = {
|
ghostty = {
|
||||||
url = "github:ghostty-org/ghostty?rev=7f9bb3c0e54f585e11259bc0c9064813d061929c";
|
url = "github:ghostty-org/ghostty?rev=7f9bb3c0e54f585e11259bc0c9064813d061929c";
|
||||||
|
inputs.nixpkgs-stable.follows = "nixpkgs";
|
||||||
|
inputs.nixpkgs-unstable.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
yazi = {
|
yazi = {
|
||||||
|
|
@ -96,10 +98,21 @@
|
||||||
url = "github:DACHXY/actual-budget-api";
|
url = "github:DACHXY/actual-budget-api";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
caelestia-shell = {
|
||||||
|
url = "github:caelestia-dots/shell";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
microvm = {
|
||||||
|
url = "github:microvm-nix/microvm.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nix-index-database,
|
nix-index-database,
|
||||||
lanzaboote,
|
lanzaboote,
|
||||||
|
|
@ -110,6 +123,12 @@
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
nix-version = "25.05";
|
nix-version = "25.05";
|
||||||
|
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit (pkgs) lib;
|
||||||
|
|
||||||
# Declare COMMON modules here
|
# Declare COMMON modules here
|
||||||
common-settings = {
|
common-settings = {
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -124,6 +143,7 @@
|
||||||
inputs
|
inputs
|
||||||
system
|
system
|
||||||
nix-version
|
nix-version
|
||||||
|
self
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -138,6 +158,58 @@
|
||||||
extra-modules = [
|
extra-modules = [
|
||||||
lanzaboote.nixosModules.lanzaboote
|
lanzaboote.nixosModules.lanzaboote
|
||||||
./system/dev/dn-pre7780
|
./system/dev/dn-pre7780
|
||||||
|
|
||||||
|
# VM
|
||||||
|
inputs.microvm.nixosModules.host
|
||||||
|
{
|
||||||
|
networking.useNetworkd = true;
|
||||||
|
systemd.network.enable = true;
|
||||||
|
systemd.network.networks."10-lan" = {
|
||||||
|
matchConfig.Name = [
|
||||||
|
"enp0s31f6"
|
||||||
|
"vm-*"
|
||||||
|
];
|
||||||
|
networkConfig = {
|
||||||
|
Bridge = "br0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.netdevs."br0" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Name = "br0";
|
||||||
|
Kind = "bridge";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."10-lan-bridge" = {
|
||||||
|
matchConfig.Name = "br0";
|
||||||
|
networkConfig = {
|
||||||
|
Address = [ "192.168.0.5/24" ];
|
||||||
|
Gateway = "192.168.0.1";
|
||||||
|
DNS = [ "192.168.0.1" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
linkConfig.RequiredForOnline = "routable";
|
||||||
|
};
|
||||||
|
|
||||||
|
# microvm.autostart = [
|
||||||
|
# "vm-1"
|
||||||
|
# "vm-2"
|
||||||
|
# ];
|
||||||
|
|
||||||
|
microvm.vms = {
|
||||||
|
vm-1 = {
|
||||||
|
flake = self;
|
||||||
|
updateFlake = "git+file:///etc/nixos";
|
||||||
|
autostart = false;
|
||||||
|
};
|
||||||
|
vm-2 = {
|
||||||
|
flake = self;
|
||||||
|
updateFlake = "git+file:///etc/nixos";
|
||||||
|
autostart = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
overlays = [ ];
|
overlays = [ ];
|
||||||
};
|
};
|
||||||
|
|
@ -176,60 +248,234 @@
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = builtins.mapAttrs (
|
nixosConfigurations =
|
||||||
dev: conf:
|
(builtins.mapAttrs (
|
||||||
let
|
dev: conf:
|
||||||
domain = if conf.domain != null then conf.domain else "local";
|
let
|
||||||
inherit (conf) username hostname;
|
domain = if conf.domain != null then conf.domain else "local";
|
||||||
in
|
inherit (conf) username hostname;
|
||||||
nixpkgs.lib.nixosSystem {
|
in
|
||||||
modules = [
|
nixpkgs.lib.nixosSystem {
|
||||||
{
|
modules = [
|
||||||
system.stateVersion = nix-version;
|
{
|
||||||
home-manager = {
|
system.stateVersion = nix-version;
|
||||||
backupFileExtension = "backup-hm";
|
home-manager = {
|
||||||
useUserPackages = true;
|
backupFileExtension = "backup-hm";
|
||||||
useGlobalPkgs = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = {
|
useGlobalPkgs = true;
|
||||||
inherit
|
extraSpecialArgs = {
|
||||||
inputs
|
inherit
|
||||||
system
|
inputs
|
||||||
nix-version
|
system
|
||||||
devices
|
nix-version
|
||||||
username
|
devices
|
||||||
;
|
username
|
||||||
|
;
|
||||||
|
};
|
||||||
|
users."${username}" = lib.mkIf (!((conf ? isVM) && (conf.isVM))) {
|
||||||
|
imports = [
|
||||||
|
inputs.hyprland.homeManagerModules.default
|
||||||
|
inputs.caelestia-shell.homeManagerModules.default
|
||||||
|
inputs.zen-browser.homeManagerModules.${system}.default
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
homeDirectory = "/home/${username}";
|
||||||
|
stateVersion = nix-version;
|
||||||
|
};
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
users."${username}" = {
|
networking = {
|
||||||
imports = [
|
inherit domain;
|
||||||
inputs.hyprland.homeManagerModules.default
|
hostName = hostname;
|
||||||
inputs.zen-browser.homeManagerModules.${system}.default
|
};
|
||||||
{
|
nixpkgs.hostPlatform = system;
|
||||||
home = {
|
nixpkgs.config.allowUnfree = true;
|
||||||
homeDirectory = "/home/${username}";
|
nixpkgs.overlays = ((import ./pkgs/overlays) ++ conf.overlays);
|
||||||
stateVersion = nix-version;
|
}
|
||||||
|
]
|
||||||
|
++ common-settings.modules
|
||||||
|
++ conf.extra-modules;
|
||||||
|
specialArgs = {
|
||||||
|
inherit username;
|
||||||
|
}
|
||||||
|
// common-settings.args;
|
||||||
|
}
|
||||||
|
) devices)
|
||||||
|
//
|
||||||
|
# VM For k8s
|
||||||
|
(
|
||||||
|
let
|
||||||
|
vmList =
|
||||||
|
let
|
||||||
|
kubeMasterIP = "192.168.0.6";
|
||||||
|
kubeMasterHostname = "api.kube";
|
||||||
|
kubeMasterAPIServerPort = 6443;
|
||||||
|
kubeApi = "https://${kubeMasterHostname}:${toString kubeMasterAPIServerPort}";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# master
|
||||||
|
vm-1 = {
|
||||||
|
ip = "192.168.0.6";
|
||||||
|
mac = "02:00:00:00:00:01";
|
||||||
|
extraConfig = {
|
||||||
|
networking.extraHosts = "${kubeMasterIP} ${kubeMasterHostname}";
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
kompose
|
||||||
|
kubectl
|
||||||
|
kubernetes
|
||||||
|
];
|
||||||
|
|
||||||
|
services.kubernetes = {
|
||||||
|
roles = [
|
||||||
|
"master"
|
||||||
|
"node"
|
||||||
|
];
|
||||||
|
|
||||||
|
masterAddress = kubeMasterHostname;
|
||||||
|
apiserverAddress = kubeApi;
|
||||||
|
easyCerts = true;
|
||||||
|
apiserver = {
|
||||||
|
securePort = kubeMasterAPIServerPort;
|
||||||
|
advertiseAddress = kubeMasterIP;
|
||||||
|
};
|
||||||
|
|
||||||
|
addons.dns.enable = true;
|
||||||
};
|
};
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
programs.home-manager.enable = true;
|
systemd.services.link-kube-config = {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.writeShellScript "link-kube-config.sh" ''
|
||||||
|
target="/etc/kubernetes/cluster-admin.kubeconfig"
|
||||||
|
if [ -e "$target" ]; then
|
||||||
|
[ ! -d "/root/.kube" ] && mkdir -p "/root/.kube"
|
||||||
|
ln -sf $target /root/.kube/config
|
||||||
|
fi
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Node
|
||||||
|
vm-2 = {
|
||||||
|
ip = "192.168.0.7";
|
||||||
|
mac = "02:00:00:00:00:02";
|
||||||
|
extraConfig = {
|
||||||
|
networking.extraHosts = "${kubeMasterIP} ${kubeMasterHostname}";
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
kompose
|
||||||
|
kubectl
|
||||||
|
kubernetes
|
||||||
|
];
|
||||||
|
|
||||||
|
services.kubernetes = {
|
||||||
|
roles = [ "node" ];
|
||||||
|
masterAddress = kubeMasterHostname;
|
||||||
|
easyCerts = true;
|
||||||
|
|
||||||
|
kubelet.kubeconfig.server = kubeApi;
|
||||||
|
apiserverAddress = kubeApi;
|
||||||
|
addons.dns.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mkMicrovm = name: value: {
|
||||||
|
hypervisor = "qemu";
|
||||||
|
vcpu = 4;
|
||||||
|
mem = 8192;
|
||||||
|
interfaces = [
|
||||||
|
{
|
||||||
|
type = "tap";
|
||||||
|
id = "${name}";
|
||||||
|
mac = value.mac;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
shares = [
|
||||||
|
{
|
||||||
|
tag = "ro-store";
|
||||||
|
source = "/nix/store";
|
||||||
|
mountPoint = "/nix/.ro-store";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib.mapAttrs' (
|
||||||
|
name: value:
|
||||||
|
lib.nameValuePair name (
|
||||||
|
nixpkgs.lib.nixosSystem ({
|
||||||
|
inherit system;
|
||||||
|
modules = [
|
||||||
|
inputs.microvm.nixosModules.microvm
|
||||||
|
value.extraConfig
|
||||||
|
{
|
||||||
|
microvm = mkMicrovm name value;
|
||||||
|
system.stateVersion = lib.trivial.release;
|
||||||
|
networking.hostName = name;
|
||||||
|
networking.domain = "kube";
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
users.users.root.password = "";
|
||||||
|
services.getty.autologinUser = "root";
|
||||||
|
|
||||||
|
programs.fish.enable = true;
|
||||||
|
programs.bash = {
|
||||||
|
shellInit = ''
|
||||||
|
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||||
|
then
|
||||||
|
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||||
|
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.enable = true;
|
||||||
|
systemd.network.networks."20-lan" = {
|
||||||
|
matchConfig.Type = "ether";
|
||||||
|
networkConfig = {
|
||||||
|
Address = [ "${value.ip}/24" ];
|
||||||
|
Gateway = "192.168.0.1";
|
||||||
|
DNS = [ "192.168.0.1" ];
|
||||||
|
DHCP = "no";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.br-netfilter = {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "/run/current-system/sw/bin/modprobe br_netfilter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
dig.dnsutils
|
||||||
|
openssl
|
||||||
|
|
||||||
|
fishPlugins.done
|
||||||
|
fishPlugins.fzf-fish
|
||||||
|
fishPlugins.forgit
|
||||||
|
fishPlugins.hydro
|
||||||
|
fzf
|
||||||
|
fishPlugins.grc
|
||||||
|
grc
|
||||||
|
git
|
||||||
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
})
|
||||||
};
|
)
|
||||||
networking = {
|
) vmList
|
||||||
inherit domain;
|
);
|
||||||
hostName = hostname;
|
|
||||||
};
|
packages."${system}" = {
|
||||||
nixpkgs.hostPlatform = system;
|
vm-1 = self.nixosConfigurations.vm-1.config.microvm.declaredRunner;
|
||||||
nixpkgs.config.allowUnfree = true;
|
vm-2 = self.nixosConfigurations.vm-2.config.microvm.declaredRunner;
|
||||||
nixpkgs.overlays = ((import ./pkgs/overlays) ++ conf.overlays);
|
};
|
||||||
}
|
|
||||||
]
|
|
||||||
++ common-settings.modules
|
|
||||||
++ conf.extra-modules;
|
|
||||||
specialArgs = {
|
|
||||||
inherit username;
|
|
||||||
}
|
|
||||||
// common-settings.args;
|
|
||||||
}
|
|
||||||
) devices;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
font-family = "CaskaydiaCove Nerd Font Mono"
|
|
||||||
font-size = 15
|
|
||||||
theme = Espresso
|
|
||||||
unfocused-split-opacity = 0.85
|
|
||||||
desktop-notifications = false
|
|
||||||
|
|
||||||
wait-after-command = false
|
|
||||||
shell-integration = detect
|
|
||||||
window-theme = dark
|
|
||||||
|
|
||||||
confirm-close-surface = false
|
|
||||||
window-decoration = false
|
|
||||||
|
|
||||||
mouse-hide-while-typing = true
|
|
||||||
|
|
||||||
keybind = ctrl+shift+zero=toggle_tab_overview
|
|
||||||
|
|
||||||
clipboard-read = allow
|
|
||||||
clipboard-write = allow
|
|
||||||
|
|
||||||
# custom-shader = ./shader/mnoise.glsl
|
|
||||||
# custom-shader-animation = always
|
|
||||||
|
|
@ -55,3 +55,5 @@ vim.g.clipboard = {
|
||||||
-- To ALWAYS use the clipboard for ALL operations
|
-- To ALWAYS use the clipboard for ALL operations
|
||||||
-- (instead of interacting with the "+" and/or "*" registers explicitly):
|
-- (instead of interacting with the "+" and/or "*" registers explicitly):
|
||||||
vim.opt.clipboard = "unnamedplus"
|
vim.opt.clipboard = "unnamedplus"
|
||||||
|
|
||||||
|
vim.g.gruvbox_material_transparent_background = 2
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@
|
||||||
# ../user/music-production.nix
|
# ../user/music-production.nix
|
||||||
../user/nvim.nix
|
../user/nvim.nix
|
||||||
../user/packages.nix
|
../user/packages.nix
|
||||||
../user/firefox.nix
|
# ../user/firefox.nix
|
||||||
|
../user/zen-browser.nix
|
||||||
../user/shell.nix
|
../user/shell.nix
|
||||||
../user/tmux.nix
|
../user/tmux.nix
|
||||||
../user/virtualization.nix
|
../user/virtualization.nix
|
||||||
|
|
|
||||||
213
home/user/caelestia-shell.nix
Normal file
213
home/user/caelestia-shell.nix
Normal file
|
|
@ -0,0 +1,213 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
patchPapirus = pkgs.stdenv.mkDerivation {
|
||||||
|
name = "${pkgs.papirus-icon-theme.name}-patch";
|
||||||
|
src = pkgs.papirus-icon-theme;
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/icons
|
||||||
|
ln $src/share/icons/Papirus $out/share/icons/hicolor
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
caelestiaDot = pkgs.fetchFromGitHub {
|
||||||
|
owner = "caelestia-dots";
|
||||||
|
repo = "caelestia";
|
||||||
|
rev = "main";
|
||||||
|
sha256 = "sha256-pRLcbh81iBp9fH3Zq7HrNtAfDD46ErGZ3wID8Q65Wlg=";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
cliphist
|
||||||
|
inotify-tools
|
||||||
|
app2unit
|
||||||
|
wireplumber
|
||||||
|
trash-cli
|
||||||
|
foot
|
||||||
|
fastfetch
|
||||||
|
jq
|
||||||
|
socat
|
||||||
|
imagemagick
|
||||||
|
papirus-icon-theme
|
||||||
|
nerd-fonts.jetbrains-mono
|
||||||
|
fuzzel
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
"hypr/hyprland".source = "${caelestiaDot}/hypr/hyprland";
|
||||||
|
"hypr/scheme" = {
|
||||||
|
source = "${caelestiaDot}/hypr/scheme";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
"hypr/scripts" = {
|
||||||
|
source = "${caelestiaDot}/hypr/scripts";
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
"hypr/variables.conf".source = "${caelestiaDot}/hypr/variables.conf";
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
settings = {
|
||||||
|
"$hypr" = "~/.config/hypr";
|
||||||
|
"$hl" = "$hypr/hyprland";
|
||||||
|
"$cConf" = "~/.config/caelestia";
|
||||||
|
# ### Hyprland ###
|
||||||
|
# Apps
|
||||||
|
"$terminal" = "ghostty";
|
||||||
|
"$browser" = "nvidia-offload zen";
|
||||||
|
"$editor" = "nvim";
|
||||||
|
"$fileExplorer" = "yazi";
|
||||||
|
|
||||||
|
# Touchpad
|
||||||
|
"$touchpadDisableTyping" = "true";
|
||||||
|
"$touchpadScrollFactor" = "0.3";
|
||||||
|
"$workSpaceSwipeFingers" = "4";
|
||||||
|
|
||||||
|
# Blur
|
||||||
|
"$blurEnabled" = "true";
|
||||||
|
"$blurSpecialWs" = "false";
|
||||||
|
"$blurPopups" = "true";
|
||||||
|
"$blurInputMethods" = "true";
|
||||||
|
"$blurSize" = "8";
|
||||||
|
"$blurPasses" = "2";
|
||||||
|
"$blurXray" = "false";
|
||||||
|
|
||||||
|
# Shadow
|
||||||
|
"$shadowEnabled" = "true";
|
||||||
|
"$shadowRange" = "20";
|
||||||
|
"$shadowRenderPower" = "3";
|
||||||
|
"$shadowColour" = "rgba($surfaced4)";
|
||||||
|
|
||||||
|
# Gaps
|
||||||
|
"$workspaceGaps" = "20";
|
||||||
|
"$windowGapsIn" = "10";
|
||||||
|
"$windowGapsOut" = "10";
|
||||||
|
"$singleWindowGapsOut" = "10";
|
||||||
|
|
||||||
|
# Window styling
|
||||||
|
"$windowOpacity" = "0.95";
|
||||||
|
"$windowRounding" = "10";
|
||||||
|
|
||||||
|
"$windowBorderSize" = "3";
|
||||||
|
"$activeWindowBorderColour" = "rgba($primarye6)";
|
||||||
|
"$inactiveWindowBorderColour" = "rgba($onSurfaceVariant11)";
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
"$volumeStep" = "5 # In percent";
|
||||||
|
|
||||||
|
"$kbGoToWs" = "SUPER";
|
||||||
|
"$wsaction" = "~/.config/hypr/scripts/wsaction.fish";
|
||||||
|
|
||||||
|
source = [
|
||||||
|
"$hypr/scheme/current.conf"
|
||||||
|
"$hl/env.conf"
|
||||||
|
"$hl/input.conf"
|
||||||
|
"$hl/misc.conf"
|
||||||
|
"$hl/animations.conf"
|
||||||
|
"$hl/decoration.conf"
|
||||||
|
"$hl/group.conf"
|
||||||
|
"$hl/rules.conf"
|
||||||
|
"${pkgs.writeText "keybinds.conf" ''
|
||||||
|
exec = hyprctl dispatch submap global
|
||||||
|
submap = global
|
||||||
|
|
||||||
|
# ## Shell keybinds
|
||||||
|
# Launcher
|
||||||
|
bind = Super+CTRL, K, global, caelestia:showall
|
||||||
|
bindi = Super, Super_L, global, caelestia:launcher
|
||||||
|
bindin = Super, catchall, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse:272, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse:273, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse:274, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse:275, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse:276, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse:277, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse_up, global, caelestia:launcherInterrupt
|
||||||
|
bindin = Super, mouse_down, global, caelestia:launcherInterrupt
|
||||||
|
bind = Super, DELETE, global, caelestia:lock
|
||||||
|
bind = Super, Q, killactive,
|
||||||
|
bind = Super , RETURN, exec, app2unit -- $terminal
|
||||||
|
bind = Super, F, exec, app2unit -- $browser
|
||||||
|
bind = Super, V, togglefloating,
|
||||||
|
bind = Super, P, pseudo
|
||||||
|
bind = Super, S, togglesplit
|
||||||
|
bindl = , XF86AudioPlay, global, caelestia:mediaToggle
|
||||||
|
bindl = , XF86AudioPause, global, caelestia:mediaToggle
|
||||||
|
bindl = , XF86AudioNext, global, caelestia:mediaNext
|
||||||
|
bindl = , XF86AudioPrev, global, caelestia:mediaPrev
|
||||||
|
bindl = , XF86AudioStop, global, caelestia:mediaStop
|
||||||
|
|
||||||
|
bind = Super+SHIFT, s, global, caelestia:screenshot
|
||||||
|
bind = CTRL SHIFT, s, exec, hyprshot -m window
|
||||||
|
bind = CTRL SHIFT Super, s, exec, hyprshot -m output
|
||||||
|
bind = CTRL ALT, s, exec, hyprshot -m active -m window
|
||||||
|
|
||||||
|
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bindle = , XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ $volumeStep%+
|
||||||
|
bindle = , XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ $volumeStep%-
|
||||||
|
|
||||||
|
bind = Super, Period, exec, pkill fuzzel || caelestia emoji -p
|
||||||
|
bind = Super+Shift, V, exec, pkill fuzzel || caelestia clipboard
|
||||||
|
''}"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
''SUPER, mouse:272, movewindow''
|
||||||
|
''SUPER, mouse:273, resizewindow''
|
||||||
|
];
|
||||||
|
|
||||||
|
exec = [
|
||||||
|
"cp -L --no-preserve=mode --update=none $hypr/scheme/default.conf $hypr/scheme/current.conf"
|
||||||
|
];
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
vrr = 0;
|
||||||
|
vfr = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.activation.writeConfigFile =
|
||||||
|
lib.hm.dag.entryAfter [ "writeBoundary" ]
|
||||||
|
# bash
|
||||||
|
''
|
||||||
|
configList=("btop" "fastfetch" "thunar")
|
||||||
|
|
||||||
|
for config in "''\${configList[@]}"; do
|
||||||
|
if [ ! -d "$XDG_CONFIG_HOME/$config" ]; then
|
||||||
|
install -Dm666 "${caelestiaDot}/$config" "$XDG_CONFIG_HOME/$config"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
programs.caelestia = {
|
||||||
|
enable = true;
|
||||||
|
settings = { };
|
||||||
|
cli = {
|
||||||
|
enable = true;
|
||||||
|
settings = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.caelestia = {
|
||||||
|
Service = {
|
||||||
|
ExecStart = lib.mkForce "${pkgs.writeShellScript "caelestia-wrapper" ''
|
||||||
|
export QT_QPA_PLATFORMTHEME=gtk3
|
||||||
|
|
||||||
|
${config.programs.caelestia.package}/bin/caelestia-shell
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.swww.enable = lib.mkForce false;
|
||||||
|
programs.waybar.enable = lib.mkForce false;
|
||||||
|
services.swaync.enable = lib.mkForce false;
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
{ ... }:
|
||||||
let
|
let
|
||||||
configDir = ../config;
|
configDir = ../config;
|
||||||
browser = "zen.desktop";
|
browser = "zen.desktop";
|
||||||
|
|
@ -37,6 +38,8 @@ in
|
||||||
"application/pdf" = [ browser ];
|
"application/pdf" = [ browser ];
|
||||||
"image/jpeg" = [ browser ];
|
"image/jpeg" = [ browser ];
|
||||||
"image/png" = [ browser ];
|
"image/png" = [ browser ];
|
||||||
|
"x-scheme-handler/http" = browser;
|
||||||
|
"x-scheme-handler/https" = browser;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ in
|
||||||
|
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "Papirus-Dark";
|
name = "Papirus-Dark";
|
||||||
package = pkgs.papirus-folders;
|
package = pkgs.papirus-icon-theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk3 = {
|
gtk3 = {
|
||||||
|
|
@ -43,29 +43,14 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
|
||||||
libsForQt5.lightly
|
|
||||||
libsForQt5.qt5ct
|
libsForQt5.qt5ct
|
||||||
adwaita-icon-theme
|
|
||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
glib
|
glib
|
||||||
(catppuccin-kvantum.override {
|
|
||||||
accent = "lavender";
|
|
||||||
variant = "macchiato";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
style.name = "qt5ct-style";
|
style.name = "adwaita-dark";
|
||||||
style.package = pkgs.catppuccin-kvantum;
|
platformTheme.name = "gtk3";
|
||||||
platformTheme.name = "qtct";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
"Kvantum/catppuccin-macchiato-Lavender/catppuccin-macchiato-lavender/catppuccin-macchiato-lavender.kvconfig".source =
|
|
||||||
"${pkgs.catppuccin-kvantum}/share/Kvantum/catppuccin-macchiato-lavender/cattpuccin-macchiato-lavender.kvconfig";
|
|
||||||
"Kvantum/catppuccin-macchiato-Lavender/catppuccin-macchiato-lavender/catppuccin-macchiato-lavender.svg".source =
|
|
||||||
"${pkgs.catppuccin-kvantum}/share/Kvantum/catppuccin-macchiato-lavender/cattpuccin-macchiato-lavender.svg";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,9 @@
|
||||||
kb_model = "";
|
kb_model = "";
|
||||||
kb_rules = "";
|
kb_rules = "";
|
||||||
|
|
||||||
|
repeat_delay = 250;
|
||||||
|
repeat_rate = 35;
|
||||||
|
|
||||||
follow_mouse = 1;
|
follow_mouse = 1;
|
||||||
accel_profile = "flat";
|
accel_profile = "flat";
|
||||||
|
|
||||||
|
|
@ -17,6 +20,9 @@
|
||||||
|
|
||||||
sensitivity = -0.1; # -1.0 - 1.0, 0 means no modification.
|
sensitivity = -0.1; # -1.0 - 1.0, 0 means no modification.
|
||||||
};
|
};
|
||||||
|
binds = {
|
||||||
|
scroll_event_delay = 0;
|
||||||
|
};
|
||||||
|
|
||||||
cursor = {
|
cursor = {
|
||||||
no_hardware_cursors = true;
|
no_hardware_cursors = true;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@
|
||||||
"col.active_border" = "rgb(EBDBB2) rgb(24273A) rgb(24273A) rgb(EBDBB2) 45deg";
|
"col.active_border" = "rgb(EBDBB2) rgb(24273A) rgb(24273A) rgb(EBDBB2) 45deg";
|
||||||
"col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg";
|
"col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg";
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
allow_tearing = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@ in
|
||||||
"float, class:^(xdg-desktop-portal-gtk)$"
|
"float, class:^(xdg-desktop-portal-gtk)$"
|
||||||
"float, title:^(Steam Settings)$"
|
"float, title:^(Steam Settings)$"
|
||||||
|
|
||||||
|
"fullscreen, initialClass:^(cs2)$"
|
||||||
|
|
||||||
"opacity 0.9999 override, initialClass:^(zen)(.*)"
|
"opacity 0.9999 override, initialClass:^(zen)(.*)"
|
||||||
|
|
||||||
# Picture in picture windows
|
# Picture in picture windows
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
|
inputs,
|
||||||
system,
|
system,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
|
|
@ -63,16 +63,18 @@ in
|
||||||
disable_logs = true;
|
disable_logs = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
bind = import ./hypr/bind.nix {
|
bind = (
|
||||||
inherit
|
import ./hypr/bind.nix {
|
||||||
mainMod
|
inherit
|
||||||
pkgs
|
mainMod
|
||||||
monitors
|
pkgs
|
||||||
config
|
monitors
|
||||||
lib
|
config
|
||||||
;
|
lib
|
||||||
nvidia-offload-enabled = osConfig.hardware.nvidia.prime.offload.enableOffloadCmd;
|
;
|
||||||
};
|
nvidia-offload-enabled = osConfig.hardware.nvidia.prime.offload.enableOffloadCmd;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
bindm = [
|
bindm = [
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
|
@ -84,7 +86,7 @@ in
|
||||||
let
|
let
|
||||||
resizeStep = builtins.toString 20;
|
resizeStep = builtins.toString 20;
|
||||||
brightnessStep = builtins.toString 10;
|
brightnessStep = builtins.toString 10;
|
||||||
volumeStep = builtins.toString 2;
|
volumeStep = builtins.toString 4;
|
||||||
in
|
in
|
||||||
[
|
[
|
||||||
'',XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%+''
|
'',XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%+''
|
||||||
|
|
@ -126,6 +128,10 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
workspace = (import ./hypr/workspace.nix { inherit monitors; });
|
workspace = (import ./hypr/workspace.nix { inherit monitors; });
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
force_default_wallpaper = 0;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
// (import ./hypr/window.nix)
|
// (import ./hypr/window.nix)
|
||||||
// (import ./hypr/windowrule.nix)
|
// (import ./hypr/windowrule.nix)
|
||||||
|
|
@ -145,17 +151,6 @@ in
|
||||||
package = inputs.swww.packages.${system}.swww;
|
package = inputs.swww.packages.${system}.swww;
|
||||||
};
|
};
|
||||||
|
|
||||||
# === hyprpaper (Disabled) === #
|
|
||||||
services.hyprpaper = {
|
|
||||||
enable = false;
|
|
||||||
settings = {
|
|
||||||
# preload = wallpapers;
|
|
||||||
wallpaper = [ ", ~/.config/wallpapers/wall.png" ];
|
|
||||||
splash = false;
|
|
||||||
ipc = "on";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# === hyprlock === #
|
# === hyprlock === #
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -329,8 +324,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# === hyprsunset === #
|
# === sunsetr === #
|
||||||
systemd.user.services.hyprsunset = {
|
systemd.user.services.sunsetr = {
|
||||||
Install = {
|
Install = {
|
||||||
WantedBy = [ "graphical-session.target" ];
|
WantedBy = [ "graphical-session.target" ];
|
||||||
};
|
};
|
||||||
|
|
@ -339,10 +334,9 @@ in
|
||||||
Description = "Blue light filter";
|
Description = "Blue light filter";
|
||||||
};
|
};
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = "${pkgs.hyprsunset}/bin/hyprsunset -t 3000k";
|
ExecStart = "${pkgs.sunsetr}/bin/sunsetr";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
RestartSec = 2;
|
RestartSec = 2;
|
||||||
KillSignal = "SIGKILL"; # Hyprsunset seems not handle the SIGTERM signal properly
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
31
home/user/quickshell.nix
Normal file
31
home/user/quickshell.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
quickshell
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.quickshell = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Quickshell";
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
Service = {
|
||||||
|
type = "exec";
|
||||||
|
ExecStart = "${pkgs.quickshell}/bin/quickshell";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
TimeoutStopSec = "5s";
|
||||||
|
Environment = [
|
||||||
|
"QT_QPA_PLATFORM=wayland"
|
||||||
|
];
|
||||||
|
|
||||||
|
Slice = "session.slice";
|
||||||
|
};
|
||||||
|
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
hyprlog = "grep -v \"arranged\" $XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log | cat";
|
hyprlog = "grep -v \"arranged\" $XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log | cat";
|
||||||
saveEye = "pkill -f hyprsunset && hyprctl dispatch exec 'hyprsunset -t 3300'";
|
|
||||||
|
|
||||||
# Systemd Boot
|
# Systemd Boot
|
||||||
setWin = "sudo bootctl set-oneshot auto-windows";
|
setWin = "sudo bootctl set-oneshot auto-windows";
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
osConfig,
|
osConfig,
|
||||||
config,
|
config,
|
||||||
username,
|
username,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
@ -44,7 +45,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
# === waybar === #
|
# === waybar === #
|
||||||
systemd.user.services.waybar = {
|
systemd.user.services.waybar = lib.mkIf config.programs.waybar.enable {
|
||||||
Unit = {
|
Unit = {
|
||||||
PartOf = [ "graphical-session.target" ];
|
PartOf = [ "graphical-session.target" ];
|
||||||
After = [ "graphical-session.target" ];
|
After = [ "graphical-session.target" ];
|
||||||
|
|
@ -252,6 +253,8 @@ in
|
||||||
"code"
|
"code"
|
||||||
".virt-manager-wrapped"
|
".virt-manager-wrapped"
|
||||||
"virt-manager"
|
"virt-manager"
|
||||||
|
"steam_app_*"
|
||||||
|
"obsidian"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"custom/cava" = {
|
"custom/cava" = {
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,15 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
|
||||||
system,
|
system,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
yaziPlugins = pkgs.fetchFromGitHub {
|
yaziPlugins = pkgs.fetchFromGitHub {
|
||||||
owner = "yazi-rs";
|
owner = "yazi-rs";
|
||||||
repo = "plugins";
|
repo = "plugins";
|
||||||
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
|
rev = "main";
|
||||||
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
|
hash = "sha256-TUS+yXxBOt6tL/zz10k4ezot8IgVg0/2BbS8wPs9KcE=";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -20,10 +18,14 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.yazi.packages.${system}.default;
|
package = inputs.yazi.packages.${system}.default;
|
||||||
shellWrapperName = "y";
|
shellWrapperName = "y";
|
||||||
enableFishIntegration = false;
|
enableFishIntegration = true;
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
toggle-panel = ''${yaziPlugins}/toggle-panel.yazi'';
|
toggle-pane = ''${yaziPlugins}/toggle-pane.yazi'';
|
||||||
|
mount = ''${yaziPlugins}/mount.yazi'';
|
||||||
|
zoom = ''${yaziPlugins}/zoom'';
|
||||||
|
vcs-files = ''${yaziPlugins}/vcs-files'';
|
||||||
|
git = ''${yaziPlugins}/git'';
|
||||||
};
|
};
|
||||||
|
|
||||||
flavors = {
|
flavors = {
|
||||||
|
|
@ -42,9 +44,81 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
plugin.prepend_fetchers = [
|
||||||
|
{
|
||||||
|
id = "git";
|
||||||
|
name = "*";
|
||||||
|
run = "git";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "git";
|
||||||
|
name = "*/";
|
||||||
|
run = "git";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
input = {
|
||||||
|
cursor_blink = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
opener = {
|
||||||
|
edit = [
|
||||||
|
{
|
||||||
|
run = ''''\${EDITOR:=nvim} "$@"'';
|
||||||
|
desc = "$EDITOR";
|
||||||
|
block = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
run = ''code "$@"'';
|
||||||
|
orphan = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
player = [
|
||||||
|
{ run = ''mpv --force-window "$@"''; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
keymap = {
|
keymap = {
|
||||||
mgr = {
|
mgr = {
|
||||||
prepend_keymap = [
|
prepend_keymap = [
|
||||||
|
# Git Changes
|
||||||
|
{
|
||||||
|
on = [
|
||||||
|
"g"
|
||||||
|
"c"
|
||||||
|
];
|
||||||
|
run = "plugin vcs-files";
|
||||||
|
desc = "Show Git file changes";
|
||||||
|
}
|
||||||
|
# Image zoom
|
||||||
|
{
|
||||||
|
on = "+";
|
||||||
|
run = "plugin zoom 1";
|
||||||
|
desc = "Zoom in hovered file";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = "-";
|
||||||
|
run = "plugin zoom -1";
|
||||||
|
desc = "Zoom out hovered file";
|
||||||
|
}
|
||||||
|
# Mount Manager
|
||||||
|
{
|
||||||
|
on = "M";
|
||||||
|
run = "plugin mount";
|
||||||
|
desc = "Launch mount manager";
|
||||||
|
# Usage
|
||||||
|
# Key binding Alternate key Action
|
||||||
|
# q - Quit the plugin
|
||||||
|
# k ↑ Move up
|
||||||
|
# j ↓ Move down
|
||||||
|
# l → Enter the mount point
|
||||||
|
# m - Mount the partition
|
||||||
|
# u - Unmount the partition
|
||||||
|
# e - Eject the disk
|
||||||
|
}
|
||||||
# Toggle Maximize Preview
|
# Toggle Maximize Preview
|
||||||
{
|
{
|
||||||
on = "T";
|
on = "T";
|
||||||
|
|
@ -66,6 +140,7 @@ in
|
||||||
"r"
|
"r"
|
||||||
];
|
];
|
||||||
run = ''shell -- ya emit cd "$(git rev-parse --show-toplevel)"'';
|
run = ''shell -- ya emit cd "$(git rev-parse --show-toplevel)"'';
|
||||||
|
desc = "Go to git root";
|
||||||
}
|
}
|
||||||
# Drag and Drop
|
# Drag and Drop
|
||||||
{
|
{
|
||||||
|
|
@ -92,16 +167,6 @@ in
|
||||||
initLua =
|
initLua =
|
||||||
# lua
|
# lua
|
||||||
''
|
''
|
||||||
-- Show symlink in status bar
|
|
||||||
Status:children_add(function(self)
|
|
||||||
local h = self._current.hovered
|
|
||||||
if h and h.link_to then
|
|
||||||
return " -> " .. toString(h.link_to)
|
|
||||||
else
|
|
||||||
return ""
|
|
||||||
end
|
|
||||||
end, 3300, Status.LEFT)
|
|
||||||
|
|
||||||
-- Show user/group of files in status bar
|
-- Show user/group of files in status bar
|
||||||
Status:children_add(function()
|
Status:children_add(function()
|
||||||
local h = cx.active.current.hovered
|
local h = cx.active.current.hovered
|
||||||
|
|
@ -116,14 +181,6 @@ in
|
||||||
" ",
|
" ",
|
||||||
}
|
}
|
||||||
end, 500, Status.RIGHT)
|
end, 500, Status.RIGHT)
|
||||||
|
|
||||||
-- Show username and hostname in header
|
|
||||||
Header:children_add(function()
|
|
||||||
if ya.target_family() ~= "unix" then
|
|
||||||
return ""
|
|
||||||
end
|
|
||||||
return ui.Span(ya.user_name() .. "@" .. ya.host_name() .. ":"):fg("blue")
|
|
||||||
end, 500, Header.LEFT)
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -131,36 +188,4 @@ in
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
ueberzugpp
|
ueberzugpp
|
||||||
];
|
];
|
||||||
|
|
||||||
# xdg.portal = {
|
|
||||||
# enable = lib.mkForce true;
|
|
||||||
# extraPortals = [ pkgs.xdg-desktop-portal-termfilechooser ];
|
|
||||||
# config = {
|
|
||||||
# common.default = [
|
|
||||||
# "hyprland"
|
|
||||||
# "gtk"
|
|
||||||
# ];
|
|
||||||
# common = {
|
|
||||||
# "org.freedesktop.impl.portal.FileChooser" = "termfilechooser";
|
|
||||||
# };
|
|
||||||
# hyprland.default = [
|
|
||||||
# "hyprland"
|
|
||||||
# "gtk"
|
|
||||||
# ];
|
|
||||||
# hyprland."org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" ];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# xdg.configFile."xdg-desktop-portal-termfilechooser/config" = {
|
|
||||||
# force = true;
|
|
||||||
# text = ''
|
|
||||||
# [filechooser]
|
|
||||||
# cmd=TERMCMD='${config.programs.ghostty.package}/bin/ghostty --title=file_chooser -e "bash -c ${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh"'
|
|
||||||
# default_dir=$HOME
|
|
||||||
# open_mode = suggested
|
|
||||||
# save_mode = last
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
|
|
||||||
# home.sessionVariables.TERMCMD = "${config.programs.ghostty.package}/bin/ghostty --title=file_chooser";
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,15 @@
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
zenNebula = pkgs.fetchFromGitHub {
|
||||||
|
owner = "justadumbprsn";
|
||||||
|
repo = "zen-nebula";
|
||||||
|
rev = "main";
|
||||||
|
sha256 = "sha256-f4J5ob/apKhxERUSvXE8QHMMsKJCQFRoMSo/Pw4LgTg=";
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.zen-browser = {
|
programs.zen-browser = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -12,6 +21,8 @@
|
||||||
"zen.view.compact.should-enable-at-startup" = true;
|
"zen.view.compact.should-enable-at-startup" = true;
|
||||||
"zen.widget.linux.transparency" = true;
|
"zen.widget.linux.transparency" = true;
|
||||||
"zen.view.compact.show-sidebar-and-toolbar-on-hover" = false;
|
"zen.view.compact.show-sidebar-and-toolbar-on-hover" = false;
|
||||||
|
"zen.tabs.vertical.right-side" = true;
|
||||||
|
"zen.urlbar.behavior" = "float";
|
||||||
|
|
||||||
"app.update.auto" = false;
|
"app.update.auto" = false;
|
||||||
"app.normandy.first_run" = false;
|
"app.normandy.first_run" = false;
|
||||||
|
|
@ -20,7 +31,7 @@
|
||||||
"browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true;
|
"browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true;
|
||||||
"browser.tabs.allow_transparent_browser" = true;
|
"browser.tabs.allow_transparent_browser" = true;
|
||||||
"browser.urlbar.placeholderName" = "Google";
|
"browser.urlbar.placeholderName" = "Google";
|
||||||
"browser.urlbar.placeholderName.private" = "private";
|
"browser.urlbar.placeholderName.private" = "DuckDuckGo";
|
||||||
"middlemouse.paste" = false;
|
"middlemouse.paste" = false;
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
"font.language.group" = "zh-TW";
|
"font.language.group" = "zh-TW";
|
||||||
|
|
@ -35,7 +46,9 @@
|
||||||
ensureCACertifications = [
|
ensureCACertifications = [
|
||||||
../../system/extra/ca.crt
|
../../system/extra/ca.crt
|
||||||
];
|
];
|
||||||
|
chrome = zenNebula;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ in
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.nvidia.package = lib.mkForce config.boot.kernelPackages.nvidiaPackages.stable;
|
hardware.nvidia.package = lib.mkForce config.boot.kernelPackages.nvidiaPackages.latest;
|
||||||
|
hardware.nvidia.open = lib.mkForce true;
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
@ -58,7 +59,6 @@ in
|
||||||
users."${username}" = {
|
users."${username}" = {
|
||||||
imports = [
|
imports = [
|
||||||
../../../home/presets/basic.nix
|
../../../home/presets/basic.nix
|
||||||
../../../home/user/zen-browser.nix
|
|
||||||
|
|
||||||
# Bitwarden client
|
# Bitwarden client
|
||||||
(import ../../../home/user/bitwarden.nix {
|
(import ../../../home/user/bitwarden.nix {
|
||||||
|
|
@ -84,61 +84,65 @@ in
|
||||||
|
|
||||||
# waybar
|
# waybar
|
||||||
(import ../../../home/user/waybar.nix {
|
(import ../../../home/user/waybar.nix {
|
||||||
settings = [
|
settings =
|
||||||
# monitor 1
|
let
|
||||||
{
|
id = 5;
|
||||||
output = "DP-5";
|
in
|
||||||
modules-left = [
|
[
|
||||||
"custom/os"
|
# monitor 1
|
||||||
"hyprland/workspaces"
|
{
|
||||||
"clock"
|
output = "DP-${toString id}";
|
||||||
"custom/cava"
|
modules-left = [
|
||||||
"mpris"
|
"custom/os"
|
||||||
];
|
"hyprland/workspaces"
|
||||||
modules-right = (
|
"clock"
|
||||||
[
|
"custom/cava"
|
||||||
|
"mpris"
|
||||||
|
];
|
||||||
|
modules-right = (
|
||||||
|
[
|
||||||
|
"wlr/taskbar"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
if config.programs.gamemode.enable then
|
||||||
|
[
|
||||||
|
"custom/gamemode"
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
)
|
||||||
|
++ [
|
||||||
|
"custom/bitwarden"
|
||||||
|
"custom/airplay"
|
||||||
|
"custom/wallRand"
|
||||||
|
"custom/wireguard"
|
||||||
|
"custom/recording"
|
||||||
|
"idle_inhibitor"
|
||||||
|
"network"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"pulseaudio"
|
||||||
|
"custom/swaync"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
# monitor 2
|
||||||
|
{
|
||||||
|
output = "DP-${toString (id + 1)}";
|
||||||
|
height = 54;
|
||||||
|
modules-left = [
|
||||||
|
"clock"
|
||||||
|
"mpris"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
"wlr/taskbar"
|
"wlr/taskbar"
|
||||||
]
|
"temperature"
|
||||||
++ (
|
|
||||||
if config.programs.gamemode.enable then
|
|
||||||
[
|
|
||||||
"custom/gamemode"
|
|
||||||
]
|
|
||||||
else
|
|
||||||
[ ]
|
|
||||||
)
|
|
||||||
++ [
|
|
||||||
"custom/bitwarden"
|
|
||||||
"custom/airplay"
|
|
||||||
"custom/wallRand"
|
|
||||||
"custom/wireguard"
|
|
||||||
"custom/recording"
|
|
||||||
"idle_inhibitor"
|
|
||||||
"network"
|
|
||||||
"cpu"
|
"cpu"
|
||||||
"memory"
|
"memory"
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
"custom/swaync"
|
];
|
||||||
]
|
}
|
||||||
);
|
];
|
||||||
}
|
|
||||||
# monitor 2
|
|
||||||
{
|
|
||||||
output = "DP-6";
|
|
||||||
height = 54;
|
|
||||||
modules-left = [
|
|
||||||
"clock"
|
|
||||||
"mpris"
|
|
||||||
];
|
|
||||||
modules-right = [
|
|
||||||
"wlr/taskbar"
|
|
||||||
"temperature"
|
|
||||||
"cpu"
|
|
||||||
"memory"
|
|
||||||
"pulseaudio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
})
|
})
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
|
|
@ -150,6 +154,10 @@ in
|
||||||
''desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271, 2560x1440@165, 0x0, 1''
|
''desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271, 2560x1440@165, 0x0, 1''
|
||||||
''desc:Acer Technologies XV272U V3 1322131231233, 2560x1440@180, -1440x-600, 1, transform, 1''
|
''desc:Acer Technologies XV272U V3 1322131231233, 2560x1440@180, -1440x-600, 1, transform, 1''
|
||||||
];
|
];
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
vrr = 0;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -159,10 +167,34 @@ in
|
||||||
inherit username;
|
inherit username;
|
||||||
email = "danny10132024@gmail.com";
|
email = "danny10132024@gmail.com";
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# Cs go
|
||||||
|
{
|
||||||
|
home.file.".steam/steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/autoexec.cfg".text =
|
||||||
|
''
|
||||||
|
fps_max "250"
|
||||||
|
|
||||||
|
# Wheel Jump
|
||||||
|
bind "mwheeldown" "+jump"
|
||||||
|
bind "mwheelup" "+jump"
|
||||||
|
bind "space" "+jump"
|
||||||
|
|
||||||
|
echo "AUTOEXEC LOADED SUCCESSFULLY!"
|
||||||
|
host_writeconfig
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Power Management
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
INTEL_GPU_MIN_FREQ_ON_AC = 500;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
rustdesk
|
rustdesk
|
||||||
blender
|
blender
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ in
|
||||||
|
|
||||||
systemd.user.services.uxplay = {
|
systemd.user.services.uxplay = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "networking-online.target" ];
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
ExecStart = "${pkgs.uxplay}/bin/uxplay ${
|
ExecStart = "${pkgs.uxplay}/bin/uxplay ${
|
||||||
optionalString (hostname != null) "-n ${hostname} -fs -fps 60 -nh"
|
optionalString (hostname != null) "-n ${hostname} -fs -fps 60 -nh"
|
||||||
} -p";
|
} -p";
|
||||||
|
|
|
||||||
|
|
@ -101,9 +101,5 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
GBM_BACKEND = "nvidia-drm";
|
GBM_BACKEND = "nvidia-drm";
|
||||||
MOZ_DISABLE_RDD_SANDBOX = 1;
|
MOZ_DISABLE_RDD_SANDBOX = 1;
|
||||||
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
||||||
|
|
||||||
# If multiple monitors are connected to dGPU & iGPU,
|
|
||||||
# make sure to put the iGPU first
|
|
||||||
# AQ_DRM_DEVICES = "/dev/dri/card1:/dev/dri/card0";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue