Ming-wm is a keyboard-based, retro-themed window manager for Linux. It is neither for Wayland or the X Window System - it writes directly to the framebuffer. Inspirations include i3, Haiku, SerenityOS, and Windows98, and it is a conceptual successor to the previous mingde and ming-os.
The Koxinga web browser can be separately installed.
Create a password.env
file in the same directory as build.rs
, otherwise the default password will be "password".
For best performance:
cargo build --release --all-features
The user may need to be added to the video
group.
Exclude --all-features
if the audio player window is not needed. To compile and use the audio player window, ALSA dev packages need to be installed (alsa-lib-dev
on Alpine, libasound2-dev
on Debian, alsa-lib-devl
on Fedora, already included with alsa-lib
on Arch).
After building, to properly install ming-wm, run the following to put the necessary binaries, font data, and bmp files into /usr/local/bin
:
chmod +x ./install
sudo ./install
Alternatively, to move the binaries to ~/.local/bin
(which probably needs to be added to PATH
, run the following:
chmod +x local-install
sudo ./local-install
ming
Type in the password to unlock. Open the start menu by doing Alt+s
, and use the j
and k
keys to move up and down (like Vim), and press the Enter
key to select a category / open a window.
Usage for most of the included windows and window-likes are included in docs/window-likes
, which can also be accessed from the "Help" entry in the start menu.
Running with an onscreen keyboard. The framebuffer may not be redrawn to the screen without a (real) key press. The volume down button seems to work. If someone knows why this is the case, and/or how to fix this, please let me know.
evtest
needs to be installed. Currently, the input device is assumed to be at /dev/first-touchscreen
.
ming touch
Optionally, in landscape mode:
ming touch rotate
See /docs/philosophy.md for some hopefully interesting ramblings.
Windows (may be called apps in other window managers) can be developed in any language, though it is easiest to do so in Rust because the ming-wm-lib
crate can be used.
See koxinga or src/bin
for examples. The docs
directory includes a brief introduction to writing windows, and (incomplete) documentation on the workings of ming-wm.
Make sure the permissions of password.env
are so other users cannot read or write to it. If there is no plan to recompile, just delete it.
Obviously, don't run the executable with sudo
or doas
, or as the root user!
Licensed under the GPLv3. The font data in the bmps/shippori-mincho
folder are covered by the OFL. The font was created by FONTDASU. The font data in bmps/nimbus-roman
are licensed under the AGPL. This is a very slightly modified version of the font was created by URW Studio. The font data in bmps/nimbus-romono
is also licensed under the AGPL. This is a slightly modified version of the Nimbus Roman font by URW Studio.