用于非平铺窗口管理器的python简单平铺器

pystiler的Python项目详细描述


https://api.codacy.com/project/badge/Grade/d1f80616b8344a3d84de1016defae26dhttps://badge.fury.io/py/pystiler.svg

此项目的目标是能够定义平铺工作区和 在非平铺wms上轻松打开它们。

这是一个简单的python脚本,它将wmctrl包装起来,以便 平铺。

将它绑定到一个键或窗口创建挂钩上的autowhatever,创建脚本以设置工作区,或创建别名以快速移动终端。

最初是github.com/thewanterr/stiler的一个分支,但现在已经发展到几乎不计算原始代码的程度。

安装

使用安装

pip3 install pystiler

用法

可以使用pyst工具移动活动窗口。

使用

运行简单命令
pyst move <arg>

当前的参数是左、右、顶部、底部、Top-Lead、ButtoMyLead、TopiWrand、ButoMyTrand和最大化,所有这些都与活动窗口所期望的差不多。

使用

运行更复杂的命令
pyst explicit <screen rows> <screen columns> <first column> <last column> <first row> <last row>

例如

pyst explicit 2 3 2 2 1 2

定义一个包含2行3列维度的屏幕网格,并调整活动窗口的大小以仅填充第二列(第一行到第二行)。(因此,窗口将占据屏幕的中间垂直三分之一)

以及

pyst explicit 3 2 1 2 1 2

定义一个包含3行2列的屏幕网格,并调整活动窗口的大小,以填充第一列到第二列(屏幕顶部的2/3)的第一行到第二行。

工作空间

使用此脚本,可以定义和运行工作区配置。工作区配置允许您在屏幕上的某些位置打开某些应用程序时设置工作APC。

pystiler查找配置文件的~/.pystiler.ini。它使用configparser来解析它。您可以通过运行pyst workspace-example生成示例配置。有三种配置模式:

  • 很简单,应用程序(以及可选的目录)每次都是相同的,但位置不同
  • 具体来说,可能有多个应用程序,并且目录可能不同
  • 显式,您可以在其中使用显式api来使用非命名位置。

使用pyst workspace $workspacename

启动工作区

目前,Terminaldir什么也不做。这在待办事项清单上。

别名

下面是一些在终端中使用的好别名:

alias l='pyst move left'
alias r='pyst move right' # override r builtin
alias tl='pyst move top_left'
alias tr='pyst move top_right' # override tr builtin
alias bl='pyst move bottom_left'
alias br='pyst move bottom_right'
alias m='pyst move maximize'
alias t='pyst move top'
alias b='pyst move bottom'
alias ws='pyst workspace'
function wso {
    pyst workspace $1
    exit
}

项目的待办事项

  • [X]添加顶部和底部目标
  • [X]添加[上,下][左,右]目标
  • [X]添加简单的cli界面
  • [X]添加简单的测试用例
  • [X]制作精美的Python包
  • [X]添加简单的工作区配置
  • [X]添加复杂的工作区配置
  • []允许向工作区配置传递参数
  • []增加覆盖范围
  • []使用日志记录而不是调试标志
  • []添加窗口大小调整测试
  • []使显式api更好
  • []找出cols和rows反转的原因并修复它
  • []找出导致WMCTRL在第二次呼叫时失火的原因
  • []找出其他人修复了哪些错误
  • []制定项目的最终目标
  • []列出已调整大小的窗口ID以减轻调整大小的影响 问题
  • []找出工作区的异步加载
  • []添加代码质量评审

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

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException