Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save OllionDavidCunliffe/6b1e77ac59d350e06c4184ecf70aecf2 to your computer and use it in GitHub Desktop.
Save OllionDavidCunliffe/6b1e77ac59d350e06c4184ecf70aecf2 to your computer and use it in GitHub Desktop.
nixos
{ config, pkgs, ... }:
{
imports = [
# Load the minimal NixOS configuration.
./hardware-configuration.nix
];
# Enable the NVIDIA driver with your GPU
boot.extraModulePackages = [ config.boot.kernelPackages.nvidiaPackages.latest ];
# Plasma 6 setup
services.xserver.enable = true;
services.xserver.layout = "us";
services.xserver.xkbOptions = "eurosign:e";
services.xserver.libinput.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# Enable Nvidia hardware acceleration
services.xserver.videoDrivers = [ "nvidia" ];
hardware.opengl.enable = true;
hardware.nvidia.modesetting.enable = true;
# Install Plasma 6
environment.systemPackages = with pkgs; [
plasma-workspace
plasma-desktop
konsole # Terminal for Plasma
tmux
vim
go # Golang
python3
rustc
cargo
awscli # AWS CLI
google-cloud-sdk # Google CLI
1password
firefox
];
# Enable some basic services and optimizations
networking.networkmanager.enable = true;
services.openssh.enable = true;
services.avahi.enable = true;
# Set the default shell
programs.bash.enable = true;
# Ensure the system remains stable during Plasma 6 development
environment.variables = {
QT_QPA_PLATFORMTHEME = "qt5ct";
};
# User configuration
users.users.yourUserName = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
packages = with pkgs; [
go
python3
tmux
vim
awscli
google-cloud-sdk
rustc
cargo
];
};
# Allow unfree packages (NVIDIA driver is unfree)
nixpkgs.config.allowUnfree = true;
system.stateVersion = "23.05"; # NixOS version
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment