mirror of
https://github.com/artagaz/nix-config.git
synced 2026-06-22 02:02:09 +07:00
164 lines
4.2 KiB
Nix
164 lines
4.2 KiB
Nix
{ self, ... }:
|
|
{
|
|
flake.nixosModules.niri = { pkgs, lib, config, ... }:
|
|
{
|
|
imports = [
|
|
self.nixosModules.kitty
|
|
self.nixosModules.matugen
|
|
self.nixosModules.waybar
|
|
];
|
|
|
|
programs.niri.enable = true;
|
|
|
|
services.displayManager.ly =
|
|
let
|
|
xsession-wrapper = pkgs.runCommand "xsession-wrapper-fixed" {
|
|
src = config.services.displayManager.sessionData.wrapper;
|
|
} ''
|
|
cp --preserve=mode $src $out
|
|
substituteInPlace $out --replace "X-NIXOS-SYSTEMD-AWARE" "X-NIXOS-SYSTEMD-AWARE|niri"
|
|
'';
|
|
in {
|
|
enable = true;
|
|
x11Support = false;
|
|
settings = {
|
|
setup_cmd = "${xsession-wrapper}";
|
|
};
|
|
};
|
|
|
|
services.udisks2.enable = true; # Removable media.
|
|
services.gvfs.enable = true; # Nautilus mount and trash support.
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
brightnessctl
|
|
btop
|
|
dunst
|
|
eog
|
|
gnome-themes-extra
|
|
kdePackages.breeze
|
|
kdePackages.dolphin
|
|
kdePackages.kcalc
|
|
mpv
|
|
nautilus
|
|
pywal
|
|
swaybg
|
|
waybar
|
|
wl-clipboard
|
|
wlsunset
|
|
xwayland-satellite
|
|
];
|
|
|
|
home-manager.users.${self.user}.imports = [
|
|
{
|
|
home.activation = {
|
|
pywal = ''
|
|
${pkgs.pywal}/bin/wal -i ${self.wallpaper} --saturate 0.25
|
|
'';
|
|
};
|
|
|
|
programs.rofi = {
|
|
enable = true;
|
|
font = "${self.font.mono} 18";
|
|
extraConfig = {
|
|
kb-row-up = "Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab";
|
|
kb-row-down = "Down,Control+j";
|
|
kb-accept-entry = "Control+m,Return,KP_Enter";
|
|
kb-remove-to-eol = "Control+Shift+e";
|
|
kb-mode-next = "Shift+Right,Control+Tab,Control+l";
|
|
kb-mode-previous = "Shift+Left,Control+Shift+Tab,Control+h";
|
|
kb-mode-complete = "";
|
|
kb-remove-char-back = "BackSpace";
|
|
};
|
|
theme = "~/.cache/wal/colors-rofi-dark.rasi";
|
|
};
|
|
|
|
services.polkit-gnome.enable = true; # Enable Gnome polkit.
|
|
|
|
systemd.user.services.polkit-gnome = {
|
|
Service = {
|
|
Restart = "on-failure";
|
|
RestartSec = 1;
|
|
};
|
|
Unit = {
|
|
StartLimitIntervalSec = 30;
|
|
StartLimitBurst = 10;
|
|
};
|
|
};
|
|
|
|
# Symlink config file.
|
|
xdg.configFile."niri/config.kdl".source = ./config.kdl;
|
|
|
|
# Write custom config file.
|
|
xdg.configFile."niri/config-nix.kdl".text = /* kdl */ ''
|
|
spawn-sh-at-startup "swaybg -i ${self.wallpaper}" // Wallpaper utility.
|
|
window-rule {
|
|
geometry-corner-radius ${self.border.main}
|
|
}
|
|
'';
|
|
|
|
# Set default applications.
|
|
xdg.mimeApps = {
|
|
enable = true;
|
|
defaultApplications = let
|
|
imageViewer = "org.gnome.eog.desktop";
|
|
documentViewer = "org.kde.okular.desktop";
|
|
videoViewer = "mpv.desktop";
|
|
in {
|
|
"image/png" = imageViewer;
|
|
"image/jpg" = imageViewer;
|
|
"image/jpeg" = imageViewer;
|
|
"document/pdf" = documentViewer;
|
|
"video/mp4" = videoViewer;
|
|
"video/webm" = videoViewer;
|
|
};
|
|
};
|
|
|
|
# Set cursor theme.
|
|
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
|
|
|
|
# Set dark theme for GTK programs.
|
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
|
|
|
# Set GTK theme.
|
|
gtk = {
|
|
enable = true;
|
|
gtk4.theme = null;
|
|
theme = {
|
|
name = "adw-gtk3-dark";
|
|
package = pkgs.adw-gtk3;
|
|
};
|
|
cursorTheme = {
|
|
name = "Bibata-Modern-Classic";
|
|
package = pkgs.bibata-cursors;
|
|
size = 24;
|
|
};
|
|
font = {
|
|
name = "${self.font.mono}";
|
|
size = 13;
|
|
};
|
|
};
|
|
|
|
# Make QT follow GTK theme.
|
|
qt = {
|
|
enable = true;
|
|
platformTheme.name = "gtk3";
|
|
|
|
qt5ctSettings = {
|
|
Fonts = {
|
|
fixed = "\"${self.font.mono},13\"";
|
|
general = "\"${self.font.mono},13\"";
|
|
};
|
|
};
|
|
|
|
qt6ctSettings = {
|
|
Fonts = {
|
|
fixed = "\"${self.font.mono},13\"";
|
|
general = "\"${self.font.mono},13\"";
|
|
};
|
|
};
|
|
};
|
|
}
|
|
];
|
|
};
|
|
}
|