回到 13.04,我从使用 Unity 切换到使用 i3 的 Gnome 会话。我的设置是基于这个。
$ cat /usr/share/xsessions/gnome-i3.desktop
[Desktop Entry]
Name=GNOME with i3
Comment=A GNOME fallback mode session using i3 as the window manager.
Exec=gnome-session --session=i3
TryExec=gnome-session
Icon=
Type=Application
$ cat /usr/share/gnome-session/sessions/i3.session
[GNOME Session]
Name=gnome-i3
RequiredComponents=gnome-settings-daemon;i3;
早在 13.04 和 13.10 中,自动挂载就像在 Unity 中一样工作。如果我插入可移动驱动器(例如:USB 拇指驱动器),它会挂载在/media/$USER/$VOLUME_LABEL
.
在 14.04 下,如果我使用 Unity,这仍然有效,但它不再适用于我首选的 Gnome+i3 会话。
如果我在插入驱动器后启动 nautilus(在 Gnome+i3 会话中),我可以在左窗格中看到未安装的驱动器,但它没有弹出按钮。它也不会出现在 的输出中df
。如果我随后点击驱动器,弹出按钮就会出现,它也会出现在df
. 因此,鹦鹉螺似乎“按需”安装卷。
我还发现我可以运行gvfs-mount -oi
以查看发生的 gvfs 事件,并且在连接驱动器时它会生成一对事件,如下所示:
Drive connected: 'Lexar USB Flash Drive'
Drive(0): Lexar USB Flash Drive
Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
ids:
unix-device: '/dev/sdg'
...
Volume added: 'ALLMYDATAZ'
Volume(0): ALLMYDATAZ
Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
ids:
class: 'device'
unix-device: '/dev/sdg1'
uuid: 'BE64-1766'
label: 'ALLMYDATAZ'
themed icons: ...
symbolic themed icons: ...
can_mount=1
can_eject=1
should_automount=1
sort_key=gvfs.time_detected_usec.1404417627659873
(注意should_automount=1
一点,但它仍然没有自动挂载。)
然后我可以手动挂载驱动器gvfs-mount -d /dev/sdg1
。
那么...是否有一些预先存在的工具将这些联系在一起,安装unix-device
所有具有的“添加量”事件should_automount=1
?也就是说,在将可移动卷添加到系统时安装它们?
请注意,我不是在寻找一种在登录或系统启动时挂载东西的方法。我希望它们在插入时安装。
由于这个问题没有得到任何答案,我继续写了gvfs-automount。
运行时它会监听“volume-added”事件,如果添加的卷设置了“should_automount”,则挂载它。它还会在安装卷时生成桌面通知。