Add files via upload
This commit is contained in:
parent
9a901cb6b7
commit
d167bc68a5
8 changed files with 263 additions and 123 deletions
|
|
@ -5,135 +5,21 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
username = "fred";
|
hostname = "nixos-gaming";
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
./modules/base.nix
|
||||||
|
(./modules + "/${hostname}.nix") # Uses hostname from environment
|
||||||
|
./modules/kde.nix
|
||||||
|
./modules/krisp-patcher.nix
|
||||||
|
#<home-manager/nixos>
|
||||||
];
|
];
|
||||||
|
networking.hostName = "${hostname}";
|
||||||
##########################
|
|
||||||
# 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;
|
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
39
modules/apps.nix
Normal file
39
modules/apps.nix
Normal 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
51
modules/base.nix
Normal 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 ];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
20
modules/discord-capture-limiter.nix
Normal file
20
modules/discord-capture-limiter.nix
Normal 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
20
modules/hyprland.nix
Normal 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
30
modules/kde.nix
Normal 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
29
modules/krisp-patcher.nix
Normal 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
65
modules/nixos-gaming.nix
Normal 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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
############
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue