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

View file

@ -6,7 +6,8 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
stylix.url = "github:danth/stylix"; 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"; shabitica.url = "github:lomenzel/shabitica";
actual.url = "git+https://git.xeno.science/xenofem/actual-nix.git"; actual.url = "git+https://git.xeno.science/xenofem/actual-nix.git";
nix-alien.url = "github:thiagokokada/nix-alien"; nix-alien.url = "github:thiagokokada/nix-alien";
@ -26,6 +27,9 @@
# desktop # desktop
muon = utils.mkHost ./hosts/muon/configuration.nix; muon = utils.mkHost ./hosts/muon/configuration.nix;
# laptop
muop = utils.mkHost ./hosts/muop/configuration.nix;
# vps # vps
mups = utils.mkHost ./hosts/mups/configuration.nix; 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 { monitorModule = lib.types.submodule {
options = { options = {
name = lib.mkOption { name = lib.mkOption {
@ -21,22 +22,22 @@ in {
}; };
}; };
config = let config = let
startupTargets = [ startupTargets = [
"systemd-user-sessions.service" "systemd-user-sessions.service"
"multi-user.target" "multi-user.target"
"network-online.target" "network-online.target"
]; ];
in lib.mkIf config.mods.xorg.enable { in lib.mkIf config.mods.xorg.enable {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.xkb.layout = "us"; services.xserver.xkb.layout = "us";
services.xserver.xkb.options = "caps:escape"; 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.enable = true;
services.displayManager.autoLogin.user = services.displayManager.autoLogin.user = config.mods.user.name;
config.mods.user.name;
systemd.services.display-manager.wants = startupTargets; systemd.services.display-manager.wants = startupTargets;
systemd.services.display-manager.after = startupTargets; systemd.services.display-manager.after = startupTargets;

View file

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