Thinkstation
--wip-- [skip ci]
This commit is contained in:
parent
6ef1b3a45f
commit
16908948c6
4 changed files with 318 additions and 0 deletions
15
flake.nix
15
flake.nix
|
|
@ -333,6 +333,21 @@
|
|||
}];
|
||||
};
|
||||
|
||||
thinkstation = inputs.nixpkgs-u.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = commonModules ++ [
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-intel
|
||||
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
||||
./instances/thinkstation/hardware-configuration.nix
|
||||
./instances/thinkstation/configuration.nix
|
||||
|
||||
./modules/nixos/server
|
||||
./modules/nixos/steam.nix
|
||||
] ++ homeManagerUModules ++ [{
|
||||
home-manager.users.bertof = import ./instances/thinkstation/hm.nix;
|
||||
}];
|
||||
};
|
||||
|
||||
heimdall = inputs.nixpkgs-u.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = commonModules ++ [
|
||||
|
|
|
|||
112
instances/thinkstation/configuration.nix
Normal file
112
instances/thinkstation/configuration.nix
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
hosts = import ../../hosts.nix;
|
||||
in
|
||||
{
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
# kernelParams = [ ];
|
||||
initrd.checkJournalingFS = true; # Use same ACPI identifier as Dell Ubuntu
|
||||
loader = {
|
||||
systemd-boot = { enable = true; editor = false; };
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
console = { font = "Lat2-Terminus16"; keyMap = "it"; };
|
||||
|
||||
i18n.defaultLocale = "it_IT.UTF-8";
|
||||
|
||||
hardware = {
|
||||
xpadneo.enable = true;
|
||||
enableAllFirmware = true;
|
||||
enableRedistributableFirmware = true;
|
||||
bluetooth = { enable = true; package = pkgs.bluez-experimental; };
|
||||
cpu.intel.updateMicrocode = true;
|
||||
nvidia.open = false;
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = [ pkgs.intel-media-driver ];
|
||||
extraPackages32 = [ pkgs.pkgsi686Linux.intel-media-driver ];
|
||||
};
|
||||
nvidia-container-toolkit.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "thinkstation";
|
||||
networkmanager.enable = true;
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowPing = true;
|
||||
allowedTCPPorts = [
|
||||
# 445 # SAMBA
|
||||
# 139 # SAMBA
|
||||
# 5357 # SAMBA-WSDD
|
||||
# 8123 # HOME ASSISTANT
|
||||
# 8384 # SYNCTHING
|
||||
# 8385 # SYNCTHING
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
# 137 # SYNCTHING
|
||||
# 138 # SYNCTHING
|
||||
3702 # SAMBA-WSDD
|
||||
];
|
||||
extraCommands = "iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns";
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
gamemode = {
|
||||
enable = true;
|
||||
settings = {
|
||||
custom = {
|
||||
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
|
||||
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
|
||||
};
|
||||
};
|
||||
};
|
||||
gamescope = { enable = true; capSysNice = true; };
|
||||
steam.gamescopeSession.enable = true;
|
||||
};
|
||||
environment.systemPackages = [ pkgs.gnome-tweaks ];
|
||||
services = {
|
||||
avahi = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
nssmdns4 = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
domain = true;
|
||||
userServices = true;
|
||||
workstation = true;
|
||||
};
|
||||
extraServiceFiles = {
|
||||
ssh = "${pkgs.avahi}/etc/avahi/services/ssh.service";
|
||||
};
|
||||
};
|
||||
blueman.enable = true;
|
||||
xserver = {
|
||||
displayManager.gdm = { enable = true; autoSuspend = false; };
|
||||
desktopManager.gnome.enable = true;
|
||||
};
|
||||
# logind.lidSwitch = "ignore";
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
alsa = { enable = true; support32Bit = true; };
|
||||
};
|
||||
smartd.enable = true;
|
||||
thermald.enable = true;
|
||||
xserver.videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
time.timeZone = "Europe/Rome";
|
||||
|
||||
zramSwap.enable = true;
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
44
instances/thinkstation/hardware-configuration.nix
Normal file
44
instances/thinkstation/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# 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, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "thunderbolt" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/01bf7273-414e-48a4-ae24-ca0c5b27debd";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/DA9C-3241";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.tailscale0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.ztmjfdwjkp.useDHCP = lib.mkDefault true;
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
147
instances/thinkstation/hm.nix
Normal file
147
instances/thinkstation/hm.nix
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home = {
|
||||
language.base = "it_IT.UTF-8";
|
||||
keyboard = {
|
||||
layout = "it,us,us";
|
||||
variant = ",,colemak";
|
||||
options = [
|
||||
"terminate:ctrl_alt_bksp"
|
||||
"compose:rctrl"
|
||||
"grp:menu_toggle"
|
||||
];
|
||||
};
|
||||
packages = (builtins.attrValues {
|
||||
# inherit (pkgs)
|
||||
# # element-desktop # matrix client
|
||||
# # evolution
|
||||
# # freecad
|
||||
# # krita
|
||||
# # minecraft
|
||||
# # mycrypto
|
||||
# # pcmanfm
|
||||
# # retroarchFull
|
||||
# # shotwell
|
||||
# # signal-desktop
|
||||
# # slack
|
||||
# # wineFull
|
||||
# authenticator
|
||||
# brave
|
||||
# discord
|
||||
# droidcam
|
||||
# eog
|
||||
# evince
|
||||
# file-roller
|
||||
# gallery-dl
|
||||
# gnome-font-viewer
|
||||
# gnome-screenshot
|
||||
# gnome-system-monitor
|
||||
# gucharmap
|
||||
# inkscape
|
||||
# keyboard-switch
|
||||
# openvpn
|
||||
# p7zip
|
||||
# pavucontrol
|
||||
# procps
|
||||
# spotify
|
||||
# tdesktop
|
||||
# thunderbird
|
||||
# transmission_4
|
||||
# wireguard-tools
|
||||
# xournalpp
|
||||
# ;
|
||||
}) ++ [ pkgs.kitty.terminfo ];
|
||||
};
|
||||
|
||||
|
||||
# services.gnome-keyring.enable = true;
|
||||
|
||||
|
||||
# xsession = {
|
||||
# enable = true;
|
||||
# numlock.enable = true;
|
||||
# initExtra = ''
|
||||
# ## Touchpad
|
||||
# ${pkgs.xorg.xinput}/bin/xinput set-prop 'DELL0824:00 06CB:7E92 Touchpad' 'libinput Natural Scrolling Enabled' 1
|
||||
# ${pkgs.xorg.xinput}/bin/xinput set-prop 'DELL0824:00 06CB:7E92 Touchpad' 'libinput Tapping Enabled' 1
|
||||
# ${pkgs.xorg.xinput}/bin/xinput set-prop 'DELL0824:00 06CB:7E92 Touchpad' 'libinput Disable While Typing Enabled' 1
|
||||
# '';
|
||||
# };
|
||||
|
||||
imports = [
|
||||
../../modules/hm/__basic.nix
|
||||
|
||||
# ../../modules/hm/development/cpp.nix
|
||||
# ../../modules/hm/development/data.nix
|
||||
# # ../../modules/hm/development/database.nix
|
||||
# ../../modules/hm/development/docker.nix
|
||||
# ../../modules/hm/development/go.nix
|
||||
# ../../modules/hm/development/javascript.nix
|
||||
# ../../modules/hm/development/kubernetes.nix
|
||||
# ../../modules/hm/development/latex.nix
|
||||
# ../../modules/hm/development/markdown.nix
|
||||
# ../../modules/hm/development/nix.nix
|
||||
# ../../modules/hm/development/python.nix
|
||||
# ../../modules/hm/development/rust.nix
|
||||
# ../../modules/hm/development/web.nix
|
||||
|
||||
# # ../../modules/hm/alacritty.nix
|
||||
# ../../modules/hm/autorandr.nix
|
||||
# ../../modules/hm/biblio.nix
|
||||
# # ../../modules/hm/bitwarden.nix
|
||||
# # ../../modules/hm/blender.nix
|
||||
# # ../../modules/hm/carapace.nix
|
||||
# # ../../modules/hm/dwarf-fortress.nix
|
||||
# ../../modules/hm/easyeffects.nix
|
||||
# ../../modules/hm/firefox.nix
|
||||
# # ../../modules/hm/vivaldi.nix
|
||||
# # ../../modules/hm/fonts.nix
|
||||
# # ../../modules/hm/gnome_shell.nix
|
||||
# # ../../modules/hm/grobi.nix
|
||||
# ../../modules/hm/gtk_theme.nix
|
||||
# ../../modules/hm/heif.nix
|
||||
# ../../modules/hm/helix.nix
|
||||
# ../../modules/hm/jellyfin-player.nix
|
||||
# # ../../modules/hm/joystickwake.nix
|
||||
# # ../../modules/hm/kakoune.nix
|
||||
# ../../modules/hm/kdeconnect.nix
|
||||
# # ../../modules/hm/keepassxc.nix
|
||||
# # ../../modules/hm/kicad.nix
|
||||
# ../../modules/hm/kitty.nix
|
||||
# ../../modules/hm/libinput-gestures.nix
|
||||
# # ../../modules/hm/lutris.nix
|
||||
# ../../modules/hm/mangohud.nix
|
||||
# ../../modules/hm/megasync.nix
|
||||
# ../../modules/hm/mpv.nix
|
||||
# # ../../modules/hm/nautilus.nix
|
||||
# ../../modules/hm/ncspot.nix
|
||||
# ../../modules/hm/nix-index.nix
|
||||
# ../../modules/hm/noti.nix
|
||||
# ../../modules/hm/nushell.nix
|
||||
# ../../modules/hm/obs-studio.nix
|
||||
# ../../modules/hm/office.nix
|
||||
# ../../modules/hm/pass.nix
|
||||
# ../../modules/hm/pro_audio.nix
|
||||
# # ../../modules/hm/pycharm.nix
|
||||
# ../../modules/hm/rclone-mount.nix
|
||||
# ../../modules/hm/research.nix
|
||||
# # ../../modules/hm/rofi.nix
|
||||
# # ../../modules/hm/screen_locker.nix
|
||||
# # ../../modules/hm/security.nix
|
||||
# # ../../modules/hm/spotifyd.nix
|
||||
# ../../modules/hm/syncthing.nix
|
||||
# # ../../modules/hm/thunar.nix
|
||||
# # ../../modules/hm/twmn.nix
|
||||
# # ../../modules/hm/update_background.nix
|
||||
# ../../modules/hm/vim.nix
|
||||
# ../../modules/hm/virtualization.nix
|
||||
# ../../modules/hm/vscode.nix
|
||||
# ../../modules/hm/webapp.nix
|
||||
# ../../modules/hm/xresources.nix
|
||||
# ../../modules/hm/yazi.nix
|
||||
# ../../modules/hm/zathura.nix
|
||||
# ../../modules/hm/zellij.nix
|
||||
];
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue