PKUWWT

关于几种窗口系统的透明效果

最早接触窗口的透明效果是linux下的gnome-terminal,当时就觉得非常好用,结合vim可谓敲字神器。特别是翻译的时候,不需要来回切换,或者各占一边屏幕。gnome-terminal的透明效果设置当然是很简单的,修改其profile即可。

下面分别介绍linux和windows下的透明效果设置。

X窗口下的透明效果设置

X窗口下同样没有现成的工具,但可以借助于Xcompmgr和transset-dftransset-df备份

transset-df在一些源中没有,因此需要自己编译(源码简单,make即可)。

在运行Xcompmgr之后,就可以用transset-df来设置窗口透明度了。比如trannset-df -a命令就可以将当前窗口变透明。

但是,transset-df是一个命令行工具,如何与窗口系统结合起来呢。下面介绍两种使用方式

openbox下的使用

先保证在~/.config/openbox/autostart.sh中已经启动了xcompmgr。比如

( xcompmgr -Ss -n -Cc -fF -I-10 -O-10 -D1 -t-3 -l-4 -r4 ) &

修改~/.config/openbox/rc.xml中的<context name=”Titlebar”>项下面的鼠标绑定内容。

<context name=”Titlebar”>
    <!-- 使用transset-df设置窗口透明效果 -->
    <mousebind button="C-Middle" action="Click">
        <action name="Execute">
            <execute>transset-df -p</execute>
        </action>
    </mousebind>
    <mousebind button="C-Up" action="Click">
        <action name="Execute">
            <execute>transset-df -p --inc 0.2 </execute>
        </action>
    </mousebind>
    <mousebind button="C-Down" action="Click">
        <action name="Execute">
            <execute>transset-df -p -m 0.2 --dec 0.2</execute>
        </action>
    </mousebind>

这样,你就可以在窗口标题栏上按Ctrl+中键切换透明度了,Ctrl+向上滚动增加透明度,Ctrl+向下滚动减少透明度。

结合devilspie的使用

devilspie支持自动绑定某类窗口,即窗口启动时会触发后台devilspie程序的相应行为。devilspie的配置文件在~/.devilspie/目录中,比如随便建立一个文件opacity.ds。内容为

( if
  ( or
    ( contains ( window_class ) "Gvim" )
    ( contains ( application_name ) "mirage" )
    ( contains ( application_name ) "chrome" )
  )
  ( begin
    ( spawn_async (str "transset-df -t -i " (window_xid) " 0.85" ))
  )
  )

应该比较好理解,当启动Gvim,mirage或chrome时设置其透明度为0.85。如果确定特定应用的窗口类别或其它属性呢。执行devilspie -a,然后启动某个应用,它的属性就会在devilspie的输出中显示出来。或者使用xprop也可以确定某个窗口的属性。注意,transset-df应该放在系统路径中,或者使用绝对路径。

然后,在X启动配置文件~/.xinitrc中加入

xcompmgr &
devilspie -a &

注意,xcompmgr和devilspie的启动不一定要放在.xinitrc中,只要在X启动之前执行即可,比如在openbox环境中,加入autostart.sh也是可以的。

Windows下窗口透明效果设置

Windows系统没有提供工具修改窗口透明度,但第三方工具可以,它们是AutoIt和AutoHotKey。以AutoIt为例,代码是

WinSetTrans("[CLASS:Vim]", "", 170);

AutoIt3提供了工具Au3Info,可以查看窗口以及子窗口的详细信息。上面的代码可以将所有打开的Gvim窗口设置为半透明。透明度值介于0-255之间。

cygwin终端透明效果

cygwin终端也提供半透明效果,只需要设置其选项即可(点击左上角图标->options->Looks->Transparency)。

参考文献


python programming visualization GPU scholarship algorithm data linux pdf foxit geometry math OpenGL zip D3 java vim makefile C++ gdb >>>> <<<<


pkg
node.js
bundle
Bunlde node.js app to standalone executable with pkg
2020-04-17 00:00:00 +0000
/programming/2020-04-17-bundle-node-js-app-to-standalone-executable-with-pkg/

	
	
tighervnc
ubuntu
Install tigervnc on Ubuntu18.04
2020-04-06 00:00:00 +0000
/techniques/2020-04-06-install-tigervnc-on-ubuntu-18.04/

	
	
go
qt
Usage of Go binding for Qt
2020-04-05 00:00:00 +0000
/programming/2020-04-05-usage-of-go-binding-for-qt/

	
	
