欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

我是如何用python给Thunar写GUI插件的 (pygtk+glade)

程序员文章站 2022-05-18 15:19:33
更新:zip乱码的问题可以通过安装patch之后的 和`unzip natspec`解决(archlinuxcn源),而仍使用Engrampa做前端。此文重点在pygtk... 问题是这样的: 一切都起源于一个压缩文件的乱码… Windows的编码真的是为所欲为,让Linux这种守规矩的小*措手不 ......

更新:zip乱码的问题可以通过安装patch之后的p7zip-natspecunzip-natspec解决(archlinuxcn源),而仍使用engrampa做前端。此文重点在pygtk...

问题是这样的:
一切都起源于一个压缩文件的乱码…
windows的编码真的是为所欲为,让linux这种守规矩的小*措手不及:
我是如何用python给Thunar写GUI插件的 (pygtk+glade)
试了太多gui的解压缩软件,peazip、engrampa、xarchiver等等,以及国产的360压缩,没有一个能解决这个乱码问题的。

其实吧,不少命令行工具是可以通过参数传递编码来解决这个问题的,但是人总有懒的时候,即使勤奋如我也不例外,有时候就想拿个鼠标啊触摸板啊点啊点的(主要是看个压缩包也要输入命令行除了看起来装逼实际上也真的很低效啊…)


然后我发现一个特别好用的工具:lsar。lsar不要传递任何参数就可以自动判断编码:
我是如何用python给Thunar写GUI插件的 (pygtk+glade)

其实它和unar是一对(unar在之前thunar自定义菜单的随笔里已经说过了),它们是the unarchiver的命令行版本。
the unarchiver是给mac设计的一个带gui的解压缩工具,但是只给windows和linux提供了命令行版。
(不得不说很多mac平台的工具用户体验都很好啊… 此处省略太多对linux生态圈踢皮球和没有产品经理的牢骚)

好了,正题来了:
如何给thunar写一个插件,通过鼠标右键就能调用lsar预览压缩包的内容?

答:
这种工作最适合python这种语言了,结合pygtk,调用lsar获取结果传入gtk显示就可以了。
使用glade还可以快速画个gtk界面,省去一堆python里创建和绑定的代码。
代码上传到 了。

thunar里自然少不了加个自定义选项:
我是如何用python给Thunar写GUI插件的 (pygtk+glade)
效果:
我是如何用python给Thunar写GUI插件的 (pygtk+glade)
我是如何用python给Thunar写GUI插件的 (pygtk+glade)

q或者ctrl+w可以退出预览。

界面不是很好看,没时间就这样吧
about窗口也只是有个框(好像并不需要about窗口)