aboutsummaryrefslogtreecommitdiff
path: root/modules/home-manager/sway.nix
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2025-07-29 02:03:38 +0200
committerschererleander <leander@schererleander.de>2025-07-29 02:03:38 +0200
commitc2f0d9bebe68c11f4d018a18bd5d3880712c6873 (patch)
treed40b3e3faf65fdc618c2dd62cd548aac6e545ac4 /modules/home-manager/sway.nix
parent97cf1a9390cbb56bb904c777ebe8f6f559a7d8a4 (diff)
chore: move home-manager modules in seperate folder
Diffstat (limited to 'modules/home-manager/sway.nix')
-rw-r--r--modules/home-manager/sway.nix84
1 files changed, 84 insertions, 0 deletions
diff --git a/modules/home-manager/sway.nix b/modules/home-manager/sway.nix
new file mode 100644
index 0000000..16043ef
--- /dev/null
+++ b/modules/home-manager/sway.nix
@@ -0,0 +1,84 @@
+{ config, lib, pkgs, ... }:
+
+let
+ mod = config.wayland.windowManager.sway.config.modifier;
+in {
+ options.sway.enable = lib.mkEnableOption "Enable sway and setup";
+ config = lib.mkIf config.sway.enable {
+ home.packages = with pkgs; [
+ wmenu
+ swaybg
+ sway-contrib.grimshot
+ wl-clipboard
+ xdg-utils
+ playerctl
+ ];
+
+ xdg = {
+ portal = {
+ enable = true;
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-wlr
+ xdg-desktop-portal-gtk
+ ];
+ config = {
+ common.default = "*";
+ };
+ };
+ };
+
+ wayland.windowManager.sway = {
+ enable = true;
+ config = {
+ input = {
+ "*" = {
+ xkb_layout = "de";
+ };
+ };
+
+ output = {
+ DP-1 = {
+ resolution = "1920x1080@240Hz";
+ bg = "/etc/nixos/images/pond.jpg fill";
+ };
+ };
+
+ gaps = {
+ inner = 15;
+ };
+
+ window = {
+ titlebar = false;
+ border = 0;
+ };
+
+ modifier = "Mod4";
+
+ keybindings = lib.mkOptionDefault {
+ "${mod}+q" = "kill";
+ "XF86AudioPlay" = "exec playerctl play-pause";
+ "XF86AudioPrev" = "exec playerctl previous";
+ "XF86AudioNext" = "exec playerctl next";
+ "XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_DEVICE@ +5%";
+ "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_DEVICE@ -5%";
+ "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_DEVICE@ toggle";
+ };
+
+ menu = "${pkgs.wmenu}/bin/wmenu-run -b -N 000000";
+ terminal = "${pkgs.foot}/bin/foot";
+ defaultWorkspace = "workspace number 1";
+
+ bars = [{
+ "command" = "${pkgs.waybar}/bin/waybar";
+ }];
+ };
+ checkConfig = false;
+ wrapperFeatures.base = true;
+ wrapperFeatures.gtk = true;
+ };
+
+ home.sessionVariables = {
+ XDG_CURRENT_DESKTOP = "wayland";
+ };
+ };
+}