docker
registry
web-UI
Setup a private docker registry v2 with web-ui
2020-04-04 00:00:00 +0000
/techniques/2020-04-04-setup-a-private-docker-registry/

	
	
jenkins
flask
continuous integration testing
docker
python
Continuous Integration Testing For Flask with Jenkins
2020-03-16 00:00:00 +0000
/programming/2020-03-16-jenkins-continuous-integration-testing-for-flask/

	
	
android
python
functional testing
uiautomator
Python-based ui-automator for Android
2020-03-15 00:00:00 +0000
/programming/2020-03-15-android-ui-automator-python/

	
	
sqlite3
linux
How to show Sqlite3 output as Man page table
2020-03-14 00:00:00 +0000
/techniques/2020-03-14-how-to-show-sqlite3-output-as-man-page-table/

	
	
gis
algorithm
Encoded Polyline Algorithm
2020-03-11 00:00:00 +0000
/programming/2020-03-11-encoded-polyline-algorithm/

	
	
你应该了解的所有wget命令
2015-09-26 00:00:00 +0000
/techniques/2015-09-26-all-the-wget-commands-you-should-know/

	
	
linux
gnome
GNOME 3 Usage
2015-02-17 00:00:00 +0000
/techniques/2015-02-17-gnome3-usage/

	
	
visualization
CFD
Usage of OpenFoam
2015-02-10 00:00:00 +0000
/scholarship/2015-02-10-openfoam-usage/

	
	
Script of converting tikz script to pdf file
2014-11-19 00:00:00 +0000
/techniques/2014-11-19-tikz-to-pdf-script/

	
	
linux
gimp
gimp使用笔记
2014-11-16 00:00:00 +0000
/techniques/2014-11-16-gimp-notes/

	
	
visualization
scholarship
draw critical points classification of planar system using tikz
2014-10-31 00:00:00 +0000
/scholarship/2014-10-31-planar-system-critical-points-with-tikz/

	
	
LaTeX
scholarship
Latex中bibtex的命名
2014-10-29 00:00:00 +0000
/scholarship/2014-10-29-latex-bibtex-author-name/

	
	
python
PyQt
programming
PyQt4 signal and slot Example
2014-10-19 00:00:00 +0000
/programming/2014-10-19-pyqt4-signal-slot-example/

	
	
programming
C++
Null Ostream Class in C++
2014-10-18 00:00:00 +0000
/programming/2014-10-18-cpp-null-ostream/

	
	
第一个GeoGebra应用
2014-10-09 00:00:00 +0000
/math/2014-10-09-first-geogebra-program/

	
	
linux
shell
shell用法集锦
2014-10-07 00:00:00 +0000
/techniques/2014-10-07-bash-notes/

	
	
swim
blog
游泳技术动画
2014-09-30 00:00:00 +0000
/blog/2014-09-30-swimming-animation/

	
	
scholarship
zotero
文献管理工具Zotero
2014-09-27 00:00:00 +0000
/scholarship/2014-09-27-Literature-Management-Software-Zotero/

	
	
programming
lisp
clojure
第一个clojure程序
2014-09-18 00:00:00 +0000
/programming/2014-09-18-the-first-clojure-program/

	
	
visualization
OpenGL
OpenGL使用技巧
2014-08-27 00:00:00 +0000
/scholarship/2014-08-27-opengl-utility/

	
	
python
crawler
用python来扒网页
2014-08-23 00:00:00 +0000
/programming/2014-08-23-web-scrap-with-python/

	
	
programming
Unicode
中文转码工具
2014-08-23 00:00:00 +0000
/programming/2014-08-23-unicode-conversion/

	
	
vim使用笔记
2014-08-22 00:00:00 +0000
/techniques/2014-08-22-vim-notes/

	
	
ImageMagick使用笔记
2014-08-21 00:00:00 +0000
/techniques/2014-08-21-ImageMagick-notes/

	
	
programming
C++
C++中打印指针
2014-08-17 00:00:00 +0000
/programming/2014-08-17-std-ostream-output-pointer-in-cplusplus/

	
	
programming
gdb
gdb笔记
2014-08-16 00:00:00 +0000
/programming/2014-08-16-gdb-notes/

	
	
programming
bit操作
2014-08-16 00:00:00 +0000
/programming/2014-08-16-bit-operation/

	
	
programming
C++
C++使用笔记
2014-08-12 00:00:00 +0000
/programming/2014-08-12-cpp-usage/

	
	
