{"id":22573186,"url":"https://github.com/morgant/mlvwmrc","last_synced_at":"2026-01-27T01:34:14.258Z","repository":{"id":48628327,"uuid":"164244593","full_name":"morgant/mlvwmrc","owner":"morgant","description":"Macintosh-like Virtual Window Manager (MLVWM) configuration files","archived":false,"fork":false,"pushed_at":"2025-12-26T16:47:25.000Z","size":117,"stargazers_count":25,"open_issues_count":8,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-28T05:44:12.703Z","etag":null,"topics":["macintosh","mlvwm","theme-files","xwindows"],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morgant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-01-05T19:23:54.000Z","updated_at":"2025-12-26T16:47:29.000Z","dependencies_parsed_at":"2023-11-06T05:25:25.938Z","dependency_job_id":"a101d618-02fe-43dc-8c87-ce6736a25a17","html_url":"https://github.com/morgant/mlvwmrc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/morgant/mlvwmrc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgant%2Fmlvwmrc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgant%2Fmlvwmrc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgant%2Fmlvwmrc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgant%2Fmlvwmrc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morgant","download_url":"https://codeload.github.com/morgant/mlvwmrc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgant%2Fmlvwmrc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28795468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T01:07:07.743Z","status":"ssl_error","status_checked_at":"2026-01-27T01:07:06.974Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["macintosh","mlvwm","theme-files","xwindows"],"created_at":"2024-12-08T02:14:13.294Z","updated_at":"2026-01-27T01:34:14.246Z","avatar_url":"https://github.com/morgant.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mlvwmrc\nby Morgan Aldridge \u003cmorgant@makkintosshu.com\u003e\n\n## OVERVIEW\n\nThis a set of configuration files for Takashi HASEGAWA's [Macintosh-like Virtual Window Manager (MLVWM)](https://github.com/morgant/mlvwm) with the following goals:\n\n- More accurate emulation of [System 7](https://en.wikipedia.org/wiki/System_7) and [MacOS 8](https://en.wikipedia.org/wiki/Mac_OS_8)/9/\"Classic\" user interfaces\n- More complete configuration out-of-the-box\n- Well structured configuration files\n- Minimal scripting \u0026 utilities toward the aforementioned goals\n\nUnfortunately, MLVWM only includes a couple very rudimentary example rc ([run command](https://en.wikipedia.org/wiki/Run_commands)) files and requires the user to create their own configurations. Worse, since it doesn't automatically generate per-application menu bar, menu, and menu item configurations, the user must take on this extremely tedious process themselves. As it is only a hobbyist research project window manager, no appropriate structure for the rc files (esp. for individual applications), icons (i.e. pixmaps), themes, etc., is provided, making it hard to share and integrate configurations amongst the user base. Last, but not least, I wanted to reduce the amount of configuration needed every time I personally configure MLVWM on my own workstations.\n\n## PREREQUISITES\n\n* `mlvwm`:\n    * `locale`\n    * `xpm`\n* `make`:\n* `curl`\n* `unzip`\n* ImageMagick\n* `gxmessage`\n* `xdotool` (for `mlvwm-restart`)\n* [`maim`](https://github.com/naelstrof/maim) \u0026 [`slop`](https://github.com/naelstrof/slop) (for `mlvwm-screenshot`)\n\n## USAGE\n\nRun `make \u0026\u0026 make install` to install `.mlvwm/`, `.mlvwmrc`, and `bin/mlvwm-*` in your home directory, including downloading and/or converting appropriate icons.\n\n## TESTING\n\nIt's a good idea to test your `mlvwm` configuration prior to attempting to use it as your default window manager for the first time or after making any changes. The easiest way to do this is using `Xephyr`. I do the following:\n\n    Xephyr :32 -screen 1024x768 \u0026\n    DISPLAY=:32 mlvwm -debug\n\nThe above will run `mlvwm` in a window, so you can test within your existing environment and easily troubleshoot or kill it if something goes wrong.\n\n## SUGGESTED ADDITIONAL CONFIGURATION\n\n### X Resources\n\nSome X resources are included for specific applications. For example, there are analog `oclock` \u0026 `xclock` resources inspired by the 1995 Apple wristwatch.\n\nYou can test them until your next logout/login cycle by running:\n\n```\nxrdb -merge ~/.mlvwm/.Xdefaults\n```\n\nIf you like what you see, they can be automatically included by adding the following to your own `~/.Xdefaults` file:\n\n```\n! MLVWM application styles\n#import \".mlvwm/.Xdefaults\"\n```\n\nYou will also want to confirm that your `~/.Xdefaults` is being loaded/merged in your `~/.xinit` (or `~/.xsession`, on some platforms) file. If it is not, add the following before `mlvwm` is launched:\n\n```\nxrdb -merge $HOME/.Xdefaults\n```\n\n### Disable High DPI\n\nUnfortunately, MLVWM does not support High DPI (a.k.a. HiDPI) resolution scaling, only a traditional 1:1 pixel scaling factor. It's suggested to add the following to your `~/.xinitrx` or `~/.xsession` to disable High DPI in GTK \u0026 Qt X11 applications:\n\n```\n# Disable HiDPI for GTK \u0026 Qt X11 applications\nexport QT_ENABLE_HIGHDPI_SCALING=0    # Qt \u003e= 5.14\nexport QT_AUTO_SCREEN_SCALE_FACTOR=0  # Qt \u003c 5.14\nexport QT_SCALE_FACTOR=1\nexport GDK_SCALE=1\n```\n\nFor further details on High DPI in X11 applications, see:\n\n* [GTK 4: Using GTK with X11 (X11-specific environment variables)](https://docs.gtk.org/gtk4/x11.html#x11-specific-environment-variables)\n* [Qt 6.9: Graphics \u003e High DPI (Environment Variable Reference)](https://doc.qt.io/qt-6/highdpi.html#environment-variable-reference)\n* [Qt 5.15: High DPI Displays (High DPI Support in Qt)](https://qthub.com/static/doc/qt5/qtdoc/highdpi.html#high-dpi-support-in-qt)\n\n### GTK+ 3\n\nSome of the included configurations are for GTK+ 3 applications which use [client-side decorations (CSD)](https://en.wikipedia.org/wiki/Client-side_decoration), resulting in window controls being included in the \"header bar\". These window controls already exist in the `mlvwm` window title bars, so are redundant and look out of place. They can be disabled by editing `~/.config/gtk-3.0/settings.ini` to set `gtk-decoration-layout` to a blank string (or [customize](https://docs.gtk.org/gtk3/property.Settings.gtk-decoration-layout.html) as you see fit), for example:\n\n```\n\\[Settings\\]\ngtk-decoration-layout=\"\"\n```\n\n### iDesk\n\nCompanion [iDesk](https://idesk.sourceforge.net/) configuration files are available via the [mlvwmrc-ideskrc](https://github.com/morgant/mlvwmrc-ideskrc) project.\n\n## APPLICATIONS\n\nConfigurations for the following X11 applications are included:\n\n* [0ad](https://play0ad.com/)\n* [ARandR](https://christian.amsuess.com/tools/arandr/)\n* [Audacity](https://www.audacityteam.org/)\n* [Basilisk II](http://basilisk.cebix.net/)\n* [Chromium](https://www.chromium.org/)\n* [Claws Mail](https://claws-mail.org/)\n* [Clementine](https://www.clementine-player.org/)\n* [cool-retro-term](https://github.com/Swordfish90/cool-retro-term)\n* [Firefox](https://www.getfirefox.com/)\n* [Godot](https://godotengine.org/)\n* [Gxmessage](https://trmusson.dreamhosters.com/programs.html#gxmessage)\n* [HandBrake](https://handbrake.fr/)\n* [Krita](https://krita.org/)\n* [Leafpad](https://github.com/tarot231/leafpad)\n* [Links](http://links.twibright.com/)\n* [Meld](http://meldmerge.org/)\n* [mpv](https://mpv.io/)\n* [NetSurf](https://www.netsurf-browser.org/)\n* oclock\n* [PCManFM](https://en.wikipedia.org/wiki/PCMan_File_Manager)\n* [QEMU](https://www.qemu.org/)\n* [RetroArch](https://www.retroarch.com/)\n* [Remmina](https://remmina.org/)\n* [ScummVM](https://www.scummvm.org/)\n* [SMPlayer](https://www.smplayer.info/)\n* [VLC](https://www.videolan.org/vlc/)\n* [Xarchiver](https://github.com/ib/xarchiver)\n* Xcalc\n* Xclock\n* [Xephyr](https://www.freedesktop.org/wiki/Software/Xephyr/)\n* Xload\n* Xmag\n* Xmessage\n* [Xosview2](http://xosview.sourceforge.net/)\n* [XpdfReader](https://www.xpdfreader.com/)\n* Xterm\n* [Xwf](https://github.com/morgant/xwf)\n* [Zeal](https://zealdocs.org/)\n* [Zutty](https://github.com/tomszilagyi/zutty)\n\n## MENU EXTRAS\n\nMLVWM supports \"swallowing\" X11 application windows into the menu bar, much like \"Menu Extras\" in macOS (née OS X; née Mac OS X). It is suggested to keep these windows to a 16x16 icon size, but larger horizontal widths can work.\n\n### INCLUDED\n\nConfigurations for the following X11 applications are included for use \"swallowed\" into the menu bar:\n\n* [Gromit-MPX](https://github.com/bk138/gromit-mpx)\n* [mlclock](https://github.com/morgant/mlclock)\n* oclock\n* X11\n* Xclock\n* Xload\n* [Xmem](https://git.sdf.org/bch/xmem)\n\n### THIRD PARTY\n\nConfigurations for additional, optional, applications \u0026 utilities to be \"swallowed\" into the menu bar are available from the following separate projects:\n\n* [ffssb2mlvwmrc](https://github.com/morgant/ffssb2mlvwmrc)\n* [Xosview2 mini graphs](https://github.com/morgant/mlvwmrc-xosview2)\n* [x11vnc Menu Extra](https://github.com/morgant/mlvwmrc-x11vnc)\n* [xpomodmenu](https://github.com/morgant/xpomodmenu) ([xpomod](https://github.com/phillbush/xpomod) Pomodoro Menu Extra)\n* [OpenBSD](https://www.openbsd.org/)-specific:\n    * [APM (Advanced Power Management)](https://github.com/morgant/mlvwmrc-openbsd-apm)\n    * [xsndiomenu](https://github.com/morgant/xsndiomenu)\n\n### SYSTEM TRAY\n\nMLVWM doesn't natively support the [System Tray Protocol](https://www.freedesktop.org/wiki/Specifications/systemtray-spec/), but standalone X11 system tray applications such as the following _can_ be swallowed into the menu bar. Unfortunately, we don't currently include configurations for these, so you'll have configure them yourself:\n\n**IMPORTANT:** MLVWM currently has some [overdraw rendering issues when X11 applications which resize themselves are swallowed into the menu bar](https://github.com/morgant/mlvwm/issues/36), so you'll want to configure a fixed-size system tray.\n\n* [stalonetray](https://kolbusa.github.io/stalonetray/)\n* [trayer](https://github.com/sargon/trayer-srg)\n\n## MLVWM-SPECIFIC UTILITY SCRIPTS\n\nA few `mlvwm`-specific scripts are included and installed in `~/bin/`. You should ensure that this directory is in your user's `PATH` environment variable.\n\n### mlvwm-message\n\n`mlvwm-message` is a wrapper around `gxmessage` and `xmessage` (both of which accept the same options), so that other `mlvwm`-specific scripts can use the former, if available, or fall back to the latter.\n\nUsage:\n\n```\nmlvwm-message [ -buttons label1[:value1],label2[:value2], ... ] [ options ] message ...\n```\n\nExample:\n\n```\nmlvwm-message -title \"Yo\" -buttons \"Goodbye:1,Hello:2\" -default \"Hello\" \"Hello, world!\"\n```\n\n### mlvwm-alert\n\n`mlvwm-alert` is a wrapper around `mlvwm-message` which displays an alert-style dialog with the provided title, message, and with a single \"OK\" button to dismiss it.\n\nUsage:\n\n```\nmlvwm-alert title message\n```\n\nExample:\n\n```\nmlvwm-alert \"WARNING!\" \"This message will self destruct...\"\n```\n\n### mlvwm-confirm\n\n`mlvwm-confirm` is a wrapper around `mlvwm-message` which displays a confirmation-style dialog with the provided title, message, and with two buttons to dismiss it: \"OK\" to confirm (exit status `0`) and \"Cancel\" to deny (exit status `1`).\n\nUsage:\n\n```\nmlvwm-confirm title message\n```\n\nExample:\n\n```\nmlvwm-confirm \"Shut Down\" \"Are you sure you want to shut down your computer now?\"\n```\n\n### mlvwm-powerdown\n\n`mlvwm-powerdown` is a wrapper around OS-specific commands to suspend/sleep, reboot/restart, or shut/power down the computer. It accepts a single option, either `-s` for suspend/sleep, `-r` for reboot/restart, or `-p` for power/shut down. For the `-r` \u0026 `-p` options, it utilizes `mlvwm-confirm` to prompt for confirmation before restarting or shutting down the computer.\n\nThis is primarily used to implement \"Sleep\", \"Restart\", and \"Shutdown\" menu items in the default \"Special\" menu.\n\nUsage:\n\n```\nmlvwm-powerdown [ -s | -r | -p ]\n```\n\nExample:\n\n```\nmlvwm-powerdown -p\n```\n\n### mlvwm-restart\n\n`mlvwm-restart`, unlike `mlvwm-powerdown`, is unrelated to the power state of the computer and is instead used to relaunch `mlvwm`, reloading configurations. It requires `xdotool` to trigger a special keyboard shortcut which is specified in the default configuration.\n\nUsage:\n\n```\nmlvwm-restart\n```\n\n### mlvwm-screenshot\n\n`mlvwm-screenshot` is a wrapper around `maim` which saves a date \u0026 time stamped PNG screenshot of the screen in the user's `~/Pictures/` directory. Optionally, by specifying the `-s` option, it will allow the user to select an area of the screen to be captured instead of the entire screen.\n\nThis is primarily used to implement the screenshots via keyboard shortcuts in the default configuration.\n\nUsage:\n\n```\nmlvwm-screenshot [ -s ]\n```\n\nExample:\n\n```\nmlvwm-screenshot -s\n```\n\n## DATA STRUCTURE\n\nMLVWM loads its configuration from `~/.mlvwmrc`, but to break configuration up into more logical and manageable chunks within a `~/.mlvwm/` directory. That directory contains its own `.mlvwmrc` file which `~/.mlvwmrc` gets symlinked to, and it takes advantage of the `Read` command (see [mlvwm/CONFIGURATION](https://github.com/morgant/mlvwm/blob/master/CONFIGURATION)) to import the remaining configuration files.\n\nThe current structure is:\n\n    ~/\n      .mlvwmrc -\u003e .mlvwm/.mlvwmrc\n      .mlvwm/\n        .mlvwmrc\n        .initrc\n        .restartrc\n        .Xdefaults\n        MenuBar\n        VirtualDesktops\n        theme/\n          System7\n          MacOS8\n          MacOS9\n        MenuExtras/\n          xload\n          …\n        apps/\n          .AppManifest\n          Xterm\n          Xcalc\n          …\n        pixmap/\n          *.xpm\n        Xresources/\n          xclock\n          …\n      bin/\n        mlvwm-alert\n        mlvwm-confirm\n        mlvwm-message\n        mlvwm-powerdown\n        mlvwm-restart\n        mlvwm-screenshot\n\n### .mlvwmrc\n\nThe main `rc` file. It contains some important configuration settings \u0026 commands, esp. `IconPath`, but primarily loads other `rc` \u0026 configuration files. The active theme can be changed by editing the `Read .mlvwm/theme/System7` line to one of the other theme files.\n\n### .initrc\n\nContains an `InitFunction` block which can be modified to run commands upon initialization of MLVWM.\n\n### .restartrc\n\nContains a `RestartFunction` block which can be modified to run commands upon init or reload of MLVWM.\n\n### .Xdefaults\n\nContains default X(7) resources, mostly `#include` lines which import individual application-specific X resources configurations found in `.mlvwm/Xresources/`. It simplifies the inclusion of all mlvwmrc X resources at once as the user can edit their own `~/.Xdefaults` to append the following line:\n\n```\n#import \".mlvwm/.Xdefaults\"\n```\n\nAlternatively, once can manually merge them with their own configuration by running the following:\n\n```\nxrdb -merge \"$HOME/.mlvwm/.Xdefaults\"\n```\n\n### VirtualDesktops\n\nContains configuration settings for virtual desktops, incl. the number of virtual desktops (default is 1.)\n\n### MenuBar\n\nContains the default menu bar configuration, including loading Menu Extras. If you want to enable/disable specific MenuExtras, this is currently the place to do it.\n\n*Important*: the Apple menu is actually defined in the theme files as some theme-specific settings need to be applied during creation, incl. icons. For this reason, the theme files _must_ be loaded _before_ the default menu bar in `.mlvwmrc`.\n\n### .AppManifest\n\nIncludes a `Read` command for each application-specific file in the `apps` directory. This is primarily to limit the complexity of the main `.mlvwmrc` file.\n\n### CONTRIBUTING\n\nI very much welcome requests, feedback, and improvements. Please see [CONTRIBUTING](CONTRIBUTING.md) for details as to how to contribute, as well as the style guide for mlvwmrc configuration files.\n\n## SPECIAL THANKS\n\nMany thanks to Takashi Hasegawa for creating [MLVWM](http://www2u.biglobe.ne.jp/~y-miyata/mlvwm.html) and Steffen Beyer for providing [Apple/Mac icons in .xpm format](http://web.archive.org/web/20191118161417/http://sb.fluomedia.org/macintosh/).\n\n## LICENSE\n\n_TBD_\n\nSome icons included in this repository fall under the licenses and/or copyrights of their respective projects, companies, organizations, or individuals, including:\n\n* The Apple logo, Finder, Balloon Help, and pencil icons are copyright Apple, Inc. (née Apple Computer, Inc.) and are included for private, non-commercial use only\n* The [Xosview icon](https://www.iconfinder.com/icons/9548/xosview_icon) by Oxygen Team is licensed under [Creative Commons Attribution-NonCommercial-NoDerivs 2.5 Generic License](https://creativecommons.org/licenses/by-nc-nd/2.5/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorgant%2Fmlvwmrc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorgant%2Fmlvwmrc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorgant%2Fmlvwmrc/lists"}