nixos/default.nix

148 lines
3.6 KiB
Nix
Raw Normal View History

2023-07-07 16:23:29 +04:00
{ config, pkgs, lib, inputs, outputs, ...}:
2023-07-07 00:39:27 +04:00
{
imports = [
# home manager
2023-07-07 16:23:29 +04:00
inputs.home-manager.nixosModules.default
2023-07-07 00:39:27 +04:00
# modules
#i dont think this is right
2023-07-07 21:44:30 +04:00
#./modules
outputs.nixosModules.desktop
outputs.nixosModules.desktop.bspwm
outputs.nixosModules.desktop.kitty
outputs.nixosModules.desktop.keepassxc
outputs.nixosModules.desktop.web.qutebrowser
outputs.nixosModules.desktop.game.steam
outputs.nixosModules.desktop.game.wine
outputs.nixosModules.desktop.game.lutris
outputs.nixosModules.desktop.chat.discord
outputs.nixosModules.dev
outputs.nixosModules.dev.editors
outputs.nixosModules.dev.editors.nvim
outputs.nixosModules.dev.cpp
outputs.nixosModules.dev.javascript
outputs.nixosModules.dev.python
outputs.nixosModules.dev.rust
outputs.nixosModules.devices
outputs.nixosModules.devices.nvidia
outputs.nixosModules.devices.pipewire
outputs.nixosModules.devices.bluetooth
outputs.nixosModules.media
outputs.nixosModules.media.mpd
outputs.nixosModules.media.ncmpcpp
outputs.nixosModules.shell
outputs.nixosModules.shell.newsboat
outputs.nixosModules.shell.zsh
2023-07-07 00:39:27 +04:00
];
nix.settings.experimental-features = [ "nix-command" "flakes"];
# grub (mount efi partition to /boot/efi)
# why /boot/efi? instead of /efi?
# 1. when dualbooting, windows makes the efi partition 100mb instead of 512mb+ (we need this for generations
# and intel microcode)
# 2. nixos does not like /efi :(
# 3. i dont like systemd boot D:
# TODO(sako):: add shim secure boot
# because window and riot games devs :(
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
devices = [ "nodev" ];
efiSupport = true;
enable = true;
useOSProber = true;
};
};
# this shouldnt cause any issues right?
2023-07-07 21:38:41 +04:00
networking.hostName = "sakotop";
2023-07-07 00:39:27 +04:00
networking.networkmanager.enable = true;
time.timeZone = "Africa/Cairo";
2023-07-07 16:23:29 +04:00
i18n.defaultLocale = "en_US.UTF-8";
2023-07-07 00:39:27 +04:00
console = {
font = "Lat2-Terminus16";
# keyMap = "us";
useXkbConfig = true;
};
# already sold soul to corporations \_O_/
nixpkgs.config.allowUnfree = true;
2023-07-07 21:38:41 +04:00
services.xserver = {
layout = "us";
};
# nix makes alot of garbage so remove it :)
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
# 100% need this everyone probably knows gpg
programs.gnupg.agent = {
enable = true;
pinentryFlavor = "gtk2";
# enableSSHSupport = true;
};
# i dont care what ANYONE says git is always
# a requirement for a nixos system so it is
# also bare minimum
programs.git = {
enable = true;
package = pkgs.gitFull;
};
# bare minimum
# :)
environment.systemPackages = with pkgs; [
neovim
wget
killall
alsa-utils
pulseaudio
pamixer
feh
unzip
gh
htop
tree
];
users.users.sako = {
shell = pkgs.zsh;
isNormalUser = true;
# sudo and networkmanager
extraGroups = [ "wheel" "networkmanager" ];
};
home-manager.useUserPackages = true;
home-manager.users.sako = { pkgs, ...}:{
# CHANGE THIS WHEN THE SYSTEM VERSION
# CHANGES TOO !!!!!!
home.stateVersion = "23.05";
home.packages = [];
home.username = "sako";
home.homeDirectory = "/home/sako";
programs.bash.enable = true;
programs.home-manager.enable = true;
# git
xdg.configFile = {
git = {
source = ../../config/git;
};
};
};
# change this when nixos update blah blah blah
# something read the docs haha
# ok
system.stateVersion = "23.05"; # read the comment
2023-07-07 00:39:27 +04:00
}