initial semi-working system

This commit is contained in:
uku 2023-11-05 22:49:25 +01:00
parent 0e9c2657ae
commit 95ff41cd55
Signed by: uku
GPG key ID: 7D01D7B105E77166
4 changed files with 165 additions and 44 deletions

View file

@ -1,12 +1,14 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
inputs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -14,7 +16,30 @@
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "miguel"; # Define your hostname. # apparently needed for mesa
services.xserver = {
enable = true;
videoDrivers = ["nvidia"];
displayManager.lightdm.enable = false;
};
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
hardware.nvidia = {
modesetting.enable = true;
powerManagement = {
enable = false;
finegrained = false;
};
open = false;
nvidiaSettings = false;
};
networking.hostName = "fuji"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary # Configure network proxy if necessary
@ -69,28 +94,105 @@
# services.xserver.libinput.enable = true; # services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.uku = { users.users.leo = {
isNormalUser = true; isNormalUser = true;
description = "uku"; description = "leo";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = ["networkmanager" "wheel"];
shell = pkgs.fish; shell = pkgs.fish;
packages = with pkgs; [ packages = with pkgs; [
firefox firefox
neovim neovim
git git
gnupg
pinentry
kitty kitty
chezmoi chezmoi
starship starship
waybar waybar
rofi-wayland rofi-wayland
hyprpaper
(discord.override {
withOpenASAR = true;
withVencord = true;
})
hyfetch
grim
slurp
swappy
swayidle
wl-clipboard
cliphist
libsForQt5.polkit-kde-agent
font-manager
nwg-look
(catppuccin-gtk.override {
variant = "macchiato";
accents = ["sky" "sapphire"];
})
xfce.thunar
xfce.thunar-volman
xfce.thunar-archive-plugin
jetbrains.idea-ultimate
temurin-bin-17
temurin-bin-8
gcc
gnumake
mold
sccache
rustc
cargo
pavucontrol
ungoogled-chromium
gnome.gnome-keyring
gnome.seahorse
obs-studio
mpv
ffmpeg_6
vscode
nil
nixpkgs-fmt
glfw-wayland-minecraft
(prismlauncher.override {
jdks = [temurin-bin-17];
})
shotcut
vesktop
grimblast
]; ];
}; };
programs.hyprland.enable = true; programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryFlavor = "gnome3";
};
programs.hyprland = {
enable = true;
enableNvidiaPatches = true;
};
programs.fish.enable = true; programs.fish.enable = true;
programs.command-not-found.enable = false;
programs.nix-index = {
enable = true;
enableFishIntegration = true;
};
programs.steam.enable = true;
nixpkgs.overlays = [
(final: prev: {
shotcut = prev.shotcut.overrideAttrs (old: {
version = "23.09.29";
src = prev.fetchFromGitHub {
owner = "mltframework";
repo = "shotcut";
rev = "v23.09.29";
sha256 = "1y46n5gmlayfl46l0vhg5g5dbbc0sg909mxb68sia0clkaas8xrh";
};
});
})
];
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
@ -104,7 +206,7 @@
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
iosevka iosevka
jetbrains-mono jetbrains-mono
(nerdfonts.override { fonts = [ "Iosevka" "JetBrainsMono" ]; }) (nerdfonts.override {fonts = ["Iosevka" "JetBrainsMono"];})
]; ];
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
@ -135,5 +237,4 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment? system.stateVersion = "23.05"; # Did you read the comment?
} }

View file

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1693158576, "lastModified": 1699099776,
"narHash": "sha256-aRTTXkYvhXosGx535iAFUaoFboUrZSYb1Ooih/auGp0=", "narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a999c1cc0c9eb2095729d5aa03e0d8f7ed256780", "rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -6,10 +6,12 @@
}; };
outputs = inputs: { outputs = inputs: {
nixosConfigurations.miguel = inputs.nixpkgs.lib.nixosSystem { nixosConfigurations.fuji = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [./configuration.nix]; modules = [./configuration.nix];
specialArgs = inputs; specialArgs = {inherit inputs;};
}; };
formatter.x86_64-linux = inputs.nixpkgs.legacyPackages.x86_64-linux.alejandra;
}; };
} }

View file

@ -1,36 +1,54 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/profiles/qemu-guest.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/c9838d2a-812e-4451-8ffe-2c4bd392755f"; device = "/dev/disk/by-uuid/660ff32b-308f-411a-815e-959706ec1bcb";
fsType = "ext4"; fsType = "btrfs";
options = ["subvol=@"];
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/EAC8-2405"; device = "/dev/disk/by-uuid/306D-3240";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; fileSystems."/home" = {
device = "/dev/disk/by-uuid/eb612572-5d15-407b-b691-e7486a69d33c";
fsType = "ext4";
};
fileSystems."/mnt/videos" = {
device = "/dev/disk/by-uuid/b7f70053-dda2-4084-bd92-ddeccb4b4950";
fsType = "btrfs";
};
swapDevices = [
{device = "/dev/disk/by-uuid/6ee8ec3d-3b26-4d6d-b43d-174f908fd8fe";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }