FVWM里如何排除一个针对 特定窗口的操作

各种窗口管理器和美化相关
回复
dontnoun
帖子: 51
注册时间: 2009-11-01 9:30

FVWM里如何排除一个针对 特定窗口的操作

#1

帖子 dontnoun » 2011-03-07 16:43

还是关于stroke的,厚着脸皮再问下,我自己已经搞了好几小时都还不行。。。。

Mouse 2 W N StrokeFunc DrawMotion
这句的意思是 在工作区 用鼠标中键可以画轨迹,
在我的电脑里大部分软件的工作区用中键画手势都没问题,
但有一个软件需要用到中键(假定此软件名称是GGG),想禁止在GGG的工作区画手势,
我试了N多组合都不行,比如
1.All (!GGG) Mouse 2 W N StrokeFunc DrawMotion
2.Thiswindow (!GGG) Mouse 2 W N StrokeFunc DrawMotion
3.Next (!GGG) Mouse 2 W N StrokeFunc DrawMotion
4.Current (!GGG) Mouse 2 W N StrokeFunc DrawMotion
##---------------------------------------------------------------------------------
5.Mouse 2 W All (!GGG) N StrokeFunc DrawMotion
6.Mouse 2 W Thiswindow (!GGG) N StrokeFunc DrawMotion
7.Mouse 2 W Next (!GGG) N StrokeFunc DrawMotion
8.Mouse 2 W Current (!GGG) N StrokeFunc DrawMotion
##---------------------------------------------------------------------------------
9. Mouse 2 W N All (!GGG) StrokeFunc DrawMotion
10.Mouse 2 W N Thiswindow (!GGG) StrokeFunc DrawMotion
11.Mouse 2 W N Next (!GGG) StrokeFunc DrawMotion
12.Mouse 2 W N Current (!GGG) StrokeFunc DrawMotion

其中第九个 会引起笔触轨迹混乱,麻烦达人指教!谢!
usbtopc
帖子: 96
注册时间: 2009-06-30 23:05

Re: FVWM里如何排除一个针对 特定窗口的操作

#2

帖子 usbtopc » 2011-03-07 20:43

帮你顶一下!

还在玩fvwm?这个东东好久都没更新了,窗口管理器多的是,你为什么这么钟情fvwm呢?

fvwm是个折腾人的东东。我觉得它太古老了~~
裸跑X可能是最后的选择......
目前使用dwm-plus: http://code.google.com/p/dwm-plus/
头像
bigsun
帖子: 301
注册时间: 2009-01-11 16:05

Re: FVWM里如何排除一个针对 特定窗口的操作

#3

帖子 bigsun » 2011-03-07 20:45

Stroke [(window)] Sequence Button Context Modifiers Function
The window name is a wildcard pattern specifying the class, resource or name of the window you want the binding to apply to.
我也试了排除某个程序,但在这里好象不支持!操作.

代码: 全选

Stroke N852 0 A A -
Stroke (*bigsun*) N852 0 A A Exec exec urxvtc 
上面一句在title上有bigsun的窗口上的Stroke.

一般的(windows)中可以指定wm_class(由xprop程序获得),并支持!操作.
dontnoun
帖子: 51
注册时间: 2009-11-01 9:30

Re: FVWM里如何排除一个针对 特定窗口的操作

#4

帖子 dontnoun » 2011-03-08 19:21

嗯,试了下,stroke ()。。。。。括号里只支持针对某个窗口,不支持用!排除某个窗口。。。。
关于wm_class,请问大侠 wm_class具体是怎么用的,能给个例子吗?谢谢 :em11
头像
bigsun
帖子: 301
注册时间: 2009-01-11 16:05

Re: FVWM里如何排除一个针对 特定窗口的操作

#5

帖子 bigsun » 2011-03-09 7:35

代码: 全选

