aboutsummaryrefslogtreecommitdiff
path: root/modules/system/sway.nix
diff options
context:
space:
mode:
authorLeander Scherer <leander@schererleander.de>2026-05-17 10:49:27 +0200
committerLeander Scherer <leander@schererleander.de>2026-05-28 22:42:06 +0200
commit2f70e596e76b7f5b13a3000f90592e3d371bc78a (patch)
treeff3ff25547f7d40eda5220bc130316ac1790c431 /modules/system/sway.nix
parent028233a64419e54a611c6c448dddc9b68a572018 (diff)
chore(sway): add kde portal, breeze theming, screenshot and cliphist
Diffstat (limited to 'modules/system/sway.nix')
-rw-r--r--modules/system/sway.nix46
1 files changed, 43 insertions, 3 deletions
diff --git a/modules/system/sway.nix b/modules/system/sway.nix
index f6047a1..f6d78ec 100644
--- a/modules/system/sway.nix
+++ b/modules/system/sway.nix
@@ -9,13 +9,14 @@
wrapperFeatures.gtk = true;
extraPackages = with pkgs; [
wl-clipboard
- havoc
];
};
xdg.portal = {
enable = true;
wlr.enable = true;
+ extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ];
+ config.common.default = [ "wlr" "kde" ];
};
environment.sessionVariables = {
@@ -32,12 +33,41 @@
};
in
{
+ gtk = {
+ enable = true;
+ theme = {
+ name = "Breeze-Dark";
+ package = pkgs.kdePackages.breeze-gtk;
+ };
+ iconTheme = {
+ name = "breeze-dark";
+ package = pkgs.kdePackages.breeze-icons;
+ };
+ cursorTheme = {
+ name = "breeze_cursors";
+ package = pkgs.kdePackages.breeze;
+ size = 24;
+ };
+ };
+
+ qt = {
+ enable = true;
+ platformTheme.name = "gtk";
+ };
+
+ home.pointerCursor = {
+ gtk.enable = true;
+ name = "breeze_cursors";
+ package = pkgs.kdePackages.breeze;
+ size = 24;
+ };
+
wayland.windowManager.sway = {
enable = true;
wrapperFeatures.gtk = true;
config = rec {
modifier = "Mod4";
- terminal = "${pkgs.havoc}/bin/havoc";
+ terminal = "ghostty";
input = {
"*" = {
@@ -49,7 +79,8 @@
DP-1 = {
resolution = "2560x1440@279.961HZ";
render_bit_depth = "10";
- adaptive_sync = "true";
+ # disabled as mo27q28g implementation sucks, a lot of brightness flicker
+ #adaptive_sync = "true";
hdr = "on";
bg = "${wallpaper} fill";
};
@@ -78,8 +109,17 @@
"XF86AudioRaiseVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_DEVICE@ +5%";
"XF86AudioLowerVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_DEVICE@ -5%";
"XF86AudioMute" = "exec ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_DEVICE@ toggle";
+ "${modifier}+Shift+s" =
+ "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | tee ~/Pictures/screenshot-$(date +%Y%m%d_%H%M%S).png | ${pkgs.wl-clipboard}/bin/wl-copy";
+ "${modifier}+v" =
+ "exec ${pkgs.cliphist}/bin/cliphist list | ${pkgs.wmenu}/bin/wmenu | ${pkgs.cliphist}/bin/cliphist decode | ${pkgs.wl-clipboard}/bin/wl-copy";
};
+ startup = [
+ { command = "${pkgs.wl-clipboard}/bin/wl-paste --watch ${pkgs.cliphist}/bin/cliphist store"; }
+ { command = "${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"; }
+ ];
+
menu = "${pkgs.wmenu}/bin/wmenu-run -b";
defaultWorkspace = "workspace number 1";
};