nix-v0/configuration.nix
2024-10-26 15:33:26 -05:00

204 lines
4.6 KiB
Nix

{ config, lib, pkgs, inputs, ... }:
{
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
];
nixpkgs.config.allowUnfree = true;
boot.kernelParams = [ "resume_offset=533760" ];
boot.resumeDevice = "/dev/pool/root";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "pickwick";
networking.networkmanager.enable = true;
time.timeZone = "America/Chicago";
i18n.defaultLocale = "en_US.UTF-8";
services.xserver.enable = true;
# services.displayManager.sddm.enable = true;
# services.desktopManager.plasma6.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "caps:ctrl_modifier";
security.sudo.extraConfig = "Defaults lecture=never";
security.pam.services.login.fprintAuth = false;
security.pam.services.sudo.fprintAuth = false;
# framework setting
services.fwupd.enable = true;
# services.fwupd.package = (import (builtins.fetchTarball {
# url = "https://github.com/NixOS/nixpkgs/archive/bb2009ca185d97813e75736c2b8d1d8bb81bde05.tar.gz";
# sha256 = "sha256:003qcrsq5g5lggfrpq31gcvj82lb065xvr7bpfa8ddsw8x4dnysk";
# }) {
# inherit (pkgs) system;
# }).fwupd;
hardware.framework.amd-7040.preventWakeOnAC = true;
services.pipewire = {
enable = true;
pulse.enable = true;
jack.enable = true;
};
services.libinput.enable = true;
users.users.root.hashedPasswordFile = "/persist/passwords/root";
users.users.rayandrew = {
isNormalUser = true;
# initialPassword = "12345";
hashedPasswordFile = "/persist/passwords/rayandrew";
extraGroups = [ "wheel" "audio" "keyd" ];
packages = with pkgs; [
firefox
tree
];
};
users.groups.keyd = {};
environment.systemPackages = with pkgs; [
vim
wget
htop-vim
# gnome
keyd
# gnomeExtensions.pop-launcher-super-key
];
environment.plasma6.excludePackages = with pkgs.kdePackages; [
# plasma-browser-integration
# konsole
oxygen
];
environment.gnome.excludePackages = with pkgs; [
baobab
cheese
epiphany
simple-scan
yelp
evince
file-roller
geary
gnome-tour
gnome-initial-setup
gnome-music
gnome-maps
gnome-disk-utility
];
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
polkitPolicyOwners = [ "rayandrew" ];
};
environment.etc = {
"1password/custom_allowed_browsers" = {
text = ''
firefox
'';
mode = "0755";
};
};
programs.dconf.enable = true;
fileSystems."/persist".neededForBoot = true;
environment.persistence."/persist/system" = {
hideMounts = true;
directories = [
"/etc/nixos"
# "/etc/gdm"
"/var/log"
"/var/lib/fprint"
"/var/lib/nixos"
"/var/lib/bluetooth"
"/var/lib/systemd/coredump"
"/etc/NetworkManager/system-connections"
{ directory = "/var/lib/colord"; user = "colord"; group = "colord"; mode = "u=rwx,g=rx,o="; }
];
files = [
"/etc/machine-id"
];
};
programs.fuse.userAllowOther = true;
home-manager = {
extraSpecialArgs = {inherit inputs pkgs;};
users = {
"rayandrew" = import ./home.nix;
};
useGlobalPkgs = true;
useUserPackages = true;
};
# xdg.portal = {
# enable = true;
# xdgOpenUsePortal = true;
# extraPortals = [
# pkgs.xdg-desktop-portal-gnome
# pkgs.xdg-desktop-portal-gtk
# ];
# };
services.keyd = {
enable = true;
keyboards = {
default = {
ids = [ "*" ];
settings = {
main = {
capslock = "layer(capslock)";
insert = "S-insert";
# capslock = "layer(control)";
};
meta = {
w = "macro(C-w)";
a = "macro(C-a)";
};
"capslock:C" = { };
};
};
framework = {
ids = [ "0001:0001:a38e6885" ];
settings = {
main = {
leftalt = "layer(meta)";
leftmeta = "layer(alt)";
};
};
};
normal = {
ids = [ "413c:2107:eb8bfad1" ];
settings = {
main = {
leftalt = "layer(meta)";
leftmeta = "layer(alt)";
};
};
};
};
};
systemd.services.keyd.serviceConfig.CapabilityBoundingSet = [
"CAP_SETGID"
];
swapDevices = [
{ device = "/swap/swapfile"; }
];
system.stateVersion = "24.11";
}