desktop-nixos/configuration.nix

253 lines
5.2 KiB
Nix

{ config, lib, pkgs, callPackage, ... }:
{
imports =
[ # Include the results of the hardware scan.
/etc/nixos/hardware-configuration.nix
];
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
# grub = {
# enable = true;
# device = "nodev";
# useOSProber = true;
# };
};
supportedFilesystems = [ "btrfs" "ext2" "ext3" "ext4" "exfat" "f2fs" "fat16" "fat32" "nfs" "ntfs" "xfs" ];
};
networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
qt = {
enable = true;
platformTheme = "gtk2";
style = "gtk2";
};
hardware.opengl.driSupport32Bit = true;
hardware.nvidia.modesetting.enable = true;
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"openssl-1.1.1v"
];
users.users.dym = {
isNormalUser = true;
description = "dym";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [ ];
};
environment.systemPackages = with pkgs; [
alacritty
appimage-run
appimagekit
bash
bat
bc
binutils
blender
bun
cargo
cifs-utils
copyq
curl
dbeaver
deno
doublecmd
dpkg
espanso
exa
ffmpeg
file
firefox
gdk-pixbuf
gdk-pixbuf-xlib
ghostscript
gimp
git
go
gparted
graphicsmagick
i3
imagemagick
imwheel
inkscape
jpegoptim
kate
keepassxc
kid3
krita
lapce
libreoffice-qt
libsForQt5.kcharselect
libsForQt5.kdenlive
lutris
lxappearance
lynx
nano
nettools
nextcloud-client
nfs-utils
nix-index
nodejs_18
ntfs3g
numlockx
ocaml
oh-my-zsh
opam
opam-installer
p7zip
pavucontrol
php82
pngcrush
pngquant
postgresql_15
python311
python311Packages.pip
rdfind
restic
ripgrep
rustc
sd
sqlite
sshfs
stdenv
stdenv.cc
steam
sublime-merge
sublime4
transmission
unzip
vlc
wget
wmctrl
xdotool
xmonad-with-packages
xorg.xmodmap
zlib
];
services = {
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
rpcbind.enable = true;
xserver = {
enable = true;
layout = "us";
xkbVariant = "mac";
videoDrivers = [ "nvidia" ];
desktopManager = {
plasma5.enable = true;
};
displayManager = {
defaultSession = "none+i3";
sddm.enable = true;
autoLogin = {
enable = true;
user = "dym";
};
};
windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [
rofi
];
};
};
};
programs.zsh.enable = true;
environment = {
pathsToLink = [ "/libexec" ]; # links /libexec from derivations to /run/current-system/sw
shells = with pkgs; [ bash zsh ];
variables =
{ NIXPKGS_CONFIG = "/etc/nix/nixpkgs-config.nix";
# note: many programs exec() this directly, so default options for less must not
# be specified here; do so in the default value of programs.less.envVariables instead
PAGER = "less";
EDITOR = "code";
# XDG_CONFIG_DIRS = [ "/etc/xdg" ]; # needs to be before profile-relative paths to allow changes through environment.etc
PATH = "$HOME/.local/bin:$PATH";
};
};
users.defaultUserShell = pkgs.zsh;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# services.openssh.enable = true;
# networking.firewall.allowedTCPPorts = [ ];
# networking.firewall.extraCommands = ''iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns'';
# networking.firewall.allowedUDPPorts = [ ... ];
# networking.firewall.enable = false;
# 192.168.0.222:/nfs/Public /Data nfs auto 0 0
# fileSystems."/Data" = {
# device = "192.168.0.222:/nfs/Public";
# fsType = "nfs";
# options = [ "defaults" "user" "rw" "utf8" "noauto" "umask=000" ];
# };
system.stateVersion = "23.05";
}