fix xdg-portal
This commit is contained in:
parent
7a074817e3
commit
d44c079350
2 changed files with 6 additions and 36 deletions
|
|
@ -1,30 +1,15 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# bash script to let dbus know about important env variables and
|
|
||||||
# propogate them to relevent services run at the end of sway config
|
|
||||||
# see
|
|
||||||
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist
|
|
||||||
# note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts
|
|
||||||
# some user services to make sure they have the correct environment variables
|
|
||||||
dbus-sway-environment = pkgs.writeTextFile {
|
dbus-sway-environment = pkgs.writeTextFile {
|
||||||
name = "dbus-sway-environment";
|
name = "dbus-sway-environment";
|
||||||
destination = "/bin/dbus-sway-environment";
|
destination = "/bin/dbus-sway-environment";
|
||||||
executable = true;
|
executable = true;
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
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 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
|
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# currently, there is some friction between sway and gtk:
|
|
||||||
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
|
||||||
# the suggested way to set gtk settings is with gsettings
|
|
||||||
# for gsettings to work, we need to tell it where the schemas are
|
|
||||||
# using the XDG_DATA_DIR environment variable
|
|
||||||
# run at the end of sway config
|
|
||||||
configure-gtk = pkgs.writeTextFile {
|
configure-gtk = pkgs.writeTextFile {
|
||||||
name = "configure-gtk";
|
name = "configure-gtk";
|
||||||
destination = "/bin/configure-gtk";
|
destination = "/bin/configure-gtk";
|
||||||
|
|
@ -38,8 +23,6 @@ let
|
||||||
gsettings set $gnome_schema gtk-theme 'Dracula'
|
gsettings set $gnome_schema gtk-theme 'Dracula'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
@ -62,28 +45,10 @@ in
|
||||||
wayland
|
wayland
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
# 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;
|
services.dbus.enable = true;
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
wlr.enable = true;
|
|
||||||
# gtk portal needed to make gtk apps happy
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
#gtkUsePortal = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# enable sway window manager
|
|
||||||
programs.sway = {
|
programs.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wrapperFeatures.gtk = true;
|
wrapperFeatures.gtk = true;
|
||||||
};
|
};
|
||||||
services.greetd.package = "greetd.wlgreet";
|
services.greetd.package = "greetd.wlgreet";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,12 @@ in
|
||||||
};
|
};
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
xdg.portal.enable = true; # only needed if you are not doing Gnome
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
#gtkUsePortal = true;
|
||||||
|
};
|
||||||
|
|
||||||
users.users.don = {
|
users.users.don = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue