Como usar um gerenciador de janelas personalizado com a sessão do GNOME Classic no 11.10
Exemplificado com o gerenciador de janelas do sawfish (desculpe, eu não uso o xmonad).
1. Corrigir gnome-classic.session
Parece haver
um bug
em gnome-classic.session. Veja como corrigi-lo:
Edite o arquivo do sistema
/usr/share/gnome-session/sessions/gnome-classic.session
diretamente ou faça uma cópia em seu diretório pessoal:
mkdir ~/.config/gnome-session/sessions
cp -ai /usr/share/gnome-session/sessions/gnome-classic.session ~/.config/gnome-session/sessions/
Faça esta alteração:
[GNOME Session]
Name=GNOME Classic
RequiredComponents=gnome-panel;gnome-settings-daemon;
-RequiredProviders=windowmanager;notifications;
+RequiredProviders=windowmanager;
DefaultProvider-windowmanager=gnome-wm
DefaultProvider-notifications=notify-osd
IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated
FallbackSession=gnome-fallback
DesktopName=GNOME
2.1. Alternativa 1: defina WINDOW_MANAGER em ~ / .gnomerc
2.1.a. Crie / edite o ~ / .gnomerc e adicione isto:
export WINDOW_MANAGER=sawfish
Substitua "sawfish" neste exemplo pelo gerenciador de janelas que você deseja usar. Se você fizer login com a sessão "GNOME Classic", receberá o gerenciador de janelas escolhido.
2.1.b. Inicialização mais rápida:
Se você tiver um atraso de 30 segundos no login com a solução acima, o seguinte corrigirá isso (isso pode ser apenas um problema de sawfish).
Crie um script de inicialização, por exemplo ~ / bin / my-gnome-wm:
#!/bin/bash
sawfish &
Torne-o executável:
chmod u+x ~/bin/my-gnome-wm
Altere ~ / .gnomerc para isto:
export WINDOW_MANAGER="$HOME/bin/my-gnome-wm"
2.2. Alternativa 2: use o sawfish.desktop
2.2.a. Edite o gnome-classic.session novamente:
[GNOME Session]
Name=GNOME Classic
RequiredComponents=gnome-panel;gnome-settings-daemon;
RequiredProviders=windowmanager;
-DefaultProvider-windowmanager=gnome-wm
+DefaultProvider-windowmanager=sawfish
DefaultProvider-notifications=notify-osd
IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated
FallbackSession=gnome-fallback
DesktopName=GNOME
Substitua "sawfish" neste exemplo pelo gerenciador de janelas que você deseja usar. Isso requer que um arquivo como "sawfish.desktop" seja instalado no local correto, por exemplo, /usr/share/applications/sawfish.desktop.
2.2.b. Inicialização mais rápida:
Se você tiver um atraso de 30 segundos no login com a solução acima, o seguinte corrigirá isso (isso pode ser apenas um problema de sawfish).
Edite o arquivo do sistema
/usr/share/applications/sawfish.desktop
diretamente ou faça uma cópia em seu diretório pessoal:
mkdir ~/.local/share/applications
cp -ai /usr/share/applications/sawfish.desktop ~/.local/share/applications/
Faça esta alteração:
[Desktop Entry]
Name=Sawfish
Name[el]=Ðñéïíüøáñï (Sawfish)
Type=Application
-Exec=sawfish
+Exec=bash -c 'sawfish&'
TryExec=sawfish
Terminal=false
NoDisplay=true
X-GNOME-WMName=Sawfish
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=true
Notas
Com o DefaultProvider-windowmanager = gnome-wm e sem a configuração de WINDOW_MANAGER no .gnomerc, parece que temos o Unity e o GNOME Classic ao mesmo tempo, um em cima do outro!
Esta entrada em ~ / .xsession-errors provavelmente diz algo sobre por que há um atraso de 30 segundos:
gnome-session[23870]: WARNING: Application 'gnome-wm.desktop' failed to register before timeout
Por que criar o script my-gnome-wm? Porque isso não parece funcionar:
export WINDOW_MANAGER='/usr/bin/sawfish&'
Nem isso:
export WINDOW_MANAGER='bash -c "/usr/bin/sawfish&"'