Add initial legacy configuration

This commit is contained in:
Fabian Hauser 2025-02-22 20:27:25 +02:00
parent febfe1d970
commit db07652d99
64 changed files with 3287 additions and 13 deletions

View file

@ -0,0 +1,15 @@
{
...
}:
{
imports = [
./desktop-environment.nix
./greeter.nix
./hardware.nix
./office-suite.nix
./security.nix
./video.nix
./llm.nix
];
}

View file

@ -0,0 +1,81 @@
{
pkgs,
lib,
...
}:
let
mkDefault = lib.mkDefault;
in
{
environment.systemPackages = with pkgs; [
freetype
lxappearance
sound-theme-freedesktop
qt5.qtwayland # Required for qt applications
];
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.sessionVariables.DO_NOT_TRACK = "1";
programs = {
gnome-terminal.enable = false;
evolution = {
enable = true;
#plugins = [ pkgs.evolution-ews ];
};
geary.enable = false;
light.enable = true;
dconf.enable = true;
sway.enable = true;
};
services.gnome = {
# TODO: Do this manually and not all at once.
core-utilities.enable = true;
core-os-services.enable = false;
gnome-keyring.enable = true;
evolution-data-server.enable = true;
gnome-online-accounts.enable = true;
gnome-remote-desktop.enable = true;
sushi.enable = false;
};
##########
# gnome.core-os-services excerpt
security.polkit.enable = true;
services.power-profiles-daemon.enable = false; # TODO: Remove
# Explicitly enabled since GNOME will be severely broken without these.
xdg.mime.enable = true;
xdg.icons.enable = true;
# Harmonize Qt5 application style and also make them use the portal for file chooser dialog.
qt = {
enable = mkDefault true;
platformTheme = mkDefault "gnome";
style = mkDefault "adwaita";
};
# Needed for themes and backgrounds
environment.pathsToLink = [
"/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173
];
# GVFS
services.gvfs.enable = true;
# Flatpak
services.flatpak.enable = true;
# Portals
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
}

View file

@ -0,0 +1,35 @@
{
...
}:
{
services.xserver.windowManager.i3.enable = false;
services.displayManager = {
defaultSession = "sway";
};
# Enable touchpad support.
services.libinput.enable = true;
services.xserver = {
enable = true;
desktopManager.xterm.enable = false;
displayManager = {
startx.enable = false;
lightdm.enable = false;
gdm = {
enable = true;
wayland = true;
};
};
# TODO: Extract i18n
xkb = {
layout = "ch,de";
options = "eurosign:e";
};
updateDbusEnvironment = true;
};
}

View file

@ -0,0 +1,60 @@
{
config,
pkgs,
...
}:
{
services.blueman.enable = true;
# Enable sound.
nixpkgs.config.pulseaudio = true;
services.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
security.rtkit.enable = true;
hardware = {
graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
intel-compute-runtime
intel-media-driver
libvdpau-va-gl
vaapiVdpau
];
};
acpilight.enable = true;
bluetooth = {
enable = true;
package = pkgs.bluez;
};
logitech.wireless = {
enable = true;
enableGraphical = true;
};
};
services.hardware.bolt.enable = true;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
programs.light.enable = true;
programs.adb.enable = true;
services.fprintd = {
enable = true;
package = pkgs.fprintd-tod;
tod = {
enable = true;
driver = pkgs.libfprint-2-tod1-vfs0090;
};
};
}

View file

@ -0,0 +1,10 @@
{ ... }:
{
services.ollama.enable = true;
services.nextjs-ollama-llm-ui = {
enable = true;
port = 7001;
};
}

View file

@ -0,0 +1,180 @@
{
pkgs,
...
}:
{
# Hamster
environment.systemPackages = with pkgs; [
hamster
];
programs.hamster.enable = true;
# Fonts
fonts.packages = with pkgs; [
# google-fonts # Breaks fwesome
lalezar-fonts
nahid-fonts
nika-fonts
agave
aileron
amiri
andagii
#andika # Breaks Font-Awesome
ankacoder
ankacoder-condensed
aurulent-sans
caladea
cantarell-fonts
carlito
cascadia-code
#charis-sil # Breaks Font-Awesome
cherry
cnstrokeorder
comfortaa
comic-neue
comic-relief
# corefonts # breaks fawesome
culmus
clearlyU
creep
crimson
dejavu_fonts
dina-font
#doulos-sil # Breaks Font-Awesome
cabin
camingo-code
cooper-hewitt
#d2coding
dosis
dosemu_fonts
eb-garamond
eunomia
ferrum
# fixedsys-excelsior # Breaks fawesome
emacs-all-the-icons-fonts
emojione
encode-sans
envypn-font
fantasque-sans-mono
fira
fira-code
fira-code-symbols
fira-mono
#gentium
#gentium-book-basic
#gohufont
#go-font
#gubbi-font
#gyre-fonts
#hack-font
##helvetica-neue-lt-std
#hanazono
#hermit
#hyperscrypt-font
#ia-writer-duospace
#inconsolata
#inconsolata-lgc
##input-fonts
#inriafonts
#iosevka
#iosevka-bin
#ipafont
#ipaexfont
#iwona
#jetbrains-mono
#jost
#kanji-stroke-order-font
#latinmodern-math
#lato
#league-of-moveable-type
##liberation-sans-narrow
#libertine
#libertinus
#libre-baskerville
#libre-bodoni
#libre-caslon
#libre-franklin
#lmmath
#lmodern
#luculent
#marathi-cursive
#manrope
#material-design-icons
#material-icons
#meslo-lg
#migmix
#migu
#medio
#mno16
#monoid
#mononoki
#montserrat
#mph_2b_damase
#mplus-outline-fonts
#mro-unicode
#myrica
#nafees
#nanum-gothic-coding
#national-park-typeface
#office-code-pro
#oldstandard
#oldsindhi
#open-dyslexic
open-sans
orbitron
overpass
oxygenfonts
#pecita
#paratype-pt-mono # Breaks fawseome
#paratype-pt-sans # Breaks fawseome
#paratype-pt-serif # Breaks fawseome
penna
poly
powerline-fonts
profont
proggyfonts
public-sans
redhat-official-fonts
route159
#sarasa-gothic
seshat
scheherazade
#signwriting
stix-otf
stix-two
quattrocento
quattrocento-sans
raleway
recursive
rhodium-libre
roboto
roboto-mono
roboto-slab
hasklig
siji
source-code-pro
source-sans-pro
source-serif-pro
tamsyn
theano
tenderness
terminus_font
tipa
twemoji-color-font
twitter-color-emoji
ubuntu_font_family
#ucs-fonts
ultimate-oldschool-pc-font-pack
victor-mono
work-sans
wqy_microhei
wqy_zenhei
xits-math
xkcd-font
yanone-kaffeesatz
norwester-font
font-awesome
]; # Generated with `cd /home/fhauser/projects/nixos/nixpkgs/pkgs/data/fonts; echo *`
}

View file

@ -0,0 +1,13 @@
{
...
}:
{
services.pcscd.enable = true;
# Make pam accept both password and fingerprint
security.pam.services.swaylock.rules.auth = {
fprintd.order = 11601;
unix.args = [ "nullok" ];
};
}

View file

@ -0,0 +1,10 @@
{
...
}:
{
#boot.kernelModules = [ "v4l2loopback" ];
#boot.extraModulePackages = [ pkgs.linuxPackages_latest.v4l2loopback ];
programs.steam.enable = true;
}