Wie kann ich ein Minimum an Arbeitsbereichen festlegen, die in Gnome 3 immer verfügbar bleiben sollen?

1

Ich benutze seit einiger Zeit Ubuntu Oneiric Ocelot (11.10) mit Gnome-Shell (Gnome 3) und versuche mich daran zu gewöhnen.

Bei einer anderen Frage wurde gefragt, ob die dynamische Arbeitsbereichserstellung in Gnome 3 deaktiviert werden kann, was derzeit nicht möglich zu sein scheint.

Stattdessen würde ich es vorziehen, eine feste Anzahl von Arbeitsbereichen festzulegen, die beim Anmelden erstellt werden sollen und auch dann am Leben bleiben sollen, wenn sich keine Fenster darin befinden, und mir dennoch die Option geben, dynamisch mehr Arbeitsbereiche zu erstellen. Ist so etwas derzeit in Gnome 3 möglich?

Ein schmutziger Hack könnte darin bestehen, beim Start in jedem Arbeitsbereich ein Fenster in Mikrogröße zu erzwingen. Mit devilspie ist dies möglich, obwohl ich nicht weiß, ob dies immer noch für Gnome 3 funktioniert. Der beste Fall wäre, persistente unsichtbare Fenster zu erstellen. Kennt jemand einen Weg?

aef
quelle

Antworten:

1

Ich weiß, dass dies ein alter Beitrag ist, aber ich bin darauf gestoßen, als ich selbst danach gesucht habe. Ich benutze Ubuntu 12.04 und habe einen Patch erstellt, der genau das erlaubt, was Sie beschreiben.

HAFTUNGSAUSSCHLUSS:

Dieser Patch funktioniert möglicherweise nicht mehr, wenn Gnome-Shell-Updates durchgeführt werden und genügend Änderungen vorgenommen wurden, um den Patch abzulehnen. Wenn Sie es ausprobieren möchten, stellen Sie sicher, dass Sie alle Daten gesichert haben, bevor Sie den Patch anwenden. Wenn etwas schief geht, können Sie die Datei wiederherstellen und haben wieder einen funktionierenden Desktop.

END HAFTUNGSAUSSCHLUSS

Speichern Sie einfach den folgenden Code in einer Datei (zB: 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 ||

Dieser Patch sucht nach einer dconf-Einstellung, um die gewünschte Mindestanzahl von Arbeitsbereichen zu bestimmen. Erstellen Sie eine Datei mit dem Namen org.gnome.fixedWorkspaces.gschema.xml und fügen Sie Folgendes ein:

<?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>

Jetzt müssen Sie die Schemadatei an einen Ort kopieren, an dem gnome weiß, wo er suchen muss:

cp org.gnome.fixedWorkspaces.gschema.xml /usr/share/glib-2.0/schemas/

Kompilieren Sie die Schemata:

glib-compile-schemas /usr/share/glib-2.0/schemas/

Und zum Schluss wende den Gnome-Shell-Patch an:

patch /usr/share/gnome-shell/js/ui/main.js < gnome-shell.patch

Melden Sie sich ab und wieder an, und Sie sollten über mindestens 4 Arbeitsbereiche verfügen (Standardwert). Sie können die Anzahl der Arbeitsbereiche mit dconf-editor anpassen.

Gabriel Samfira
quelle