summaryrefslogtreecommitdiff
path: root/modules/sway.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/sway.nix')
-rw-r--r--modules/sway.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules/sway.nix b/modules/sway.nix
new file mode 100644
index 0000000..8d4d664
--- /dev/null
+++ b/modules/sway.nix
@@ -0,0 +1,40 @@
+{ config, pkgs, lib, ... }:
+{
+ environment.systemPackages = with pkgs; [
+ ];
+
+ # 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.
+ xdg.portal = {
+ enable = true;
+ wlr.enable = true;
+ # gtk portal needed to make gtk apps happy
+ extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
+ };
+
+ # enable sway window manager
+ programs.sway = {
+ enable = true;
+ wrapperFeatures.gtk = true;
+ };
+
+ # kanshi systemd service
+ systemd.user.services.kanshi = {
+ description = "kanshi daemon";
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = ''${pkgs.kanshi}/bin/kanshi -c kanshi_config_file'';
+ };
+ };
+
+ security.pam.services.swaylock.text = ''
+ # PAM configuration file for the swaylock screen locker. By default, it includes
+ # the 'login' configuration file (see /etc/pam.d/login)
+ auth include login
+ '';
+}
+