wmctrl像xmonad那样方便地用快捷键来控制任务窗口的显示
分类: LINUX
2012-10-24 16:34:41
一、实现Mod+1..9激活程序窗口,如果该程序没打开,会自动打开程序。
02
03
04 if [ $# -lt 3 ]; then
05 echo ""
06 echo " 功能:判断进程是否存在,如果不存在就启动它,如果存在就显示它"
07 echo ""
08 echo " 用法: active_win \$1 \$2 \$3"
09 echo ""
10 echo " 参数说明:"
11 echo " \$1 进程名"
12 echo " \$2 窗口名"
13 echo " \$3 程序启动文件"
14 echo " 范例:"
15 echo " \$1 \$2 \$3"
16 echo " firefox浏览器 : active_win firefox Firefox firefox "
17 echo " Terminator : active_win terminator Terminator terminator"
18 echo " Gvim : active_win gvim Gvim gvim"
19 echo " XMind : active_win xmind-bin XMind /usr/local/xmind/xmind-bin"
20 exit 1
21 fi
22 PIDS=$( ps -ef | grep $1 | grep -v grep | grep -v active_win )
23 if [ "$PIDS" != "" ] ; then
24 wmctrl -x -a $2
25 #运行进程
26 else
27 sh -c "nohup $3 >/dev/null 2>&1 &"
28 fi
然后设置快捷键mod+1对应相应的程序,比如
active_win firefox Firefox firefox
二、实现当前活动窗口左右窗口移动,同样把下面代码设置快捷键,比如F12,当你按F12时,当前窗口会移动到左侧窗口,再次F12,会移动到右侧,配合mod+1,就可以自由的设置双屏的程序窗口了。
02
03 next_monitor_x=1920
04
05 window=`xdotool getwindowfocus`
06
07 x=`xwininfo -id $window | grep "Absolute upper-left X" | awk '{print $4}'`
08 y=`xwininfo -id $window | grep "Absolute upper-left Y" | awk '{print $4}'`
09 width=`xwininfo -id $window | grep "Width:" | awk '{print $2}'`
10 height=`xwininfo -id $window | grep "Height:" | awk '{print $2}'`
11
12
13
14 if [ "$x" -ge $next_monitor_x ]
15 then
16 # move to left
17 wmctrl -r :ACTIVE: -e "0, 0,0,$width,$height"
18 else
19 # move to right
20 wmctrl -r :ACTIVE: -e "0, $next_monitor_x,0,$width,$height"
21 fi
使用compiz的方法,在12.04下面比较好用。
- Install CompizConfig Settings Manager.
apt-get install compizconfig-settings-manager - Run it -> Go to bottom (Window managment)-> Go to "Put"
- Enable the plugin
- Configure shortcut for "Put to next Output"
使用wmctrl关闭窗口
对于上下文:
$wmctrl -m
Name: compiz
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: OFF
也:
$wmctrl -l
0x0240a3be -1 mjol N/A
0x02000003 0 mjol Top Expanded Edge Panel
0x0200004c 0 mjol Bottom Expanded Edge Panel
0x01e00024 0 mjol x-nautilus-desktop
0x04800253 0 mjol using wmctrl to close windows - Stack Overflow - Google Chrome
0x03c0c8c3 0 mjol Terminal
0x03c53f25 0 mjol Terminal
0x04400001 0 mjol Untitled - SketchUp
0x04400003 0 mjol Instructor
0x04400009 0 mjol SketchUp
我要关闭的窗口是最后一个:
0x04400009 0 mjol SketchUp
我尝试过以下方法:
$wmctrl -c "SketchUp" $wmctrl -c 0x04400009 $wmctrl -i 0x04400009 $wmctrl -c -i 0x04400009
但没有任何作用.
分类: LINUX
2013-04-10 22:59:10
事情的起因是我希望实现一键切换显示或者隐藏窗口,比如我有一个帮助文档,希望能够一键给他显示出来,看完给他隐藏。在12.04下面试图使用命令
- wmctrl -r 成语接龙含义.pdf -b toggle,shaded
一直没有效果,后来发现需要先取消掉窗口的最大化状态才行,于是脚本变成这样子
- #!/bin/bash
- #激活成语接龙文档
- #判断进程是否存在,如果不存在就启动它如果存在就显示它
- PIDS=$(ps aux | grep 'evince.*成语接龙含义.pdf' | grep -v grep)
- if [ "$PIDS" != "" ]
- then
- wmctrl -r 成语接龙含义.pdf -b remove,maximized_horz
- wmctrl -r 成语接龙含义.pdf -b remove,maximized_vert
- wmctrl -r 成语接龙含义.pdf -e 0,-1,-1,1920,1200
- wmctrl -r 成语接龙含义.pdf -b toggle,shaded
- #运行进程
- else
- sh -c "nohup evince /home/bl/Yunio/果果/成语接龙含义.pdf >/dev/null 2>&1 &"
- fi
配个快捷键给他,效果非常理想
wmctrl像xmonad那样方便地用快捷键来控制任务窗口的显示的更多相关文章
- unity编辑器扩展_06(给选项添加快捷键,控制菜单是否启用)
代码: [MenuItem("Tools/Delete ", true, 1)] static bool DeleteVadidate() { if (S ...
- VS2010快捷键设置
1.进入工具----选项 对话框 2.选择 环境---->键盘 3. 在 [显示命令包含] 下面的对话框中输入"对齐"关键字,然后就会在这个编辑框下面一个文本窗口中显示关 ...
- 这些年MAC下我常用的那些快捷键
Command + H:隐藏窗口 Command + M:最小化窗口 Command + N:新建 Command + O:打开 Command + S:保存 Command + shift+S:另存 ...
- 【转】Chrome快捷键
感谢原作者:http://www.cnblogs.com/mikalshao/archive/2010/11/03/1868568.html 标签页和窗口快捷键 Ctrl+N 打开新窗口. Ctrl+ ...
- Safari 快捷键
标签和网页导航快捷键 8 个 切换到下一个标签页 – Control+Tab 切换到上一个标签页 – Control+Shift+Tab 向下滚动一屏 – 空格 向上滚动一屏 – Shift+空格 焦 ...
- Eclipse for Mac 常用快捷键
为了提高开发效率,Eclipse 为我们提供了许多快捷键,它们能够帮助我们快速和方便的完成一些繁琐的操作.在这里只提供 Eclipse for Mac 的常用快捷键. Command + O:显示大纲 ...
- 用win下的快捷键提高工作效率
常用的快捷键: WIN+D:显示桌面,再按一次还原桌面: WIN+R:打开运行,输入命令可以执行相应操作,输入路径可以打开对应路径,输入程序名称可以打开对应程序(前提是你打开的是windows下面的程 ...
- Mac快捷键 Xcode快捷键
Mac OSX 快捷键&命令行 一.Mac OSX 快捷键 ctrl+shift 快速放大dock的图标会暂时放大,而 ...
- Word快捷键
▲Word快捷键 [F1]键:帮助 [F2]键:移动文字或图形,按回车键确认 [F4]键:重复上一次的操作 [F5]键:编辑时的定位 [F6]键:在文档和任务窗格或其他Word窗格之间切换 [F8]键 ...
随机推荐
- 专家动态页面的实现——php基于CI框架的学习(二)
以下是本次学习的页面 打开相关文件,整个定义了一个Expert类 class Expert extends CI_Controller{} 在Expert类里定义了几个参数以及说明其使用了哪些mode ...
- 【Django学习笔记】-环境搭建
对于初学django新手,根据以下步骤可以快速进行Django环境搭建 虚拟环境创建 使用virtualenv创建并启用虚拟机环境 ,关于virtualenv可参考https://www.yuque. ...
- 宝塔linux7.4.2/windows6.8 的版本中的安全随笔
在2020/8.23宝塔官方发布了一条关于宝塔linux7.4.2和Windows6.8版本中存在的重大的安全隐患 通知来源https://www.bt.cn/bbs/thread-54644-1-1 ...
- leetcode 刷题(数组篇)4题 寻找两个正序数组的中位数(二分查找)
题目描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 . 示例 1: 输入:nums1 = [1,3], nums2 = ...
- Java异常详解——一篇文章搞定Java异常
目录 1. 异常的体系结构 2. 常见的异常 2.1 运行时异常 2.2 编译时异常 (编译时异常必须进行处理否则无法运行) 3. 异常的抓抛模型原理 4. 异常的处理 4.1 try - catch ...
- Spring Boot 接口幂等插件使用
幂等概述 幂等性原本是数学上的概念,即使公式:f(x)=f(f(x)) 能够成立的数学性质.用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的. 幂等性 ...
- Centos6无法使用yum解决办法
12月后Centos 6 系统无法使用yum出现错误(文章底部看) 相信已经有一部分朋友今天连接到CentOS 6的服务器后执行yum后发现报错,那么发生了什么? CentOS 6已经随着2020年1 ...
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博客 ...
- Github仓库master分支到main分支迁移指南
1 概述 2020年10月1日后,Github会将所有新建的仓库的默认分支从master修改为main,这就导致了一些旧仓库主分支是master,新仓库主分支是main的问题,这在有时候会带来一些麻烦 ...
- 2021 年最值得推荐的 7 个 Angular 前端组件库 - DevUI
摘要:DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工 ...