Eu sei que este é um post antigo, mas me deparei com ele ao procurar por mim mesmo. Estou usando o Ubuntu 12.04 e criei um patch que permite exatamente o que você está descrevendo.
TERMO DE RESPONSABILIDADE:
Este patch pode parar de funcionar se forem feitas atualizações do gnome-shell, e mudanças suficientes forem feitas para fazer com que o patch seja rejeitado. Se você quiser experimentá-lo, certifique-se de fazer backup de tudo antes de aplicar o patch. Se algo der errado, você poderá restaurar o arquivo e ter uma área de trabalho novamente.
ISENÇÃO DE RESPONSABILIDADE
Basta salvar o código abaixo em um arquivo (por exemplo: gnome-shell.patch):
--- /usr/share/gnome-shell/js/ui/main.js 2012-03-29 21:15:44.899552355 +0300
+++ /usr/share/gnome-shell/js/ui/main.js 2012-03-29 21:38:17.603507004 +0300
@@ -273,9 +273,20 @@
*/
const LAST_WINDOW_GRACE_TIME = 1000;
+function _getFixedWorkspaces(){
+ let settings = new Gio.Settings({ schema: 'org.gnome.fixedWorkspaces' });
+ let nr_workspaces = settings.get_int('minworkspace');
+ if (nr_workspaces == 0){
+ return 1;
+ }
+ return nr_workspaces;
+}
+
+
function _checkWorkspaces() {
let i;
let emptyWorkspaces = [];
+ let min_wrk = _getFixedWorkspaces();
if (!Meta.prefs_get_dynamic_workspaces()) {
_checkWorkspacesId = 0;
@@ -284,6 +295,7 @@
for (i = 0; i < _workspaces.length; i++) {
let lastRemoved = _workspaces[i]._lastRemovedWindow;
+ if ( i < min_wrk-1){ _workspaces[i]._keepAliveId = true; }
if ((lastRemoved &&
(lastRemoved.get_window_type() == Meta.WindowType.SPLASHSCREEN ||
lastRemoved.get_window_type() == Meta.WindowType.DIALOG ||
Este patch procura por uma configuração do dconf para determinar o número mínimo de espaços de trabalho que você deseja. Crie um arquivo chamado org.gnome.fixedWorkspaces.gschema.xml e cole o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema path="/org/gnome/fixedWorkspaces/" id="org.gnome.fixedWorkspaces" gettext-domain="fixedWorkspaces">
<key type="i" name="minworkspace">
<default>4</default>
<range min="1" max="32"/>
<summary>Minimum workspaces</summary>
<description>This option sets the minimum number of desktops that the shell should stat with.</description>
</key>
</schema>
</schemalist>
Agora você deve copiar o arquivo de esquema em um local onde o gnome saiba onde procurar:
cp org.gnome.fixedWorkspaces.gschema.xml /usr/share/glib-2.0/schemas/
Compile os esquemas:
glib-compile-schemas /usr/share/glib-2.0/schemas/
E, finalmente, aplique o patch do shell do gnome:
patch /usr/share/gnome-shell/js/ui/main.js < gnome-shell.patch
Efetue logout e volte e você deve ter no mínimo 4 espaços de trabalho (valor padrão). Você pode personalizar o número de espaços de trabalho usando o dconf-editor.