Git Product home page Git Product logo

atom-pane-manager's Introduction

Atom: pane-manager

Set your panes layout, move your files between them, and other useful pane-related stuffs.


WARNING: breaking changes in 1.0!

If you used this package before its 1.0 version, you need to read the following documentation: commands name have changed and keybindings have been disabled to make overriding easier.


Keybindings

With the success of Atom, it's really difficult to choose keybindings that will not enter in conflict whit anyone else's packages, so I have removed the default keystrokes and let the keymap empty to let you set your own keybindings.

See keymaps/pane-manager.cson for suggestions.

Features

Change pane layouts

Use commands pane-manager:change-layout-[number] to switch between layouts ([number] can be one of the following : one, two, three, four, five, six, seven, eight, nine, ten).

Customize layouts

Using the following config parameters, you can customize your pane layouts (following are defaults).

  • layout-one: [ 1 ] (one column, one row)
  • layout-two: [ 1, 1 ] (two columns, one row)
  • layout-three: [ 1, 1, 1 ] (three columns, one row)
  • layout-four: [ 1, 1, 1, 1 ] (four columns, one row)
  • layout-five: [ 2, 2 ] (two columns, two rows)
  • layout-six: [ 2, 2, 2 ] (three columns, two rows)
  • layout-seven: [ 1, 2 ] (two columns, last one splitted in two rows)
  • layout-eight: [ 1, 2 ] (two columns, first one splitted in two rows)
  • layout-nine: [ 1, 1, 2 ] (three columns, last one splitted in two rows)
  • layout-ten: [ 1, 2, 2 ] (three columns, last two splitted in two rows)

Give the focus to another pane

Use commands pane-manager:focus-to-pane-[number] to change the focus to target pane ([number] can be one of the following : one, two, three, four, five, six, seven, eight, nine, ten).

Move a tab to another pane

Use commands pane-manager:move-to-pane-[number] to move current tab to target pane ([number] can be one of the following : one, two, three, four, five, six, seven, eight, nine, ten).

atom-pane-manager's People

Contributors

leny avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

atom-pane-manager's Issues

Plugin Usage Leeds to Application Freeze

Since view days every time, I try to use the pane manager it freezes Atom. No messages, just a restart of the application helps.

I am working on a MacBook Pro latest OSX. Atom and all packages are fully updated.

Failed to activate the pane-manager package

[Enter steps to reproduce:]

  1. ...
  2. ...

Atom: 1.54.0 x64
Electron: 6.1.12
OS: Microsoft Windows 10 Home
Thrown From: pane-manager package 1.0.1

Stack Trace

Failed to activate the pane-manager package

At Label template is malformed!

MalformedTemplateError: Label template is malformed!
    at Function.createMenuLabel (/packages/title-bar-replacer/dist/title-bar-replacer.js:1:12354)
    at /packages/title-bar-replacer/dist/title-bar-replacer.js:1:23446
    at Array.forEach (<anonymous>:null:null)
    at Function.execEditScript (/packages/title-bar-replacer/dist/title-bar-replacer.js:1:23283)
    at Function.recurse (/packages/title-bar-replacer/dist/title-bar-replacer.js:1:23004)
    at Function.run (/packages/title-bar-replacer/dist/title-bar-replacer.js:1:22803)
    at D.updateMenu (/packages/title-bar-replacer/dist/title-bar-replacer.js:1:25945)
    at MenuManager.atom.menu.update (/packages/title-bar-replacer/dist/title-bar-replacer.js:1:25797)
    at Package.activateKeymaps (<embedded>:11:3661054)
    at Package.activateResources (<embedded>:11:3660583)
    at <embedded>:11:3658197
    at Package.measure (<embedded>:11:3655871)
    at <embedded>:11:3658153
    at new Promise (<anonymous>:null:null)
    at Package.activate (<embedded>:11:3658096)
    at PackageManager.activatePackage (<embedded>:11:383646)
    at <embedded>:11:916751
    at r (<embedded>:11:911357)
    at s (<embedded>:14:1121307)
    at ChildProcess.<anonymous> (<embedded>:14:1121513)
    at ChildProcess.emit (events.js:200:13)
    at ChildProcess.EventEmitter.emit (domain.js:471:20)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)

Commands

     -9:22.3.0 atom-minify:close-panel (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)
     -9:22.3.0 core:cancel (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)
     -9:21.2.0 intentions:highlight (input.hidden-input)
     -9:21.1.0 core:close (input.hidden-input)
     -9:21 Code-Time:process-keystrokes-data (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)
  3x -9:06.4.0 Code-Time:refresh-code-time-metrics (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)
  3x -8:02.9.0 tree-view:collapse-all (div.tool-panel.tree-view)
     -7:59.5.0 tree-view:show (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)
 14x -7:36.4.0 Code-Time:refresh-code-time-metrics (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)
     -1:04.8.0 core:select-all (input.hidden-input)
  2x -0:36.4.0 Code-Time:refresh-code-time-metrics (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)

Non-Core Packages

aligner-javascript 1.3.0 
atom-beautify 0.33.4 
atom-bracket-highlight 0.3.2 
atom-minify 0.8.0 
atom-no-tab-close-button 1.0.0 
auto-update-plus 0.5.8 
autocomplete-sql 0.5.0 
bg-tree-view-toolbar 2.0.0 
bracket-colorizer 1.4.0 
busy-signal 2.0.1 
code-time 4.4.9 
counter 0.3.5 
double-tag 1.7.0 
find-scroll-marker 0.1.3 
hide-tree-view-icons 2.0.0 
highlight-bad-chars 2.0.0 
highlight-selected 0.17.0 
hyperclick 0.1.5 
hyperclick-php 0.3.0 
indent-toggle-on-paste 0.1.3 
intentions 1.1.5 
language-docker 1.1.8 
language-sql-mysql 0.3.1 
line-number-color 0.2.0 
lint-scroll-marker 0.3.0 
linter 3.3.0 
linter-docker 0.3.2 
linter-jsonlint 1.4.0 
linter-php 1.6.1 
linter-spell 0.15.0 
linter-spell-html 0.7.0 
linter-spell-javascript 0.9.0 
linter-tidy 2.4.0 
linter-ui-default 3.2.5 
local-history 4.3.1 
open-in-browser 0.5.2 
pane-manager 1.0.1 
php-hover-documentation 0.2.1 
quick-highlight 0.13.0 
remote-sync-pro 5.1.1 
screenshot 1.1.0 
scroll-marker 0.3.5 
show-invisibles-plus 0.3.1 
smart-backspace 0.2.3 
styri-syntax 1.0.0 
sublime-block-comment 0.5.1 
title-bar-replacer 2.0.0 
tree-view-autoadjust 3.0.0 
tree-view-sort 0.12.1 

Uncaught Error: Pane items must be objects. Attempted to add item undefined.

Steps to reproduce:

  1. Add a new empty pane to the layout using e.g. Cmd-K Cmd-L Cmd-2.
  2. Attempt to move an open tab to the new empty pane, not realizing that focus is still on the empty pane, using Cmd-K Cmd-M Cmd-2.

Atom Version: 1.0.2
System: Mac OS X 10.10.4
Thrown From: pane-manager package, v0.1.5

Stack Trace

Uncaught Error: Pane items must be objects. Attempted to add item undefined.

At /Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:311

Error: Pane items must be objects. Attempted to add item undefined.
    at Pane.module.exports.Pane.addItem (/Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:311:15)
    at Pane.module.exports.Pane.moveItemToPane (/Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:427:19)
    at Function.module.exports.PaneUtilities.moveItemTo (/Users/lawrence/.atom/packages/pane-manager/lib/pane-utilities.coffee:73:55)
    at Object.module.exports.moveToPane (/Users/lawrence/.atom/packages/pane-manager/lib/pane-manager.coffee:228:41)
    at atom-workspace.<anonymous> (/Users/lawrence/.atom/packages/pane-manager/lib/pane-manager.coffee:123:24)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:241:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:520:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:355:22)
    at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:177:20)

Commands

     -0:07.0 core:close (atom-text-editor.editor.is-focused)
     -0:04.0 pane-manager:changeLayoutTwo (atom-text-editor.editor.is-focused)
     -0:01.5.0 pane-manager:moveToPaneTwo (atom-pane.pane.active)

Config

{
  "core": {
    "themes": [
      "one-light-ui",
      "one-dark-syntax"
    ],
    "disabledPackages": [
      "cursor-count",
      "cursor-count",
      "incremental-search",
      "emmet"
    ]
  }
}

Installed Packages

# User
emmet-simplified, v2.4.2
jshint, v1.3.9
language-ejs, v0.2.0
linter-tidy, v1.0.1
minimap, v4.10.1
pane-manager, v0.1.5
pigments, v0.8.3
tidy-tabs, v0.2.0

# Dev
No dev packages

Layout keymaps don't work

The keymaps like cmd-k cmd-l cmd-2 don't work. You have several '.platform-darwin atom-workspace' blocks in you keymap file, so only the last one is getting used. Likewise for linux/win32. Combine them into one for each OS and they will work (put all layout/move/focus keymaps under one .platform-darwin atom-workspace').

keymaps for Windows/Linux users

Really love this package. Does exactly what I wanted however I found the keymaps for Windows and Linux users slightly odd or none at all. I'm quite aware that the users can map their own keys but I'm just going to drop my keymaps which are similar to Sublime Text's keymap.

'.platform-linux atom-workspace, .platform-win32 atom-workspace':
  'ctrl-1': 'pane-manager:focusToPaneOne'
  'ctrl-2': 'pane-manager:focusToPaneTwo'
  'ctrl-3': 'pane-manager:focusToPaneThree'
  'ctrl-4': 'pane-manager:focusToPaneFour'
  'ctrl-5': 'pane-manager:focusToPaneFive'
  'ctrl-6': 'pane-manager:focusToPaneSix'
  'ctrl-7': 'pane-manager:focusToPaneSeven'
  'ctrl-8': 'pane-manager:focusToPaneEight'
  'ctrl-9': 'pane-manager:focusToPaneNine'
  'ctrl-0': 'pane-manager:focusToPaneTen'
  'alt-!': 'pane-manager:changeLayoutOne'
  'alt-@': 'pane-manager:changeLayoutTwo'
  'alt-#': 'pane-manager:changeLayoutThree'
  'alt-$': 'pane-manager:changeLayoutFour'
  'alt-%': 'pane-manager:changeLayoutFive'
  'alt-^': 'pane-manager:changeLayoutSix'
  'alt-&': 'pane-manager:changeLayoutSeven'
  'alt-*': 'pane-manager:changeLayoutEight'
  'alt-(': 'pane-manager:changeLayoutNine'
  'alt-)': 'pane-manager:changeLayoutTen'
  'ctrl-!': 'pane-manager:moveToPaneOne'
  'ctrl-@': 'pane-manager:moveToPaneTwo'
  'ctrl-#': 'pane-manager:moveToPaneThree'
  'ctrl-$': 'pane-manager:moveToPaneFour'
  'ctrl-%': 'pane-manager:moveToPaneFive'
  'ctrl-^': 'pane-manager:moveToPaneSix'
  'ctrl-&': 'pane-manager:moveToPaneSeven'
  'ctrl-*': 'pane-manager:moveToPaneEight'
  'ctrl-(': 'pane-manager:moveToPaneNine'
  'ctrl-)': 'pane-manager:moveToPaneTen'

[feature request] option to persist layout

given scenario:

pane-manager:change-layout-two
pane-manager:move-to-pane-two
close tab in pane2

result:

second pane gets closed. 

I would love to keep my layout as it was set, like in sublime. is it possible?

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.