Files
nixos-configv3/modules/sway/default.nix
TheCrazyInsanity fbbef69fa1 fuck
2026-05-08 12:41:49 -04:00

78 lines
1.6 KiB
Nix

{
config,
pkgs,
lib,
inputs,
...
}:
let
configure-gtk = pkgs.writeTextFile {
name = "configure-gtk";
destination = "/bin/configure-gtk";
executable = true;
text =
let
schema = pkgs.gsettings-desktop-schemas;
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
in
''
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface
gsettings set $gnome_schema gtk-theme 'Dracula'
'';
};
in
{
environment.systemPackages = with pkgs; [
wl-clipboard # Copy/Paste functionality.
mako # Notification utility.
];
# Enables Gnome Keyring to store secrets for applications.
services.gnome.gnome-keyring.enable = true;
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
];
};
security.polkit.enable = true;
# Enable Sway.
programs.sway = {
enable = true;
wrapperFeatures.gtk = false;
extraPackages = [
pkgs.foot
pkgs.swayidle
pkgs.swaylock
pkgs.wmenu
pkgs.wl-clipboard
pkgs.mako
pkgs.kdePackages.kate
pkgs.kdePackages.filelight
inputs.glide.packages.${pkgs.stdenv.hostPlatform.system}.default
pkgs.swaybg
pkgs.pulseaudioFull
pkgs.waybar
pkgs.dracula-theme # gtk theme
pkgs.brightnessctl
configure-gtk
pkgs.mpvpaper
];
};
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --remember --time --cmd sway";
user = "greeter";
};
};
};
}