diff --git a/CMakeLists.txt b/CMakeLists.txt
index b497cedb..d446c2b3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/")
 add_definitions("-Wall -Wextra -Wno-unused-parameter")
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMake)
 
+add_subdirectory(swaybg swaybg)
+
 if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
     execute_process(
         COMMAND git describe --always
@@ -40,9 +42,6 @@ find_package(WLC REQUIRED)
 find_package(A2X REQUIRED)
 find_package(PCRE REQUIRED)
 find_package(JsonC REQUIRED)
-FIND_PACKAGE(Wayland REQUIRED)
-FIND_PACKAGE(Cairo REQUIRED)
-FIND_PACKAGE(Pango REQUIRED)
 
 FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c)
 
diff --git a/swaybg/CMakeLists.txt b/swaybg/CMakeLists.txt
new file mode 100644
index 00000000..89d8afde
--- /dev/null
+++ b/swaybg/CMakeLists.txt
@@ -0,0 +1,27 @@
+project (swaybg)
+
+find_package(Wayland REQUIRED)
+find_package(Cairo REQUIRED)
+find_package(Pango REQUIRED)
+
+include(Wayland)
+WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "xdg-shell.xml" xdg-shell)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/")
+include_directories(
+  ${CMAKE_CURRENT_SOURCE_DIR}/include
+  ${WAYLAND_CLIENT_INCLUDE_DIR}
+  ${CAIRO_INCLUDE_DIRS}
+  ${PANGO_INCLUDE_DIRS}
+)
+
+add_executable(swaybg
+	main.c
+)
+
+TARGET_LINK_LIBRARIES(swaybg ${WAYLAND_CLIENT_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES})
+
+INSTALL(
+  TARGETS swaybg
+  RUNTIME DESTINATION bin
+)
diff --git a/swaybg/main.c b/swaybg/main.c
new file mode 100644
index 00000000..4a8ef522
--- /dev/null
+++ b/swaybg/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(int argc, char **argv) {
+	printf("Hello world");
+	return 0;
+}