Merge branch 'main' of github.com:bloxx12/nichts
This commit is contained in:
commit
b196df3319
57 changed files with 1977 additions and 139 deletions
390
flake.lock
generated
390
flake.lock
generated
|
@ -21,6 +21,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"anyrun": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712136515,
|
||||
"narHash": "sha256-LpjQJYC24S5P5XhJsZX6HqsQT1pohcFzM6N42I6qo/U=",
|
||||
"owner": "Kirottu",
|
||||
"repo": "anyrun",
|
||||
"rev": "be6728884d543665e7bd137bbef62dc1d04a210b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Kirottu",
|
||||
"repo": "anyrun",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -87,6 +108,21 @@
|
|||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1688025799,
|
||||
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
|
@ -103,6 +139,49 @@
|
|||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"anyrun",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696343447,
|
||||
"narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixpkgs-wayland",
|
||||
"nix-eval-jobs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701473968,
|
||||
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"schizofox",
|
||||
|
@ -123,9 +202,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"flake-parts_4": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698882062,
|
||||
|
@ -141,6 +220,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hercules-ci-effects": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
|
@ -335,6 +432,127 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprlock",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711250455,
|
||||
"narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlock": {
|
||||
"inputs": {
|
||||
"hyprlang": "hyprlang_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712861866,
|
||||
"narHash": "sha256-7ISUD6Z8FivTw/Db8tGJdiJeqpvJs7CSCwadopb1oro=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlock",
|
||||
"rev": "6fa65e1172d633e61ed957a49e7cf96010432623",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlock",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lib-aggregate": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712491724,
|
||||
"narHash": "sha256-E5EcBzf/zaR3hD8g1CDtqqwXXebSWtqOvoaR+LDjTME=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lib-aggregate",
|
||||
"rev": "2737d0204685c3274390229a09eb8f7eaa1a9e89",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "lib-aggregate",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-eval-jobs": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705242886,
|
||||
"narHash": "sha256-TLj334vRwFtSym3m+NnKcNCnKKPNoTC/TDZL40vmOso=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-eval-jobs",
|
||||
"rev": "6b03a93296faf174b97546fd573c8b379f523a8d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-eval-jobs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-filter": {
|
||||
"locked": {
|
||||
"lastModified": 1693833173,
|
||||
"narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=",
|
||||
"owner": "numtide",
|
||||
"repo": "nix-filter",
|
||||
"rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "nix-filter",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-wayland",
|
||||
"nix-eval-jobs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701208414,
|
||||
"narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpak": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
|
@ -378,6 +596,21 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1712450863,
|
||||
"narHash": "sha256-K6IkdtMtq9xktmYPj0uaYc8NsIqHuaAoRBaMgu9Fvrw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "3c62b6a12571c9a7f65ab037173ee153d539905f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib_2": {
|
||||
"locked": {
|
||||
"dir": "lib",
|
||||
"lastModified": 1698611440,
|
||||
|
@ -395,6 +628,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-wayland": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"lib-aggregate": "lib-aggregate",
|
||||
"nix-eval-jobs": "nix-eval-jobs",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712942143,
|
||||
"narHash": "sha256-pTpvq5EXPD9noOBkmTEa7mkwMpeda8+8u3anmjxhRAI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs-wayland",
|
||||
"rev": "8ed6e0db00db83e5a598afa6cdf32c9b41f083bd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs-wayland",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1712791164,
|
||||
|
@ -411,6 +665,38 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1703134684,
|
||||
"narHash": "sha256-SQmng1EnBFLzS7WSRyPM9HgmZP2kLJcPAz+Ug/nug6o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d6863cbcbbb80e71cecfc03356db1cda38919523",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1712791164,
|
||||
"narHash": "sha256-3sbWO1mbpWsLepZGbWaMovSO7ndZeFqDSdX0hZ9nVyw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1042fd8b148a9105f3c0aca3a6177fd1d9360ba5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"locked": {
|
||||
"lastModified": 1712918680,
|
||||
|
@ -429,12 +715,16 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"anyrun": "anyrun",
|
||||
"fenix": "fenix",
|
||||
"home-manager": "home-manager_2",
|
||||
"hyprland": "hyprland",
|
||||
"hyprlock": "hyprlock",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-wayland": "nixpkgs-wayland",
|
||||
"nur": "nur",
|
||||
"schizofox": "schizofox"
|
||||
"schizofox": "schizofox",
|
||||
"split-monitor-workspaces": "split-monitor-workspaces"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
|
@ -456,8 +746,8 @@
|
|||
},
|
||||
"schizofox": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"home-manager": "home-manager_3",
|
||||
"nixpak": "nixpak",
|
||||
"nixpkgs": [
|
||||
|
@ -482,7 +772,7 @@
|
|||
"searx-randomizer": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"flake-parts": "flake-parts_4",
|
||||
"nixpkgs": [
|
||||
"schizofox",
|
||||
"nixpkgs"
|
||||
|
@ -502,6 +792,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"split-monitor-workspaces": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
"hyprland"
|
||||
],
|
||||
"nix-filter": "nix-filter"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712527107,
|
||||
"narHash": "sha256-stmJqifOWf8oXxKwHvCo3RaVapXSk1n/+Sf9nKNENEA=",
|
||||
"owner": "Duckonaut",
|
||||
"repo": "split-monitor-workspaces",
|
||||
"rev": "c5696000777f6586aaa255bd0a9b0627d5da911f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Duckonaut",
|
||||
"repo": "split-monitor-workspaces",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
|
@ -532,6 +843,73 @@
|
|||
"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": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"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": [
|
||||
"nixpkgs-wayland",
|
||||
"nix-eval-jobs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1702979157,
|
||||
"narHash": "sha256-RnFBbLbpqtn4AoJGXKevQMCGhra4h6G2MPcuTSZZQ+g=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "2961375283668d867e64129c22af532de8e77734",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wlroots": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
16
flake.nix
16
flake.nix
|
@ -7,13 +7,21 @@
|
|||
};
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
||||
anyrun = {
|
||||
url = "github:Kirottu/anyrun";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nur.url = "github:nix-community/NUR";
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
|
||||
|
@ -29,9 +37,9 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
url = "github:hyprwm/Hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
split-monitor-workspaces = {
|
||||
url = "github:Duckonaut/split-monitor-workspaces";
|
||||
# inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -37,4 +37,15 @@ in {
|
|||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
|
||||
flocke = lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit lib inputs self; };
|
||||
modules = [
|
||||
./dragyx/flocke
|
||||
../modules
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
65
hosts/dragyx/common/packages.nix
Normal file
65
hosts/dragyx/common/packages.nix
Normal file
|
@ -0,0 +1,65 @@
|
|||
# which default packages to use for the system
|
||||
{ inputs, outputs, profile-config, pkgs, ...}:
|
||||
|
||||
let
|
||||
python-packages = ps: with ps; [
|
||||
pandas
|
||||
numpy
|
||||
opencv4
|
||||
ipython
|
||||
];
|
||||
in
|
||||
{
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python3.withPackages python-packages)
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
neovim
|
||||
eza # exa is unmaintained
|
||||
hwinfo
|
||||
zsh
|
||||
git
|
||||
broot
|
||||
unzip
|
||||
rsync
|
||||
# neofetch
|
||||
# fastfetch has the option to set a timeout for
|
||||
# for each module, which makes it dramatically faster
|
||||
# as counting the number of packages takes over 800 (!!!) ms,
|
||||
# which makes it very unpleasant to use as default thing
|
||||
# to display when starting a terminal
|
||||
fastfetch
|
||||
alacritty
|
||||
wget
|
||||
gnumake
|
||||
zoxide
|
||||
python3
|
||||
nodejs
|
||||
gcc
|
||||
cargo
|
||||
rustc
|
||||
rust-analyzer
|
||||
clippy
|
||||
lsof
|
||||
htop
|
||||
okular
|
||||
smartmontools
|
||||
networkmanager
|
||||
pkg-config
|
||||
sof-firmware # audio
|
||||
nix-index
|
||||
# --------- optional
|
||||
gnome.eog
|
||||
sherlock
|
||||
xfce.thunar
|
||||
|
||||
plocate
|
||||
alsa-utils
|
||||
|
||||
# partition management
|
||||
parted
|
||||
gnufdisk
|
||||
lapce
|
||||
];
|
||||
}
|
163
hosts/dragyx/flocke/configuration.nix
Normal file
163
hosts/dragyx/flocke/configuration.nix
Normal file
|
@ -0,0 +1,163 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../options/common/pin-registry.nix
|
||||
../../../options/common/preserve-system.nix
|
||||
../../../options/desktop/fonts.nix
|
||||
];
|
||||
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
time.timeZone = "Europe/Zurich";
|
||||
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
sessionPackages = [ pkgs.hyprland ]; # pkgs.gnome.gnome-session.sessions ];
|
||||
defaultSession = "hyprland";
|
||||
sddm = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
windowManager.hypr.enable = true;
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
|
||||
hardware.opengl.driSupport = true;
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
hardware.opengl.enable = true;
|
||||
|
||||
services.logrotate.checkConfig = false;
|
||||
|
||||
networking.hostName = "flocke"; # Define your hostname.
|
||||
networking.hostId = "adf23c31";
|
||||
networking.interfaces.wlp1s0.useDHCP = true;
|
||||
networking.networkmanager.enable = true;
|
||||
environment.systemPackages = with pkgs; [ networkmanager ]; # cli tool for managing connections
|
||||
|
||||
boot = {
|
||||
kernelParams = [ ];
|
||||
initrd.supportedFilesystems = [ "ext4" ];
|
||||
supportedFilesystems = [ "ext4" ];
|
||||
loader = {
|
||||
efi.efiSysMountPoint = "/boot";
|
||||
efi.canTouchEfiVariables = true;
|
||||
grub = {
|
||||
enable = true;
|
||||
device = "nodev";
|
||||
efiSupport = true;
|
||||
enableCryptodisk = true;
|
||||
};
|
||||
};
|
||||
initrd.luks.devices = {
|
||||
cryptroot = {
|
||||
device = "/dev/disk/by-uuid/ec5ff3a1-9b39-4ba5-aa0f-19e898b4f6e8";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# see https://nixos.wiki/wiki/AMD_GPU
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
systemd.tmpfiles.rules = [
|
||||
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
|
||||
];
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
rocmPackages.clr.icd
|
||||
];
|
||||
|
||||
services.power-profiles-daemon.enable = false;
|
||||
|
||||
# stock nixos power management
|
||||
powerManagement.enable = true;
|
||||
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
|
||||
CPU_MIN_PERF_ON_AC = 0;
|
||||
CPU_MAX_PERF_ON_AC = 100;
|
||||
CPU_MIN_PERF_ON_BAT = 0;
|
||||
CPU_MAX_PERF_ON_BAT = 20;
|
||||
|
||||
#Optional helps save long term battery health
|
||||
START_CHARGE_THRESH_BAT0 = 40; # 40 and bellow it starts to charge
|
||||
STOP_CHARGE_THRESH_BAT0 = 85; # 80 and above it stops charging
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [ {
|
||||
device = "/var/lib/swapfile";
|
||||
size = 32*1024;
|
||||
} ];
|
||||
|
||||
|
||||
# be nice to your ssds
|
||||
services.fstrim.enable = true;
|
||||
# services.xserver.enable = pkgs.lib.mkForce false;
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
modules = {
|
||||
other = {
|
||||
system = {
|
||||
hostname = "flocke";
|
||||
username = "dragyx";
|
||||
monitors = {
|
||||
name = "LaptopMain";
|
||||
resolution = {
|
||||
x = 2256;
|
||||
y = 1504;
|
||||
};
|
||||
scale = 1.0;
|
||||
refresh_rate = 60;
|
||||
};
|
||||
};
|
||||
home-manager = {
|
||||
enable = true;
|
||||
enableDirenv = true;
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
vesktop.enable = true;
|
||||
btop.enable = true;
|
||||
mpv.enable = true;
|
||||
schizofox.enable = true;
|
||||
obs.enable = true;
|
||||
neovim.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Dragyx";
|
||||
userEmail = "66752602+Dragyx@users.noreply.github.com";
|
||||
defaultBranch = "main";
|
||||
};
|
||||
starship.enable = true;
|
||||
zsh = {
|
||||
enable = true;
|
||||
profiling = false;
|
||||
};
|
||||
# badneovim.enable = true;
|
||||
};
|
||||
services = {
|
||||
pipewire.enable = true;
|
||||
};
|
||||
WM.hyprland.enable = true;
|
||||
};
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "21.11"; # Did you read the comment?
|
||||
}
|
8
hosts/dragyx/flocke/default.nix
Normal file
8
hosts/dragyx/flocke/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
_: {
|
||||
imports = [
|
||||
../../../options/desktop/monitors.nix
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
# ./packages.nix
|
||||
];
|
||||
}
|
35
hosts/dragyx/flocke/hardware-configuration.nix
Normal file
35
hosts/dragyx/flocke/hardware-configuration.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/2aaba0f2-e8dc-4583-a81e-2d35cc238e79";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/9D34-36F8";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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.wlp1s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
56
hosts/dragyx/flocke/packages.nix
Normal file
56
hosts/dragyx/flocke/packages.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
# which default packages to use for the system
|
||||
{ inputs, outputs, profile-config, pkgs, ...}:
|
||||
|
||||
let
|
||||
python-packages = ps: with ps; [
|
||||
pandas
|
||||
numpy
|
||||
opencv4
|
||||
ipython
|
||||
];
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
../common/packages.nix
|
||||
];
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
# security audits
|
||||
lynis
|
||||
element-desktop
|
||||
jetbrains.idea-community
|
||||
baobab
|
||||
amdvlk
|
||||
texlive.combined.scheme-full
|
||||
android-tools
|
||||
signal-desktop
|
||||
nextcloud-client
|
||||
etcher
|
||||
vlc
|
||||
audacity
|
||||
thunderbird
|
||||
eclipses.eclipse-java
|
||||
openjdk
|
||||
firefox
|
||||
# pkgs.nordvpn # nur.repos.LuisChDev.nordvpn
|
||||
material-icons
|
||||
material-design-icons
|
||||
libreoffice
|
||||
gimp
|
||||
spotify
|
||||
okular
|
||||
# minecraft
|
||||
prismlauncher-unwrapped
|
||||
glfw-wayland-minecraft
|
||||
glxinfo
|
||||
# window manager
|
||||
flameshot
|
||||
feh
|
||||
# Animeeeeee!
|
||||
ani-cli # The stable version is very outdated
|
||||
];
|
||||
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||
security.polkit.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
myOptions = {
|
||||
modules = {
|
||||
other = {
|
||||
system = {
|
||||
gitPath = "/home/lars/nichts";
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
myOptions = {
|
||||
modules = {
|
||||
other = {
|
||||
system = {
|
||||
hostname = "dyonisos";
|
||||
username = "lars";
|
||||
};
|
||||
};
|
||||
hyprland = {
|
||||
enable = true;
|
||||
monitor = ",preferred,auto,1";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
let
|
||||
username = config.myOptions.other.system.username;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
home-manager.users.${username} = {
|
||||
home.packages = let
|
||||
|
|
|
@ -1,10 +1,17 @@
|
|||
{ config, lib, inputs, pkgs, ... }:
|
||||
with lib; let
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.myOptions.hyprland;
|
||||
username = config.modules.other.system.username;
|
||||
cfg = config.modules.hyprland;
|
||||
in {
|
||||
options.myOptions.hyprland.nvidia.enable = mkEnableOption "nvidia";
|
||||
options.myOptions.hyprland.enable = mkEnableOption "hyprland";
|
||||
options.modules.hyprland.nvidia.enable = mkEnableOption "nvidia";
|
||||
options.modules.hyprland = {
|
||||
enable = mkEnableOption "hyprland";
|
||||
monitor = mkOption {
|
||||
description = "hyprland monitor config";
|
||||
default = ",preferred,auto,1";
|
||||
type = types.listof(types.str);
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.sessionVariables = mkIf cfg.nvidia.enable {
|
||||
|
@ -36,11 +43,6 @@ in {
|
|||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
|
||||
monitor = [
|
||||
"DP-2,2560x1440@144,0x0,1"
|
||||
"DP-1,1920x1080@60,2560x0,1"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "ch";
|
||||
};
|
||||
|
@ -56,6 +58,16 @@ in {
|
|||
# Monitor management
|
||||
"$mod SHIFT, k, movecurrentworkspacetomonitor, DP-2"
|
||||
"$mod SHIFT, j, movecurrentworkspacetomonitor, DP-1"
|
||||
|
||||
# Window Management
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, F, fullscreen"
|
||||
|
||||
# Screenshot
|
||||
"$mod SHIFT, s, exec, grim -g 'slurp -d' - | wl-copy"
|
||||
]
|
||||
++ (
|
||||
builtins.concatLists (builtins.genList (
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
myOptions = {
|
||||
modules = {
|
||||
other = {
|
||||
system = {
|
||||
hostname = "kronos";
|
||||
|
@ -10,6 +10,10 @@
|
|||
hyprland = {
|
||||
enable = true;
|
||||
nvidia.enable = true;
|
||||
monitor = [
|
||||
"DP-2,2560x1440@144,0x0,1"
|
||||
"DP-1,1920x1080@60,2560x0,1"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
let
|
||||
username = config.myOptions.other.system.username;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
home-manager.users.${username} = {
|
||||
home.packages = let
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
let
|
||||
username = config.myOptions.other.system.username;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
home-manager.users.${username} = {
|
||||
home.packages = let
|
||||
|
@ -50,6 +50,9 @@ in {
|
|||
kitty
|
||||
nextcloud-client
|
||||
vscode
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.awesome;
|
||||
cfg = config.modules.programs.awesome;
|
||||
in {
|
||||
options.myOptions.programs.awesome.enable = mkEnableOption "awesome";
|
||||
options.modules.programs.awesome.enable = mkEnableOption "awesome";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver = {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||
security.polkit.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
myOptions = {
|
||||
modules = {
|
||||
other = {
|
||||
system = {
|
||||
hostname = "mars";
|
||||
|
@ -20,12 +20,11 @@
|
|||
};
|
||||
programs = {
|
||||
vesktop.enable = true;
|
||||
ssh.enable = true;
|
||||
btop.enable = true;
|
||||
mpv.enable = true;
|
||||
i3.enable = true;
|
||||
awesome.enable = true;
|
||||
schizofox.enable = true;
|
||||
obs.enable = true;
|
||||
displaymanager.enable = true;
|
||||
#neovim.enable = true;
|
||||
#git = {
|
||||
|
|
|
@ -6,5 +6,6 @@ _: {
|
|||
./profile.nix
|
||||
./i3.nix
|
||||
./awesome.nix
|
||||
./hypr/default.nix
|
||||
];
|
||||
}
|
||||
|
|
7
hosts/vali/mars/hypr/default.nix
Normal file
7
hosts/vali/mars/hypr/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
_: {
|
||||
imports = [
|
||||
./idle.nix
|
||||
./land.nix
|
||||
./lock.nix
|
||||
];
|
||||
}
|
1
hosts/vali/mars/hypr/idle.nix
Normal file
1
hosts/vali/mars/hypr/idle.nix
Normal file
|
@ -0,0 +1 @@
|
|||
_: {}
|
423
hosts/vali/mars/hypr/land.nix
Normal file
423
hosts/vali/mars/hypr/land.nix
Normal file
|
@ -0,0 +1,423 @@
|
|||
{ config, inputs, lib, pkgs, ... }:
|
||||
|
||||
with lib; let
|
||||
|
||||
cfg = config.modules.programs.hypr.land;
|
||||
username = config.modules.other.system.username;
|
||||
hmCfg = config.home-manager.users.${username};
|
||||
|
||||
smwPresent = elem inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces cfg.extraPlugins;
|
||||
|
||||
inherit (inputs.nixpkgs-wayland.packages.${pkgs.system}) foot wl-clipboard swww wlsunset;
|
||||
inherit (inputs.anyrun.packages.${pkgs.system}) anyrun;
|
||||
inherit (inputs.hyprland.packages.${pkgs.system}) hyprland;
|
||||
inherit (inputs.hyprlock.packages.${pkgs.system}) hyprlock;
|
||||
in {
|
||||
options.modules.programs.hypr.land = {
|
||||
enable = mkEnableOption "huperland";
|
||||
startupSound = mkOption {
|
||||
type = with types; nullOr path;
|
||||
description = "sound to play on hyprland startup";
|
||||
default = null;
|
||||
};
|
||||
tearing = mkOption {
|
||||
type = types.bool;
|
||||
description = "enable tearing";
|
||||
default = false;
|
||||
};
|
||||
extraSettings = mkOption {
|
||||
type = types.attrs;
|
||||
description = "extra per host hyprland settings";
|
||||
default = {};
|
||||
};
|
||||
extraPlugins = mkOption {
|
||||
type = with types; listOf package;
|
||||
description = "extra per host hyprland plugins";
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
|
||||
disabledModules = [ "programs/hyprland.nix" ];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
nix.settings = {
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
|
||||
_JAVA_AWT_WM_NONEREPARENTING = "1";
|
||||
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
|
||||
GDK_BACKEND = "wayland";
|
||||
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
|
||||
LIBSEAT_BACKEND = "logind";
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
|
||||
];
|
||||
# TODO look into and make use of this
|
||||
config.common.default = "*";
|
||||
};
|
||||
|
||||
home-manager.users.${username} = {
|
||||
|
||||
xdg.dataFile = mkIf (cfg.startupSound != null) { "hypr/startup_sound".source = cfg.startupSound; };
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
#portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||
plugins = [] ++ cfg.extraPlugins;
|
||||
# TODO make these work with the config below (infinite recursion)
|
||||
# and make this file stop hanging my neovim every 2 seconds
|
||||
# and figure out why it triggers E79 every single time I edit something
|
||||
extraConfig = ''
|
||||
bind=$mainMod, W, exec, schizofox
|
||||
${if (cfg.startupSound != null) then "exec-once=${pkgs.mpv}/bin/mpv --no-video --volume=100 ${hmCfg.xdg.dataHome}/hypr/startup_sound" else ""}
|
||||
'';
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
monitor = [
|
||||
# second monitor
|
||||
"HDMI-A-1, 1920@1080, 0x0, 1"
|
||||
];
|
||||
|
||||
workspace = [
|
||||
# second monitor
|
||||
"1, monitor:HDMI-A-1, default:true"
|
||||
"2, monitor:HDMI-A-1"
|
||||
"3, monitor:HDMI-A-1"
|
||||
"4, monitor:HDMI-A-1"
|
||||
"5, monitor:HDMI-A-1"
|
||||
"6, monitor:HDMI-A-1"
|
||||
"7, monitor:HDMI-A-1"
|
||||
"8, monitor:HDMI-A-1"
|
||||
"9, monitor:HDMI-A-1"
|
||||
"10, monitor:HDMI-A-1"
|
||||
|
||||
# scratchpads
|
||||
"special:btop, decorate:false"
|
||||
"special:pipewire, decorate:false"
|
||||
"special:nixos, decorate:false"
|
||||
(mkIf config.services.asusd.enable
|
||||
"special:rog, decorate:false")
|
||||
"special:keepassxc, decorate:false"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "de";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "";
|
||||
kb_rules = "";
|
||||
|
||||
follow_mouse = true;
|
||||
touchpad = {
|
||||
disable_while_typing = false;
|
||||
};
|
||||
|
||||
repeat_rate = 50;
|
||||
repeat_delay = 250;
|
||||
touchdevice = {
|
||||
output = "eDP-1";
|
||||
};
|
||||
|
||||
tablet = {
|
||||
output = "HDMI-A-1";
|
||||
};
|
||||
};
|
||||
|
||||
general = {
|
||||
sensitivity = 1.0;
|
||||
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
border_size = 2;
|
||||
|
||||
apply_sens_to_raw = 0;
|
||||
|
||||
#no_border_on_floating = true;
|
||||
allow_tearing = mkIf cfg.tearing true;
|
||||
|
||||
"col.active_border" = "0xFFF5C2E7";
|
||||
"col.inactive_border" = "0xFF45475A";
|
||||
#col.group_border_active = "0xFFA6E3A1";
|
||||
#col.group_border = "0xFF45475A";
|
||||
};
|
||||
|
||||
env = optionals cfg.tearing [ "WLR_DRM_NO_ATOMIC,1" ];
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 2;
|
||||
};
|
||||
|
||||
drop_shadow = 1;
|
||||
shadow_range = 15;
|
||||
shadow_render_power = 2;
|
||||
shadow_ignore_window = 1;
|
||||
shadow_offset = "2 4";
|
||||
shadow_scale = 1;
|
||||
|
||||
"col.shadow" = "0xAF1E1E2E";
|
||||
};
|
||||
|
||||
bezier = [
|
||||
"dupa, 0.1, 0.9, 0.1, 1.05"
|
||||
];
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
animation = [
|
||||
"windows, 1, 4, dupa, popin"
|
||||
"windowsOut, 1, 7, dupa, slide"
|
||||
"border, 1, 15, default"
|
||||
"fade, 1, 10, default"
|
||||
"workspaces, 1, 5, dupa, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
no_gaps_when_only = true;
|
||||
};
|
||||
|
||||
misc = {
|
||||
enable_swallow = false;
|
||||
swallow_regex = "foot";
|
||||
focus_on_activate = true;
|
||||
vrr = 1;
|
||||
vfr = true;
|
||||
animate_manual_resizes = false;
|
||||
animate_mouse_windowdragging = false;
|
||||
force_default_wallpaper = 0;
|
||||
};
|
||||
|
||||
windowrulev2 = [
|
||||
"float, class:^(Tor Browser)$"
|
||||
"float, class:^(foot)$"
|
||||
"float, class:^(mpv)$"
|
||||
"float, class:^(imv)$"
|
||||
"float, class:^(Vieb)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"float, title:^(.*)(Choose User Profile)(.*)$"
|
||||
"float, title:^(blob:null/)(.*)$"
|
||||
|
||||
"float, class:^(xdg-desktop-portal-gtk)$"
|
||||
"float, class:^(code), title: ^(Open*)"
|
||||
"size 70% 70%, class:^(code), title: ^(Open*)"
|
||||
"center, class: ^(code), title: ^(Open*)"
|
||||
"float, class:^(org.keepassxc.KeePassXC)$"
|
||||
(mkIf config.services.asusd.enable
|
||||
"size 960 670, title:^(ROG Control Center)$")
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod, RETURN, exec, ${foot}/bin/${foot}"
|
||||
"$mainMod SHIFT, Q, killactive"
|
||||
"$mainMod, F, fullscreen, 0"
|
||||
"$mainMod, M, fullscreen, 1"
|
||||
"$mainMod, D, exec, ${pkgs.procps}/bin/pkill anyrun || ${anyrun}/bin/anyrun"
|
||||
"$mainMod, SPACE, togglefloating, active"
|
||||
"$mainMod SHIFT, C, centerwindow"
|
||||
"$mainMod CONTROL, R, bringactivetotop"
|
||||
"$mainMod, P, pin"
|
||||
# workspaces
|
||||
"$mainMod, 1, ${if smwPresent then "split-" else ""}workspace, 1"
|
||||
"$mainMod, 2, ${if smwPresent then "split-" else ""}workspace, 2"
|
||||
"$mainMod, 3, ${if smwPresent then "split-" else ""}workspace, 3"
|
||||
"$mainMod, 4, ${if smwPresent then "split-" else ""}workspace, 4"
|
||||
"$mainMod, 5, ${if smwPresent then "split-" else ""}workspace, 5"
|
||||
"$mainMod, 6, ${if smwPresent then "split-" else ""}workspace, 6"
|
||||
"$mainMod, 7, ${if smwPresent then "split-" else ""}workspace, 7"
|
||||
"$mainMod, 8, ${if smwPresent then "split-" else ""}workspace, 8"
|
||||
"$mainMod, 9, ${if smwPresent then "split-" else ""}workspace, 9"
|
||||
"$mainMod, 0, ${if smwPresent then "split-" else ""}workspace, 10"
|
||||
"$mainMod SHIFT, 1, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 1"
|
||||
"$mainMod SHIFT, 2, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 2"
|
||||
"$mainMod SHIFT, 3, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 3"
|
||||
"$mainMod SHIFT, 4, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 4"
|
||||
"$mainMod SHIFT, 5, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 5"
|
||||
"$mainMod SHIFT, 6, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 6"
|
||||
"$mainMod SHIFT, 7, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 7"
|
||||
"$mainMod SHIFT, 8, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 8"
|
||||
"$mainMod SHIFT, 9, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 9"
|
||||
"$mainMod SHIFT, 0, ${if smwPresent then "split-" else ""}movetoworkspacesilent, 10"
|
||||
# screenshots
|
||||
"$mainMod, S, exec, grimblast save area - | ${pkgs.coreutils-full}/bin/tee \"$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')\" | ${wl-clipboard}/bin/wl-copy && ${pkgs.libnotify}/bin/notify-send \"Screenshot taken\""
|
||||
"$mainMod CONTROL, S, exec, grimblast save area - | ${pkgs.swappy}/bin/swappy -f - -o - | ${pkgs.coreutils-full}/bin/tee \"$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')\" | ${wl-clipboard}/bin/wl-copy && ${pkgs.libnotify}/bin/notify-send \"Screenshot taken\""
|
||||
"$mainMod SHIFT, R, exec, ${hyprland}/bin/hyprctl reload"
|
||||
|
||||
# TODO fix this maybe
|
||||
"$mainMod, T, exec, grim -g \"$(slurp)\" -t ppm - | tesseract -l pol - - | wl-copy && notify-send \"Copied text: \" \"\\\"$(wl-paste)\\\"\""
|
||||
# TODO fix this
|
||||
"$mainMod, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh"
|
||||
"$mainMod, G, togglegroup"
|
||||
# this sometimes fixes the portal
|
||||
"$mainMod CONTROL, X, exec, ${pkgs.systemd}/bin/systemctl --user restart xdg-desktop-portal-hyprland"
|
||||
"$mainMod SHIFT, X, exec, ${hyprland}/bin/hyprctl kill"
|
||||
# scratchpad binds
|
||||
"$mainMod, B, togglespecialworkspace, btop"
|
||||
"$mainMod, V, togglespecialworkspace, pipewire"
|
||||
"$mainMod, N, togglespecialworkspace, nixos"
|
||||
"$mainMod, X, togglespecialworkspace, keepassxc"
|
||||
"$mainMod, C, exec, ${hyprlock}/bin/hyprlock"
|
||||
# toggle waybar
|
||||
"$mainMod CONTROL, B, exec, ${pkgs.procps}/bin/pkill waybar || waybar"
|
||||
|
||||
#"$mainMod, mouse_up, exec, ${hyprland}/bin/hyprctl keyword misc:cursor_zoom_factor $(echo \"$(${hyprland}/bin/hyprctl getoption misc:cursor_zoom_factor -j | ${pkgs.jq}/bin/jq '.float') + 0.01\" | ${pkgs.bc}/bin/bc)"
|
||||
#"$mainMod, mouse_down, exec, ${hyprland}/bin/hyprctl keyword misc:cursor_zoom_factor $(echo \"$(${hyprland}/bin/hyprctl getoption misc:cursor_zoom_factor -j | ${pkgs.jq}/bin/jq '.float') - 0.01\" | ${pkgs.bc}/bin/bc)"
|
||||
|
||||
#"$mainMod, mouse_up, exec, ${pkgs.libnotify}/bin/notify-send 'mouse_up'"
|
||||
#"$mainMod, mouse_down, exec, ${pkgs.libnotify}/bin/notify-send 'mouse_down'"
|
||||
];
|
||||
|
||||
# repeat
|
||||
binde = [
|
||||
# window / monitor focus
|
||||
"$mainMod, H, movefocus, l"
|
||||
"$mainMod, J, movefocus, d"
|
||||
"$mainMod, K, movefocus, u"
|
||||
"$mainMod, L, movefocus, r"
|
||||
"$mainMod CONTROL, J, focusmonitor, l"
|
||||
"$mainMod CONTROL, K, focusmonitor, r"
|
||||
|
||||
"$mainMod SHIFT, G, changegroupactive, f"
|
||||
"$mainMod CONTROL, G, changegroupactive, b"
|
||||
];
|
||||
|
||||
# locked
|
||||
bindl = [
|
||||
", XF86AudioMedia, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||
", XF86AudioStop, exec, ${pkgs.playerctl}/bin/playerctl stop"
|
||||
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
|
||||
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
|
||||
", XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute"
|
||||
];
|
||||
|
||||
# locked + repeat
|
||||
bindle = [
|
||||
", XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5%"
|
||||
", XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%-"
|
||||
", XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5"
|
||||
", XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5"
|
||||
];
|
||||
|
||||
# mouse
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
binds = {
|
||||
pass_mouse_when_bound = false;
|
||||
movefocus_cycles_fullscreen = false;
|
||||
};
|
||||
|
||||
exec-once = let
|
||||
# https://wiki.hyprland.org/IPC/#how-to-use-socket2-with-bash
|
||||
handle_hyprland_events = pkgs.writeShellScriptBin "handle_hyprland_events" ''
|
||||
#!/bin/sh
|
||||
|
||||
handle() {
|
||||
case $1 in
|
||||
configreloaded*)
|
||||
${hyprland}/bin/hyprctl notify 1 2500 "" " Reloading Hyprland..."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
${pkgs.socat}/bin/socat -U - UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read -r line; do
|
||||
handle "$line"
|
||||
done
|
||||
'';
|
||||
in [
|
||||
"waybar"
|
||||
|
||||
# run persistent special workspace windows
|
||||
"[workspace special:nixos silent;tile] cd ~/niksos; ${foot}/bin/foot"
|
||||
(mkIf config.services.asusd.enable
|
||||
"[workspace special:rog silent;tile] ${config.services.asusd.package}/bin/rog-control-center")
|
||||
"[workspace special:keepassxc silent;tile] ${pkgs.keepassxc}/bin/keepassxc"
|
||||
|
||||
(if config.modules.programs.foot.server then "sleep 0.5 && ${pkgs.systemd}/bin/systemctl --user restart foot.service" else ";")
|
||||
|
||||
"${hyprland}/bin/hyprctl setcursor Bibata-Modern-Classic 24"
|
||||
|
||||
# TODO do something with this
|
||||
#"${wl-clipboard}/bin/wl-paste --watch cliphist store"
|
||||
|
||||
"${swww}/bin/swww init"
|
||||
"${wlsunset}/bin/wlsunset -S 06:00 -s 20:00"
|
||||
# TODO fix fcitx5
|
||||
#"fcitx5"
|
||||
# TODO do these do anything anymore
|
||||
"${pkgs.systemd}/bin/systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"${pkgs.dbus}/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP"
|
||||
"rot8 --threshold 0.75"
|
||||
"${handle_hyprland_events}/bin/handle_hyprland_events"
|
||||
"wvkbd-mobintl --hidden -L 500"
|
||||
];
|
||||
|
||||
exec = [
|
||||
# kill (almost) everything on special workspaces
|
||||
"${pkgs.procps}/bin/pkill btop"
|
||||
"${pkgs.procps}/bin/pkill helvum"
|
||||
"${pkgs.procps}/bin/pkill pavucontrol"
|
||||
# and run it all again
|
||||
"[workspace special:btop silent;tile] ${foot}/bin/foot -e ${pkgs.btop}/bin/btop"
|
||||
"[workspace special:pipewire silent;tile] ${pkgs.helvum}/bin/helvum"
|
||||
"[workspace special:pipewire silent;tile] ${pkgs.pavucontrol}/bin/pavucontrol"
|
||||
|
||||
# wait a bit then set the wallpapers
|
||||
# "sleep 0.5 && ${swww}/bin/swww img -o eDP-1 ~/catppuccin-wall0.png"
|
||||
# "sleep 0.5 && ${swww}/bin/swww img -o HDMI-A-1 ~/catppuccin-wall1.png"
|
||||
|
||||
"${pkgs.networkmanagerapplet}/bin/nm-applet --indicator"
|
||||
"${pkgs.blueman}/bin/blueman-applet"
|
||||
];
|
||||
|
||||
layerrule = [
|
||||
# no black border on grimblast screenshots
|
||||
"noanim, ^(selection)$"
|
||||
|
||||
"blur, ^(waybar)$"
|
||||
"blur, ^(eww)$"
|
||||
|
||||
# TODO maybe this isn't needed
|
||||
# temporary fix to swaylock screenshoting rofi before locking
|
||||
#"noanim, ^(rofi)$"
|
||||
|
||||
"blur, ^(anyrun)$"
|
||||
];
|
||||
|
||||
plugin = {
|
||||
split-monitor-workspaces = {
|
||||
count = 10;
|
||||
keep_focused = true;
|
||||
};
|
||||
};
|
||||
} // cfg.extraSettings;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
81
hosts/vali/mars/hypr/lock.nix
Normal file
81
hosts/vali/mars/hypr/lock.nix
Normal file
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.modules.programs.hypr.lock;
|
||||
username = config.modules.other.system.username;
|
||||
|
||||
text_color = "rgba(eae0e4FF)";
|
||||
in {
|
||||
options.modules.programs.hypr.lock = {
|
||||
enable = mkEnableOption "hiper zamek";
|
||||
extraSettings = mkOption {
|
||||
type = types.attrs;
|
||||
description = "extra per host hyprlock settings";
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
imports = [ inputs.hyprlock.homeManagerModules.default ];
|
||||
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
package = inputs.hyprlock.packages.${pkgs.system}.hyprlock;
|
||||
general = {
|
||||
grace = 2;
|
||||
};
|
||||
backgrounds = [
|
||||
{
|
||||
color = "rgba(120f1177)";
|
||||
path = "screenshot";
|
||||
blur_size = 5;
|
||||
blur_passes = 4;
|
||||
}
|
||||
];
|
||||
|
||||
input-fields = [
|
||||
{
|
||||
size = {
|
||||
width = 600;
|
||||
height = 50;
|
||||
};
|
||||
outline_thickness = 3;
|
||||
dots_size = 0.1;
|
||||
dots_spacing = 0.3;
|
||||
outer_color = "rgba(9a8d9555)";
|
||||
inner_color = "rgba(120f1111)";
|
||||
font_color = "rgba(d1c2cbff)";
|
||||
fade_on_empty = true;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 20;
|
||||
};
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
|
||||
labels = [
|
||||
{
|
||||
# clock
|
||||
text = "$TIME";
|
||||
color = text_color;
|
||||
font_size = 65;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 300;
|
||||
};
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,20 +1,26 @@
|
|||
{ pkgs, lib, config, callPackage, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.i3;
|
||||
cfg = config.modules.programs.i3;
|
||||
in {
|
||||
options.myOptions.programs.i3.enable = mkEnableOption "i3";
|
||||
options.modules.programs.i3.enable = mkEnableOption "i3";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb.layout = "de";
|
||||
windowManager = {
|
||||
bspwm.enable = true;
|
||||
i3.enable = true;
|
||||
};
|
||||
displayManager = {
|
||||
gdm.enable = true;
|
||||
defaultSession = "none+i3";
|
||||
setupCommands = ''
|
||||
LEFT='DP-2'
|
||||
CENTER='HDMI-1'
|
||||
RIGHT='HDMI-0'
|
||||
${pkgs.xorg.xrandr}/bin/xrandr --output $CENTER --rotate left --output $LEFT --rotate left --left-of $CENTER --output $RIGHT --right-of $CENTER
|
||||
'';
|
||||
# ❯ xrandr --output HDMI-1 --rotate normal --output DP-2 --rotate normal --left-of HDMI-1 --output HDMI-0 --right-of HDMI-1
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,6 +4,7 @@ _: {
|
|||
../../../options/desktop/fonts.nix
|
||||
../../../options/common/networking.nix
|
||||
../../../options/common/gpu/nvidia.nix
|
||||
# ../../../overlay.nix
|
||||
# ../../options/common/pin-registry.nix
|
||||
# ../../options/common/preserve-system.nix
|
||||
#../../options/
|
||||
|
|
|
@ -1,45 +1,24 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
let
|
||||
username = config.myOptions.other.system.username;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
home-manager.users.${username} = {
|
||||
home.packages = let
|
||||
fenix = inputs.fenix.packages.${pkgs.system};
|
||||
|
||||
in with pkgs; [
|
||||
pfetch
|
||||
git
|
||||
keepassxc
|
||||
eza ripgrep
|
||||
signal-desktop-beta
|
||||
element-desktop
|
||||
steam
|
||||
tor-browser-bundle-bin
|
||||
betterbird
|
||||
telegram-desktop
|
||||
libreoffice-fresh
|
||||
qbittorrent
|
||||
ventoy-full
|
||||
lazygit
|
||||
neofetch
|
||||
zip
|
||||
vlc
|
||||
zathura
|
||||
alacritty
|
||||
scc
|
||||
texliveFull
|
||||
st
|
||||
unzip
|
||||
gcc
|
||||
trash-cli
|
||||
alsa-utils
|
||||
asciinema
|
||||
betterbird
|
||||
bibata-cursors
|
||||
networkmanagerapplet
|
||||
xclip
|
||||
pamixer
|
||||
chromium
|
||||
dig
|
||||
pcmanfm
|
||||
ffmpeg_6-full
|
||||
yt-dlp
|
||||
easyeffects
|
||||
element-desktop
|
||||
eza
|
||||
ripgrep
|
||||
fastfetch
|
||||
(fenix.complete.withComponents [
|
||||
"cargo"
|
||||
"clippy"
|
||||
|
@ -47,22 +26,51 @@ in {
|
|||
"rustc"
|
||||
"rustfmt"
|
||||
])
|
||||
polkit
|
||||
asciinema
|
||||
fastfetch
|
||||
alsa-utils
|
||||
imagemagick
|
||||
pavucontrol
|
||||
ffmpeg_6-full
|
||||
foot
|
||||
gcc
|
||||
gdb
|
||||
tree
|
||||
smartmontools
|
||||
krita
|
||||
python3
|
||||
rustdesk
|
||||
grimblast
|
||||
git
|
||||
httpie
|
||||
sherlock
|
||||
strawberry
|
||||
imagemagick
|
||||
keepassxc
|
||||
krita
|
||||
lazygit
|
||||
libreoffice-fresh
|
||||
neofetch
|
||||
neovim
|
||||
networkmanagerapplet
|
||||
nextcloud-client
|
||||
pamixer
|
||||
pavucontrol
|
||||
pcmanfm
|
||||
pfetch
|
||||
polkit
|
||||
python3
|
||||
qbittorrent
|
||||
rustdesk
|
||||
scc
|
||||
sherlock
|
||||
signal-desktop-beta
|
||||
smartmontools
|
||||
st
|
||||
steam
|
||||
strawberry-qt6
|
||||
telegram-desktop
|
||||
texliveFull
|
||||
thunderbird
|
||||
tor-browser-bundle-bin
|
||||
trash-cli
|
||||
tree
|
||||
unzip
|
||||
ventoy-full
|
||||
vesktop
|
||||
vlc
|
||||
xclip
|
||||
yt-dlp
|
||||
zathura
|
||||
zip
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.programs.git;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.git;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.git = {
|
||||
options.modules.programs.git = {
|
||||
enable = mkEnableOption "git";
|
||||
userName = mkOption {
|
||||
type = types.str;
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
lib,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.programs.starship;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.starship;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.starship.enable = mkEnableOption "starship";
|
||||
options.modules.programs.starship.enable = mkEnableOption "starship";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = config.myOptions.programs.zsh.enable;
|
||||
enableZshIntegration = config.modules.programs.zsh.enable;
|
||||
settings = {
|
||||
add_newline = false;
|
||||
command_timeout = 1000;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.zsh;
|
||||
username = config.myOptions.other.system.username;
|
||||
hostname = config.myOptions.other.system.hostname;
|
||||
gitPath = config.myOptions.other.system.gitPath;
|
||||
cfg = config.modules.programs.zsh;
|
||||
username = config.modules.other.system.username;
|
||||
hostname = config.modules.other.system.hostname;
|
||||
gitPath = config.modules.other.system.gitPath;
|
||||
in {
|
||||
options.myOptions.programs.zsh = {
|
||||
options.modules.programs.zsh = {
|
||||
enable = mkEnableOption "zsh";
|
||||
extraAliases = mkOption {
|
||||
type = types.attrs;
|
||||
|
|
5
modules/gui/WM/default.nix
Normal file
5
modules/gui/WM/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
_: {
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
];
|
||||
}
|
185
modules/gui/WM/hyprland.nix
Normal file
185
modules/gui/WM/hyprland.nix
Normal file
|
@ -0,0 +1,185 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.WM.hyprland;
|
||||
username = config.modules.other.system.username;
|
||||
monitors = config.modules.other.system.monitors;
|
||||
in
|
||||
{
|
||||
options.modules.WM.hyprland = {
|
||||
enable = mkEnableOption "hyprland";
|
||||
gnome-keyring = mkEnableOption "gnome-keyring";
|
||||
};
|
||||
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.xwayland.enable = true;
|
||||
/*
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland = true;
|
||||
};
|
||||
*/
|
||||
services.gnome.gnome-keyring.enable = mkDefault cfg.gnome-keyring;
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = mkIf cfg.gnome-keyring {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
wants = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.${username} = {
|
||||
home.packages = with pkgs; [
|
||||
rofi
|
||||
waybar
|
||||
hyprpaper
|
||||
hyprlock
|
||||
hyprland
|
||||
hyprshade
|
||||
lxqt.lxqt-openssh-askpass
|
||||
|
||||
dunst
|
||||
# wireplumber
|
||||
unstable.xwayland
|
||||
pciutils # lspci is needed by hyprland
|
||||
# from some obscure tutorial on youtube
|
||||
# xorg.libxcb
|
||||
# mesa
|
||||
libglvnd
|
||||
egl-wayland
|
||||
libdrm
|
||||
vulkan-tools
|
||||
dunst
|
||||
swww
|
||||
flameshot
|
||||
bluetuith
|
||||
brightnessctl
|
||||
# needed for wayland copy / paste support in neovim
|
||||
wl-clipboard
|
||||
];
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
exec-once = mkIf cfg.gnome-keyring "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
monitor = map (
|
||||
m: "${m.device},${m.resolution.x}x${m.resolution.y}@${m.refresh_rate},${m.position.x}x${m.position.y},${m.scale},transform,${m.transform}"
|
||||
) monitors; #TODO: default value
|
||||
input = {
|
||||
kb_layout = console.keyMap;
|
||||
natural_scroll = true;
|
||||
sensitivity = 0;
|
||||
};
|
||||
general = {
|
||||
gaps_in = 2;
|
||||
gaps_out = 1;
|
||||
border_size = 1;
|
||||
col.active_border = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
col.inactive_border = "rgba(595959aa)";
|
||||
layout = dwindle;
|
||||
};
|
||||
decoration.rounding = 5;
|
||||
misc.disable_hyprland_logo = true;
|
||||
animations = {
|
||||
enabled = true;
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = ["myBezier, 0.05, 0.9, 0.1, 1.05"];
|
||||
|
||||
animation = [
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
"windows, 1, 7, myBezier"
|
||||
];
|
||||
};
|
||||
gestures.workspace_swipe = true;
|
||||
debug.enable_stdout_logs = true;
|
||||
bind = [
|
||||
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
"SUPER, RETURN, exec, alacritty"
|
||||
"SUPER SHIFT, RETURN, exec, rofi -show drun"
|
||||
"SUPER SHIFT, Q, killactive,"
|
||||
"SUPER, M, exit, "
|
||||
"SUPER, B, exec, firefox"
|
||||
"SUPER, f, fullscreen"
|
||||
"SUPER, E, exec, nautilus --new-window "
|
||||
"SUPER, V, togglefloating, "
|
||||
"SUPER, P, pseudo, # dwindle"
|
||||
"SUPER, S, togglesplit, # dwindle"
|
||||
"SUPER, C, exec, /home/vali/.config/wallpaper/colorscheme-setter"
|
||||
",PRINT, exec, flameshot"
|
||||
|
||||
"binde = ,XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
||||
"binde = ,XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||
|
||||
# Example volume button that allows press and hold, volume limited to 150%"
|
||||
"binde = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
# Example volume button that will activate even while an input inhibitor is active"
|
||||
"binde = ,XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
|
||||
# Move focus with mainMod + arrow keys"
|
||||
"SUPER, h, movefocus, l"
|
||||
"SUPER, l, movefocus, r"
|
||||
"SUPER, k, movefocus, u"
|
||||
"SUPER, j, movefocus, d"
|
||||
|
||||
# move window to next / previous workspace"
|
||||
"SUPER CTRL, h, movetoworkspace, -1"
|
||||
"SUPER CTRL, l, movetoworkspace, +1"
|
||||
|
||||
# move to next / previous workspace"
|
||||
"SUPER CTRL, h, workspace, -1"
|
||||
"SUPER CTRL, l, workspace, +1"
|
||||
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]"
|
||||
"SUPER, 1, workspace, 1"
|
||||
"SUPER, 2, workspace, 2"
|
||||
"SUPER, 3, workspace, 3"
|
||||
"SUPER, 4, workspace, 4"
|
||||
"SUPER, 5, workspace, 5"
|
||||
"SUPER, 6, workspace, 6"
|
||||
"SUPER, 7, workspace, 7"
|
||||
"SUPER, 8, workspace, 8"
|
||||
"SUPER, 9, workspace, 9"
|
||||
"SUPER, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||
"SUPER SHIFT, 5, movetoworkspace, 5"
|
||||
"SUPER SHIFT, 6, movetoworkspace, 6"
|
||||
"SUPER SHIFT, 7, movetoworkspace, 7"
|
||||
"SUPER SHIFT, 8, movetoworkspace, 8"
|
||||
"SUPER SHIFT, 9, movetoworkspace, 9"
|
||||
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll"
|
||||
"SUPER, mouse_down, workspace, e+1"
|
||||
"SUPER, mouse_up, workspace, e-1"
|
||||
"
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging"
|
||||
#bindm = SUPER, mouse:272, movewindow"
|
||||
#bindm = SUPER, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -3,10 +3,10 @@
|
|||
lib,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.themes.cursor;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.themes.cursor;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.themes.cursor = {
|
||||
options.modules.themes.cursor = {
|
||||
enable = mkEnableOption "cursor theming";
|
||||
package = mkOption {
|
||||
description = "cursor theme package";
|
||||
|
|
|
@ -8,5 +8,8 @@ _: {
|
|||
./schizofox.nix
|
||||
./zathura.nix
|
||||
./obs.nix
|
||||
./foot.nix
|
||||
# ./vivado.nix
|
||||
./WM
|
||||
];
|
||||
}
|
||||
|
|
121
modules/gui/foot.nix
Normal file
121
modules/gui/foot.nix
Normal file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.modules.programs.foot;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.modules.programs.foot = {
|
||||
enable = mkEnableOption "foot";
|
||||
server = mkEnableOption "foot server mode";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.sessionVariables = {
|
||||
TERM = "foot";
|
||||
};
|
||||
home-manager.users.${username} = {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.foot;
|
||||
server.enable = cfg.server;
|
||||
settings = {
|
||||
main = {
|
||||
term = "foot";
|
||||
app-id = "foot";
|
||||
title = "foot";
|
||||
locked-title = "no";
|
||||
|
||||
font = "JetBrains Mono Nerd Font:size=16";
|
||||
line-height = 20;
|
||||
letter-spacing = 0;
|
||||
horizontal-letter-offset = 0;
|
||||
vertical-letter-offset = -0.75;
|
||||
box-drawings-uses-font-glyphs = "no";
|
||||
dpi-aware = "no";
|
||||
|
||||
initial-window-size-chars = "104x36";
|
||||
initial-window-mode = "windowed";
|
||||
pad = "5x5 center";
|
||||
resize-delay-ms = 100;
|
||||
|
||||
notify = "${pkgs.libnotify}/bin/notify-send -a \${app-id} -i \${app-id} \${title} \${body}";
|
||||
|
||||
bold-text-in-bright = "no";
|
||||
word-delimiters = ",│`|:\"'()[]{}<>";
|
||||
selection-target = "primary";
|
||||
};
|
||||
bell = {
|
||||
urgent = "yes";
|
||||
notify = "yes";
|
||||
command = "notify-send bell";
|
||||
command-focused = "no";
|
||||
};
|
||||
scrollback = {
|
||||
lines = 100000;
|
||||
multiplier = 10.0;
|
||||
indicator-position = "relative";
|
||||
indicator-format = "line";
|
||||
};
|
||||
url = {
|
||||
launch = "${pkgs.xdg-utils}/bin/xdg-open \${url}";
|
||||
label-letters = "sadfjklewcmpgh";
|
||||
osc8-underline = "always";
|
||||
protocols = "http, https, ftp, ftps, file, gemini, gopher, irc, ircs";
|
||||
uri-characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+=\"'()[]";
|
||||
};
|
||||
cursor = {
|
||||
style = "block";
|
||||
blink = "no";
|
||||
};
|
||||
mouse = {
|
||||
hide-when-typing = "yes";
|
||||
alternate-scroll-mode = "yes";
|
||||
};
|
||||
colors = {
|
||||
alpha = 0.85;
|
||||
foreground = "cdd6f4"; # Text
|
||||
background = "1e1e2e"; # Base
|
||||
regular0 = "45475a"; # Surface 1
|
||||
regular1 = "f38ba8"; # red
|
||||
regular2 = "a6e3a1"; # green
|
||||
regular3 = "f9e2af"; # yellow
|
||||
regular4 = "89b4fa"; # blue
|
||||
regular5 = "f5c2e7"; # pink
|
||||
regular6 = "94e2d5"; # teal
|
||||
regular7 = "bac2de"; # Subtext 1
|
||||
bright0 = "585b70"; # Surface 2
|
||||
bright1 = "f38ba8"; # red
|
||||
bright2 = "a6e3a1"; # green
|
||||
bright3 = "f9e2af"; # yellow
|
||||
bright4 = "89b4fa"; # blue
|
||||
bright5 = "f5c2e7"; # pink
|
||||
bright6 = "94e2d5"; # teal
|
||||
bright7 = "a6adc8"; # Subtext 0
|
||||
};
|
||||
csd = {
|
||||
preferred = "server";
|
||||
};
|
||||
key-bindings = {
|
||||
show-urls-launch = "Control+Shift+u";
|
||||
unicode-input = "Control+Shift+i";
|
||||
};
|
||||
mouse-bindings = {
|
||||
selection-override-modifiers = "Shift";
|
||||
primary-paste = "BTN_MIDDLE";
|
||||
select-begin = "BTN_LEFT";
|
||||
select-begin-block = "Control+BTN_LEFT";
|
||||
select-extend = "BTN_RIGHT";
|
||||
select-extend-character-wise = "Control+BTN_RIGHT";
|
||||
select-word = "BTN_LEFT-2";
|
||||
select-word-whitespace = "Control+BTN_LEFT-2";
|
||||
#select-row = "BTN_LEFT-3";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -3,11 +3,11 @@
|
|||
lib,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.themes.gtk;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.themes.gtk;
|
||||
username = config.modules.other.system.username;
|
||||
hmCfg = config.home-manager.users.${username};
|
||||
in {
|
||||
options.myOptions.themes.gtk = {
|
||||
options.modules.themes.gtk = {
|
||||
enable = mkEnableOption "gtk theming";
|
||||
name = mkOption {
|
||||
description = "gtk theme name";
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.programs.mpv;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.mpv;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.mpv.enable = mkEnableOption "mpv";
|
||||
options.modules.programs.mpv.enable = mkEnableOption "mpv";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.obs;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.obs;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.obs.enable = mkEnableOption "obs";
|
||||
options.modules.programs.obs.enable = mkEnableOption "obs";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.themes.qt;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.themes.qt;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.themes.qt = {
|
||||
options.modules.themes.qt = {
|
||||
enable = mkEnableOption "qt theming";
|
||||
name = mkOption {
|
||||
description = "qt theme name";
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{ config, inputs, lib, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.schizofox;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.schizofox;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.schizofox = {
|
||||
options.modules.programs.schizofox = {
|
||||
enable = mkEnableOption "schizofox";
|
||||
};
|
||||
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.programs.vesktop;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.vesktop;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.vesktop = {
|
||||
options.modules.programs.vesktop = {
|
||||
enable = mkEnableOption "vesktop";
|
||||
};
|
||||
|
||||
|
|
52
modules/gui/vivado.nix
Normal file
52
modules/gui/vivado.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{ pkgs, nur, ...}:
|
||||
|
||||
|
||||
let
|
||||
vivado-desktop-symbol = pkgs.makeDesktopItem {
|
||||
name = "vivado-2022_2";
|
||||
desktopName = "Vivado";
|
||||
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# this propietary software is huge, but I need it for
|
||||
# university
|
||||
pkgs.nur.repos.lschuermann.vivado-2022_2
|
||||
vivado-desktop-symbol
|
||||
];
|
||||
|
||||
|
||||
# Create udev rules. Reference: https://blog.kotatsu.dev/posts/2021-09-14-vivado-on-nixos/
|
||||
services.udev.packages = [
|
||||
(pkgs.writeTextFile {
|
||||
name = "xilinx-dilligent-usb-udev";
|
||||
destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules";
|
||||
text = ''
|
||||
ATTR{idVendor}=="1443", MODE:="666"
|
||||
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666"
|
||||
'';
|
||||
})
|
||||
(pkgs.writeTextFile {
|
||||
name = "xilinx-pcusb-udev";
|
||||
destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules";
|
||||
text = ''
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"
|
||||
'';
|
||||
})
|
||||
(pkgs.writeTextFile {
|
||||
name = "xilinx-ftdi-usb-udev";
|
||||
destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules";
|
||||
text = ''
|
||||
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666"
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
58
modules/gui/vivado2.nix
Normal file
58
modules/gui/vivado2.nix
Normal file
|
@ -0,0 +1,58 @@
|
|||
{ config, lib, pkgs, ...}:
|
||||
|
||||
let
|
||||
vivado-desktop-symbol = pkgs.makeDesktopItem {
|
||||
name = "vivado-2022_2";
|
||||
desktopName = "Vivado";
|
||||
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
|
||||
};
|
||||
cfg = with lib; [ config.modules.programs.vivado ];
|
||||
username = with lib; [ config.modules.other.system.username ];
|
||||
in
|
||||
{
|
||||
options.modules.programs.vivado.enable = mkEnableOption "vivado";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# this propietary software is huge, but I need it for
|
||||
# university
|
||||
pkgs.nur.repos.lschuermann.vivado-2022_2
|
||||
vivado-desktop-symbol
|
||||
];
|
||||
|
||||
|
||||
# Create udev rules. Reference: https://blog.kotatsu.dev/posts/2021-09-14-vivado-on-nixos/
|
||||
services.udev.packages = [
|
||||
(pkgs.writeTextFile {
|
||||
name = "xilinx-dilligent-usb-udev";
|
||||
destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules";
|
||||
text = ''
|
||||
ATTR{idVendor}=="1443", MODE:="666"
|
||||
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666"
|
||||
'';
|
||||
})
|
||||
(pkgs.writeTextFile {
|
||||
name = "xilinx-pcusb-udev";
|
||||
destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules";
|
||||
text = ''
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
|
||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"
|
||||
'';
|
||||
})
|
||||
(pkgs.writeTextFile {
|
||||
name = "xilinx-ftdi-usb-udev";
|
||||
destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules";
|
||||
text = ''
|
||||
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666"
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -4,10 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.programs.zathura;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.zathura;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.zathura.enable = mkEnableOption "zathura";
|
||||
options.modules.programs.zathura.enable = mkEnableOption "zathura";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
|
|
|
@ -2,7 +2,8 @@ _: {
|
|||
imports = [
|
||||
./home-manager.nix
|
||||
./system.nix
|
||||
./xdg.nix
|
||||
# ./xdg.nix
|
||||
./displaymanager.nix
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{pkgs, lib, config, ...}:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.displaymanager;
|
||||
cfg = config.modules.programs.displaymanager;
|
||||
in {
|
||||
options.myOptions.programs.displaymanager.enable = mkEnableOption "displaymanager";
|
||||
options.modules.programs.displaymanager.enable = mkEnableOption "displaymanager";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.displayManager = {
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
self,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.other.home-manager;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.other.home-manager;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.other.home-manager = {
|
||||
options.modules.other.home-manager = {
|
||||
enable = mkEnableOption "home-manager";
|
||||
enableDirenv = mkEnableOption "direnv";
|
||||
};
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
lib,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.other.system;
|
||||
cfg = config.modules.other.system;
|
||||
in {
|
||||
options.myOptions.other.system = {
|
||||
options.modules.other.system = {
|
||||
hostname = mkOption {
|
||||
description = "hostname for this system";
|
||||
type = types.str;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
config,
|
||||
...
|
||||
}: let
|
||||
username = config.myOptions.other.system.username;
|
||||
username = config.modules.other.system.username;
|
||||
hmCfg = config.home-manager.users.${username};
|
||||
|
||||
primary_browser = "firefox-schizo.desktop";
|
||||
|
@ -31,7 +31,7 @@ in {
|
|||
XAUTHORITY = "\$XDG_RUNTIME_DIR/Xauthority";
|
||||
};
|
||||
*/
|
||||
myOptions.programs.zsh.extraAliases = {
|
||||
modules.programs.zsh.extraAliases = {
|
||||
gdb = "gdb -n -x ${hmCfg.xdg.configHome}/gdb/init";
|
||||
pidgin = "pidgin --config=${hmCfg.xdg.dataHome}/purple";
|
||||
svn = "svn --config-dir ${hmCfg.xdg.configHome}/subversion";
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
_: {
|
||||
imports = [
|
||||
./pipewire.nix
|
||||
./ssh.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ config, lib, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.services.pipewire;
|
||||
cfg = config.modules.services.pipewire;
|
||||
in {
|
||||
options.myOptions.services.pipewire.enable = mkEnableOption "pipewire";
|
||||
options.modules.services.pipewire.enable = mkEnableOption "pipewire";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
|
14
modules/services/ssh.nix
Normal file
14
modules/services/ssh.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.ssh;
|
||||
username = config.myOptions.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.ssh.enable = mkEnableOption "ssh";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.ssh = {
|
||||
startAgent = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{ config, lib, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.btop;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.btop;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.btop.enable = mkEnableOption "btop";
|
||||
options.modules.programs.btop.enable = mkEnableOption "btop";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
cfg = config.myOptions.programs.neovim;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.neovim;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.neovim.enable = mkEnableOption "neovim";
|
||||
options.modules.programs.neovim.enable = mkEnableOption "neovim";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ];
|
||||
|
|
4
notes.md
4
notes.md
|
@ -1 +1,5 @@
|
|||
# Used Stuff
|
||||
https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/autorandr.nix
|
||||
https://github.com/phillipberndt/autorandr
|
||||
|
||||
|
||||
|
|
32
options/common/gpu/nvidia_wayland.nix
Normal file
32
options/common/gpu/nvidia_wayland.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ config, lib, pkgs, ...}:
|
||||
{
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
environment.variables = {
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
vulkan-loader
|
||||
vulkan-validation-layers
|
||||
vulkan-tools
|
||||
];
|
||||
hardware = {
|
||||
nvidia = {
|
||||
open = true;
|
||||
nvidiaSettings = false;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
modesetting.enable = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
};
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
username = config.myOptions.other.system.username;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
networking = {
|
||||
networkmanager = {
|
||||
|
@ -10,7 +10,10 @@ networking = {
|
|||
};
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
fallbackDns = ["9.9.9.9"];
|
||||
fallbackDns = [
|
||||
"9.9.9.9"
|
||||
"2620::fe::fe"
|
||||
];
|
||||
};
|
||||
users.users.${username}.extraGroups = [ "networkmanager" ];
|
||||
}
|
||||
|
|
69
options/desktop/monitors.nix
Normal file
69
options/desktop/monitors.nix
Normal file
|
@ -0,0 +1,69 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
options.modules.other.system.monitors = mkOption {
|
||||
description = "
|
||||
List of monitors to use
|
||||
";
|
||||
default = [];
|
||||
type = with types; listOf submodule {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = "Give your monitor a cute name";
|
||||
default = "monitor0(I am lazy)";
|
||||
};
|
||||
device = mkOption {
|
||||
type = types.str;
|
||||
description = "The actual device name of the monitor";
|
||||
};
|
||||
resolution = mkOption {
|
||||
type = types.submodule {
|
||||
width = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor width";
|
||||
default = "1920";
|
||||
};
|
||||
height = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor height";
|
||||
default = "1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
scale = mkOption {
|
||||
type = types.number;
|
||||
description = "monitor scale";
|
||||
default = 1.0;
|
||||
};
|
||||
refresh_rate = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor refresh rate (in Hz)";
|
||||
default = 60;
|
||||
};
|
||||
position = mkOption {
|
||||
type = types.submodule {
|
||||
x = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
};
|
||||
y = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
};
|
||||
};
|
||||
description = "absolute monitor posititon";
|
||||
default = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
transform = mkOption {
|
||||
type = types.ints.between 0 3;
|
||||
description = "Rotation of the monitor counterclockwise";
|
||||
default = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
16
overlay.nix
Normal file
16
overlay.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ inputs, outputs, ... }:
|
||||
|
||||
let
|
||||
add_nur = self: super: {
|
||||
# nur-no-pkgs = import inputs.nur-no-pkgs { pkgs = inputs.nixpkgs.legacyPackages.${profile-config.system}; nurpkgs = inputs.nixpkgs.legacyPackages.${profile-config.system}; };
|
||||
nur = import inputs.nur {
|
||||
pkgs = import inputs.nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; }; # .legacyPackages.${profile-config.system};
|
||||
nurpkgs = import inputs.nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; }; #.legacyPackages.${profile-config.system};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
add_nur
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue