diff --git a/flake.lock b/flake.lock index 0cf220d..5cf821c 100644 --- a/flake.lock +++ b/flake.lock @@ -67,11 +67,11 @@ ] }, "locked": { - "lastModified": 1764613336, - "narHash": "sha256-L979az28t/+SXvYw9qhOno5HLlDwkZOpz6LzCLnjmRM=", + "lastModified": 1764776959, + "narHash": "sha256-d+5CGloq7Lo1u2SkzhF8oiOdUc6Z5emh22nTXUB9CFA=", "owner": "nix-community", "repo": "home-manager", - "rev": "f3902b5d8767985680875ad86d028371100faeb3", + "rev": "e1680d594a9281651cbf7d126941a8c8e2396183", "type": "github" }, "original": { @@ -83,11 +83,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1764522689, - "narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=", + "lastModified": 1764677808, + "narHash": "sha256-H3lC7knbXOBrHI9hITQ7modLuX20mYJVhZORL5ioms0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f", + "rev": "1aab89277eb2d87823d5b69bae631a2496cff57a", "type": "github" }, "original": { @@ -99,11 +99,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1764517877, - "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=", + "lastModified": 1764667669, + "narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c", + "rev": "418468ac9527e799809c900eda37cbff999199b6", "type": "github" }, "original": { @@ -121,11 +121,11 @@ ] }, "locked": { - "lastModified": 1764703879, - "narHash": "sha256-JyCREoghKjAMPGpUdtiN5ISKBlGO+QqoJKhAbQTGqDQ=", + "lastModified": 1764853233, + "narHash": "sha256-bp7B5alQk7nDLtFLKaOHhSPBNVCcwIxMXjcc/VzY0hg=", "owner": "nix-community", "repo": "NUR", - "rev": "f3a83106de56c232c51a99a5f498cdbb7509db53", + "rev": "5e8ec1167d3a375e2857fbe915b3d8658d3e6472", "type": "github" }, "original": { @@ -142,11 +142,11 @@ ] }, "locked": { - "lastModified": 1764703879, - "narHash": "sha256-JyCREoghKjAMPGpUdtiN5ISKBlGO+QqoJKhAbQTGqDQ=", + "lastModified": 1764853233, + "narHash": "sha256-bp7B5alQk7nDLtFLKaOHhSPBNVCcwIxMXjcc/VzY0hg=", "owner": "nix-community", "repo": "NUR", - "rev": "f3a83106de56c232c51a99a5f498cdbb7509db53", + "rev": "5e8ec1167d3a375e2857fbe915b3d8658d3e6472", "type": "github" }, "original": { diff --git a/home/wm/sway.nix b/home/wm/sway.nix index 0545b7c..d1e76bb 100644 --- a/home/wm/sway.nix +++ b/home/wm/sway.nix @@ -8,7 +8,7 @@ notify = "${pkgs.libnotify}/bin/notify-send"; # keybinds - key_mod = "Mod4"; + key_mod = "Alt"; key_left = "Left"; key_right = "Right"; key_up = "Up"; @@ -159,22 +159,10 @@ wayland.windowManager.sway = { enable = true; wrapperFeatures.gtk = true; # Fixes common issues with GTK 3 apps - systemd = { - xdgAutostart = true; - variables = [ - "--all" - ]; - }; - extraSessionCommands = '' - export XDG_CURRENT_DESKTOP=GNOME:sway - ''; config = { modifier = "${key_mod}"; startup = [ { command = "systemctl --user start libinput-gestures"; } - #{ command = "firefox";} - #{ command = "discord";} - ]; bars = [ { command = "${pkgs.waybar}/bin/waybar"; } @@ -194,9 +182,11 @@ }; "type:mouse" = { natural_scroll = "disabled"; + accel_profile = "flat"; }; "*" = { - xkb_layout = "se"; + xkb_layout = "us,se"; + xkb_options = "grp:win_space_toggle"; }; }; # end input keybindings = { @@ -259,12 +249,15 @@ "${key_mod}+Shift+${key_right}" = "move right"; # System + "Mod4+space" = ''exec ${notify} -t 2000 "$(xonsh ~/.nixos_config/util/get_xkb.xonsh)"''; #Screenshot region "${key_mod}+Shift+s" = "exec grimshot savecopy area"; "Print" = "exec grimshot savecopy output"; + # media keys "XF86AudioRaiseVolume" = "exec 'pactl set-sink-volume @DEFAULT_SINK@ +3%'"; "XF86AudioLowerVolume" = "exec 'pactl set-sink-volume @DEFAULT_SINK@ -3%'"; "XF86AudioMute" = "exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle'"; + "XF86AudioPlay" = "exec 'playerctl play-pause'"; "XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 10"; "XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 10"; }; # end keybindings @@ -324,21 +317,18 @@ mako = { enable = true; settings = { - "actionable=true" = { - anchor = "top-left"; - }; actions = true; - anchor = "top-right"; + anchor = "top-center"; background-color = color_f_bg; border-color = color_f_bg; border-radius = 0; - default-timeout = 0; + default-timeout = 10000; font = "${style_font} ${style_font_sz}"; height = 100; - width = 300; + width = 600; icons = true; ignore-timeout = false; - layer = "top"; + layer = "overlay"; margin = 10; markup = true; }; #end settings @@ -690,4 +680,8 @@ gesture pinch in 4 ${swaymsg} kill gesture swipe up 4 ${lock} ''; + # this right here offends me https://source.chromium.org/chromium/chromium/src/+/main:base/nix/xdg_util.cc;l=179-180 + systemd.user.sessionVariables = { + GNOME_DESKTOP_SESSION_ID = "999"; + }; } # end file diff --git a/hosts/common/wm/sway.nix b/hosts/common/wm/sway.nix index 99679c9..193c128 100644 --- a/hosts/common/wm/sway.nix +++ b/hosts/common/wm/sway.nix @@ -9,13 +9,12 @@ wmctrl seahorse libsecret - pkgs.xdg-desktop-portal-gtk + gnome-text-editor + nautilus + playerctl + libnotify ]; - environment.sessionVariables = rec { - XDG_CURRENT_DESKTOP = "GNOME:sway"; - }; - - + # enable Sway window manager programs = { sway = { @@ -37,6 +36,17 @@ kitty-themes ]; }; # end sway + uwsm = { + enable = true; + waylandCompositors = { + sway = { + prettyName = "Sway"; + comment = "Sway compositor managed by UWSM"; + binPath = "${pkgs.sway}/bin/sway"; + extraArgs = [ "--unsupported-gpu" ]; + }; + }; + }; # end uwsm light = { enable = true; }; # end light @@ -63,7 +73,7 @@ enable = true; settings = { default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd 'sway --unsupported-gpu'"; + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd 'uwsm start -- sway-uwsm.desktop'"; user = "greeter"; }; # end default_session }; # end settings @@ -77,6 +87,7 @@ }; }; # end logind dbus.packages = [ pkgs.seahorse pkgs.gnome-keyring pkgs.gcr ]; + gnome.gcr-ssh-agent.enable = true; }; # end services users.users.alisceon.extraGroups = [ "video" "input" ]; } \ No newline at end of file diff --git a/util/get_xkb.xonsh b/util/get_xkb.xonsh new file mode 100644 index 0000000..63bd08e --- /dev/null +++ b/util/get_xkb.xonsh @@ -0,0 +1,2 @@ +import re +print("Layout: " + re.search(r'"xkb_active_layout_name": "(.+?)"', $(swaymsg -t get_inputs)).group(1)) \ No newline at end of file