Start adding apps

This commit is contained in:
installer 2025-01-25 13:05:37 -08:00
parent 365623390b
commit 76e19d182d
81 changed files with 960 additions and 25 deletions

View File

@ -9,6 +9,7 @@
# ./disko.nix
./hardware-configuration.nix
# ./impermanence.nix
./ga403
# Profiles
../../modules
# Users
@ -21,12 +22,15 @@
# Custom modules
unfree.enable = true;
nvidia.enable = true;
desktop.enable = true;
desktop.hostMonitorSettings = "
desktop.hostSettings = "
monitor = desc:Samsung Display Corp. ATNA40CU05-0, 2880x1800@120, auto, 1.5
exec-once = asus-ctl slash -d; asusctl -c 80
";
# gaming.enable = true;
gaming.enable = true;
# gsr.defaultAudioDevice = "alsa_output.usb-Schiit_Audio_Schiit_Modi_-00.analog-stereo.monitor"; # alsa_output.usb-Generic_USB_Audio-00.analog-stereo.monitor
# low-latency.enable = false;
# vhs-decode.enable = true;

View File

@ -0,0 +1,6 @@
{ config, lib, ... }:
{
hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -0,0 +1,32 @@
{ lib, config, ... }:
let
kver = config.boot.kernelPackages.kernel.version;
in
{
# Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html
# On recent AMD CPUs this can be more energy efficient.
imports = [ ./. ];
boot = lib.mkMerge [
(lib.mkIf
(
(lib.versionAtLeast kver "5.17")
&& (lib.versionOlder kver "6.1")
)
{
kernelParams = [ "initcall_blacklist=acpi_cpufreq_init" ];
kernelModules = [ "amd-pstate" ];
})
(lib.mkIf
(
(lib.versionAtLeast kver "6.1")
&& (lib.versionOlder kver "6.3")
)
{
kernelParams = [ "amd_pstate=passive" ];
})
(lib.mkIf (lib.versionAtLeast kver "6.3") {
kernelParams = [ "amd_pstate=active" ];
})
];
}

View File

@ -0,0 +1,26 @@
{
lib,
pkgs,
config,
...
}:
{
# Sets the kernel version to the latest kernel to make the usage of the iGPU possible if your kernel version is too old
# Disables scatter/gather which was introduced with kernel version 6.2
# It produces completely white or flashing screens when enabled while using the iGPU of Ryzen 7000-series CPUs (Raphael)
# This issue is not seen in kernel 6.6 or newer versions
imports = [ ../. ];
boot = lib.mkMerge [
(lib.mkIf (lib.versionOlder pkgs.linux.version "6.1") {
kernelPackages = pkgs.linuxPackages_latest;
})
(lib.mkIf (
(lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.2")
&& (lib.versionOlder config.boot.kernelPackages.kernel.version "6.6")
) { kernelParams = [ "amdgpu.sg_display=0" ]; })
];
}

View File

@ -0,0 +1,10 @@
{ lib, config, ... }:
{
# Enables the zenpower sensor in lieu of the k10temp sensor on Zen CPUs https://git.exozy.me/a/zenpower3
# On Zen CPUs zenpower produces much more data entries
imports = [ ./. ];
boot.blacklistedKernelModules = [ "k10temp" ];
boot.extraModulePackages = [ config.boot.kernelPackages.zenpower ];
boot.kernelModules = [ "zenpower" ];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/alder-lake
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/bay-trail
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/braswell
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/broadwell
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/coffee-lake
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/comet-lake
];
}

View File

@ -0,0 +1,4 @@
{ config, lib, ... }:
{
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../gpu/intel
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/elkhart-lake
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/haswell
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/jasper-lake
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/kaby-lake
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/lunar-lake
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/sandy-bridge
];
}

View File

@ -0,0 +1,5 @@
{
imports = [
../cpu-only.nix
];
}

View File

@ -0,0 +1,6 @@
{
imports = [
./cpu-only.nix
../../../gpu/intel/tiger-lake
];
}

View File

