mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-28 05:40:19 -04:00
project: merge mmsg meson.build file into mango meson.build
This commit is contained in:
parent
a707feeb11
commit
59d86e7169
7 changed files with 32 additions and 283 deletions
|
|
@ -1,3 +1,3 @@
|
||||||
#!/usr/bin/bash
|
#!/usr/bin/bash
|
||||||
|
|
||||||
clang-format -i src/*/*.h -i src/*/*.c -i src/mango.c -i mmsg/src/mmsg.c -i mmsg/src/arg.h -i mmsg/src/dynarr.h
|
clang-format -i src/*/*.h -i src/*/*.c -i src/mango.c -i mmsg/mmsg.c -i mmsg/arg.h -i mmsg/dynarr.h
|
||||||
|
|
|
||||||
34
meson.build
34
meson.build
|
|
@ -3,7 +3,6 @@ project('mango', ['c', 'cpp'],
|
||||||
)
|
)
|
||||||
|
|
||||||
subdir('protocols')
|
subdir('protocols')
|
||||||
subdir('mmsg')
|
|
||||||
|
|
||||||
is_nixos = false
|
is_nixos = false
|
||||||
os_release = run_command('cat', '/etc/os-release', check: false)
|
os_release = run_command('cat', '/etc/os-release', check: false)
|
||||||
|
|
@ -117,8 +116,37 @@ executable('mango',
|
||||||
link_args : link_args,
|
link_args : link_args,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# build mmsg
|
||||||
|
dwl_ipc_protocol = 'protocols/dwl-ipc-unstable-v2.xml'
|
||||||
|
dwl_ipc_header = custom_target(
|
||||||
|
'dwl-ipc-header',
|
||||||
|
input: dwl_ipc_protocol,
|
||||||
|
output: 'dwl-ipc-unstable-v2-protocol.h',
|
||||||
|
command: [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'],
|
||||||
|
build_by_default: true,
|
||||||
|
)
|
||||||
|
dwl_ipc_source = custom_target(
|
||||||
|
'dwl-ipc-source',
|
||||||
|
input: dwl_ipc_protocol,
|
||||||
|
output: 'dwl-ipc-unstable-v2-protocol.c',
|
||||||
|
command: [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'],
|
||||||
|
build_by_default: true,
|
||||||
|
)
|
||||||
|
|
||||||
|
executable('mmsg',
|
||||||
|
'mmsg/mmsg.c',
|
||||||
|
dwl_ipc_source,
|
||||||
|
dependencies: [
|
||||||
|
libwayland_client_dep
|
||||||
|
],
|
||||||
|
install: true,
|
||||||
|
c_args: [
|
||||||
|
'-g',
|
||||||
|
'-Wno-unused-function',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
desktop_install_dir = join_paths(prefix, 'share/wayland-sessions')
|
desktop_install_dir = join_paths(prefix, 'share/wayland-sessions')
|
||||||
install_data('mango.desktop', install_dir : desktop_install_dir)
|
install_data('mango.desktop', install_dir : desktop_install_dir)
|
||||||
|
|
||||||
# 安装 config.conf
|
|
||||||
install_data('config.conf', install_dir : join_paths(sysconfdir, 'mango'))
|
install_data('config.conf', install_dir : join_paths(sysconfdir, 'mango'))
|
||||||
|
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
wayland_scanner = find_program('wayland-scanner')
|
|
||||||
|
|
||||||
dwl_ipc_protocol = 'protocols/dwl-ipc-unstable-v2.xml'
|
|
||||||
|
|
||||||
dwl_ipc_header = custom_target(
|
|
||||||
'dwl-ipc-header',
|
|
||||||
input: dwl_ipc_protocol,
|
|
||||||
output: 'dwl-ipc-unstable-v2-protocol.h',
|
|
||||||
command: [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'],
|
|
||||||
build_by_default: true,
|
|
||||||
)
|
|
||||||
|
|
||||||
dwl_ipc_source = custom_target(
|
|
||||||
'dwl-ipc-source',
|
|
||||||
input: dwl_ipc_protocol,
|
|
||||||
output: 'dwl-ipc-unstable-v2-protocol.c',
|
|
||||||
command: [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'],
|
|
||||||
build_by_default: true,
|
|
||||||
)
|
|
||||||
|
|
||||||
executable('mmsg',
|
|
||||||
'src/mmsg.c',
|
|
||||||
dwl_ipc_source,
|
|
||||||
dependencies: [
|
|
||||||
dependency('wayland-client'),
|
|
||||||
],
|
|
||||||
include_directories: include_directories('.'),
|
|
||||||
install: true,
|
|
||||||
c_args: [
|
|
||||||
'-g',
|
|
||||||
'-Wno-unused-function',
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
@ -1,246 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
This is largely ripped from somebar's ipc patchset; just with some personal modifications.
|
|
||||||
I would probably just submit raphi's patchset but I don't think that would be polite.
|
|
||||||
-->
|
|
||||||
<protocol name="dwl_ipc_unstable_v2">
|
|
||||||
<description summary="inter-proccess-communication about dwl's state">
|
|
||||||
This protocol allows clients to update and get updates from dwl.
|
|
||||||
|
|
||||||
Warning! The protocol described in this file is experimental and
|
|
||||||
backward incompatible changes may be made. Backward compatible
|
|
||||||
changes may be added together with the corresponding interface
|
|
||||||
version bump.
|
|
||||||
Backward incompatible changes are done by bumping the version
|
|
||||||
number in the protocol and interface names and resetting the
|
|
||||||
interface version. Once the protocol is to be declared stable,
|
|
||||||
the 'z' prefix and the version number in the protocol and
|
|
||||||
interface names are removed and the interface version number is
|
|
||||||
reset.
|
|
||||||
</description>
|
|
||||||
|
|
||||||
<interface name="zdwl_ipc_manager_v2" version="2">
|
|
||||||
<description summary="manage dwl state">
|
|
||||||
This interface is exposed as a global in wl_registry.
|
|
||||||
|
|
||||||
Clients can use this interface to get a dwl_ipc_output.
|
|
||||||
After binding the client will recieve the dwl_ipc_manager.tags and dwl_ipc_manager.layout events.
|
|
||||||
The dwl_ipc_manager.tags and dwl_ipc_manager.layout events expose tags and layouts to the client.
|
|
||||||
</description>
|
|
||||||
|
|
||||||
<request name="release" type="destructor">
|
|
||||||
<description summary="release dwl_ipc_manager">
|
|
||||||
Indicates that the client will not the dwl_ipc_manager object anymore.
|
|
||||||
Objects created through this instance are not affected.
|
|
||||||
</description>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<request name="get_output">
|
|
||||||
<description summary="get a dwl_ipc_outout for a wl_output">
|
|
||||||
Get a dwl_ipc_outout for the specified wl_output.
|
|
||||||
</description>
|
|
||||||
<arg name="id" type="new_id" interface="zdwl_ipc_output_v2"/>
|
|
||||||
<arg name="output" type="object" interface="wl_output"/>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<event name="tags">
|
|
||||||
<description summary="Announces tag amount">
|
|
||||||
This event is sent after binding.
|
|
||||||
A roundtrip after binding guarantees the client recieved all tags.
|
|
||||||
</description>
|
|
||||||
<arg name="amount" type="uint"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="layout">
|
|
||||||
<description summary="Announces a layout">
|
|
||||||
This event is sent after binding.
|
|
||||||
A roundtrip after binding guarantees the client recieved all layouts.
|
|
||||||
</description>
|
|
||||||
<arg name="name" type="string"/>
|
|
||||||
</event>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface name="zdwl_ipc_output_v2" version="2">
|
|
||||||
<description summary="control dwl output">
|
|
||||||
Observe and control a dwl output.
|
|
||||||
|
|
||||||
Events are double-buffered:
|
|
||||||
Clients should cache events and redraw when a dwl_ipc_output.frame event is sent.
|
|
||||||
|
|
||||||
Request are not double-buffered:
|
|
||||||
The compositor will update immediately upon request.
|
|
||||||
</description>
|
|
||||||
|
|
||||||
<enum name="tag_state">
|
|
||||||
<entry name="none" value="0" summary="no state"/>
|
|
||||||
<entry name="active" value="1" summary="tag is active"/>
|
|
||||||
<entry name="urgent" value="2" summary="tag has at least one urgent client"/>
|
|
||||||
</enum>
|
|
||||||
|
|
||||||
<request name="release" type="destructor">
|
|
||||||
<description summary="release dwl_ipc_outout">
|
|
||||||
Indicates to that the client no longer needs this dwl_ipc_output.
|
|
||||||
</description>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<event name="toggle_visibility">
|
|
||||||
<description summary="Toggle client visibilty">
|
|
||||||
Indicates the client should hide or show themselves.
|
|
||||||
If the client is visible then hide, if hidden then show.
|
|
||||||
</description>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="active">
|
|
||||||
<description summary="Update the selected output.">
|
|
||||||
Indicates if the output is active. Zero is invalid, nonzero is valid.
|
|
||||||
</description>
|
|
||||||
<arg name="active" type="uint"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="tag">
|
|
||||||
<description summary="Update the state of a tag.">
|
|
||||||
Indicates that a tag has been updated.
|
|
||||||
</description>
|
|
||||||
<arg name="tag" type="uint" summary="Index of the tag"/>
|
|
||||||
<arg name="state" type="uint" enum="tag_state" summary="The state of the tag."/>
|
|
||||||
<arg name="clients" type="uint" summary="The number of clients in the tag."/>
|
|
||||||
<arg name="focused" type="uint" summary="If there is a focused client. Nonzero being valid, zero being invalid."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="layout">
|
|
||||||
<description summary="Update the layout.">
|
|
||||||
Indicates a new layout is selected.
|
|
||||||
</description>
|
|
||||||
<arg name="layout" type="uint" summary="Index of the layout."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="title">
|
|
||||||
<description summary="Update the title.">
|
|
||||||
Indicates the title has changed.
|
|
||||||
</description>
|
|
||||||
<arg name="title" type="string" summary="The new title name."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="appid" since="1">
|
|
||||||
<description summary="Update the appid.">
|
|
||||||
Indicates the appid has changed.
|
|
||||||
</description>
|
|
||||||
<arg name="appid" type="string" summary="The new appid."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="layout_symbol" since="1">
|
|
||||||
<description summary="Update the current layout symbol">
|
|
||||||
Indicates the layout has changed. Since layout symbols are dynamic.
|
|
||||||
As opposed to the zdwl_ipc_manager.layout event, this should take precendence when displaying.
|
|
||||||
You can ignore the zdwl_ipc_output.layout event.
|
|
||||||
</description>
|
|
||||||
<arg name="layout" type="string" summary="The new layout"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="frame">
|
|
||||||
<description summary="The update sequence is done.">
|
|
||||||
Indicates that a sequence of status updates have finished and the client should redraw.
|
|
||||||
</description>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<request name="set_tags">
|
|
||||||
<description summary="Set the active tags of this output"/>
|
|
||||||
<arg name="tagmask" type="uint" summary="bitmask of the tags that should be set."/>
|
|
||||||
<arg name="toggle_tagset" type="uint" summary="toggle the selected tagset, zero for invalid, nonzero for valid."/>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<request name="set_client_tags">
|
|
||||||
<description summary="Set the tags of the focused client.">
|
|
||||||
The tags are updated as follows:
|
|
||||||
new_tags = (current_tags AND and_tags) XOR xor_tags
|
|
||||||
</description>
|
|
||||||
<arg name="and_tags" type="uint"/>
|
|
||||||
<arg name="xor_tags" type="uint"/>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<request name="set_layout">
|
|
||||||
<description summary="Set the layout of this output"/>
|
|
||||||
<arg name="index" type="uint" summary="index of a layout recieved by dwl_ipc_manager.layout"/>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<request name="quit" since="2">
|
|
||||||
<description summary="Quit mango">This request allows clients to instruct the compositor to quit mango.</description>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<request name="dispatch" since="2">
|
|
||||||
<description summary="Set the active tags of this output"/>
|
|
||||||
<arg name="dispatch" type="string" summary="dispatch name."/>
|
|
||||||
<arg name="arg1" type="string" summary="arg1."/>
|
|
||||||
<arg name="arg2" type="string" summary="arg2."/>
|
|
||||||
<arg name="arg3" type="string" summary="arg3."/>
|
|
||||||
<arg name="arg4" type="string" summary="arg4."/>
|
|
||||||
<arg name="arg5" type="string" summary="arg5."/>
|
|
||||||
</request>
|
|
||||||
|
|
||||||
<!-- Version 2 -->
|
|
||||||
<event name="fullscreen" since="2">
|
|
||||||
<description summary="Update fullscreen status">
|
|
||||||
Indicates if the selected client on this output is fullscreen.
|
|
||||||
</description>
|
|
||||||
<arg name="is_fullscreen" type="uint" summary="If the selected client is fullscreen. Nonzero is valid, zero invalid"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="floating" since="2">
|
|
||||||
<description summary="Update the floating status">
|
|
||||||
Indicates if the selected client on this output is floating.
|
|
||||||
</description>
|
|
||||||
<arg name="is_floating" type="uint" summary="If the selected client is floating. Nonzero is valid, zero invalid"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="x" since="2">
|
|
||||||
<description summary="Update the x coordinates">
|
|
||||||
Indicates if x coordinates of the selected client.
|
|
||||||
</description>
|
|
||||||
<arg name="x" type="int" summary="x coordinate of the selected client"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="y" since="2">
|
|
||||||
<description summary="Update the y coordinates">
|
|
||||||
Indicates if y coordinates of the selected client.
|
|
||||||
</description>
|
|
||||||
<arg name="y" type="int" summary="y coordinate of the selected client"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="width" since="2">
|
|
||||||
<description summary="Update the width">
|
|
||||||
Indicates if width of the selected client.
|
|
||||||
</description>
|
|
||||||
<arg name="width" type="int" summary="width of the selected client"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="height" since="2">
|
|
||||||
<description summary="Update the height">
|
|
||||||
Indicates if height of the selected client.
|
|
||||||
</description>
|
|
||||||
<arg name="height" type="int" summary="height of the selected client"/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="last_layer" since="2">
|
|
||||||
<description summary="last map layer.">
|
|
||||||
last map layer.
|
|
||||||
</description>
|
|
||||||
<arg name="last_layer" type="string" summary="last map layer."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="kb_layout" since="2">
|
|
||||||
<description summary="current keyboard layout.">
|
|
||||||
current keyboard layout.
|
|
||||||
</description>
|
|
||||||
<arg name="kb_layout" type="string" summary="current keyboard layout."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="keymode" since="2">
|
|
||||||
<description summary="current keybind mode.">
|
|
||||||
current keybind mode.
|
|
||||||
</description>
|
|
||||||
<arg name="keymode" type="string" summary="current keybind mode."/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
</protocol>
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue