nix/system/configuration.nix
2022-08-27 22:31:54 +10:00

125 lines
2.7 KiB
Nix

{ config, pkgs, ... }:
{
imports = [
# where are we ?
# ./wollomi.nix
# ./adrift.nix
# home manager should exist for users
<home-manager/nixos>
./cachix.nix
# declarative cachix
(import (builtins.fetchTarball "https://github.com/jonascarpay/declarative-cachix/archive/master.tar.gz"))
];
cachix = [
"nix-community"
];
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
environment.pathsToLink = [ "/share/zsh" ];
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 2;
boot.loader.systemd-boot.consoleMode = "max";
boot.loader.timeout = 3;
boot.loader.efi.canTouchEfiVariables = true;
#boot.plymouth.enable = true;
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
time.timeZone = "Australia/Sydney";
time.hardwareClockInLocalTime = true;
# Select internationalisation properties.
i18n.defaultLocale = "en_AU.UTF-8";
console = {
font = "Lat2-Terminus16";
useXkbConfig = true; # use xkbOptions in tty.
};
nixpkgs.config.allowUnfree = true;
hardware.opengl.enable = true;
hardware.opengl.driSupport32Bit = true;
#input stuff
# services.xserver.xkbOptions = {
# "eurosign:e";
# "caps:escape" # map caps to escape.
# };
services.xserver.enable = true;
services.xserver.layout = "us";
services.xserver.libinput.enable = true;
# kde time
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.runUsingSystemd = true;
# programs.xwayland.enable = true;
programs.dconf.enable = true;
# Enable sound.
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
# gtk compatibility
qt5.enable = true;
qt5.platformTheme = "gtk2";
qt5.style = "gtk2";
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
# rust
nixpkgs.overlays = [
(import "${fetchTarball "https://github.com/nix-community/fenix/archive/main.tar.gz"}/overlay.nix")
];
environment.systemPackages = with pkgs; [
rust-analyzer-nightly
(fenix.complete.withComponents [
# "cargo"
"clippy"
# "rust-src"
# "rustc"
"rustfmt"
])
# llvmPackages_14.clangUseLLVM
# gcc12
cachix
helix
rnix-lsp
ark
curl
home-manager
git
zsh
];
system.stateVersion = "22.05"; # Did you read the comment?
}