mirror of
https://github.com/JaxTheWolf/nixos.git
synced 2026-04-01 02:00:22 +02:00
WIP: Laptop config
This commit is contained in:
10
desktop/modules/default.nix
Normal file
10
desktop/modules/default.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./gdm-monitors.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
./services.nix
|
||||
];
|
||||
}
|
||||
300
desktop/modules/gdm-monitors.nix
Normal file
300
desktop/modules/gdm-monitors.nix
Normal 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}"
|
||||
];
|
||||
}
|
||||
41
desktop/modules/packages.nix
Normal file
41
desktop/modules/packages.nix
Normal 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
|
||||
];
|
||||
};
|
||||
}
|
||||
62
desktop/modules/programs.nix
Normal file
62
desktop/modules/programs.nix
Normal 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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
57
desktop/modules/services.nix
Normal file
57
desktop/modules/services.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user