How do you create a custom Panels layout in an Omega sub-theme? I'd like to create a new custom Panels layout based on one of the Omega Panels layouts and put it in my Omega sub-theme, but I can't seem to find a way to do this.

So far I've added the following to my sub-theme .info file:

; PLUGINS
plugins[panels][layouts] = panels/layouts


I have then taken the layout I want to work from (omega_12_twocol_6_6_bricks) and renamed and copied this to sites/all/themes/mycustom/panels/layouts/omega_12/mycustom_12_twocol_6_6_bricks. I then renamed all the files within the mycustom_12_twocol_6_6_bricks directory replacing 'omega' with 'mycustom'. Then, within my mycustom_12_twocol_6_6_bricks.inc file I changed:

function omega_omega_12_twocol_6_6_bricks_panels_layouts() {
  $items['omega_12_twocol_6_6_bricks'] = array(
    'title' =&gt; t('Two Column 6-6 bricks'),
    'category' =&gt; t('Omega: 12 Column Grid'),
    'icon' =&gt; 'omega_12_twocol_6_6_bricks.png',
    'theme' =&gt; 'omega_12_twocol_6_6_bricks',
    'admin css' =&gt; '../omega_panels_admin_12.css',
    'regions' =&gt; array(
      'top' =&gt; t('Top'),
      'left_above' =&gt; t('Left above'),
      'right_above' =&gt; t('Right above'),
      'middle' =&gt; t('Middle'),
      'left_below' =&gt; t('Left below'),
      'right_below' =&gt; t('Right below'),
      'bottom' =&gt; t('Bottom'),
    ),
  );

  return $items;
}


to

function mycustom_omega_12_twocol_6_6_bricks_panels_layouts() {
  $items['mycustom_12_twocol_6_6_bricks'] = array(
    'title' =&gt; t('My Custom Two Column 6-6 bricks'),
    'category' =&gt; t('Omega: 12 Column Grid'),
    'icon' =&gt; 'mycustom_12_twocol_6_6_bricks.png',
    'theme' =&gt; 'mycustom_12_twocol_6_6_bricks',
    'admin css' =&gt; '../omega_panels_admin_12.css',
    'regions' =&gt; array(
      'top' =&gt; t('Top'),
      'left_above' =&gt; t('Left above'),
      'right_above' =&gt; t('Right above'),
      'middle' =&gt; t('Middle'),
      'left_below' =&gt; t('Left below'),
      'right_below' =&gt; t('Right below'),
      'bottom' =&gt; t('Bottom'),
    ),
  );

  return $items;
}


I also copied the admin css file into the relative directory as stated in the .inc file, cleared all cache and ran update.php, but I can't see my new layout when adding a new Panel.

The module versions I'm using are:


Drupal 7.22
Panels 3.3
Omega 3.1


Any help here appreciated.

Many thanks
The basic process is:

Edit the MYTHEME.info file:

; PLUGINS
plugins[panels][layouts] = panels/layouts


Create a directory in panels/layouts/mypanel

Create your include panels/layouts/mypanel/mypanel.inc

/**
 * Implements hook_panels_layouts().
 */
function mytheme_mypanel_panels_layouts() {
  $items['mypanel'] = array(
    'title' =&gt; t('My Panel'),
    'category' =&gt; t('My Site'),
    'icon' =&gt; 'mypanel.png',
    'theme' =&gt; 'mypanel',
    'regions' =&gt; array(
      'top' =&gt; t('Top'),
      'left' =&gt; t('Left column'),
      'right' =&gt; t('Right column')
    ),
  );

  return $items;
}


Create your 50x75 mypanel.png, and place it as panels/layouts/mypanel/mypanel.png

Create the template file as panels/layouts/mypanel/mypanel.tpl.php

&lt;div class="panel-display mypanel" &lt;?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?&gt;&gt;
    &lt;div class="panel-panel mypanel-top grid-16 alpha omega"&gt;
        &lt;div class="inside"&gt;&lt;?php print $content['top']; ?&gt;&lt;/div&gt;
    &lt;/div&gt;

    &lt;div class="panel-panel mypanel-left prefix-1 grid-4 alpha"&gt;
        &lt;div class="inside"&gt;&lt;?php print $content['left']; ?&gt;&lt;/div&gt;
    &lt;/div&gt;

    &lt;div class="panel-panel mypanel-right grid-9 suffix-1 omega"&gt;
        &lt;div class="inside"&gt;&lt;?php print $content['right']; ?&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


Upload, clear cache, and see if you can make a panel page.  Nine times out of ten, the problem with Panels picking up custom panel layouts has to do with a misnamed include or template file, which I suspect is your problem.