想象一下,您穿越到一个平行历史,Apple II GS 和 MacOS 7 是基于开源 POSIX 构建的,使用与现代 Linux 相同的所有约定,例如纯文本配置文件和模块化系统设计。这样的操作系统会为用户带来什么?您可以使用类似 Macintosh 的虚拟窗口管理器 (MLVWM)来回答这些问题(以及更多问题)。

安装 MLVWM
MLVWM 不易安装,并且可能不在您的发行版的软件仓库中。如果您有时间解读翻译不佳的 README 文件,编辑一些配置文件,收集和调整一些旧的 .xpm 图像的大小,并编辑一个或两个 Xorg 首选项,那么您可以体验 MLVWM。否则,这是一个新奇的窗口管理器,其最新版本可以追溯到 2000 年。
要编译 MLVWM,您必须安装 imake,它提供了 xmkmf 命令。您可以从发行版的软件仓库安装 imake,或者直接从 Freedesktop.org 获取。假设您有 xmkmf 命令,请更改到包含 MLVWM 源代码的目录,并运行以下命令来构建它
$ xmkmf -a
$ make
构建完成后,编译后的 mlvwm 二进制文件位于 mlvwm 目录中。将其移动到 您的路径中的任何位置以进行安装
$ mv mlvwm/mlvwm /usr/local/bin/
编辑配置文件
MLVWM 现在已安装,但在调整几个配置文件并仔细排列所需的图像文件之前,它将无法正确启动。示例配置文件位于您下载的源代码的 sample_rc 目录中。将文件 Mlvwm-Netscape 和 Mlvwm-Xterm 复制到您的主目录
$ cp sample_rc/Mlvwm-{Netscape,Xterm} $HOME
将 Mlvwmrc 文件移动到 $HOME/.mlvwmrc(是的,即使示例文件具有欺骗性地以大写字母开头,您也必须使用小写“m”)
$ cp sample_rc/Mlvwmrc $HOME/.mlvwmrc
打开 .mlwmrc 并找到第 54-55 行,它们定义了 MLVWM 在其菜单和 UI 中使用的像素图图像的路径(“IconPath”)
# Set icon search path. It needs before "Style".
IconPath /usr/local/include/X11/pixmaps:/home2/tak/bin/pixmap
调整路径以匹配您将用自己的图像填充的目录(我建议使用 $HOME/.local/share/pixmaps)。MLVWM 不提供像素图,因此您需要为正在构建的桌面提供像素图图标。
即使您的系统上的其他位置(例如 /usr/share/pixmaps)有像素图,也要这样做,因为您将不得不调整像素图的大小,并且您可能不想在系统范围内执行此操作。
# Set icon search path. It needs before "Style".
IconPath /home/seth/.local/share/pixmaps
选择像素图
您已将 .local/share/pixmaps 目录定义为像素图的来源,但该目录和图像尚不存在。创建目录
$ mkdir -p $HOME/.local/share/pixmaps
现在,配置文件将图像分配给菜单条目和 UI 元素,但这些图像在您的系统上都不存在。要解决此问题,请通读配置文件并找到每个 .xpm 图像。对于配置文件中列出的每个图像,将具有相同文件名的图像(或更改配置文件中的文件名)添加到您的 IconPath 目录。
.mlvwmrc 文件有很好的注释,因此您可以大致了解您正在编辑的内容。无论如何,这只是第一遍。您可以随时返回并稍后更改桌面的外观。
以下是一些示例。
此代码块设置屏幕左上角的图标
# Register the menu
Menu Apple, Icon label1.xpm, Stick
label1.xpm 图像实际上在源代码下载的 pixmap 目录中提供,但我更喜欢使用 /usr/share/pixmaps 中的 Penguin.xpm(在 Slackware 上)。无论您使用什么,都必须将自定义像素图放在 ~/.local/share/pixmaps 中,并在配置中更改像素图的名称,或者将像素图文件重命名为与当前配置文件中的名称匹配。
此代码块定义了左侧菜单中列出的应用程序
"About this Workstation..." NonSelect, Gray, Action About
"" NonSelect
"Terminal" Icon mini-display.xpm, Action Exec "kterm" exec kterm -ls
"Editor" Action Exec "mule" exec mule, Icon mini-edit.xpm
"calculator" Action Exec "xcal" exec xcalc, Icon mini-calc.xpm
END
通过遵循与您在配置文件中看到的相同的语法,您可以自定义像素图并将您自己的应用程序添加到菜单中(例如,我将 mule 更改为 emacs)。这是您在 MLVWM GUI 中访问应用程序的入口,因此列出您想要快速访问的所有内容。您可能还希望包含指向您的 /usr/share/applications 文件夹的快捷方式。
"Applications" Icon Penguin.xpm, Action Exec "thunar /usr/share/applications" exec thunar /usr/share/applications
完成编辑配置文件并将您自己的图像添加到您的 IconPath 目录后,您的像素图必须全部调整大小到大约 16x16 像素。(MLVWM 在其默认设置中不一致,因此有变化的空间。)您可以使用 ImageMagick 以批量操作方式执行此操作
$ for i in ~/.local/share/mlvwm-pixmaps/*xpm ; do convert -resize '16x16^' $i; done
启动 MLVWM
启动并运行 MLVWM 的最简单方法是让 Xorg 完成大部分工作。首先,您必须创建一个 $HOME/.xinitrc 文件。我从 Slackware 借用了这个文件,Slackware 又从 Xorg 借用了它
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# Start the window manager:
if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
exec ck-launch-session /usr/local/bin/mlvwm
else
exec /usr/local/bin/mlvwm
fi
根据此文件,startx 命令的默认操作是启动 MLVWM。但是,您的发行版可能对图形服务器启动(或被终止以重新启动)时发生的事情有其他想法,因此此文件可能对您没什么用。在许多发行版上,您可以将 .desktop 文件添加到 /usr/share/xsessions 中,以使其列在 GDM 或 KDM 菜单中,因此创建一个名为 mlvwm.desktop 的文件并输入以下文本
[Desktop Entry]
Name=Mlvwm
Comment=Macintosh-like virtual window manager
Exec=/usr/local/bin/mlvwm
TryExec=ck-launch-session /usr/local/bin/mlvwm
Type=Application
从桌面会话注销并重新登录到 MLVWM。默认情况下,您的会话管理器(KDM、GDM 或 LightDM,取决于您的设置)将继续将您登录到以前的桌面,因此您必须在登录前覆盖它。
使用 GDM

使用 SDDM

使用暴力方式启动
如果 MLVWM 无法启动,请尝试安装 XDM,这是一个轻量级的会话管理器,它不查看 /usr/share/xsessions,而是执行经过身份验证的用户的 .xinitrc 规定的任何操作。

构建您自己的复古 Apple
MLVWM 桌面是不完善的、不完美的、准确的,并且充满乐趣。您看到的许多菜单选项都未实现,但您可以使它们处于活动状态并具有意义。
这是您回到过去、改变历史并使老式 Apple 计算机系列成为开源堡垒的机会。成为修正主义者,设计您自己的复古 Apple 桌面,最重要的是,玩得开心。
评论已关闭。