64 lines
1.7 KiB
Nix
64 lines
1.7 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
with lib;
|
|
let
|
|
cfg = config.wm.sway;
|
|
dbus-sway-environment = pkgs.writeTextFile {
|
|
name = "dbus-sway-environment";
|
|
destination = "/bin/dbus-sway-environment";
|
|
executable = true;
|
|
text = ''
|
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
|
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
|
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
|
'';
|
|
};
|
|
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 {
|
|
options.wm.sway = { enable = mkEnableOption "wm: sway"; };
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs; [
|
|
adwaita-icon-theme
|
|
alacritty
|
|
bemenu
|
|
configure-gtk
|
|
dbus-sway-environment
|
|
dmenu-wayland
|
|
dracula-theme # gtk theme
|
|
glib
|
|
grim
|
|
#mako
|
|
rofi
|
|
slurp
|
|
sway
|
|
sway-audio-idle-inhibit
|
|
sway-contrib.grimshot
|
|
swayidle
|
|
swayimg
|
|
swaynotificationcenter
|
|
waybar
|
|
wayland
|
|
# wayland-pipewire-idle-inhibit
|
|
wl-clipboard
|
|
wofi
|
|
];
|
|
services.dbus.enable = true;
|
|
programs = {
|
|
sway = {
|
|
enable = true;
|
|
wrapperFeatures.gtk = true;
|
|
};
|
|
};
|
|
};
|
|
}
|