mirror of
https://gitlab.com/Zaney/zaneyos.git
synced 2025-06-27 15:31:53 +02:00
Add pkgs, switch to sddm, add prime hybrid graphics and hw clock modules too
This commit is contained in:
parent
97c350b080
commit
8ad180ddae
@ -16,8 +16,10 @@ in
|
|||||||
./users.nix
|
./users.nix
|
||||||
../../modules/amd-drivers.nix
|
../../modules/amd-drivers.nix
|
||||||
../../modules/nvidia-drivers.nix
|
../../modules/nvidia-drivers.nix
|
||||||
|
../../modules/nvidia-prime-drivers.nix
|
||||||
../../modules/intel-drivers.nix
|
../../modules/intel-drivers.nix
|
||||||
../../modules/vm-guest-services.nix
|
../../modules/vm-guest-services.nix
|
||||||
|
../../modules/local-hardware-clock.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
@ -41,14 +43,14 @@ in
|
|||||||
boot.kernelModules = [ "v4l2loopback" ];
|
boot.kernelModules = [ "v4l2loopback" ];
|
||||||
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||||
|
|
||||||
networking.hostName = "${host}";
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
# Configure network proxy if necessary
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
networking.hostName = "${host}";
|
||||||
|
networking.timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "America/Chicago";
|
time.timeZone = "America/Chicago";
|
||||||
@ -150,6 +152,7 @@ in
|
|||||||
rofi-wayland
|
rofi-wayland
|
||||||
imv
|
imv
|
||||||
transmission-gtk
|
transmission-gtk
|
||||||
|
distrobox
|
||||||
mpv
|
mpv
|
||||||
gimp
|
gimp
|
||||||
obs-studio
|
obs-studio
|
||||||
@ -164,50 +167,71 @@ in
|
|||||||
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||||
];
|
];
|
||||||
|
|
||||||
|
environment.systemPackages =
|
||||||
|
let
|
||||||
|
sugar = pkgs.callPackage ../../pkgs/sddm-sugar-dark.nix {};
|
||||||
|
tokyo-night = pkgs.libsForQt5.callPackage ../../pkgs/sddm-tokyo-night.nix {};
|
||||||
|
in [
|
||||||
|
sugar.sddm-sugar-dark # Name: sugar-dark
|
||||||
|
tokyo-night # Name: tokyo-night-sddm
|
||||||
|
pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||||
|
];
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
ZANEYOS_VERSION = "2.0";
|
ZANEYOS_VERSION = "2.0";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Services to start
|
# Services to start
|
||||||
services.xserver = {
|
services = {
|
||||||
enable = true;
|
xserver = {
|
||||||
displayManager.lightdm.enable = true;
|
enable = true;
|
||||||
desktopManager.cinnamon.enable = true;
|
displayManager.sddm = {
|
||||||
xkb = {
|
enable = true;
|
||||||
layout = "us";
|
autoNumlock = true;
|
||||||
variant = "";
|
wayland.enable = true;
|
||||||
|
theme = "sugar-dark";
|
||||||
|
};
|
||||||
|
desktopManager.cinnamon.enable = true;
|
||||||
|
xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
libinput.enable = true;
|
||||||
services.libinput.enable = true;
|
openssh.enable = true;
|
||||||
services.openssh.enable = true;
|
printing.enable = true;
|
||||||
services.printing.enable = true;
|
avahi = {
|
||||||
services.avahi = {
|
enable = true;
|
||||||
enable = true;
|
nssmdns4 = true;
|
||||||
nssmdns4 = true;
|
openFirewall = true;
|
||||||
openFirewall = true;
|
};
|
||||||
};
|
ipp-usb.enable = true;
|
||||||
services.ipp-usb.enable = true;
|
syncthing = {
|
||||||
services.syncthing = {
|
enable = false;
|
||||||
enable = false;
|
user = "${username}";
|
||||||
user = "${username}";
|
dataDir = "/home/${username}";
|
||||||
dataDir = "/home/${username}";
|
configDir = "/home/${username}/.config/syncthing";
|
||||||
configDir = "/home/${username}/.config/syncthing";
|
};
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
rpcbind.enable = true;
|
||||||
|
nfs.server.enable = true;
|
||||||
};
|
};
|
||||||
hardware.sane = {
|
hardware.sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraBackends = [ pkgs.sane-airscan ];
|
extraBackends = [ pkgs.sane-airscan ];
|
||||||
disabledDefaultBackends = [ "escl" ];
|
disabledDefaultBackends = [ "escl" ];
|
||||||
};
|
};
|
||||||
|
hardware.logitech.wireless.enable = true;
|
||||||
|
hardware.logitech.wireless.enableGraphical = true;
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Security / Polkit
|
# Security / Polkit
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
@ -246,7 +270,13 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Virtualization / Containers
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
|
virtualisation.podman = {
|
||||||
|
enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
# OpenGL
|
# OpenGL
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
@ -258,8 +288,14 @@ in
|
|||||||
# Extra Module Options
|
# Extra Module Options
|
||||||
drivers.amdgpu.enable = true;
|
drivers.amdgpu.enable = true;
|
||||||
drivers.nvidia.enable = false;
|
drivers.nvidia.enable = false;
|
||||||
|
drivers.nvidia-prime = {
|
||||||
|
enable = false;
|
||||||
|
intelBusID = "";
|
||||||
|
nvidiaBusID = "";
|
||||||
|
};
|
||||||
drivers.intel.enable = false;
|
drivers.intel.enable = false;
|
||||||
vm.guest-services.enable = false;
|
vm.guest-services.enable = false;
|
||||||
|
local.hardware-clock.enable = false;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
19
modules/local-hardware-clock.nix
Normal file
19
modules/local-hardware-clock.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.local.hardware-clock;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.local.hardware-clock = {
|
||||||
|
enable = mkEnableOption "Change Hardware Clock To Local Time";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
time.hardwareClockInLocalTime = true;
|
||||||
|
};
|
||||||
|
}
|
37
modules/nvidia-prime-drivers.nix
Normal file
37
modules/nvidia-prime-drivers.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.drivers.nvidia-prime;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.drivers.nvidia-prime = {
|
||||||
|
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
|
||||||
|
intelBusID = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
nvidiaBusID = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "PCI:0:2:0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
hardware.nvidia = {
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
# Make sure to use the correct Bus ID values for your system!
|
||||||
|
intelBusId = "${cfg.intelBusID}";
|
||||||
|
nvidiaBusId = "${cfg.nvidiaBusID}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
pkgs/sddm-sugar-dark.nix
Normal file
18
pkgs/sddm-sugar-dark.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ stdenv, fetchFromGitHub }:
|
||||||
|
{
|
||||||
|
sddm-sugar-dark = stdenv.mkDerivation rec {
|
||||||
|
pname = "sddm-sugar-dark-theme";
|
||||||
|
version = "1.2";
|
||||||
|
dontBuild = true;
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/sddm/themes
|
||||||
|
cp -aR $src $out/share/sddm/themes/sugar-dark
|
||||||
|
'';
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "MarianArlt";
|
||||||
|
repo = "sddm-sugar-dark";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0gx0am7vq1ywaw2rm1p015x90b75ccqxnb1sz3wy8yjl27v82yhb";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
33
pkgs/sddm-tokyo-night.nix
Normal file
33
pkgs/sddm-tokyo-night.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ lib, qtbase, qtsvg
|
||||||
|
, qtgraphicaleffects
|
||||||
|
, qtquickcontrols2
|
||||||
|
, wrapQtAppsHook
|
||||||
|
, stdenvNoCC
|
||||||
|
, fetchFromGitHub
|
||||||
|
}:
|
||||||
|
stdenvNoCC.mkDerivation rec {
|
||||||
|
pname = "tokyo-night-sddm";
|
||||||
|
version = "1..0";
|
||||||
|
dontBuild = true;
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "rototrash";
|
||||||
|
repo = "tokyo-night-sddm";
|
||||||
|
rev = "320c8e74ade1e94f640708eee0b9a75a395697c6";
|
||||||
|
sha256 = "sha256-JRVVzyefqR2L3UrEK2iWyhUKfPMUNUnfRZmwdz05wL0=";
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [
|
||||||
|
wrapQtAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedUserEnvPkgs = [
|
||||||
|
qtbase
|
||||||
|
qtsvg
|
||||||
|
qtgraphicaleffects
|
||||||
|
qtquickcontrols2
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/sddm/themes
|
||||||
|
cp -aR $src $out/share/sddm/themes/tokyo-night-sddm
|
||||||
|
'';
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user