99 lines
2.7 KiB
Nix
99 lines
2.7 KiB
Nix
{
|
|
inputs,
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (builtins) toString;
|
|
inherit (lib.modules) mkAliasOptionModule mkDefault mkIf;
|
|
inherit (lib.my) mapModulesRec';
|
|
in {
|
|
# disables Nixpkgs Hyprland module to avoid conflicts
|
|
#disabledModules = [ "programs/hyprland.nix" ];
|
|
|
|
imports =
|
|
[
|
|
inputs.home-manager.nixosModules.home-manager
|
|
(mkAliasOptionModule ["hm"] ["home-manager" "users" config.user.name])
|
|
inputs.nix-colors.homeManagerModules.default
|
|
inputs.hyprland.nixosModules.default
|
|
]
|
|
++ (mapModulesRec' (toString ./modules) import);
|
|
|
|
hm.imports = [
|
|
inputs.hyprlock.homeManagerModules.hyprlock
|
|
inputs.hypridle.homeManagerModules.hypridle
|
|
inputs.hyprland.homeManagerModules.default
|
|
];
|
|
|
|
# Common config for all nixos machines;
|
|
environment.variables = {
|
|
NIXPKGS_ALLOW_UNFREE = "1";
|
|
};
|
|
|
|
nix = {
|
|
package = pkgs.nixVersions.stable;
|
|
|
|
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; # Enables use of `nix-shell -p ...` etc
|
|
registry.nixpkgs.flake = inputs.nixpkgs; # Make `nix shell` etc use pinned nixpkgs
|
|
|
|
settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
auto-optimise-store = true;
|
|
keep-outputs = true;
|
|
keep-derivations = true;
|
|
substituters = [ "https://nix-community.cachix.org" "https://nixpkgs-wayland.cachix.org" "https://hyprland.cachix.org" ];
|
|
trusted-public-keys = [
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
];
|
|
};
|
|
};
|
|
|
|
system = {
|
|
stateVersion = "23.11";
|
|
configurationRevision = with inputs; mkIf (self ? rev) self.rev;
|
|
};
|
|
hm.home.stateVersion = config.system.stateVersion;
|
|
|
|
boot = {
|
|
kernelPackages = mkDefault pkgs.unstable.linuxPackages_latest;
|
|
kernelParams = ["pcie_aspm.policy=performance"];
|
|
};
|
|
|
|
# Configure keymap in X11
|
|
services.xserver = {
|
|
layout = "us";
|
|
xkbVariant = "workman";
|
|
};
|
|
console = {
|
|
useXkbConfig = mkDefault true;
|
|
};
|
|
|
|
time.timeZone = mkDefault "Europe/Moscow";
|
|
|
|
i18n.defaultLocale = mkDefault "en_GB.UTF-8";
|
|
|
|
hardware.enableRedistributableFirmware = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
unrar unzip
|
|
micro
|
|
curl wget
|
|
desktop-file-utils
|
|
shared-mime-info
|
|
xdg-user-dirs
|
|
xdg-utils
|
|
# fun fact! when using flakes not having
|
|
# git available as a global package while operating
|
|
# on a git repository makes nixos-rebuild break,
|
|
# rendering your system unable to rebuild.
|
|
# nix is really cool
|
|
git
|
|
];
|
|
|
|
documentation.nixos.enable = false;
|
|
}
|