Add files via upload

This commit is contained in:
ediblerope 2025-08-13 09:16:00 +01:00 committed by GitHub
parent 9a901cb6b7
commit d167bc68a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 263 additions and 123 deletions

View file

@ -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
#<home-manager/nixos>
];
##########################
# 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";
}

39
modules/apps.nix Normal file
View file

@ -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"
];
}

51
modules/base.nix Normal file
View file

@ -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 ];
}

View file

@ -0,0 +1,20 @@
{ pkgs ? import <nixpkgs> {} }:
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
'';
}

20
modules/hyprland.nix Normal file
View file

@ -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
];
}

30
modules/kde.nix Normal file
View file

@ -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
];
}

29
modules/krisp-patcher.nix Normal file
View file

@ -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
];
}

65
modules/nixos-gaming.nix Normal file
View file

@ -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"
];
};
############
}