48 lines
1.5 KiB
Nix
48 lines
1.5 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
let
|
|
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_C URRENT_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
|
|
'';
|
|
};
|
|
|
|
in
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
sway
|
|
dbus-sway-environment
|
|
wayland
|
|
xdg-utils # for opening default programs when clicking links
|
|
glib # gsettings
|
|
dracula-theme # gtk theme
|
|
swaylock
|
|
swayidle
|
|
grim # screenshot functionality
|
|
slurp # screenshot functionality
|
|
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
|
mako # notification system developed by swaywm maintainer
|
|
waybar
|
|
gammastep
|
|
fuzzel
|
|
];
|
|
|
|
# xdg-desktop-portal works by exposing a series of D-Bus interfaces
|
|
# known as portals under a well-known name
|
|
# (org.freedesktop.portal.Desktop) and object path
|
|
# (/org/freedesktop/portal/desktop).
|
|
# The portal interfaces include APIs for file access, opening URIs,
|
|
# printing and others.
|
|
services.dbus.enable = true;
|
|
xdg.portal.wlr.enable = true;
|
|
# enable sway window manager
|
|
programs.sway = {
|
|
enable = true;
|
|
wrapperFeatures.gtk = true;
|
|
};
|
|
}
|