snowflake/system/configuration.nix
2025-06-05 00:28:43 +08:00

159 lines
3.5 KiB
Nix

{ pkgs, inputs, options, ... }:
{
imports = [ # Include the results of the hardware scan.
./hardware-configuration.nix
./de-twm.nix
./boot.nix
./filesystems.nix
./flatpak.nix
./audio.nix
./devtools.nix
./fontconfig.nix
./localisation.nix
inputs.home-manager.nixosModules.home-manager
];
### NETWORKING
networking = {
hostName = "dpv";
networkmanager.enable = true;
timeServers = options.networking.timeServers.default ++ [ "time.google.com" ];
};
### SERVICES
services = {
xserver = {
enable = true;
excludePackages = [ pkgs.xterm ];
displayManager.lightdm.enable = true;
xkb.layout = "us";
xkb.variant = "";
};
ntp.enable = true;
## Daemons
printing.enable = true;
openssh.enable = true;
### Clipboard
greenclip = {
enable = true;
package = pkgs.haskellPackages.greenclip;
};
gnome.gnome-keyring.enable = true;
envfs.enable = true;
gvfs.enable = true;
tumbler.enable = true;
};
xdg.portal = {
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
config.common.default = "gtk";
};
### HARDWARE
hardware = {
graphics = {
enable = true;
extraPackages = with pkgs; [ intel-media-driver ];
};
bluetooth.enable = true;
};
### SECURITY
security.rtkit.enable = true;
security.pam.services.lightdm.enableGnomeKeyring = true;
### USERS
users = {
groups.libvirtd.members = [ "dpv" ];
users.dpv = {
isNormalUser = true;
description = "dpv";
extraGroups = [ "networkmanager" "wheel" "libvirtd" "input" ];
shell = pkgs.zsh;
packages = [ ];
};
};
### PROGRAMS
programs = {
firefox.enable = false;
ssh.startAgent = true;
zsh.enable = true;
xfconf.enable = true;
dconf.enable = true;
gnupg.agent = {
enable = true;
};
thunar = {
enable = true;
plugins = [
pkgs.xfce.thunar-archive-plugin
pkgs.xfce.thunar-volman
pkgs.xfce.thunar-media-tags-plugin
];
};
};
### UNFREE PACKAGES
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"openssl-1.1.1w"
];
### PACKAGES TO INSTALL IN A SYSTEM
environment.systemPackages = with pkgs; [
fastfetch btop htop wget fzf ripgrep
obsidian metasploit google-chrome home-manager
sqlite lsd nsxiv pulseaudio
mpc brightnessctl sdcv speedcrunch screenkey bitwarden-desktop
keepassxc rustup gcc gnumake clang-tools nodejs pnpm
imagemagick pandoc nixd dbeaver-bin gdu sl pavucontrol
ffmpeg ffmpegthumbnailer p7zip rar unrar zip unzip dig nix-du
nh graphviz libnotify drawing wmctrl android-tools libinput
alsa-utils libsForQt5.qt5ct sublime4
simplescreenrecorder gpick # stuff that will ONLY work in X
inputs.zen-browser.packages.${pkgs.system}.default
];
### ENV
environment.sessionVariables = {
QT_QPA_PLATFORMTHEME = "qt5ct";
QT_STYLE_OVERRIDE = "adwaita-dark";
};
environment.variables = {
EDITOR = "nvim";
};
### HOME MANAGER
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
dpv = import ../user/home.nix;
};
};
### MORE NIX
nix = {
gc = {
automatic = true;
dates = "daily";
options = "--delete-older-than 10d";
};
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
};
};
system.stateVersion = "24.11";
}