NOTE: Chrome™ is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
This Chrome™ browser extension provides two windows management functions:
- Tiling windows.
- Emulating workspaces
- Multi-monitor support.
- Emulates up to 9 workspaces.
- Tiles windows to 8 different positions. (4 corners + 4 split screen)
- Remembers the windows workspace assignment between system reboots.
- Allows to define custom keyboard shortcuts.
- Multi-platform support: ChromeOS, Linux, Mac and Windows.
- Display Notifications: To Notify when switching to another workspace.
- Read your browsing history: To recover each window's workspace assignment
after a reboot or browser restart.
It creates a unique hash number for each window based on the amount of tabs open and the url of the last tab, and this permission is needed in order to get that information.
- Install from the Chrome™ Webstore
- Click on the extension icon on the toolbar.
- Select the amount of workspaces by using the slider.
- Click on the 'Configure shortcuts' button.
- Configure the keyboard shortcuts to switch workspaces. (I recommend using
Alt+X
andAlt+Z
)
With the Chrome™ Browser window in focus, use the configured keyboard shortcuts to tile it to different positions.
- Press the Next Workspace or Previous Workspace keyboard shortcut.
- A notification will be displayed indicating which workspace is now active.
NOTE: The extension icon will always display the active workspace.
- Switch to the destination workspace.
- Bring the window to focus using
Alt+Tab
, or another window management function of the native Operative System.
- Does not recover the workspaces state if the browser crashes due to a power loss or the process being terminated. (See issue #1)
- Cannot set all shortcuts by default do to an imposed limit of 4 by Chrome.
- It's necessary to open a new Chrome™ window when switching to an empty workspace, in order for Chrome™ to be in focus and able to listen for keyboard shortcuts. (The window will be removed if it's not used)
I did this cause there are no workspaces in ChromeOS, I'm not a developer (2nd thing I do in JS), but I'll try to keep improving the code as I learn Javascript. Check this link for more information.
The code compiles in linux and uses the Google Closure library and compiler.
I will eventually modify the builder so it's not necessary to grab those dependencies
(see issue #3), but for now, you can get them from their project pages:
-
Closure Compiler
It needs OpenJDK, so look for the package in your distro.
- Clone the repository:
git clone https://github.com/EduCampi/chromewm.git
- Edit the
build.sh
file. - Replace the first section with the paths to the Closure Compiler .jar file, Closure Library, and the externs files inside the Closure Compiler repository.
- Save and execute the
build.sh
file. - The built package will be located at the
bin
directory.