nix-config/modules/nixos-common.nix

159 lines
3.5 KiB
Nix
Raw Normal View History

{
pkgs,
...
}: {
# ------------ System ------------
users.users.tacocat = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "audio" "video" "bluetooth" "kvm"];
home = "/home/tacocat";
description = "Aria Nolan";
};
boot.loader = {
efi.canTouchEfiVariables = false;
grub = {
efiSupport = true;
configurationLimit = 10;
device = "nodev";
};
};
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
networking.networkmanager.enable = true;
networking.resolvconf.extraConfig = ''
name_servers="1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001"
name_server_blacklist="129.21.3.17 129.21.4.18 2620:8d:8000:0:aba:ca:daba:ec"
'';
# Sound
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
# Services/Hardware
hardware.opentabletdriver.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
services.printing.enable = true;
services.geoclue2.enable = true;
services.mullvad-vpn.enable = true;
services.mullvad-vpn.enableExcludeWrapper = false;
services.fwupd.enable = true;
security.rtkit.enable = true;
services.resolved.enable = true;
services.udisks2.enable = true;
2024-01-17 02:15:24 +00:00
services.interception-tools = {
enable = true;
plugins = with pkgs.interception-tools-plugins; [
dual-function-keys
];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/interception/dual-function-keys/my-mappings.yaml | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
NAME: "Barcode Reader"
'';
};
environment.etc."interception/dual-function-keys/my-mappings.yaml".text = ''
MAPPINGS:
- KEY: KEY_CAPSLOCK
- TAP: KEY_ESC
- HOLD: KEY_MSDOS
'';
2024-01-11 02:05:37 +00:00
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
};
# ------------ Nix ------------
nix.settings = {
experimental-features = ["nix-command" "flakes"];
auto-optimise-store = true;
trusted-users = ["root" "tacocat"];
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
2024-01-09 23:00:58 +00:00
nixpkgs.config.allowUnfree = true;
programs.nix-index.enable = true;
programs.command-not-found.enable = false;
2023-12-21 06:37:09 +00:00
# ------------ Software ------------
environment = {
systemPackages = with pkgs; [
screen
udiskie
pyocd
vim
exfat
encfs
ntfs3g
2024-01-11 01:46:31 +00:00
gnutls
];
# remove nano
defaultPackages = with pkgs; [
perl
rsync
strace
];
};
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
extraPackages = with pkgs; [
swaylock
swayidle
brightnessctl
wl-mirror
];
};
programs.waybar.enable = true;
programs.steam.enable = true;
programs.steam.remotePlay.openFirewall = true;
# programs.steam.gamescopeSession = {
2023-12-21 06:37:09 +00:00
# enable = true;
# args = [
# "-f"
# "--expose-wayland"
# ];
# };
programs.gamemode.enable = true;
# programs.gamescope.enable = true;
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
gtk.iconCache.enable = true;
# ------------ Graphics ------------
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
}