Add some details to README.md

This commit is contained in:
LordGrimmauld 2024-03-11 10:18:39 +01:00
parent e8f36057f4
commit 1a13229343
3 changed files with 23 additions and 5 deletions

View File

@ -9,7 +9,14 @@ Planned features and fixes include closing windows from within swaymux without s
# Installing
Swaymux is packaged as a nix flake. To install it, add the flake input, e.g. using the following snippet:
## Requirements
This system expects the `$SWAY_SOCK` environment variable to be set and the associated socket to be bindable. If that isn't the case, this program will fail to launch.
Further, on Nix and NixOS the runtime dependencies should already be packaged. For any other system i currently do not have a good way to test, but a valid QT QPA platform plugin should be all that is needed runtime.
## Nix and NixOS
Swaymux is packaged as a nix flake. It can be tested using `nix run git+https://git.grimmauld.de/Grimmauld/swaymux`, this will build and launch swaymux in a temporary environment that will be removed at next garbage collect in store.
To install swaymux permanently, add the flake input, e.g. using the following snippet:
```nix
swaymux = {
url = "git+https://git.grimmauld.de/Grimmauld/swaymux";
@ -23,11 +30,21 @@ 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.
If you want to directly copy this, keep in mind you'll need to make the system and inputs constants available, e.g. by setting `specialArgs = { inherit inputs system; };` as part of your nixosSystem definition in your systems flake.
## Other systems
This project uses cmake and requires the [nlohman json library](https://github.com/nlohmann/json) as well as QT6.
Last time I tested, both GCC and clang compilers worked. Therefore, the classic installation process with cmake, make and make install should just work, though I currently do not have a good way to test.
## Integrating with sway
Once the package is available, it can be made available in sway by keybinding. Setting swaymux to be floating is recommended.
```sway
for_window [app_id="swaymux"] floating enable
bindsym $mod+c exec swaymux
```
Available key bindings can be viewed in-App.
Available key bindings can be viewed in-App.
# Developing
On Nix, the flake makes `nix develop` available, which provides a development environment with all the required dependencies. It does however not provide an IDE by itself.
On any other system, or if you don't like `nix develop`, the standard way of developing cmake based c++ projects should work. Just make sure both compile and runtime dependencies are available.

View File

@ -22,6 +22,7 @@
packages = with pkgs; [
# base toolchain
gcc12
clang
libgcc
qt6.full
qtcreator

View File

@ -39,7 +39,7 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout">
<layout class="QGridLayout" name="gridLayoutTree">
<item row="0" column="0">
<widget class="QTreeView" name="treeView">
<property name="font">
@ -58,7 +58,7 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout">
<layout class="QGridLayout" name="gridLayoutKeys">
<item row="0" column="0">
<widget class="QTableView" name="tableView">
<property name="font">