我在GNU/Linux下使用的桌面环境工具组合(2)

5. 启动set_multi_wallpapers.sh脚本加载动态壁纸,或调用set_wallpaper.sh加载单张壁纸。具体内容参见这里

6. 使用amixer设置系统默认音量。左右声道的音量值来自环境变量DEFAULT_LSOUND_VOLUME和DEFAULT_RSOUND_VOLUME。

7. 根据环境变量STARTX_INIT_SOUND的值判断是否加播放启动音频。目前,我播放的是乔布斯说的stay hungray、stay foolish那段话。

8. 根据电脑的主机名判断,如果使用的是自己的笔记本电脑ZaReason Ultralap 440的话,则执行synclient命令设置触摸板压力阈值。

9. 最后,启动Sawfish窗口管理器。

Sawfish设置:~/.sawfishrc

Sawfish是一款轻量级的窗口管理器,基于librep库支持使用Lisp语言对其进行配置:包括窗口显示属性,快捷键绑定等。所以,所谓的轻量级实际上是高性能、省资源,但其功能可以通过编程配置得极为强大。下面介绍我在~/.sawfishrc文件对其的配置。其中主要实现的功能有:

1. 将常用程序绑定到指定的快捷上。按下快捷键后,若与其关联的程序未启动,则将其启动并放到前端;若已启动,则将其提升到前端。该功能的实现依赖于jump-or-exec模块。有了这个功能,则无需频繁地使用鼠标在不同的窗口间切换了,非常方便。目前,我绑定的快捷键如下:

Win+1:命令行终端程序Konsole;

Win+2:文件管理器Dolphin;

Win+3:文本编辑器Emacs;

Win+4:多国语言电子词典Stardict或Goldendict;

Win+5:网页浏览器Iceweasel,它是Mozilla Firefox在Debian下的名称;

Win+6:邮件客户端(亦是RSS阅读器、日历、任务管理,类似于微软的Outlook)Icedove,它是Mozilla Thunderbird在Debian下的名称;

Win+7:办公软件LibreOffice;

Win+8:图片、照片浏览器Gwenview。该软件比Windows下的图片查看器好很多:可以看GIF动画,亦可以直接看视频;

Win+9:音频播放器Audacious,播放无损音乐ape、flac的不二之选;

Win+0:调用tv_nomen.sh脚本程序播放有线电视,参见这里。

以上功能与设置的代码如下。其中的display-close-message函数用于在屏幕上显示已启动程序的名称,给用户以信息反馈,并在指定时间后自动关闭。

;; Load jump-or-exec module
(require 'jump-or-exec)

;; Display a message which can automatically disappear
(defun display-close-message (message seconds &optional attributes)
  "display MESSAGE for SECONDS seconds and make the message disappeared.
The default display-message don't close the message window automatically"
  (interactive)
  (display-message message attributes)
  (make-timer
  (lambda ()
    (display-message)) seconds))

;; KDE terminal konsole
(bind-keys global-keymap
    "Super-1" `(jump-or-exec "^Konsole@"
        ,(lambda ()
          (display-close-message "Start KDE terminal..." alert-msg-time alert-msg-attrib)
          (system "konsole &"))
        ,(lambda (wind)
          (display-window wind))))

;; Dolphin file manager
(bind-keys global-keymap
    "Super-2" `(jump-or-exec "Dolphin$"
        ,(lambda ()
          (display-close-message "Start Dolphin file manager..." alert-msg-time alert-msg-attrib)
          (system "dolphin &"))
        ,(lambda (wind)
          (display-window wind))))

;; Emacs text editor
(bind-keys global-keymap
    "Super-3" `(jump-or-exec "^Emacs@"
        ,(lambda ()
          (display-close-message "Start Emacs text editor..." alert-msg-time alert-msg-attrib)
          (system "emacs &"))
        ,(lambda (wind)
          (display-window wind))))

;; Stardict
(bind-keys global-keymap
    "Super-4" `(jump-or-exec "^StarDict$"
        ,(lambda ()
          (display-close-message "Start Stardict electronic dictionary..." alert-msg-time alert-msg-attrib)
          (system "stardict &"))
        ,(lambda (wind)
          (display-window wind))))

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15885.html