geometry
programming
python
平面三角形求交测试(Planar Triangles Intersection)
2014-08-07 00:00:00 +0000
/programming/2014-08-07-triangle-intersect/

	
	
vim
makefile
Makefile模板
2014-08-06 00:00:00 +0000
/techniques/2014-08-06-makefile-template/

	
	
programming
java
Java Usage
2014-08-03 00:00:00 +0000
/programming/2014-08-03-java-usage/

	
	
wxMaxima连不上maxima
2014-08-01 00:00:00 +0000
/techniques/2014-08-01-wxmaxima-not-connected-to-maxima/

	
	
用djvulibre将png图片转化为pdf
2014-07-27 00:00:00 +0000
/techniques/2014-07-27-convert-png-images-to-pdf-with-djvulibre/

	
	
用djvulibre来设置djvu文件的索引
2014-07-26 00:00:00 +0000
/techniques/2014-07-26-djvulibre-reset-outline/

	
	
python
programming
python的profile工具
2014-07-24 00:00:00 +0000
/programming/2014-07-24-python-profile/

	
	
隐函数定理
2014-07-22 00:00:00 +0000
/math/2014-07-22-Implicit-Function-Theorem/

	
	
google-chrome浏览器的标题栏字体渲染问题
2014-07-17 00:00:00 +0000
/techniques/2014-07-17-google-chrome-title-bar-font-rendering/

	
	
linux
备份文件Shell脚本
2014-07-14 00:00:00 +0000
/techniques/2014-07-14-linux-backup-shell-script/

	
	
Linux下将多个图像转换为pdf
2014-06-18 00:00:00 +0000
/techniques/2014-06-18-convert-multi-images-to-pdf/

	
	
D3
visualization
D3.js入门资料集锦
2014-05-24 00:00:00 +0000
/scholarship/2014-05-24-d3-js-tutorials/

	
	
linux
zip
python
Linux下zip文件解压乱码问题
2014-05-21 00:00:00 +0000
/techniques/2014-05-21-unzip-gbk-zip-file-in-linux/

	
	
关于Linux下有线网卡不能连接的问题
2014-05-14 00:00:00 +0000
/techniques/2014-05-14-about-r8169-ethernet-driver/

	
	
Linux下用wvdial为3G上网卡拨号
2014-05-04 00:00:00 +0000
/techniques/2014-05-04-3g-connection-with-wvdial/

	
	
algorithm
geometry
两个平面三角形的相交测试
2014-04-29 00:00:00 +0000
/scholarship/2014-04-29-intersections-between-two-2d-triangles/

	
	
使用另一个版本的glibc
2014-04-25 00:00:00 +0000
/techniques/2014-04-25-use-another-glibc-installation/

	
	
LaTeX使用方法集锦
2014-04-19 00:00:00 +0000
/techniques/2014-04-19-latex-usage/

	
	
scholarship
资源网站集锦
2014-04-16 00:00:00 +0000
/scholarship/2014-04-16-good-resource-website/

	
	
python
programming
Python使用问题集锦
2014-04-15 00:00:00 +0000
/programming/2014-04-15-python-usage/

	
	
修复pdf没有嵌入字体的问题
2014-04-07 00:00:00 +0000
/techniques/2014-04-07-repair-pdf-font-embedding-problem/

	
	
visualization
用VTK生成非结构化网格上的矢量场
2014-04-03 00:00:00 +0000
/scholarship/2014-04-03-use-vtk-create-vector-field-on-unstructured-grid/

	
	
algorithm
visualization
geometry
光线-三角形求交测试算法[译]
2014-04-03 00:00:00 +0000
/scholarship/2014-04-03-ray-triangle-intersection-tests-for-dummies/

	
	
OpenGL
python
programming
Python下写OpenGL代码示例
2014-04-03 00:00:00 +0000
/programming/2014-04-03-python-opengl-sample/

	
	
使用tikz绘制函数
2014-03-30 00:00:00 +0000
/techniques/2014-03-30-use-tikz-to-plot-function/

	
	
使用maxima求解非线性方程组
2014-03-21 00:00:00 +0000
/techniques/2014-03-21-use-maxima-to-solve-non-linear-system/

	
	
linux
在Linux下为笔记本添加两指左右滚动功能
2014-03-11 00:00:00 +0000
/techniques/2014-03-11-add-horizontal-two-finger-scroll/

	
	
