Files
nixos-dotfiles/niri.nix
T

95 lines
2.9 KiB
Nix

{ pkgs, lib, config, ... }:
{
options.niri.useNoctalia = lib.mkOption {
type = lib.types.bool;
default = true;
};
config = let
useNoctalia = config.niri.useNoctalia;
in lib.mkMerge [
# ── Niri (shared) ────────────────────────────────────────────────────────────
{
xdg.configFile."niri" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/niri";
};
xdg.configFile."foot".source = ./config/foot;
systemd.user.services.xwayland-satellite = {
Unit = {
Description = "Xwayland for niri";
BindsTo = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
home.packages = with pkgs; [
libnotify
wl-clipboard
slurp
grim
satty
brightnessctl
lxqt.lxqt-policykit
];
}
# ── Noctalia ─────────────────────────────────────────────────────────────────
(lib.mkIf useNoctalia {
xdg.configFile."noctalia" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/noctalia";
};
home.packages = with pkgs; [
noctalia-shell
];
})
# ── Non-noctalia ─────────────────────────────────────────────────────────────
(lib.mkIf (!useNoctalia) {
xdg.configFile."waybar".source = ./config/waybar;
xdg.configFile."fuzzel/fuzzel.ini".source = ./config/fuzzel/fuzzel.ini;
home.file.".local/bin/wallpaper.sh" = {
source = ./config/niri/wallpaper.sh;
executable = true;
};
home.file.".local/bin/waybar-network.sh" = {
source = ./config/waybar/network.sh;
executable = true;
};
home.file.".local/bin/waybar-weather.sh" = {
source = ./config/waybar/weather.sh;
executable = true;
};
services.mako = {
enable = true;
settings = {
background-color = "#0a0a0a99";
text-color = "#f3eeea";
border-color = "#cd0a00";
border-radius = 8;
border-size = 1;
default-timeout = 7500;
max-icon-size = 64;
padding = "10,14";
font = "JetBrains Mono 12";
};
};
home.packages = with pkgs; [
awww
wlogout
fuzzel
waybar
];
})
];
}