Skip to content
This repository has been archived by the owner on Nov 18, 2018. It is now read-only.

Commit

Permalink
Separate notifications from the shell.
Browse files Browse the repository at this point in the history
  • Loading branch information
plfiorini committed Oct 30, 2012
0 parents commit 27f1d14
Show file tree
Hide file tree
Showing 98 changed files with 7,100 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build/
*.user
6 changes: 6 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
This is Green Island, the Wayland compositor for the Hawaii desktop.

Authors
=======

Pier Luigi Fiorini <[email protected]>
82 changes: 82 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
project(GreenIsland)

cmake_minimum_required(VERSION 2.8.7)

# Enable automoc and include current directory
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Set version
set(GREENISLAND_VERSION_MAJOR 0)
set(GREENISLAND_VERSION_MINOR 0)
set(GREENISLAND_VERSION_PATCH 0)
set(GREENISLAND_VERSION_STRING "${GREENISLAND_VERSION_MAJOR}.${GREENISLAND_VERSION_MINOR}.${GREENISLAND_VERSION_PATCH}")

# Installation directories
include(HawaiiInstallDirs)

# Make CPack available to easy generate binary packages
include(CPack)

# Add custom uninstall target
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")

# Build flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -Wall -std=c++0x")

# Assume release build by default
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "" FORCE)
endif()

# Disable debug output for release builds
if(CMAKE_BUILD_TYPE MATCHES "^[Rr]elease$")
add_definitions(-DQT_NO_DEBUG_OUTPUT)
endif()

# Find Qt5
find_package(Qt5DBus REQUIRED)
if(NOT Qt5DBus_FOUND)
message(FATAL_ERROR "Qt5DBus module is required!")
endif()
find_package(Qt5Gui REQUIRED)
if(NOT Qt5Gui_FOUND)
message(FATAL_ERROR "Qt5Gui module is required!")
endif()
find_package(Qt5Widgets REQUIRED)
if(NOT Qt5Widgets_FOUND)
message(FATAL_ERROR "Qt5Widgets module is required!")
endif()
find_package(Qt5Qml REQUIRED)
if(NOT Qt5Qml_FOUND)
message(FATAL_ERROR "Qt5Qml module is required!")
endif()
find_package(Qt5Quick REQUIRED)
if(NOT Qt5Quick_FOUND)
message(FATAL_ERROR "Qt5Quick module is required!")
endif()
find_package(Qt5Compositor REQUIRED)
if(NOT Qt5Compositor_FOUND)
message(FATAL_ERROR "Qt5Compositor module is required!")
endif()

# Find Vibe libraries
find_package(VibeCore REQUIRED)
if(NOT VibeCore_FOUND)
message(FATAL_ERROR "VibeCore module is required!")
endif()

# Find pkg-config
find_package(PkgConfig "0.22" REQUIRED)

# Find GLESv2 library
pkg_check_modules(GLESV2 glesv2 REQUIRED)

# Subdirectories
add_subdirectory(data)
add_subdirectory(headers)
add_subdirectory(src)
674 changes: 674 additions & 0 deletions COPYING

Large diffs are not rendered by default.

502 changes: 502 additions & 0 deletions COPYING.LESSER

Large diffs are not rendered by default.

100 changes: 100 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
Green Island
============

This is Green Island, the Wayland compositor for the Hawaii desktop.

The name comes from Kure Atoll, Hawaii, see here:
http://en.wikipedia.org/wiki/Green_Island,_Hawaii

It's a simple Qt-based Wayland compositor that can be extended by
specific shells for different kind of workflows. At the moment
the focus is on the desktop shell, but in the future a tablet
version is expected to see the light of the day.

Dependencies
============

In order to build and install Green Island, you will need a complete
and up to date Wayland, Qt 5 and Vibe development environment.

The Wayland site has some information to bring it up:

http://wayland.freedesktop.org/building.html

More information about building Qt 5 can be found here:

http://qt-project.org/wiki/Building-Qt-5-from-Git

Vibe and other Hawaii components can be easily built with our
Continuous Integration tool, read the instructions here:

https://github.com/hawaii-desktop/hawaii

The Continuous Integration tool builds the whole desktop.

Build
=====

Building Green Island is a piece of cake.

