Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

architecture #1

Open
blobject opened this issue Mar 2, 2021 · 2 comments
Open

architecture #1

blobject opened this issue Mar 2, 2021 · 2 comments

Comments

@blobject
Copy link
Owner

blobject commented Mar 2, 2021

Need a basic architectural plan of the large components of goose.

@blobject
Copy link
Owner Author

blobject commented Mar 2, 2021

Server:

  • A long-running, standalone piece, written in C
  • Started by the user on a tty or by the display manager
  • Retains the true state of all that pertains to window management (not sure if there exists any other kind of state -- maybe mouse cursor position, but even that may get taken up by the underlying wayland software)
  • State can be modified and queried from the outside, almost everything, like: states of windows, frames, outputs; positioning and ordering methods; configurables; etc.
  • All outside communication to be done through either dbus, sockets + json, or plumbing?

(Server) State of environment:

  • Available inputs, outputs, and other system information

(Server) State of windows:

  • Open windows (and their programs)
  • Their size, position, focus, order
  • Their grouping, tagging, marking

(Server) State of management:

  • Stuff currently in play, in relation to the "m" part of "wm"
  • What is visible; how windows are laid out; rules, mechanisms, tactics; etc.

(Server) State of configuration:

  • User specified stuff, colors, rules, log level, paths, etc.

(Server) State of input mapping:

  • Keys/mouse-buttons do what

(Server) History:

  • List of past window management events
  • For purposes of undo, redo

Main client:

  • A user-modifiable script, written in Tcl, that can send messages to the server in order to perform queries or modifications on the fly
  • A set of script words (a Tcl library, an API) is provided by the server that hides most of the details of the message protocol

Overview client:

  • A window management configurer that is mostly redundant (with the main client), but additionally provides an overlaid graphical means of control
  • Hopefully doable in Tk, but wondering how then to achieve neat visual effects

Miscellaneous clients:

  • Bars, pagers, Tk widgets, etc. that likely will be in the purview of end users

@Eloitor
Copy link
Collaborator

Eloitor commented Mar 10, 2024

Started by the user on a tty or by the display manager

I don't know exactly what it does, but some wayland window managers work better when started like this:

dbus-run-session goose

We should investigate what does this allow...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants