nixos/configuration.nix

130 lines
2.5 KiB
Nix
Raw Normal View History

2025-05-08 19:23:55 +01:00
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
let
username = "fred";
in
2025-05-08 19:23:55 +01:00
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
##########################
# Macbook required setup #
##########################
nixpkgs.config.allowUnfree = true;
#boot.kernelModules = [ "wl" ];
#boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
2025-05-08 19:23:55 +01:00
networking.networkmanager.enable = true;
networking.wireless.enable = false;
###################
# System settings #
###################
i18n.defaultLocale = "en_GB.UTF-8";
time.timeZone = "Europe/London";
##################
# Hardware setup #
##################
###############
# Boot loader #
###############
boot.loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
2025-05-09 21:03:20 +01:00
#efiSysMountPoint = "/boot/efi";
2025-05-08 19:23:55 +01:00
};
};
systemd.services.check-mountpoints.enable = false;
2025-05-08 19:23:55 +01:00
##############
# User setup #
##############
users.users.fred = { isNormalUser = true; initialPassword = "123"; extraGroups = [ "wheel" "networkmanager" ];};
system.activationScripts.fix-nixos-perms = ''
chown -R ${username}:users /etc/nixos/.git
chmod -R g+rw /etc/nixos/.git
'';
#############
# git setup #
#############
environment.etc."gitconfig".text = ''
[safe]
directory = /etc/nixos
'';
2025-05-08 19:23:55 +01:00
########################
# User personalisation #
########################
# GNOME
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome = {
enable = true;
extraGSettingsOverrides = ''
[org.gnome.desktop.interface]
color-scheme='prefer-dark'
'';
};
2025-05-08 19:23:55 +01:00
};
environment.gnome.excludePackages = (with pkgs; [
geary # email reader
gnome-music
gnome-photos
gnome-tour
gnome-calendar
gnome-weather
gnome-clocks
gnome-contacts
gnome-maps
pkgs.gnome-connections
simple-scan
yelp
totem # video player
]);
# systemPackages
environment.systemPackages = with pkgs; [
gnomeExtensions.blur-my-shell
gnomeExtensions.pop-shell
2025-05-08 19:23:55 +01:00
discord-ptb
git
2025-05-09 21:03:20 +01:00
vlc
2025-05-09 21:23:05 +01:00
jellyfin
jellyfin-web
jellyfin-ffmpeg
qbittorrent
2025-05-08 19:23:55 +01:00
];
# Steam
programs.steam = {
enable = true;
};
2025-05-09 21:23:05 +01:00
# Jellyfin service
services.jellyfin = {
enable = true;
openFirewall = true;
};
2025-05-09 21:03:20 +01:00
# Noisetorch
programs.noisetorch.enable = true;
#######################################################
2025-05-08 19:23:55 +01:00
system.stateVersion = "24.11";
}