Compare commits

...

19 Commits

Author SHA1 Message Date
Andreas Schaafsma
6463a9e869 intel only 2025-12-14 19:47:03 +01:00
Andreas Schaafsma
105c9737f6 clean up formatting 2025-12-14 19:46:50 +01:00
Andreas Schaafsma
089bf927e0 gamescope session related tweaks 2025-12-14 19:44:19 +01:00
Andreas Schaafsma
b4bc7490fc add ntfs3g 2025-12-14 19:43:22 +01:00
Andreas Schaafsma
0dd087f4b8 steam related packages 2025-12-14 19:43:14 +01:00
Andreas Schaafsma
f60718619f remove vesktop 2025-12-14 19:42:37 +01:00
Andreas Schaafsma
c47509ef99 fix whitespace 2025-12-14 19:42:13 +01:00
Andreas Schaafsma
c5767b775b enable vesktop appimage 2025-12-14 19:41:06 +01:00
Andreas Schaafsma
ef4869d2cc add localsend package 2025-12-14 19:40:35 +01:00
Andreas Schaafsma
0207f790ef add libreoffice package 2025-12-14 19:40:19 +01:00
Andreas Schaafsma
b4500a59c1 add hyfetch package 2025-12-14 19:40:07 +01:00
Andreas Schaafsma
e6f20d1d69 remove broken vesktop package 2025-12-14 19:39:31 +01:00
Andreas Schaafsma
51e5e00ab6 add keychron keyboard config 2025-12-14 19:38:08 +01:00
Andreas Schaafsma
31e86618c3 improved/ fixed 2025-12-14 19:37:52 +01:00
Andreas Schaafsma
e28a22ec11 moved 2025-12-14 19:36:06 +01:00
Andreas Schaafsma
93c3ae48c5 add keychron keyboard config module 2025-12-14 19:31:40 +01:00
Andreas Schaafsma
1abec387cd fixes 2025-12-14 17:25:47 +01:00
Andreas Schaafsma
081ffed1e1 vesktop appimage instead of nixpkgs 2025-12-14 17:25:31 +01:00
Andreas Schaafsma
583a1a1905 add nvidia only config 2025-12-08 18:43:36 +01:00
9 changed files with 290 additions and 12 deletions

View File

@ -14,6 +14,7 @@ in
my-namespace.home = { my-namespace.home = {
stream-tools = enabled; stream-tools = enabled;
gnome-customizations = enabled; gnome-customizations = enabled;
vesktop-appimage = enabled;
# networking = enabled; # networking = enabled;
# personal-apps = enabled; # personal-apps = enabled;
# suites.laptop = enabled; # suites.laptop = enabled;
@ -25,7 +26,10 @@ in
pkgs.beeper pkgs.beeper
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.vesktop pkgs.hyfetch
pkgs.libreoffice
pkgs.localsend
# pkgs.vesktop
pkgs.obsidian pkgs.obsidian
inputs.zen-browser.packages.x86_64-linux.default inputs.zen-browser.packages.x86_64-linux.default
inputs.kwin-effects-forceblur.packages.${pkgs.system}.default inputs.kwin-effects-forceblur.packages.${pkgs.system}.default

View File

@ -24,7 +24,7 @@ in
pkgs.beeper pkgs.beeper
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.vesktop #pkgs.vesktop
]; ];
}; };
} }

View File

@ -0,0 +1,49 @@
{ config, pkgs, lib, ... }:
let
inherit (lib) mkEnableOption mkIf;
cfg = config.my-namespace.home.vesktop-appimage;
vesktopVersion = "1.6.1";
vesktopAppImage = pkgs.runCommand "vesktop-appimage" { } ''
cp ${pkgs.fetchurl {
url = "https://github.com/Vencord/Vesktop/releases/download/v${vesktopVersion}/Vesktop-${vesktopVersion}.AppImage";
sha256 = "sha256-zK098H7iiOEe5y5YhgsUCPYVQQPcsnZw6/6q6Nx7h+w=";
}} $out
chmod +x $out
'';
vesktopWrapped = pkgs.writeShellScriptBin "vesktop" ''
exec ${pkgs.appimage-run}/bin/appimage-run ${vesktopAppImage} "$@"
'';
vesktopIcon = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/Vencord/Vesktop/main/build/icon.svg";
sha256 = "sha256-fQ+dvbPIb4AFd9f7JqIt7+twJdEMQF9jTTwrk5p1vn8=";
};
in
{
options.my-namespace.home.vesktop-appimage = {
enable = mkEnableOption "Install Vesktop (AppImage) with Vencord support";
};
config = mkIf cfg.enable {
xdg.dataFile."icons/hicolor/scalable/apps/vesktop.svg".source = vesktopIcon;
home.packages = [
pkgs.appimage-run
vesktopWrapped
];
xdg.desktopEntries.vesktop = {
name = "Vesktop";
comment = "Discord client with Vencord (AppImage)";
exec = "${vesktopWrapped}/bin/vesktop";
icon = "vesktop";
terminal = false;
type = "Application";
categories = [ "Network" "Chat" ];
};
};
}

View File

@ -0,0 +1,113 @@
{ config, lib, pkgs, namespace, ... }:
let
cfg = config.${namespace}.keychron-keyboard;
in {
options.${namespace}.keychron-keyboard = {
enable = lib.mkEnableOption "Enable Keychron keyboard configuration";
# Add additional options here, e.g. vendor/product IDs, keymaps, etc.
};
config = lib.mkIf cfg.enable {
services.udev.packages = with pkgs; [ qmk qmk-udev-rules ];
# Example udev rule or keychron-specific settings
services.udev.extraRules = ''
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
### AT90USB162
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
# USBtinyISP
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## pid.codes shared PID
### Keyboardio Atreus 2 Bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# hid_listen
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
# hid bootloaders
## QMK HID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
## PJRC's HalfKay
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
# APM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
# GD32V DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
# WB32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
# AT32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
'';
#
# home.file.".config/some-config".text = ''
# # keyboard-related configuration
# '';
};
}

View File

@ -28,6 +28,15 @@
# enable = true; # enable = true;
# capSysNice = true; # capSysNice = true;
# }; # };
environment.systemPackages = with pkgs; [
steam
# proton-ge-bin
lutris
protontricks
mangohud
vkbasalt
gamemode
];
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play

View File

@ -161,12 +161,25 @@
qemu qemu
mpv mpv
krita krita
ntfs3g
]; ];
environment.etc."xdg/autostart/xwaylandvideobridge.desktop".text = '' environment.etc."xdg/autostart/xwaylandvideobridge.desktop".text = ''
[Desktop Entry] [Desktop Entry]
Hidden=true Hidden=true
''; '';
services.udisks2.settings = { # Should fix mounting ntfs system partition - Did not work
"udisks2.conf" = {
defaults = {
allow_mount_internal = true;
allow_mount_system = true;
};
};
};
services.gvfs.enable = true; # For file manager integration
virtualisation.libvirtd = { virtualisation.libvirtd = {
enable = true; enable = true;
@ -195,9 +208,11 @@
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
24800 #Synergy 24800 #Synergy
53317 #localsend
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
24800 #Synergy 24800 #Synergy
53317 #localsend
]; ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;

View File

@ -69,6 +69,8 @@ in
}; };
services.gnome.gnome-remote-desktop.enable = true; services.gnome.gnome-remote-desktop.enable = true;
my-namespace.wallpaper-engine-kde-plugin.enable = true; my-namespace.wallpaper-engine-kde-plugin.enable = true;
my-namespace.keychron-keyboard.enable = true;
# lib.my-namespace.home.stream-tools.enable = true; # lib.my-namespace.home.stream-tools.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
@ -86,6 +88,15 @@ in
# networking.firewall.enable = false; # networking.firewall.enable = false;
programs.steam.gamescopeSession.enable = true; programs.steam.gamescopeSession.enable = true;
programs.gamescope.enable = true; programs.gamescope.enable = true;
programs.steam.gamescopeSession = {
enable = true;
args = [
"-w" "1920"
"-h" "1080"
"-r" "172"
];
};
# Install firefox. # Install firefox.
programs.firefox.enable = true; programs.firefox.enable = true;
@ -100,9 +111,22 @@ in
ntfs3g ntfs3g
ntfsprogs ntfsprogs
synergy synergy
mangohud
my-namespace.udev-steelseries my-namespace.udev-steelseries
my-namespace.hello my-namespace.hello
kde-rounded-corners kde-rounded-corners
(pkgs.writeShellScriptBin "switch-to-desktop" ''
#!/bin/sh
# Kill Steam and return to display manager
pkill steam || true
pkill gamescope || true
# End the session cleanly
loginctl terminate-session "$XDG_SESSION_ID"
'')
(pkgs.writeShellScriptBin "steamos-session-select" ''
#!/bin/sh
exec switch-to-desktop
'')
# stuff I installed to try to get gamescope to work to no avail Gamescope is just broken it seems. # stuff I installed to try to get gamescope to work to no avail Gamescope is just broken it seems.
# pkgs.mesa # pkgs.mesa
# pkgs.vulkan-loader # pkgs.vulkan-loader

View File

@ -0,0 +1,64 @@
{ config, lib, pkgs, ... }:
{
############################
## Display + Mesa Settings
############################
# hardware.enableRedistributableFirmware = true;
hardware.firmware = [
pkgs.linux-firmware
# pkgs.firmwareLinuxNonfree
# pkgs.firmwareLinuxStrict
# pkgs.firmwareLinuxLatest
];
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [
"console=tty0"
"efifb=off"
"xe.force_probe=*"
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
];
environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # Intel VAAPI
vpl-gpu-rt # oneVPL runtime
intel-vaapi-driver # fallback
];
};
# Ensure Arc driver is available (usually auto-loaded)
boot.kernelModules = [ "xe" ];
# Blacklist everything for nvidia
boot.blacklistedKernelModules = [
"nouveau"
"nvidia"
"nvidia_drm"
"nvidia_modeset"
"nvidia_uvm"
];
environment.variables = {
KWIN_DRM_DEVICES = "/dev/dri/card0";
};
############################
## X / Wayland GPU Drivers
############################
############################
## User Access
############################
users.users.andreas.extraGroups = [ "video" "render" ];
}

View File

@ -7,7 +7,7 @@
imports = imports =
[ [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
./graphics/intel_nvidia.nix ./graphics/intel.nix
# ./graphics/nvidia.nix # ./graphics/nvidia.nix
./acer-monitor-edid.nix ./acer-monitor-edid.nix
]; ];
@ -21,16 +21,16 @@
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
boot.supportedFilesystems = [ "ntfs" ]; boot.supportedFilesystems = [ "ntfs" ];
boot.blacklistedKernelModules = [ ]; boot.blacklistedKernelModules = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/E846-D998"; device = "/dev/disk/by-uuid/E846-D998";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };