快速桌面窗口切换和应用程序启动实用程序

flitter的Python项目详细描述


[![构建状态](https://travis ci.org/seanh/flitter.svg)(https://travis ci.org/seanh/flitter)
[![覆盖状态](https://img.shields.io/covertalls/seanh/flitter.svg)(https://covertalls.io/r/seanh/flitter)
[![最新版本](https://pypip.in/version/flitter/badge.svg)(https://pypi.python.org/pypi/flitter/)
[![下载](https://pypip.in/download/flitter/badge.svg)(https://pypi.python.org/pypi/flitter/)
[![支持的python版本](https://pypip.in/py_versions/flitter/badge.svg)(https://pypi.python.org/pypi/flitter/)
[![开发状态](https://pypip.in/status/flitter/badge.svg)(https://pypi.python.org/pypi/flitter/)
[![许可证](https://pypip.in/license/flitter/badge.svg)](https://pypi.python.org/pypi/flitter/)



==


flitter使启动应用程序和在窗口之间切换尽可能快而容易

*f1启动firefox,或者在firefox启动时聚焦firefox窗口fox已经在运行了。
*如果有多个firefox窗口打开,则重复按f1周期

*f2对gvim也一样。
*以此类推,将所有最常用的应用程序绑定到功能键或其他键盘快捷键(您可以配置apps和快捷方式)。
*我有f1..f10绑定到我最常用的10个应用程序,f11循环通过所有其他不属于我的前10个应用程序的窗口。
*在应用程序之间移动时,flitter会首先提升每个应用程序最近使用的窗口一个应用程序的窗口,它通过窗口的顺序是最近使用的第一个顺序。

帽子。f1会带你去firefox,必要时打开它。如果应用程序是打开的,则只能对其使用alt tab键,如果不需要,则必须执行其他操作才能启动该应用程序。
*您无需使用鼠标打开应用程序或切换窗口。
*您无需使用双手或两个手指扭曲来同时按多个键(alt+tab、tab、tab…)。只需按一个功能键即可。
*您只需按一个键(可能反复按一下它)即可进入一个窗口,无需按Alt+Tab、Tab、Tab即可进入一个应用程序,然后按Alt+Tab、Alt+Down、Left、Left即可进入窗口。
*您无需查看或思考屏幕上的任何内容在
应用程序窗口中,当它们聚焦时(在
Alt Tab对话框中找不到合适的图标)
*手指内存非常兼容,你的手会很快记住
Firefox的f1,Thunderbird的f5,Skype的f8,你将以
思维速度切换应用程序。

如果您打开了几十个firefox窗口,那么反复按f1键循环浏览firefox窗口并不能很好地扩展。
但就我个人而言,我通常每个应用只有一个窗口,而且不会超过三个或四个,
每个应用有一个窗口(有时每个窗口中有几个选项卡)和
flitter可以工作对我来说太好了(关注最近使用的windows首先会使
有很大的不同)。


如果应用程序多于
功能键,则将每个功能键绑定到应用程序不会缩放。对于顶部以外的应用程序,您可以返回alt选项卡,但"flitter--others"(参见下文)为您提供了一个在不属于任何绑定应用程序的窗口中循环的键。我发现这让我可以完全避免
alt tab。



s x或非wmh/netwm linux环境,
尽管应该可以进行移植(只需替换
[wmctrl.py](https://github.com/seanh/flitter/blob/master/flitter/wmctrl)。py)
具有与桌面窗口交互的功能。



installation
----


first install wmctrl。在debian或ubuntu上,只需:



>然后安装flitter:

$pip install flitter


>现在应该可以在shell中运行"flitter"命令了。
运行"flitter-h"以获取帮助。



——

将[默认配置文件](https://github.com/seanh/flitter/blob/master/flitter/flitter.json)复制到`~/.flitter.json`。这是一个[json]文件(http://json.org/),包含一个
的窗口规范列表。窗口规格是flitter如何知道哪些窗口属于哪个应用程序的。每个规范都有一个名称,例如"firefox",以及与打开的窗口的属性相匹配的许多属性
,以决定每个窗口是否是firefox窗口。例如:

"firefox":{
"wm-class":".firefox"、
"command":"firefox"
}、


此窗口规范将匹配wm-class属性包含
字符串".firefox"(换句话说,所有firefox窗口)的所有窗口。

flitter启动一个firefox窗口或启动firefox,以
规范的名称作为命令行参数运行它:


$flitter firefox

您只需使用窗口管理器提供的绑定键盘的任何机制/>flitter命令的快捷方式。

要查看所有打开的窗口及其属性的列表,以便您可以为它们编写
窗口规范,请运行"wmctrl-lxp"(有关详细信息,请参见"man wmctrl")。


规范的"命令"部分是flitter将运行以启动
firefox的命令,如果没有找到firefox窗口。

这种识别窗口的方法非常灵活。您可以超越简单的每个键盘快捷方式模式一个应用程序,例如:

*切换到显示谷歌日历的Firefox窗口或在新的Firefox窗口中打开谷歌日历的键
*切换到运行WeeChat的GNOME终端窗口或打开新的
GN具有WeeChat配置文件的OME终端窗口


窗口规范中可以包含的全套属性是:

`window\u id`
打开窗口的唯一ID,例如0x0180000b


`desktop`
窗口所在的桌面,例如1

`pid`
窗口的ID,例如3384

`wm-class`
>窗口的wm-u类,例如navigator.firefox

`machine`
>窗口所属的客户机

`title`



----


er在虚拟开发环境中,首先在debian或ubuntu do上安装virtualenv:

$sudo apt get install python virtualenv

>然后创建并激活python虚拟环境,并将flitter安装到它:

$virtualenv flitter
$。flitter/bin/activate
$cd flitter
$pip install-e'git+https://github.com/seanh/flitter.git\egg=flitter'

`which flitter'现在应该在virtualenv中报告flitter二进制文件。

要运行测试,请执行以下操作:

$cd src/flitter
$pip install-r dev requirerments.txt
$nosetests

若要运行测试并生成测试覆盖率报告,请执行以下操作:


$nosetests--with coverage--cover inclusive--cover erase--cover tests

to upload a new release of flitter to pypi ans github:

1。更新[setup.py](setup.py)中的版本号。
2.` python setup.py sdist`
3.` python setup.py sdist upload`
4.` git commit setup.py-m"版本x.y.z"`
5.` git标签x.y.z`
6.` git push`
7.` Git推送——标记`

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将spring j_spring_安全检查迁移到登录   log4j2中自定义appender中AppConfig的java问题   在将java转换为Json时是否可以忽略内部类名和变量   用java将PDF文件转换为十六进制格式   java将值从AsyncTask返回到主类   java如何导入带有部署变量类名的静态函数?   java Spring Boot@ConfigurationProperties未从环境检索属性   java为什么API调用需要80毫秒的延迟才能到达控制器(在Google应用程序引擎中)?   XML配置中MarshallingMessageConverter中的java设置MarshallTo获取无效属性“MarshallTo”   java从群中获取facebook帖子   @ComponentScan的java excludeFilters不起作用   java将单选按钮值从一个类传递到另一个类   java使JTextArea在Swing中可滚动   java Android增强现实应用程序:将球坐标旋转到设备坐标系