nixconf/systems/x86_64-linux/gallifrey/default.nix

161 lines
3.4 KiB
Nix

{
pkgs,
inputs,
...
}:
{
imports = [
./hardware.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
networking.networkmanager.enable = true;
services.openssh = {
enable = true;
settings = {
PermitEmptyPasswords = false; # Needed because of guest account.
};
};
programs.mosh.enable = true;
time.timeZone = "US/Eastern";
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
# keyMap = "us";
useXkbConfig = true; # use xkbOptions in tty.
};
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire = {
enable = true;
pulse.enable = true;
alsa.enable = true;
};
services.xserver = {
# Enable the X11 windowing system.
enable = true;
# Configure keymap in X11
layout = "us";
xkbOptions = "caps:super";
libinput.enable = true;
# Configure GNOME
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
environment.systemPackages = with pkgs; [
coreutils mime-types file gitFull
usbutils pciutils
];
programs.kdeconnect.enable = true;
programs.kdeconnect.package = pkgs.gnomeExtensions.gsconnect;
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
configure = {
packages.myVimPackage = with pkgs.vimPlugins; {
start = [ vim-nix vim-lastplace vim-airline ];
opt = [];
};
customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
set mouse=a
set number
" ...
'';
};
};
nix = {
settings = {
trusted-users = [ "root" "@wheel" ];
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
warn-dirty = false;
log-lines = 30;
};
gc = {
automatic = true;
dates = "monthly";
};
registry = {
nixpkgs.flake = inputs.nixpkgs;
nixconf.flake = inputs.self;
};
nixPath = [
"nixpkgs=flake:nixpkgs"
"nixos-config=flake:nixconf"
];
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "hm-bak";
};
programs.fish.enable = true;
users.defaultUserShell = pkgs.fish;
users.users = {
mtxyz = {
isNormalUser = true;
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keyFiles = [
./pubkeys/mtxyz.keys
];
initialPassword = "";
};
hive = {
isNormalUser = true;
extraGroups = [ "wheel" ];
initialPassword = "";
};
friends = {
isNormalUser = true;
initialPassword = "";
};
};
boot.binfmt.registrations.appimage = {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
# 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 = "23.11"; # Did you read the comment?
}