Style "MPlayer" Icon /usr/share/icons/hicolor/48x48/apps/gnome-mplayer.png, Layer 6, IconOverride
Style "Audacious" IconOverride, !Title, !Sticky, !Iconifiable
Style "fbrun" GrabFocus
Style "war3.exe" Layer 7
Style "SC2.exe" Layer 7
Style "Smplayer" Layer 6
Style "flashplayer" Layer 6

代码: 全选

DestroyFunc FuncDockLaunch
AddToFunc   FuncDockLaunch
+ C Any ($1,!Firefox) Next ($1,!Firefox) WindowListFunc
+ C TestRc (NoMatch) Exec exec $0
+ H Any ($1,!Firefox) WindowList ($1,!Firefox) Rectangle +$2+$3 0 -100m CurrentAtEnd UseListSkip SortByClass NoCurrentDeskTitle
+ D Exec exec $0

代码: 全选

Mouse (FvwmPager) 4 W A GoTodesk -1 0 0 4
Mouse (FvwmPager) 5 W A GoTodesk 1 0 0 4
一类程序对应一个wm_class,用xprop命令获取:
xprop|grep WM_CLASS

又试了mouse (window)下的情况,看来这儿的window都不支持!操作. :em20
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: FVWM里如何排除一个针对 特定窗口的操作

#6

帖子 eexpress » 2011-03-09 8:50

#Key F12 A A All (!opera,Iconifiable,HasHandles) Iconify On
怎么会不支持。只是你的是stroke而已。命令结构都一样。
● 鸣学
dontnoun
帖子: 51
注册时间: 2009-11-01 9:30

Re: FVWM里如何排除一个针对 特定窗口的操作

#7

帖子 dontnoun » 2011-03-09 17:30

问了下 FVWM作者之一 托马斯.艾德姆,对普通的应用程序
可以用
Mouse (XXX) 2 W N --
来屏蔽stroke,用gedit试了下确实能屏蔽,但是不能屏蔽GGG,关于原因,托马斯提到,不是所有应用程序都允许 “synthetic key events”,所以针对我的这个GGG软件的情况,基本无解了。。。
下面是他的原话
You will need to use window mouse-bindings, and hope that this "GGG" applications allows for synthetic key events. Hence you're after this:

Code:
Mouse 2 W N StrokeFunc DrawMotion
Mouse (GGG) 2 W N --

Which says that pressing mouse button 2on this "GGG" window would pass the click to the application, and for everything else, invoke the DrawMotion action.

-- Thomas Adam
dontnoun
帖子: 51
注册时间: 2009-11-01 9:30

Re: FVWM里如何排除一个针对 特定窗口的操作

#8

帖子 dontnoun » 2011-03-12 14:35

找到个笨解决办法, 看起来很那个。。。。。。,但是可以把stroke从那些不支持synthetic key events的软件里排除
配置如下


(I know, it is not perfect, even looks stupid, but it works for un-synthetic key events application :lol: )

Code:
Mouse 2 R N StrokeFunc DrawMotion
#Mouse 2 W N StrokeFunc DrawMotion
Mouse (a*) 2 W N StrokeFunc DrawMotion
###--------------------------------------------------------------------------------------------------
Mouse (c*) 2 W N StrokeFunc DrawMotion
Mouse (d*) 2 W N StrokeFunc DrawMotion
Mouse (e*) 2 W N StrokeFunc DrawMotion
Mouse (f*) 2 W N StrokeFunc DrawMotion
Mouse (g*) 2 W N StrokeFunc DrawMotion
Mouse (h*) 2 W N StrokeFunc DrawMotion
Mouse (i*) 2 W N StrokeFunc DrawMotion
Mouse (j*) 2 W N StrokeFunc DrawMotion
Mouse (k*) 2 W N StrokeFunc DrawMotion
Mouse (l*) 2 W N StrokeFunc DrawMotion
###--------------------------------------------------------------------------------------------------
Mouse (n*) 2 W N StrokeFunc DrawMotion
Mouse (o*) 2 W N StrokeFunc DrawMotion
Mouse (p*) 2 W N StrokeFunc DrawMotion
Mouse (q*) 2 W N StrokeFunc DrawMotion
Mouse (r*) 2 W N StrokeFunc DrawMotion
Mouse (s*) 2 W N StrokeFunc DrawMotion
Mouse (t*) 2 W N StrokeFunc DrawMotion
Mouse (u*) 2 W N StrokeFunc DrawMotion
Mouse (v*) 2 W N StrokeFunc DrawMotion
Mouse (w*) 2 W N StrokeFunc DrawMotion
Mouse (x*) 2 W N StrokeFunc DrawMotion
Mouse (y*) 2 W N StrokeFunc DrawMotion
Mouse (z*) 2 W N StrokeFunc DrawMotion

Mouse (A*) 2 W N StrokeFunc DrawMotion
###--------------------------------------------------------------------------------------------------
Mouse (C*) 2 W N StrokeFunc DrawMotion
Mouse (D*) 2 W N StrokeFunc DrawMotion
Mouse (E*) 2 W N StrokeFunc DrawMotion
Mouse (F*) 2 W N StrokeFunc DrawMotion
Mouse (G*) 2 W N StrokeFunc DrawMotion
Mouse (H*) 2 W N StrokeFunc DrawMotion
Mouse (I*) 2 W N StrokeFunc DrawMotion
Mouse (J*) 2 W N StrokeFunc DrawMotion
Mouse (K*) 2 W N StrokeFunc DrawMotion
Mouse (L*) 2 W N StrokeFunc DrawMotion
###--------------------------------------------------------------------------------------------------
Mouse (N*) 2 W N StrokeFunc DrawMotion
Mouse (O*) 2 W N StrokeFunc DrawMotion
Mouse (P*) 2 W N StrokeFunc DrawMotion
Mouse (Q*) 2 W N StrokeFunc DrawMotion
Mouse (R*) 2 W N StrokeFunc DrawMotion
Mouse (S*) 2 W N StrokeFunc DrawMotion
Mouse (T*) 2 W N StrokeFunc DrawMotion
Mouse (U*) 2 W N StrokeFunc DrawMotion
Mouse (V*) 2 W N StrokeFunc DrawMotion
Mouse (W*) 2 W N StrokeFunc DrawMotion
Mouse (X*) 2 W N StrokeFunc DrawMotion
Mouse (Y*) 2 W N StrokeFunc DrawMotion
Mouse (Z*) 2 W N StrokeFunc DrawMotion
## there are three application that I do not want to block it, but the first character of them name are "b", fortunately they are all allow synthetic key events
Mouse (baobab) 2 W N StrokeFunc DrawMotion
Mouse (bleachbit) 2 W N StrokeFunc DrawMotion
Mouse (brasero) 2 W N StrokeFunc DrawMotion
duoerlee
帖子: 57
注册时间: 2009-10-12 21:35

Re: FVWM里如何排除一个针对 特定窗口的操作

#9

帖子 duoerlee » 2011-03-12 21:53

整好解决了我的一个问题,呵呵!

之前鼠标定义的鼠标中键在窗口中点击可以放大缩小窗口,但是希望在fvwmbuttons中不要这么做!
dontnoun
帖子: 51
注册时间: 2009-11-01 9:30

Re: FVWM里如何排除一个针对 特定窗口的操作

#10

帖子 dontnoun » 2011-03-13 1:52

duoerlee 写了:整好解决了我的一个问题,呵呵!

之前鼠标定义的鼠标中键在窗口中点击可以放大缩小窗口,但是希望在fvwmbuttons中不要这么做!
放大缩小窗口?
能把放大缩小窗口的配置 语句发上来看看吗? :em11
duoerlee
帖子: 57
注册时间: 2009-10-12 21:35

Re: FVWM里如何排除一个针对 特定窗口的操作

#11

帖子 duoerlee » 2011-03-13 20:18

其实很简单,不过很实用,这样不用拿鼠标找边框了,还老对不准;
MOUSE 2 W N Thiswindow (!Fvwmbuttons) Resize Direction SE
回复