Swaymux allows the user to quickly navigate and administrate outputs, workspaces and containers in a tmux-style approach. https://git.grimmauld.de/Grimmauld/swaymux
Go to file
2024-03-09 21:06:24 +01:00
Keys attempt to fix broken app_id 2024-03-09 17:58:15 +01:00
nix drop qt wrapper as that seems to mess with app_id 2024-03-09 18:22:11 +01:00
sway_bindings enter workspaces (scratchpad listing is broken apparently....) 2024-03-09 12:55:29 +01:00
tree enter workspaces (scratchpad listing is broken apparently....) 2024-03-09 12:55:29 +01:00
util add basic QT tree 2024-03-02 22:33:27 +01:00
.gitignore attempt nix packaging 2024-03-09 15:38:58 +01:00
CMakeLists.txt attempt to fix broken app_id 2024-03-09 17:58:15 +01:00
flake.lock attempt to fix broken app_id 2024-03-09 17:58:15 +01:00
flake.nix attempt to fix broken app_id 2024-03-09 17:58:15 +01:00
LICENSE attempt nix packaging 2024-03-09 15:38:58 +01:00
main.cpp attempt nix packaging 2024-03-09 15:38:58 +01:00
mainwindow.cpp setCurrentIndex instead of select to allow better navigation 2024-03-09 18:48:04 +01:00
mainwindow.h Add help menu list view, add toggle to get to help menu 2024-03-07 17:37:18 +01:00
mainwindow.ui increase default size 2024-03-09 18:35:23 +01:00
README.md Add README.md 2024-03-09 21:06:24 +01:00
swaymux_en_US.ts add basic QT tree 2024-03-02 22:33:27 +01:00

What's this?

Swaymux aims at making navigation in sway easier. To achieve this, swaymux provides a main interface listing the full tree of outputs, workspaces, containers, as well as the scratchpad. This main interface is primarily inspired by tmux. Swaymux can be navigated using the keyboard, with keybindings that closely follow the tmux bindings.

This project is not feature-complete, far from it. So far swaymux supports listing and navigating into outputs, workspaces and containers, creating a new workspace, or creating a workspace with all currently marked containers.

Planned features and fixes include closing windows from within swaymux without specifically jumping to them, better keyboard navigation through the sway tree in the main interface, a closer look at performance tweaking, as well as maybe even iconification of containers where applicable.

Installing

Swaymux is packaged as a nix flake. To install it, add the flake input, e.g. using the following snippet:

swaymux = {
  url = "git+https://git.grimmauld.de/Grimmauld/swaymux";
  inputs.nixpkgs.follows = "nixpkgs";
};

Make sure you can request inputs as part of where you install it. Adding swaymux to the actual system then is as easy as putting it into your packages:

environment.systemPackages = [
  inputs.swaymux.packages."${system}".default
];

Keep in mind you'll need to make the system constant available, e.g. by setting specialArgs = { inherit inputs system; }; as part of your nixosSystem definition in your systems flake.

Once the package is available, it can be made available in sway by keybinding. Setting swaymux to be floating is recommended.

for_window [app_id="swaymux"] floating enable
bindsym $mod+c exec swaymux

Available key bindings can be viewed in-App.