Compare commits
No commits in common. "e2af7ce527695fe3a71ace93b4d3c90511de6b2c" and "a10f435059b55e90b304b0e4683685902971914a" have entirely different histories.
e2af7ce527
...
a10f435059
32 changed files with 194 additions and 212 deletions
|
|
@ -5,9 +5,7 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (osConfig.niksos) desktop hardware;
|
||||
inherit (desktop) games;
|
||||
inherit (hardware) bluetooth;
|
||||
inherit (osConfig.niksos) games bluetooth;
|
||||
in {
|
||||
# Also look at system/programs/games.nix (some programs have to be overlayed or have systemwide modules that have to be installed.)
|
||||
home.packages = lib.mkIf games ([
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
{
|
||||
pkgs,
|
||||
osConfig,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = lib.mkIf osConfig.niksos.desktop.apps [
|
||||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
(pkgs.kodi-wayland.withPackages (exts: [exts.inputstream-adaptive exts.inputstreamhelper]))
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{osConfig, ...}: {
|
||||
programs.nixcord = {
|
||||
enable = osConfig.niksos.desktop.apps;
|
||||
enable = true;
|
||||
discord.enable = false;
|
||||
vesktop.enable = true;
|
||||
vesktopConfig = {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
osConfig,
|
||||
...
|
||||
}: {
|
||||
home.packages = lib.mkIf osConfig.niksos.desktop.apps [
|
||||
home.packages = [
|
||||
pkgs.spotify
|
||||
pkgs.signal-desktop
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{osConfig, ...}: {
|
||||
{
|
||||
services.udiskie = {
|
||||
inherit (osConfig.services.udisks2) enable;
|
||||
enable = true;
|
||||
tray = "never"; #NOTE: Don't have a bar (yet?)
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
./other.nix
|
||||
./repl
|
||||
./starship.nix
|
||||
./transfer.nix
|
||||
./yazi.nix
|
||||
./zoxide.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@
|
|||
extraConfig.push.autoSetupRemote = true;
|
||||
lfs.enable = true;
|
||||
};
|
||||
git-credential-oauth.enable = true; #FIXME: need to relogin for each push for some reason.
|
||||
git-credential-oauth.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,35 +4,25 @@
|
|||
osConfig,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) optionals;
|
||||
inherit (osConfig.niksos.hardware) bluetooth portable;
|
||||
inherit (osConfig.niksos.desktop) apps;
|
||||
in {
|
||||
}: {
|
||||
home.packages =
|
||||
[
|
||||
pkgs.ripgrep
|
||||
pkgs.fzf
|
||||
|
||||
pkgs.p7zip
|
||||
pkgs.dua
|
||||
|
||||
pkgs.usbutils
|
||||
pkgs.pciutils
|
||||
pkgs.inetutils
|
||||
pkgs.aria2
|
||||
pkgs.dua
|
||||
pkgs.file
|
||||
]
|
||||
++ optionals apps [
|
||||
# Kinda don't need to include these on more minimal installs.
|
||||
pkgs.ffmpeg
|
||||
pkgs.imagemagick
|
||||
pkgs.ghostscript
|
||||
pkgs.gurk-rs
|
||||
pkgs.playerctl
|
||||
]
|
||||
++ optionals bluetooth [
|
||||
++ lib.optionals osConfig.niksos.bluetooth [
|
||||
pkgs.ear2ctl
|
||||
]
|
||||
++ optionals portable.enable [
|
||||
++ lib.optionals osConfig.niksos.portable.enable [
|
||||
inputs.somcli.defaultPackage.${pkgs.system}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
37
home/shell/transfer.nix
Normal file
37
home/shell/transfer.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}: {
|
||||
home.packages = [
|
||||
(pkgs.writeShellScriptBin "transfer" ''
|
||||
PASSWORD=$(sed 's/.*="\(.*\)"/\1/' ${osConfig.age.secrets.transferSh.path})
|
||||
|
||||
|
||||
if [ -z "$PASSWORD" ]; then
|
||||
echo "Error: Password not found."
|
||||
return 1
|
||||
fi
|
||||
|
||||
file_path="$1"
|
||||
if [ -z "$file_path" ]; then
|
||||
echo "Usage: transfer <file>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
response=$(curl -sD - --user "jsw:$PASSWORD" --progress-bar --upload-file "$file_path" "https://share.jsw.tf/$(basename "$file_path")")
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
DELETE=$(echo "$response" | grep x-url-delete | sed "s/.*\///")
|
||||
URL=$(echo "$response" | tail -n1)
|
||||
|
||||
echo "Delete code: $DELETE"
|
||||
echo "URL: $URL"
|
||||
else
|
||||
echo "Upload failed."
|
||||
return 1
|
||||
fi
|
||||
echo
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
cfg = osConfig.programs.hyprland.enable;
|
||||
cfg = osConfig.niksos.desktop.hyprland;
|
||||
in {
|
||||
imports = [
|
||||
./fuzzel.nix
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
...
|
||||
}: {
|
||||
programs.fuzzel = {
|
||||
inherit (osConfig.programs.hyprland) enable;
|
||||
enable = osConfig.niksos.desktop.hyprland;
|
||||
settings.main = {
|
||||
launch-prefix = "${lib.getExe pkgs.uwsm} app --";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,9 +8,7 @@
|
|||
}: let
|
||||
inherit (lib) getExe;
|
||||
inherit (config.lib.stylix.colors) base0D;
|
||||
inherit (osConfig.niksos) desktop hardware;
|
||||
inherit (hardware) portable bluetooth;
|
||||
inherit (desktop) games;
|
||||
inherit (osConfig.niksos) games portable;
|
||||
|
||||
runOnce = program: "pgrep ${program} || uwsm app -- ${program}";
|
||||
uwsm = getExe pkgs.uwsm;
|
||||
|
|
@ -88,7 +86,7 @@ in {
|
|||
"$m, Escape, exec, ${hyprlock}"
|
||||
|
||||
"$m, A, exec, ${pulsemixer}"
|
||||
|
||||
"$m, B, exec, ${bluetui}"
|
||||
"$m, N, exec, ${nmtui}"
|
||||
''
|
||||
$m, S, exec, bash -c 'hyprctl notify -1 5000 "rgb(${base0D})" "$(${getExe (import ./scripts.nix {inherit pkgs;}).statusnotify})"'
|
||||
|
|
@ -108,7 +106,6 @@ in {
|
|||
"$m SHIFT, j, movewindow, d"
|
||||
]
|
||||
++ workspaces
|
||||
++ lib.optional bluetooth "$m, B, exec, ${bluetui}"
|
||||
++ lib.optionals games (let
|
||||
torzu = "${
|
||||
appE inputs.nixpkgs-torzu.legacyPackages.${pkgs.system}.torzu
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ in {
|
|||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
inherit (osConfig.programs.hyprland) enable;
|
||||
enable = osConfig.niksos.desktop.hyprland;
|
||||
settings = {
|
||||
env = [
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
|
|
@ -26,7 +26,7 @@ in {
|
|||
"${uwsm} finalize"
|
||||
"${hyprlock}" # Lock screen
|
||||
]
|
||||
++ lib.optional osConfig.niksos.hardware.portable.enable "powermode sync";
|
||||
++ lib.optional osConfig.niksos.portable.enable "powermode sync";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
inherit (config.lib.stylix.colors) base05;
|
||||
in {
|
||||
programs.hyprlock = {
|
||||
inherit (osConfig.programs.hyprland) enable;
|
||||
enable = osConfig.niksos.desktop.hyprland;
|
||||
|
||||
settings = {
|
||||
general = {
|
||||
|
|
@ -15,7 +15,7 @@ in {
|
|||
hide_cursor = false;
|
||||
no_fade_in = true;
|
||||
};
|
||||
auth."fingerprint:enabled" = osConfig.niksos.hardware.fingerprint;
|
||||
auth."fingerprint:enabled" = true;
|
||||
|
||||
label = [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
{osConfig, ...}: let
|
||||
inherit (osConfig.niksos) desktop;
|
||||
in {
|
||||
{osConfig, ...}: {
|
||||
services.mako = {
|
||||
inherit (osConfig.programs.hyprland) enable;
|
||||
enable = osConfig.niksos.desktop.hyprland;
|
||||
settings.defaultTimeout = 5000;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,8 @@
|
|||
|
||||
niksos = {
|
||||
server = true;
|
||||
hardware.graphics = {
|
||||
nvidia = false; #FIXME: Compile error
|
||||
intel = true;
|
||||
};
|
||||
graphics.nvidia = false; #FIXME: Compile error
|
||||
graphics.intel = true;
|
||||
};
|
||||
|
||||
services.immich = {
|
||||
|
|
|
|||
|
|
@ -23,27 +23,24 @@
|
|||
|
||||
# programs.evolution.enable = true; # FIXME: move to appropiate place.
|
||||
niksos = {
|
||||
hardware = {
|
||||
joycond = false; #NOTE: enable when game night lol
|
||||
fingerprint = true;
|
||||
bluetooth = true;
|
||||
|
||||
portable = {
|
||||
enable = true;
|
||||
hyprland = {
|
||||
powerSaver = ''
|
||||
hyprctl keyword monitor eDP-1,2880x1920@60,0x0,1.5,vrr,1
|
||||
'';
|
||||
performance = ''
|
||||
hyprctl keyword monitor eDP-1,2880x1920@120,0x0,1.5,vrr,1
|
||||
'';
|
||||
};
|
||||
joycond = false; #NOTE: enable when game night lol
|
||||
fingerprint = true;
|
||||
bluetooth = true;
|
||||
portable = {
|
||||
enable = true;
|
||||
hyprland = {
|
||||
powerSaver = ''
|
||||
hyprctl keyword monitor eDP-1,2880x1920@60,0x0,1.5,vrr,1
|
||||
'';
|
||||
performance = ''
|
||||
hyprctl keyword monitor eDP-1,2880x1920@120,0x0,1.5,vrr,1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
neovim = true;
|
||||
games = true;
|
||||
desktop = {
|
||||
games = true;
|
||||
enable = true;
|
||||
hyprland = true;
|
||||
kde = true;
|
||||
|
|
|
|||
|
|
@ -9,31 +9,27 @@
|
|||
services.fwupd.enable = false;
|
||||
|
||||
niksos = {
|
||||
bluetooth = false;
|
||||
desktop = {
|
||||
enable = false;
|
||||
hyprland = false;
|
||||
kde = false;
|
||||
apps = false;
|
||||
games = false;
|
||||
};
|
||||
hardware = {
|
||||
fingerprint = false;
|
||||
bluetooth = false;
|
||||
joycond = false;
|
||||
graphics = {
|
||||
enable = false;
|
||||
intel = false;
|
||||
nvidia = false;
|
||||
};
|
||||
portable = {
|
||||
enable = false;
|
||||
hyprland = {
|
||||
powerSaver = "";
|
||||
performance = "";
|
||||
};
|
||||
};
|
||||
fingerprint = false;
|
||||
games = false;
|
||||
graphics = {
|
||||
enable = false;
|
||||
intel = false;
|
||||
nvidia = false;
|
||||
};
|
||||
neovim = false;
|
||||
portable = {
|
||||
enable = false;
|
||||
hyprland = {
|
||||
powerSaver = "";
|
||||
performance = "";
|
||||
};
|
||||
};
|
||||
server = false;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -18,23 +18,9 @@ in {
|
|||
];
|
||||
|
||||
options.niksos.desktop = {
|
||||
enable = mkEO "enable desktop related programs (+home manager).";
|
||||
apps = mkEO "extra bloat.";
|
||||
games = mkEO "gaming related programs";
|
||||
|
||||
enable = mkEO "enable desktop related programs.";
|
||||
hyprland = mkEO "enable hyprland related programs.";
|
||||
kde = mkEO "enable kde specialisation.";
|
||||
activeDesktop = lib.mkOption {
|
||||
type = lib.types.enum ["hyprland" "kde"];
|
||||
description = "What desktop should be the default, other enabled desktops will be specialized.";
|
||||
default =
|
||||
if cfg.hyprland
|
||||
then "hyprland"
|
||||
else if cfg.kde
|
||||
then "kde"
|
||||
else "hyprland";
|
||||
example = "hyprland";
|
||||
};
|
||||
};
|
||||
|
||||
config.assertions = mkIf (cfg.hyprland
|
||||
|
|
@ -43,9 +29,5 @@ in {
|
|||
assertion = cfg.enable;
|
||||
message = "You need to enable desktop for the hyprland/kde module to work";
|
||||
}
|
||||
{
|
||||
assertion = config.niksos.desktop.enable;
|
||||
message = "The games option needs desktop to be enabled for it to work properly (it enables home-manager).";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,9 +5,21 @@
|
|||
}: {
|
||||
config = lib.mkIf config.niksos.desktop.enable {
|
||||
# greetd display manager
|
||||
services.greetd = {
|
||||
services.greetd = let
|
||||
session = {
|
||||
command = lib.mkDefault "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
|
||||
user = "jsw";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
settings.terminal.vt = 1;
|
||||
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
|
||||
programs.uwsm.enable = config.niksos.desktop.hyprland;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,16 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (config.niksos) desktop;
|
||||
cfg = desktop.enable && desktop.hyprland;
|
||||
active = cfg && desktop.activeDesktop == "hyprland";
|
||||
ifActive = x: lib.mkIf active x;
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
||||
in {
|
||||
specialisation.de.configuration =
|
||||
lib.mkIf cfg
|
||||
&& !active {
|
||||
niksos.desktop.activeDesktop = lib.mkForce "hyprland";
|
||||
};
|
||||
|
||||
programs = ifActive {
|
||||
hyprland = {
|
||||
config = lib.mkIf cfg {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
};
|
||||
uwsm.enable = true;
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Makes electron apps use wayland.
|
||||
};
|
||||
|
||||
services.greetd.settings = let
|
||||
session = {
|
||||
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
|
||||
user = "jsw";
|
||||
};
|
||||
in
|
||||
ifActive {
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = ifActive "1"; # Makes electron apps use wayland.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,28 +4,25 @@
|
|||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (config.niksos) desktop;
|
||||
cfg = desktop.enable && desktop.kde;
|
||||
active = cfg && desktop.activeDesktop == "kde";
|
||||
ifActive = x: lib.mkIf active x;
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.kde;
|
||||
in {
|
||||
specialisation.de.configuration =
|
||||
lib.mkIf cfg
|
||||
&& !active {
|
||||
niksos.desktop.activeDesktop = lib.mkForce "kde";
|
||||
specialisation.de.configuration = lib.mkIf cfg {
|
||||
niksos.desktop.hyprland = lib.mkForce false;
|
||||
services = {
|
||||
greetd = let
|
||||
session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
|
||||
services = ifActive {
|
||||
greetd.settings = let
|
||||
session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
||||
in {
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
home-manager.users = ifActive {
|
||||
jsw.stylix.autoEnable = false;
|
||||
home-manager.users.jsw.stylix.autoEnable = false;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf config.programs.hyprland.enable {
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
||||
in {
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf cfg {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
wantedBy = ["graphical-session.target"];
|
||||
wants = ["graphical-session.target"];
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
xdg.portal = lib.mkIf config.programs.hyprland.enable {
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
||||
in {
|
||||
xdg.portal = lib.mkIf cfg {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
config = {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.niksos.hardware.bluetooth {
|
||||
options.niksos.bluetooth = lib.mkEnableOption "bluetooth related stuff.";
|
||||
|
||||
config = lib.mkIf config.niksos.bluetooth {
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
input.General.ClassicBondedOnly = false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
{lib, ...}: let
|
||||
mkEO = lib.mkEnableOption;
|
||||
in {
|
||||
config.hardware.enableRedistributableFirmware = true;
|
||||
{
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
imports = [
|
||||
./bluetooth.nix
|
||||
|
|
@ -11,32 +9,4 @@ in {
|
|||
./joycond.nix
|
||||
./power.nix
|
||||
];
|
||||
|
||||
options.niksos.hardware = {
|
||||
bluetooth = mkEO "bluetooth related stuff.";
|
||||
fingerprint = mkEO "fingerprint support.";
|
||||
|
||||
graphics = {
|
||||
enable = mkEO "core graphics";
|
||||
intel = mkEO "additional intel drivers";
|
||||
nvidia = mkEO "additoinal nvidia drivers";
|
||||
};
|
||||
|
||||
joycond = mkEO "support for nintendo switch controllers.";
|
||||
|
||||
portable = {
|
||||
enable = mkEO "battery optimisers";
|
||||
hyprland = let
|
||||
gen = mode:
|
||||
lib.mkOption {
|
||||
default = "";
|
||||
description = "Shell commands to run when switching to ${mode} mode.";
|
||||
type = lib.types.lines;
|
||||
};
|
||||
in {
|
||||
powerSaver = gen "power-saver";
|
||||
performance = gen "performance";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,22 +4,22 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.niksos) hardware desktop;
|
||||
inherit (lib) mkIf;
|
||||
inherit (config.niksos) fingerprint desktop;
|
||||
inherit (lib) mkIf mkEnableOption;
|
||||
uwsm = lib.getExe pkgs.uwsm;
|
||||
foot = lib.getExe pkgs.foot;
|
||||
hypr = config.programs.hyprland.enable;
|
||||
in {
|
||||
config = mkIf hardware.fingerprint {
|
||||
options.niksos.fingerprint = mkEnableOption "fingerprint support.";
|
||||
config = mkIf fingerprint {
|
||||
services = {
|
||||
fprintd.enable = true;
|
||||
logind.extraConfig = mkIf hypr ''
|
||||
logind.extraConfig = mkIf desktop.hyprland ''
|
||||
# don’t shutdown when power button is short-pressed
|
||||
HandlePowerKey=ignore
|
||||
'';
|
||||
};
|
||||
|
||||
home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf hypr {
|
||||
home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf desktop.hyprland {
|
||||
bind = [
|
||||
", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'"
|
||||
];
|
||||
|
|
|
|||
|
|
@ -4,15 +4,21 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) optionals mkDefault;
|
||||
inherit (config.niksos.hardware) graphics;
|
||||
inherit (graphics) enable nvidia intel;
|
||||
inherit (lib) optionals mkEnableOption mkDefault;
|
||||
inherit (config.niksos) graphics;
|
||||
inherit (graphics) enable;
|
||||
|
||||
Nvidia = enable && nvidia;
|
||||
Intel = enable && intel;
|
||||
nvidia = graphics.enable && graphics.nvidia;
|
||||
intel = graphics.enable && graphics.intel;
|
||||
in {
|
||||
options.niksos.graphics = {
|
||||
enable = mkEnableOption "core graphics";
|
||||
intel = mkEnableOption "additional intel drivers";
|
||||
nvidia = mkEnableOption "additoinal nvidia drivers";
|
||||
};
|
||||
|
||||
config = {
|
||||
niksos.hardware.graphics.enable = mkDefault true;
|
||||
niksos.graphics.enable = mkDefault true;
|
||||
|
||||
hardware.graphics = {
|
||||
inherit enable;
|
||||
|
|
@ -23,10 +29,10 @@ in {
|
|||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
]
|
||||
++ optionals Intel [
|
||||
++ optionals intel [
|
||||
pkgs.intel-media-driver
|
||||
]
|
||||
++ optionals Nvidia [
|
||||
++ optionals nvidia [
|
||||
nvidia-vaapi-driver
|
||||
];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux;
|
||||
|
|
@ -35,18 +41,18 @@ in {
|
|||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
]
|
||||
++ optionals Intel [
|
||||
++ optionals intel [
|
||||
pkgs.pkgsi686Linux.intel-media-driver
|
||||
]
|
||||
++ optionals Nvidia [
|
||||
++ optionals nvidia [
|
||||
pkgs.pkgsi686Linux.nvidia-vaapi-driver
|
||||
];
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = Nvidia;
|
||||
modesetting.enable = nvidia;
|
||||
open = false;
|
||||
};
|
||||
services.xserver.videoDrivers = optionals Nvidia ["nvidia"];
|
||||
services.xserver.videoDrivers = optionals nvidia ["nvidia"];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
lib,
|
||||
...
|
||||
}: {
|
||||
services = lib.mkIf config.niksos.hardware.joycond {
|
||||
options.niksos.joycond = lib.mkEnableOption "support for nintendo switch controllers.";
|
||||
|
||||
config.services = lib.mkIf config.niksos.joycond {
|
||||
usbmuxd.enable = true;
|
||||
joycond.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,8 +5,22 @@
|
|||
...
|
||||
}: let
|
||||
inherit (config) niksos;
|
||||
cfg = niksos.hardware.portable;
|
||||
cfg = niksos.portable;
|
||||
in {
|
||||
options.niksos.portable = {
|
||||
enable = lib.mkEnableOption "battery optimisers";
|
||||
hyprland = let
|
||||
gen = mode:
|
||||
lib.mkOption {
|
||||
default = "";
|
||||
description = "Shell commands to run when switching to ${mode} mode.";
|
||||
type = lib.types.lines;
|
||||
};
|
||||
in {
|
||||
powerSaver = gen "power-saver";
|
||||
performance = gen "performance";
|
||||
};
|
||||
};
|
||||
config = {
|
||||
services = lib.mkIf cfg.enable {
|
||||
logind = {
|
||||
|
|
@ -17,7 +31,7 @@ in {
|
|||
power-profiles-daemon.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = lib.mkIf config.programs.hyprland.enable [
|
||||
environment.systemPackages = lib.mkIf niksos.desktop.hyprland [
|
||||
(pkgs.writeScriptBin "powermode" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,16 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.games;
|
||||
cfg = config.niksos.games;
|
||||
in {
|
||||
options.niksos.games = lib.mkEnableOption "gaming related stuff.";
|
||||
config = lib.mkIf cfg {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.niksos.desktop.enable;
|
||||
message = "The games option needs desktop to be enabled for it to work properly (it enables home-manager).";
|
||||
}
|
||||
];
|
||||
# nixpkgs.overlays = [
|
||||
# (final: prev: let
|
||||
# version = "1.4.2";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{config, ...}: {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
openFirewall = !config.niksos.hardware.portable.enable;
|
||||
openFirewall = !config.niksos.portable.enable;
|
||||
settings.UseDns = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue