Add laptop host

This commit is contained in:
muon 2024-09-30 08:38:12 +00:00
parent e73f27a94c
commit 7ad646f580
8 changed files with 317 additions and 88 deletions

150
flake.lock generated
View file

@ -52,30 +52,14 @@
"type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1720809814,
"narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
"lastModified": 1725860795,
"narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
"rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
"type": "github"
},
"original": {
@ -84,38 +68,6 @@
"type": "github"
}
},
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
@ -294,11 +246,11 @@
]
},
"locked": {
"lastModified": 1726036828,
"narHash": "sha256-ZQHbpyti0jcAKnwQY1lwmooecLmSG6wX1JakQ/eZNeM=",
"lastModified": 1727383923,
"narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "8a1671642826633586d12ac3158e463c7a50a112",
"rev": "ffe2d07e771580a005e675108212597e5b367d2d",
"type": "github"
},
"original": {
@ -337,11 +289,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1725978041,
"narHash": "sha256-uqVadX5R8IWzlgAZ55lBOQZRaydw17kN5u5QM0OI3lQ=",
"lastModified": 1726398642,
"narHash": "sha256-tBM92BUtvY3vawqzl50VLY/EFhxw9LjuB/QN6QUC4ls=",
"owner": "thiagokokada",
"repo": "nix-alien",
"rev": "0ff81b3cb795a5a967488011bec4e3704fbc823d",
"rev": "399c8e50f10d9bace3a024496e5f4dee28bdfdcd",
"type": "github"
},
"original": {
@ -373,11 +325,11 @@
]
},
"locked": {
"lastModified": 1723352546,
"narHash": "sha256-WTIrvp0yV8ODd6lxAq4F7EbrPQv0gscBnyfn559c3k8=",
"lastModified": 1726370017,
"narHash": "sha256-CJOV4JiLhd++w9K+h2z00DiB4R1CCuElWzhldrXSq5w=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "ec78079a904d7d55e81a0468d764d0fffb50ac06",
"rev": "0a2fba621b6bbf06be0b4edd974236e3d2fcc1a9",
"type": "github"
},
"original": {
@ -399,11 +351,11 @@
"rev": "a1ab2a1353a38a6642fbc69f118adc08faf7dbcb",
"revCount": 628,
"type": "git",
"url": "ssh://git@codeberg.org/nix-astral/nix-minecraft.git"
"url": "https://codeberg.org/nix-astral/nix-minecraft.git"
},
"original": {
"type": "git",
"url": "ssh://git@codeberg.org/nix-astral/nix-minecraft.git"
"url": "https://codeberg.org/nix-astral/nix-minecraft.git"
}
},
"nixpkgs": {
@ -424,11 +376,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1723362943,
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
"lastModified": 1726062873,
"narHash": "sha256-IiA3jfbR7K/B5+9byVi9BZGWTD4VSbWe8VLpp9B/iYk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a58bc8ad779655e790115244571758e8de055e3d",
"rev": "4f807e8940284ad7925ebd0a0993d2a1791acb2f",
"type": "github"
},
"original": {
@ -456,11 +408,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1725983898,
"narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
"lastModified": 1727348695,
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
"type": "github"
},
"original": {
@ -536,24 +488,24 @@
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_4",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_6",
"systems": "systems_4"
"systems": "systems_4",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-tmux": "tinted-tmux"
},
"locked": {
"lastModified": 1725290973,
"narHash": "sha256-+jwXF9KI0HfvDgpsoJGvOdfOGGSKOrID1wQB79zjUbo=",
"lastModified": 1727635018,
"narHash": "sha256-WSc/MF4dUeB2UPMznXYv4LeKK/ulD4xsufdN/L5PoL4=",
"owner": "danth",
"repo": "stylix",
"rev": "ef81ad9e85e60420cc83d4642619c14b57139d33",
"rev": "0eea8bcb0f9c3c7638e7ee64f98ed9b4ec716830",
"type": "github"
},
"original": {
@ -621,6 +573,54 @@
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
}
},
"root": "root",

View file

@ -6,7 +6,8 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs";
stylix.url = "github:danth/stylix";
nix-minecraft.url = "git+ssh://git@codeberg.org/nix-astral/nix-minecraft.git";
# nix-minecraft.url = "git+ssh://git@codeberg.org/nix-astral/nix-minecraft.git";
nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git";
shabitica.url = "github:lomenzel/shabitica";
actual.url = "git+https://git.xeno.science/xenofem/actual-nix.git";
nix-alien.url = "github:thiagokokada/nix-alien";
@ -26,6 +27,9 @@
# desktop
muon = utils.mkHost ./hosts/muon/configuration.nix;
# laptop
muop = utils.mkHost ./hosts/muop/configuration.nix;
# vps
mups = utils.mkHost ./hosts/mups/configuration.nix;

View file

@ -0,0 +1,123 @@
{ config, lib, pkgs, inputs, system, ... }:
let cfg = config.mods;
in {
# Hardware
imports = [ ./hardware-configuration.nix ];
environment.systemPackages = with inputs.nix-alien.packages.${system};
[ nix-alien ];
# System
mods.user.name = "muon";
networking.hostName = "muop";
mods.home.file = ./home.nix;
# Modules
mods.desktop.enable = true;
mods.desktop.wayland.enable = false;
mods.desktop.gaming.enable = true;
mods.boot.enable = false;
mods.theme.enable = true;
mods.theme.scheme = "woodland";
mods.theme.wallpaper = ./wallpaper.png;
mods.containers.steam.enable = false;
mods.server.media.enable = false;
mods.server.astral.enable = false;
mods.server.astral.autoStart = false;
mods.docker.media.enable = false;
mods.server.sync.enable = true;
mods.tailscale.enable = false;
mods.openvpn.enable = false;
mods.wireguard.enable = false;
services.xserver.windowManager.i3.enable = true;
# Proprietary </3
mods.unfree.steam.enable = true;
mods.unfree.nvidia.enable = true;
mods.unfree.minecraft.enable = false;
services.flatpak.enable = true;
# Hardware preferences
boot = {
tmp.cleanOnBoot = true;
bootspec.enable = true;
consoleLogLevel = 0;
kernelParams =
[ "cgroup_no_v1=all" "systemd.unified_cgroup_hierarchy=yes" ];
initrd.verbose = false;
loader = {
systemd-boot.enable = true;
systemd-boot.editor = false;
efi.canTouchEfiVariables = true;
timeout = 1;
};
};
# environment.variables = {
# # GDK_SCALE = "2";
# # XCURSOR_SIZE = "24";
# };
hardware = {
opengl = {
enable = true;
driSupport32Bit = true;
extraPackages = with pkgs; [ vaapiVdpau libvdpau-va-gl ];
};
nvidia = {
open = false;
modesetting.enable = true;
nvidiaSettings = true;
forceFullCompositionPipeline = true;
powerManagement.enable = true;
prime = {
sync.enable = true;
# offload = {
# enable = true;
# enableOffloadCmd = true;
# };
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
};
pulseaudio.support32Bit = true;
};
xdg.portal = {
enable = true;
wlr.enable = false;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
## Mouse
services.libinput.mouse.accelProfile = "flat";
## Monitors
mods.monitors = {
primary = {
name = "eDP-1";
config = {
enable = true;
mode = "1920x1080";
position = "0x0";
primary = true;
rate = "60.00";
};
};
};
# Version of first install
system.stateVersion = "23.05";
}

View file

@ -0,0 +1,50 @@
# 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" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/29b32abb-ea5d-4cca-b506-3485d8df430c";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-57f71aee-059c-4ae1-8859-89cfcb21a4af".device =
"/dev/disk/by-uuid/57f71aee-059c-4ae1-8859-89cfcb21a4af";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/9094-4224";
fsType = "vfat";
};
fileSystems."/mnt/bulk" = {
device = "/dev/disk/by-uuid/a5a0a375-9dc3-43e6-9e1d-9431d502dbfa";
fsType = "ext4";
};
swapDevices = [{
device = "/var/lib/swapfile";
size = 8 * 1024;
}];
# 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.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

52
hosts/muop/home.nix Normal file
View file

@ -0,0 +1,52 @@
{ pkgs, lib, osConfig,... }:
let cfg = osConfig.mods; in {
# Modules
mods.xdg.enable = true;
mods.social.enable = true;
mods.i3.enable = true;
mods.terminal.zsh.enable = true;
mods.terminal.emulator.enable = true;
mods.terminal.development.enable = true;
mods.terminal.tools.enable = true;
mods.desktop.development.enable = true;
mods.desktop.productivity.enable = true;
mods.desktop.media.enable = true;
# Hardware preferences
## Monitors
xsession.windowManager.i3.config.workspaceOutputAssign = [{
workspace = "1";
output = "${cfg.monitors.primary.name}";
}];
services.autorandr.enable = true;
programs.autorandr = {
enable = true;
hooks.postswitch = {
"notify-i3" = "${pkgs.i3}/bin/i3-msg restart";
"set-wallpaper" = ''
${lib.getExe pkgs.feh} --bg-fill --nofehbg ${./wallpaper.png}
'';
};
profiles.default = {
fingerprint = {
"${cfg.monitors.primary.name}" = "00ffffffffffff0030e4190500000000001a01049522137803a1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c210000019222480a070381f403020350058c210000019000000fd00283c43430e010a20202020202000000002000c47ff0a3c6e1f182b6e000000001c";
};
config = {
"${cfg.monitors.primary.name}" =
cfg.monitors.primary.config;
};
};
};
# wayland.windowManager.hyprland.settings = {
# monitor = [
# "DP-2,2560x1440@144,0x480,1"
# "HDMI-A-2,1920x1080,2560x0,1,transform,3"
# ];
# input.sensitivity = -0.4;
# };
# Version of first install
home.stateVersion = "23.05";
}

BIN
hosts/muop/wallpaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

View file

@ -1,4 +1,5 @@
{ pkgs, lib, config, ... }: let
{ pkgs, lib, config, ... }:
let
monitorModule = lib.types.submodule {
options = {
name = lib.mkOption {
@ -21,22 +22,22 @@ in {
};
};
config = let
config = let
startupTargets = [
"systemd-user-sessions.service"
"multi-user.target"
"network-online.target"
];
in lib.mkIf config.mods.xorg.enable {
services.xserver.enable = true;
services.xserver.xkb.layout = "us";
services.xserver.xkb.options = "caps:escape";
services.xserver.displayManager.gdm.enable = true;
# services.xserver.displayManager.gdm.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user =
config.mods.user.name;
services.displayManager.autoLogin.user = config.mods.user.name;
systemd.services.display-manager.wants = startupTargets;
systemd.services.display-manager.after = startupTargets;

View file

@ -1,6 +1,5 @@
{ pkgs, lib, config, ... }:
let
cfg = config.mods.unfree.nvidia;
let cfg = config.mods.unfree.nvidia;
in {
options.mods.unfree.nvidia = {
enable = lib.mkEnableOption {
@ -8,7 +7,7 @@ in {
description = "enables proprietary nvidia drivers";
};
packages = lib.mkOption {
default = [ "nvidia-x11" ];
default = [ "nvidia-x11" "nvidia-settings" ];
description = "unfree packages";
};
driver = lib.mkOption {
@ -29,12 +28,12 @@ in {
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = false;
# powerManagement.enable = false;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = false;
nvidiaSettings = lib.mkDefault false;
package = config.boot.kernelPackages.nvidiaPackages."${cfg.driver}";
};
};