flake/modules/graphical-interface.nix
2025-07-30 00:21:57 +03:00

99 lines
2.7 KiB
Nix

{
pkgs,
lib,
config,
...
}:
{
options = {
myModules.enableKDE = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable KDE Plasma Desktop Environment with my favorite packages";
};
};
config = lib.mkMerge [
(lib.mkIf config.myModules.enableKDE {
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm = {
enable = true;
# theme = "sugar-dark"; # looks ugly i give up
# wayland.enable = true;
};
services.desktopManager.plasma6.enable = true;
environment.plasma6.excludePackages = [
pkgs.kdePackages.kate
pkgs.kdePackages.konsole
];
# Enable CUPS to print documents.
services.printing.enable = true;
hardware.bluetooth.enable = true; # enables support for Bluetooth
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
environment.systemPackages = with pkgs; [
blender
inkscape
sddm-sugar-dark
screenkey
vscode
alacritty
ghostty
obsidian
mpv
pomodoro-gtk
libreoffice
gimp
kitty
obs-studio
qbittorrent
ani-cli
prismlauncher
element-desktop
qbittorrent
discord
(pkgs.writeShellApplication {
name = "sync-terraria";
runtimeInputs = [
pkgs.python3Packages.huggingface-hub
pkgs.zip
];
text = ''
# check if logged in to huggingface
if [ "$(huggingface-cli whoami)" == "Not logged in" ]; then
echo "Please log in to huggingface"
exit 1
fi
cd ~/.local/share
timestamp=$(date +%Y-%m-%d_%H-%M)
echo "$timestamp"
zip -r "Terraria_$timestamp.zip" Terraria/
huggingface-cli upload --repo-type dataset osbm/terraria-backups "Terraria_$timestamp.zip" "Terraria_$timestamp.zip"
'';
})
code-cursor
ungoogled-chromium
];
environment.sessionVariables.NIXOS_OZONE_WL = "1";
programs.steam = {
enable = true;
# Open ports in the firewall for Steam Remote Play
remotePlay.openFirewall = true;
# Open ports in the firewall for Source Dedicated Server
dedicatedServer.openFirewall = true;
# Open ports in the firewall for Steam Local Network Game Transfers
localNetworkGameTransfers.openFirewall = true;
};
networking.firewall.allowedTCPPorts = [ 51513 ];
})
];
}