#!/usr/bin/perl

# obmenu-generator - schema file

=for comment

    item:      add an item inside the menu          {item => ["command", "label", "icon"]},
    cat:       add a category inside the menu       {cat => ["name", "label", "icon"]},
    sep:       horizontal line separator            {sep => undef}, {sep => "label"},
    pipe:      a pipe menu entry                    {pipe => ["command", "label", "icon"]},
    file:      include the content of an XML file   {file => "/path/to/file.xml"},
    raw:       any XML data supported by Openbox    {raw => q(xml data)},
    begin_cat: beginning of a category              {begin_cat => ["name", "icon"]},
    end_cat:   end of a category                    {end_cat => undef},
    obgenmenu: generic menu settings                {obgenmenu => ["label", "icon"]},
    exit:      default "Exit" action                {exit => ["label", "icon"]},

=cut

require "$ENV{HOME}/.config/obmenu-generator/config.pl";

## Text editor
my $editor = $CONFIG->{editor};

our $SCHEMA = [
    # Format:  NAME, LABEL, ICON
    {sep => "ArchLabs"},
    {item => ['exo-open --launch TerminalEmulator', 'Terminal', 'terminal']},
    {item => ['exo-open --launch WebBrowser ', 'Web Browser', 'firefox']},
    {item => ['exo-open --launch FileManager', 'File Manager', 'file-manager']},
    {sep => undef},
    {cat => ['utility', 'Accessories', 'applications-utilities']},
    {cat => ['development', 'Development', 'applications-development']},
    {cat => ['education', 'Education', 'applications-science']},
    {cat => ['game', 'Games', 'applications-games']},
    {cat => ['graphics', 'Graphics', 'applications-graphics']},
    {cat => ['audiovideo', 'Multimedia', 'applications-multimedia']},
    {cat => ['network', 'Network', 'applications-internet']},
    {cat => ['office', 'Office', 'applications-office']},
    {cat => ['other', 'Other', 'applications-other']},
    {cat => ['settings', 'Settings', 'gnome-settings']},
    {cat => ['system', 'System', 'applications-system']},
    {sep => undef},
    {pipe => ['al-places-pipemenu --recent ~/', 'Places', 'folder']},
    {sep => undef},
    {begin_cat => ['Preferences', 'theme']},
    {begin_cat => ['Openbox', 'openbox']},
    {item => ['obconf', 'Settings Editor', 'theme']},
    {item => ['kickshaw', 'Menu Editor', 'openbox']},
    {item => ['obkey', 'Keybind Editor', 'openbox']},
    {item => ['ob-autostart', 'Autostart Editor',      'openbox']},
    {sep => undef},
    {item => ["exo-open ~/.config/openbox/menu.xml", 'Edit menu.xml', 'text-xml']},
    {item => ["exo-open ~/.config/openbox/rc.xml", 'Edit rc.xml', 'text-xml']},
    {item => ["exo-open ~/.config/openbox/autostart", 'Edit autostart', 'text-xml']},
    {sep => undef},
    {item => ['openbox --restart', 'Openbox Restart', 'openbox']},
    {item => ['openbox --reconfigure', 'Openbox Reconfigure', 'openbox']},
    {end_cat => undef},
    {item => ['xfce4-appearance-settings', 'GTK Appearance', 'preferences-desktop-theme']},
    {item => ['nitrogen', 'Change Wallpaper', 'nitrogen']},
    {sep => undef},
    {pipe => ['al-compositor', 'Compositor', 'compton']},
    {pipe => ['al-polybar-pipemenu', 'Polybar', 'polybar']},
    {pipe => ['al-conky-pipemenu', 'Conky', 'conky']},
    {pipe => ['al-tint2-pipemenu', 'Tint2', 'tint2']},
    {item => ['rofi-theme-selector', 'Rofi Theme', 'theme']},
    {item => ['al-panel-chooser', 'Panel Chooser', 'panel']},
    {sep => undef},
    {item => ['xfce4-settings-manager', 'Xfce4 Settings Manager', 'preferences-desktop']},
    {item => ['pavucontrol', 'Pulseaudio Preferences', 'multimedia-volume-control']},
    {item => ['exo-preferred-applications', 'Preferred Applications', 'preferred-applications']},
    {item => ['arandr', 'Screen Layout Editor', 'display']},
    {end_cat => undef},
    {sep => undef},
    {begin_cat => ['Menu Generator', 'menu-editor']},
    {item => ["$editor ~/.config/obmenu-generator/schema.pl", 'Menu Layout', 'text-x-source']},
    {sep  => undef},
    {item => ['obmenu-generator -p', 'Generate a pipe menu', 'menu-editor']},
    {item => ['obmenu-generator -s -c', 'Generate a static menu', 'menu-editor']},
    {end_cat => undef},
    {item => ["switchmenu --static", 'Switch Menu', 'menu-editor']},
    {pipe => ['al-kb-pipemenu', 'Display Keybinds', 'cs-keyboard']},
    {pipe => ['al-help-pipemenu', 'Help and Info', 'info']},
    {sep => undef},
    {item => ['i3lock-fancy -p', 'Lock Screen', 'lock']},
    {item => ['oblogout', 'Exit Openbox', 'exit']},
]
