NixConfig/configuration.nix
fqbn207 1f234cd496 kekl
2024-12-21 23:36:56 +01:00

218 lines
3.4 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz";
in
{
imports = [
(import "${home-manager}/nixos")
./hardware-configuration.nix
./modules/nix/firefox.nix
./modules/nix/gaming.nix
];
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
boot = {
loader = {
systemd-boot = {
enable = true;
};
grub = {
enable = false;
device = "/dev/sda";
useOSProber = true;
};
};
supportedFilesystems = [ "ntfs" ];
};
networking = {
hostName = "poggers";
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [
80
1337
8080
];
};
};
time.timeZone = "Europe/Berlin";
console = {
font = "Lat2-Terminus16";
useXkbConfig = true;
};
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-hyprland
];
};
services = {
libinput = {
enable = true;
};
xserver = {
enable = true;
displayManager.startx.enable = true;
windowManager.bspwm.enable = true;
};
pipewire = {
enable = true;
pulse.enable = true;
wireplumber.enable = true;
};
mullvad-vpn = {
enable = true;
};
sdrplayApi = {
enable = true;
};
};
hardware = {
bluetooth = {
enable = true;
};
graphics = {
enable = true;
};
rtl-sdr = {
enable = true;
};
};
programs = {
hyprland = {
enable = true;
xwayland.enable = true;
};
nix-ld.enable = true;
};
virtualisation = {
docker = {
enable = true;
};
};
users.users.fabian = {
isNormalUser = true;
initialPassword = "1601";
extraGroups = [
"wheel"
"docker"
"audio"
"video"
"dialout"
"plugdev"
];
};
environment.systemPackages = with pkgs; [
# sys
unzip
yt-dlp
inetutils
git
wget
curl
dosfstools
ntfs3g
waybar
xdg-desktop-portal-hyprland
grim
slurp
feh
gnumake
flameshot
tree
gdb
vscode
# cli
neofetch
fastfetch
onefetch
vim
weechat
ranger
eza
fzf
htop
btop
# dev
rustup
python3
nodejs
gccgo14
go
nixd
arduino-cli
arduino-ide
arduino-language-server
dotnet-sdk
# misc
cava
discord
pacman
];
security = {
doas = {
enable = true;
extraRules = [
{
users = [ "fabian" ];
noPass = true;
keepEnv = true;
}
];
};
};
fonts = {
fontconfig.enable = true;
packages =
with pkgs;
[
noto-fonts
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
fantasque-sans-mono
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
]
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
};
environment.etc = {
"makepkg.conf".source = "${pkgs.pacman}/etc/makepkg.conf";
"pacman.conf".source = ./modules/raw/pacman.conf;
};
system.stateVersion = "24.11";
home-manager.users.fabian = ./modules/home.nix;
}