Assuming you are in the source directory, just create a build directory
and run cmake:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/system ..

To do a debug build the last command can be:

cmake -DCMAKE_INSTALL_PREFIX=/system -DCMAKE_BUILD_TYPE=Debug ..

To do a release build instead it can be:

cmake -DCMAKE_INSTALL_PREFIX=/system -DCMAKE_BUILD_TYPE=Release ..

The CMAKE_BUILD_TYPE parameter allows the following values:

Debug: debug build
Release: release build
RelWithDebInfo: release build with debugging information

Installation
============

The installation is easy-peasy, it's just a matter of typing:

sudo make install

from the build directory.

Run as a X window
=================

You can run Green Island in a X11 window for development and debugging purpose.
Remember to set the environment variable before running it:

```sh
export XDG_RUNTIME_DIR=/tmp
greenisland -platform xcb
```

Run from KMS
============

On production systems you can run Green Island under KMS as root:

```sh
export XDG_RUNTIME_DIR=/tmp
export QT_KMS_TTYKBD=1
greenisland -platform kms -plugin EvdevMouse -plugin EvdevKeyboard -plugin EvdevTouch
```

**Remember:** at the moment Green Island under KMS must be run as the root user.

Run on RaspberryPi
==================

```sh
export XDG_RUNTIME_DIR=/tmp
greenisland -platform eglfsrpi
```
18 changes: 18 additions & 0 deletions cmake_uninstall.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")

file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
if(EXISTS "$ENV{DESTDIR}${file}")
exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT VARIABLE rm_out RETURN_VALUE rm_retval)
if(NOT "${rm_retval}" STREQUAL 0)
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
endif(NOT "${rm_retval}" STREQUAL 0)
else(EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
endif(EXISTS "$ENV{DESTDIR}${file}")
endforeach(file ${files})
1 change: 1 addition & 0 deletions data/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add_subdirectory(settings)
5 changes: 5 additions & 0 deletions data/settings/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
set(FILES
org.hawaii.greenisland.settings
)

install(FILES ${FILES} DESTINATION ${CMAKE_INSTALL_SETTINGSDIR})
23 changes: 23 additions & 0 deletions data/settings/org.hawaii.greenisland.settings
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://www.maui-project.org/standards/settings/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.maui-project.org/standards/settings/1.0
http://www.maui-project.org/standards/settings/1.0/settings.xsd">
<schema name="org.hawaii.greenisland.desktop"/>
<group name="launcher">
<key name="icon-size" type="UInt">
<summary>Launcher Icon Size</summary>
<description>Size of Launcher icons.</description>
<default>64</default>
</key>
<key name="orientation" type="Enum">
<summary>Launcher Orientation</summary>
<description>Determines the Launcher orientation. Possible values are "horizontal" or "vertical".</description>
<default>horizontal</default>
<choices name="LauncherOrientation">
<choice name="horizontal"/>
<choice name="vertical"/>
</choices>
</key>
</group>
</settings>
1 change: 1 addition & 0 deletions headers/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add_subdirectory(GreenIsland)
12 changes: 12 additions & 0 deletions headers/GreenIsland/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
set(HEADERS
VIndicator
VIndicatorPlugin
VShell
VShellPlugin
VGreenIslandGlobal
)

install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/GreenIsland)

# Create the cmakedirs.h header file
configure_file(cmakedirs.h.in ${CMAKE_CURRENT_BINARY_DIR}/cmakedirs.h)
1 change: 1 addition & 0 deletions headers/GreenIsland/VGreenIslandGlobal
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "vgreenislandglobal.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/VIndicator
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "vindicator.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/VIndicatorPlugin
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "vindicatorplugin.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/VShell
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "vshell.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/VShellPlugin
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "vshellplugin.h"
54 changes: 54 additions & 0 deletions headers/GreenIsland/cmakedirs.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/****************************************************************************
* This file is part of Desktop Compositor.
*
* Copyright (c) 2012 Pier Luigi Fiorini
*
* Author(s):
* Pier Luigi Fiorini <[email protected]>
*
* $BEGIN_LICENSE:GPL$
*
* Desktop Compositor 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.
*
* Desktop Compositor 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 Desktop Compositor. If not, see <http://www.gnu.org/licenses/>.
*
* $END_LICENSE$
***************************************************************************/

