nix: Add host polder and refractor modules

This commit is contained in:
js0ny 2025-10-21 16:14:34 +00:00
parent 1b99070718
commit 3756bbfb45
38 changed files with 284 additions and 172 deletions

View file

@ -0,0 +1,51 @@
{...}: {
imports = [
../rime.nix
../fonts.nix
];
services.pipewire = {
enable = true;
pulse.enable = true;
};
# Set your time zone.
time.timeZone = "Europe/London";
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Configure keymap in X11
services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
security.pam.services.login.enableGnomeKeyring = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
# useXkbConfig = true; # use xkb.options in tty.
# };
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
};
environment.systemPackages = with pkgs; [
wl-clipboard
];
}

View file

@ -0,0 +1,8 @@
{ pkgs, ... }:
{
services.displayManager.gdm = {
enable = true;
wayland = true;
};
}

View file

@ -0,0 +1,3 @@
{...}: {
services.displayManager.ly.enable = true;
}

View file

@ -0,0 +1,34 @@
{pkgs, ...}:
# See https://www.reddit.com/r/NixOS/comments/1kcj34p/how_to_apply_this_sddm_theme_on_nixos/
let
custom-sddm-astronaut = pkgs.sddm-astronaut.override {
embeddedTheme = "astronaut";
#themeConfig = {
# Background = "path/to/background.jpg";
# Font = "M+1 Nerd Font";
#};
};
in {
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm = {
enable = true;
extraPackages = with pkgs; [
custom-sddm-astronaut
];
theme = "sddm-astronaut-theme";
settings = {
Theme = {
Current = "sddm-astronaut-theme";
};
};
};
environment.systemPackages = with pkgs; [
custom-sddm-astronaut
kdePackages.qtmultimedia
];
}

View file

@ -0,0 +1,68 @@
{pkgs, ...}: let
fontPkgs = [
pkgs.maple-mono.NF
pkgs.sarasa-gothic
pkgs.lxgw-wenkai
pkgs.lxgw-neoxihei
pkgs.noto-fonts-cjk-sans
pkgs.noto-fonts
pkgs.noto-fonts-emoji
pkgs.nerd-fonts.jetbrains-mono
];
in {
environment.systemPackages = fontPkgs;
fonts = {
enableDefaultPackages = true;
packages = fontPkgs;
fontconfig = {
enable = true;
defaultFonts = {
monospace = [
"Maple Mono NF"
"JetBrainsMono Nerd Font"
];
serif = ["LXGW WenKai"];
sansSerif = ["LXGW Neo XiHei"];
};
};
fontDir.enable = true;
};
system.fsPackages = [pkgs.bindfs];
fileSystems = let
mkRoSymBind = path: {
device = path;
fsType = "fuse.bindfs";
options = [
"ro"
"resolve-symlinks"
"x-gvfs-hide"
];
};
aggregated = pkgs.buildEnv {
name = "system-fonts-and-icons";
paths =
fontPkgs
++ [
# Add cursor supports
pkgs.kdePackages.breeze
]; # with pkgs; [
# libsForQt5.breeze-qt5
# noto-fonts
# noto-fonts-emoji
# noto-fonts-cjk-sans
# noto-fonts-cjk-serif
# ];
pathsToLink = [
"/share/fonts"
"/share/icons"
];
};
in {
"/usr/share/icons" = mkRoSymBind "${aggregated}/share/icons";
"/usr/share/fonts" = mkRoSymBind "${aggregated}/share/fonts";
};
}

View file

@ -0,0 +1,13 @@
{pkgs, ...}: {
programs.gnupg.agent.enableSSHSupport = false;
services.gnome.gnome-keyring.enable = true;
services.gnome.gcr-ssh-agent.enable = true;
programs.seahorse.enable = true;
programs.ssh = {
enableAskPassword = true;
askPassword = "${pkgs.seahorse}/libexec/seahorse/askpass";
};
environment.systemPackages = with pkgs; [
seahorse
];
}

View file

@ -0,0 +1,13 @@
{ pkgs, ... }:
{
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
environment.systemPackages = with pkgs; [
pciutils
usbutils
smartmontools
v4l-utils
];
}

View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
powertop
];
}

View file

@ -0,0 +1,30 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
virt-manager
dnsmasq
virtiofsd
];
programs.virt-manager.enable = true;
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
# ovmf = {
# enable = true;
# packages = [
# (pkgs.OVMF.override {
# secureBoot = true;
# tpmSupport = true;
# }).fd
# ];
# };
};
};
users.users.js0ny = {
extraGroups = ["libvirtd"];
};
networking.firewall.trustedInterfaces = ["virbr0"];
virtualisation.spiceUSBRedirection.enable = true;
}

View file

@ -0,0 +1,26 @@
{pkgs, ...}: {
# environment.variables = {
# GTK_IM_MODULE = "fcitx";
# QT_IM_MODULE = "fcitx";
# XMODIFIERS = "@im=fcitx";
# INPUT_METHOD = "fcitx";
# };
i18n.inputMethod = {
enable = true;
# enabled = "fcitx5"; dep.
enableGtk2 = true;
enableGtk3 = true;
type = "fcitx5";
fcitx5 = {
waylandFrontend = true;
# plasma6Support = true;
addons = with pkgs; [
fcitx5-rime
kdePackages.fcitx5-configtool
kdePackages.fcitx5-qt
fcitx5-gtk
fcitx5-lua
];
};
};
}

View file

@ -0,0 +1,11 @@
{pkgs, ...}: {
nixpkgs.config.allowUnfree = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
fontPackages = with pkgs; [
lxgw-neoxihei
];
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, inputs, ... }:
{
virtualisation.waydroid.enable = true;
nixpkgs.overlays = [
inputs.nur.overlays.default
];
# waydroid-script: Tool to install libhoudini (arm support), magisk, ...
# usage: sudo waydroid-script
environment.systemPackages = with pkgs; [
nur.repos.ataraxiasjel.waydroid-script
waydroid-helper
];
systemd = {
packages = [ pkgs.waydroid-helper ];
services.waydroid-mount = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.waydroid-helper}/bin/waydroid-helper --start-mount";
};
};
};
}

View file

@ -0,0 +1,5 @@
{inputs, ...}: {
environment.systemPackages = [
inputs.winboat
];
}

View file

@ -0,0 +1,8 @@
# https://nixos.wiki/wiki/Wine
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
wineWowPackages.stable
winetricks
wineWowPackages.waylandFull
];
}