fix(desktop): add enable option

This commit is contained in:
2026-05-22 10:58:21 +02:00
parent 6c9bbc27a0
commit e994e540c1
9 changed files with 143 additions and 36 deletions

View File

@@ -52,6 +52,7 @@
claude-code.enable = true; claude-code.enable = true;
opencode.enable = true; opencode.enable = true;
}; };
desktop.niri.enable = true;
browser.enable = true; browser.enable = true;
browser.primary = "librewolf"; browser.primary = "librewolf";
cloud.hetzner.enable = true; cloud.hetzner.enable = true;

View File

@@ -48,6 +48,7 @@
claude-code.enable = true; claude-code.enable = true;
opencode.enable = true; opencode.enable = true;
}; };
desktop.niri.enable = true;
browser.enable = true; browser.enable = true;
browser.primary = "librewolf"; browser.primary = "librewolf";
cloud.hetzner.enable = true; cloud.hetzner.enable = true;

View File

@@ -63,6 +63,7 @@
defaultWrapper = "mesa"; defaultWrapper = "mesa";
}; };
desktop.niri.enable = true;
browser = { browser = {
enable = true; enable = true;
primary = "firefox"; primary = "firefox";

View File

@@ -0,0 +1,5 @@
{ ... }:
{
imports = [ ./niri ];
}

View File

@@ -179,4 +179,5 @@ binds {
Alt+Print { screenshot-window; } Alt+Print { screenshot-window; }
Mod+Shift+Delete { quit; } Mod+Shift+Delete { quit; }
} }

View File

@@ -1,4 +1,9 @@
{ pkgs, ... }: {
lib,
pkgs,
config,
...
}:
{ {
imports = [ imports = [
@@ -9,7 +14,7 @@
../../waybar ../../waybar
]; ];
options.desktop.niri.enable = lib.mkEnableOption "niri desktop environment"; options.desktop.niri.enable = lib.mkEnableOption "niri desktop";
config = lib.mkIf config.desktop.niri.enable { config = lib.mkIf config.desktop.niri.enable {
clipboard.enable = lib.mkDefault true; clipboard.enable = lib.mkDefault true;
@@ -22,7 +27,7 @@
file.".config/niri/config.kdl".source = ./config.kdl; file.".config/niri/config.kdl".source = ./config.kdl;
packages = with pkgs; [ packages = with pkgs; [
brightnessctl brightnessctl
wlsunset xwayland-satellite
]; ];
}; };
@@ -32,4 +37,35 @@
latitude = 51.05; latitude = 51.05;
longitude = 3.71667; longitude = 3.71667;
}; };
xdg.configFile."electron-flags.conf".text = ''
--enable-features=UseOzonePlatform
--ozone-platform=wayland
'';
xdg.portal = {
enable = true;
config = {
niri = {
default = [
"gnome"
"gtk"
];
"org.freedesktop.impl.portal.Access" = "gtk";
"org.freedesktop.impl.portal.Notification" = "gtk";
"org.freedesktop.impl.portal.Secret" = "gnome-keyring";
"org.freedesktop.impl.portal.FileChooser" = "gtk";
"org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ];
"org.freedesktop.impl.portal.Settings" = [
"gnome"
"gtk"
];
};
};
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gnome
];
};
};
} }

View File

@@ -1,6 +1,67 @@
{ pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
home.packages = with pkgs; [ wdisplays ]; options.shikane.enable = lib.mkEnableOption "shikane";
config = lib.mkIf config.shikane.enable {
home.packages = with pkgs; [ (config.nixgl.wrap wdisplays) ];
services.shikane.enable = true; services.shikane.enable = true;
home.file.".config/shikane/config.toml".text = ''
[[profile]]
name = "work"
[[profile.output]]
enable = true
search = ["m=Unknown", "s=", "v=Unknown"]
mode = "2880x1800@120Hz"
position = "288,3240"
scale = 1.5
transform = "normal"
adaptive_sync = false
[[profile.output]]
enable = true
search = ["m=Q27P1B", "s=GNXM2HA196769", "v=PNP(AOC)"]
mode = "2560x1440@59.951Hz"
position = "116,1800"
scale = 1.0
transform = "normal"
adaptive_sync = false
[[profile.output]]
enable = true
search = ["m=PHL 243S7", "s=UHB1923012753", "v=Philips Consumer Electronics Company"]
mode = "1920x1080@60Hz"
position = "2676,1800"
scale = 1.0
transform = "270"
adaptive_sync = false
[[profile]]
name = "home"
[[profile.output]]
enable = true
search = ["m=Unknown", "s=Unknown", "v=Unknown"]
mode = "2880x1800@60.001Hz"
position = "185,1440"
scale = 1.75
transform = "normal"
adaptive_sync = false
[[profile.output]]
enable = true
search = ["m=PHL 276E8V", "s=0x0000046D", "v=Philips Consumer Electronics Company"]
mode = "3840x2160@59.996Hz"
position = "1500,0"
scale = 1.5
transform = "normal"
adaptive_sync = false
'';
};
} }

View File

@@ -1,7 +1,13 @@
{ lib, config, ... }:
{ {
options.desktop.logind.enable = lib.mkEnableOption "logind desktop settings";
config = lib.mkIf config.desktop.logind.enable {
services.logind.settings.Login = { services.logind.settings.Login = {
HandleLidSwitch = "suspend"; HandleLidSwitch = "suspend";
IdleAction = "suspend"; IdleAction = "suspend";
IdleActionSec = 1800; IdleActionSec = 1800;
}; };
};
} }

View File

@@ -12,6 +12,9 @@ in
imports = [ ../logind.nix ]; imports = [ ../logind.nix ];
options.desktop = { options.desktop = {
niri = {
enable = lib.mkEnableOption "niri desktop";
};
ly = { ly = {
enable = lib.mkOption { enable = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
@@ -20,7 +23,8 @@ in
}; };
}; };
config = { config = lib.mkIf cfg.niri.enable {
desktop.logind.enable = lib.mkDefault true;
programs.niri = { programs.niri = {
enable = true; enable = true;
useNautilus = false; useNautilus = false;
@@ -44,15 +48,6 @@ in
]; ];
}; };
# error:
# Failed assertions:
# - h profile: xdg.portal: since you installed Home Manager via its NixOS module and
# 'home-manager.useUserPackages' is enabled, you need to add
#
# environment.pathsToLink = [ `/share/applications` `/share/xdg-desktop-portal` ];
#
# to your NixOS configuration so that the portal definitions and DE
# provided configurations get linked.
environment.pathsToLink = [ environment.pathsToLink = [
"/share/applications" "/share/applications"
"/share/xdg-desktop-portal" "/share/xdg-desktop-portal"