nicks-nix-config/hosts/configuration.nix

147 lines
3.5 KiB
Nix
Raw Normal View History

2022-11-08 19:08:54 -08:00
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, lib, pkgs, user, inputs, ... }:
{
2023-09-21 11:23:22 -07:00
# Some programs look for session variables to store config files at
# (Looking at you home-manager yazi)
environment.sessionVariables = rec {
XDG_CACHE_HOME = "$HOME/.cache";
XDG_CONFIG_HOME = "$HOME/.config";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
2023-10-24 18:31:26 -07:00
WLR_NO_HARDWARE_CURSORS = "1";
2023-09-21 11:23:22 -07:00
};
2023-10-23 17:59:48 -07:00
programs.hyprland.enable = true;
2023-10-23 16:58:15 -07:00
2024-05-06 19:31:24 -07:00
services = {
xserver = {
enable = true;
xkb.layout = "us";
xkb.options = "caps:super";
desktopManager.plasma5.enable = true;
};
2023-02-16 12:57:57 -08:00
2024-05-06 19:31:24 -07:00
displayManager = {
2022-11-08 19:08:54 -08:00
2024-05-06 19:31:24 -07:00
defaultSession = "plasma";
sddm.enable = true;
};
2023-02-16 12:57:57 -08:00
libinput = {
2024-05-06 19:31:24 -07:00
2023-02-16 12:57:57 -08:00
enable = true;
touchpad = {
tapping = true;
naturalScrolling = true;
disableWhileTyping = true;
tappingDragLock = true;
additionalOptions = ''
Option "TappingButtonMap" "lmr"
'';
};
};
};
2024-05-06 19:31:24 -07:00
2023-12-25 18:38:17 -08:00
# Android Debugging interface
programs.adb.enable = true;
services.udev.packages = [
pkgs.android-udev-rules
];
programs.zsh.enable = true;
2022-11-08 19:08:54 -08:00
users.users.${user} = {
isNormalUser = true;
2023-12-25 18:38:17 -08:00
extraGroups = [
"wheel" "video"
"audio" "networkmanager"
"lp" "scanner"
"input" "uinput"
"cdrom" "adbusers"];
2022-11-08 19:08:54 -08:00
shell = pkgs.zsh;
password = "password";
};
2023-07-29 12:48:45 -07:00
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = ["DejaVuSansMono"]; })
2022-11-08 19:08:54 -08:00
dejavu_fonts
2022-12-04 15:15:50 -08:00
xkcd-font
2022-11-08 19:08:54 -08:00
];
2023-12-25 18:38:17 -08:00
boot = {
supportedFilesystems = [ "nfts" ];
loader.systemd-boot.configurationLimit = 5;
2022-11-08 19:08:54 -08:00
};
2023-12-25 18:38:17 -08:00
networking.networkmanager.enable = true;
2023-03-17 17:43:12 -07:00
hardware = {
2023-12-25 18:38:17 -08:00
bluetooth.enable = true;
2023-03-17 17:43:12 -07:00
opentabletdriver.enable = true;
steam-hardware.enable = true;
};
2022-12-08 20:51:16 -08:00
2023-12-25 18:38:17 -08:00
security = {
rtkit.enable = true;
pam.services.kwallet = {
name = "kdewallet";
enableKwallet = true;
};
};
services = {
# Enable CUPS to print documents.
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
#jack.enable = true;
};
};
time.timeZone = "America/Los_Angeles";
time.hardwareClockInLocalTime = true;
2022-12-08 20:51:16 -08:00
2023-12-25 18:38:17 -08:00
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
useXkbConfig = true; # use xkbOptions in tty.
};
2022-11-08 19:08:54 -08:00
2023-12-25 18:38:17 -08:00
nixpkgs.config.allowUnfree = true;
2022-11-08 19:08:54 -08:00
nix = {
2023-12-25 18:38:17 -08:00
gc = {
automatic = true;
options = "--delete-generations 20d";
};
settings = {
auto-optimise-store = true;
# max cores used per derivation
cores = 8;
# max derivations that can be built at once
# nix.settings.max-jobs = 2;
};
2022-11-08 19:08:54 -08:00
package = pkgs.nixVersions.stable;
extraOptions = "experimental-features = nix-command flakes";
};
# 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. Its 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 = "22.05"; # Did you read the comment?
}