How to define a custom menu and show it like an admin menu in Drupal 8? Question: How to define a custom menu and show it like an admin menu in Drupal 8 ?
Goal:
First of all, we have a custom administration theme where we are looking for a custom toolbar solution that stays visible for an &quot;simple&quot; user on the front and backend when logged in.
There is a need for a toolbar at top of page similar like the toolbar module in Drupal 8 core.
We want the following links shows to a user :

Back to site
User with possibility to view and edit their profile
Logout
The Edit option for edit content from the front of the site

Screenshot of the goal :

Research:
I have found there are several solutions for Drupal 7 with modules like Admin menu source, Webmaster menu and with Block Class styles module. But none of them is compatible for using in Drupal 8.
Expected solution:
This custom toolbar should only be for specific user roles(&quot;user&quot;) showed.
I will do this by creating an custom module but I'm not really sure if I need to inherit from the toolbar core module in Drupal 8.

A complete new toolbar
OR

I can work further on the default toolbar module in Drupal 8 but
there is a need for 2 things: add item &quot;boutique&quot; as example that is
decribed as an answer but also remove an item from the default
toolbar like Devel or Manage tab included the sub links from these items.
Are the two things together not possible then I prefer for creating a
completely new toolbar module from scratch for Drupal 8.


Recap:

Not hide or show items based on permissions
Not just adding items to the default drupal 8 toolbar module

Is that possible ? Are they better/other methods for achieving this goal ?
This is how i add custom menu :

In a custom module : 


  xxxx.module :


/**
 * Implements hook_toolbar().
 */
function xxxx_toolbar() {
    $items = [];

    $items['Boutique'] = [
        '#cache' =&gt; [
            'contexts' =&gt; ['user.permissions'],
        ],
    ];

    if (!\Drupal::currentUser()-&gt;hasPermission('Access the Commande overview page')) {
        return $items;
    }


    $items['Boutique'] += [
        '#type' =&gt; 'toolbar_item',
        '#weight' =&gt; 1,
        'tab' =&gt; [
            '#type' =&gt; 'link',
            '#title' =&gt; 'Boutique',
            '#url' =&gt; \Drupal\Core\Url::fromUri("internal:/admin/boutique/commandes"),
            '#attributes' =&gt; [
                'title' =&gt; 'Boutique menu',
                'class' =&gt; ['toolbar-icon', 'toolbar-icon-boutique'],
            ],
        ],
        'tray' =&gt; [

            'configuration' =&gt; [
                '#type' =&gt; 'link',
                '#title' =&gt; 'Commandes',
                '#url' =&gt; \Drupal\Core\Url::fromUri("internal:/admin/boutique/commandes"),

            ],[
                '#type' =&gt; 'link',
                '#title' =&gt; 'Livraison',
                '#url' =&gt; \Drupal\Core\Url::fromUri("internal:/admin/boutique/livraison"),

            ],
            [
                '#type' =&gt; 'link',
                '#title' =&gt; 'Configuration',
                '#url' =&gt; \Drupal\Core\Url::fromUri("internal:/admin/boutique/configuration"),

            ],

        ],
        '#attached' =&gt; array(
            'library' =&gt; array(
                'boutique/admin',
            ),
        ),

    ];
    return $items;
}


And the result :



You can manage access with :


  if (!\Drupal::currentUser()->hasPermission('Access the Commande
  overview page')) {
          return $items;
      }


in the xxxx.module like me.