Initial commit

This commit is contained in:
2025-10-30 18:26:18 +01:00
commit 65501e28d7
8 changed files with 1100 additions and 0 deletions

277
modules/gdm-monitors.nix Normal file
View File

@@ -0,0 +1,277 @@
{
config,
pkgs,
lib,
...
}:
let
gdmMonitorsXml = pkgs.writeText "gdm-monitor.xml" ''
<monitors version="2">
<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>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-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>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>
</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>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>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+ means to create a symbolic link (L) and create the directory if it doesn't exist (+)
"L+ /run/gdm/.config/monitors.xml - - - - ${gdmMonitorsXml}"
];
}

162
modules/packages.nix Normal file
View File

@@ -0,0 +1,162 @@
{
config,
pkgs,
lib,
...
}:
{
environment.gnome.excludePackages = with pkgs; [
decibels
evince
epiphany
geary
gnome-connections
gnome-contacts
gnome-logs
gnome-maps
gnome-music
gnome-software
gnome-system-monitor
snapshot
totem
yelp
];
environment.systemPackages = lib.flatten [
(with pkgs.gnomeExtensions; [
# thanatophobia
alphabetical-app-grid
appindicator
blur-my-shell
control-monitor-brightness-and-volume-with-ddcutil
bubblemail
color-picker
dash-to-dock
favorites-to-applications-grid
middle-click-to-close-in-overview
undecorate
user-themes
])
(with pkgs; [
abootimg
amdgpu_top
android-tools
appstream
arch-install-scripts
bibata-cursors
binwalk
brscan4
brscan5
btrfs-progs
bubblemail
bzip2
ccache
curl
czkawka
ddcutil
distrobox
docker-compose
dog
eza
ffmpeg
ffmpegthumbnailer
flat-remix-gnome
flat-remix-gtk
flatpak-xdg-utils
freecad
freerdp
fuse
fuse3
fwupd
gimp
gnome-tweaks
gnome.gvfs
gotop
gparted
gvfs
htop
i2c-tools
iftop
inkscape
iotop
killall
krita
kooha
lact
libreoffice
linux-firmware
lm_sensors
lsof
mangohud
mesa-demos
mission-center
ncdu
nil
nixfmt-rfc-style
noisetorch
ntfs3g
nvtopPackages.amd
openrgb-with-all-plugins
papirus-icon-theme
plymouth
poppler-utils
prismlauncher-unwrapped
protonup-qt
radeontop
rquickshare
scrcpy
screen
seafile-client
smartmontools
starship
sushi
swtpm
telegram-desktop
testdisk
thunderbird
tidal-hifi
tldr
tree
unrar
unzip
ventoy-full-gtk
vesktop
vkbasalt
vlc
vscode-fhs
wev
weylus
wget
which
wine
xfce.tumbler
yt-dlp
zenmonitor
zip
zram-generator
zsh-autosuggestions
zsh-completions
zsh-history-substring-search
zsh-syntax-highlighting
zulu8
zulu17
zulu23
])
];
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
];
};
}

77
modules/programs.nix Normal file
View File

@@ -0,0 +1,77 @@
{
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";
};
};
}
];
adb.enable = true;
bat.enable = true;
zsh.enable = true;
gamemode.enable = true;
firefox.enable = true;
git = {
enable = true;
lfs.enable = true;
};
nh = {
clean = {
enable = true;
extraArgs = "--keep-since 7d --keep 10";
};
enable = true;
flake = "/etc/nixos";
};
nix-ld = {
enable = true;
libraries = with pkgs; [ ];
};
# obs-studio = {
# enable = true;
# plugins = with pkgs.obs-studio-plugins; [
# obs-vaapi
# obs-vkcapture
# wlrobs
# ];
# };
steam = {
dedicatedServer.openFirewall = true;
enable = true;
extest.enable = true;
gamescopeSession.enable = true;
protontricks.enable = true;
remotePlay.openFirewall = true;
};
virt-manager.enable = true;
};
}

92
modules/services.nix Normal file
View File

@@ -0,0 +1,92 @@
{
config,
pkgs,
lib,
...
}:
{
services = {
lact.enable = true;
printing.enable = true;
flatpak = {
enable = true;
remotes = [
{
name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
];
packages = [
{
appId = "com.mattjakeman.ExtensionManager";
origin = "flathub";
}
{
appId = "com.prusa3d.PrusaSlicer";
origin = "flathub";
}
{
appId = "com.github.tchx84.Flatseal";
origin = "flathub";
}
{
appId = "org.gtk.Gtk3theme.Adwaita-dark";
origin = "flathub";
}
# {
# appId = "org.freedesktop.Platform.ffmpeg-full";
# origin = "flathub";
# }
{
appId = "org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darkest";
origin = "flathub";
}
{
appId = "com.github.iwalton3.jellyfin-media-player";
origin = "flathub";
}
# {
# appId = "com.github.tchx84.Flatseal";
# origin = "flathub";
# }
# {
# appId = "com.github.tchx84.Flatseal";
# origin = "flathub";
# }
# {
# appId = "com.github.tchx84.Flatseal";
# origin = "flathub";
# }
];
};
sshd.enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
xserver = {
enable = true;
excludePackages = with pkgs; [
xterm
];
xkb = {
layout = "cz";
variant = "";
};
};
pulseaudio.enable = false;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
hardware.openrgb.motherboard = "amd";
hardware.openrgb.enable = true;
};
}