diff --git a/x11/wm/component.xml b/x11/wm/component.xml
new file mode 100755
index 0000000000..5497f743fe
--- /dev/null
+++ b/x11/wm/component.xml
@@ -0,0 +1,3 @@
+
+ x11.wm
+
diff --git a/x11/wm/openbox/actions.py b/x11/wm/openbox/actions.py
new file mode 100644
index 0000000000..9563e6c0d0
--- /dev/null
+++ b/x11/wm/openbox/actions.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/copyleft/gpl.txt.
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+from pisi.actionsapi import shelltools
+
+
+def setup():
+ shelltools.export("AUTOPOINT", "true")
+ autotools.autoreconf("-fiv")
+ autotools.configure("--disable-static \
+ --prefix=/usr \
+ --with-x \
+ --enable-nls \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/libexec/openbox \
+ --enable-startup-notification \
+ --docdir=/%s/%s" % (get.docDIR(), get.srcNAME()))
+
+ pisitools.dosed("libtool", "^(hardcode_libdir_flag_spec=).*", '\\1""')
+ pisitools.dosed("libtool", "^(runpath_var=)LD_RUN_PATH", "\\1DIE_RPATH_DIE")
+ pisitools.dosed("libtool"," -shared ", " -Wl,--as-needed -shared ")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+ # GNOME Panel is no longer available in the official repositories
+ pisitools.remove("/usr/bin/gdm-control")
+ pisitools.remove("/usr/bin/gnome-panel-control")
+ pisitools.remove("/usr/bin/openbox-gnome-session")
+ pisitools.remove("/usr/share/man/man1/openbox-gnome-session.1")
+ pisitools.remove("/usr/share/xsessions/openbox-gnome.desktop")
+ pisitools.removeDir("/usr/share/gnome-session")
+
+ pisitools.dodoc("AUTHORS", "CHANGELOG", "COPYING", "README")
diff --git a/x11/wm/openbox/files/02_fix_freedesktop_compliance.patch b/x11/wm/openbox/files/02_fix_freedesktop_compliance.patch
new file mode 100755
index 0000000000..c77237597f
--- /dev/null
+++ b/x11/wm/openbox/files/02_fix_freedesktop_compliance.patch
@@ -0,0 +1,23 @@
+by Nico Golde
+the freedesktop standard requires some additional attributes in the desktop files
+which are added here to fix #533126, #531580
+Index: openbox-3.4.11.1/data/gnome-wm-properties/openbox.desktop
+===================================================================
+--- openbox-3.4.11.1.orig/data/gnome-wm-properties/openbox.desktop 2010-04-23 16:47:53.000000000 +0200
++++ openbox-3.4.11.1/data/gnome-wm-properties/openbox.desktop 2010-04-23 16:48:08.000000000 +0200
+@@ -2,10 +2,15 @@
+ Type=Application
+ Name=Openbox
+ Exec=openbox
++Type=Application
++Categories=System;
+
+ # name we put on the WM spec check window
+ X-GNOME-WMName=Openbox
+
++X-GNOME-Provides=windowmanager
++NoDisplay=true
++
+ # our config tool
+ ConfigExec=obconf
+
diff --git a/x11/wm/openbox/files/autostart b/x11/wm/openbox/files/autostart
new file mode 100755
index 0000000000..5c6524e588
--- /dev/null
+++ b/x11/wm/openbox/files/autostart
@@ -0,0 +1,25 @@
+#
+# These things are run when an Openbox X Session is started.
+# You may place a similar script in $HOME/.config/openbox/autostart
+# to run user-specific things.
+#
+
+# If you want to use GNOME config tools...
+#
+#if test -x /usr/libexec/gnome-settings-daemon >/dev/null; then
+# /usr/libexec/gnome-settings-daemon &
+#elif which gnome-settings-daemon >/dev/null; then
+# gnome-settings-daemon &
+#fi
+
+# If you want to use XFCE config tools...
+#
+#xfce-mcs-manager &
+
+Esetroot -center /usr/share/openbox/RepublicDayofTurkey.png
+/usr/libexec/polkit-gnome-authentication-agent-1 &
+(sleep 3 && /usr/bin/nm-applet --sm-disable) &
+tint2 &
+conky &
+pulseaudio &
+(sleep 3 && /usr/bin/volumeicon) &
diff --git a/x11/wm/openbox/files/kedicik.png b/x11/wm/openbox/files/kedicik.png
new file mode 100755
index 0000000000..7098c8b8d5
Binary files /dev/null and b/x11/wm/openbox/files/kedicik.png differ
diff --git a/x11/wm/openbox/files/menu.old.xml b/x11/wm/openbox/files/menu.old.xml
new file mode 100755
index 0000000000..0d3890725e
--- /dev/null
+++ b/x11/wm/openbox/files/menu.old.xml
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/x11/wm/openbox/files/menu.xml b/x11/wm/openbox/files/menu.xml
new file mode 100755
index 0000000000..1327f02c38
--- /dev/null
+++ b/x11/wm/openbox/files/menu.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/x11/wm/openbox/files/obmenu-generator b/x11/wm/openbox/files/obmenu-generator
new file mode 100755
index 0000000000..0d53b409a6
--- /dev/null
+++ b/x11/wm/openbox/files/obmenu-generator
@@ -0,0 +1,540 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2011-2014 Daniel "Trizen" Șuteu .
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# Openbox Menu Generator
+# A fast pipe/static menu generator for the Openbox Window Manager.
+
+# Program: obmenu-generator
+# License: GPLv3
+# Created on: 25 March 2011
+# Latest edit on: 26 March 2014
+
+# Websites: http://trizen.googlecode.com
+# http://trizenx.blogspot.com
+
+#use 5.014;
+#use strict;
+#use warnings;
+
+require Linux::DesktopFiles;
+
+$Linux::DesktopFiles::VERSION >= 0.08
+ || die "Update Linux::DesktopFiles to a newer version! (requires >=0.08)\n";
+
+my $pkgname = 'obmenu-generator';
+my $version = 0.59;
+
+our ($CONFIG, $SCHEMA);
+my $output_h = *STDOUT;
+
+my ($pipe, $static, $icons, $reconfigure, $stdout_config, $update_config);
+
+my $home_dir =
+ $ENV{HOME}
+ || $ENV{LOGDIR}
+ || (getpwuid($<))[7]
+ || `echo -n ~`;
+
+my $xdg_config_home = "$home_dir/.config";
+
+my $menu_id = "root-menu";
+my $config_dir = "$xdg_config_home/$pkgname";
+my $schema_file = "$config_dir/schema.pl";
+my $config_file = "$config_dir/config.pl";
+my $openbox_conf = "$xdg_config_home/openbox";
+my $menufile = "$openbox_conf/menu.xml";
+my $icons_db = "$config_dir/icons.db";
+
+sub usage {
+ print <<"HELP";
+usage: $0 [options]
+
+Options:
+ -p : (re)generate a pipe menu
+ -s : (re)generate a static menu
+ -o : static menu file (default: ~/.config/openbox/menu.xml)
+ -m : menu id (default: 'root-menu')
+ -r : regenerate the config files
+ -i : use icons in menus
+ -d : regenerate icons.db (with -i)
+ -u : update the config file
+ -R : reconfigure openbox
+
+Help:
+ -h : print this message
+ -v : print the version number
+
+Examples:
+ ** Static menu without icons:
+ $0 -s
+
+ ** Pipe menu with icons:
+ $0 -p -i
+
+ ** Reconfigure openbox:
+ $0 -R
+
+** Config file: $config_file
+** Schema file: $schema_file
+HELP
+ exit 0;
+}
+
+my $config_help = <<"HELP";
+
+|| FILTERING
+ | skip_filename_re : Skip a .desktop file if its name matches the regex.
+ Name is from the last slash to the end. (filename.desktop)
+ Example: qr/^(?:gimp|xterm)\\b/, # skips 'gimp' and 'xterm'
+
+ | skip_entry : Skip a destkop file if the value from a given key matches the regex.
+ Example: [
+ {key => 'Name', re => qr/(?:about|terminal)/i},
+ {key => 'Exec', re => qr/^xterm/},
+ ],
+
+ | substitutions : Substitute, by using a regex, in the values of the desktop files.
+ Example: [
+ {key => 'Exec', re => qr/xterm/, value => 'sakura'},
+ {key => 'Exec', re => qr/\\\\\\\\/, value => '\\\\', global => 1}, # for wine apps
+ ],
+
+
+|| ICON SETTINGS
+ | icon_dirs_first : When looking for icons, look in this directories first,
+ before looking in the directories of the current icon theme.
+ Example: [
+ "\$ENV{HOME}/My icons",
+ ],
+
+ | icon_dirs_second : Look in this directories after looked in the directories of the
+ current icon theme. (Before /usr/share/pixmaps)
+ Example: [
+ "/usr/share/icons/gnome",
+ ],
+
+ | icon_dirs_last : Look in this directories at the very last, after looked in
+ /usr/share/pixmaps, /usr/share/icons/hicolor and some other
+ directories.
+ Example: [
+ "/usr/share/icons/Tango",
+ ],
+
+ | strict_icon_dirs : A true value will make the module to look only inside the directories
+ specified by you in either one of the above three options.
+
+ | gtk_rc_filename : Absolute path to the GTK configuration file.
+ | missing_image : Use this icon for missing icons (default: gtk-missing-image)
+
+
+|| KEYS
+ | name_keys : Valid keys for the item names.
+ Example: ['Name[fr]', 'GenericName[fr]', 'Name'], # french menu
+
+
+|| PATHS
+ | desktop_files_paths : Absolute paths which contains .desktop files.
+ Example: [
+ '/usr/share/applications',
+ "\$ENV{HOME}/.local/share/applications",
+ glob("\$ENV{HOME}/.local/share/applications/wine/Programs/*"),
+ ],
+
+
+|| NOTES
+ | Regular expressions:
+ * use qr/RE/ instead of 'RE'
+ * use qr/RE/i for case insenstive mode
+HELP
+
+if (@ARGV) {
+ while (defined(my $arg = shift @ARGV)) {
+ if ($arg eq '-i') {
+ $icons = 1;
+ }
+ elsif ($arg eq '-S') {
+ $stdout_config = 1;
+ }
+ elsif ($arg eq '-p') {
+ $pipe = 1;
+ }
+ elsif ($arg eq '-r') {
+ $reconfigure = 1;
+ }
+ elsif ($arg eq '-s') {
+ $static = 1;
+ }
+ elsif ($arg eq '-d') {
+ unlink $icons_db;
+ }
+ elsif ($arg eq '-u') {
+ $update_config = 1;
+ }
+ elsif ($arg eq '-v') {
+ print "$pkgname $version\n";
+ exit 0;
+ }
+ elsif ($arg eq '-R') {
+ exec 'openbox', '--reconfigure';
+ }
+ elsif ($arg eq '-o') {
+ $menufile = shift(@ARGV) // die "$0: option '-o' requires an argument!\n";
+ }
+ elsif ($arg eq '-m') {
+ $menu_id = shift(@ARGV) // die "$0: option '-m' requires an argument!\n";
+ }
+ elsif ($arg eq '-h') {
+ usage();
+ }
+ else {
+ die "$0: option `$arg' is invalid!\n";
+ }
+ }
+}
+
+if (not -d $config_dir) {
+ require File::Path;
+ File::Path::make_path($config_dir)
+ or die "Can't create directory '${config_dir}': $!";
+}
+
+my $config_documentation = <<"EOD";
+#!/usr/bin/perl
+
+# $pkgname - configuration file
+# This file will be updated automatically every time when is needed.
+# Any additional comment and/or indentation will be lost.
+
+=for comment
+$config_help
+=cut
+
+EOD
+
+my %CONFIG = (
+ 'Linux::DesktopFiles' => {
+
+ keep_unknown_categories => 1,
+ unknown_category_key => 'other',
+ gtk_rc_filename => "$home_dir/.gtkrc-2.0",
+
+ skip_entry => undef,
+ substitutions => undef,
+ skip_filename_re => undef,
+
+ terminalize => 1,
+ terminalization_format => q{%s -e '%s'},
+
+ desktop_files_paths => ['/usr/share/applications'],
+
+ icon_dirs_first => undef,
+ icon_dirs_second => undef,
+ icon_dirs_last => undef,
+ strict_icon_dirs => undef,
+
+ skip_svg_icons => 1,
+ },
+
+ name_keys => ['Name'],
+ terminal => 'xterm',
+ editor => 'geany',
+ missing_icon => 'gtk-missing-image',
+ VERSION => $version,
+ );
+
+sub dump_configuration {
+ require Data::Dump;
+ open my $config_fh, '>', $config_file
+ or die "Can't open file '${config_file}' for write: $!";
+ my $dumped_config = q{our $CONFIG = } . Data::Dump::dump(\%CONFIG);
+ print $config_fh $config_documentation, $dumped_config;
+ close $config_fh;
+}
+
+if (not -e $config_file or $reconfigure) {
+ dump_configuration();
+}
+
+if (not -e $schema_file) {
+ if (-e (my $etc_schema_file = "/etc/xdg/$pkgname/schema.pl")) {
+ require File::Copy;
+ File::Copy::copy($etc_schema_file, $schema_file)
+ or die "$0: can't copy file `$etc_schema_file' to `$schema_file': $!\n";
+ }
+ else {
+ die "$0: schema file `$schema_file' does not exists!\n";
+ }
+}
+
+require $schema_file; # Load the configuration files
+
+# Remove user's defined values
+my @valid_keys = grep exists $CONFIG{$_}, keys $CONFIG;
+@CONFIG{@valid_keys} = @{$CONFIG}{@valid_keys};
+
+# Keep user's defined values
+#@CONFIG{keys %{$CONFIG}} = values %{$CONFIG};
+
+if ($CONFIG{VERSION} != $version) {
+ $update_config = 1;
+ $CONFIG{VERSION} = $version;
+}
+
+if ($icons && !$pipe) {
+
+ # Performance improvement
+ # XXX: don't do this in production code!
+ @INC{
+ qw(
+ strict.pm
+ warnings.pm
+ Tie/Hash.pm
+ Carp.pm
+ Exporter.pm
+ warnings/register.pm
+ )
+ } = ();
+
+ *{'warnings::warnif'} = sub { };
+}
+
+my $desk_obj = Linux::DesktopFiles->new(
+ %{$CONFIG{'Linux::DesktopFiles'}},
+
+ home_dir => $home_dir,
+
+ categories => [map $_->{cat}[0], grep exists $_->{cat}, @$SCHEMA],
+ keys_to_keep => [@{$CONFIG{name_keys}}, 'Exec', $icons ? 'Icon' : ()],
+
+ $icons
+ ? (
+ abs_icon_paths => 1,
+ icon_db_filename => $icons_db,
+ )
+ : (),
+
+ terminal => $CONFIG{terminal},
+ keep_empty_categories => 0,
+ case_insensitive_cats => 1,
+ );
+
+if ($pipe or $static) {
+ my $menu_backup = $menufile . '.bak';
+ if (not -e $menu_backup and -e $menufile) {
+ require File::Copy;
+ File::Copy::copy($menufile, $menu_backup);
+ }
+
+ if ($static) {
+ open $output_h, '>', $menufile
+ or die "Can't open file '${menufile}' for write: $!";
+ }
+ elsif ($pipe) {
+ if (not -d $openbox_conf) {
+ require File::Path;
+ File::Path::make_path($openbox_conf)
+ or die "Can't create directory '${openbox_conf}': $!";
+ }
+
+ require Cwd;
+ my $exec_name = Cwd::abs_path($0) . ($icons ? q{ -i} : q{});
+
+ if (not -x $exec_name) {
+ $exec_name = "$^X $exec_name";
+ }
+
+ open my $fh, '>', $menufile
+ or die "Can't open file '${menufile}' for write: $!";
+ print $fh <<"PIPE_MENU_HEADER";
+
+
+
+
+PIPE_MENU_HEADER
+ close $fh;
+
+ print <<'EOT';
+** The pipe menu has been successfully generated!
+EOT
+
+ exec 'openbox', '--reconfigure';
+ }
+}
+
+my $generated_menu = $static
+ ? <<"STATIC_MENU_HEADER"
+
+
+ \n]
+ : qq[\n];
+
+dump_configuration() if $update_config;
diff --git a/x11/wm/openbox/files/openbox-3.5.0-title-matching.patch b/x11/wm/openbox/files/openbox-3.5.0-title-matching.patch
new file mode 100755
index 0000000000..fdfe28af02
--- /dev/null
+++ b/x11/wm/openbox/files/openbox-3.5.0-title-matching.patch
@@ -0,0 +1,11 @@
+--- openbox-3.5.0/openbox/client.c 2011-08-01 22:14:58.000000000 +0200
++++ openbox-3.5.0/openbox/client.c 2011-10-22 14:59:56.000000000 +0200
+@@ -883,7 +883,7 @@
+ !g_pattern_match(app->role,
+ strlen(self->role), self->role, NULL))
+ match = FALSE;
+- else if (app->title &&
++ else if (app->title && self->title &&
+ !g_pattern_match(app->title,
+ strlen(self->title), self->title, NULL))
+ match = FALSE;
diff --git a/x11/wm/openbox/files/openbox-3.5.0-which-2.20.patch b/x11/wm/openbox/files/openbox-3.5.0-which-2.20.patch
new file mode 100755
index 0000000000..35d6b59065
--- /dev/null
+++ b/x11/wm/openbox/files/openbox-3.5.0-which-2.20.patch
@@ -0,0 +1,11 @@
+--- openbox-3.5.0/data/autostart/autostart.in~ 2011-08-02 15:50:01.963531310 +0000
++++ openbox-3.5.0/data/autostart/autostart.in 2011-08-02 15:51:57.277879458 +0000
+@@ -8,7 +8,7 @@
+ #
+ #if test -x @libexecdir@/gnome-settings-daemon >/dev/null; then
+ # @libexecdir@/gnome-settings-daemon &
+-#elif which gnome-settings-daemon >/dev/null; then
++#elif which gnome-settings-daemon >/dev/null 2>&1; then
+ # gnome-settings-daemon &
+ #fi
+
diff --git a/x11/wm/openbox/files/openbox-default-theme.patch b/x11/wm/openbox/files/openbox-default-theme.patch
new file mode 100755
index 0000000000..7cb1e5a1f2
--- /dev/null
+++ b/x11/wm/openbox/files/openbox-default-theme.patch
@@ -0,0 +1,11 @@
+--- data/rc.xml.theme 2011-08-01 17:03:47.000000000 +0200
++++ data/rc.xml 2011-08-01 17:05:09.000000000 +0200
+@@ -48,7 +48,7 @@
+
+
+
+- Clearlooks
++ Onyx
+ NLIMC
+
+
+
+ openbox-3.5.0-which-2.20.patch
+ openbox-3.5.0-title-matching.patch
+ openbox-default-theme.patch
+
+
+
+
+ openbox
+
+ cairo
+ glib2
+ pango
+ libSM
+ libXft
+ libICE
+ libX11
+ imlib2
+ libXext
+ libxml2
+ librsvg
+ libXrandr
+ libXcursor
+ libXinerama
+ startup-notification
+
+
+ /usr/bin
+ /usr/libexec
+ /etc/xdg/openbox
+ /etc/xdg/obmenu-generator
+ /usr/lib
+ /usr/share/openbox
+ /usr/share/themes
+ /usr/share/xsessions
+ /usr/share/gnome
+ /usr/share/gnome-session
+ /usr/share/applications
+ /usr/share/pixmaps
+ /usr/share/locale
+ /usr/share/man
+ /usr/share/doc
+
+
+ obmenu-generator
+ schema.pl
+ menu.xml
+ autostart
+ kedicik.png
+
+
+
+
+ openbox-devel
+ Development headers for openbox
+
+ openbox
+ pango-devel
+ glib2-devel
+ libxml2-devel
+ libXft-devel
+ imlib2-devel
+ librsvg-devel
+
+
+ /usr/include
+ /usr/lib/pkgconfig
+
+
+
+
+
+ 2015-07-24
+ 3.6.1
+ First release
+ Ayhan Yalçınsoy
+ ayhanyalcinsoy@pisilinux.org
+
+
+
diff --git a/x11/wm/openbox/translations.xml b/x11/wm/openbox/translations.xml
new file mode 100644
index 0000000000..479f9cd307
--- /dev/null
+++ b/x11/wm/openbox/translations.xml
@@ -0,0 +1,13 @@
+
+
+
+ openbox
+ Standartlara uygun, hızlı, hafif bir pencere yöneticisi
+ Openbox, X11 pencere sistemi için pencere yöneticisidir.
+
+
+
+ openbox-devel
+ Openbox için geliştirme başlıkları
+
+