leftwm / leftwm

A tiling window manager for Adventurers
http://leftwm.org
MIT License
2.87k stars 189 forks source link

Future Plans. #596

Closed AethanFoot closed 2 years ago

AethanFoot commented 2 years ago

This is just a simple list of future ideas for leftwm (In no particular order):

grtcdr commented 2 years ago

Hi! Lovely project and great work!

I'm honestly really psyched to see LeftWM on Wayland!

Quick question: are there any plans to fully comply with the EMWH spec so that wmctrl can detect the window manager?

EDIT: seems like it is already EMWH compliant, any particular reason why wmctrl just can't detect it?

AethanFoot commented 2 years ago

I have added a fix for _NET_WM_NAME and added WM_CLASS to #587. I am assuming you were only talking about wmctrl -m.

We are always improving EMWH compliance we most updates, it should be at a minimum level (If not it is generally due to a mistake).

grtcdr commented 2 years ago

Thank you so much :)

And thank you for the wonderful work you're putting into LeftWM, I really hope it pays off amazingly :heart:

VentGrey commented 2 years ago

This may be a shot to the air but, how about "shorthand" commands in leftwm-state? This could be very useful for scripts as a whole.

The best example I have is the bspwm client where:

I know leftwm-state can use liquid templates but the example in the themes folders seems a bit verbose, it would be nice to have for example: leftwm-state -w0 --tagnames.

I say this might be "shot to the air" because I don't know how much users use lemonbar / xmobar as their actual bars but using an external program seems / feels odd :sweat_smile: .

Any thoughts on this? :thinking:

VuiMuich commented 2 years ago

I say this might be "shot to the air" because I don't know how much users use lemonbar / xmobar as their actual bars but using an external program seems / feels odd sweat_smile .

Well, this is basically the Unix way, ins't it?

But in general I think, this would make a great additional "external" sub-command to leftwm similar to leftwm-theme, so it can be added on users desire. Does anybody know how cargo is adding externally installed subcommands without hardcoding them in the main binary?

VentGrey commented 2 years ago

idk if cargo features might help or if a new binary is the solution.

VuiMuich commented 2 years ago

I'll investigate, but I thought cargo is able to "add sub commands from binaries at runtime" or even sub commands to sub commands.

0323pin commented 2 years ago

@AethanFoot This,

Add dbus support for ipc (inter-process communication) with zbus. This is for leftwm-state, commands.pipe (maybe keep the file and depreciate that section of code and the examples of using the file. Let leftwm-command handle it) , etc.

Is it possible to achieve this using notify-rust with default-features = false, features = ["d"] instead?

zbus doesn't currently build on NetBSD while notify-rust does. Besides, the number of required dependency crates is a lot smaller using notify-rust.

Here's the error while building zbus on NetBSD

   Compiling zbus v1.9.1
error[E0432]: unresolved import `nix::sys::socket::sockopt::PeerCredentials`
   --> /usr/pkgsrc/wip/citron/work/vendor/zbus-1.9.1/src/connection.rs:163:44
    |
163 |         use nix::sys::socket::{getsockopt, sockopt::PeerCredentials};
    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^ no `PeerCredentials` in `sys::socket::sockopt`

error[E0432]: unresolved import `nix::sys::socket::sockopt::PeerCredentials`
   --> /usr/pkgsrc/wip/citron/work/vendor/zbus-1.9.1/src/azync/connection.rs:180:44
    |
180 |         use nix::sys::socket::{getsockopt, sockopt::PeerCredentials};
    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^ no `PeerCredentials` in `sys::socket::sockopt`

For more information about this error, try `rustc --explain E0432`.
error: could not compile `zbus` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

Looking forward to the release of 0.2.10 and to merge the package onto pkgsrc.

AethanFoot commented 2 years ago

rust-notify seems only for notifications, but we can use the dbus bindings instead.

0323pin commented 2 years ago

@AethanFoot That should also do it, thanks! I really should look at why zbus fails but, if you are ok with dbus bindings, it's fine.

mautamu commented 2 years ago

I was running into similar problems on Linux; even once I got dbus to compile notifications weren't working for me.

KYTAZ0 commented 2 years ago

I'd kill for a wayland port as well...

Hammer2900 commented 2 years ago

How about connecting scripts to python for configuration or event tracking ? We can use this library. https://github.com/RustPython/RustPython

oredaze commented 2 years ago

I didn't want to start a new topic, although I should, because this is a big deal for me: Directional window navigation. Up, down, left, right. When I go to try out a new window manager that is the first thing I look for. Can I focus/swap windows by using the arrows or hjkl? If I can't - it is not worth even trying the window manager. It is just painful for me to not be able to press Left and visually focus the window positioned to the left for example... And Leftwm cannot go left right now. (At least I didn't see the functionality)

VuiMuich commented 2 years ago

I didn't want to start a new topic, although I should, because this is a big deal for me: Directional window navigation. Up, down, left, right. When I go to try out a new window manager that is the first thing I look for. Can I focus/swap windows by using the arrows or hjkl? If I can't - it is not worth even trying the window manager. It is just painful for me to not be able to press Left and visually focus the window positioned to the left for example... And Leftwm cannot go left right now. (At least I didn't see the functionality)

Hi, This regularly comes up and I am sorry that this is a dealbreaker for you and some other people as well. It is not as easy to implement as it might seem on a first glance and most users are very comfortable with the way it is right now. Of course when you are very used to it, it takes some tedious time to adopt.

I'll open its own issue though, to document some ideas and thoughts on this topic. => #771