nix-configs/instances/theseus/configuration.nix
2025-09-07 00:11:16 +02:00

138 lines
3.5 KiB
Nix

{
config,
pkgs,
inputs,
lib,
...
}:
{
nixpkgs.system = "x86_64-linux";
imports = [ ./hardware-configuration.nix ];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
services.fido2-hid-bridge.enable = true;
home-manager.users.${config.xyno.system.user.name} = (
{ ... }:
{
xyno.git.enable = true;
xyno.borgmatic.enable = true;
home.packages = [
# work
# (pkgs.unstable.jetbrains.rider.override { jdk = pkgs.unstable.openjdk21; })
pkgs.unstable.jetbrains.rider
pkgs.android-studio
# (pkgs.unstable.android-studio.override { jdk = pkgs.unstable.openjdk21; })
(pkgs.firefox-devedition.overrideAttrs (super: self: { meta.priority = 1; }))
];
services.flatpak.update.auto.enable = true;
services.flatpak = {
enable = true;
packages = [
"com.unicornsonlsd.finamp"
# "io.github.softfever.OrcaSlicer"
"io.anytype.anytype"
"org.bionus.Grabber"
"org.getmonero.Monero"
{
appId = "org.gimp.GIMP";
origin = "flathub-beta";
}
"org.kicad.KiCad"
"org.pencil2d.Pencil2D"
];
};
}
);
nixpkgs.config.permittedInsecurePackages = [
"olm-3.2.16"
];
virtualisation.podman.enable = true;
services.vsmartcard-vpcd.enable = true;
hardware.gpgSmartcards.enable = true;
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [ 35963 ] ;
environment.systemPackages = with pkgs; [
aerc
oama # required for aerc
libsecret # required for oama
easyeffects
jabref
glib # rider wants gsettings
krita
strawberry
pandoc
tectonic
rquickshare
supersonic
nheko
anki-bin
nixpkgs-manual
nixpkgs-manual.lib-docs
(
let
helpScript = pkgs.writeShellScriptBin "nixpkgs-help" ''
exec xdg-open ${pkgs.nixpkgs-manual}/share/doc/nixpkgs/index.html
'';
desktopItem = pkgs.makeDesktopItem {
name = "nixpkgs-manual";
desktopName = "nixpkgs Manual";
genericName = "System Manual";
comment = "View nixpkgs documentation in a web browser";
icon = "nix-snowflake";
exec = "nixpkgs-help";
categories = [ "System" ];
};
in
pkgs.symlinkJoin {
name = "nixpkgs-help";
paths = [
helpScript
desktopItem
];
}
)
# (nheko.overrideAttrs (
# super: self: {
# src = inputs.nheko;
# }
# ))
];
time.timeZone = "Europe/Berlin";
networking.firewall.allowedTCPPorts = [
1880
2021
];
networking.firewall.allowedUDPPorts = [
1880
2021
];
services.tailscale.enable = true;
services.tailscale.useRoutingFeatures = "client";
xyno.common.enable = true;
xyno.desktop.common-programs.enable = true;
xyno.hardware.kmonad.enable = true;
xyno.presets.cli.enable = true;
xyno.presets.gui.enable = true;
xyno.presets.home-manager.enable = true;
xyno.system.user.enable = true;
xyno.user-services.syncthing = {
enable = true;
tray = true;
};
xyno.networking.networkd = {
enable = true;
enableWifi = true;
};
# xyno.desktop.easyeffects.enable = true;
# xyno.desktop.fcitx5.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
services.power-profiles-daemon.enable = true;
programs.kdeconnect.enable = true;
services.flatpak.enable = true;
system.stateVersion = "24.11";
}