9

I'm not talking about applying a transformation or anything; I want to select multiple layers and physically change their order in the layer list (or whatever it's called). There doesn't seem to be a way to select multiple layers in this manner.

1

6 Answers 6

6

How to move multiple layers on the stack

GIMP's UI does not provide a way to reorder several items directly - but it can be done by issuing direct commands in one of the two scripting languages embedded in GIMP.

Under filters you can get both "Python" console and the "Script-fu" console. Unless you already know to program Scheme (script-fu) , I suggest you to use the Python console for that, as it is a far-more useful language both inside GIMP, as in scriptting other applications and general computing purposes.

So, let's suppose you want to move all layers marked as "linked" (see the second half of the answer on how to link layers) to the top of the image. The needed steps are:

  1. get a reference to the image
  2. For each layer on the image, from bottom to top:
    1. move it to the top

Hands on: open the Python console (Filters->Python->Console) and type in, after the >>> prompt:

img = gimp.image_list()[0]

(this gets a reference to the image open on the rightmost tab, and stores it in the variable named img)

for layer in reversed(image.layers):
    if layer.linked:
       pdb.gimp_image_reorder_item(img, layer, None, 0)

So, even without any programming experience, one should be able to read these three lines - the last line is a function call. To see other possible functions, just click on the Browse button at the bottom of the Python console. The 4 parameters passed mean the image, the layer, the layer parent (in case you want to insert it in a layer group - None is for the image), and the desired position, counting from the top.

(For frequent use, you can write these lines of code in a programming friendly text editor, and jsut paste the block - or you can search for some of my other answers where I lay the guidelines for building a full GIMP plug-in, where the code to be run becomes available as menu option)

How to trasnslate or transform multiple layers in GIMP

(Sorry - at first I miseread the question, and wrote the answer bellow on how to translate (move on the canvas) a layer selection. Since the text bellow might help someone searching for it and ending on this question, I will just leave it here)

GIMP has the concept of "linked" layers. You can only have one set of linked ayers at a time, and when it first came up, it was the poor substitute for layer groups.

All transforms or translations (i.e. layer moves) performed in one such linked layer results in all linked layers being moved along with the first one.

To mark a layer as "linked" just click on the left of the visibilty "eye" icon for a given layer on the Layers Dialog. Mark all the layers you want to move together this way, and move one of them.

6

This is a really easy in Gimp 2. I am using Gimp 2.8.22 and just tested this answer.

Simply go to the layers box (Ctl-L) and activate the chain icon next to each layer you wish to move together as a unit. Then, select the Move Tool icon (arrows pointing north, south, east, and west) and click on one of the objects on the palate which has been chained and move it. All of the items you chained together should move as one unit.

Deselect the chain icons if you do not wish to keep the layers locked together.

2

Get ofn-reorder-copy-layers.

To move/copy layers, select them by clicking on the link icon in the Layers list, change if necessary the active layer. Then use Image/Reorder linked layers or Image/Copy linked layers to move/copy your linked layers immediately above the active layer.

1

There is indeed no way to select several layers at the same time in the Layers list.

If you need to do this often on fixed sets of layers and if you only use the "Normal" blending mode(*), you can organize your layers in "layer groups" and then move the groups.

(*) because the groups are also a way to change the order in which layers are composited...

1
  • Unfortunately, that doesn't quite accomplish what I want to do. I'm not entirely sure how to describe it, but when you have a layer group - GIMP treats it the group as the result of its layers, and not each layer independently. This conflicts with animation, for example.
    – user83635
    Jan 8, 2017 at 16:12
1

On the layer panel, next to the layers you want to move, you have the "eye" to set them visible or invisible. Then you have another box with a chain or a link inside.

Active this link on all the layer you wanna move, then move one of them. They will all move.

0

GIMPs user interface only allows for one layer to be selected at a time.

However, there are layer groups which can hold multiple layers. Groups can be rearranged by clicking and dragging to a different position in the the stack.

For more information see Layer Groups here, in the user manual > https://docs.gimp.org/en/gimp-layer-groups.html

1
  • If the phantom down voter would like to explain why this answer is not useful, I would like to know.
    – Billy Kerr
    Jan 30, 2022 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.