202 lines
5.0 KiB
Nix
202 lines
5.0 KiB
Nix
{
|
|
pkgs,
|
|
myConfig,
|
|
inputs,
|
|
lib,
|
|
specialArgs,
|
|
...
|
|
}: {
|
|
imports = [
|
|
inputs.home-manager.nixosModules.home-manager
|
|
inputs.chaotic.nixosModules.default
|
|
./hardware-configuration.nix
|
|
../../modules/default/desktop.nix
|
|
../../modules/default/dev.nix
|
|
../../modules/default/remote.nix
|
|
];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
pavucontrol
|
|
wl-clipboard
|
|
wget
|
|
protontricks
|
|
];
|
|
|
|
users = {
|
|
defaultUserShell = pkgs.${myConfig.general.Terminal.shell};
|
|
users = {
|
|
${myConfig.essentials.Username} = {
|
|
isNormalUser = true;
|
|
extraGroups = ["wheel" "networkmanager" "input" "video"];
|
|
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
|
|
useDefaultShell = true;
|
|
packages = [];
|
|
};
|
|
};
|
|
};
|
|
home-manager = {
|
|
backupFileExtension = "backup";
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
extraSpecialArgs = specialArgs;
|
|
users.${myConfig.essentials.Username} = import ../../home/hakase.nix;
|
|
};
|
|
|
|
nixpkgs.config.allowUnfree = myConfig.general.allowUnfree;
|
|
|
|
hardware.logitech.wireless.enable = true;
|
|
hardware.bluetooth.enable = true;
|
|
hardware.bluetooth.powerOnBoot = true;
|
|
hardware.bluetooth.settings = {
|
|
General = {
|
|
MultiProfile = "multiple";
|
|
FastConnectable = true;
|
|
};
|
|
};
|
|
hardware.graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
};
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
time.timeZone = "${myConfig.nixos.Timezone}";
|
|
|
|
boot.loader = {
|
|
systemd-boot = lib.mkIf (myConfig.nixos.Boot.mode == "systemd") {
|
|
enable = true;
|
|
};
|
|
grub = lib.mkIf (myConfig.nixos.Boot.mode == "grub") {
|
|
efiSupport = true;
|
|
enable = true;
|
|
device = "nodev";
|
|
useOSProber = true;
|
|
};
|
|
efi = {
|
|
canTouchEfiVariables = true;
|
|
efiSysMountPoint = "/boot";
|
|
};
|
|
};
|
|
|
|
programs.ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
|
|
|
|
programs.bash = {
|
|
interactiveShellInit = ''
|
|
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
|
|
'';
|
|
};
|
|
|
|
programs = {
|
|
zsh.enable = true;
|
|
fish.enable = true;
|
|
};
|
|
|
|
services = {
|
|
displayManager.sessionPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland];
|
|
# getty.autologinUser = "${myConfig.essentials.Username}";
|
|
# greetd = {
|
|
# enable = true;
|
|
# settings.default_session = {
|
|
# user = "${myConfig.essentials.Username}";
|
|
# command = "Hyprland";
|
|
# };
|
|
# };
|
|
|
|
seatd.enable = true;
|
|
upower.enable = true;
|
|
scx.enable = true; # by default uses scx_rustland scheduler
|
|
libinput.enable = true;
|
|
blueman.enable = true;
|
|
printing.enable = true;
|
|
openssh.enable = true;
|
|
pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
|
|
# lowLatency = {
|
|
# enable = true;
|
|
# quantum = 64;
|
|
# rate = 48000;
|
|
# };
|
|
};
|
|
};
|
|
# make pipewire realtime-capable
|
|
security.rtkit.enable = true;
|
|
|
|
nix = {
|
|
distributedBuilds = true;
|
|
settings = {
|
|
builders-use-substitutes = true;
|
|
trusted-users = myConfig.optionals.Builds.trustedUsers;
|
|
experimental-features = ["nix-command" "flakes"];
|
|
};
|
|
};
|
|
|
|
console = {
|
|
earlySetup = false;
|
|
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
|
|
packages = with pkgs; [terminus_font];
|
|
useXkbConfig = true;
|
|
};
|
|
|
|
networking = {
|
|
networkmanager.enable = true;
|
|
firewall = {
|
|
enable = true;
|
|
allowedTCPPorts = [22 80];
|
|
allowedUDPPorts = [53];
|
|
};
|
|
proxy.default = null;
|
|
proxy.noProxy = null;
|
|
};
|
|
|
|
boot.loader.timeout = 0;
|
|
boot.loader.limine.maxGenerations = 5;
|
|
hardware.amdgpu.initrd.enable = true;
|
|
|
|
boot.kernelParams = [
|
|
"quiet"
|
|
"splash"
|
|
"boot.shell_on_fail"
|
|
"udev.log_priority=3"
|
|
"rd.systemd.show_status=auto"
|
|
"iommu=pt"
|
|
"amd_pstate=active"
|
|
];
|
|
boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
|
boot.kernel.sysctl = {
|
|
"kernel.split_lock_mitigate" = 0;
|
|
"kernel.nmi_watchdog" = 0;
|
|
"kernel.sched_bore" = "1";
|
|
};
|
|
|
|
boot.initrd = {
|
|
systemd.enable = true;
|
|
kernelModules = [];
|
|
verbose = false;
|
|
};
|
|
boot.plymouth.enable = true;
|
|
boot.plymouth.theme = "seal";
|
|
boot.plymouth.themePackages = with pkgs; [
|
|
# By default we would install all themes
|
|
(adi1090x-plymouth-themes.override {
|
|
selected_themes = ["seal"];
|
|
})
|
|
];
|
|
boot.consoleLogLevel = 0;
|
|
systemd.extraConfig = "DefaultTimeoutStopSec=5s";
|
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
# Or disable the firewall altogether.
|
|
# networking.firewall.enable = false;
|
|
|
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
system.stateVersion = "25.05";
|
|
}
|