Wayland surface position - gnome

I know Wayland protocol doesn't provide option to control shell surface position on the screen. I would like to find a way for controlling window/surface placement. I have tried tools like xdotool and wmctrl, but they only recognize XWayland windows. I am using Gnome Shell so the window manager is Mutter. Why is surface location not part of Wayland protocol? What would be the suggested way or ways for controlling Wayland surface placement programmatically?
Edit:
Wayland client-protocol provides interface for sub-surfaces and it is sufficient for my purposes at the moment. However window I would hope protocol to include top-level window position option. I could make gnome-shell extension with, javascript? But not really an option in this case.

Related

How does wayland compositors/wlroots actually render to the screen?

What api does it use? (if it uses one). Could I make a program that just renders directly to the screen without wayland or xorg? How does xorg draw to the screen and is it different from wayland compositors?

Can ZeroBrane windows have a dark theme without using OS's high-contrast theme?

Just to clarify, I'm not talking about making the background of the editing frame or window dark via:
local G = ...
styles = G.loadfile('cfg/tomorrow.lua')('Zenburn') -- theme
I'm talking about making the background of the Project frame/window, Output window, the menu bar, etc., all dark too.
Is this possible to do without using Windows's high-contrast theme for everything?
Thank you.
I don't think this is possible, as it relies on wxwidgets to draw those windows and wxwidgets uses system-provided colors to draw them (without much if any user control).
I opened a wxwidgets ticket that would implement re-configuring system colors, but there hasn't been much movement on it.

Window manager for linux, supporting focusless windows

On my arm embedded device with a touchscreen, I have a 3rd party program (program A), that creates a window which handle keyboard presses. Because of that, this window always has to have focus. This is a closed source, and I do not have options to modify it.
I need to create a window in linux, that never grabs focus. It just shows an image, some times full screen. However, I have options not to make it full screen (1 pixel less, so window below is visible.).
Right now, I am using only X server, but I can install (almost) any window manager.
Is there a way to create a window in X, that never gets focus? If I understand X correctly, a window bellow mouse will get focus.
Is there a window manager, which supports such feature?
Is this possible to do with with xcb or wayland?
On Wayland, it's up to the compositor to tell the client whether it has focus or not, and which surface(s) to send key events to. So it would depend on the compositor or compositor toolkit you're using if it's possible.
KWin has an option that sounds like it does what you want. Right click the window title bar and choose more actions -> special window settings -> accept focus
Of the compositor toolkits, I only know the Qt Wayland Compositor API, and with that it should be possible (assuming your application can run as a Wayland client). The easiest thing would be to just show the image in the compositor using the QML APIs, or you could set enabled: false on the WaylandQuickItem or ShellSurfaceItem that you don't want to grab input focus.

How to change font size in 'Screen', the screen manager used by Limp to connect to SBCL?

I recently started using Lisp and Limp is the only available plugin for VIM. But, once I set it up and hit F12, the terminal like window that appears has a very small font size. I have a screen resolution of 1920x1080 and it's impractical to read such small fonts. I went through the man page of 'screen', but couldn't find any useful information on changing the font or font size. Is there a way to do this?
And how about using something like 'xterm' rather than 'screen'? I looked through the code of bridge.vim. I don't think it is too much of a task. Any ideas on this?
By screen, do you mean GNU screen?
GNU screen is a terminal emulator that runs in another terminal or emulator. It has no direct control over font sizes; it's purely text based. The window you're seeing must be some GUI terminal emulator; you haven't told us enough to guess which one (could be xterm, could be Gnome terminal, etc.).
For xterm, control-right-click should bring up the "VT Fonts" menu, which will let you select a different font. If none of the available fonts are to your liking, you can use X resources to reconfigure the options, including the choice for the default font.
xterm also supports a control sequence that sets the current font. You have to know the name of the font you want. xlsfonts will show you a very long list of font names (it just showed me 5594 of them). For example, if you run this from a shell running in xterm:
printf '\e]50;-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1\a'
it should give you the font I usually use. But screen generally intercepts escape sequences like that, so it probably won't work from screen under xterm.
Other terminal emulators should have similar mechanisms.

How to have subpixel rendering of font for LCD (cleartype on windows) on linux?

I am working on embedded system, with own windowing system and rendering library. Before someday when I installed Ubuntu, to my surprise it has LCD subpixel rendering. It really looks cool to have it on my device. Because it is very readable.
Currently I ask for particular glyph in freetype, freetype gives me one memory buffer with values of alpha, with that it is not possible to have subpixel rendering. What I have is normal antialiazed font. As in subpixel - rendering left most pixel of font is anti-aliazed with Red and Rightmost with Blue ( Assuming Screen is RGB ).
Is there any methods with which freetype can give me information that whether current pixel is left or right or centerone?
Thanks, Sunny.
freetype can do it
As you point out, the desktop environment you're using (GNOME, KDE, whatever) may implement this. The setting for it varies by environment.
As to how to do it in your own code, you can use the same routines the window manager does (Gtk+ on GNOME, Qt on KDE, etc.), or you can use a separate library like FreeType or SDL_ttf. Antialiasing -- the generic term for this, as ClearType is a patented algorithm specific to Microsoft -- is usually optional in these libraries, disabled by default for speed.
I think that libcairo is at the bottom of most GTK applications in Ubuntu that do antialiasing. I think that whether subpixel rendering is done specifically for an LCD screen is something the user chooses, not the application author. The user controls it through the "Fonts" tab of "Appearance Preferences" in System -> Preferences -> Appearance (which can be run manually as the binary "gnome-appearance-properties") and clicking on the "Subpixel smoothing (LCDs)" option.
Maybe there's a way that an application can override this setting for themselves? Not sure why they'd want to, though, since an app doesn't control what kind of display the user is using.

Resources