@ -0,0 +1,15 @@
{
lib,
...
}:
{
# Backward-compat for 24.05, can be removed after we drop 24.05 support
imports = lib.optionals (lib.versionOlder lib.version "24.11pre") [
(lib.mkAliasOptionModule [ "hardware" "graphics" "enable" ] [ "hardware" "opengl" "enable" ])
(lib.mkAliasOptionModule [ "hardware" "graphics" "extraPackages" ] [ "hardware" "opengl" "extraPackages" ])
(lib.mkAliasOptionModule [ "hardware" "graphics" "extraPackages32" ] [ "hardware" "opengl" "extraPackages32" ])
(lib.mkAliasOptionModule [ "hardware" "graphics" "enable32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ])
(lib.mkAliasOptionModule [ "hardware" "graphics" "package" ] [ "hardware" "opengl" "package" ])
(lib.mkAliasOptionModule [ "hardware" "graphics" "package32" ] [ "hardware" "opengl" "package32" ])
];
}

View File

@ -0,0 +1,15 @@
{ lib, ... }:
{
imports = [ ../24.05-compat.nix ];
config = {
services.xserver.videoDrivers = lib.mkDefault [ "modesetting" ];
hardware.graphics = {
enable = lib.mkDefault true;
enable32Bit = lib.mkDefault true;
};
hardware.amdgpu.initrd.enable = lib.mkDefault true;
};
}

View File

@ -0,0 +1,5 @@
{
imports = [ ../. ];
# Explicitly set amdgpu support in place of radeon
boot.kernelParams = [ "radeon.cik_support=0" "amdgpu.cik_support=1" ];
}

View File

@ -0,0 +1,5 @@
{
imports = [ ../. ];
# Explicitly set amdgpu support in place of radeon
boot.kernelParams = [ "radeon.si_support=0" "amdgpu.si_support=1" ];
}

View File

@ -0,0 +1,5 @@
{
imports = [ ../. ];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
}

View File

@ -0,0 +1,10 @@
{ lib, pkgs, ... }:
{
imports = [ ../. ];
hardware.intelgpu = {
vaapiDriver = "intel-vaapi-driver";
enableHybridCodec = true;
};
}

View File

@ -0,0 +1,10 @@
{ lib, pkgs, ... }:
{
imports = [ ../. ];
hardware.intelgpu = {
vaapiDriver = "intel-vaapi-driver";
enableHybridCodec = true;
};
}

View File

@ -0,0 +1,10 @@
{ lib, pkgs, ... }:
{
imports = [ ../. ];
hardware.intelgpu = {
vaapiDriver = "intel-vaapi-driver";
enableHybridCodec = true;
};
}

View File

@ -0,0 +1,11 @@
{ ... }:
{
imports = [ ../. ];
boot.kernelParams = [
"i915.enable_guc=2"
];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
}

View File

@ -0,0 +1,7 @@
{
imports = [ ../. ];
boot.kernelParams = [ "i915.enable_guc=2" ];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
}

View File

@ -0,0 +1,86 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ../24.05-compat.nix ];
options.hardware.intelgpu = {
driver = lib.mkOption {
description = "Intel GPU driver to use";
type = lib.types.enum [
"i915"
"xe"
];
default = "i915";
};
loadInInitrd =
lib.mkEnableOption "Load the Intel GPU kernel module at stage 1 boot. (Added to `boot.initrd.kernelModules`)"
// {
default = true;
};
vaapiDriver = lib.mkOption {
description = "Intel VAAPI driver to use (use null to use both)";
type = lib.types.nullOr (
lib.types.enum [
"intel-vaapi-driver"
"intel-media-driver"
]
);
default = null; # Use both drivers when we don't know which one to use
};
enableHybridCodec = lib.mkEnableOption "hybrid codec support for Intel GPUs";
};
config =
let
cfg = config.hardware.intelgpu;
useIntelVaapiDriver = cfg.vaapiDriver == "intel-vaapi-driver" || cfg.vaapiDriver == null;
intel-vaapi-driver = (pkgs.intel-vaapi-driver or pkgs.vaapiIntel).override {
enableHybridCodec = cfg.enableHybridCodec;
};
intel-vaapi-driver-32 = (pkgs.driversi686Linux.intel-vaapi-driver or pkgs.driversi686Linux.vaapiIntel).override {
enableHybridCodec = cfg.enableHybridCodec;
};
useIntelOcl = useIntelVaapiDriver && (config.hardware.enableAllFirmware or config.nixpkgs.config.allowUnfree or false);
intel-ocl = pkgs.intel-ocl;
useIntelMediaDriver = cfg.vaapiDriver == "intel-media-driver" || cfg.vaapiDriver == null;
intel-media-driver = pkgs.intel-media-driver;
intel-media-driver-32 = pkgs.driversi686Linux.intel-media-driver;
intel-compute-runtime = pkgs.intel-compute-runtime;
vpl-gpu-rt = pkgs.vpl-gpu-rt or pkgs.onevpl-intel-gpu;
in
{
boot.initrd.kernelModules = lib.optionals cfg.loadInInitrd [ cfg.driver ];
hardware.graphics.extraPackages =
lib.optionals useIntelVaapiDriver [ intel-vaapi-driver ]
++ lib.optionals useIntelOcl [ intel-ocl ]
++ lib.optionals useIntelMediaDriver [
intel-media-driver
intel-compute-runtime
vpl-gpu-rt
];
hardware.graphics.extraPackages32 =
lib.optionals useIntelVaapiDriver [ intel-vaapi-driver-32 ]
++ lib.optionals useIntelMediaDriver [ intel-media-driver-32 ];
assertions = [
{
assertion = (
cfg.driver != "xe" || lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8"
);
message = "Intel Xe GPU driver is not supported on kernels earlier than 6.8. Update or use the i915 driver.";
}
];
};
}

View File

@ -0,0 +1,7 @@
{ lib, ... }:
{
boot.blacklistedKernelModules = lib.mkDefault [ "i915" ];
# KMS will load the module, regardless of blacklisting
boot.kernelParams = lib.mkDefault [ "i915.modeset=0" ];
}

View File

@ -0,0 +1,7 @@
{
imports = [ ../. ];
boot.kernelParams = [ "i915.enable_guc=2" ];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
}

View File

@ -0,0 +1,10 @@
{ lib, pkgs, ... }:
{
imports = [ ../. ];
hardware.intelgpu = {
vaapiDriver = "intel-vaapi-driver";
enableHybridCodec = true;
};
}

View File

@ -0,0 +1,7 @@
{
imports = [ ../. ];
boot.kernelParams = [ "i915.enable_guc=2" ];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
}

View File

@ -0,0 +1,11 @@
{
imports = [ ../. ];
boot.kernelParams = [
"i915.enable_guc=2"
"i915.enable_fbc=1"
"i915.enable_psr=2"
];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
}

View File

@ -0,0 +1,8 @@
{ config, lib, ... }:
{
imports = [ ../. ];
hardware.intelgpu = {
driver = lib.mkIf (lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8") "xe";
vaapiDriver = "intel-media-driver";
};
}

View File

@ -0,0 +1,9 @@
{
imports = [ ../. ];
# Enables RC6, RC6p and RC6pp.
# Last two are only available on Sandy Bridge CPUs (circa 2011).
boot.kernelParams = [ "i915.enable_rc6=7" ];
hardware.intelgpu.vaapiDriver = "intel-vaapi-driver";
}

View File

@ -0,0 +1,8 @@
{ config, lib, ... }:
{
imports = [ ../. ];
config = {
boot.kernelParams = lib.mkIf (config.hardware.intelgpu.driver == "i915") [ "i915.enable_guc=3" ];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
};
}

View File

@ -0,0 +1,10 @@
{lib, config, ...}:
let
nvidiaPackage = config.hardware.nvidia.package;
in
{
imports = [ ../. ];
# enable the open source drivers if the package supports it
hardware.nvidia.open = lib.mkOverride 990 (nvidiaPackage ? open && nvidiaPackage ? firmware);
}

View File

@ -0,0 +1,10 @@
{lib, config, ...}:
let
nvidiaPackage = config.hardware.nvidia.package;
in
{
imports = [ ../. ];
# enable the open source drivers if the package supports it
hardware.nvidia.open = lib.mkOverride 990 (nvidiaPackage ? open && nvidiaPackage ? firmware);
}

View File

@ -0,0 +1,8 @@
{ lib, ... }:
{
imports = [ ../24.05-compat.nix ];
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
# TODO: this will be a default after https://github.com/NixOS/nixpkgs/pull/326369
hardware.nvidia.modesetting.enable = lib.mkDefault true;
}

View File

@ -0,0 +1,26 @@
{ ... }:
{
# This runs only intel/amdgpu igpus and nvidia dgpus do not drain power.
##### disable nvidia, very nice battery life.
boot.extraModprobeConfig = ''
blacklist nouveau
options nouveau modeset=0
'';
services.udev.extraRules = ''
# Remove NVIDIA USB xHCI Host Controller devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA USB Type-C UCSI devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA Audio devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA VGA/3D controller devices
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
'';
boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
}

View File

@ -0,0 +1,7 @@
{lib, ...}:
{
imports = [ ../. ];
# The open source driver does not support Kepler GPUs.
hardware.nvidia.open = false;
}

View File

@ -0,0 +1,7 @@
{lib, ...}:
{
imports = [ ../. ];
# The open source driver does not support Maxwell GPUs.
hardware.nvidia.open = false;
}

View File

@ -0,0 +1,7 @@
{lib, ...}:
{
imports = [ ../. ];
# The open source driver does not support Pascal GPUs.
hardware.nvidia.open = false;
}

View File

@ -0,0 +1,10 @@
{ lib, config, ... }:
{
imports = [ ./. ];
hardware.nvidia.prime = {
# For people who want to use sync instead of offload. Especially for AMD CPU users
sync.enable = lib.mkOverride 990 true;
};
}

View File

@ -0,0 +1,13 @@
{ lib, config, ... }:
{
imports = [ ./. ];
hardware.nvidia.prime = {
offload = {
enable = lib.mkOverride 990 true;
enableOffloadCmd = lib.mkIf config.hardware.nvidia.prime.offload.enable true; # Provides `nvidia-offload` command.
};
# Hardware should specify the bus ID for intel/nvidia devices
};
}

View File

@ -0,0 +1,10 @@
{lib, config, ...}:
let
nvidiaPackage = config.hardware.nvidia.package;
in
{
imports = [ ../. ];
# enable the open source drivers if the package supports it
hardware.nvidia.open = lib.mkOverride 990 (nvidiaPackage ? open && nvidiaPackage ? firmware);
}

View File

@ -0,0 +1,18 @@
{
lib,
pkgs,
config,
...
}:
let
# Starting with kernel 6.8, the console font is set in the kernel automatically to a 16x32 font:
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dfd19a5004eff03755967086aa04254c3d91b8ec
oldKernel = lib.versionOlder config.boot.kernelPackages.kernel.version "6.8";
in
{
# Just set the console font, don't mess with the font settings
console.font = lib.mkIf oldKernel (
lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz"
);
console.earlySetup = lib.mkIf oldKernel (lib.mkDefault true);
}

View File

@ -0,0 +1,7 @@
{ config, lib, ... }:
{
boot.blacklistedKernelModules = lib.optionals (!config.hardware.enableRedistributableFirmware) [
"ath3k"
];
}

View File

@ -0,0 +1,9 @@
{
warnings = [
''
DEPRECATED: The <nixos-hardware/common/hdd.nix> module has been deprecated.
This module has no effect and will be removed in a future release.
''
];
}

View File

@ -0,0 +1,11 @@
{ config, lib, ... }:
{
imports = [ ../. ];
# Gnome 40 introduced a new way of managing power, without tlp.
# However, these 2 services clash when enabled simultaneously.
# https://github.com/NixOS/nixos-hardware/issues/260
services.tlp.enable = lib.mkDefault ((lib.versionOlder (lib.versions.majorMinor lib.version) "21.05")
|| !config.services.power-profiles-daemon.enable);
}

View File

@ -0,0 +1,6 @@
{ lib, ... }:
{
# Hard disk protection if the laptop falls:
services.hdapsd.enable = lib.mkDefault true;
}

View File

@ -0,0 +1 @@
../ssd

View File

@ -0,0 +1,5 @@
{ lib, ... }:
{
services.fstrim.enable = lib.mkDefault true;
}

View File

@ -0,0 +1,93 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
mkDefault
mkForce
;
in
{
imports = [
./common/cpu/amd
./common/cpu/amd/pstate.nix
./common/gpu/amd
./common/pc/laptop
./common/pc/ssd
./common/gpu/nvidia/prime.nix
./common/gpu/nvidia/ada-lovelace
];
config = {
# # Configure basic system settings:
boot = {
# Note: it seems being on the latest kernel is important for CPPC to work, which is required for the amd_pstate
# https://bugzilla.kernel.org/show_bug.cgi?id=218686
kernelPackages = pkgs.linuxPackages_xanmod;
kernelModules = [ "kvm-amd" ];
kernelParams = [
"mem_sleep_default=deep"
"pcie_aspm.policy=powersupersave"
];
};
services = {
asusd = {
enable = mkDefault true;
enableUserService = mkDefault true;
};
supergfxd.enable = mkDefault true;
};
# # Enable the Nvidia card, as well as Prime and Offload: NVIDIA GeForce RTX 4060 Mobile
boot.blacklistedKernelModules = [ "nouveau" ];
services.xserver.videoDrivers = mkForce [
"amdgpu"
"nvidia"
];
hardware = {
amdgpu.initrd.enable = mkDefault true;
nvidia = {
modesetting.enable = true;
nvidiaSettings = mkDefault true;
prime = {
offload = {
enable = mkDefault true;
enableOffloadCmd = mkDefault true;
};
amdgpuBusId = "PCI:65:0:0";
nvidiaBusId = "PCI:1:0:0";
};
powerManagement = {
enable = lib.mkForce true;
finegrained = lib.mkForce true;
};
};
};
# Meditek doesn't seem to be quite sensitive enough on the default roaming settings:
# https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
# https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
#
# But NixOS doesn't have the tweaks for IWD, yet.
# networking.wireless.iwd.settings =
# lib.mkIf (config.networking.wireless.iwd.enable && config.networking.wireless.scanOnLowSignal)
# {
# General = {
# RoamThreshold = -75;
# RoamThreshold5G = -80;
# RoamRetryInterval = 20;
# };
# };
};
}

View File

@ -0,0 +1,41 @@
{
lib,
config,
username,
...
}:
let
cfg = config.atuin;
in
{
options = {
atuin = {
enable = lib.mkEnableOption "Enable atuin in NixOS & home-manager";
};
};
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
programs.atuin = {
enable = true;
settings = {
history_filter = [
"^btop$"
"^bash$"
"^cd$"
"^clear$"
"^exit$"
"^fastfetch$"
"^kmon$"
"^l$"
"^ll$"
"^pwd$"
"^up$"
"^nor$"
"^ngc$"
"^rbn$"
];
};
};
};
};
}

View File

@ -1,5 +1,6 @@
{
imports = [
./atuin
./coolercontrol
./direnv
./gamemode
@ -7,10 +8,13 @@
./git
./hyprland
./lact
./lsd
./mangohud
./nh
./obs
./steam
./sunshine
./vscode
./zsh
];
}

View File

@ -53,8 +53,8 @@ with lib;
exec-once = lxqt-policykit-agent
exec-once = [workspace special silent] foot
exec-once = sleep 1.5 && swww img /home/${username}/Pictures/Wallpapers/pink-desert.jpeg
${builtins.toString config.desktop.hostMonitorSettings}
monitor = Unknown-1, disable
${builtins.toString config.desktop.hostSettings}
exec-once = ${terminal}
general {
gaps_in = 6
@ -202,8 +202,8 @@ with lib;
bindm = ${modifier},mouse:273,resizewindow
bind = ALT,Tab,cyclenext
bind = ALT,Tab,bringactivetotop
bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind = ,XF86AudioRaiseVolume,exec,wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bind = ,XF86AudioLowerVolume,exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = ,XF86AudioPlay, exec, playerctl play-pause
bind = ,XF86AudioPause, exec, playerctl play-pause

View File

@ -0,0 +1,39 @@
{
lib,
config,
username,
...
}:
let
cfg = config.lsd;
in
{
options = {
lsd = {
enable = lib.mkEnableOption "Enable lsd in NixOS & home-manager";
};
};
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
programs.lsd = {
enable = true;
settings = {
color = {
when = "always";
};
icons = {
when = "always";
theme = "fancy";
separator = " ";
};
layout = "oneline";
size = "short";
permission = "rwx";
hyperlink = "never";
no-symlink = false;
symlink-arrow = "";
};
};
};
};
}

View File

@ -0,0 +1,23 @@
{
lib,
config,
username,
...
}:
let
cfg = config.nh;
in
{
options = {
nh = {
enable = lib.mkEnableOption "Enable nh in NixOS & home-manager";
};
};
config = lib.mkIf cfg.enable {
programs.nh = {
enable = true;
flake = "/home/ryan/.nixos-config";
};
home-manager.users.${username} = { };
};
}

View File

@ -0,0 +1,75 @@
{
lib,
config,
username,
...
}:
let
cfg = config.zsh;
in
{
options = {
zsh = {
enable = lib.mkEnableOption "Enable zsh in NixOS";
};
};
config = lib.mkIf cfg.enable {
programs = {
zsh.enable = true;
};
home-manager.users.${username} =
{
inputs,
config,
pkgs,
...
}:
{
programs.zsh = {
enable = true;
autosuggestion.enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
dotDir = ".config/zsh";
history = {
path = "${config.xdg.dataHome}/zsh/zsh_history";
size = 999999999;
extended = true;
ignoreSpace = true;
};
/*
initExtra = ''
export GITHUB_TOKEN="$(cat ${config.sops.secrets."github_token".path})"
'';
*/
oh-my-zsh = {
enable = true;
custom = "${config.xdg.configHome}/zsh/.zsh_custom";
plugins = [
"command-not-found"
"direnv"
"git"
"sudo"
];
};
plugins = [
{
name = "cd-ls";
src = inputs.cd-ls;
file = "cd-ls.plugin.zsh";
}
{
name = "zsh-fast-syntax-highlighting";
src = pkgs.zsh-fast-syntax-highlighting;
file = "share/zsh/site-functions/fast-syntax-highlighting.plugin.zsh";
}
{
name = "nix-zsh-completions";
src = pkgs.nix-zsh-completions;
file = "share/zsh/site-functions/nix-zsh-completions.plugin.zsh";
}
];
};
};
};
}

