Files
moslab-code/doc/source/html/l4re_servers_mag.html
2025-09-12 15:55:45 +02:00

179 lines
9.0 KiB
HTML

<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.15.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>L4Re Operating System Framework: Mag, the GUI Multiplexer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">L4Re Operating System Framework
</div>
<div id="projectbrief">Interface and Usage Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('l4re_servers_mag.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div><div class="header">
<div class="headertitle"><div class="title">Mag, the GUI Multiplexer </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Mag is the default multiplexer for graphics hardware. It is not, and does not attempt to be, a fully-fledged window manager.</p>
<h2>Command Line Options </h2>
<p>As Mag's only command line option it supports loading additional plugins via the application's command line. Plugins must be either a Lua file or a shared library. Shared libraries must be named <span class="tt">libmag-$LIBNAME.so</span>.</p>
<h2>Mag Sessions </h2>
<p>Mag provides two types of sessions which a client can create via the Factory interface.</p>
<ol type="1">
<li><p class="startli">Mag client session</p>
<p class="startli">A client with a mag client session gets access to the whole screen. The client has to allocate and manage it's own buffers and has to position them on the screen on its own. Mag provides the factory to create client sessions via the capability named <span class="tt">mag</span>.</p>
</li>
<li><p class="startli">Client framebuffer session</p>
<p class="startli">For a client framebuffer session mag allocates a view of the requested size and displays it at the requested coordinates on the screen. Mag provides the factory to create framebuffer sessions via the capability named <span class="tt">svc</span>.</p>
</li>
</ol>
<p>The options described below are options the client provides to the <a class="el" href="classL4_1_1Factory.html#ab52604d4abed4d6009ce51a59492edd7" title="Generic create call to the factory.">L4::Factory::create()</a> call. These options influence the appearance and behaviour of the newly created session.</p>
<h3>Session Factory Options</h3>
<p>As a simple nitpicker clone Mag supports the so-called Xray mode. This mode displays all session labels and draws a colored frame around them. The session that currently has the input focus is highlighted. The Xray mode is actived via the special keys <em>Scroll</em> or <em>NEXTSONG</em>.</p>
<p>Mag allows to define a text label and a color for all client session types. The label and the color are displayed when Mag enters the Xray mode.</p>
<ul>
<li><p class="startli">Label Option: <b>label</b></p>
<p class="startli"><span class="tt">l=LABEL</span>, <span class="tt">label=LABEL</span> Set the session's text label to LABEL. The label is restricted to a length of 256 characters.</p>
</li>
<li><p class="startli">Color Option: <b>col</b></p>
<p class="startli"><span class="tt">col=COLOR</span> Set the session's color which is used in Xray mode to tint the session's screen area and the border drawn around it. The argument can be either one of the following letters or a hexdecimal representation of the RGB values.</p><ul>
<li><span class="tt">r, R</span> Red color</li>
<li><span class="tt">g, G</span> Green color</li>
<li><span class="tt">b, B</span> Blue color</li>
<li><span class="tt">w, W</span> White color</li>
<li><span class="tt">y, Y</span> Yellow color</li>
<li><span class="tt">v, V</span> Magenta color</li>
</ul>
</li>
</ul>
<p>Example </p><pre class="fragment">-- set label to "Linux" and use a light blue color
fb = mag_client:create(L4.Proto.Goos, "l=Linux", "col=98d9ff");
</pre><h3>Mag Client Session Options</h3>
<p>These options only apply to Mag client sessions.</p>
<ul>
<li><p class="startli">Default Background Option: <b>default-background</b></p>
<p class="startli"><span class="tt">dfl-bg</span>, <span class="tt">default-background</span> Marks this session as the default background.</p>
</li>
</ul>
<h3>Mag Client Framebuffer Session Options</h3>
<p>These options only apply to Mag client framebuffer sessions.</p>
<ul>
<li><p class="startli">Geometry Option: <b>geometry</b></p>
<p class="startli"><span class="tt">g=GEOMETRY</span>, <span class="tt">geometry=GEOMETRY</span> Set the session's geometry and position on the screen. GEOMETRY is provided in an X11-style format, e.g. <span class="tt">g=WIDTHxHEIGHT+X_OFFSET+Y_OFFSET</span>.</p>
</li>
<li><p class="startli">Focus Option: <b>focus</b></p>
<p class="startli"><span class="tt">focus</span> Set the focus to this session.</p>
</li>
<li><p class="startli">Collapsed Option: <b>shaded</b></p>
<p class="startli"><span class="tt">shaded</span> The window is collapsed and only the title bar is visible. The window can be expanded by clicking into the title bar with the middle mouse button. Collapsing and expanding works also independently of this option.</p>
</li>
<li>Fixed Option: <b>fixed</b> <span class="tt">fixed</span> The window cannot be moved on the screen.</li>
<li><p class="startli">Barheight Option: <b>barheight</b></p>
<p class="startli"><span class="tt">barheight=X</span> Set the height of the title bar in pixels.</p>
</li>
</ul>
<p>Example </p><pre class="fragment">-- create a window of 640x480 pixels at position (100,100) on the screen.
fb = mag_fb:create(L4.Proto.Goos, "g=640x480+100+100");
</pre> </div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="l4re_servers.html">L4Re Servers</a></li>
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
</ul>
</div>
</body>
</html>