From d167bc68a57c463b886db502d39d70f1a5a0397f Mon Sep 17 00:00:00 2001 From: ediblerope Date: Wed, 13 Aug 2025 09:16:00 +0100 Subject: [PATCH] Add files via upload --- configuration.nix | 132 ++-------------------------- modules/apps.nix | 39 ++++++++ modules/base.nix | 51 +++++++++++ modules/discord-capture-limiter.nix | 20 +++++ modules/hyprland.nix | 20 +++++ modules/kde.nix | 30 +++++++ modules/krisp-patcher.nix | 29 ++++++ modules/nixos-gaming.nix | 65 ++++++++++++++ 8 files changed, 263 insertions(+), 123 deletions(-) create mode 100644 modules/apps.nix create mode 100644 modules/base.nix create mode 100644 modules/discord-capture-limiter.nix create mode 100644 modules/hyprland.nix create mode 100644 modules/kde.nix create mode 100644 modules/krisp-patcher.nix create mode 100644 modules/nixos-gaming.nix diff --git a/configuration.nix b/configuration.nix index ba79d85..ee67275 100644 --- a/configuration.nix +++ b/configuration.nix @@ -4,136 +4,22 @@ { config, lib, pkgs, ... }: -let - username = "fred"; +let + hostname = "nixos-gaming"; in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + ./modules/base.nix + (./modules + "/${hostname}.nix") # Uses hostname from environment + ./modules/kde.nix + ./modules/krisp-patcher.nix + # ]; - -########################## -# Macbook required setup # -########################## -nixpkgs.config.allowUnfree = true; -#boot.kernelModules = [ "wl" ]; -#boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; -networking.networkmanager.enable = true; -networking.wireless.enable = false; - -################### -# System settings # -################### -i18n.defaultLocale = "en_GB.UTF-8"; -time.timeZone = "Europe/London"; - -################## -# Hardware setup # -################## - -############### -# Boot loader # -############### -boot.loader = { - systemd-boot.enable = true; - efi = { - canTouchEfiVariables = true; - #efiSysMountPoint = "/boot/efi"; - }; -}; - -systemd.services.check-mountpoints.enable = false; - -############## -# User setup # -############## -users.users.fred = { isNormalUser = true; initialPassword = "123"; extraGroups = [ "wheel" "networkmanager" ];}; - -system.activationScripts.fix-nixos-perms = '' - chown -R ${username}:users /etc/nixos/.git - chmod -R g+rw /etc/nixos/.git - ''; - -############# -# git setup # -############# -environment.etc."gitconfig".text = '' - [safe] - directory = /etc/nixos -''; - -######################## -# User personalisation # -######################## - -# GNOME -services.xserver = { - enable = true; - displayManager.gdm.enable = true; - desktopManager.gnome = { - enable = true; - }; -}; - -environment.gnome.excludePackages = (with pkgs; [ - geary # email reader - gnome-music - gnome-photos - gnome-tour - gnome-calendar - gnome-weather - gnome-clocks - gnome-contacts - gnome-maps - pkgs.gnome-connections - simple-scan - yelp - totem # video player - epiphany #web browser - using chrome -]); - -programs.dconf.profiles.user = { - databases = [{ - lockAll = true; - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - clock-format = "24h"; - clock-show-weekday = true; - }; - }; - }]; - }; - -# systemPackages -environment.systemPackages = with pkgs; [ - gnomeExtensions.blur-my-shell - discord-ptb - git - vlc - jellyfin - jellyfin-web - jellyfin-ffmpeg - qbittorrent - google-chrome -]; - -# Steam -programs.steam = { - enable = true; -}; - -# Jellyfin service -services.jellyfin = { - enable = true; - openFirewall = true; -}; - -# Noisetorch -programs.noisetorch.enable = true; + networking.hostName = "${hostname}"; ####################################################### -system.stateVersion = "24.11"; +system.stateVersion = "25.05"; } diff --git a/modules/apps.nix b/modules/apps.nix new file mode 100644 index 0000000..89b6f67 --- /dev/null +++ b/modules/apps.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: + +{ + +environment.systemPackages = with pkgs; [ + appeditor + git + vlc + spotify + heroic + jellyfin + jellyfin-web + jellyfin-ffmpeg + qbittorrent + google-chrome + wayland-utils # Wayland utilities + wl-clipboard # Command-line copy/paste utilities for Wayland + appimage-run + kdePackages.kcalc # Calculator + kdePackages.kate #text editor + kdePackages.dolphin + font-awesome + gpu-screen-recorder + gpu-screen-recorder-gtk + discord + asciiquarium + cargo + ventoy-full-gtk + popsicle +]; + +nixpkgs.config.permittedInsecurePackages = [ +"ventoy-gtk3-1.1.05" +]; + + +} + + diff --git a/modules/base.nix b/modules/base.nix new file mode 100644 index 0000000..efce59d --- /dev/null +++ b/modules/base.nix @@ -0,0 +1,51 @@ +{ config, lib, pkgs, ... }: + +let + username = "fred"; +in + +{ + +# Base setup +nixpkgs.config.allowUnfree = true; #required for Steam +networking.networkmanager.enable = true; +networking.wireless.enable = false; + +# Locale +i18n.defaultLocale = "en_GB.UTF-8"; +time.timeZone = "Europe/London"; +services.xserver = { + xkb.layout = "no"; +}; + +# Install home manager +#environment.systemPackages = with pkgs; [ +# home-manager +#]; + +# Home Manager configuration +#home-manager = { + #useGlobalPkgs = true; # Use system-wide packages + #useUserPackages = true; # Install packages to user profile + #users.fred = import ./home.nix; # Your personal config +#}; + +# Base user setup +users.users.fred = { isNormalUser = true; initialPassword = "123"; extraGroups = [ "wheel" "networkmanager" "audio" ];}; + +# Give perms for nixos folder so git can run without sudo +#system.activationScripts.fix-nixos-perms = '' +# chown -R ${username}:users /etc/nixos/.git +# chmod -R g+rw /etc/nixos/.git +# ''; + +#environment.etc."gitconfig".text = '' +# [safe] +# directory = /etc/nixos +#''; + +#Fonts? +fonts.packages = with pkgs; [ font-awesome ]; + + +} diff --git a/modules/discord-capture-limiter.nix b/modules/discord-capture-limiter.nix new file mode 100644 index 0000000..ebcbaee --- /dev/null +++ b/modules/discord-capture-limiter.nix @@ -0,0 +1,20 @@ +{ pkgs ? import {} }: + +pkgs.stdenv.mkDerivation { + pname = "discord-capture-limiter"; + version = "0.1.0"; + + src = pkgs.fetchFromGitHub { + owner = "ediblerope"; + repo = "Discord-Capture-Limiter"; + rev = "v0.1.0"; # or commit hash + sha256 = "sha256-hash-goes-here"; + }; + + buildInputs = [ pkgs.makeWrapper ]; + installPhase = '' + mkdir -p $out/bin + cp path/to/your/script $out/bin/discord-capture-limiter + chmod +x $out/bin/discord-capture-limiter + ''; +} diff --git a/modules/hyprland.nix b/modules/hyprland.nix new file mode 100644 index 0000000..06d2f07 --- /dev/null +++ b/modules/hyprland.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +{ +programs.hyprland= { + enable = true; # enable Hyprland + xwayland.enable = true; +}; + + +environment.systemPackages = with pkgs; [ + wofi + hyprpaper + waybar + hyprlock + kitty + libnotify + swaynotificationcenter + nerd-fonts.zed-mono +]; +} diff --git a/modules/kde.nix b/modules/kde.nix new file mode 100644 index 0000000..9d03f25 --- /dev/null +++ b/modules/kde.nix @@ -0,0 +1,30 @@ +{ config, lib, pkgs, ... }: + +{ +# Enable SDDM with Wayland support +services.displayManager = { + sddm = { + enable = true; + wayland.enable = true; # Force Wayland mode + }; +}; + + +# Enable Plasma with Wayland +services.desktopManager.plasma6.enable = true; + +environment.systemPackages = with pkgs; [ + kdePackages.kcalc # Calculator + kdePackages.kcharselect # Tool to select and copy special characters from all installed fonts + kdePackages.kcolorchooser # A small utility to select a color + kdePackages.kolourpaint # Easy-to-use paint program + kdePackages.ksystemlog # KDE SystemLog Application + kdePackages.sddm-kcm # Configuration module for SDDM + kdePackages.kate #text editor + kdePackages.krunner + libnotify + xsettingsd + xorg.xrdb +]; + +} diff --git a/modules/krisp-patcher.nix b/modules/krisp-patcher.nix new file mode 100644 index 0000000..e22680a --- /dev/null +++ b/modules/krisp-patcher.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: +let + krisp-patcher = + pkgs.writers.writePython3Bin "krisp-patcher" + { + libraries = with pkgs.python3Packages; [ + capstone + pyelftools + ]; + flakeIgnore = [ + "E501" # line too long (82 > 79 characters) + "F403" # 'from module import *' used; unable to detect undefined names + "F405" # name may be undefined, or defined from star imports: module + ]; + } + ( + builtins.readFile ( + pkgs.fetchurl { + url = "https://raw.githubusercontent.com/sersorrel/sys/afc85e6b249e5cd86a7bcf001b544019091b928c/hm/discord/krisp-patcher.py"; + sha256 = "sha256-h8Jjd9ZQBjtO3xbnYuxUsDctGEMFUB5hzR/QOQ71j/E="; + } + ) + ); +in +{ + environment.systemPackages = [ + krisp-patcher + ]; +} diff --git a/modules/nixos-gaming.nix b/modules/nixos-gaming.nix new file mode 100644 index 0000000..b5f2283 --- /dev/null +++ b/modules/nixos-gaming.nix @@ -0,0 +1,65 @@ +{ config, lib, pkgs, ... }: + +{ + +imports = + [ # Include the results of the hardware scan. + ./apps.nix + ]; + +# Bootloader needed for gaming PC +boot.loader = { + systemd-boot.enable = true; + efi = { + canTouchEfiVariables = true; + #efiSysMountPoint = "/boot/efi"; + }; +}; + +# Prevent mount point failures from stopping boot +systemd.services.check-mountpoints.enable = false; + +# Steam +programs.steam = { + enable = true; + remotePlay.openFirewall = true; + package = pkgs.steam.override { + extraPkgs = + pkgs: with pkgs; [ + kdePackages.breeze + ]; + }; +}; + + +programs.gamescope.enable = true; +programs.gamemode.enable = true; + +# Jellyfin service +services.jellyfin = { + enable = true; + openFirewall = true; +}; + +# Noisetorch +programs.noisetorch.enable = true; + +#maybe kernel video +boot.kernelParams = [ "video=DP-2:1920x1080@144"]; + +# Mount torrent drive +fileSystems."/mnt/windows" = { +device = "/dev/disk/by-uuid/64AE6FC8AE6F90FA"; +fsType = "ntfs"; +options = [ + "rw" + "uid=1000" + "gid=100" + "nofail" + "windows_names" +]; +}; +############ + + +}