Compare commits
4 commits
a10f435059
...
e2af7ce527
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2af7ce527 | ||
|
|
d233e18593 | ||
|
|
678c3cb4f7 | ||
|
|
0924f9c267 |
32 changed files with 213 additions and 195 deletions
|
|
@ -5,7 +5,9 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (osConfig.niksos) games bluetooth;
|
inherit (osConfig.niksos) desktop hardware;
|
||||||
|
inherit (desktop) games;
|
||||||
|
inherit (hardware) bluetooth;
|
||||||
in {
|
in {
|
||||||
# Also look at system/programs/games.nix (some programs have to be overlayed or have systemwide modules that have to be installed.)
|
# 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 ([
|
home.packages = lib.mkIf games ([
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
home.packages = [
|
pkgs,
|
||||||
|
osConfig,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = lib.mkIf osConfig.niksos.desktop.apps [
|
||||||
(pkgs.kodi-wayland.withPackages (exts: [exts.inputstream-adaptive exts.inputstreamhelper]))
|
(pkgs.kodi-wayland.withPackages (exts: [exts.inputstream-adaptive exts.inputstreamhelper]))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{osConfig, ...}: {
|
{osConfig, ...}: {
|
||||||
programs.nixcord = {
|
programs.nixcord = {
|
||||||
enable = true;
|
enable = osConfig.niksos.desktop.apps;
|
||||||
discord.enable = false;
|
discord.enable = false;
|
||||||
vesktop.enable = true;
|
vesktop.enable = true;
|
||||||
vesktopConfig = {
|
vesktopConfig = {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.packages = [
|
home.packages = lib.mkIf osConfig.niksos.desktop.apps [
|
||||||
pkgs.spotify
|
pkgs.spotify
|
||||||
pkgs.signal-desktop
|
pkgs.signal-desktop
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{osConfig, ...}: {
|
||||||
services.udiskie = {
|
services.udiskie = {
|
||||||
enable = true;
|
inherit (osConfig.services.udisks2) enable;
|
||||||
tray = "never"; #NOTE: Don't have a bar (yet?)
|
tray = "never"; #NOTE: Don't have a bar (yet?)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
./other.nix
|
./other.nix
|
||||||
./repl
|
./repl
|
||||||
./starship.nix
|
./starship.nix
|
||||||
./transfer.nix
|
|
||||||
./yazi.nix
|
./yazi.nix
|
||||||
./zoxide.nix
|
./zoxide.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,6 @@
|
||||||
extraConfig.push.autoSetupRemote = true;
|
extraConfig.push.autoSetupRemote = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
};
|
};
|
||||||
git-credential-oauth.enable = true;
|
git-credential-oauth.enable = true; #FIXME: need to relogin for each push for some reason.
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,25 +4,35 @@
|
||||||
osConfig,
|
osConfig,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
inherit (lib) optionals;
|
||||||
|
inherit (osConfig.niksos.hardware) bluetooth portable;
|
||||||
|
inherit (osConfig.niksos.desktop) apps;
|
||||||
|
in {
|
||||||
home.packages =
|
home.packages =
|
||||||
[
|
[
|
||||||
pkgs.ripgrep
|
pkgs.ripgrep
|
||||||
|
pkgs.fzf
|
||||||
|
|
||||||
pkgs.p7zip
|
pkgs.p7zip
|
||||||
|
pkgs.dua
|
||||||
|
|
||||||
pkgs.usbutils
|
pkgs.usbutils
|
||||||
pkgs.pciutils
|
pkgs.pciutils
|
||||||
pkgs.inetutils
|
pkgs.inetutils
|
||||||
pkgs.aria2
|
pkgs.aria2
|
||||||
pkgs.dua
|
|
||||||
pkgs.file
|
pkgs.file
|
||||||
pkgs.ffmpeg
|
|
||||||
pkgs.gurk-rs
|
|
||||||
pkgs.playerctl
|
|
||||||
]
|
]
|
||||||
++ lib.optionals osConfig.niksos.bluetooth [
|
++ optionals apps [
|
||||||
|
# Kinda don't need to include these on more minimal installs.
|
||||||
|
pkgs.ffmpeg
|
||||||
|
pkgs.imagemagick
|
||||||
|
pkgs.ghostscript
|
||||||
|
]
|
||||||
|
++ optionals bluetooth [
|
||||||
pkgs.ear2ctl
|
pkgs.ear2ctl
|
||||||
]
|
]
|
||||||
++ lib.optionals osConfig.niksos.portable.enable [
|
++ optionals portable.enable [
|
||||||
inputs.somcli.defaultPackage.${pkgs.system}
|
inputs.somcli.defaultPackage.${pkgs.system}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
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
|
}: let
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf;
|
||||||
cfg = osConfig.niksos.desktop.hyprland;
|
cfg = osConfig.programs.hyprland.enable;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./fuzzel.nix
|
./fuzzel.nix
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.fuzzel = {
|
programs.fuzzel = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
settings.main = {
|
settings.main = {
|
||||||
launch-prefix = "${lib.getExe pkgs.uwsm} app --";
|
launch-prefix = "${lib.getExe pkgs.uwsm} app --";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) getExe;
|
inherit (lib) getExe;
|
||||||
inherit (config.lib.stylix.colors) base0D;
|
inherit (config.lib.stylix.colors) base0D;
|
||||||
inherit (osConfig.niksos) games portable;
|
inherit (osConfig.niksos) desktop hardware;
|
||||||
|
inherit (hardware) portable bluetooth;
|
||||||
|
inherit (desktop) games;
|
||||||
|
|
||||||
runOnce = program: "pgrep ${program} || uwsm app -- ${program}";
|
runOnce = program: "pgrep ${program} || uwsm app -- ${program}";
|
||||||
uwsm = getExe pkgs.uwsm;
|
uwsm = getExe pkgs.uwsm;
|
||||||
|
|
@ -86,7 +88,7 @@ in {
|
||||||
"$m, Escape, exec, ${hyprlock}"
|
"$m, Escape, exec, ${hyprlock}"
|
||||||
|
|
||||||
"$m, A, exec, ${pulsemixer}"
|
"$m, A, exec, ${pulsemixer}"
|
||||||
"$m, B, exec, ${bluetui}"
|
|
||||||
"$m, N, exec, ${nmtui}"
|
"$m, N, exec, ${nmtui}"
|
||||||
''
|
''
|
||||||
$m, S, exec, bash -c 'hyprctl notify -1 5000 "rgb(${base0D})" "$(${getExe (import ./scripts.nix {inherit pkgs;}).statusnotify})"'
|
$m, S, exec, bash -c 'hyprctl notify -1 5000 "rgb(${base0D})" "$(${getExe (import ./scripts.nix {inherit pkgs;}).statusnotify})"'
|
||||||
|
|
@ -106,6 +108,7 @@ in {
|
||||||
"$m SHIFT, j, movewindow, d"
|
"$m SHIFT, j, movewindow, d"
|
||||||
]
|
]
|
||||||
++ workspaces
|
++ workspaces
|
||||||
|
++ lib.optional bluetooth "$m, B, exec, ${bluetui}"
|
||||||
++ lib.optionals games (let
|
++ lib.optionals games (let
|
||||||
torzu = "${
|
torzu = "${
|
||||||
appE inputs.nixpkgs-torzu.legacyPackages.${pkgs.system}.torzu
|
appE inputs.nixpkgs-torzu.legacyPackages.${pkgs.system}.torzu
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
settings = {
|
settings = {
|
||||||
env = [
|
env = [
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||||
|
|
@ -26,7 +26,7 @@ in {
|
||||||
"${uwsm} finalize"
|
"${uwsm} finalize"
|
||||||
"${hyprlock}" # Lock screen
|
"${hyprlock}" # Lock screen
|
||||||
]
|
]
|
||||||
++ lib.optional osConfig.niksos.portable.enable "powermode sync";
|
++ lib.optional osConfig.niksos.hardware.portable.enable "powermode sync";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
inherit (config.lib.stylix.colors) base05;
|
inherit (config.lib.stylix.colors) base05;
|
||||||
in {
|
in {
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
|
|
@ -15,7 +15,7 @@ in {
|
||||||
hide_cursor = false;
|
hide_cursor = false;
|
||||||
no_fade_in = true;
|
no_fade_in = true;
|
||||||
};
|
};
|
||||||
auth."fingerprint:enabled" = true;
|
auth."fingerprint:enabled" = osConfig.niksos.hardware.fingerprint;
|
||||||
|
|
||||||
label = [
|
label = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{osConfig, ...}: {
|
{osConfig, ...}: let
|
||||||
|
inherit (osConfig.niksos) desktop;
|
||||||
|
in {
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
settings.defaultTimeout = 5000;
|
settings.defaultTimeout = 5000;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,10 @@
|
||||||
|
|
||||||
niksos = {
|
niksos = {
|
||||||
server = true;
|
server = true;
|
||||||
graphics.nvidia = false; #FIXME: Compile error
|
hardware.graphics = {
|
||||||
graphics.intel = true;
|
nvidia = false; #FIXME: Compile error
|
||||||
|
intel = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.immich = {
|
services.immich = {
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,11 @@
|
||||||
|
|
||||||
# programs.evolution.enable = true; # FIXME: move to appropiate place.
|
# programs.evolution.enable = true; # FIXME: move to appropiate place.
|
||||||
niksos = {
|
niksos = {
|
||||||
|
hardware = {
|
||||||
joycond = false; #NOTE: enable when game night lol
|
joycond = false; #NOTE: enable when game night lol
|
||||||
fingerprint = true;
|
fingerprint = true;
|
||||||
bluetooth = true;
|
bluetooth = true;
|
||||||
|
|
||||||
portable = {
|
portable = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hyprland = {
|
hyprland = {
|
||||||
|
|
@ -37,10 +39,11 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
neovim = true;
|
neovim = true;
|
||||||
games = true;
|
|
||||||
desktop = {
|
desktop = {
|
||||||
|
games = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
hyprland = true;
|
hyprland = true;
|
||||||
kde = true;
|
kde = true;
|
||||||
|
|
|
||||||
|
|
@ -9,20 +9,22 @@
|
||||||
services.fwupd.enable = false;
|
services.fwupd.enable = false;
|
||||||
|
|
||||||
niksos = {
|
niksos = {
|
||||||
bluetooth = false;
|
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = false;
|
enable = false;
|
||||||
hyprland = false;
|
hyprland = false;
|
||||||
kde = false;
|
kde = false;
|
||||||
};
|
apps = false;
|
||||||
fingerprint = false;
|
|
||||||
games = false;
|
games = false;
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
fingerprint = false;
|
||||||
|
bluetooth = false;
|
||||||
|
joycond = false;
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = false;
|
enable = false;
|
||||||
intel = false;
|
intel = false;
|
||||||
nvidia = false;
|
nvidia = false;
|
||||||
};
|
};
|
||||||
neovim = false;
|
|
||||||
portable = {
|
portable = {
|
||||||
enable = false;
|
enable = false;
|
||||||
hyprland = {
|
hyprland = {
|
||||||
|
|
@ -30,6 +32,8 @@
|
||||||
performance = "";
|
performance = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
neovim = false;
|
||||||
server = false;
|
server = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,23 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
options.niksos.desktop = {
|
options.niksos.desktop = {
|
||||||
enable = mkEO "enable desktop related programs.";
|
enable = mkEO "enable desktop related programs (+home manager).";
|
||||||
|
apps = mkEO "extra bloat.";
|
||||||
|
games = mkEO "gaming related programs";
|
||||||
|
|
||||||
hyprland = mkEO "enable hyprland related programs.";
|
hyprland = mkEO "enable hyprland related programs.";
|
||||||
kde = mkEO "enable kde specialisation.";
|
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
|
config.assertions = mkIf (cfg.hyprland
|
||||||
|
|
@ -29,5 +43,9 @@ in {
|
||||||
assertion = cfg.enable;
|
assertion = cfg.enable;
|
||||||
message = "You need to enable desktop for the hyprland/kde module to work";
|
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,21 +5,9 @@
|
||||||
}: {
|
}: {
|
||||||
config = lib.mkIf config.niksos.desktop.enable {
|
config = lib.mkIf config.niksos.desktop.enable {
|
||||||
# greetd display manager
|
# greetd display manager
|
||||||
services.greetd = let
|
services.greetd = {
|
||||||
session = {
|
|
||||||
command = lib.mkDefault "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
|
|
||||||
user = "jsw";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings.terminal.vt = 1;
|
||||||
settings = {
|
|
||||||
terminal.vt = 1;
|
|
||||||
default_session = session;
|
|
||||||
initial_session = session;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.uwsm.enable = config.niksos.desktop.hyprland;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,37 @@
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
inherit (config.niksos) desktop;
|
||||||
|
cfg = desktop.enable && desktop.hyprland;
|
||||||
|
active = cfg && desktop.activeDesktop == "hyprland";
|
||||||
|
ifActive = x: lib.mkIf active x;
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf cfg {
|
specialisation.de.configuration =
|
||||||
programs.hyprland = {
|
lib.mkIf cfg
|
||||||
|
&& !active {
|
||||||
|
niksos.desktop.activeDesktop = lib.mkForce "hyprland";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = ifActive {
|
||||||
|
hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = true;
|
withUWSM = true;
|
||||||
};
|
};
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Makes electron apps use wayland.
|
uwsm.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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,25 +4,28 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.kde;
|
inherit (config.niksos) desktop;
|
||||||
|
cfg = desktop.enable && desktop.kde;
|
||||||
|
active = cfg && desktop.activeDesktop == "kde";
|
||||||
|
ifActive = x: lib.mkIf active x;
|
||||||
in {
|
in {
|
||||||
specialisation.de.configuration = lib.mkIf cfg {
|
specialisation.de.configuration =
|
||||||
niksos.desktop.hyprland = lib.mkForce false;
|
lib.mkIf cfg
|
||||||
services = {
|
&& !active {
|
||||||
greetd = let
|
niksos.desktop.activeDesktop = lib.mkForce "kde";
|
||||||
|
};
|
||||||
|
|
||||||
|
services = ifActive {
|
||||||
|
greetd.settings = let
|
||||||
session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
||||||
in {
|
in {
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
terminal.vt = 1;
|
|
||||||
default_session = session;
|
default_session = session;
|
||||||
initial_session = session;
|
initial_session = session;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
desktopManager.plasma6.enable = true;
|
desktopManager.plasma6.enable = true;
|
||||||
};
|
};
|
||||||
|
home-manager.users = ifActive {
|
||||||
home-manager.users.jsw.stylix.autoEnable = false;
|
jsw.stylix.autoEnable = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf config.programs.hyprland.enable {
|
||||||
in {
|
|
||||||
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf cfg {
|
|
||||||
description = "polkit-gnome-authentication-agent-1";
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
wantedBy = ["graphical-session.target"];
|
wantedBy = ["graphical-session.target"];
|
||||||
wants = ["graphical-session.target"];
|
wants = ["graphical-session.target"];
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,8 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
xdg.portal = lib.mkIf config.programs.hyprland.enable {
|
||||||
in {
|
|
||||||
xdg.portal = lib.mkIf cfg {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
xdgOpenUsePortal = true;
|
xdgOpenUsePortal = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options.niksos.bluetooth = lib.mkEnableOption "bluetooth related stuff.";
|
config = lib.mkIf config.niksos.hardware.bluetooth {
|
||||||
|
|
||||||
config = lib.mkIf config.niksos.bluetooth {
|
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
input.General.ClassicBondedOnly = false;
|
input.General.ClassicBondedOnly = false;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
{
|
{lib, ...}: let
|
||||||
hardware.enableRedistributableFirmware = true;
|
mkEO = lib.mkEnableOption;
|
||||||
|
in {
|
||||||
|
config.hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./bluetooth.nix
|
./bluetooth.nix
|
||||||
|
|
@ -9,4 +11,32 @@
|
||||||
./joycond.nix
|
./joycond.nix
|
||||||
./power.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,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.niksos) fingerprint desktop;
|
inherit (config.niksos) hardware desktop;
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf;
|
||||||
uwsm = lib.getExe pkgs.uwsm;
|
uwsm = lib.getExe pkgs.uwsm;
|
||||||
foot = lib.getExe pkgs.foot;
|
foot = lib.getExe pkgs.foot;
|
||||||
|
hypr = config.programs.hyprland.enable;
|
||||||
in {
|
in {
|
||||||
options.niksos.fingerprint = mkEnableOption "fingerprint support.";
|
config = mkIf hardware.fingerprint {
|
||||||
config = mkIf fingerprint {
|
|
||||||
services = {
|
services = {
|
||||||
fprintd.enable = true;
|
fprintd.enable = true;
|
||||||
logind.extraConfig = mkIf desktop.hyprland ''
|
logind.extraConfig = mkIf hypr ''
|
||||||
# don’t shutdown when power button is short-pressed
|
# don’t shutdown when power button is short-pressed
|
||||||
HandlePowerKey=ignore
|
HandlePowerKey=ignore
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf desktop.hyprland {
|
home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf hypr {
|
||||||
bind = [
|
bind = [
|
||||||
", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'"
|
", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -4,21 +4,15 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) optionals mkEnableOption mkDefault;
|
inherit (lib) optionals mkDefault;
|
||||||
inherit (config.niksos) graphics;
|
inherit (config.niksos.hardware) graphics;
|
||||||
inherit (graphics) enable;
|
inherit (graphics) enable nvidia intel;
|
||||||
|
|
||||||
nvidia = graphics.enable && graphics.nvidia;
|
Nvidia = enable && nvidia;
|
||||||
intel = graphics.enable && graphics.intel;
|
Intel = enable && intel;
|
||||||
in {
|
in {
|
||||||
options.niksos.graphics = {
|
|
||||||
enable = mkEnableOption "core graphics";
|
|
||||||
intel = mkEnableOption "additional intel drivers";
|
|
||||||
nvidia = mkEnableOption "additoinal nvidia drivers";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
niksos.graphics.enable = mkDefault true;
|
niksos.hardware.graphics.enable = mkDefault true;
|
||||||
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
inherit enable;
|
inherit enable;
|
||||||
|
|
@ -29,10 +23,10 @@ in {
|
||||||
vaapiVdpau
|
vaapiVdpau
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
]
|
]
|
||||||
++ optionals intel [
|
++ optionals Intel [
|
||||||
pkgs.intel-media-driver
|
pkgs.intel-media-driver
|
||||||
]
|
]
|
||||||
++ optionals nvidia [
|
++ optionals Nvidia [
|
||||||
nvidia-vaapi-driver
|
nvidia-vaapi-driver
|
||||||
];
|
];
|
||||||
extraPackages32 = with pkgs.pkgsi686Linux;
|
extraPackages32 = with pkgs.pkgsi686Linux;
|
||||||
|
|
@ -41,18 +35,18 @@ in {
|
||||||
vaapiVdpau
|
vaapiVdpau
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
]
|
]
|
||||||
++ optionals intel [
|
++ optionals Intel [
|
||||||
pkgs.pkgsi686Linux.intel-media-driver
|
pkgs.pkgsi686Linux.intel-media-driver
|
||||||
]
|
]
|
||||||
++ optionals nvidia [
|
++ optionals Nvidia [
|
||||||
pkgs.pkgsi686Linux.nvidia-vaapi-driver
|
pkgs.pkgsi686Linux.nvidia-vaapi-driver
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
modesetting.enable = nvidia;
|
modesetting.enable = Nvidia;
|
||||||
open = false;
|
open = false;
|
||||||
};
|
};
|
||||||
services.xserver.videoDrivers = optionals nvidia ["nvidia"];
|
services.xserver.videoDrivers = optionals Nvidia ["nvidia"];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options.niksos.joycond = lib.mkEnableOption "support for nintendo switch controllers.";
|
services = lib.mkIf config.niksos.hardware.joycond {
|
||||||
|
|
||||||
config.services = lib.mkIf config.niksos.joycond {
|
|
||||||
usbmuxd.enable = true;
|
usbmuxd.enable = true;
|
||||||
joycond.enable = true;
|
joycond.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,8 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config) niksos;
|
inherit (config) niksos;
|
||||||
cfg = niksos.portable;
|
cfg = niksos.hardware.portable;
|
||||||
in {
|
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 = {
|
config = {
|
||||||
services = lib.mkIf cfg.enable {
|
services = lib.mkIf cfg.enable {
|
||||||
logind = {
|
logind = {
|
||||||
|
|
@ -31,7 +17,7 @@ in {
|
||||||
power-profiles-daemon.enable = true;
|
power-profiles-daemon.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = lib.mkIf niksos.desktop.hyprland [
|
environment.systemPackages = lib.mkIf config.programs.hyprland.enable [
|
||||||
(pkgs.writeScriptBin "powermode" ''
|
(pkgs.writeScriptBin "powermode" ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,9 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.niksos.games;
|
cfg = config.niksos.desktop.games;
|
||||||
in {
|
in {
|
||||||
options.niksos.games = lib.mkEnableOption "gaming related stuff.";
|
|
||||||
config = lib.mkIf cfg {
|
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 = [
|
# nixpkgs.overlays = [
|
||||||
# (final: prev: let
|
# (final: prev: let
|
||||||
# version = "1.4.2";
|
# version = "1.4.2";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = !config.niksos.portable.enable;
|
openFirewall = !config.niksos.hardware.portable.enable;
|
||||||
settings.UseDns = true;
|
settings.UseDns = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue