Add initial legacy configuration
This commit is contained in:
parent
febfe1d970
commit
db07652d99
64 changed files with 3287 additions and 13 deletions
15
nixos-modules/desktop/default.nix
Normal file
15
nixos-modules/desktop/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./desktop-environment.nix
|
||||
./greeter.nix
|
||||
./hardware.nix
|
||||
./office-suite.nix
|
||||
./security.nix
|
||||
./video.nix
|
||||
./llm.nix
|
||||
];
|
||||
}
|
81
nixos-modules/desktop/desktop-environment.nix
Normal file
81
nixos-modules/desktop/desktop-environment.nix
Normal 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 ];
|
||||
};
|
||||
}
|
35
nixos-modules/desktop/greeter.nix
Normal file
35
nixos-modules/desktop/greeter.nix
Normal 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;
|
||||
};
|
||||
}
|
60
nixos-modules/desktop/hardware.nix
Normal file
60
nixos-modules/desktop/hardware.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
10
nixos-modules/desktop/llm.nix
Normal file
10
nixos-modules/desktop/llm.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
services.ollama.enable = true;
|
||||
|
||||
services.nextjs-ollama-llm-ui = {
|
||||
enable = true;
|
||||
port = 7001;
|
||||
};
|
||||
}
|
180
nixos-modules/desktop/office-suite.nix
Normal file
180
nixos-modules/desktop/office-suite.nix
Normal 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 *`
|
||||
}
|
13
nixos-modules/desktop/security.nix
Normal file
13
nixos-modules/desktop/security.nix
Normal 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" ];
|
||||
};
|
||||
}
|
10
nixos-modules/desktop/video.nix
Normal file
10
nixos-modules/desktop/video.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
#boot.kernelModules = [ "v4l2loopback" ];
|
||||
#boot.extraModulePackages = [ pkgs.linuxPackages_latest.v4l2loopback ];
|
||||
|
||||
programs.steam.enable = true;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue