Files
nix/hosts/default/configuration.nix
Kris 69e881d729 a
2026-03-28 20:05:43 +02:00

352 lines
8.4 KiB
Nix

{ config, inputs, pkgs, lib, ... }:
let
userName = "kris";
realName = "Kris";
in {
imports = [
../../modules/forceMainPC.nix
../../modules/nixos/main-user.nix
../../modules/home-manager/main.nix
./packages.nix
# ../../modules/home-manager/hyprpanel.nix
./other/activate.nix
# ./apps/ancs.nix
];
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.displayManager.autoLogin = {
enable = true;
user = userName;
};
boot.loader.grub.theme = lib.mkDefault inputs.deltarune-grub-theme;
# boot.kernelPackages = pkgs.linuxPackages_cachyos-lto;
services.scx.enable = true;
services.scx.scheduler = "scx_bpfland";
services.scx.extraArgs = [
"-m performance"
];
programs.steam = {
enable = true;
# package = pkgs.steam-millennium;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
# services.ancs.enable = true;
services.printing = {
enable = true;
drivers = with pkgs; [
gutenprint
gutenprintBin
splix
hplip
];
webInterface = false;
listenAddresses = [ "*:631" ];
allowFrom = [ "localhost" ];
browsing = false;
defaultShared = false;
openFirewall = false;
};
programs.virt-manager.enable = true;
users.groups.libvirtd.members = [ userName ];
virtualisation.libvirtd.enable = true;
# virtualisation.waydroid.enable = true;
virtualisation.spiceUSBRedirection.enable = true;
networking.extraHosts = ''
# dont worry, i still don't like the guy
# but i need to community note roblox on how their moderation is still shit
# at this point just hire the goober project to take them down for you
'';
networking.hostName = "darkworld";
powerManagement.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
publish = {
enable = true;
userServices = true;
};
};
programs.hyprland = {
enable = true;
xwayland.enable = true;
# package = (pkgs.callPackage ./packages/hyprland/package.nix {});
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
virtualisation.docker.enable = true;
main-user.packages = with pkgs; [
# warp-terminal
(prismlauncher.override {
jdks = [
pkgs.jdk21
];
})
# vesktop
# legcord
equibop
code-cursor
kdePackages.kdenlive
darkly
hyfetch
kitty
];
qt.enable = true;
qt.platformTheme = "qt5ct";
xdg.terminal-exec.enable = true;
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
];
config.common.default = [ "hyprland" "gtk" ];
};
# environment.variables.XDG_SYSTEM_MONITOR = "${pkgs.htop}/bin/htop";
environment.variables.XDG_TERMINAL = "kitty";
environment.variables.XDG_SYSTEM_MONITOR = "htop";
environment.variables.GTK_USE_PORTAL = "1";
environment.sessionVariables.GTK_USE_PORTAL = 1;
services.btrfs.autoScrub = {
enable = true;
interval = "monthly";
fileSystems = [ "/" ];
};
# CHANGE YOUR NAME IN HOME MANAGER!
# BETTER YET, DON'T TOUCH THIS. AT ALL.
main-user.userName = userName;
main-user.realName = realName;
services.fstrim.enable = true;
systemd.services.fstrim.enable = false;
systemd.services."NetworkManager-wait-online".enable = false;
systemd.services.docker.wantedBy = lib.mkForce [ ];
programs.dconf.enable = true;
services.gvfs.enable = true;
services.flatpak.enable = true;
# home-manager.services.mpris-proxy.enable = true;
home-manager.backupFileExtension = "hmbackup";
catppuccin = {
enable = true;
flavor = "mocha";
accent = "blue";
};
home-manager.users.${userName} = { programs, config, pkgs, ... }:
let
system = pkgs.stdenv.hostPlatform.system;
in {
imports = [
inputs.catppuccin.homeModules.catppuccin
inputs.zen-browser.homeModules.beta
];
gtk = {
enable = true;
gtk4.theme = config.gtk.theme;
iconTheme = {
name = "Arashi";
package = pkgs.callPackage ./packages/arashi-icons.nix {};
};
};
home.pointerCursor = {
name = "RalseiCursors";
package = pkgs.callPackage ./packages/ralsei-cursors/default.nix {};
size = 24;
gtk.enable = true;
x11.enable = true;
};
catppuccin = {
enable = true;
flavor = "mocha";
accent = "blue";
# we're already using arashi
gtk.icon.enable = false;
cursors.enable = false;
kvantum.enable = false;
qt5ct.enable = false;
};
home.packages = with pkgs; [
libsForQt5.qt5ct
qt6Packages.qt6ct
darkly-qt5
darkly
];
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "Darkly";
};
programs.zen-browser = {
enable = true;
nativeMessagingHosts = [pkgs.firefoxpwa];
policies = {
DisableAppUpdate = true;
DisableTelemetry = true;
};
};
wayland.windowManager.hyprland = {
enable = true;
package = null;
portalPackage = null;
systemd.enable = true;
plugins = [];
extraConfig = builtins.readFile ../../config/hypr/hyprland.conf;
};
home.file.".config/hypr/config" = {
source = ../../config/hypr/config;
recursive = true;
};
home.file.".config/hypr/hyprlock.conf" = {
source = ../../config/hypr/hyprlock.conf;
};
home.file.".config/hypr/hyprpaper.conf" = {
source = ../../config/hypr/hyprpaper.conf;
};
home.file.".config/hypr/wallpaper.png" = {
source = ../../config/hypr/wallpaper.png;
};
home.file.".config/hypr/xdph.conf" = {
source = ../../config/hypr/xdph.conf;
};
home.file.".config/qt5ct/qt5ct.conf".text = ''
[Appearance]
color_scheme_path=${pkgs.catppuccin-qt5ct}/share/qt5ct/colors/catppuccin-mocha-blue.conf
custom_palette=true
icon_theme=Arashi
standard_dialogs=default
style=Darkly
'';
home.file.".config/qt6ct/qt6ct.conf".text = ''
[Appearance]
color_scheme_path=${pkgs.catppuccin-qt5ct}/share/qt6ct/colors/catppuccin-mocha-blue.conf
custom_palette=true
icon_theme=Arashi
standard_dialogs=default
style=Darkly
'';
home.file.".local/share/fonts/DotfilesFont.otf" = {
source = ../../config/dotfile_deps/DotfilesFont.otf;
};
programs.quickshell = {
enable = true;
package = inputs.quickshell.packages.${system}.default.withModules (
with pkgs.qt6; [
qtimageformats
qtmultimedia
qtsvg
qt5compat
]
);
configs = {
default = ../../Shell;
DeltaruneQuickshell = ../../Shell;
};
};
services.mpris-proxy.enable = true;
programs.chromium = {
enable = true;
package = pkgs.brave;
extensions = [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin
{ id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow
{ id = "clngdbkpkpeebahjckkjfobafhncgmne"; } # Sytlus
{ id = "hnmpcagpplmpfojmgmnngilcnanddlhb"; } # Windscribe
{ id = "hfjngafpndganmdggnapblamgbfjhnof"; } # RoSeal
{ id = "aflpfginfpjhanhkmdpohpggpolfopmb"; } # SkyLink
{ id = "agjnjboanicjcpenljmaaigopkgdnihi"; } # PreMiD
{ id = "ijcpiojgefnkmcadacmacogglhjdjphj"; } # Shinigami Eyes
{ id = "hbkpclpemjeibhioopcebchdmohaieln"; } # BTRoblox
{ id = "lnjaiaapbakfhlbjenjkhffcdpoompki"; } # Catppuccin gh file explorer icons
{ id = "ejcfepkfckglbgocfkanmcdngdijcgld"; } # ChatGPT
{ id = "jifpbeccnghkjeaalbbjmodiffmgedin"; } # CRX Viewer
{ id = "hplhmahilccgjccaanlagdidofgaanfe"; } # Gamefam Blocker
{ id = "adbacgifemdbhdkfppmeilbgppmhaobf"; } # RoPro
{ id = "cbghhgpcnddeihccjmnadmkaejncjndb"; } # Vencord
{ id = "jinjaccalgkegednnccohejagnlnfdag"; } # Violentmonkey
{ id = "lahhiofdgnbcgmemekkmjnpifojdaelb"; } # Vercel
{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; } # Sponsorblock
{ id = "pncfbmialoiaghdehhbnbhkkgmjanfhe"; } # uBlacklist
];
};
programs.git = {
enable = true;
signing.format = "openpgp";
settings.user = {
name = realName;
email = "kris@kris.darkworld.download";
};
};
programs.obs-studio = {
enable = true;
package = (pkgs.obs-studio.override {
cudaSupport = true;
});
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
};
home.stateVersion = "24.11";
};
}