Linux下常用工具
2014-03-08 00:00:00 +0000
/techniques/2014-03-08-usual-life-linux-tools/

	
	
Linux下使用github
2014-03-08 00:00:00 +0000
/techniques/2014-03-08-how-to-use-github/

	
	
git使用笔记
2014-03-08 00:00:00 +0000
/techniques/2014-03-08-git-usage/

	
	
LaTeX笔记(texlive)
2014-03-06 00:00:00 +0000
/techniques/2014-03-06-latex-notes/

	
	
geometry
visualization
几种基本几何预测
2014-03-01 00:00:00 +0000
/scholarship/2014-03-01-geometric-predicates/

	
	
math
visualization
geometry
单纯复形(Simplicial Complexes)[译]
2014-02-27 00:00:00 +0000
/scholarship/2014-02-27-simplicial-complexes/

	
	
linux
一个用于寻找文件,并便于打开文件的脚本
2014-02-22 00:00:00 +0000
/techniques/2014-02-22-a-script-for-find-and-open-file/

	
	
linux
清理Linux中的不用内存或缓存
2014-02-21 00:00:00 +0000
/techniques/2014-02-21-free-linux-memory/

	
	
visualization
geometry
形状指数(shape index)
2014-02-20 00:00:00 +0000
/scholarship/2014-02-20-shape-index/

	
	
用wget下载C++的手册
2014-02-10 00:00:00 +0000
/techniques/2014-02-10-download-cplusplus-reference/

	
	
linux
pdf
foxit
在Linux下使用wine+foxit
2014-02-08 00:00:00 +0000
/techniques/2014-02-08-using-foxit-in-linux/

	
	
在Bash的输入循环中使用readline和历史记录
2014-02-06 00:00:00 +0000
/techniques/2014-02-06-completion-and-history-in-bash-read-loop/

	
	
visualization
data
可视化数据集
2014-01-07 00:00:00 +0000
/scholarship/2014-01-07-visualization-dataset-collection/

	
	
关于几种窗口系统的透明效果
2014-01-06 00:00:00 +0000
/techniques/2014-01-06-transparent-window/

	
	
使用淘宝提供的Ruby源
2014-01-06 00:00:00 +0000
/techniques/2014-01-06-taobao-gems/

	
	
函数的临界点上的海森(Hessian)矩阵的含义[译]
2013-12-29 00:00:00 +0000
/math/2013-12-29-Meaning-of-the-Hessian-of-a-function-in-a-critical-point/

	
	
algorithm
visualization
层次集方法讲稿[译]
2013-12-25 00:00:00 +0000
/scholarship/2013-12-25-the-level-set-method-lecture-notes/

	
	
visualization
algorithm
层次集方法(Level Set Method) -- 解释[译]
2013-12-24 00:00:00 +0000
/scholarship/2013-12-24-level-set-method-explanation/

	
	
scholarship
微软的学术搜索引擎还是很好用的
2013-12-17 00:00:00 +0000
/scholarship/2013-12-17-academical-search-with-microsoft-search-engine/

	
	
GNU screen 保存会话
2013-12-12 00:00:00 +0000
/techniques/2013-12-12-gnu-screen-save-session/

	
	
GNU Screen--介绍和初学者指南[译]
2013-12-04 00:00:00 +0000
/techniques/2013-12-04-gnu-screen-an-introduction-and-beginners-tutorial/

	
	
visualization
GPU
GPU Gems - 第39章 基于纹理的体绘制技术[译]
2013-12-04 00:00:00 +0000
/scholarship/2013-12-04-gpugems-ch39-texture-based-volume-rendering/

	
	
MathJax使用示例
2013-12-03 00:00:00 +0000
/techniques/2013-12-03-mathjax-example/

	
	
Jekyll中使用MathJax
2013-12-03 00:00:00 +0000
/techniques/2013-12-03-jekyll-using-mathjax/

	
	
visualization
GPU
GPU Gems - 第17章 环境光遮蔽[译]
2013-12-01 00:00:00 +0000
/scholarship/2013-12-01-gpugems-ch17-ambient-occlusion/

	
	
python
programming
python解释器中的自动补全
2013-11-30 00:00:00 +0000
/programming/2013-11-30-python-interpreter-autocomplete/

	
	
Github建站过程
2013-11-29 00:00:00 +0000
/techniques/2013-11-29-build-a-github-website/

	
	
python
programming
最简单的python服务器
2013-11-29 00:00:00 +0000
/programming/2013-11-29-python-simple-server/