#ifndef CMAKEDIRS_H
#define CMAKEDIRS_H

// GNUInstallDirs
#define INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
#define INSTALL_BINDIR "@CMAKE_INSTALL_FULL_BINDIR@"
#define INSTALL_SBINDIR "@CMAKE_INSTALL_FULL_SBINDIR@"
#define INSTALL_LIBEXECDIR "@CMAKE_INSTALL_FULL_LIBEXECDIR@"
#define INSTALL_SYSCONFDIR "@CMAKE_INSTALL_FULL_SYSCONFDIR@"
#define INSTALL_SHAREDSTATEDIR "@CMAKE_INSTALL_FULL_SHAREDSTATEDIR@"
#define INSTALL_LOCALSTATEDIR "@CMAKE_INSTALL_FULL_LOCALSTATEDIR@"
#define INSTALL_LIBDIR "@CMAKE_INSTALL_FULL_LIBDIR@"
#define INSTALL_INCLUDEDIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@"
#define INSTALL_OLDINCLUDEDIR "@CMAKE_INSTALL_FULL_OLDINCLUDEDIR@"
#define INSTALL_DATAROOTDIR "@CMAKE_INSTALL_FULL_DATAROOTDIR@"
#define INSTALL_DATADIR "@CMAKE_INSTALL_FULL_DATADIR@"
#define INSTALL_INFODIR "@CMAKE_INSTALL_FULL_INFODIR@"
#define INSTALL_LOCALEDIR "@CMAKE_INSTALL_FULL_LOCALEDIR@"
#define INSTALL_MANDIR "@CMAKE_INSTALL_FULL_MANDIR@"
#define INSTALL_DOCDIR "@CMAKE_INSTALL_FULL_DOCDIR@"

// HawaiiInstallDirs
#define INSTALL_PLUGINSDIR "@CMAKE_INSTALL_FULL_PLUGINSDIR@"
#define INSTALL_IMPORTSDIR "@CMAKE_INSTALL_FULL_IMPORTSDIR@"
#define INSTALL_APPLICATIONSDIR "@CMAKE_INSTALL_FULL_APPLICATIONSDIR@"
#define INSTALL_SETTINGSDIR "@CMAKE_INSTALL_FULL_SETTINGSDIR@"

#endif // CMAKEDIRS_H
1 change: 1 addition & 0 deletions headers/GreenIsland/vgreenislandglobal.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "../../src/libgreenisland/vgreenislandglobal.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/vindicator.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "../../src/libgreenisland/vindicator.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/vindicatorplugin.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "../../src/libgreenisland/vindicatorplugin.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/vshell.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "../../src/libgreenisland/vshell.h"
1 change: 1 addition & 0 deletions headers/GreenIsland/vshellplugin.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "../../src/libgreenisland/vshellplugin.h"
4 changes: 4 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
add_subdirectory(libgreenisland)
add_subdirectory(greenisland)
add_subdirectory(plugins)
add_subdirectory(imports)
31 changes: 31 additions & 0 deletions src/greenisland/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
include_directories(
${Qt5Core_PRIVATE_INCLUDE_DIRS}
${Qt5Gui_PRIVATE_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Compositor_INCLUDE_DIRS}
${VibeCore_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/headers
${CMAKE_SOURCE_DIR}/headers/GreenIsland
${CMAKE_BINARY_DIR}/headers/GreenIsland
)

add_definitions(${Qt5Compositor_DEFINITIONS})

set(SOURCES
main.cpp
)

add_executable(greenisland ${SOURCES})
set_target_properties(greenisland PROPERTIES
COMPILE_FLAGS ${Qt5Compositor_EXECUTABLE_COMPILE_FLAGS}
LINK_FLAGS -L${GLESV2_LIBDIR}
)
target_link_libraries(greenisland
${Qt5Widgets_LIBRARIES}
${Qt5Compositor_LIBRARIES}
${VibeCore_LIBRARIES}
${GLESV2_LIBRARIES}
GreenIsland
)

install(TARGETS greenisland DESTINATION ${CMAKE_INSTALL_BINDIR})
Loading

0 comments on commit 27f1d14

Please sign in to comment.