为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

游戏讨论
ryoohki
帖子: 3249
注册时间: 2008-10-28 20:18

为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#1

帖子 ryoohki » 2010-01-30 18:13

原载于full circle杂志第25期...<X下游戏大提速>...发现有很多人都需要,但是又没人转载于是...

首先,我们需要做的是让系统能够在现有的X服务下启动新的X服务(Ubuntu的默认设置是不会让我们这么做的),因此要对X服务的设置进行些改动,修改 /etc/X11/Xwrapper. config 文件,找到"allowed_users=console"字段,将其改为"allowed_users=anybody"保存改动(想要了解Xwrapper. config的信息可以使用 man Xwrapper. config 查阅).接下来重启X服务以使改动生效,再来我们要保证用wine运行的游戏使用全屏模式,我们可以在wine的配置程序的图形标签页里更改.下面我们就能够通过脚本来使自己想要玩的游戏在另一个X服务中运行了,脚本模板如下:

#! /bin/bash
X:2 -ac -terminate -config only_one_monitor.conf & sleep 2 DISPLAY=:2 nice -20 env WINEPREFIX="/home/{用户名}/.wine" wine "C: \Games\Starcraft\Starcraft.exe"

下面来解释一下脚本中命令语句的内容,这样大家可以根据自己的需要更改其中的内容:
X:2 -- 就是启动另一个X服务的命令

-ac -- (重要)禁用基于主机的访问机制(host-based access control mechanisms).如果不加此项就会造成严重的系统漏洞,使得任何主机都能访问你的电脑,并且可以修改你的电脑中的访问控制列表(access control list).造成后门和恶意入侵.

-terminate -- 在系统重启的时候终止X,不加的话会造成计算机无法正常重启或关机.

-config -- 告诉系统使用不同的配置来运行X服务,only_one_monitor.conf(用来使星际之类的游戏中的滚屏功能正常运作)当我们把鼠标移动到屏幕的边缘时,鼠标还是保持在显示器中,让 星际 滚屏,而不是跑到另一个显示器中去.更多的选项可以参阅 http://linux.die.net/man/1/xserver .

sleep 2 -- 让游戏程序等上2秒钟再运行,因为新的X服务需要一定的时间来启动和运行,具体延迟时间可以根据自己电脑的速度来更改.

DISPLAY=:2 -- 在新的X服务中运行下面的命令,而不是当前的.

nice -20 -- 以最高优先级来运行程序,如果游戏不过于缓慢的话可以不加

env WINEPREFIX="/home/{用户名}/.wine" wine "C: \Games\Starcraft\Starcraft.exe" -- wine运行游戏的命令,可以在wine的应用程序的菜单中的程序运行图标的属性里找到(前提是游戏必须是在wine下安装的).此处不限于使用wine运行的windows游戏,Linux原生的游戏也可以,只要你知道怎样用命令行运行那个程序就行.

做好脚本后,把它保存到需要的地方,然后给予此脚本运行的权限,以后我们要运行游戏只要双击此脚本然后在弹出的窗口中选择"运行"就行了
在游戏运行时想要切换回桌面只要按 Ctrl+Alt+F7 就行了,要回到游戏中再按 Ctrl+Alt+F9 ,顺便说下按 Ctrl+Alt+F8 的话会产生更多的X...建议大家Ctrl+Alt+F8 不要乱按.
头像
hjhee
帖子: 418
注册时间: 2008-03-08 8:07

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#2

帖子 hjhee » 2010-01-31 17:40

哪里来的only_one_monitor.conf
我这里的分辨率是1440x900,但显示的是1024x768。一直都调不好。
ryoohki
帖子: 3249
注册时间: 2008-10-28 20:18

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#3

帖子 ryoohki » 2010-02-01 15:42

only_one_monitor.conf 是调用 /etc/X11/xorg.conf 所以如果你的 /etc/X11/xorg.conf 文件对于分辨率的参数不正确也会造成游戏分辨率不对
头像
大宝
帖子: 3077
注册时间: 2008-06-30 22:32
联系:

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#4

帖子 大宝 » 2010-02-24 22:09

收藏了,谢谢
回头试一下 :em11
头像
20072312834
帖子: 277
注册时间: 2009-02-02 17:41

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#5

帖子 20072312834 » 2010-10-12 14:08

mark之,希望我能看懂
莫谈国事
ubuntu!
zcw159357
帖子: 5
注册时间: 2010-03-14 16:48

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#6

帖子 zcw159357 » 2010-11-15 12:00

回头试试 谢啦~
semir
帖子: 2
注册时间: 2006-10-23 23:36

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#7

帖子 semir » 2010-12-04 12:06

good~ mark!
头像
rapistor
帖子: 1983
注册时间: 2009-01-19 15:09

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#8

帖子 rapistor » 2010-12-04 12:21

不知道有没有用?标记下。
坚守在linux的天堂!
头像
ooinzaghi
帖子: 1767
注册时间: 2010-11-18 15:55
系统: ubuntu16.04+win10
来自: Auir

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#9

帖子 ooinzaghi » 2011-02-24 0:19

:em11 果断顶起,一直为这事烦着呢。瘟到死下按一个super键就ok的事,到linux为啥so complex? :em20 :em20
势不可去尽,话不可说尽,凡事太尽,缘分势必早尽。

生命不息,折腾不止!在折腾中进步!

dropbox邀请链接: https://db.tt/OMGJP72tMW
ltkun
帖子: 1340
注册时间: 2006-01-10 19:09

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#11

帖子 ltkun » 2011-02-24 10:03

xenomorph0525 写了:其实 有更简单的方法

按Ctrl+alt+F1
输入帐号密码登入后
打 startx -- :1
便开启了另一个 X window

按Ctrl+alt+F7、Ctrl+alt+F8切换
不要用时登出便回到tty
再打exit便登出tty
这个方法我以前一直用的 不错哈
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#12

帖子 eexpress » 2011-02-24 10:10

手动怎么可能比脚本更简单哦。
只是这样的脚本,写得不通用。
常规,不调试的时候,用不上。

调试什么的时候,我用这个。当然不是用于游戏的
● cat bin/Xnew
#!/bin/bash
Xephyr -screen 800x700 :1 &
[ -z $1 ] && exit 0
sleep 4
$1 -display :1
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#13

帖子 eexpress » 2011-02-24 10:11

手动怎么可能比脚本更简单哦。
只是这样的脚本,写得不通用。而且wine的,在宽屏下,光标的坐标会不对的。
常规,不调试的时候,用不上。

调试什么的时候,我用这个。当然不是用于游戏的
● cat bin/Xnew
#!/bin/bash
Xephyr -screen 800x700 :1 &
[ -z $1 ] && exit 0
sleep 4
$1 -display :1
● 鸣学
头像
ooinzaghi
帖子: 1767
注册时间: 2010-11-18 15:55
系统: ubuntu16.04+win10
来自: Auir

Re: 为游戏新开X进程(解决Linux下全屏游戏时不能切回桌面)

#15

帖子 ooinzaghi » 2011-02-24 12:52

wine程序按ctrl+alt+d就可以了。就是那些linux下原生的游戏全屏时没法最小化。
势不可去尽,话不可说尽,凡事太尽,缘分势必早尽。

生命不息,折腾不止!在折腾中进步!

dropbox邀请链接: https://db.tt/OMGJP72tMW
回复