configuration.nix/nixos/laptop/default.nix

172 lines
3.2 KiB
Nix
Raw Normal View History

2023-08-12 14:41:57 +02:00
{ config, pkgs, ... }: {
2023-08-07 10:19:48 +02:00
2023-09-09 10:12:43 +02:00
system.stateVersion = "23.11";
2023-08-12 14:41:57 +02:00
nix = {
2023-10-01 17:35:46 +02:00
extraOptions = ''
experimental-features = nix-command flakes
'';
2023-08-12 14:41:57 +02:00
};
hardware = {
opengl = {
enable = true;
driSupport = true;
};
};
2024-05-07 00:24:11 +02:00
catppuccin = {
enable = true;
2024-05-23 23:31:33 +02:00
flavor = "mocha";
2024-05-07 00:24:11 +02:00
};
2023-08-12 14:41:57 +02:00
boot = {
loader = {
2024-05-06 23:53:37 +02:00
grub = {
enable = true;
catppuccin.enable = true;
useOSProber = true;
efiSupport = true;
device = "nodev";
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
2023-08-12 14:41:57 +02:00
};
2023-09-04 18:19:57 +02:00
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
kernelModules = [ "v4l2loopback" ];
2023-08-12 14:41:57 +02:00
};
security = {
sudo = {
2024-05-06 11:05:45 +02:00
enable = false;
execWheelOnly = true;
extraRules = [
{
groups = [ "wheel" ];
commands = [{ command = "${pkgs.light}/bin/light"; options = [ "SETENV" "NOPASSWD" ]; }];
}
];
};
2024-05-06 11:05:45 +02:00
doas = {
enable = true;
2024-05-06 11:17:25 +02:00
extraRules = [
# Allow wheel to run all commands without password and keep user env.
{ groups = [ "wheel" ]; noPass = true; keepEnv = true; }
];
2024-05-06 11:05:45 +02:00
};
2023-08-12 14:41:57 +02:00
polkit.enable = true;
rtkit.enable = true;
pam = { services = { swaylock = { }; }; };
};
xdg = {
portal = {
enable = true;
wlr.enable = true;
2023-11-25 16:34:43 +01:00
config.common.default = "*";
2023-08-12 14:41:57 +02:00
};
};
2024-05-06 11:17:25 +02:00
i18n.supportedLocales = [ "all" ];
2024-01-30 14:01:55 +01:00
time.timeZone = "Europe/Sofia";
2023-08-12 14:41:57 +02:00
2024-05-23 23:31:33 +02:00
fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" ]; }) noto-fonts noto-fonts-emoji noto-fonts-lgc-plus ];
2023-08-12 14:41:57 +02:00
environment = {
systemPackages = with pkgs; [
cmatrix
coreutils-full
2023-12-01 13:22:56 +01:00
cryptsetup
2023-11-19 10:31:46 +01:00
dig
2023-08-12 14:41:57 +02:00
fd
2023-12-01 13:22:56 +01:00
file
2023-08-12 14:41:57 +02:00
git
glibc
gnumake
jq
mlocate
2023-12-01 13:22:56 +01:00
moreutils
ntfs3g
openssl
srm
2023-08-12 14:41:57 +02:00
unzip
vim
zip
2023-08-07 10:19:48 +02:00
];
2024-04-12 12:33:36 +02:00
shells = with pkgs; [ zsh nushell ];
2023-08-12 14:41:57 +02:00
};
2023-08-07 10:19:48 +02:00
2023-11-01 19:02:35 +01:00
networking = {
2024-02-22 17:23:36 +01:00
wireless = {
enable = true;
networks = {
"Smart-Hostel-2.4" = {
psk = "smarttrans.bg";
};
2024-04-29 13:31:56 +02:00
"Yohohostel2.4G" = {
psk = "kaskamaska";
};
2024-05-01 11:06:02 +02:00
"Nomado_Guest" = {
psk = "welcomehome";
};
2024-05-04 11:46:03 +02:00
"HostelMusala Uni" = {
psk = "mhostelm";
};
2024-05-27 20:16:13 +02:00
"BOUTIQUE APARTMENTS" = {
psk = "boutique26";
};
2024-02-22 17:23:36 +01:00
};
};
2023-11-01 19:02:35 +01:00
stevenBlackHosts = {
enable = true;
blockFakenews = true;
blockGambling = true;
};
};
2023-08-07 10:19:48 +02:00
2023-08-12 14:41:57 +02:00
programs = {
zsh.enable = true;
nix-ld.enable = true;
2024-01-27 13:24:29 +01:00
adb.enable = true;
2024-05-07 00:47:46 +02:00
dconf.enable = true;
2023-08-12 14:41:57 +02:00
};
users = {
defaultUserShell = pkgs.zsh;
2023-11-14 15:40:34 +01:00
users = {
ivand = {
2024-01-29 08:48:15 +01:00
shell = pkgs.nushell;
2023-11-14 15:40:34 +01:00
isNormalUser = true;
extraGroups = [
2024-01-27 13:24:29 +01:00
"adbusers"
2023-11-14 15:40:34 +01:00
"adm"
"audio"
"bluetooth"
"dialout"
2024-01-27 13:24:29 +01:00
"flatpak"
"kvm"
"mlocate"
"render"
"video"
"wheel"
2023-11-14 15:40:34 +01:00
];
};
2023-08-12 14:41:57 +02:00
};
extraGroups = { mlocate = { }; };
};
services = {
xserver.videoDrivers = [ "nouveau" ];
dbus.enable = true;
flatpak.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
2023-12-09 13:14:45 +01:00
pulse.enable = true;
2023-08-12 14:41:57 +02:00
};
};
}