Giter Club home page Giter Club logo

maximus-gnome-shell's Introduction

Maximus GNOME Shell Extension

The Maximus GNOME Shell Extension attempts to emulate the Maximus package for the Ubuntu Netbook Remix.

That is, it removes decoration (i.e. the title bar) from maximised windows, saving vertical real estate. For example, Google Chrome does this by default. Useful for netbooks with small screens.

With Maximus Without Maximus
Using Maximus Without Maximus (title bar shows)

NOTE: with the titlebar of a window hidden, you may find it difficult to unmaximise/move a window. In this case, I recommend either remembering your system's keyboard shortcut for un/maximising a window (e.g. Alt+F10 on Fedora), or use the Window Options GNOME shell extension which adds a drop-down menu to the title bar in the top panel with these options (shameless plug, I wrote that one). You might also like the Window Buttons extension which adds the close, minimize, maximize buttons to the top panel.

Known issues

  • When restarting gnome-shell with a Qt app maximized (e.g. Texmaker), it will no longer redecorate on unmaximize. Only occurs after restarting gnome-shell, not when disabling/re-enabling. Not something I can reliably fix as I cannot detect whether a window is from a Qt app from the extension (and even then I cannot detect whether it was intended to be undecorated or not).
  • You cannot maximize and instantly unmaximize Qt apps (e.g. with keybindings); the unmaximize won't work until you wait a tiny bit (milliseconds) after the maximize. Qt apps seem to take a while to regain focus after being un/redecorated.

Changelog (see Changelog file for further details):

  • v12 (e.g.o), v2.4 (tagged):
  • This version is only compatible with Gnome 3.18.
  • v11 (e.g.o), v2.3 (tagged):
  • Imported to new Github repo due to original being unmaintained.
  • Make compatible up to Gnome 3.16.
  • When dragging to unmaximize, the window does not redecorate until it is dropped. Prevents "breaking" the drag (#7).
  • v10 (e.g.o), v2.2 (tagged):
  • changed the default method to hide the titlebar to hopefully be more stable, if the user is not using the Ambiance or Radiance themes (the old set_hide_titlebar bookmark)
  • much code cleaning
  • various misc. fixes.
  • v4 (e.g.o), v1.3 (tagged):
  • added blacklists/whitelists
  • fixed bug where Maximus wouldn't work on windows with non EN-utf8 characters in the title (bug #4)
  • made it harder to get stuck in fullscreen mode (particularly thunderbird)
  • better behaviour when maximizing from fullscreen to halfscreen.

Written 2012 by mathematical.coffee [email protected]. Project webpage: at bitbucket.


Configuration

On GNOME 3.4+: use the prefs widget. On GNOME 3.2, modify extension.js:

Half-maximised windows

By default, only fully-maximised windows are undecorated. If you also want to undecorate half-maximised windows, edit the line in extension.js to change this line:

const undecorateHalfMaximised = false;

to this (change the false to true):

const undecorateHalfMaximised = true;

Blacklists and whitelists

From dev-version 1.3 onwards (v4 on e.g.o), there is support for a window blacklist/whitelist.

If a window is on the blacklist, then all windows except those in the blacklist will be affected by Maximus. If a window is on the whtielist, then only the windows in the whitelist will be affected by Maximus.

To set whether the list is a blacklist or whitelist, modify this line at the top of extension.js:

/*** Whitelists/blacklists ***/
const BLACKLIST = true; // if it's a white list, change this to FALSE

To add apps to the blacklist or whitelist, add them to the APP_LIST variable in extension.js. You have to add the window's application name (like 'thunderbird.desktop') for it to work.

To see what an application's window manager class is, open up an instance of it. Then press Alt + F2 and type lg. Go to the 'Windows' tab and note the app of the window in question (press Esc to exit).

Add this in to APP_LIST.


Installation

The easy way (recommended):

One-click install from extensions.gnome.org!

From this website:

  1. Download the .zip file on the Downloads page.
  2. Open gnome-tweak-tool, go to "Shell Extensions", "Install Extension" and select the .zip file.

From the repository:

If using GNOME 3.4, 3.6, or 3.8, use the gnome3.4 branch. Otherwise (GNOME 3.2), use the stable branch.

hg clone ssh://[email protected]/mathematicalcoffee/maximus-gnome-shell-extension
hg up gnome3.4 # or `stable` if on GNOME 3.2
cd maximus-gnome-shell-extension
make # <-- VERY IMPORTANT
cp -r [email protected] ~/.local/share/gnome-shell/extensions
# enable maximus if you haven't already:
gnome-shell-extension-tool -e [email protected]

Now restart gnome-shell.


Branch Info (for developers)

  • 'stable' branch works with GNOME 3.2+. No fancy prefs widget.
  • 'gnome3.4' branch: GNOME3.4+ with prefs widget.
  • 'default' branch: the gnome3.4+ development branch (has prefs.js). i.e. dev branch for 'gnome3.4'.
  • 'polyglot-dev' branch: the gnome3.2+ development branch (same as above but no prefs.js). i.e. dev branch for 'stable'.

maximus-gnome-shell's People

Contributors

mathematicalcoffee avatar luispabon avatar yannik avatar michaelkirk avatar vboufleur avatar metinkale38 avatar

Watchers

James Cloos avatar Thibaut CHARLES avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.