当前位置:首页 > CN2资讯 > 正文内容

有没有在windows 10上的容器

10小时前CN2资讯

layout: post
title: 轻量级桌面WindowMaker上手指南
tags: x11, cygwin, raspi
---

最近工作上需要在远程Linux上运行一个桌面(我需要跑Netbeans, Firefox, Emacs和Seafile),但是MobaXterm自带的两个窗口管理器twm/dwm 都过于简陋了(而且我觉得都比较无趣); 另一方面一直觉得树莓派Raspbian自带的桌面也不好用,我想找个替代品,于是我又想起了以前玩过一阵的WindowMaker。

WindowMaker(常简称wmaker,因为它的主程序文件是这个名字)历史也很久,所以有些设计思想跟现在流行的window manager或者desktop environment差异比较大(从另一个角度说,现在流行的window manager都太雷同了,也就平铺式的有点新意),但正因为如此,它也可以给我们增加一点新奇感。

WindowMaker的设计是基于NeXTSTEP的,另外还有一个叫做GNUStep的项目也是试图克隆NeXTSTEP的(甚至编程语言也是Objective-C),它的目标定位是整个desktop environment(包含了文件管理器在、图片查看器、界面设计器等),并且选择了WindowMaker作为它的window manager(不过这个是用C语言开发的)。不过我不太喜欢GNUstep里面其它的组件,用起来都慢吞吞而且不稳定。

WindowMaker的几个优点:

  • 绝大部分设置(全局快捷键也可以!)可以通过自带的WPrefs程序即可设置,不必自己编辑配置文件,并且大多数是即时生效的;
  • 整体功能比较紧凑,不会需要很多额外的扩展包(是的,听说fvwm是有很强的可配置性,可我难得折腾)
  • Cygwin官方仓库有这个程序(在我这个场景里是挺重要的一点)
  • 而且,整体小巧、快捷,占用的内存少,所以很适合我的这两个场景(Cygwin和Raspbian)

当然,缺点也挺明显

  • appicon/miniwindows/dock/clip跟现在大家习惯的“任务栏”差别比较大,可能得适应一阵
  • 小部件不是太丰富(主要原因还的确在于wmaker比较古老,现在的人对它兴趣不太大了)

参考:

  • Window Maker - ArchWiki
  • In Depth: 5 of the best lightweight window managers for Linux
  • Why I use Window Maker - UNIX Administratosphere

dock/clip是任务栏吗

首先说一下wmaker里面几个相关的概念:

  • appicon: 每个程序跑起来时,会在桌面底部显示一个图标,这个图标称为application icon,常简称appicon。程序关掉之后,对应的图标就消失了。我们可以拖动appicon到其它位置(比如随意移动,或者移动到dock或者clip上)
  • dock: 桌面最右边(缺省配置在右边)有一列图标,这列图标就叫做dock。appicon拖动到这一列时就会“停靠”在这里了,即使程序关掉也不会消失,并且重启WindowMaker它也还在,可以直接点击它来启动这个应用程序(当然,可以定制启动方法,还可以定制一个鼠标中键点击时执行的命令)——简单地说,dock比较类似于Windows 7里面固定在任务栏的程序 (详细说明: Window Maker - Dock )
  • clip: 桌面左上角还有一个回型针一样的图标,它的名字是clip,但跟“剪贴”没有什么关系,其实是工作区(workspace)切换器(点击两个小三角会切换到上一个/下一个工作区)。不过它还有一个作用:appicon可以停靠到它旁边,这样这个appicon对应的应用就只跟当前workspace绑定(当桌面切换到其它工作区时,这个应用的窗口就不会显示了) 关于clip的详细说明: Window Maker - Clip
  • miniwindow: 除了appicon之外,每个窗口最小化之后还有另外一个图标,这个被称为miniwindow

但这里面有些小问题:

但是多用一阵发现我不太习惯它的dock/clip设计,一方面它可以启动应用,另一方面它又有任务栏的作用(一个appicon停靠到dock后,原来的appicon就不显示了,双击它可以激活应用的主窗口),但只能针对已经dock/clip的应用,其它应用不在这里,而是在下面(appicon)。而且每个应用有两个图标,一个是appicon,另一个是最小化的图标,一般情况下双击dock图标可以激活应用程序窗口,但不能激活已经最小化的窗口。

基于这个问题,如果你要切换回某个程序的话,有时要点右边的dock,有时需要点击左上角的clip,有时要点击下方的appicon,很分裂。感觉要解决这个问题,得把dock栏和appicon栏放在同一排,但dock只能是竖着的 (appicon的位置和方向倒是可以在wprefs里面修改),同时将dock和appicon都放在右侧竖着的话,多开几个程序就没空间了。

网上也有人问能不能将dock搞成横着的,一个答复是变通地用0.95.5(Aug/2013)里面新增的抽屉(drawer)功能,但我试了一下发现,dock里面缺省那个按钮不能是drawer,也不能删除,得另外添加一个drawer按钮,这样至少需要两个按钮 :-( ,放在右下角的话也只能算是可以凑合着用。

另一个思路是只将dock作为launcher来用,不抢任务栏的工作(即dock之后仍然在桌面下方显示appicon,可以通过点击appicon来激活窗口),但好像没有看见开关。文档里有这个功能的描述,没有说如何关闭(http://windowmaker.org/guidedtour/dock.html )

这里另外提供了一个方法 http://www.linuxquestions.org/questions/debian-26/windowmaker-icons-206322-print/ : 禁用dock,只用clip,而且clip还有attract icons的功能,更像任务栏了。这种这个方法当然也有副作用:clip吸附的程序只在当前workspace可见

2016 Aug.07更新:

这两天发现一个更好的解决办法,不用纠结于上面这些烦人的问题了: 直接跑一个其它桌面(desktop environment)里面的面板就可以了——当然,是要那种能够支持任务列表(task list)的面板,这样wmaker的dock就只是用作大家通常意义上理解的dock,也就是用于启动常用应用和收纳一些dockapps

当然,我们最好是挑一个依赖比较少的面板。树莓派Raspbian里面默认就有的 lxpanel 是一个不错的选择,而且它还有“通知栏”插件,下面说到的 wmsystemtray/ 也可以不用装了。

这里有一个WindowMaker + LXPanel的效果图: https://www.vivaolinux.com.br/screenshot/Window-Maker-WMaker-green-Lxpanel-no-Linux-Mint-17/

dockapps

这是使用wmaker需要掌握的第二个概念。wmaker是用dock来替代其它窗口管理器里面的板(panel)的,如果你有往panel上嵌入一些小部件的需求时(比如想显示一下日期/时间/天气,或者显示一下CPU利用率曲线),wmake里面就是用 dockapps 来解决。

dockapps其实只是一些小程序,不过程序窗口都跟wmaker的dock图标一样大小,这样的应用程序也没有appicon,可以拖到dock或者clip上(不过它也可以放在其它位置独立显示)。

  • wmaker官网上的dockapps列表:http://windowmaker.org/dockapps/
  • Debian WindowMaker Team 维护的应用列表(里面里面除了wmaker其它大部分都是dockapps)https://qa.debian.org/developer.php?login=pkg-wmaker-devel%40lists.alioth.debian.org
  • openbox的网页上有一个比较全的dockapps详细说明(含截图) http://lxlinux.com/dock.html

自动启动程序

对于放到dock/clip的程序图标,直接在图标属性里面勾选 Start when Window Maker is started 就可以让该应用跟随wmaker自动启动了。

对于不适合拖到dock/clip的(比如那些启动后不显示窗口只有通知栏图标的程序: nm-applet, seafile-applet等),可以编辑文件 ~/GNUstep/Library/WindowMaker/autostart (它是个脚本,按shell脚本的写法来添加你要启动的程序就就可以了,记得启动GUI程序时在命令后面添加 & 号)

#!/bin/bash xset m 20/10 4 wmsystemtray & .nutstore/dist/bin/nutstore-pydaemon.py & nm-applet & glipper & wmcalclock &

通知栏(system tray / notification area)

现在有很多程序(比如网络管理器、Dropbox、剪贴板监视器Glipper/Parcellite等)会在启动时隐藏主窗口,只在通知栏(system tray / notification area)显示一个图标。所以我们需要以dockapps形式存在的通知栏容器,将那些应用的通知栏图标收纳在里面。

虽然archwiki上推荐的是stalonetray ,但我实际试验了一下还是wmsystemtray 跟wmaker配合得更好一些,而且也更稳定一些。图标个数增加后,stalonetray大小扩展比较奇怪,这也许跟她的设计目标并不是针对 wmaker 有关; 而wmsystemtray是只能一次显示4个图标,通过切换按钮来切换到下一组/上一组4个图标(如果以 wmsystemtray --small方式启动,它会采用更小的图标,这样一次可以显示9个图标).

使用方法:

  • 先安装wmsystemtray包: apt install wmsystemtray
  • 然后在上一节所说的 autostart 文件中添加一行 wmsystemtray & (注意结尾的 &),这一行放在靠前面的位置,确保那些需要显示通知栏图标的程序在之后启动.


  • (上两图来自: wmsystemtray - dockapps.windowmaker.org

    window snapping功能

    之前我在Linux上一直用gnome 2/mate desktop比较多,它支持window snapping,不过比较简单,只支持左右半屏。

    wmaker也有类似的能力,不仅可以最大化半屏,而且还可以只占据四角1/4面积,但需要0.95.5 (2013 Aug)以上的版本。而且在0.95.5里面只能在WPrefs里添加快捷键来操作(Debian 8 jessie和Ubuntu 14.04目前是这个版本),而去年月发布的0.95.7版本增加了直接通过鼠标拖放和窗口菜单来完成(注意官网的News页面只更新到0.95.5版本,后面的变化需要直接看代码库的News文件),如果你想要这个功能的话,Ubuntu可以用这个ppa https://launchpad.net/~profzoom/+archive/ubuntu/wmaker , Debian得自己编译了。

    全局快捷键

    对于WindowMaker自身的功能(比如打开桌面菜单,打开窗口菜单,最大化窗口,切换工作区等),可以在它的偏好设置程序 WPrefs 中设置快捷键(这个程序可以通过桌面菜单 WindowMaker->Preferences打开,也可以通过命令行WPrefs打开. 打开后切换到倒数第五个图标 Keyboard Shortcut Preferences即可)

    如果要设置全局快捷键来启动一个程序(或者执行一段脚本),也是在 WPrefs 里面设置,但是在倒数第六个图标 Applications Menu Definition 里面.我们得拖一个 Run Program 按钮到菜单上,设置对应的快捷键和要运行的命令.

    参考:

    • Get Productive in Window Maker: Keyboard Shortcuts for Fun and Profit - Window Maker and I: busprof's Blog (但被薔。我截取了一份副本在这里)

    另外有一个小细节要注意: 在默认的X11配置下,NumLock键也是一个修饰键(modifier key),所以WPrefs设置快捷键时会将这个键考虑在内.比如本来想设置win+r这个快捷键,但NumLock打开时,WPrefs会捕捉为 Mod2+Mod4+r (我这里NumLock映射为Mod2, win键被映射为Mod4.用xmodmap可以查到这个信息).然后当你使用时,如果NumLock关闭了,只按 win+r 是不能启动这个程序的.

    详细说明和解决方法可以参考: Num Lock Can Bork Your Keyboard Shortcuts in Window Maker - Window Maker and I: busprof's Blog (但被薔,我截取了一份副本在这里)


      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/28178.html

      分享给朋友:

      “有没有在windows 10上的容器” 的相关文章

      回国节点使用指南:轻松访问国内网站,畅享便捷网络体验

      回国节点的定义与作用 回国节点是一种特殊的网络技术,它允许用户通过位于中国境外的服务器访问国内被限制的网站或服务。这种技术对于那些在国外生活或旅行,但仍需要访问中国大陆网站的人来说非常有用。回国节点的主要作用是绕过地理限制,让用户能够像在国内一样自由地浏览和使用各种在线资源。 使用回国节点,用户不仅...

      Hostodo网站打不开?快速解决访问问题的实用指南

      遇到Hostodo网站打不开的情况,很多人会感到困惑。其实,这种问题通常由几个常见原因引起。DNS解析问题是其中之一。当你的设备无法正确解析Hostodo的域名时,网站就无法加载。这种情况可能是由于本地DNS服务器的问题,或者是网络运营商DNS解析不稳定导致的。 网络连接问题也可能导致Hostodo...

      DMIT Eyeball套餐:高性价比VPS解决方案实现稳定网络连接

      在探讨DMIT Eyeball套餐之前,先来了解一下它的起源。这款套餐曾被称为HKG Lite,后来进行了更名,成为了如今的Eyeball。这个变化并不仅仅是名称的调整,更是DMIT公司在提供服务方面进行的一次重要转型。DMIT Eyeball套餐主要聚焦于为中国大陆用户提供高质量的直连线路。公司在...

      GIA VPS服务器:高速稳定的理想选择及价格性能分析

      GIA VPS服务器概述 在选择服务器时,GIA VPS服务器越来越受到关注。我之前在寻找合适的VPS时,了解到GIA VPS是一个非常不错的选择。它采用了CN2 GIA线路,提供了高效、稳定的网络连接。对我来说,网络的速度和稳定性是使用服务器的关键因素,而GIA VPS服务器在这两个方面表现都很优...

      HudsonValleyHost主机服务测评:性价比与稳定性的完美结合

      HudsonValleyHost是一家成立于2014年的国外老牌主机商,已经在行业内稳扎稳打,逐渐树立了自己的品牌形象。这家公司最初的目标是为用户提供高性价比的主机服务,其中以其纽约的KVM VPS服务备受青睐。在我接触的众多主机服务商中,HudsonValleyHost的存在让我感受到了一种稳定与...

      AkkoCloud评测:为中国用户打造的高性价比VPS与独立服务器解决方案

      AkkoCloud成立于2019年,作为一家具备国人运营背景的主机商,逐渐在海内外VPS和独立服务器市场中占据了一席之地。我的亲身体验让我感受到,AkkoCloud的设计初衷就是为中国大陆的用户提供一个稳健可靠的服务器解决方案。对于很多用户来说,它的出现无疑填补了国内市场的一部分空白。 回想起我探索...