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

为了使GNU/Linux桌面环境下加载的程序较少以节省内存资源和提高启动时间,我目前并不使用重量级的桌面环境KDE和Gnome,甚至连登录窗界面gdm或xdm都不用,而是直接启动到控制台,登录后调用startx进入X视窗环境。所使用的工具组合列举如下:

X视窗环境启动:startx

窗口管理器:Sawfish

amixer:系统音量设置

键盘与鼠标配置:xmodmap

网络管理器:wicd(需删除NetworkManager)

xscreensaver:屏幕保护程序

类似于Windows的底部工具栏:perlpanel

shutter:截屏工具

amor:屏幕宠物玩具

workrave:定时休息、活动提醒工具,用于缓解视疲劳,身体疲劳

xclock:桌面模拟或数字时钟

knotes:桌面即时贴

在~/.bashrc中设置音频

首先介绍登录到控制台时,在~/.bashrc中定义的一些环境变量,它们会在启动X Window后,由amixer命令使用,用于系统音量控制。

# Default sound device
export DEFAULT_SOUND=numid=3,iface=MIXER,name="'Master Playback Volume'"
# Max sound for the two channels supported by the sound card
declare -i MAX_SOUND_VOLUME
export MAX_SOUND_VOLUME=65536
# Default sound volume percentage for the two channels when starting X window
declare -i DEFAULT_LSOUND_VOLUME_PERCENTAGE DEFAULT_RSOUND_VOLUME_PERCENTAGE
export DEFAULT_LSOUND_VOLUME_PERCENTAGE=40
export DEFAULT_RSOUND_VOLUME_PERCENTAGE=40
# Default sound volume for the two channels when starting X window
declare -i DEFAULT_LSOUND_VOLUME DEFAULT_RSOUND_VOLUME
export DEFAULT_LSOUND_VOLUME=$(($MAX_SOUND_VOLUME * $DEFAULT_LSOUND_VOLUME_PERCENTAGE / 100))
export DEFAULT_RSOUND_VOLUME=$(($MAX_SOUND_VOLUME * $DEFAULT_RSOUND_VOLUME_PERCENTAGE / 100))
# Whether play init sound when starting X window
export STARTX_INIT_SOUND=1

# Aliases for starting X with or without sound
alias xs="export STARTX_INIT_SOUND=1; startx"
alias xq="export STARTX_INIT_SOUND=0; startx"

针对以上代码解释如下:

1. DEFAULT_SOUND变量包含了指定操作系统ALSA声卡驱动调音器设备的编号与名称。amixer以该值为参数,可以控制相应音频的音量。该设备信息可以在命令行执行amixer contents显示出来,如下所示。可以看出,默认音频设备音量的最小值为0,最大值为65536(2字节),最小调整量为1,当前左、右声道音量值均为17790。

numid=4,iface=MIXER,name='Master Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=3,iface=MIXER,name='Master Playback Volume'
  ; type=INTEGER,access=rw------,values=2,min=0,max=65536,step=1
  : values=17790,17790
numid=2,iface=MIXER,name='Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=1,iface=MIXER,name='Capture Volume'
  ; type=INTEGER,access=rw------,values=2,min=0,max=65536,step=1
  : values=28174,28174

2. MAX_SOUND_VOLUME变量存储了最大音量值65536。

3. DEFAULT_LSOUND_VOLUME_PERCENTAGE与DEFAULT_RSOUND_VOLUME_PERCENTAGE分别为左、右声道的默认音量百分比,目前设为40%。

4. DEFAULT_LSOUND_VOLUME与DEFAULT_RSOUND_VOLUME分别为左、右声道的默认音量整数值。

5. STARTX_INIT_SOUND变量为1时,在调用startx进入X Window时,会自动播放欢迎音乐;为0时则不播放。播放命令在~/.xinitrc中设置。

6. 创建了两个aliases,xs为调用startx时播放欢迎音乐,xq则不播放。

设置~/.xinitrc

在控制台登录后,有了~/.bashrc中的设置,就可以调用xs或xq来启动startx进入X Window视窗环境。启动过程中的相关配置与必要程序加载是在~/.xinitrc中设置的。其内容如下:

# Export ibus environment variables
export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus

# Load NVIDIA configurations
nvidia-settings --load-config-only

# Load keyboard and mouse configurations
xmodmap ~/.xmodmaprc &
# Load X server resources
xrdb ~/.Xresources &

# Load image(s) as desktop wallpaper
# set_wallpaper.sh -r 0 -w 1920 -h 1080 -x 1280 -y 0 $picture/wallpapers/sunflower.jpg &
set_multi_wallpapers.sh -t 300 &
# Set the default sound volume
amixer cset numid=3,iface=MIXER,name='Master Playback Volume' $DEFAULT_LSOUND_VOLUME,$DEFAULT_RSOUND_VOLUME &
# Play welcome sound: Steve Jobs' speech
if [ "$STARTX_INIT_SOUND" = 1 ]; then
    mplayer $music/speech/steve\ jobs\ in\ harvard\ clip.mp3 < /dev/null > /dev/null &
fi

# Adjust touchpad pressure sensitivity
if [ "$cur_host_name" = "QuantumBoy" ]; then
    synclient PressureMotionMinZ=8
    synclient PressureMotionMaxZ=80
fi

# Start window manager
sawfish --display=:0

针对以上代码解释如下:

1. 导出ibus输入法相关的环境变量。

2. 执行nvidia-settings加载NVIDIA配置。

3. 使用xmodmap加载键盘与鼠标配置,主要是交换Caps Lock与左Control键,交换鼠标左右键。具体内容参见这里。

4. 使用xrdb加载视窗资源文件~/.Xresources,其中针对不同的程序设置X显示参数,设置光标主题。其内容如下:

Xcursor.theme: oxy-green
XClock.Clock.hourColor: red
XClock.Clock.minuteColor: green
XClock.Clock.minorColor: blue
XClock.Clock.majorColor: black

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

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