WIP: Laptop config

This commit is contained in:
2026-02-17 20:02:25 +01:00
parent 1d00288f34
commit bfe2094a5f
27 changed files with 467 additions and 190 deletions

View File

@@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./gdm-monitors.nix
./packages.nix
./programs.nix
./services.nix
];
}

View File

@@ -0,0 +1,300 @@
{
config,
pkgs,
lib,
...
}:
let
gdmMonitorsXml = pkgs.writeText "gdm-monitor.xml" ''
<monitors version="2">
<configuration>
<layoutmode>logical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>HPN</vendor>
<product>HP 24fh</product>
<serial>3CM8340KRZ </serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>74.973</rate>
<ratemode>variable</ratemode>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>unknown</vendor>
<product>unknown</product>
<serial>unknown</serial>
</monitorspec>
<mode>
<width>640</width>
<height>480</height>
<rate>59.940</rate>
</mode>
<underscanning>yes</underscanning>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-A-1</connector>
<vendor>unknown</vendor>
<product>unknown</product>
<serial>unknown</serial>
</monitorspec>
<mode>
<width>640</width>
<height>480</height>
<rate>59.940</rate>
</mode>
<underscanning>yes</underscanning>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-2</connector>
<vendor>unknown</vendor>
<product>unknown</product>
<serial>unknown</serial>
</monitorspec>
<mode>
<width>640</width>
<height>480</height>
<rate>59.940</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>logical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>SAM</vendor>
<product>SMB2240W</product>
<serial>H9FZ915793</serial>
</monitorspec>
<mode>
<width>1680</width>
<height>1050</height>
<rate>59.883</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>HPN</vendor>
<product>HP 24fh</product>
<serial>3CM8340KRZ </serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
</monitor>
</logicalmonitor>
<logicalmonitor>
<x>102</x>
<y>1080</y>
<scale>1</scale>
<monitor>
<monitorspec>
<connector>Meta-0</connector>
<vendor>MetaVendor</vendor>
<product>Virtual remote monitor</product>
<serial>0x000001</serial>
</monitorspec>
<mode>
<width>1728</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>HPN</vendor>
<product>HP 24fh</product>
<serial>3CM8340KRZ </serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>74.973</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-A-1</connector>
<vendor>SAM</vendor>
<product>SMB2240W</product>
<serial>H9FZ915793</serial>
</monitorspec>
<mode>
<width>1680</width>
<height>1050</height>
<rate>59.883</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>logical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>HPN</vendor>
<product>HP 24fh</product>
<serial>3CM8340KRZ </serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>74.973</rate>
<ratemode>variable</ratemode>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>SAM</vendor>
<product>SMB2240W</product>
<serial>H9FZ915793</serial>
</monitorspec>
<mode>
<width>1680</width>
<height>1050</height>
<rate>59.883</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>SAM</vendor>
<product>SMB2240W</product>
<serial>H9FZ915793</serial>
</monitorspec>
<mode>
<width>1680</width>
<height>1050</height>
<rate>59.883</rate>
</mode>
</monitor>
</logicalmonitor>
<logicalmonitor>
<x>0</x>
<y>1050</y>
<scale>1</scale>
<monitor>
<monitorspec>
<connector>Meta-0</connector>
<vendor>MetaVendor</vendor>
<product>Virtual remote monitor</product>
<serial>0x000001</serial>
</monitorspec>
<mode>
<width>1728</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
</monitors>
'';
in
{
systemd.tmpfiles.rules = [
"L+ /run/gdm/.config/monitors.xml - - - - ${gdmMonitorsXml}"
];
}

View File

@@ -0,0 +1,41 @@
{
config,
pkgs,
lib,
czkawka-master,
solaar-master,
fet,
...
}:
{
environment.systemPackages = with pkgs; [
amdgpu_top
arch-install-scripts
ccache
czkawka-master.packages.${pkgs.stdenv.hostPlatform.system}.default
fahclient
lact
nvtopPackages.amd
radeontop
rocmPackages.rocm-smi
rocmPackages.rocminfo
swtpm
zenmonitor
];
fonts = {
packages = with pkgs; [
fira-code
font-awesome
nerd-fonts.fira-code
nerd-fonts.fira-mono
nerd-fonts.symbols-only
nerd-fonts.ubuntu-mono
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
ubuntu-classic
];
};
}

View File

@@ -0,0 +1,62 @@
{
config,
pkgs,
lib,
...
}:
{
programs = {
dconf.profiles.gdm.databases = [
{
settings = {
"org/gnome/desktop/peripherals/keyboard" = {
numlock-state = true;
remember-numlock-state = true;
};
"org/gnome/desktop/peripherals/mouse" = {
speed-profile = "flat";
speed = -0.5;
};
"org/gnome/desktop/peripherals/touchpad" = {
speed-profile = "flat";
speed = -0.5;
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
gtk-theme = "Flat-Remix-GTK-Red-Darkest";
icon-theme = "Papirus-Dark";
cursor-theme = "Bibata-Modern-Classic";
clock-format = "24h";
};
"org/gnome/shell/portal" = {
color-scheme = "prefer-dark";
};
};
}
];
virt-manager.enable = true;
ccache = {
enable = true;
cacheDir = "/media/data/.ccache";
};
obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
obs-vaapi
obs-gstreamer
obs-vkcapture
];
};
};
}

View File

@@ -0,0 +1,57 @@
{
config,
pkgs,
lib,
...
}:
{
environment.systemPackages = with pkgs; [
zram-generator
];
services = {
lact.enable = true;
hardware.openrgb = {
enable = true;
motherboard = "amd";
package = pkgs.openrgb-with-all-plugins;
};
udev.extraRules = ''
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="39c48cb1-233c-4921-a614-3a193574df67", ENV{UDISKS_IGNORE}="1"
'';
btrbk.instances = {
daily_ssd = {
onCalendar = "daily";
settings = {
timestamp_format = "long";
snapshot_preserve = "7d";
volume."/" = {
subvolume = "home";
snapshot_dir = "home/.snapshots/daily";
};
};
};
weekly_hdd = {
onCalendar = "weekly";
settings = {
timestamp_format = "long";
snapshot_preserve_min = "latest";
snapshot_preserve = "no";
target_preserve = "20w";
volume."/" = {
subvolume = "home";
snapshot_dir = "home/.snapshots/weekly";
target = "/media/home-backup";
};
};
};
};
};
}