mirror of
https://github.com/m1k1o/neko.git
synced 2025-06-04 11:52:44 +02:00
Custom sizes with XRandR (#25)
* xserver dummy with RandR. * update. * remove screen configurations from xorg. * screen size cannot be nil anymore. * use predefined screen configurations. * use screen configurations. * fix error. * remove comment.
This commit is contained in:
parent
bfabee12e2
commit
f8b128e1e9
14 changed files with 666 additions and 107 deletions
|
@ -13,11 +13,20 @@ func (h *MessageHandlerCtx) screenSet(session types.Session, payload *message.Sc
|
|||
return errors.New("is not the admin")
|
||||
}
|
||||
|
||||
data := types.ScreenSize(*payload)
|
||||
if err := h.desktop.SetScreenSize(data); err != nil {
|
||||
size, err := h.desktop.SetScreenSize(types.ScreenSize{
|
||||
Width: payload.Width,
|
||||
Height: payload.Height,
|
||||
Rate: payload.Rate,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
h.sessions.Broadcast(event.SCREEN_UPDATED, payload)
|
||||
h.sessions.Broadcast(event.SCREEN_UPDATED, message.ScreenSize{
|
||||
Width: size.Width,
|
||||
Height: size.Height,
|
||||
Rate: size.Rate,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package handler
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
|
@ -25,8 +23,10 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error {
|
|||
}
|
||||
|
||||
size := h.desktop.GetScreenSize()
|
||||
if size == nil {
|
||||
return errors.New("could not get screen size")
|
||||
screenSize := message.ScreenSize{
|
||||
Width: size.Width,
|
||||
Height: size.Height,
|
||||
Rate: size.Rate,
|
||||
}
|
||||
|
||||
sessions := map[string]message.SessionData{}
|
||||
|
@ -44,7 +44,7 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error {
|
|||
message.SystemInit{
|
||||
SessionId: session.ID(),
|
||||
ControlHost: controlHost,
|
||||
ScreenSize: message.ScreenSize(*size),
|
||||
ScreenSize: screenSize,
|
||||
Sessions: sessions,
|
||||
Settings: h.sessions.Settings(),
|
||||
ScreencastEnabled: h.capture.Screencast().Enabled(),
|
||||
|
@ -57,22 +57,22 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error {
|
|||
}
|
||||
|
||||
func (h *MessageHandlerCtx) systemAdmin(session types.Session) error {
|
||||
screenSizesList := []message.ScreenSize{}
|
||||
for _, size := range h.desktop.ScreenConfigurations() {
|
||||
for _, rate := range size.Rates {
|
||||
screenSizesList = append(screenSizesList, message.ScreenSize{
|
||||
Width: size.Width,
|
||||
Height: size.Height,
|
||||
Rate: rate,
|
||||
})
|
||||
}
|
||||
configurations := h.desktop.ScreenConfigurations()
|
||||
|
||||
list := make([]message.ScreenSize, 0, len(configurations))
|
||||
for _, conf := range configurations {
|
||||
list = append(list, message.ScreenSize{
|
||||
Width: conf.Width,
|
||||
Height: conf.Height,
|
||||
Rate: conf.Rate,
|
||||
})
|
||||
}
|
||||
|
||||
broadcast := h.capture.Broadcast()
|
||||
session.Send(
|
||||
event.SYSTEM_ADMIN,
|
||||
message.SystemAdmin{
|
||||
ScreenSizesList: screenSizesList,
|
||||
ScreenSizesList: list, // TODO: remove
|
||||
BroadcastStatus: message.BroadcastStatus{
|
||||
IsActive: broadcast.Started(),
|
||||
URL: broadcast.Url(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue