切出鼠标后虚拟机内焦点是否丢失?

        文中解决方法主要对虚拟机ubuntu18.04、20.04进行过应用,其它系统可能有效也可能无效,如果找不到其它办法可以试试。

Tools了。重启Ubuntu看看效果吧!(注意:vmware-toolbox并不是在后台隐藏运行的,启动后不要关闭)

  1. 解决鼠标滚轮不流畅,要用到etc/x11/xorg.conf,要确认系统中是否存在这个配置文件,如果没有这个文件通过步骤2进行生成,有过有则跳过步骤2.
  2.  Ubuntu自9.10开始没有自带的xorg.conf文件。如果用户的屏幕分辨率或刷新频率需要调整,X里面却没有相应的分辨率与频率(比如说我装的是Ubuntu10.04,显示器不能识别,最高的适合分辨率也就800×600,而且刷新频率也很低,最多只有60Hz,看起来非常不习惯),系统里又找不到xorg.conf文件,只能自己创建xorg.conf文件了。问题是估计也有人和我一样属于菜鸟类别,不知道里面内容怎么写。没关系,Ubuntu提供了一个由系统来创建的解决办法。步骤如下:

公司WEB项目要求是必须兼容FF3,IE6/7/8。本文所述为IE6下的一个BUG.

  项目里面写了一个自己封装的弹出层,原理是先动态添加一个遮罩层,再动态添加一个DIV(Table)层(做弹出层的PNG半透明边框效果),DIV里面动态添加一个IFrame,这个Iframe页面指向一个现存的HTM文件。

  如果这个HTM文件中,包含文本输入框这样的一些表单元素,在IE6下就会出娄子了。

  测试组的人说了,弹出层打开后,“经常”无法获取文本框的焦点,就是鼠标点文本框无法获取焦点并显示输入标记,仿佛被什么透明层给盖住了。但有时是正常的,可谓间歇性精神障碍。有的机子上百分之五十的几率出现,有的机子上百分之三十左右的几率出现。

  少不了得做一番测试和分析了。

  经我在虚拟机IE6测试,也发现的确如测试组的人所说。

  我确信不可能有多余的覆盖层,因为除文本框之外,它周围的任何文字都可以正常的用鼠标选中,它周围的任何元素包括这个文本框本身也能响应onclick事件,只是无论怎么点,都无法获取输入焦点。(文本框没有设置readOnly或者disabled)

  但是,某些小动作就可以让它们恢复正常,比如在这个Iframe里右键刷新一下,或者是在这个Iframe里按'TAB'键将焦点切换到任何一个文本框,这时,所有的文本框都可以用点击正常获得焦点了。还真是变态!

  咱总不能说这是IE6的BUG我们程序无法解决吧,领导是不听这话的。

  经过一番努力,还是有了解决方案。

  我发现,手动调用一下任何一个(通常是第一个)文本框的focus()方法就可以让所有的文本框恢复神智了。于是写了一个公共脚本,在Iframe内的页面末尾,获取第一个文本框并调用其focus(),经测百来次,再没碰见无法获取焦点的情况,问题解决。

开发者最需要的,就是一个顺手的开发环境。

三个月前,我介绍了 ,今天就来介绍 。根据本文,读者可以从零开始配置并使用 xmonad。

xmonad 的所有操作都通过键盘,只适合命令行的重度用户。如果你喜欢鼠标和图形界面,xmonad 不适合你。另外,它本身也不支持 Windows 系统。

xmonad 是一种窗口管理器(window manager),用来管理软件窗口的位置和大小,会自动在桌面上平铺(tiling)窗口。

(图片说明:各种软件窗口)

注意,窗口管理器不是桌面环境(desktop environment)。后者是一套功能完善、集成各种工具的图形用户界面,比如 Gnome 和 KDE。桌面环境肯定包含了窗口管理器,但是(某些)窗口管理器可以不需要桌面环境,独立运行,xmonad 就是这种。

(图片说明:典型的桌面环境)

桌面环境通常很重,窗口管理器就很轻,不仅体积小,资源占用也少,用户可以配置各种细节,释放出系统的最大性能。

Linux 系统允许用户更换窗口管理器,有可以选择。xmonad 一直是最受欢迎的前三名,它使用 Haskell 语言编写,是世界上使用人数最多的 Haskell 软件。它的特点就是极简化,性能高。

xmonad 的官网提供,各个发行版都有。如果想自己编译,也可以下载源码。

我的发行版是 Debian,安装就是一行命令。


此外,还需要再安装两个小工具。


安装完成后,退出当前对话(session),选择 xmonad 会话重新登录。登录后,你会看到一个完全空白的桌面,什么也没有,这说明 xmonad 起作用了,因为这时还没有任何软件窗口。

第一步,你需要打开一个窗口。一般来说,总是打开命令行终端窗口。

xmonad 提供一个功能键,称为mod键(modifier 的缩写),所有操作都要使用这个键,默认为alt键,但是一般会把它改掉,比如改成Windows键,具体修改方法请看后文。

按下mod + shift + return,再打开一个终端窗口。它与第一个窗口水平地平分屏幕,每个窗口占据50%空间。

注意,第二个窗口占据桌面的左边,自动获得焦点,成为当前窗口。这个左边部分就称为"主栏"(master pane),右边部分称为"副栏",前面打开的第一个窗口自动进入副栏。

这时,第三个窗口就会占据主栏,前两个窗口自动进入副栏。规则就是,新窗口总是独占主栏,旧窗口平分副栏。

默认的布局模式是,主栏在左边,副栏在右边。

按下mod + space,布局模式改成主栏在上方,副栏在下方。

再按一次mod + space,就变成独占模式,当前窗口独占整个桌面,其他窗口不可见。

再按一次mod + space,就变回默认模式(主栏在左边,副栏在右边)。

按下mod + ,(mod + 逗号),一个副栏窗口会移动到主栏,即主栏变成有两个窗口,副栏变成只有一个窗口。

再按一次mod + ,(mod + 逗号),主栏变成三个窗口,副栏消失。

按下mod + .(mod + 句号),主栏减少一个窗口,副栏增加一个窗口。

新窗口总是自动获得焦点,变成当前窗口。按下mod + j,焦点顺时针移动到下一个窗口。

按下mod + k,焦点逆时针移动到上一个窗口。

如果当前窗口在副栏,按下mod + return,会与主栏窗口对调位置。

按下mod + shift + j,按照顺时针的顺序,当前窗口与下一个窗口交换位置,即当前窗口前进到下一个位置。

按下mod + shift + k,按照逆时针顺序,当前窗口与上一个窗口交换位置。即当前窗口后退到上一个位置。

按下mod + l,主栏增加尺寸。

按下mod + h,副栏增加尺寸。

正常情况下,xmonad 决定了窗口的位置和大小,但有时我们希望自己控制。xmonad 允许某个窗口浮动,脱离原有的布局。

按下mod + 鼠标左键拖动窗口,该窗口就会变成浮动窗口,可以放到屏幕的任何位置。

按下mod + 鼠标右键可以调整窗口大小。

按下mod + t,当前浮动窗口就会结束浮动,重新回到 xmonad 的布局。

窗口可以自然关闭(比如终端窗口按ctrl + d),也可以让 xmonad 强行关闭它。

按下mod + shift + c,会关闭当前窗口,焦点移到下一个窗口。

按下mod + shift + q,将会立刻关闭所有窗口,退出 xmonad,用户需要重新登录。

xmonad 提供9个工作区,相当于提供9个桌面。按下mod + 1mod + 9切换。 xmonad 启动后,默认处于1号工作区 。

如果要将一个窗口移到不同的工作区,先用mod + jmod + k,将其变成焦点窗口,然后使用mod + shift + 6,就将其移到了6号工作区。

我的习惯是,1号工作区是终端,2号是浏览器,4号是虚拟机。

下面的命令查看显示器的连接情况。


具体的配置教程可以看。

使用多显示器时,每个显示器会分配到一个工作区。默认情况下,1号工作区显示在主显示器,2号工作区显示在第二个显示器。如果要将4号工作区显示在当前显示器,那么按下mod + 4,4号工作就会与当前屏幕中的工作区互换位置。

mod + w 转移焦点到左显示器,mod + e转移焦点到右显示器。

xmonad 的配置文件是~/.xmonad/xmonad.hs。该文件需要用户自己新建,是一个简单的范例,详细的解释可以看。

这个文件里面,modMask决定了mod到底是哪一个键。


上面的这行就将mod键设为了Windows键。

修改配置文件以后,按下mod + q,新的配置就会生效。

xmonad 的默认桌面,什么也没有,不太方便。xmobar 提供了一个状态栏,将常用信息显示在上面,比如 CPU 和内存的占用情况、天气、时间等等。

(图片说明:顶部状态栏就是 xmobar。)

它的配置文件是~/.xmobarrc(教程,,)。是一个最简单配置,是我的笔记本电脑使用的配置。

最后,dmenu 在桌面顶部提供了一个菜单条,可以快速启动应用程序。

(图片说明:dmenu 显示在屏幕顶部,输入fire会自动显示包含fire的启动命令。)

它从系统变量$PATH指定的路径中,寻找所有的应用程序,根据用户的键入,动态提示最符合的结果。

按下mod + p就会进入dmenu菜单栏,按下ESC键可以退出。方向键用来选择应用程序,return键用来启动。

我要回帖

更多关于 虚拟机鼠标动不了 的文章

 

随机推荐