View File

@ -21,7 +21,7 @@
"vm.swappiness" = 10;
};
};
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [
"nowatchdog"
"zswap.enabled=0"

View File

@ -23,7 +23,11 @@ in
"nvidia_drm"
];
boot.blacklistedKernelModules = [ "nouveau" ];
boot.kernelParams = [ "nvidia_drm.fbdev=1" "nvidia-drm.modeset=1" "module_blacklist=nouveau" ];
boot.kernelParams = [
"nvidia_drm.fbdev=1"
"nvidia-drm.modeset=1"
"module_blacklist=nouveau"
];
environment.systemPackages = with pkgs; [
(writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
@ -42,7 +46,7 @@ in
open = true;
nvidiaPersistenced = true;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.latest;
package = lib.mkForce config.boot.kernelPackages.nvidiaPackages.latest;
};
};

View File

@ -17,7 +17,7 @@ in
config = lib.mkIf cfg.enable {
# Custom modules
# Apps
# atuin.enable = true;
atuin.enable = true;
# bash.enable = true;
# bat.enable = true;
# boxxy.enable = true;
@ -35,10 +35,10 @@ in
# jujutsu.enable = true;
# keyd.enable = false;
# lazygit.enable = true;
# lsd.enable = true;
lsd.enable = true;
# mullvad.enable = true;
# navi.enable = true;
# nh.enable = true;
nh.enable = true;
# nix-ld.enable = true;
# nix-index.enable = true;
# nushell.enable = true;
@ -54,7 +54,7 @@ in
# yt-dlp.enable = true;
# zen-browser.enable = true;
# zoxide.enable = true;
# zsh.enable = true;
zsh.enable = true;
# System
# flatpak.enable = true;

View File

@ -17,7 +17,7 @@ in
options = {
desktop = {
enable = lib.mkEnableOption "Enable desktop in NixOS";
hostMonitorSettings = lib.mkOption {
hostSettings = lib.mkOption {
type = lib.types.str;
default = "hostMonitorSettings";
};
@ -116,6 +116,7 @@ in
# Utilities
networkmanagerapplet
swaynotificationcenter
brightnessctl
];
xdg = {
mimeApps =
@ -175,8 +176,8 @@ in
};
# Services to start
services = {
displayManager.sddm.enable = true;
displayManager.sddm.wayland.enable = true;
displayManager.sddm.enable = true;
displayManager.sddm.wayland.enable = true;
xserver = {
enable = false;
xkb = {

View File

@ -1,6 +1,7 @@
{
lib,
config,
pkgs,
...
}:
let
@ -16,19 +17,31 @@ in
};
};
config = lib.mkIf cfg.enable {
users.users = {
${username} = {
initialPassword = "'";
isNormalUser = true;
extraGroups = [
"wheel"
];
};
users = {
defaultUserShell = pkgs.zsh;
users = {
${username} = {
initialPassword = "'";
isNormalUser = true;
extraGroups = [
"adbusers"
"audio"
"input"
"networkmanager"
"plugdev"
"realtime"
"uinput"
"video"
"dialout"
"wheel"
];
};
};
};
home-manager.users.${username} =
{ pkgs, ... }:
{
home.stateVersion = "23.11";
home.stateVersion = "23.11";
};
};
}
}