Initial commit
This commit is contained in:
commit
69d741b98b
29 changed files with 718 additions and 0 deletions
134
flake.lock
generated
Normal file
134
flake.lock
generated
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1718141734,
|
||||
"narHash": "sha256-cA+6l8ZCZ7MXGijVuY/1f55+wF/RT4PlTR9+g4bx86w=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "892f76bd0aa09a0f7f73eb41834b8a904b6d0fad",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-vscode-extensions": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1718069152,
|
||||
"narHash": "sha256-vqQxyerIHMTbkOkZ4zFKvSVrN8JEYiyqSIaoZrJ+MnA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "d582c606b45b914278be09536a87350ea09ed33e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1713805509,
|
||||
"narHash": "sha256-YgSEan4CcrjivCNO5ZNzhg7/8ViLkZ4CB/GrGBVSudo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1e1dc66fe68972a76679644a5577828b6a7e8be4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1717974879,
|
||||
"narHash": "sha256-GTO3C88+5DX171F/gVS3Qga/hOs/eRMxPFpiHq2t+D8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c7b821ba2e1e635ba5a76d299af62821cbcb09f3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nix-vscode-extensions": "nix-vscode-extensions",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
34
flake.nix
Normal file
34
flake.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
#need to put something funny in here
|
||||
#this one is so boring :/
|
||||
description = "fedfer nix flake config";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, home-manager, ... }: {
|
||||
|
||||
nixosConfigurations = {
|
||||
|
||||
fedfer-main-laptop-nixos = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hosts/main-laptop/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = false;
|
||||
home-manager.users.fedfer = import ./hosts/main-laptop/home.nix;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
6
homeManagerModules/cliPrograms/bun.nix
Normal file
6
homeManagerModules/cliPrograms/bun.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ ... }: {
|
||||
programs.bun = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
};
|
||||
}
|
||||
6
homeManagerModules/cliPrograms/fastfetch.nix
Normal file
6
homeManagerModules/cliPrograms/fastfetch.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ ... }: {
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
#todo add fastfetch config
|
||||
};
|
||||
}
|
||||
11
homeManagerModules/cliPrograms/git.nix
Normal file
11
homeManagerModules/cliPrograms/git.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ ... }: {
|
||||
#todo config
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = "85629831+veneficium42@users.noreply.github.com";
|
||||
userName = "Veneficium";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
}
|
||||
7
homeManagerModules/cliPrograms/hyfetch.nix
Normal file
7
homeManagerModules/cliPrograms/hyfetch.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ ... }: {
|
||||
imports = [ ./fastfetch.nix ];
|
||||
programs.hyfetch = {
|
||||
enable = true;
|
||||
#todo add hyfetch config
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
#todo make sure this on only if gnome is setup correctly
|
||||
nativeMessagingHosts = [ pkgs.gnome-browser-connector ];
|
||||
};
|
||||
}
|
||||
3
homeManagerModules/desktopPrograms/vesktop.nix
Normal file
3
homeManagerModules/desktopPrograms/vesktop.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = [ pkgs.vesktop ];
|
||||
}
|
||||
41
homeManagerModules/desktopPrograms/vscodium.nix
Normal file
41
homeManagerModules/desktopPrograms/vscodium.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ pkgs, ... }: {
|
||||
#The VSCoderrrrrrrr
|
||||
#codepilled nixmaxxer
|
||||
#god I love tumblr
|
||||
#tumblrpilled mememaxxer
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
mutableExtensionsDir = false;
|
||||
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-vscode.cpptools
|
||||
ms-vscode-remote.remote-ssh
|
||||
mhutchie.git-graph
|
||||
pkief.material-icon-theme
|
||||
pkief.material-product-icons
|
||||
oderwat.indent-rainbow
|
||||
bierner.markdown-emoji
|
||||
bierner.emojisense
|
||||
jnoortheen.nix-ide
|
||||
rust-lang.rust-analyzer
|
||||
];
|
||||
|
||||
userSettings = {
|
||||
"workbench.iconTheme" = "material-icon-theme";
|
||||
"workbench.productIconTheme" = "material-product-icons";
|
||||
"editor.formatOnSave" = true;
|
||||
"workbench.sideBar.location" = "right";
|
||||
"workbench.startupEditor" = "welcomePageInEmptyWorkbench";
|
||||
"nix.enableLanguageServer" = true;
|
||||
"C_Cpp.clang_format_fallbackStyle" = "LLVM";
|
||||
"editor.fontFamily" = "FiraCode Nerd Font Mono";
|
||||
"editor.fontLigatures" = true;
|
||||
"terminal.integrated.fontFamily" = "FiraCode Nerd Font";
|
||||
"terminal.integrated.fontSize" = 14;
|
||||
"terminal.integrated.fontWeight" = 500;
|
||||
};
|
||||
};
|
||||
}
|
||||
6
homeManagerModules/starship.nix
Normal file
6
homeManagerModules/starship.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ ... }: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
||||
16
homeManagerModules/zsh.nix
Normal file
16
homeManagerModules/zsh.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ ... }: {
|
||||
#todo config
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
completionInit.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"systemd"
|
||||
"bun"
|
||||
"common-aliases"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
29
hosts/main-homelab/configuration.nix
Normal file
29
hosts/main-homelab/configuration.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ config, pkgs, ... }: {
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "fedfer-main-homelab-nixos";
|
||||
|
||||
systemd.network.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nano
|
||||
lshw
|
||||
neofetch
|
||||
parted
|
||||
];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
#enable flakes
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
#DO NOT CHANGE THIS! IMPORTANT! DO NOT CHANGE THIS!
|
||||
system.stateVersion = "23.11"; #DO NOT CHANGE THIS!
|
||||
|
||||
}
|
||||
83
hosts/main-laptop/configuration.nix
Normal file
83
hosts/main-laptop/configuration.nix
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./hardware-configuration.nix
|
||||
../../nixosModules/default.nix
|
||||
];
|
||||
|
||||
settings = {
|
||||
programs.docker.enable = lib.mkForce true;
|
||||
programs.tailscale.enable = lib.mkForce true;
|
||||
|
||||
drivers = {
|
||||
printer.M2020.enable = lib.mkForce true;
|
||||
ipod.enable = lib.mkForce true;
|
||||
gpu.amd.enable = lib.mkForce true;
|
||||
};
|
||||
|
||||
gnome.enable = lib.mkForce true;
|
||||
services.printing.enable = lib.mkForce true;
|
||||
services.audio.enable = lib.mkForce true;
|
||||
};
|
||||
|
||||
#enable wayland for electron programs
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
boot.loader.systemd-boot.configurationLimit = 10;
|
||||
|
||||
#todo look further into networking options
|
||||
#could be pretty interesting
|
||||
networking.hostName = "fedfer-main-laptop-nixos";
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
#todo need to move this to modules
|
||||
services = {
|
||||
fstrim.enable = true;
|
||||
thermald.enable = true;
|
||||
libinput = {
|
||||
enable = true;
|
||||
touchpad = {
|
||||
tapping = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#remove various bloat
|
||||
services.xserver.excludePackages = with pkgs; [ xterm ];
|
||||
|
||||
hardware = {
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
};
|
||||
|
||||
#todo modularize!
|
||||
programs.xwayland.enable = true;
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nano
|
||||
lshw
|
||||
zsh
|
||||
fastfetch
|
||||
gparted
|
||||
gcc
|
||||
];
|
||||
|
||||
#enable flakes
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
system.stateVersion = "23.11"; #DO NOT CHANGE THIS!
|
||||
|
||||
}
|
||||
40
hosts/main-laptop/hardware-configuration.nix
Normal file
40
hosts/main-laptop/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-label/nixos";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-label/BOOT";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-label/swap"; }
|
||||
];
|
||||
|
||||
# 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
|
||||
# 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`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
38
hosts/main-laptop/home.nix
Normal file
38
hosts/main-laptop/home.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ pkgs, ... }: {
|
||||
|
||||
imports = [
|
||||
../../homeManagerModules/zsh.nix
|
||||
../../homeManagerModules/starship.nix
|
||||
../../homeManagerModules/desktopPrograms/essentials/firefox.nix
|
||||
|
||||
../../homeManagerModules/desktopPrograms/vscodium.nix
|
||||
../../homeManagerModules/desktopPrograms/vesktop.nix
|
||||
|
||||
../../homeManagerModules/cliPrograms/hyfetch.nix
|
||||
../../homeManagerModules/cliPrograms/bun.nix
|
||||
../../homeManagerModules/cliPrograms/git.nix
|
||||
];
|
||||
|
||||
home.username = "fedfer";
|
||||
home.homeDirectory = "/home/fedfer";
|
||||
|
||||
xdg.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
prismlauncher
|
||||
foliate
|
||||
rustup
|
||||
logseq
|
||||
python3
|
||||
impression
|
||||
chatterino2
|
||||
qbittorrent
|
||||
nil
|
||||
fira-code-nerdfont
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home.stateVersion = "23.11"; #DO NOT CHANGE
|
||||
programs.home-manager.enable = true; #DO NOT CHANGE
|
||||
}
|
||||
42
nixosModules/default.nix
Normal file
42
nixosModules/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#todo declare options to more easily activate the right modules then use those to import the correct modules in the hosts configs
|
||||
{ lib, ... }: {
|
||||
imports =
|
||||
[
|
||||
./fedfer.nix
|
||||
./drivers/samsung-printer.nix
|
||||
./drivers/ipod.nix
|
||||
./drivers/gpu/opengl.nix
|
||||
./drivers/gpu/amd.nix
|
||||
./drivers/gpu/nvidia.nix
|
||||
./drivers/gpu/disableNvidia.nix
|
||||
./services/locale.nix #todo turn into config module?
|
||||
./services/gnome.nix
|
||||
./services/pipewire.nix
|
||||
./services/printing.nix
|
||||
./programs/docker.nix
|
||||
./programs/tailscale.nix
|
||||
];
|
||||
|
||||
settings = {
|
||||
programs.docker.enable = lib.mkDefault false;
|
||||
programs.tailscale.enable = lib.mkDefault false;
|
||||
|
||||
drivers = {
|
||||
printer.M2020.enable = lib.mkDefault false;
|
||||
ipod.enable = lib.mkDefault false;
|
||||
|
||||
gpu = {
|
||||
opengl.enable = lib.mkDefault true;
|
||||
nvidia.enable = lib.mkDefault false;
|
||||
nvidia.forceDisable = lib.mkDefault true;
|
||||
amd.enable = lib.mkDefault false;
|
||||
};
|
||||
};
|
||||
|
||||
services.printing.enable = lib.mkDefault false;
|
||||
services.audio.enable = lib.mkDefault false;
|
||||
|
||||
gnome.enable = lib.mkDefault false;
|
||||
|
||||
};
|
||||
}
|
||||
11
nixosModules/drivers/gpu/amd.nix
Normal file
11
nixosModules/drivers/gpu/amd.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ lib, config, ... }: {
|
||||
|
||||
options = {
|
||||
settings.drivers.gpu.amd.enable = lib.mkEnableOption "enable AMD gpu drivers";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.drivers.gpu.amd.enable {
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
};
|
||||
}
|
||||
24
nixosModules/drivers/gpu/disableNvidia.nix
Normal file
24
nixosModules/drivers/gpu/disableNvidia.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, config, ... }: {
|
||||
|
||||
options = {
|
||||
settings.drivers.gpu.nvidia.forceDisable = lib.mkEnableOption "force disable all nvidia drivers";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.drivers.gpu.nvidia.forceDisable {
|
||||
boot.extraModprobeConfig = ''
|
||||
blacklist nouveau
|
||||
options nouveau modeset=0
|
||||
'';
|
||||
services.udev.extraRules = ''
|
||||
# Remove NVIDIA USB xHCI Host Controller devices, if present
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
# Remove NVIDIA USB Type-C UCSI devices, if present
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
# Remove NVIDIA Audio devices, if present
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
# Remove NVIDIA VGA/3D controller devices
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
'';
|
||||
boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
|
||||
};
|
||||
}
|
||||
25
nixosModules/drivers/gpu/nvidia.nix
Normal file
25
nixosModules/drivers/gpu/nvidia.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, config, ... }: {
|
||||
|
||||
options = {
|
||||
settings.drivers.gpu.nvidia.enable = lib.mkEnableOption "Enable Nvidia proprietary drivers";
|
||||
settings.drivers.gpu.nvidia.offload = lib.mkEnableOption "Enable prime offloading";
|
||||
settings.drivers.gpu.nvidia.sync = lib.mkEnableOption "Enable prime sync";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.drivers.gpu.nvidia.enable {
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
prime = {
|
||||
nvidiaBusId = "pci:1:0:0";
|
||||
amdgpuBusId = "pci:5:0:0";
|
||||
};
|
||||
prime.offload = lib.mkIf config.settings.drivers.gpu.nvidia.offload {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
prime.sync.enable = lib.mkIf config.settings.drivers.gpu.nvidia.sync true;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
13
nixosModules/drivers/gpu/opengl.nix
Normal file
13
nixosModules/drivers/gpu/opengl.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ config, lib, ... }: {
|
||||
options = {
|
||||
settings.drivers.gpu.opengl.enable = lib.mkEnableOption "enable OpenGL hardware support";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.drivers.gpu.opengl.enable {
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
15
nixosModules/drivers/ipod.nix
Normal file
15
nixosModules/drivers/ipod.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ lib, config, pkgs, ... }: {
|
||||
|
||||
options = {
|
||||
settings.drivers.ipod.enable = lib.mkEnableOption "Enable necessary software for ipod communication";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.drivers.ipod.enable {
|
||||
services.usbmuxd.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
libimobiledevice
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
10
nixosModules/drivers/samsung-printer.nix
Normal file
10
nixosModules/drivers/samsung-printer.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ lib, config, pkgs, ... }: {
|
||||
#use driver compatible with samsung M2020 printer
|
||||
options = {
|
||||
settings.drivers.printer.M2020.enable = lib.mkEnableOption "use the appropriate driver for the samsung M2020 printer";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.drivers.printer.M2020.enable {
|
||||
services.printing.drivers = [ pkgs.samsung-unified-linux-driver_1_00_37 ];
|
||||
};
|
||||
}
|
||||
9
nixosModules/fedfer.nix
Normal file
9
nixosModules/fedfer.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#need to move stuff to home-manager
|
||||
{ pkgs, ... }: {
|
||||
users.users.fedfer = {
|
||||
isNormalUser = true;
|
||||
description = "FedFer";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
}
|
||||
10
nixosModules/programs/docker.nix
Normal file
10
nixosModules/programs/docker.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ lib, config, ... }: {
|
||||
#todo look further into virt options
|
||||
options = {
|
||||
settings.programs.docker.enable = lib.mkEnableOption "enables docker";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.programs.docker.enable {
|
||||
virtualisation.docker.enable = true;
|
||||
};
|
||||
}
|
||||
9
nixosModules/programs/tailscale.nix
Normal file
9
nixosModules/programs/tailscale.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ config, lib, ... }: {
|
||||
options = {
|
||||
settings.programs.tailscale.enable = lib.mkEnableOption "enable tailscale";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.programs.tailscale.enable {
|
||||
services.tailscale.enable = true;
|
||||
};
|
||||
}
|
||||
26
nixosModules/services/gnome.nix
Normal file
26
nixosModules/services/gnome.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
options = {
|
||||
settings.gnome.enable = lib.mkEnableOption "enable gnome de";
|
||||
};
|
||||
|
||||
#todo make this more configurable
|
||||
config = lib.mkIf config.settings.gnome.enable {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.gnome.gnome-tweaks ];
|
||||
|
||||
#enable browser connector for installing extensions
|
||||
services.gnome.gnome-browser-connector.enable = true;
|
||||
|
||||
# Gnome enables pulse by default smh
|
||||
# make sure to have PIPEWIRE enabled!
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
# remove various bloat
|
||||
environment.gnome.excludePackages = with pkgs.gnome; [ epiphany gnome-contacts gnome-maps gnome-music gnome-weather totem yelp pkgs.gnome-tour ];
|
||||
};
|
||||
}
|
||||
24
nixosModules/services/locale.nix
Normal file
24
nixosModules/services/locale.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ ... }: {
|
||||
time.timeZone = "Europe/Rome";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "it_IT.UTF-8";
|
||||
LC_IDENTIFICATION = "it_IT.UTF-8";
|
||||
LC_MEASUREMENT = "it_IT.UTF-8";
|
||||
LC_MONETARY = "it_IT.UTF-8";
|
||||
LC_NAME = "it_IT.UTF-8";
|
||||
LC_NUMERIC = "it_IT.UTF-8";
|
||||
LC_PAPER = "it_IT.UTF-8";
|
||||
LC_TELEPHONE = "it_IT.UTF-8";
|
||||
LC_TIME = "it_IT.UTF-8";
|
||||
};
|
||||
|
||||
console.keyMap = "it";
|
||||
|
||||
services.xserver.xkb = {
|
||||
layout = "it";
|
||||
variant = "";
|
||||
};
|
||||
}
|
||||
20
nixosModules/services/pipewire.nix
Normal file
20
nixosModules/services/pipewire.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, ... }: {
|
||||
options = {
|
||||
settings.services.audio.enable = lib.mkEnableOption "enable sound through pipewire and its compat layers";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.services.audio.enable {
|
||||
sound.enable = true;
|
||||
|
||||
#enable RealtimeKit for realtime audio ( req by PulseAudio )
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
19
nixosModules/services/printing.nix
Normal file
19
nixosModules/services/printing.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ config, lib, ... }: {
|
||||
options = {
|
||||
settings.services.printing.enable = lib.mkEnableOption "enable printing";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.settings.services.printing.enable {
|
||||
services = {
|
||||
printing = {
|
||||
enable = true;
|
||||
};
|
||||
#todo make this also configurable maybe a seperate module?
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue