├── config.h.in ├── themes ├── transpy │ ├── bg.png │ ├── blue_l.png │ ├── blue_r.png │ ├── blue_t.png │ ├── black_l.png │ ├── black_r.png │ ├── black_t.png │ ├── lblack_l.png │ ├── lblack_r.png │ ├── lblack_t.png │ ├── lblue_l.png │ ├── lblue_r.png │ ├── lblue_t.png │ ├── default_icon.png │ └── theme ├── curvy-blue │ ├── ds.png │ ├── tile.png │ ├── ds-right.png │ ├── tb-right.png │ ├── default_icon.png │ ├── tb-left-idle.png │ ├── tb-left-active.png │ ├── tb-tile-active.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── curvy-green │ ├── ds.png │ ├── tile.png │ ├── ds-right.png │ ├── tb-right.png │ ├── default_icon.png │ ├── tb-left-idle.png │ ├── tb-left-active.png │ ├── tb-tile-active.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── curvy-pink │ ├── ds.png │ ├── tile.png │ ├── ds-right.png │ ├── tb-right.png │ ├── default_icon.png │ ├── tb-left-idle.png │ ├── tb-left-active.png │ ├── tb-tile-active.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── noir │ ├── tile_img.png │ ├── decor_test.png │ ├── clock_left_img.png │ ├── clock_tile_img.png │ ├── default_icon.png │ ├── separator_img.png │ ├── clock_right_img.png │ ├── ds_separator_img.png │ ├── tb_left_idle_img.png │ ├── tb_tile_idle_img.png │ ├── ds_left_pressed_img.png │ ├── tb_left_pressed_img.png │ ├── tb_right_idle_img.png │ ├── tb_tile_pressed_img.png │ ├── ds_leftright_idle_img.png │ ├── ds_right_pressed_img.png │ ├── tb_right_pressed_img.png │ ├── ds_left_corner_idle_img.png │ ├── ds_right_corner_idle_img.png │ ├── ds_left_corner_pressed_img.png │ ├── ds_right_corner_pressed_img.png │ └── theme ├── striped │ ├── empty.png │ ├── tile.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-hover.png │ ├── tb-tile-hover.png │ ├── tb-left-active.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-left-active-hover.png │ ├── tb-right-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── flora-blue │ ├── tile.png │ ├── default_icon.png │ ├── ds-left-idle.png │ ├── ds-right-idle.png │ ├── ds-tile-idle.png │ ├── tb-left-hover.png │ ├── tb-left-idle.png │ ├── tb-right-idle.png │ ├── tb-tile-hover.png │ ├── tb-tile-idle.png │ ├── ds-left-active.png │ ├── ds-right-active.png │ ├── ds-tile-active.png │ ├── tb-left-active.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── flora-green │ ├── tile.png │ ├── default_icon.png │ ├── ds-left-idle.png │ ├── ds-tile-idle.png │ ├── tb-left-idle.png │ ├── tb-tile-idle.png │ ├── ds-left-active.png │ ├── ds-right-idle.png │ ├── ds-tile-active.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-hover.png │ ├── tb-right-idle.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── ds-right-active.png │ ├── tb-right-active.png │ ├── tb-left-active-hover.png │ ├── tb-right-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── flora-pink │ ├── tile.png │ ├── default_icon.png │ ├── ds-left-idle.png │ ├── ds-right-idle.png │ ├── ds-tile-idle.png │ ├── tb-left-hover.png │ ├── tb-left-idle.png │ ├── tb-right-idle.png │ ├── tb-tile-hover.png │ ├── tb-tile-idle.png │ ├── ds-left-active.png │ ├── ds-right-active.png │ ├── ds-tile-active.png │ ├── tb-left-active.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── native │ ├── tile_img.png │ ├── decor_test.png │ ├── default_icon.png │ ├── clock_left_img.png │ ├── clock_tile_img.png │ ├── separator_img.png │ ├── clock_right_img.png │ ├── ds_left_idle_img.png │ ├── ds_right_idle_img.png │ ├── ds_separator_img.png │ ├── tb_left_idle_img.png │ ├── tb_right_idle_img.png │ ├── tb_tile_idle_img.png │ ├── ds_left_pressed_img.png │ ├── tb_left_pressed_img.png │ ├── tb_tile_pressed_img.png │ ├── ds_right_pressed_img.png │ ├── tb_right_pressed_img.png │ ├── ds_left_corner_idle_img.png │ ├── ds_right_corner_idle_img.png │ ├── ds_left_corner_pressed_img.png │ ├── ds_right_corner_pressed_img.png │ └── theme ├── xsocam │ ├── tile_img.png │ ├── default_icon.png │ ├── clock_left_img.png │ ├── clock_tile_img.png │ ├── separator_img.png │ ├── clock_right_img.png │ ├── ds_separator_img.png │ ├── tb_left_idle_img.png │ ├── tb_right_idle_img.png │ ├── tb_tile_idle_img.png │ ├── ds_left_pressed_img.png │ ├── tb_left_pressed_img.png │ ├── tb_tile_pressed_img.png │ ├── ds_leftright_idle_img.png │ ├── ds_right_pressed_img.png │ ├── tb_right_pressed_img.png │ ├── ds_left_corner_idle_img.png │ ├── ds_right_corner_idle_img.png │ ├── ds_left_corner_pressed_img.png │ ├── ds_right_corner_pressed_img.png │ └── theme ├── alduin-glossy │ ├── tile.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── launchbar-arrow.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── alduin-smooth │ ├── tile.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── launchbar-arrow.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── xsocam-dark │ ├── tile_img.png │ ├── default_icon.png │ ├── clock_left_img.png │ ├── clock_tile_img.png │ ├── separator_img.png │ ├── clock_right_img.png │ ├── ds_separator_img.png │ ├── tb_left_idle_img.png │ ├── tb_right_idle_img.png │ ├── tb_tile_idle_img.png │ ├── ds_left_pressed_img.png │ ├── tb_left_pressed_img.png │ ├── tb_tile_pressed_img.png │ ├── ds_leftright_idle_img.png │ ├── ds_right_pressed_img.png │ ├── tb_right_pressed_img.png │ ├── ds_left_corner_idle_img.png │ ├── ds_right_corner_idle_img.png │ ├── ds_left_corner_pressed_img.png │ ├── ds_right_corner_pressed_img.png │ └── theme ├── auriel-blue-opaque │ ├── tile.png │ ├── separator.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── auriel-blue-smooth │ ├── tile.png │ ├── separator.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── auriel-green-opaque │ ├── tile.png │ ├── separator.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-right-active.png │ ├── tb-left-active-hover.png │ ├── tb-right-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── auriel-green-smooth │ ├── tile.png │ ├── separator.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-right-active.png │ ├── tb-left-active-hover.png │ ├── tb-right-active-hover.png │ ├── tb-tile-active-hover.png │ └── theme ├── auriel-pink-opaque │ ├── tile.png │ ├── separator.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme └── auriel-pink-smooth │ ├── tile.png │ ├── separator.png │ ├── tb-lr-idle.png │ ├── default_icon.png │ ├── tb-left-active.png │ ├── tb-left-hover.png │ ├── tb-right-active.png │ ├── tb-right-hover.png │ ├── tb-tile-active.png │ ├── tb-tile-hover.png │ ├── tb-left-active-hover.png │ ├── tb-tile-active-hover.png │ ├── tb-right-active-hover.png │ └── theme ├── docs ├── themeref │ ├── clock.png │ ├── systray.png │ ├── taskbar.png │ ├── desktops.png │ ├── launchbar.png │ ├── separator.png │ ├── background.png │ ├── clock_center.png │ ├── clock_left.png │ ├── clock_right.png │ ├── taskbar_left.png │ ├── desktops_left.png │ ├── desktops_right.png │ ├── taskbar_center.png │ ├── taskbar_right.png │ ├── desktops_center.png │ ├── stretched_example.png │ ├── taskbar_separator.png │ ├── widget_separator.png │ ├── desktops_separator.png │ ├── desktops_left_corner.png │ ├── desktops_right_corner.png │ ├── stretched_no_center_offsets.png │ ├── stretched_center_offsets_5_5.png │ ├── stretched_center_offsets_m5_0.png │ ├── stretched_overlap_center_offsets_0_5.png │ ├── stretched_overlap_no_center_offsets.png │ ├── Makefile │ └── data │ │ ├── xhtml11-quirks.css │ │ └── asciidoc-xhtml11.js └── rcref │ ├── Makefile │ ├── data │ ├── xhtml11-quirks.css │ └── asciidoc-xhtml11.js │ └── index.txt ├── xdg.h ├── settings.h ├── extra ├── py │ └── setup.py └── bmpanel2.vim ├── WMs.txt ├── man ├── asciidoc.conf ├── CMakeLists.txt └── bmpanel2.txt ├── widget-interface.c ├── CMake └── InstallBmpanel2Cfg.cmake.in ├── strbuf.c ├── aur ├── bmpanel2 │ └── PKGBUILD └── bmpanel2-git │ └── PKGBUILD ├── settings.c ├── render-normal.c ├── COPYING ├── readme.md ├── widget-empty.c ├── message.c ├── widget-decor.c ├── INSTALL ├── args.h ├── xdg.c ├── image-cache.c ├── changes.txt ├── CMakeLists.txt ├── array.h ├── config-parser.h ├── render-pseudo.c ├── xutil.h └── event-dispatchers.c /config.h.in: -------------------------------------------------------------------------------- 1 | #cmakedefine HAVE_XINERAMA 1 2 | #cmakedefine HAVE_XRANDR 1 3 | -------------------------------------------------------------------------------- /themes/transpy/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/bg.png -------------------------------------------------------------------------------- /docs/themeref/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/clock.png -------------------------------------------------------------------------------- /docs/themeref/systray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/systray.png -------------------------------------------------------------------------------- /docs/themeref/taskbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/taskbar.png -------------------------------------------------------------------------------- /themes/curvy-blue/ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/ds.png -------------------------------------------------------------------------------- /themes/curvy-green/ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/ds.png -------------------------------------------------------------------------------- /themes/curvy-pink/ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/ds.png -------------------------------------------------------------------------------- /themes/noir/tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tile_img.png -------------------------------------------------------------------------------- /themes/striped/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/empty.png -------------------------------------------------------------------------------- /themes/striped/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tile.png -------------------------------------------------------------------------------- /themes/transpy/blue_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/blue_l.png -------------------------------------------------------------------------------- /themes/transpy/blue_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/blue_r.png -------------------------------------------------------------------------------- /themes/transpy/blue_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/blue_t.png -------------------------------------------------------------------------------- /docs/themeref/desktops.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops.png -------------------------------------------------------------------------------- /docs/themeref/launchbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/launchbar.png -------------------------------------------------------------------------------- /docs/themeref/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/separator.png -------------------------------------------------------------------------------- /themes/curvy-blue/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tile.png -------------------------------------------------------------------------------- /themes/curvy-green/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tile.png -------------------------------------------------------------------------------- /themes/curvy-pink/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tile.png -------------------------------------------------------------------------------- /themes/flora-blue/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tile.png -------------------------------------------------------------------------------- /themes/flora-green/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tile.png -------------------------------------------------------------------------------- /themes/flora-pink/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tile.png -------------------------------------------------------------------------------- /themes/native/tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tile_img.png -------------------------------------------------------------------------------- /themes/noir/decor_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/decor_test.png -------------------------------------------------------------------------------- /themes/transpy/black_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/black_l.png -------------------------------------------------------------------------------- /themes/transpy/black_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/black_r.png -------------------------------------------------------------------------------- /themes/transpy/black_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/black_t.png -------------------------------------------------------------------------------- /themes/transpy/lblack_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/lblack_l.png -------------------------------------------------------------------------------- /themes/transpy/lblack_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/lblack_r.png -------------------------------------------------------------------------------- /themes/transpy/lblack_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/lblack_t.png -------------------------------------------------------------------------------- /themes/transpy/lblue_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/lblue_l.png -------------------------------------------------------------------------------- /themes/transpy/lblue_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/lblue_r.png -------------------------------------------------------------------------------- /themes/transpy/lblue_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/lblue_t.png -------------------------------------------------------------------------------- /themes/xsocam/tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tile_img.png -------------------------------------------------------------------------------- /docs/themeref/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/background.png -------------------------------------------------------------------------------- /docs/themeref/clock_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/clock_center.png -------------------------------------------------------------------------------- /docs/themeref/clock_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/clock_left.png -------------------------------------------------------------------------------- /docs/themeref/clock_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/clock_right.png -------------------------------------------------------------------------------- /docs/themeref/taskbar_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/taskbar_left.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tile.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tile.png -------------------------------------------------------------------------------- /themes/curvy-blue/ds-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/ds-right.png -------------------------------------------------------------------------------- /themes/curvy-blue/tb-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tb-right.png -------------------------------------------------------------------------------- /themes/curvy-pink/ds-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/ds-right.png -------------------------------------------------------------------------------- /themes/curvy-pink/tb-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tb-right.png -------------------------------------------------------------------------------- /themes/native/decor_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/decor_test.png -------------------------------------------------------------------------------- /themes/native/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/default_icon.png -------------------------------------------------------------------------------- /themes/noir/clock_left_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/clock_left_img.png -------------------------------------------------------------------------------- /themes/noir/clock_tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/clock_tile_img.png -------------------------------------------------------------------------------- /themes/noir/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/default_icon.png -------------------------------------------------------------------------------- /themes/noir/separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/separator_img.png -------------------------------------------------------------------------------- /themes/striped/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/xsocam/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/default_icon.png -------------------------------------------------------------------------------- /docs/themeref/desktops_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops_left.png -------------------------------------------------------------------------------- /docs/themeref/desktops_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops_right.png -------------------------------------------------------------------------------- /docs/themeref/taskbar_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/taskbar_center.png -------------------------------------------------------------------------------- /docs/themeref/taskbar_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/taskbar_right.png -------------------------------------------------------------------------------- /themes/curvy-green/ds-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/ds-right.png -------------------------------------------------------------------------------- /themes/curvy-green/tb-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tb-right.png -------------------------------------------------------------------------------- /themes/native/clock_left_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/clock_left_img.png -------------------------------------------------------------------------------- /themes/native/clock_tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/clock_tile_img.png -------------------------------------------------------------------------------- /themes/native/separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/separator_img.png -------------------------------------------------------------------------------- /themes/noir/clock_right_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/clock_right_img.png -------------------------------------------------------------------------------- /themes/noir/ds_separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_separator_img.png -------------------------------------------------------------------------------- /themes/noir/tb_left_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tb_left_idle_img.png -------------------------------------------------------------------------------- /themes/noir/tb_tile_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tb_tile_idle_img.png -------------------------------------------------------------------------------- /themes/striped/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/default_icon.png -------------------------------------------------------------------------------- /themes/striped/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-left-hover.png -------------------------------------------------------------------------------- /themes/striped/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/transpy/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/transpy/default_icon.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tile_img.png -------------------------------------------------------------------------------- /themes/xsocam/clock_left_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/clock_left_img.png -------------------------------------------------------------------------------- /themes/xsocam/clock_tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/clock_tile_img.png -------------------------------------------------------------------------------- /themes/xsocam/separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/separator_img.png -------------------------------------------------------------------------------- /docs/themeref/desktops_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops_center.png -------------------------------------------------------------------------------- /docs/themeref/stretched_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/stretched_example.png -------------------------------------------------------------------------------- /docs/themeref/taskbar_separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/taskbar_separator.png -------------------------------------------------------------------------------- /docs/themeref/widget_separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/widget_separator.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tile.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tile.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tile.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tile.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tile.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tile.png -------------------------------------------------------------------------------- /themes/curvy-blue/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/default_icon.png -------------------------------------------------------------------------------- /themes/curvy-blue/tb-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tb-left-idle.png -------------------------------------------------------------------------------- /themes/curvy-green/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/default_icon.png -------------------------------------------------------------------------------- /themes/curvy-green/tb-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tb-left-idle.png -------------------------------------------------------------------------------- /themes/curvy-pink/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/default_icon.png -------------------------------------------------------------------------------- /themes/curvy-pink/tb-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tb-left-idle.png -------------------------------------------------------------------------------- /themes/flora-blue/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/default_icon.png -------------------------------------------------------------------------------- /themes/flora-blue/ds-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/ds-left-idle.png -------------------------------------------------------------------------------- /themes/flora-blue/ds-right-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/ds-right-idle.png -------------------------------------------------------------------------------- /themes/flora-blue/ds-tile-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/ds-tile-idle.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-left-hover.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-left-idle.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-right-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-right-idle.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-tile-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-tile-idle.png -------------------------------------------------------------------------------- /themes/flora-green/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/default_icon.png -------------------------------------------------------------------------------- /themes/flora-green/ds-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/ds-left-idle.png -------------------------------------------------------------------------------- /themes/flora-green/ds-tile-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/ds-tile-idle.png -------------------------------------------------------------------------------- /themes/flora-green/tb-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-left-idle.png -------------------------------------------------------------------------------- /themes/flora-green/tb-tile-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-tile-idle.png -------------------------------------------------------------------------------- /themes/flora-pink/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/default_icon.png -------------------------------------------------------------------------------- /themes/flora-pink/ds-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/ds-left-idle.png -------------------------------------------------------------------------------- /themes/flora-pink/ds-right-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/ds-right-idle.png -------------------------------------------------------------------------------- /themes/flora-pink/ds-tile-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/ds-tile-idle.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-left-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-left-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-left-idle.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-right-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-right-idle.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-tile-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-tile-idle.png -------------------------------------------------------------------------------- /themes/native/clock_right_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/clock_right_img.png -------------------------------------------------------------------------------- /themes/native/ds_left_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_left_idle_img.png -------------------------------------------------------------------------------- /themes/native/ds_right_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_right_idle_img.png -------------------------------------------------------------------------------- /themes/native/ds_separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_separator_img.png -------------------------------------------------------------------------------- /themes/native/tb_left_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tb_left_idle_img.png -------------------------------------------------------------------------------- /themes/native/tb_right_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tb_right_idle_img.png -------------------------------------------------------------------------------- /themes/native/tb_tile_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tb_tile_idle_img.png -------------------------------------------------------------------------------- /themes/noir/ds_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_left_pressed_img.png -------------------------------------------------------------------------------- /themes/noir/tb_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tb_left_pressed_img.png -------------------------------------------------------------------------------- /themes/noir/tb_right_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tb_right_idle_img.png -------------------------------------------------------------------------------- /themes/noir/tb_tile_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tb_tile_pressed_img.png -------------------------------------------------------------------------------- /themes/striped/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-left-active.png -------------------------------------------------------------------------------- /themes/striped/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-right-active.png -------------------------------------------------------------------------------- /themes/striped/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-right-hover.png -------------------------------------------------------------------------------- /themes/striped/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-tile-active.png -------------------------------------------------------------------------------- /themes/xsocam-dark/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/default_icon.png -------------------------------------------------------------------------------- /themes/xsocam/clock_right_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/clock_right_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_separator_img.png -------------------------------------------------------------------------------- /themes/xsocam/tb_left_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tb_left_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam/tb_right_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tb_right_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam/tb_tile_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tb_tile_idle_img.png -------------------------------------------------------------------------------- /docs/themeref/desktops_separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops_separator.png -------------------------------------------------------------------------------- /themes/alduin-glossy/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/default_icon.png -------------------------------------------------------------------------------- /themes/alduin-smooth/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/default_icon.png -------------------------------------------------------------------------------- /themes/curvy-blue/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tb-left-active.png -------------------------------------------------------------------------------- /themes/curvy-blue/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tb-tile-active.png -------------------------------------------------------------------------------- /themes/curvy-green/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tb-left-active.png -------------------------------------------------------------------------------- /themes/curvy-green/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tb-tile-active.png -------------------------------------------------------------------------------- /themes/curvy-pink/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tb-left-active.png -------------------------------------------------------------------------------- /themes/curvy-pink/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tb-tile-active.png -------------------------------------------------------------------------------- /themes/flora-blue/ds-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/ds-left-active.png -------------------------------------------------------------------------------- /themes/flora-blue/ds-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/ds-right-active.png -------------------------------------------------------------------------------- /themes/flora-blue/ds-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/ds-tile-active.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-left-active.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-right-active.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-right-hover.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-tile-active.png -------------------------------------------------------------------------------- /themes/flora-green/ds-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/ds-left-active.png -------------------------------------------------------------------------------- /themes/flora-green/ds-right-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/ds-right-idle.png -------------------------------------------------------------------------------- /themes/flora-green/ds-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/ds-tile-active.png -------------------------------------------------------------------------------- /themes/flora-green/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-left-active.png -------------------------------------------------------------------------------- /themes/flora-green/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-left-hover.png -------------------------------------------------------------------------------- /themes/flora-green/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-right-hover.png -------------------------------------------------------------------------------- /themes/flora-green/tb-right-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-right-idle.png -------------------------------------------------------------------------------- /themes/flora-green/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-tile-active.png -------------------------------------------------------------------------------- /themes/flora-green/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/ds-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/ds-left-active.png -------------------------------------------------------------------------------- /themes/flora-pink/ds-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/ds-right-active.png -------------------------------------------------------------------------------- /themes/flora-pink/ds-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/ds-tile-active.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-left-active.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-right-active.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-right-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-tile-active.png -------------------------------------------------------------------------------- /themes/native/ds_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_left_pressed_img.png -------------------------------------------------------------------------------- /themes/native/tb_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tb_left_pressed_img.png -------------------------------------------------------------------------------- /themes/native/tb_tile_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tb_tile_pressed_img.png -------------------------------------------------------------------------------- /themes/noir/ds_leftright_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_leftright_idle_img.png -------------------------------------------------------------------------------- /themes/noir/ds_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_right_pressed_img.png -------------------------------------------------------------------------------- /themes/noir/tb_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/tb_right_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/clock_left_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/clock_left_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/clock_tile_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/clock_tile_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/separator_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_left_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam/tb_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tb_left_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam/tb_tile_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tb_tile_pressed_img.png -------------------------------------------------------------------------------- /docs/themeref/desktops_left_corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops_left_corner.png -------------------------------------------------------------------------------- /docs/themeref/desktops_right_corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/desktops_right_corner.png -------------------------------------------------------------------------------- /themes/alduin-glossy/launchbar-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/launchbar-arrow.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-left-active.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-left-hover.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-right-active.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-right-hover.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-tile-active.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/alduin-smooth/launchbar-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/launchbar-arrow.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-left-active.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-left-hover.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-right-active.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-right-hover.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-tile-active.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/separator.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/separator.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/separator.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/separator.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/separator.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/separator.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/flora-green/ds-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/ds-right-active.png -------------------------------------------------------------------------------- /themes/flora-green/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-right-active.png -------------------------------------------------------------------------------- /themes/native/ds_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_right_pressed_img.png -------------------------------------------------------------------------------- /themes/native/tb_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/tb_right_pressed_img.png -------------------------------------------------------------------------------- /themes/noir/ds_left_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_left_corner_idle_img.png -------------------------------------------------------------------------------- /themes/noir/ds_right_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_right_corner_idle_img.png -------------------------------------------------------------------------------- /themes/striped/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/striped/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/striped/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/striped/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/xsocam-dark/clock_right_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/clock_right_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_separator_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_separator_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tb_left_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tb_left_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tb_right_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tb_right_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tb_tile_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tb_tile_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_leftright_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_leftright_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_right_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam/tb_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/tb_right_pressed_img.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/default_icon.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/default_icon.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-lr-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-lr-idle.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/default_icon.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/default_icon.png -------------------------------------------------------------------------------- /themes/curvy-blue/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/curvy-blue/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-blue/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/curvy-pink/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/curvy-pink/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-pink/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/native/ds_left_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_left_corner_idle_img.png -------------------------------------------------------------------------------- /themes/native/ds_right_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_right_corner_idle_img.png -------------------------------------------------------------------------------- /themes/noir/ds_left_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_left_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_left_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tb_left_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tb_left_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tb_tile_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tb_tile_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_left_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_left_corner_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_right_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_right_corner_idle_img.png -------------------------------------------------------------------------------- /docs/themeref/stretched_no_center_offsets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/stretched_no_center_offsets.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-left-active.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-left-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-right-active.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-right-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-tile-active.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-left-active.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-left-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-right-active.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-right-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-tile-active.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/default_icon.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-left-active.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-left-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-right-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-tile-active.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/default_icon.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-left-active.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-left-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-right-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-tile-active.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-left-active.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-left-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-right-active.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-right-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-tile-active.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-left-active.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-left-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-left-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-right-active.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-right-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-right-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-tile-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-tile-active.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-tile-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-tile-hover.png -------------------------------------------------------------------------------- /themes/curvy-green/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/curvy-green/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/curvy-green/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/flora-blue/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-blue/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/flora-green/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/flora-green/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/flora-green/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-green/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/flora-pink/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/flora-pink/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/native/ds_left_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_left_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/native/ds_right_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/native/ds_right_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/noir/ds_right_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/noir/ds_right_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_leftright_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_leftright_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_right_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/tb_right_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/tb_right_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_left_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_left_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam/ds_right_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam/ds_right_corner_pressed_img.png -------------------------------------------------------------------------------- /docs/themeref/stretched_center_offsets_5_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/stretched_center_offsets_5_5.png -------------------------------------------------------------------------------- /docs/themeref/stretched_center_offsets_m5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/stretched_center_offsets_m5_0.png -------------------------------------------------------------------------------- /themes/alduin-glossy/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-glossy/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/alduin-smooth/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/alduin-smooth/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-right-active.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-right-active.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_left_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_left_corner_idle_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_right_corner_idle_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_right_corner_idle_img.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_left_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_left_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/xsocam-dark/ds_right_corner_pressed_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/xsocam-dark/ds_right_corner_pressed_img.png -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-opaque/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-blue-smooth/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-opaque/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-opaque/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-left-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-left-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-green-smooth/tb-tile-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-green-smooth/tb-tile-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-opaque/tb-right-active-hover.png -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/tb-right-active-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/themes/auriel-pink-smooth/tb-right-active-hover.png -------------------------------------------------------------------------------- /xdg.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | char **get_XDG_DATA_DIRS(size_t *len); 4 | char **get_XDG_CONFIG_DIRS(size_t *len); 5 | 6 | void free_XDG(char **ptrs); 7 | -------------------------------------------------------------------------------- /docs/themeref/stretched_overlap_center_offsets_0_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/stretched_overlap_center_offsets_0_5.png -------------------------------------------------------------------------------- /docs/themeref/stretched_overlap_no_center_offsets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsf/bmpanel2/HEAD/docs/themeref/stretched_overlap_no_center_offsets.png -------------------------------------------------------------------------------- /settings.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "config-parser.h" 4 | 5 | extern struct config_format_tree g_settings; 6 | 7 | void load_settings(const char *configfile); 8 | void free_settings(); 9 | -------------------------------------------------------------------------------- /extra/py/setup.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup 2 | 3 | setup(name='bmpanel2cfg', 4 | version='1.0', 5 | description='Bmpanel2 Config', 6 | author='nsf', 7 | author_email='no.smile.face@gmail.com', 8 | scripts=['bmpanel2cfg'], 9 | py_modules=['bmpanel2'] 10 | ) 11 | -------------------------------------------------------------------------------- /docs/rcref/Makefile: -------------------------------------------------------------------------------- 1 | DATADIR := data 2 | ATTRIBUTES_INDEX := \ 3 | -a toc \ 4 | -a linkcss \ 5 | -a stylesdir=$(DATADIR) \ 6 | -a scriptsdir=$(DATADIR) \ 7 | -a icons 8 | 9 | all: index.html 10 | 11 | index.html: index.txt 12 | @echo "compiling $<..."; asciidoc $(ATTRIBUTES_INDEX) $< 13 | 14 | clean: 15 | rm -rf index.html 16 | -------------------------------------------------------------------------------- /docs/themeref/Makefile: -------------------------------------------------------------------------------- 1 | DATADIR := data 2 | ATTRIBUTES_INDEX := \ 3 | -a toc \ 4 | -a linkcss \ 5 | -a stylesdir=$(DATADIR) \ 6 | -a scriptsdir=$(DATADIR) \ 7 | -a icons 8 | 9 | all: index.html 10 | 11 | index.html: index.txt 12 | @echo "compiling $<..."; asciidoc $(ATTRIBUTES_INDEX) $< 13 | 14 | clean: 15 | rm -rf index.html 16 | -------------------------------------------------------------------------------- /WMs.txt: -------------------------------------------------------------------------------- 1 | Info about WMs (discovered during testing) 2 | 3 | 1. Openbox 4 | I'm developing bmpanel2 on this WM. It has a good conformance to the NETWM 5 | standard. Everything works. 6 | 7 | 2. Compiz + Emerald (standalone) 8 | Works somewhat. But for example this WM changes _NET_CLIENT_LIST every time 9 | desktop is being switched. Are developers too lazy to read standard? 10 | 11 | 3. IceWM 12 | Looks like everything works. 13 | 14 | 4. PekWM 15 | Looks like everything works. 16 | 17 | 5. Fluxbox 18 | Looks like it works. 19 | 20 | 6. Xfwm4 21 | Looks like it works now. 22 | -------------------------------------------------------------------------------- /man/asciidoc.conf: -------------------------------------------------------------------------------- 1 | ifdef::doctype-manpage[] 2 | ifdef::backend-docbook[] 3 | [header] 4 | template::[header-declarations] 5 | 6 | 7 | {mantitle} 8 | {manvolnum} 9 | Bmpanel 10 | {man_version} 11 | Bmpanel2 Manual 12 | 13 | 14 | {manname} 15 | {manpurpose} 16 | 17 | endif::backend-docbook[] 18 | endif::doctype-manpage[] 19 | 20 | -------------------------------------------------------------------------------- /widget-interface.c: -------------------------------------------------------------------------------- 1 | #include "gui.h" 2 | #include "builtin-widgets.h" 3 | 4 | static struct widget_interface *widget_interfaces[] = { 5 | &desktops_interface, 6 | &pager_interface, 7 | &taskbar_interface, 8 | &clock_interface, 9 | &decor_interface, 10 | &systray_interface, 11 | &launchbar_interface, 12 | &empty_interface, 13 | 0 14 | }; 15 | 16 | struct widget_interface *lookup_widget_interface(const char *themename) 17 | { 18 | struct widget_interface **wi = widget_interfaces; 19 | while (*wi) { 20 | if (strcmp(themename, (*wi)->theme_name) == 0) 21 | return (*wi); 22 | wi++; 23 | } 24 | return 0; 25 | } 26 | 27 | -------------------------------------------------------------------------------- /CMake/InstallBmpanel2Cfg.cmake.in: -------------------------------------------------------------------------------- 1 | SET(BMPANEL2CFG_DESTDIR @CMAKE_CURRENT_BINARY_DIR@) 2 | IF(IS_ABSOLUTE $ENV{DESTDIR}) 3 | SET(BMPANEL2CFG_DESTDIR $ENV{DESTDIR}) 4 | ELSE(IS_ABSOLUTE $ENV{DESTDIR}) 5 | SET(BMPANEL2CFG_DESTDIR "@CMAKE_CURRENT_BINARY_DIR@/$ENV{DESTDIR}") 6 | ENDIF(IS_ABSOLUTE $ENV{DESTDIR}) 7 | 8 | MESSAGE(STATUS "Installing: bmpanel2cfg and python libraries") 9 | 10 | EXECUTE_PROCESS(COMMAND @PYTHON_EXECUTABLE@ setup.py -q 11 | build -b @CMAKE_CURRENT_BINARY_DIR@/extra/py 12 | install --root=${BMPANEL2CFG_DESTDIR} --prefix=@CMAKE_INSTALL_PREFIX@ 13 | WORKING_DIRECTORY @CMAKE_CURRENT_SOURCE_DIR@/extra/py) 14 | -------------------------------------------------------------------------------- /extra/bmpanel2.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: bmpanel2 themes 3 | " Maintainer: nsf 4 | " 5 | " I use "au BufRead,BufNewFile theme setf bmpanel2" in a .vimrc 6 | "------------------------------------------------------------------------------------- 7 | 8 | if version < 600 9 | syntax clear 10 | elseif exists("b:current_syntax") 11 | finish 12 | endif 13 | 14 | syn region bmpanel2_root_key matchgroup=Normal start="^" end="\s\|\n" 15 | syn region bmpanel2_nonroot_key matchgroup=Normal start="^\s\+" end="\s\|\n" 16 | syn match bmpanel2_comment "^\s*#.*$" 17 | 18 | hi def link bmpanel2_comment Comment 19 | hi def link bmpanel2_root_key Special 20 | hi def link bmpanel2_nonroot_key Constant 21 | -------------------------------------------------------------------------------- /strbuf.c: -------------------------------------------------------------------------------- 1 | #include "util.h" 2 | 3 | /************************************************************************** 4 | string buffer 5 | **************************************************************************/ 6 | 7 | void strbuf_assign(struct strbuf *sb, const char *str) 8 | { 9 | size_t len = strlen(str); 10 | if (sb->alloc == 0) { 11 | sb->alloc = len + 1; 12 | sb->buf = xmalloc(sb->alloc); 13 | strcpy(sb->buf, str); 14 | } else { 15 | if (sb->alloc >= len + 1) { 16 | strcpy(sb->buf, str); 17 | } else { 18 | xfree(sb->buf); 19 | sb->alloc = len + 1; 20 | sb->buf = xmalloc(sb->alloc); 21 | strcpy(sb->buf, str); 22 | } 23 | } 24 | } 25 | 26 | void strbuf_free(struct strbuf *sb) 27 | { 28 | if (sb->alloc) 29 | xfree(sb->buf); 30 | } 31 | 32 | -------------------------------------------------------------------------------- /aur/bmpanel2/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Contributor: nsf 2 | 3 | pkgname=bmpanel2 4 | pkgver=2.1pre1 5 | pkgrel=5 6 | pkgdesc="The second major release of the known panel." 7 | arch=("i686" "x86_64") 8 | url="http://bmpanel2.googlecode.com/" 9 | license=('MIT') 10 | depends=('pango' 'cairo' 'libx11' 'libxrender') 11 | optdepends=('pygtk') 12 | makedepends=('cmake' 'asciidoc' 'python') 13 | source=(https://github.com/nsf/bmpanel2/archive/$pkgver.tar.gz) 14 | md5sums=('ef6b586d256cb9aa3365840e51972c65') 15 | 16 | build() { 17 | cd "$startdir/src/$pkgname-$pkgver" 18 | cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DPYTHON_EXECUTABLE=/usr/bin/python2.7 . || return 1 19 | make || return 1 20 | } 21 | 22 | package() { 23 | cd "$startdir/src/$pkgname-$pkgver" 24 | make DESTDIR="$pkgdir/" install 25 | } 26 | -------------------------------------------------------------------------------- /man/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | IF(BMPANEL2_FEATURE_MANPAGE) 2 | FIND_PROGRAM(A2X a2x) 3 | FIND_PROGRAM(GZIP gzip) 4 | IF(A2X AND GZIP) 5 | SET(ASCIIDOC_OPTS -f ${CMAKE_CURRENT_SOURCE_DIR}/asciidoc.conf -a man_version="${BMPANEL_VERSION}") 6 | SET(A2X_OPTS -D ${CMAKE_CURRENT_BINARY_DIR} -d manpage -f manpage) 7 | SET(MAN_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/bmpanel2.txt) 8 | ADD_CUSTOM_COMMAND( 9 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/bmpanel2.1.gz 10 | COMMAND ${A2X} ${A2X_OPTS} --asciidoc-opts="${ASCIIDOC_OPTS}" ${MAN_SOURCE} 11 | COMMAND ${GZIP} -f ${CMAKE_CURRENT_BINARY_DIR}/bmpanel2.1 12 | DEPENDS asciidoc.conf bmpanel2.txt 13 | ) 14 | ADD_CUSTOM_TARGET(manpage ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bmpanel2.1.gz) 15 | INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/bmpanel2.1.gz 16 | DESTINATION share/man/man1) 17 | ENDIF(A2X AND GZIP) 18 | ENDIF(BMPANEL2_FEATURE_MANPAGE) 19 | -------------------------------------------------------------------------------- /settings.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "xdg.h" 3 | #include "settings.h" 4 | 5 | struct config_format_tree g_settings; 6 | 7 | #define BMPANEL2_CONFIG_FILE "bmpanel2/bmpanel2rc" 8 | 9 | void load_settings(const char *configfile) 10 | { 11 | if (configfile) { 12 | load_config_format_tree(&g_settings, configfile); 13 | return; 14 | } 15 | 16 | char buf[4096]; 17 | size_t config_dirs_len; 18 | char **config_dirs = get_XDG_CONFIG_DIRS(&config_dirs_len); 19 | int found = 0; 20 | 21 | size_t i; 22 | for (i = 0; i < config_dirs_len; ++i) { 23 | snprintf(buf, sizeof(buf), "%s/" BMPANEL2_CONFIG_FILE, 24 | config_dirs[i]); 25 | buf[sizeof(buf)-1] = '\0'; 26 | if (is_file_exists(buf)) { 27 | found = 1; 28 | break; 29 | } 30 | } 31 | free_XDG(config_dirs); 32 | 33 | if (found) 34 | load_config_format_tree(&g_settings, buf); 35 | } 36 | 37 | void free_settings() 38 | { 39 | if (g_settings.buf) 40 | free_config_format_tree(&g_settings); 41 | } 42 | -------------------------------------------------------------------------------- /docs/rcref/data/xhtml11-quirks.css: -------------------------------------------------------------------------------- 1 | /* Workarounds for IE6's broken and incomplete CSS2. */ 2 | 3 | div.sidebar-content { 4 | background: #ffffee; 5 | border: 1px solid silver; 6 | padding: 0.5em; 7 | } 8 | div.sidebar-title, div.image-title { 9 | color: #527bbd; 10 | font-family: sans-serif; 11 | font-weight: bold; 12 | margin-top: 0.0em; 13 | margin-bottom: 0.5em; 14 | } 15 | 16 | div.listingblock div.content { 17 | border: 1px solid darkgreen; 18 | background: honeydew; 19 | padding: 0.5em; 20 | } 21 | 22 | div.quoteblock-content { 23 | padding-left: 2.0em; 24 | } 25 | 26 | div.exampleblock-content { 27 | border-left: 2px solid silver; 28 | padding-left: 0.5em; 29 | } 30 | 31 | /* IE6 sets dynamically generated links as visited. */ 32 | div#toc a:visited { color: green; } 33 | 34 | /* Because IE6 child selector is broken. */ 35 | div.olist2 ol { 36 | list-style-type: lower-alpha; 37 | } 38 | div.olist2 div.olist ol { 39 | list-style-type: decimal; 40 | } 41 | -------------------------------------------------------------------------------- /docs/themeref/data/xhtml11-quirks.css: -------------------------------------------------------------------------------- 1 | /* Workarounds for IE6's broken and incomplete CSS2. */ 2 | 3 | div.sidebar-content { 4 | background: #ffffee; 5 | border: 1px solid silver; 6 | padding: 0.5em; 7 | } 8 | div.sidebar-title, div.image-title { 9 | color: #527bbd; 10 | font-family: sans-serif; 11 | font-weight: bold; 12 | margin-top: 0.0em; 13 | margin-bottom: 0.5em; 14 | } 15 | 16 | div.listingblock div.content { 17 | border: 1px solid darkgreen; 18 | background: honeydew; 19 | padding: 0.5em; 20 | } 21 | 22 | div.quoteblock-content { 23 | padding-left: 2.0em; 24 | } 25 | 26 | div.exampleblock-content { 27 | border-left: 2px solid silver; 28 | padding-left: 0.5em; 29 | } 30 | 31 | /* IE6 sets dynamically generated links as visited. */ 32 | div#toc a:visited { color: green; } 33 | 34 | /* Because IE6 child selector is broken. */ 35 | div.olist2 ol { 36 | list-style-type: lower-alpha; 37 | } 38 | div.olist2 div.olist ol { 39 | list-style-type: decimal; 40 | } 41 | -------------------------------------------------------------------------------- /render-normal.c: -------------------------------------------------------------------------------- 1 | #include "gui.h" 2 | #include "widget-utils.h" 3 | 4 | static void create_dc(struct panel *p); 5 | static void blit(struct panel *p, int x, int y, unsigned int w, unsigned int h); 6 | static void panel_resize(struct panel *p); 7 | 8 | struct render_interface render_normal = { 9 | .name = "normal", 10 | .create_dc = create_dc, 11 | .blit = blit, 12 | .panel_resize = panel_resize 13 | }; 14 | 15 | static void create_dc(struct panel *p) 16 | { 17 | p->cr = create_cairo_for_pixmap(&p->connection, p->bg, 18 | p->width, p->height); 19 | } 20 | 21 | static void blit(struct panel *p, int x, int y, unsigned int w, unsigned int h) 22 | { 23 | XClearArea(p->connection.dpy, p->win, x, y, w, h, False); 24 | } 25 | 26 | static void panel_resize(struct panel *p) 27 | { 28 | struct x_connection *c = &p->connection; 29 | 30 | cairo_destroy(p->cr); 31 | XFreePixmap(c->dpy, p->bg); 32 | 33 | p->bg = x_create_default_pixmap(c, p->width, p->height); 34 | XSetWindowBackgroundPixmap(c->dpy, p->win, p->bg); 35 | p->cr = create_cairo_for_pixmap(c, p->bg, p->width, p->height); 36 | } 37 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | Bmpanel2 2 | Copyright (C) 2009 nsf 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | bmpanel2 2 | ======== 3 | 4 | bmpanel2 is a NETWM Compliant Panel for X11. 5 | 6 | * Look & Feel customization via themes. 7 | * Widgets: Desktop Switcher, Taskbar, Launchbar, System Tray, Clock, Decor, empty. 8 | * Pseudo-transparency support. 9 | * Written in C with speed and clarity in mind. 10 | * Small amount of dependencies: glib2, cairo, pango, libX11. 11 | * Small memory footprint (appox. 2mb to 4mb). 12 | * Small executable (80kb at Current Time). 13 | 14 | Installation 15 | ------------ 16 | 17 | git clone --depth=1 git://github.com/nsf/bmpanel2.git 18 | cd bmpanel2 19 | cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE . 20 | make 21 | sudo make install 22 | 23 | For More Information, Please refer to the Project Wiki, Page: Installation. 24 | 25 | Usage 26 | ----- 27 | 28 | echo "theme xsocam_dark" > ~/.config/bmpanel2/bmpanel2rc 29 | bmpanel2 30 | 31 | By default, The configuration file is stored in ~/.config/bmpanel/bmpanel2rc 32 | 33 | For details on usage, Please refer to Unix Manual Pages or Short Help. 34 | 35 | Short Help: bmpanel2 --help
36 | Unix Manual: man bmpanel2 37 | 38 | 39 | -------------------------------------------------------------------------------- /docs/rcref/index.txt: -------------------------------------------------------------------------------- 1 | Bmpanel2 rc reference 2 | ===================== 3 | 4 | This reference covers config file called bmpanel2rc. 5 | 6 | Parameters 7 | ---------- 8 | 9 | theme:: 10 | Defines a theme used for bmpanel2. It is being searched in XDG 11 | standard data directories (env vars: XDG_DATA_HOME, 12 | XDG_DATA_DIRS). 13 | 14 | drag_threshold:: 15 | When you're pressing left mouse button and starting to move 16 | mouse cursor, it should walk at least that amount of pixels 17 | before it will be considered as dragging action. By default 18 | it's 50 pixels. 19 | 20 | task_urgency_hint:: 21 | Enables blinking tasks in the taskbar if the represented 22 | application demands attention. Boolean option, turned off by 23 | default. 24 | 25 | task_death_threshold:: 26 | In order to kill the task in the taskbar you need to drag it 27 | at least that amount of pixels off the panel. Default value is 28 | 30 pixels. 29 | 30 | monitor:: 31 | Place bmpanel2 on a specific monitor. Starting from 0. Default 32 | is 0. 33 | 34 | clock_prog:: 35 | A string. An application that should be executed when you 36 | click on the clock widget. 37 | 38 | // vim: set syntax=asciidoc: 39 | 40 | -------------------------------------------------------------------------------- /widget-empty.c: -------------------------------------------------------------------------------- 1 | #include "builtin-widgets.h" 2 | 3 | static int create_widget_private(struct widget *w, struct config_format_entry *e, 4 | struct config_format_tree *tree); 5 | static void destroy_widget_private(struct widget *w); 6 | 7 | struct widget_interface empty_interface = { 8 | .theme_name = "empty", 9 | .size_type = WIDGET_SIZE_CONSTANT, 10 | .create_widget_private = create_widget_private, 11 | .destroy_widget_private = destroy_widget_private 12 | }; 13 | 14 | /************************************************************************** 15 | Empty interface 16 | **************************************************************************/ 17 | 18 | static int create_widget_private(struct widget *w, struct config_format_entry *e, 19 | struct config_format_tree *tree) 20 | { 21 | if (!e->value) { 22 | XWARNING("Failed to parse empty widget (width is required)"); 23 | return -1; 24 | } 25 | 26 | w->width = 0; 27 | if (sscanf(e->value, "%d", &w->width) != 1) { 28 | XWARNING("Failed to parse empty widget width, format is: empty %%d"); 29 | return -1; 30 | } 31 | w->private = 0; 32 | return 0; 33 | } 34 | 35 | static void destroy_widget_private(struct widget *w) 36 | { 37 | } 38 | -------------------------------------------------------------------------------- /message.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "util.h" 4 | 5 | int xerror(const char *file, unsigned int line, const char *fmt, ...) 6 | { 7 | va_list args; 8 | 9 | #ifndef NDEBUG 10 | fprintf(stderr, "(%s:%u) ", file, line); 11 | #endif 12 | va_start(args, fmt); 13 | vfprintf(stderr, fmt, args); 14 | fputs("\n", stderr); 15 | va_end(args); 16 | 17 | return -1; 18 | } 19 | 20 | void xwarning(const char *file, unsigned int line, const char *fmt, ...) 21 | { 22 | va_list args; 23 | 24 | #ifndef NDEBUG 25 | fprintf(stderr, "(%s:%u) ", file, line); 26 | #endif 27 | va_start(args, fmt); 28 | vfprintf(stderr, fmt, args); 29 | fputs("\n", stderr); 30 | va_end(args); 31 | } 32 | 33 | void xdie(const char *file, unsigned int line, const char *fmt, ...) 34 | { 35 | va_list args; 36 | 37 | #ifndef NDEBUG 38 | fprintf(stderr, "FATAL (%s:%u) ", file, line); 39 | #endif 40 | va_start(args, fmt); 41 | vfprintf(stderr, fmt, args); 42 | fputs("\n", stderr); 43 | va_end(args); 44 | exit(EXIT_FAILURE); 45 | } 46 | 47 | const char *pretty_print_FILE(const char *file) 48 | { 49 | const char *base = strstr(file, PRETTY_PRINT_FILE_BASE); 50 | return ((base) ? base + strlen(PRETTY_PRINT_FILE_BASE) + 1 : file); 51 | } 52 | 53 | -------------------------------------------------------------------------------- /widget-decor.c: -------------------------------------------------------------------------------- 1 | #include "builtin-widgets.h" 2 | 3 | static int create_widget_private(struct widget *w, struct config_format_entry *e, 4 | struct config_format_tree *tree); 5 | static void destroy_widget_private(struct widget *w); 6 | static void draw(struct widget *w); 7 | 8 | struct widget_interface decor_interface = { 9 | .theme_name = "decor", 10 | .size_type = WIDGET_SIZE_CONSTANT, 11 | .create_widget_private = create_widget_private, 12 | .destroy_widget_private = destroy_widget_private, 13 | .draw = draw 14 | }; 15 | 16 | /************************************************************************** 17 | Decor interface 18 | **************************************************************************/ 19 | 20 | static int create_widget_private(struct widget *w, struct config_format_entry *e, 21 | struct config_format_tree *tree) 22 | { 23 | struct decor_widget *dw = xmallocz(sizeof(struct decor_widget)); 24 | dw->image = parse_image_part(e, tree, 1); 25 | if (!dw->image) { 26 | xfree(dw); 27 | XWARNING("Failed to parse decor theme"); 28 | return -1; 29 | } 30 | 31 | w->width = image_width(dw->image); 32 | w->private = dw; 33 | return 0; 34 | } 35 | 36 | static void destroy_widget_private(struct widget *w) 37 | { 38 | struct decor_widget *dw = (struct decor_widget*)w->private; 39 | cairo_surface_destroy(dw->image); 40 | xfree(dw); 41 | } 42 | 43 | static void draw(struct widget *w) 44 | { 45 | struct decor_widget *dw = (struct decor_widget*)w->private; 46 | cairo_t *cr = w->panel->cr; 47 | 48 | blit_image(dw->image, cr, w->x, 0); 49 | } 50 | -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- 1 | General order of actions: 2 | cmake . && make && make install 3 | 4 | Makefile's traditional DESTDIR works with CMake! 5 | 6 | CMake has its own configuration. For --prefix use: 7 | cmake -DCMAKE_INSTALL_PREFIX=/my/prefix . 8 | 9 | BMPanel2 currently installs following files: 10 | PREFIX/bin/bmpanel2 11 | PREFIX/share/bmpanel2/themes/native/* 12 | PREFIX/share/bmpanel2/themes/transpy/* 13 | 14 | -------------------------------------------------------------- 15 | **** TODO: This is deprecated **** 16 | You can also force separation for binary and data in two 17 | completely different places. 18 | 19 | cmake -DBMPANEL2_BINARY_PATH=/full/path/to/bin 20 | -DBMPANEL2_DATA_PATH=/full/path/to/data . 21 | 22 | In that case: 23 | BMPANEL2_BINARY_PATH/bmpanel2 24 | BMPANEL2_DATA_PATH/themes/native/* 25 | BMPANEL2_DATA_PATH/themes/transpy/* 26 | -------------------------------------------------------------- 27 | 28 | But using this variables isn't recommended! If you don't know what you're doing, 29 | contact me, I'll explain and fix this guide. 30 | 31 | Please keep in mind, bmpanel2 binary searches for themes in XDG standard 32 | folders! Default ones should be somewhat: 33 | ~/.local/share/bmpanel2/themes 34 | /usr/share/bmpanel2/themes 35 | /usr/local/share/bmpanel2/themes 36 | 37 | But to be sure, use: 38 | env | grep XDG 39 | 40 | Bmpanel2 also has a config file located in (depends on XDG env vars): 41 | ~/.config/bmpanel2/bmpanel2rc 42 | 43 | But in order to run bmpanel2 and test it, you don't need this. Just use: 44 | bmpanel2 -h 45 | or 46 | bmpanel2 --help 47 | 48 | There is a theme override parameter (default one is 'native'): 49 | bmpanel2 --theme=transpy 50 | 51 | -------------------------------------------------------------------------------- 52 | My email: 53 | nsf 54 | -------------------------------------------------------------------------------- /themes/transpy/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Transpy 3 | author nsf 4 | 5 | panel 6 | position top 7 | background bg.png 8 | transparent 9 | 10 | desktop_switcher 11 | paint_replace 12 | idle 13 | left_corner lblack_l.png 14 | left lblack_t.png 15 | center lblack_t.png 16 | right lblack_t.png 17 | right_corner lblack_r.png 18 | font DejaVuSans 8 19 | color 255 255 255 20 | offset 0 1 21 | pressed 22 | left_corner black_l.png 23 | left black_t.png 24 | center black_t.png 25 | right black_t.png 26 | right_corner black_r.png 27 | font DejaVuSans 8 28 | color 255 255 255 29 | offset 0 1 30 | 31 | pager 32 | idle 33 | border 57 57 57 34 | fill 57 57 57 35 | inactive_window_border 70 70 70 36 | inactive_window_fill 18 18 18 37 | active_window_border 70 70 70 38 | active_window_fill 18 18 18 39 | font DejaVu Sans 8 40 | color 255 255 255 41 | offset 0 7 42 | align right 43 | shadow_offset 1 1 44 | shadow_color 0 0 0 45 | 46 | pressed 47 | border 32 32 32 48 | fill 32 32 32 49 | inactive_window_border 110 110 110 50 | inactive_window_fill 43 43 43 51 | active_window_border 190 190 190 52 | active_window_fill 0 0 0 53 | 54 | height 24 55 | desktop_spacing 1 56 | 57 | launchbar 58 | icon_size 24 24 59 | 60 | taskbar 61 | paint_replace 62 | idle 63 | left lblack_l.png 64 | center lblack_t.png 65 | right lblack_r.png 66 | font DejaVuSans 8 67 | color 255 255 255 68 | align left 69 | offset 5 1 70 | 71 | pressed 72 | left black_l.png 73 | center black_t.png 74 | right black_r.png 75 | font DejaVuSans 8 76 | color 255 255 255 77 | align left 78 | offset 5 1 79 | 80 | default_icon default_icon.png 81 | 82 | systray 83 | icon_size 24 24 84 | offset 0 1 85 | 86 | clock 87 | paint_replace 88 | background 89 | center bg.png 90 | 91 | font DejaVuSans 14 92 | color 255 255 255 93 | offset 0 1 94 | align center 95 | -------------------------------------------------------------------------------- /man/bmpanel2.txt: -------------------------------------------------------------------------------- 1 | bmpanel2(1) 2 | =========== 3 | 4 | NAME 5 | ---- 6 | bmpanel2 - X11 NETWM compliant panel (desktop switcher, taskbar, 7 | systray, clock, launcher, etc.) with themeing capabilities. 8 | 9 | SYNOPSIS 10 | -------- 11 | [verse] 12 | 'bmpanel2' [-h | --help] [--version] [--usage] [--list] [--theme=] 13 | [--config=] 14 | 15 | DESCRIPTION 16 | ----------- 17 | BMPanel2 (bitmap panel) is a tiny little bar on the top of the screen 18 | or on the bottom. It contains different "widgets" - the pieces of 19 | functionality which help user to interact with his desktop. Some of 20 | the default widgets are: 21 | 22 | . Taskbar - A list of tasks (windows) on the current desktop. 23 | . Desktop Switcher - Allows user to choose current desktop. 24 | . Systray - Also known as notification area. 25 | . Clock - Shows time.. 26 | . Launchbar - Allows user to run different programs in one click. 27 | 28 | The main goal of this project is to create a simple, lightweight, nice 29 | looking, but still useful panel, that will be accompanied with another 30 | piece of a really good software - the Openbox 3. 31 | 32 | OPTIONS 33 | ------- 34 | -h:: 35 | --help:: 36 | Prints short list with following tiny descriptions of all of 37 | the options. 38 | 39 | --version:: 40 | Prints currently installed version of the bmpanel2. 41 | 42 | --usage:: 43 | Prints the most shortest possible bmpanel2 usage reminder. 44 | 45 | --list:: 46 | Lists all themes found on known paths for current user. 47 | Additional info such as theme author name will be printed 48 | also. 49 | 50 | --theme=:: 51 | Override theme parameter in the config file. 52 | 53 | --config=:: 54 | Override default config file. 55 | 56 | AUTHORS 57 | ------- 58 | 59 | Code and art: 60 | 61 | * nsf 62 | 63 | Noir theme: 64 | 65 | * Andrew Nayenko 66 | 67 | A lot of Creative Commons covered theme ports (alduin, auriel, curvy, 68 | flora, striped): 69 | 70 | * weakhead (http://weakhead.deviantart.com) 71 | 72 | // vim: set syntax=asciidoc: 73 | -------------------------------------------------------------------------------- /args.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | enum argument_type { 4 | ARGT_END, 5 | 6 | ARGT_INTEGER, /* --arg=31337 or --arg 31337 */ 7 | ARGT_FLOAT, /* --arg=3.14 or --arg 3.14 */ 8 | ARGT_STRING, /* --arg=John or --arg "John" or --arg John */ 9 | ARGT_BOOLEAN, /* --arg or --no-arg */ 10 | 11 | ARGT_SET_BIT, /* --arg */ 12 | ARGT_SET_INT, /* --arg */ 13 | ARGT_SET_PTR, /* --arg */ 14 | ARGT_SET_FLT, /* --arg */ 15 | 16 | ARGT_CALLBACK /* --arg=whatever or --arg whatever */ 17 | }; 18 | 19 | typedef void (*argument_callback_t)(const char*); 20 | 21 | struct argument { 22 | enum argument_type type; 23 | const char *name; 24 | void *value; 25 | const char *help; 26 | union { 27 | int i; 28 | const char *s; 29 | float f; 30 | void *p; 31 | unsigned int b; 32 | } def; 33 | argument_callback_t callback; 34 | }; 35 | 36 | #define ARG_STRING(n, v, h, d) \ 37 | { .type = ARGT_STRING, .name = (n), .value = (v), .help = (h), .def.s = (d), .callback = 0 } 38 | #define ARG_INTEGER(n, v, h, d) \ 39 | { .type = ARGT_INTEGER, .name = (n), .value = (v), .help = (h), .def.i = (d), .callback = 0 } 40 | #define ARG_FLOAT(n, v, h, d) \ 41 | { .type = ARGT_FLOAT, .name = (n), .value = (v), .help = (h), .def.f = (d), .callback = 0 } 42 | #define ARG_BOOLEAN(n, v, h, d) \ 43 | { .type = ARGT_BOOLEAN, .name = (n), .value = (v), .help = (h), .def.i = (d), .callback = 0 } 44 | 45 | #define ARG_SET_BIT(n, v, h, d) \ 46 | { .type = ARGT_SET_BIT, .name = (n), .value = (v), .help = (h), .def.b = (d), .callback = 0 } 47 | #define ARG_SET_INT(n, v, h, d) \ 48 | { .type = ARGT_SET_INT, .name = (n), .value = (v), .help = (h), .def.i = (d), .callback = 0 } 49 | #define ARG_SET_PTR(n, v, h, d) \ 50 | { .type = ARGT_SET_PTR, .name = (n), .value = (v), .help = (h), .def.p = (d), .callback = 0 } 51 | #define ARG_SET_FLT(n, v, h, d) \ 52 | { .type = ARGT_SET_FLT, .name = (n), .value = (v), .help = (h), .def.f = (d), .callback = 0 } 53 | 54 | #define ARG_CALLBACK(n, cb, h) \ 55 | { .type = ARGT_CALLBACK, .name = (n), .help = (h), .callback = (cb) } 56 | 57 | #define ARG_END \ 58 | { .type = ARGT_END } 59 | 60 | void parse_args(struct argument *args, int argc, char **argv, const char *help); 61 | -------------------------------------------------------------------------------- /themes/native/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Native 3 | author nsf 4 | 5 | panel 6 | position bottom 7 | separator separator_img.png 8 | background tile_img.png 9 | 10 | desktop_switcher 11 | idle 12 | left_corner ds_left_corner_idle_img.png 13 | left ds_left_idle_img.png 14 | center tb_tile_idle_img.png 15 | right ds_right_idle_img.png 16 | right_corner ds_right_corner_idle_img.png 17 | font DejaVuSans 8 18 | color 255 255 255 19 | offset 0 1 20 | pressed 21 | left_corner ds_left_corner_pressed_img.png 22 | left ds_left_pressed_img.png 23 | center tb_tile_pressed_img.png 24 | right ds_right_pressed_img.png 25 | right_corner ds_right_corner_pressed_img.png 26 | font DejaVuSans 8 27 | color 255 255 255 28 | offset 0 1 29 | 30 | separator ds_separator_img.png 31 | 32 | pager 33 | idle 34 | border 43 56 63 35 | fill 88 102 109 36 | inactive_window_border 73 101 120 37 | inactive_window_fill 43 56 63 38 | active_window_border 73 101 120 39 | active_window_fill 43 56 63 40 | font DejaVu Sans 8 41 | color 230 230 230 42 | offset -2 4 43 | align right 44 | shadow_offset 1 1 45 | shadow_color 0 0 0 46 | 47 | pressed 48 | border 43 56 63 49 | fill 74 113 137 50 | inactive_window_border 150 150 150 51 | inactive_window_fill 43 56 63 52 | active_window_border 91 156 186 53 | active_window_fill 67 94 116 54 | 55 | height 21 56 | desktop_spacing 5 57 | 58 | launchbar 59 | icon_size 24 24 60 | 61 | taskbar 62 | idle 63 | left tb_left_idle_img.png 64 | center tb_tile_idle_img.png 65 | right tb_right_idle_img.png 66 | font DejaVuSans 8 67 | color 255 255 255 68 | offset 5 1 69 | icon_offset 0 1 70 | 71 | pressed 72 | left tb_left_pressed_img.png 73 | center tb_tile_pressed_img.png 74 | right tb_right_pressed_img.png 75 | font DejaVuSans 8 76 | color 255 255 255 77 | offset 5 1 78 | icon_offset 0 1 79 | 80 | default_icon default_icon.png 81 | 82 | systray 83 | icon_size 24 24 84 | 85 | clock 86 | background 87 | left clock_left_img.png 88 | center clock_tile_img.png 89 | right clock_right_img.png 90 | 91 | font DejaVuSans 14 92 | color 255 255 255 93 | offset 0 1 94 | align center 95 | -------------------------------------------------------------------------------- /aur/bmpanel2-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Contributor: nsf 2 | pkgname=bmpanel2-git 3 | pkgver=20111111 4 | pkgrel=1 5 | pkgdesc="The second major release of the known panel." 6 | arch=("i686" "x86_64") 7 | url="http://code.google.com/p/bmpanel2" 8 | license=('MIT') 9 | depends=('libxext' 'pango' 'libxinerama') 10 | optdepends=('pygtk: bmpanel2cfg utility') 11 | makedepends=('git' 'cmake' 'gcc' 'make' 'pkgconfig' 'asciidoc' 'python2') 12 | provides=('bmpanel2') 13 | conflicts=('bmpanel2') 14 | #----------------------------------------------------------------------------- 15 | # dependencies (* - direct deps, + - indirect deps): 16 | # 17 | # * libxext - XShape extension for draggable tasks (icons) 18 | # + libx11 - main X11 client-side protocol implementation 19 | # * pango - text drawing 20 | # + cairo - raster/vector drawing 21 | # + glib2 - main loop 22 | # * libxinerama - bmpanel2 uses it by default, but it can be configured 23 | # to use libxrandr too/instead. 24 | # 25 | # and also optional dependencies: 26 | # 27 | # * pygtk - you should have this in order to use bmpanel2cfg utility 28 | # + python - and this too obviously 29 | # 30 | # make dependencies: 31 | # 32 | # * git 33 | # * cmake 34 | # * gcc 35 | # * make 36 | # * pkgconfig - bmpanel2 uses it in cmake a lot 37 | # * asciidoc - it is used for man page generation via a2x tool 38 | # + docbook-xsl - it is required too 39 | # * python - you need this to build bmpanel2cfg utility using setup.py 40 | #----------------------------------------------------------------------------- 41 | source=() 42 | 43 | _gitroot="git://github.com/nsf/bmpanel2.git" 44 | _gitname="bmpanel2" 45 | 46 | build() { 47 | cd "$srcdir" 48 | msg "Connecting to GIT server...." 49 | 50 | if [ -d $_gitname ] ; then 51 | cd $_gitname && git pull origin 52 | msg "The local files are updated." 53 | else 54 | git clone $_gitroot 55 | fi 56 | 57 | msg "GIT checkout done or server timeout" 58 | msg "Starting make..." 59 | 60 | rm -rf "$srcdir/$_gitname-build" 61 | git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build" 62 | 63 | cd "$srcdir/$_gitname-build" 64 | cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DPYTHON_EXECUTABLE=/usr/bin/python2.7 . || return 1 65 | make || return 1 66 | make DESTDIR="$pkgdir/" install 67 | } 68 | -------------------------------------------------------------------------------- /xdg.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "util.h" 4 | #include "xdg.h" 5 | 6 | static char **get_XDG_DIRS(size_t *len, const char *home_env, 7 | const char *home_default, const char *dirs_env, 8 | const char *dirs_default) 9 | { 10 | char *dir_home; 11 | size_t dir_home_len; 12 | 13 | /* get dir_home */ 14 | const char *xdg_dir_home = getenv(home_env); 15 | 16 | if (xdg_dir_home && xdg_dir_home[0] != '\0') { 17 | dir_home = xstrdup(xdg_dir_home); 18 | dir_home_len = strlen(dir_home); 19 | } else { 20 | const char *home = getenv("HOME"); 21 | ENSURE(home != 0, "You must have HOME environment variable set"); 22 | dir_home_len = strlen(home) + 1 + strlen(home_default) + 1; 23 | dir_home = xmalloc(dir_home_len); 24 | sprintf(dir_home, "%s/%s", home, home_default); 25 | } 26 | 27 | char *dirs; 28 | size_t dirs_len; 29 | 30 | /* get data_dirs */ 31 | const char *xdg_dirs = getenv(dirs_env); 32 | 33 | if (xdg_dirs && xdg_dirs[0] != '\0') { 34 | dirs_len = dir_home_len + 1 + strlen(xdg_dirs) + 1; 35 | dirs = xmalloc(dirs_len); 36 | sprintf(dirs, "%s:%s", dir_home, xdg_dirs); 37 | } else { 38 | dirs_len = dir_home_len + 1 + 39 | strlen(dirs_default) + 1; 40 | dirs = xmalloc(dirs_len); 41 | sprintf(dirs, "%s:%s", dir_home, dirs_default); 42 | } 43 | 44 | xfree(dir_home); 45 | 46 | /* count dirs and change ':' to '\0' */ 47 | size_t dirs_count = 1; 48 | char *tmp = dirs; 49 | while (*tmp) { 50 | if (*tmp == ':') { 51 | *tmp = '\0'; 52 | dirs_count++; 53 | } 54 | tmp++; 55 | } 56 | 57 | /* alloc char pointer array and puts locations */ 58 | size_t i; 59 | char **dirs_array = xmalloc(dirs_count * sizeof(char*)); 60 | for (i = 0; i < dirs_count; ++i) { 61 | dirs_array[i] = dirs; 62 | while (*dirs) { 63 | dirs++; 64 | } 65 | dirs++; 66 | } 67 | 68 | *len = dirs_count; 69 | return dirs_array; 70 | } 71 | 72 | char **get_XDG_DATA_DIRS(size_t *len) 73 | { 74 | return get_XDG_DIRS(len, "XDG_DATA_HOME", ".local/share", "XDG_DATA_DIRS", 75 | "/usr/local/share:/usr/share"); 76 | } 77 | 78 | char **get_XDG_CONFIG_DIRS(size_t *len) 79 | { 80 | return get_XDG_DIRS(len, "XDG_CONFIG_HOME", ".config", "XDG_CONFIG_DIRS", 81 | "/etc/xdg"); 82 | } 83 | 84 | void free_XDG(char **ptrs) 85 | { 86 | xfree(ptrs[0]); 87 | xfree(ptrs); 88 | } 89 | -------------------------------------------------------------------------------- /themes/noir/theme: -------------------------------------------------------------------------------- 1 | panel 2 | position bottom 3 | separator separator_img.png 4 | background tile_img.png 5 | 6 | theme 7 | name Noir 8 | author Andrew Nayenko 9 | 10 | desktop_switcher 11 | idle 12 | left_corner ds_left_corner_idle_img.png 13 | left ds_leftright_idle_img.png 14 | center tb_tile_idle_img.png 15 | right ds_leftright_idle_img.png 16 | right_corner ds_right_corner_idle_img.png 17 | font DejaVuSans 10 18 | color 255 255 255 19 | offset 0 1 20 | shadow_offset 0 -1 21 | shadow_color 0 0 0 22 | pressed 23 | left_corner ds_left_corner_pressed_img.png 24 | left ds_left_pressed_img.png 25 | center tb_tile_pressed_img.png 26 | right ds_right_pressed_img.png 27 | right_corner ds_right_corner_pressed_img.png 28 | font DejaVuSans 10 29 | color 255 255 255 30 | offset 0 1 31 | shadow_offset 0 -1 32 | shadow_color 0 0 0 33 | 34 | separator ds_separator_img.png 35 | 36 | pager 37 | idle 38 | border 29 29 29 39 | fill 53 53 53 40 | inactive_window_border 90 90 91 41 | inactive_window_fill 123 123 123 42 | active_window_border 90 90 91 43 | active_window_fill 123 123 123 44 | font DejaVu Sans 8 45 | color 255 255 255 46 | offset -2 5 47 | align right 48 | shadow_offset 1 1 49 | shadow_color 0 0 0 50 | 51 | pressed 52 | border 29 29 29 53 | fill 0 0 0 54 | inactive_window_border 90 90 90 55 | inactive_window_fill 43 43 43 56 | active_window_border 220 220 220 57 | active_window_fill 15 15 15 58 | 59 | height 22 60 | desktop_spacing 4 61 | 62 | taskbar 63 | idle 64 | left tb_left_idle_img.png 65 | center tb_tile_idle_img.png 66 | right tb_right_idle_img.png 67 | font DejaVuSans 10 68 | color 255 255 255 69 | align left 70 | offset 5 1 71 | shadow_offset 0 -1 72 | shadow_color 0 0 0 73 | icon_offset 0 0 74 | 75 | pressed 76 | left tb_left_pressed_img.png 77 | center tb_tile_pressed_img.png 78 | right tb_right_pressed_img.png 79 | font DejaVuSans 10 80 | color 255 255 255 81 | align left 82 | offset 5 1 83 | shadow_offset 0 -1 84 | shadow_color 0 0 0 85 | icon_offset 0 0 86 | 87 | default_icon default_icon.png 88 | task_max_width 230 89 | 90 | systray 91 | icon_size 24 24 92 | 93 | clock 94 | background 95 | left clock_left_img.png 96 | center clock_tile_img.png 97 | right clock_right_img.png 98 | 99 | font DejaVuSans 14 100 | color 255 255 255 101 | offset 0 1 102 | align center 103 | shadow_offset 0 -1 104 | shadow_color 0 0 0 105 | -------------------------------------------------------------------------------- /image-cache.c: -------------------------------------------------------------------------------- 1 | #include "gui.h" 2 | 3 | #define IMAGES_CACHE_SIZE 128 4 | 5 | struct image { 6 | char *filename; 7 | cairo_surface_t *surface; 8 | }; 9 | 10 | static size_t images_cache_n; 11 | static struct image *images_cache[IMAGES_CACHE_SIZE]; 12 | 13 | static struct image *load_image_from_file(const char *path) 14 | { 15 | cairo_surface_t *surface = cairo_image_surface_create_from_png(path); 16 | if (cairo_surface_status(surface) != CAIRO_STATUS_SUCCESS) { 17 | cairo_surface_destroy(surface); 18 | return 0; 19 | } 20 | 21 | struct image *img = xmalloc(sizeof(struct image)); 22 | img->filename = xstrdup(path); 23 | img->surface = surface; 24 | return img; 25 | } 26 | 27 | static struct image *find_image_in_cache(const char *path) 28 | { 29 | size_t i; 30 | for (i = 0; i < images_cache_n; ++i) { 31 | if (strcmp(images_cache[i]->filename, path) == 0) 32 | return images_cache[i]; 33 | } 34 | return 0; 35 | } 36 | 37 | static void try_add_image_to_cache(struct image *img) 38 | { 39 | if (images_cache_n == IMAGES_CACHE_SIZE) 40 | return; 41 | 42 | images_cache[images_cache_n++] = img; 43 | } 44 | 45 | static void free_image(struct image *img, int final) 46 | { 47 | if (final && cairo_surface_get_reference_count(img->surface) > 1) 48 | XWARNING("Image: \"%s\" has big ref count", img->filename); 49 | xfree(img->filename); 50 | cairo_surface_destroy(img->surface); 51 | xfree(img); 52 | } 53 | 54 | cairo_surface_t *get_image(const char *path) 55 | { 56 | struct image *img = find_image_in_cache(path); 57 | if (img) { 58 | cairo_surface_reference(img->surface); 59 | return img->surface; 60 | } 61 | 62 | img = load_image_from_file(path); 63 | if (img) { 64 | try_add_image_to_cache(img); 65 | cairo_surface_reference(img->surface); 66 | return img->surface; 67 | } 68 | return 0; 69 | } 70 | 71 | cairo_surface_t *get_image_part(const char *path, int x, int y, int w, int h) 72 | { 73 | cairo_surface_t *source = get_image(path); 74 | if (!source) 75 | return 0; 76 | 77 | cairo_surface_t *dest = cairo_image_surface_create( 78 | cairo_image_surface_get_format(source), 79 | w,h); 80 | ENSURE(cairo_surface_status(dest) == CAIRO_STATUS_SUCCESS, 81 | "Failed to create cairo image surface"); 82 | 83 | cairo_t *cr = cairo_create(dest); 84 | cairo_set_source_surface(cr, source, -x, -y); 85 | cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); 86 | cairo_paint(cr); 87 | cairo_destroy(cr); 88 | cairo_surface_destroy(source); 89 | return dest; 90 | } 91 | 92 | void clean_image_cache(int final) 93 | { 94 | size_t i; 95 | for (i = 0; i < images_cache_n; ++i) 96 | free_image(images_cache[i], final); 97 | images_cache_n = 0; 98 | } 99 | -------------------------------------------------------------------------------- /themes/xsocam/theme: -------------------------------------------------------------------------------- 1 | panel 2 | position bottom 3 | separator separator_img.png 4 | background tile_img.png 5 | 6 | theme 7 | name XSOcaM 8 | author nsf 9 | 10 | empty 5 11 | no_separator 12 | 13 | desktop_switcher 14 | idle 15 | left_corner ds_left_corner_idle_img.png 16 | left ds_leftright_idle_img.png 17 | center tb_tile_idle_img.png 18 | right ds_leftright_idle_img.png 19 | right_corner ds_right_corner_idle_img.png 20 | font DejaVuSans 8 21 | color 0 0 0 22 | offset 0 1 23 | shadow_offset 0 1 24 | shadow_color 242 242 242 25 | pressed 26 | left_corner ds_left_corner_pressed_img.png 27 | left ds_left_pressed_img.png 28 | center tb_tile_pressed_img.png 29 | right ds_right_pressed_img.png 30 | right_corner ds_right_corner_pressed_img.png 31 | font DejaVuSans 8 32 | color 0 0 0 33 | offset 0 2 34 | shadow_offset 0 1 35 | shadow_color 220 220 220 36 | 37 | separator ds_separator_img.png 38 | 39 | pager 40 | idle 41 | border 76 76 76 42 | fill 178 178 178 43 | inactive_window_border 76 76 76 44 | inactive_window_fill 140 140 140 45 | active_window_border 0 0 0 46 | active_window_fill 80 80 80 47 | font DejaVuSans 8 48 | color 0 0 0 49 | offset -4 5 50 | align right 51 | 52 | pressed 53 | border 0 0 0 54 | fill 220 220 220 55 | inactive_window_border 76 76 76 56 | inactive_window_fill 140 140 140 57 | active_window_border 0 0 0 58 | active_window_fill 80 80 80 59 | font DejaVuSans 8 60 | color 0 0 0 61 | offset -4 5 62 | align right 63 | 64 | height 24 65 | desktop_spacing 5 66 | 67 | launchbar 68 | icon_size 24 24 69 | 70 | taskbar 71 | idle 72 | left tb_left_idle_img.png 73 | center tb_tile_idle_img.png 74 | right tb_right_idle_img.png 75 | font DejaVuSans 8 76 | color 0 0 0 77 | align left 78 | offset 5 1 79 | shadow_offset 0 1 80 | shadow_color 242 242 242 81 | icon_offset 0 0 82 | 83 | pressed 84 | left tb_left_pressed_img.png 85 | center tb_tile_pressed_img.png 86 | right tb_right_pressed_img.png 87 | font DejaVuSans 8 88 | color 0 0 0 89 | align left 90 | offset 5 2 91 | shadow_offset 0 1 92 | shadow_color 220 220 220 93 | icon_offset 0 1 94 | 95 | default_icon default_icon.png 96 | task_max_width 230 97 | 98 | systray 99 | icon_size 24 24 100 | 101 | clock 102 | background 103 | left clock_left_img.png 104 | center clock_tile_img.png 105 | right clock_right_img.png 106 | 107 | font DejaVuSans bold 14 108 | color 70 70 70 109 | offset 0 1 110 | align center 111 | shadow_offset 0 1 112 | shadow_color 242 242 242 113 | -------------------------------------------------------------------------------- /themes/xsocam-dark/theme: -------------------------------------------------------------------------------- 1 | panel 2 | position bottom 3 | separator separator_img.png 4 | background tile_img.png 5 | 6 | theme 7 | name XSOcaM Dark 8 | author nsf 9 | 10 | empty 5 11 | no_separator 12 | 13 | desktop_switcher 14 | idle 15 | left_corner ds_left_corner_idle_img.png 16 | left ds_leftright_idle_img.png 17 | center tb_tile_idle_img.png 18 | right ds_leftright_idle_img.png 19 | right_corner ds_right_corner_idle_img.png 20 | font DejaVuSans 8 21 | color 0 0 0 22 | offset 0 1 23 | shadow_offset 0 1 24 | shadow_color 220 220 220 25 | pressed 26 | left_corner ds_left_corner_pressed_img.png 27 | left ds_left_pressed_img.png 28 | center tb_tile_pressed_img.png 29 | right ds_right_pressed_img.png 30 | right_corner ds_right_corner_pressed_img.png 31 | font DejaVuSans 8 32 | color 0 0 0 33 | offset 0 2 34 | shadow_offset 0 1 35 | shadow_color 200 200 200 36 | 37 | separator ds_separator_img.png 38 | 39 | pager 40 | idle 41 | border 76 76 76 42 | fill 178 178 178 43 | inactive_window_border 76 76 76 44 | inactive_window_fill 140 140 140 45 | active_window_border 0 0 0 46 | active_window_fill 80 80 80 47 | font DejaVuSans 8 48 | color 0 0 0 49 | offset -4 5 50 | align right 51 | 52 | pressed 53 | border 0 0 0 54 | fill 220 220 220 55 | inactive_window_border 76 76 76 56 | inactive_window_fill 140 140 140 57 | active_window_border 0 0 0 58 | active_window_fill 80 80 80 59 | font DejaVuSans 8 60 | color 0 0 0 61 | offset -4 5 62 | align right 63 | 64 | height 24 65 | desktop_spacing 5 66 | 67 | launchbar 68 | icon_size 24 24 69 | 70 | taskbar 71 | idle 72 | left tb_left_idle_img.png 73 | center tb_tile_idle_img.png 74 | right tb_right_idle_img.png 75 | font DejaVuSans 8 76 | color 0 0 0 77 | align left 78 | offset 5 1 79 | shadow_offset 0 1 80 | shadow_color 220 220 220 81 | icon_offset 0 0 82 | 83 | pressed 84 | left tb_left_pressed_img.png 85 | center tb_tile_pressed_img.png 86 | right tb_right_pressed_img.png 87 | font DejaVuSans 8 88 | color 0 0 0 89 | align left 90 | offset 5 2 91 | shadow_offset 0 1 92 | shadow_color 200 200 200 93 | icon_offset 0 1 94 | 95 | default_icon default_icon.png 96 | task_max_width 230 97 | 98 | systray 99 | icon_size 24 24 100 | 101 | clock 102 | background 103 | left clock_left_img.png 104 | center clock_tile_img.png 105 | right clock_right_img.png 106 | 107 | font DejaVuSans bold 14 108 | color 20 20 20 109 | offset 0 1 110 | align center 111 | shadow_offset 0 1 112 | shadow_color 220 220 220 113 | -------------------------------------------------------------------------------- /themes/flora-blue/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Flora Blue 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner ds-left-idle.png 16 | left ds-left-idle.png 17 | center ds-tile-idle.png 18 | right ds-right-idle.png 19 | right_corner ds-right-idle.png 20 | 21 | pressed 22 | left_corner ds-left-active.png 23 | left ds-left-active.png 24 | center ds-tile-active.png 25 | right ds-right-active.png 26 | right_corner ds-right-active.png 27 | 28 | pager 29 | idle 30 | border 0 0 0 31 | fill 51 67 88 32 | inactive_window_border 40 68 86 33 | inactive_window_fill 24 24 24 34 | active_window_border 40 68 86 35 | active_window_fill 24 24 24 36 | font Arial 8 37 | color 230 230 230 38 | offset -2 4 39 | align right 40 | shadow_offset 1 1 41 | shadow_color 0 0 0 42 | 43 | pressed 44 | border 0 0 0 45 | fill 76 115 166 46 | inactive_window_border 150 150 150 47 | inactive_window_fill 22 25 28 48 | active_window_border 211 220 236 49 | active_window_fill 36 75 126 50 | 51 | height 20 52 | desktop_spacing 3 53 | 54 | taskbar 55 | idle 56 | stretched 57 | left tb-left-idle.png 58 | center tb-tile-idle.png 59 | right tb-right-idle.png 60 | font Arial 8 61 | color 230 230 230 62 | offset 5 1 63 | shadow_color 0 0 0 64 | shadow_offset 1 1 65 | icon_offset 0 1 66 | 67 | idle_highlight 68 | stretched 69 | left tb-left-hover.png 70 | center tb-tile-hover.png 71 | right tb-right-hover.png 72 | font Arial 8 73 | color 230 230 230 74 | offset 5 1 75 | shadow_color 0 0 0 76 | shadow_offset 1 1 77 | icon_offset 0 1 78 | 79 | pressed 80 | stretched 81 | left tb-left-active.png 82 | center tb-tile-active.png 83 | right tb-right-active.png 84 | font Arial 8 85 | color 255 255 255 86 | offset 5 1 87 | shadow_color 49 73 102 88 | shadow_offset 1 1 89 | icon_offset 0 1 90 | 91 | pressed_highlight 92 | stretched 93 | left tb-left-active-hover.png 94 | center tb-tile-active-hover.png 95 | right tb-right-active-hover.png 96 | font Arial 8 97 | color 255 255 255 98 | offset 5 1 99 | shadow_color 49 73 102 100 | shadow_offset 1 1 101 | icon_offset 0 1 102 | 103 | task_max_width 250 104 | default_icon default_icon.png 105 | 106 | empty 5 107 | 108 | systray 109 | icon_size 16 16 110 | 111 | empty 5 112 | 113 | clock 114 | font Arial bold 9 115 | color 255 255 255 116 | offset 0 0 117 | align center 118 | shadow_color 0 0 0 119 | shadow_offset 0 0 120 | 121 | time_format %H:%M 122 | 123 | empty 5 -------------------------------------------------------------------------------- /themes/flora-pink/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Flora Pink 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner ds-left-idle.png 16 | left ds-left-idle.png 17 | center ds-tile-idle.png 18 | right ds-right-idle.png 19 | right_corner ds-right-idle.png 20 | 21 | pressed 22 | left_corner ds-left-active.png 23 | left ds-left-active.png 24 | center ds-tile-active.png 25 | right ds-right-active.png 26 | right_corner ds-right-active.png 27 | 28 | pager 29 | idle 30 | border 0 0 0 31 | fill 104 52 74 32 | inactive_window_border 87 41 75 33 | inactive_window_fill 24 24 24 34 | active_window_border 87 41 75 35 | active_window_fill 24 24 24 36 | font Arial 8 37 | color 230 230 230 38 | offset -2 4 39 | align right 40 | shadow_offset 1 1 41 | shadow_color 0 0 0 42 | 43 | pressed 44 | border 0 0 0 45 | fill 166 76 114 46 | inactive_window_border 150 150 150 47 | inactive_window_fill 22 25 28 48 | active_window_border 245 211 222 49 | active_window_fill 125 36 76 50 | 51 | height 20 52 | desktop_spacing 3 53 | 54 | taskbar 55 | idle 56 | stretched 57 | left tb-left-idle.png 58 | center tb-tile-idle.png 59 | right tb-right-idle.png 60 | font Arial 8 61 | color 230 230 230 62 | offset 5 1 63 | shadow_color 0 0 0 64 | shadow_offset 1 1 65 | icon_offset 0 1 66 | 67 | idle_highlight 68 | stretched 69 | left tb-left-hover.png 70 | center tb-tile-hover.png 71 | right tb-right-hover.png 72 | font Arial 8 73 | color 230 230 230 74 | offset 5 1 75 | shadow_color 0 0 0 76 | shadow_offset 1 1 77 | icon_offset 0 1 78 | 79 | pressed 80 | stretched 81 | left tb-left-active.png 82 | center tb-tile-active.png 83 | right tb-right-active.png 84 | font Arial 8 85 | color 255 255 255 86 | offset 5 1 87 | shadow_color 102 49 94 88 | shadow_offset 1 1 89 | icon_offset 0 1 90 | 91 | pressed_highlight 92 | stretched 93 | left tb-left-active-hover.png 94 | center tb-tile-active-hover.png 95 | right tb-right-active-hover.png 96 | font Arial 8 97 | color 255 255 255 98 | offset 5 1 99 | shadow_color 102 49 94 100 | shadow_offset 1 1 101 | icon_offset 0 1 102 | 103 | task_max_width 250 104 | default_icon default_icon.png 105 | 106 | empty 5 107 | 108 | systray 109 | icon_size 16 16 110 | 111 | empty 5 112 | 113 | clock 114 | font Arial bold 9 115 | color 255 255 255 116 | offset 0 0 117 | align center 118 | shadow_color 0 0 0 119 | shadow_offset 0 0 120 | 121 | time_format %H:%M 122 | 123 | empty 5 -------------------------------------------------------------------------------- /themes/flora-green/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Flora Green 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner ds-left-idle.png 16 | left ds-left-idle.png 17 | center ds-tile-idle.png 18 | right ds-right-idle.png 19 | right_corner ds-right-idle.png 20 | 21 | pressed 22 | left_corner ds-left-active.png 23 | left ds-left-active.png 24 | center ds-tile-active.png 25 | right ds-right-active.png 26 | right_corner ds-right-active.png 27 | 28 | pager 29 | idle 30 | border 0 0 0 31 | fill 72 89 56 32 | inactive_window_border 66 87 41 33 | inactive_window_fill 24 24 24 34 | active_window_border 66 87 41 35 | active_window_fill 24 24 24 36 | font Arial 8 37 | color 230 230 230 38 | offset -2 4 39 | align right 40 | shadow_offset 1 1 41 | shadow_color 0 0 0 42 | 43 | pressed 44 | border 0 0 0 45 | fill 120 166 76 46 | inactive_window_border 150 150 150 47 | inactive_window_fill 22 25 28 48 | active_window_border 222 236 214 49 | active_window_fill 78 125 36 50 | 51 | height 20 52 | desktop_spacing 3 53 | 54 | taskbar 55 | idle 56 | stretched 57 | left tb-left-idle.png 58 | center tb-tile-idle.png 59 | right tb-right-idle.png 60 | font Arial 8 61 | color 230 230 230 62 | offset 5 1 63 | shadow_color 0 0 0 64 | shadow_offset 1 1 65 | icon_offset 0 1 66 | 67 | idle_highlight 68 | stretched 69 | left tb-left-hover.png 70 | center tb-tile-hover.png 71 | right tb-right-hover.png 72 | font Arial 8 73 | color 230 230 230 74 | offset 5 1 75 | shadow_color 0 0 0 76 | shadow_offset 1 1 77 | icon_offset 0 1 78 | 79 | pressed 80 | stretched 81 | left tb-left-active.png 82 | center tb-tile-active.png 83 | right tb-right-active.png 84 | font Arial 8 85 | color 255 255 255 86 | offset 5 1 87 | shadow_color 70 102 49 88 | shadow_offset 1 1 89 | icon_offset 0 1 90 | 91 | pressed_highlight 92 | stretched 93 | left tb-left-active-hover.png 94 | center tb-tile-active-hover.png 95 | right tb-right-active-hover.png 96 | font Arial 8 97 | color 255 255 255 98 | offset 5 1 99 | shadow_color 70 102 49 100 | shadow_offset 1 1 101 | icon_offset 0 1 102 | 103 | task_max_width 250 104 | default_icon default_icon.png 105 | 106 | empty 5 107 | 108 | systray 109 | icon_size 16 16 110 | 111 | empty 5 112 | 113 | clock 114 | font Arial bold 9 115 | color 255 255 255 116 | offset 0 0 117 | align center 118 | shadow_color 0 0 0 119 | shadow_offset 0 0 120 | 121 | time_format %H:%M 122 | 123 | empty 5 -------------------------------------------------------------------------------- /themes/striped/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Striped 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner empty.png 16 | left empty.png 17 | center empty.png 18 | right empty.png 19 | right_corner empty.png 20 | font DejaVu Sans condensed bold 9 21 | color 128 128 128 22 | offset 0 0 23 | align center 24 | 25 | pressed 26 | left_corner empty.png 27 | left empty.png 28 | center empty.png 29 | right empty.png 30 | right_corner empty.png 31 | font DejaVu Sans condensed bold 9 32 | color 247 247 247 33 | offset 0 0 34 | shadow_offset 1 1 35 | shadow_color 0 0 0 36 | align center 37 | 38 | pager 39 | idle 40 | border 0 0 0 41 | fill 55 55 55 42 | inactive_window_border 89 89 89 43 | inactive_window_fill 18 18 18 44 | active_window_border 89 89 89 45 | active_window_fill 18 18 18 46 | font DejaVu Sans 8 47 | color 247 247 247 48 | offset -2 3 49 | align right 50 | shadow_offset 1 1 51 | shadow_color 0 0 0 52 | 53 | pressed 54 | border 15 15 15 55 | fill 66 83 34 56 | inactive_window_border 160 160 160 57 | inactive_window_fill 43 43 43 58 | active_window_border 204 235 143 59 | active_window_fill 130 160 74 60 | 61 | height 18 62 | desktop_spacing 3 63 | 64 | launchbar 65 | icon_size 16 16 66 | 67 | empty 5 68 | 69 | taskbar 70 | idle 71 | left tb-lr-idle.png 72 | center empty.png 73 | right tb-lr-idle.png 74 | font DejaVu Sans condensed 8 75 | color 247 247 247 76 | offset 5 1 77 | shadow_offset 1 1 78 | shadow_color 0 0 0 79 | icon_offset 0 0 80 | 81 | idle_highlight 82 | left tb-left-hover.png 83 | center tb-tile-hover.png 84 | right tb-right-hover.png 85 | font DejaVu Sans condensed 8 86 | color 255 255 255 87 | offset 5 1 88 | shadow_offset 1 1 89 | shadow_color 0 0 0 90 | icon_offset 0 0 91 | 92 | pressed 93 | left tb-left-active.png 94 | center tb-tile-active.png 95 | right tb-right-active.png 96 | font DejaVu Sans condensed 8 97 | color 247 247 247 98 | offset 5 2 99 | shadow_offset 1 1 100 | shadow_color 0 0 0 101 | icon_offset 1 1 102 | 103 | pressed_highlight 104 | left tb-left-active-hover.png 105 | center tb-tile-active-hover.png 106 | right tb-right-active-hover.png 107 | font DejaVu Sans condensed 8 108 | color 247 247 247 109 | offset 5 2 110 | shadow_offset 1 1 111 | shadow_color 0 0 0 112 | icon_offset 1 1 113 | 114 | task_max_width 200 115 | default_icon default_icon.png 116 | 117 | empty 7 118 | 119 | systray 120 | icon_size 16 16 121 | icon_spacing 2 122 | 123 | empty 3 124 | 125 | clock 126 | font DejaVu Sans condensed bold 9 127 | color 247 247 247 128 | offset 0 0 129 | shadow_offset 1 1 130 | shadow_color 0 0 0 131 | align center 132 | 133 | time_format %H:%M 134 | 135 | empty 3 -------------------------------------------------------------------------------- /themes/curvy-blue/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Curvy Blue 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | desktop_switcher 12 | idle 13 | left_corner ds.png 14 | left ds.png 15 | center ds.png 16 | right ds.png 17 | right_corner ds-right.png 18 | font DejaVu Sans condensed bold 9 19 | color 0 0 0 20 | offset 0 1 21 | shadow_offset 0 0 22 | 23 | pressed 24 | left_corner ds.png 25 | left ds.png 26 | center ds.png 27 | right ds.png 28 | right_corner ds-right.png 29 | font DejaVu Sans condensed bold 9 30 | color 255 255 255 31 | offset 0 1 32 | shadow_color 0 0 0 33 | shadow_offset 1 1 34 | 35 | pager 36 | idle 37 | border 94 94 94 38 | fill 44 44 44 39 | inactive_window_border 40 68 86 40 | inactive_window_fill 24 24 24 41 | active_window_border 40 68 86 42 | active_window_fill 24 24 24 43 | font DejaVu Sans condensed bold 8 44 | color 255 255 255 45 | offset -1 4 46 | align right 47 | shadow_offset 1 1 48 | shadow_color 0 0 0 49 | 50 | pressed 51 | border 94 94 94 52 | fill 33 69 88 53 | inactive_window_border 150 150 150 54 | inactive_window_fill 22 25 28 55 | active_window_border 103 216 246 56 | active_window_fill 30 80 105 57 | 58 | height 18 59 | desktop_spacing 3 60 | 61 | launchbar 62 | icon_size 16 16 63 | 64 | empty 5 65 | 66 | taskbar 67 | idle 68 | stretched 69 | left tb-left-idle.png 70 | center tile.png 71 | right tb-right.png 72 | font DejaVu Sans condensed 8 73 | color 255 255 255 74 | offset 5 1 75 | shadow_color 0 0 0 76 | shadow_offset 1 1 77 | icon_offset 0 0 78 | 79 | idle_highlight 80 | stretched 81 | left tb-left-active.png 82 | center tb-tile-active.png 83 | right tb-right.png 84 | font DejaVu Sans condensed 8 85 | color 255 255 255 86 | offset 5 1 87 | shadow_color 0 0 0 88 | shadow_offset 1 1 89 | icon_offset 0 0 90 | 91 | pressed 92 | stretched 93 | left tb-left-active.png 94 | center tb-tile-active.png 95 | right tb-right.png 96 | font DejaVu Sans condensed 8 97 | color 255 255 255 98 | offset 5 2 99 | shadow_color 0 0 0 100 | shadow_offset 1 1 101 | icon_offset 0 1 102 | 103 | pressed_highlight 104 | stretched 105 | left tb-left-active-hover.png 106 | center tb-tile-active-hover.png 107 | right tb-right.png 108 | font DejaVu Sans condensed 8 109 | color 255 255 255 110 | offset 5 2 111 | shadow_color 0 0 0 112 | shadow_offset 1 1 113 | icon_offset 0 1 114 | 115 | task_max_width 200 116 | default_icon default_icon.png 117 | 118 | empty 5 119 | 120 | systray 121 | icon_size 16 16 122 | icon_spacing 2 123 | 124 | empty 5 125 | 126 | clock 127 | font DejaVu Sans condensed bold 9 128 | color 255 255 255 129 | offset 0 0 130 | align center 131 | shadow_color 0 0 0 132 | shadow_offset 1 1 133 | 134 | time_format %H:%M 135 | 136 | empty 5 137 | -------------------------------------------------------------------------------- /themes/curvy-green/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Curvy Green 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | desktop_switcher 12 | idle 13 | left_corner ds.png 14 | left ds.png 15 | center ds.png 16 | right ds.png 17 | right_corner ds-right.png 18 | font DejaVu Sans condensed bold 9 19 | color 0 0 0 20 | offset 0 1 21 | shadow_offset 0 0 22 | 23 | pressed 24 | left_corner ds.png 25 | left ds.png 26 | center ds.png 27 | right ds.png 28 | right_corner ds-right.png 29 | font DejaVu Sans condensed bold 9 30 | color 255 255 255 31 | offset 0 1 32 | shadow_color 0 0 0 33 | shadow_offset 1 1 34 | 35 | pager 36 | idle 37 | border 94 94 94 38 | fill 44 44 44 39 | inactive_window_border 66 87 41 40 | inactive_window_fill 24 24 24 41 | active_window_border 66 87 41 42 | active_window_fill 24 24 24 43 | font DejaVu Sans condensed bold 8 44 | color 255 255 255 45 | offset -1 4 46 | align right 47 | shadow_offset 1 1 48 | shadow_color 0 0 0 49 | 50 | pressed 51 | border 94 94 94 52 | fill 62 84 41 53 | inactive_window_border 150 150 150 54 | inactive_window_fill 22 25 28 55 | active_window_border 197 240 127 56 | active_window_fill 71 105 30 57 | 58 | height 18 59 | desktop_spacing 3 60 | 61 | launchbar 62 | icon_size 16 16 63 | 64 | empty 5 65 | 66 | taskbar 67 | idle 68 | stretched 69 | left tb-left-idle.png 70 | center tile.png 71 | right tb-right.png 72 | font DejaVu Sans condensed 8 73 | color 255 255 255 74 | offset 5 1 75 | shadow_color 0 0 0 76 | shadow_offset 1 1 77 | icon_offset 0 0 78 | 79 | idle_highlight 80 | stretched 81 | left tb-left-active.png 82 | center tb-tile-active.png 83 | right tb-right.png 84 | font DejaVu Sans condensed 8 85 | color 255 255 255 86 | offset 5 1 87 | shadow_color 0 0 0 88 | shadow_offset 1 1 89 | icon_offset 0 0 90 | 91 | pressed 92 | stretched 93 | left tb-left-active.png 94 | center tb-tile-active.png 95 | right tb-right.png 96 | font DejaVu Sans condensed 8 97 | color 255 255 255 98 | offset 5 2 99 | shadow_color 0 0 0 100 | shadow_offset 1 1 101 | icon_offset 0 1 102 | 103 | pressed_highlight 104 | stretched 105 | left tb-left-active-hover.png 106 | center tb-tile-active-hover.png 107 | right tb-right.png 108 | font DejaVu Sans condensed 8 109 | color 255 255 255 110 | offset 5 2 111 | shadow_color 0 0 0 112 | shadow_offset 1 1 113 | icon_offset 0 1 114 | 115 | task_max_width 200 116 | default_icon default_icon.png 117 | 118 | empty 5 119 | 120 | systray 121 | icon_size 16 16 122 | icon_spacing 2 123 | 124 | empty 5 125 | 126 | clock 127 | font DejaVu Sans condensed bold 9 128 | color 255 255 255 129 | offset 0 0 130 | align center 131 | shadow_color 0 0 0 132 | shadow_offset 1 1 133 | 134 | time_format %H:%M 135 | 136 | empty 5 137 | -------------------------------------------------------------------------------- /themes/curvy-pink/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Curvy Pink 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | desktop_switcher 12 | idle 13 | left_corner ds.png 14 | left ds.png 15 | center ds.png 16 | right ds.png 17 | right_corner ds-right.png 18 | font DejaVu Sans condensed bold 9 19 | color 0 0 0 20 | offset 0 1 21 | shadow_offset 0 0 22 | 23 | pressed 24 | left_corner ds.png 25 | left ds.png 26 | center ds.png 27 | right ds.png 28 | right_corner ds-right.png 29 | font DejaVu Sans condensed bold 9 30 | color 255 255 255 31 | offset 0 1 32 | shadow_color 0 0 0 33 | shadow_offset 1 1 34 | 35 | pager 36 | idle 37 | border 94 94 94 38 | fill 44 44 44 39 | inactive_window_border 87 41 75 40 | inactive_window_fill 24 24 24 41 | active_window_border 87 41 75 42 | active_window_fill 24 24 24 43 | font DejaVu Sans condensed bold 8 44 | color 255 255 255 45 | offset -1 4 46 | align right 47 | shadow_offset 1 1 48 | shadow_color 0 0 0 49 | 50 | pressed 51 | border 94 94 94 52 | fill 80 36 67 53 | inactive_window_border 150 150 150 54 | inactive_window_fill 22 25 28 55 | active_window_border 235 113 219 56 | active_window_fill 105 30 90 57 | 58 | height 18 59 | desktop_spacing 3 60 | 61 | launchbar 62 | icon_size 16 16 63 | 64 | empty 5 65 | 66 | taskbar 67 | idle 68 | stretched 69 | left tb-left-idle.png 70 | center tile.png 71 | right tb-right.png 72 | font DejaVu Sans condensed 8 73 | color 255 255 255 74 | offset 5 1 75 | shadow_color 0 0 0 76 | shadow_offset 1 1 77 | icon_offset 0 0 78 | 79 | idle_highlight 80 | stretched 81 | left tb-left-active.png 82 | center tb-tile-active.png 83 | right tb-right.png 84 | font DejaVu Sans condensed 8 85 | color 255 255 255 86 | offset 5 1 87 | shadow_color 0 0 0 88 | shadow_offset 1 1 89 | icon_offset 0 0 90 | 91 | pressed 92 | stretched 93 | left tb-left-active.png 94 | center tb-tile-active.png 95 | right tb-right.png 96 | font DejaVu Sans condensed 8 97 | color 255 255 255 98 | offset 5 2 99 | shadow_color 0 0 0 100 | shadow_offset 1 1 101 | icon_offset 0 1 102 | 103 | pressed_highlight 104 | stretched 105 | left tb-left-active-hover.png 106 | center tb-tile-active-hover.png 107 | right tb-right.png 108 | font DejaVu Sans condensed 8 109 | color 255 255 255 110 | offset 5 2 111 | shadow_color 0 0 0 112 | shadow_offset 1 1 113 | icon_offset 0 1 114 | 115 | task_max_width 200 116 | default_icon default_icon.png 117 | 118 | empty 5 119 | 120 | systray 121 | icon_size 16 16 122 | icon_spacing 2 123 | 124 | empty 5 125 | 126 | clock 127 | font DejaVu Sans condensed bold 9 128 | color 255 255 255 129 | offset 0 0 130 | align center 131 | shadow_color 0 0 0 132 | shadow_offset 1 1 133 | 134 | time_format %H:%M 135 | 136 | empty 5 137 | -------------------------------------------------------------------------------- /themes/alduin-glossy/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Alduin Glossy 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 22 25 28 44 | inactive_window_border 61 71 82 45 | inactive_window_fill 22 25 28 46 | active_window_border 61 71 82 47 | active_window_fill 22 25 28 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 48 105 143 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 172 250 251 61 | active_window_fill 80 138 174 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor launchbar-arrow.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 200 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/auriel-blue-opaque/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Auriel Blue Opaque 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 24 24 24 44 | inactive_window_border 40 68 86 45 | inactive_window_fill 24 24 24 46 | active_window_border 40 68 86 47 | active_window_fill 24 24 24 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 29 93 108 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 118 255 255 61 | active_window_fill 29 93 108 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor separator.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 210 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/auriel-blue-smooth/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Auriel Blue Smooth 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 24 24 24 44 | inactive_window_border 40 68 86 45 | inactive_window_fill 24 24 24 46 | active_window_border 40 68 86 47 | active_window_fill 24 24 24 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 29 93 108 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 118 255 255 61 | active_window_fill 29 93 108 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor separator.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 210 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/auriel-green-opaque/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Auriel Green Opaque 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 24 24 24 44 | inactive_window_border 66 87 41 45 | inactive_window_fill 24 24 24 46 | active_window_border 66 87 41 47 | active_window_fill 24 24 24 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 72 108 29 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 218 255 118 61 | active_window_fill 90 133 40 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor separator.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 210 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/auriel-green-smooth/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Auriel Green Smooth 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 24 24 24 44 | inactive_window_border 66 87 41 45 | inactive_window_fill 24 24 24 46 | active_window_border 66 87 41 47 | active_window_fill 24 24 24 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 72 108 29 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 218 255 118 61 | active_window_fill 90 133 40 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor separator.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 210 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/auriel-pink-opaque/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Auriel Pink Opaque 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 24 24 24 44 | inactive_window_border 87 41 75 45 | inactive_window_fill 24 24 24 46 | active_window_border 87 41 75 47 | active_window_fill 24 24 24 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 107 32 88 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 255 128 245 61 | active_window_fill 133 40 108 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor separator.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 210 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/auriel-pink-smooth/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Auriel Pink Smooth 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 24 24 24 44 | inactive_window_border 87 41 75 45 | inactive_window_fill 24 24 24 46 | active_window_border 87 41 75 47 | active_window_fill 24 24 24 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 107 32 88 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 255 128 245 61 | active_window_fill 133 40 108 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor separator.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 210 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 -------------------------------------------------------------------------------- /themes/alduin-smooth/theme: -------------------------------------------------------------------------------- 1 | theme 2 | name Alduin Smooth 3 | author weakhead 4 | # Original author: lassekongo83 5 | # License: Creative Commons Attribution-Noncommercial-Share Alike 3.0 6 | 7 | panel 8 | position bottom 9 | background tile.png 10 | 11 | empty 3 12 | 13 | desktop_switcher 14 | idle 15 | left_corner tile.png 16 | left tile.png 17 | center tile.png 18 | right tile.png 19 | right_corner tile.png 20 | font DejaVu Sans condensed 9 21 | color 153 153 153 22 | align center 23 | offset 0 0 24 | shadow_color 0 0 0 25 | shadow_offset 1 1 26 | 27 | pressed 28 | left_corner tile.png 29 | left tile.png 30 | center tile.png 31 | right tile.png 32 | right_corner tile.png 33 | font DejaVu Sans condensed bold 9 34 | color 255 255 255 35 | align center 36 | offset 0 0 37 | shadow_color 0 0 0 38 | shadow_offset 1 1 39 | 40 | pager 41 | idle 42 | border 0 0 0 43 | fill 22 25 28 44 | inactive_window_border 61 71 82 45 | inactive_window_fill 22 25 28 46 | active_window_border 61 71 82 47 | active_window_fill 22 25 28 48 | font DejaVu Sans condensed bold 8 49 | color 255 255 255 50 | offset -2 3 51 | align right 52 | shadow_offset 1 1 53 | shadow_color 0 0 0 54 | 55 | pressed 56 | border 0 0 0 57 | fill 48 105 143 58 | inactive_window_border 150 150 150 59 | inactive_window_fill 22 25 28 60 | active_window_border 172 250 251 61 | active_window_fill 80 138 174 62 | 63 | height 18 64 | desktop_spacing 3 65 | 66 | launchbar 67 | icon_size 16 16 68 | 69 | decor launchbar-arrow.png 70 | 71 | taskbar 72 | idle 73 | stretched 74 | left tb-lr-idle.png 75 | center tile.png 76 | right tb-lr-idle.png 77 | font DejaVu Sans condensed 8 78 | color 255 255 255 79 | offset 5 1 80 | shadow_color 0 0 0 81 | shadow_offset 1 1 82 | icon_offset 0 0 83 | 84 | idle_highlight 85 | stretched 86 | left tb-left-hover.png 87 | center tb-tile-hover.png 88 | right tb-right-hover.png 89 | font DejaVu Sans condensed 8 90 | color 255 255 255 91 | offset 5 1 92 | shadow_color 0 0 0 93 | shadow_offset 1 1 94 | icon_offset 0 0 95 | 96 | pressed 97 | stretched 98 | left tb-left-active.png 99 | center tb-tile-active.png 100 | right tb-right-active.png 101 | font DejaVu Sans condensed 8 102 | color 255 255 255 103 | offset 5 1 104 | shadow_color 0 0 0 105 | shadow_offset 1 1 106 | icon_offset 0 0 107 | 108 | pressed_highlight 109 | stretched 110 | left tb-left-active-hover.png 111 | center tb-tile-active-hover.png 112 | right tb-right-active-hover.png 113 | font DejaVu Sans condensed 8 114 | color 255 255 255 115 | offset 5 1 116 | shadow_color 0 0 0 117 | shadow_offset 1 1 118 | icon_offset 0 0 119 | 120 | task_max_width 200 121 | default_icon default_icon.png 122 | 123 | empty 5 124 | 125 | systray 126 | icon_size 16 16 127 | 128 | empty 5 129 | 130 | clock 131 | font DejaVu Sans condensed bold 9 132 | color 255 255 255 133 | offset 0 0 134 | align center 135 | shadow_color 0 0 0 136 | shadow_offset 1 1 137 | 138 | time_format %H:%M 139 | 140 | empty 5 141 | -------------------------------------------------------------------------------- /changes.txt: -------------------------------------------------------------------------------- 1 | Bmpanel2 Changes 2 | ================ 3 | 4 | This is a ChangeLog, but in the asciidoc format. 5 | 6 | .Changes from *2.0a* to *2.0.1a* 7 | - Man page fix. 8 | 9 | .Changes from *2.0.1a* to *2.1pre1* 10 | - Fix http://code.google.com/p/bmpanel2/issues/detail?id=1[xfwm4 modal 11 | dialogs] 12 | - Change texture filtering mode for stretching modes to PAD (works like 13 | GL_CLAMP_TO_EDGE). 14 | - New "center_offsets" parameter for stretching modes. 15 | - Desktop switcher uses now the maximum width of all button states to calculate 16 | a width for its button. 17 | - Implementation of "demands attention" feature. Flashy taskbar buttons. 18 | - SIGUSR1 signal forces bmpanel2 to reconfigure itself. 19 | - Change default blending mode to OVER in pseudo-transparency renderer. 20 | - Add "paint_replace" widget parameter, it forces a widget to use COPY blending 21 | mode instead of OVER (for pseudo-transparency renderer). 22 | - Man page is being installed to $(PREFIX)/share/man/man1 now instead of 23 | $(PREFIX)/man/man1. 24 | - Add bmpanel2cfg utility. Also add python library to do remote bmpanel2 25 | manipulations (the library is very unstable, interfaces will be changed). 26 | - Integrate few themes to the git tree (alduin, auriel, curvy, flora, striped). 27 | - Add COPYING file (BSD/MIT style license). 28 | - Minor bugfixes and tweaks. 29 | - Documentation updates. 30 | - Build scripts improvements. 31 | 32 | .Changes from *2.1pre1* to *2.1* 33 | - The 2.1 release is skipped. Consider 2.1pre1 as 2.1. 34 | 35 | .Changes from *2.1* to *2.2* (not released yet) 36 | - Fix transparency issues (garbage instead of wallpaper). 37 | - Add ESETROOT_PMAP_ID handing, just in case. 38 | - Enable locale for time in bmpanel2 (month names are now displayed correctly 39 | according to your locale). 40 | - Add UTF8_STRING variant for WM(_ICON)_NAME properties. Fixes weird 41 | applications on weird WMs, like opera on pekwm. 42 | - Get rid of the workspace hints usage. Therefore bmpanel2 can't stack its 43 | instances one on top of another anymore. It was buggy anyway. 44 | - Add support for multiple monitors (Xinerama and XRandR). 45 | - Fix wrong width calculation for clock text. 46 | - Add a command line option that overrides default config file (--config). 47 | - Add "monitor" option to the config file. 48 | - Add "task_visible_monitors" parameter to the config file for the taskbar. 49 | - Fix bug with ellipsized right/center aligned text. 50 | - Add widget alternatives system and "preferred_alternatives" parameter to the 51 | config file. 52 | - Add "pager" widget as a first alternative to "desktop switcher". 53 | - Add "pager_current_monitor_only" boolean option to the config file. 54 | - Change signals behaviour for remote bmpanel2 reconfiguration. It uses SIGUSR1 55 | to reload the config only and SIGUSR2 to reload the config and a theme too. 56 | - Add customizable mouse actions (use, drag, kill). 57 | - Add "pager" alternative to all themes in the git tree (thanks weakhead). 58 | - Fix pekwm floating point exception bug (there was a logic error causing 59 | division by zero). 60 | - Add "show-desktop" mouse action which implements _NETWM_SHOWING_DESKTOP. 61 | - Remove GCC warning caused by size_t and printf (thanks Matthew William Cox). 62 | And that was true probably for x86_64 archs only, because size_t is 64 bits 63 | here. 64 | - Bmpanel2cfg updates according to changes (not exactly up to date). 65 | - Minor bugfixes, tweaks, build system imporvements and code cleanups. 66 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 2 | 3 | PROJECT(BMPANEL) 4 | SET(BMPANEL_VERSION_MAJOR "2") 5 | SET(BMPANEL_VERSION_MINOR "1") 6 | SET(BMPANEL_VERSION "${BMPANEL_VERSION_MAJOR}.${BMPANEL_VERSION_MINOR}") 7 | 8 | SET(BMPANEL_EXECUTABLE_NAME "bmpanel${BMPANEL_VERSION_MAJOR}") 9 | 10 | # always compile with -Wall 11 | SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu99") 12 | 13 | SET(SOURCES 14 | ${CMAKE_CURRENT_SOURCE_DIR}/memory.c 15 | ${CMAKE_CURRENT_SOURCE_DIR}/message.c 16 | ${CMAKE_CURRENT_SOURCE_DIR}/config-parser.c 17 | ${CMAKE_CURRENT_SOURCE_DIR}/bmpanel.c 18 | ${CMAKE_CURRENT_SOURCE_DIR}/xutil.c 19 | ${CMAKE_CURRENT_SOURCE_DIR}/panel.c 20 | ${CMAKE_CURRENT_SOURCE_DIR}/image-cache.c 21 | ${CMAKE_CURRENT_SOURCE_DIR}/event-dispatchers.c 22 | ${CMAKE_CURRENT_SOURCE_DIR}/xdg.c 23 | ${CMAKE_CURRENT_SOURCE_DIR}/settings.c 24 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-interface.c 25 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-alternatives.c 26 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-utils.c 27 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-taskbar.c 28 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-clock.c 29 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-decor.c 30 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-desktops.c 31 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-pager.c 32 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-systray.c 33 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-launchbar.c 34 | ${CMAKE_CURRENT_SOURCE_DIR}/widget-empty.c 35 | ${CMAKE_CURRENT_SOURCE_DIR}/render-normal.c 36 | ${CMAKE_CURRENT_SOURCE_DIR}/render-pseudo.c 37 | ${CMAKE_CURRENT_SOURCE_DIR}/args.c 38 | ${CMAKE_CURRENT_SOURCE_DIR}/strbuf.c 39 | ) 40 | 41 | # OPTIONS 42 | OPTION(BMPANEL2_FEATURE_MANPAGE "Build man page? (requires asciidoc and docbook-xsl)" ON) 43 | OPTION(BMPANEL2_FEATURE_CONFIG "Install PyGTK based configuration tool? (requires Python and PyGTK)" ON) 44 | OPTION(BMPANEL2_FEATURE_XRANDR "Use Xrandr for multihead setups?" OFF) 45 | OPTION(BMPANEL2_FEATURE_XINERAMA "Use Xinerama for multihead setups?" ON) 46 | 47 | # xlib 48 | FIND_PACKAGE(X11 REQUIRED) 49 | 50 | IF(X11_Xrandr_FOUND AND BMPANEL2_FEATURE_XRANDR) 51 | SET(HAVE_XRANDR TRUE) 52 | SET(OPT_INCLUDES ${OPT_INCLUDES} ${X11_Xrandr_INCLUDE_PATH}) 53 | SET(OPT_LIBS ${OPT_LIBS} ${X11_Xrandr_LIB}) 54 | ENDIF(X11_Xrandr_FOUND AND BMPANEL2_FEATURE_XRANDR) 55 | 56 | IF(X11_Xinerama_FOUND AND BMPANEL2_FEATURE_XINERAMA) 57 | SET(HAVE_XINERAMA TRUE) 58 | SET(OPT_INCLUDES ${OPT_INCLUDES} ${X11_Xinerama_INCLUDE_PATH}) 59 | SET(OPT_LIBS ${OPT_LIBS} ${X11_Xinerama_LIB}) 60 | ENDIF(X11_Xinerama_FOUND AND BMPANEL2_FEATURE_XINERAMA) 61 | 62 | # pkg-config packages 63 | FIND_PACKAGE(PkgConfig REQUIRED) 64 | PKG_CHECK_MODULES(CAIRO REQUIRED cairo) 65 | PKG_CHECK_MODULES(PANGO REQUIRED pangocairo) 66 | 67 | # i can use FindGTK here probably, but since I need only glib.. 68 | PKG_CHECK_MODULES(GLIB REQUIRED glib-2.0) 69 | PKG_CHECK_MODULES(GTHREAD REQUIRED gthread-2.0) 70 | 71 | # configuration 72 | CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) 73 | INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) 74 | 75 | INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR} ${CAIRO_INCLUDE_DIRS} ${OPT_INCLUDES} 76 | ${GLIB_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS}) 77 | 78 | ADD_EXECUTABLE(${BMPANEL_EXECUTABLE_NAME} ${SOURCES}) 79 | TARGET_LINK_LIBRARIES(${BMPANEL_EXECUTABLE_NAME} ${X11_LIBRARIES} ${X11_Xext_LIB} ${OPT_LIBS} 80 | ${CAIRO_LIBRARIES} ${GLIB_LIBRARIES} ${GTHREAD_LIBRARIES} ${PANGO_LIBRARIES}) 81 | 82 | # install commands 83 | INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${BMPANEL_EXECUTABLE_NAME} 84 | DESTINATION bin) 85 | INSTALL(DIRECTORY themes 86 | DESTINATION share/bmpanel2) 87 | 88 | IF(BMPANEL2_FEATURE_CONFIG) 89 | FIND_PACKAGE(PythonInterp) 90 | IF(PYTHONINTERP_FOUND) 91 | CONFIGURE_FILE(CMake/InstallBmpanel2Cfg.cmake.in CMake/InstallBmpanel2Cfg.cmake @ONLY) 92 | INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/CMake/InstallBmpanel2Cfg.cmake) 93 | ENDIF(PYTHONINTERP_FOUND) 94 | ENDIF(BMPANEL2_FEATURE_CONFIG) 95 | 96 | ADD_SUBDIRECTORY(man) 97 | -------------------------------------------------------------------------------- /array.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "util.h" 4 | 5 | /* 6 | XXX: evil macros, but it shows the arrays concept, so.. leaving it here 7 | #define DECLARE_ARRAY(type, name) \ 8 | type *name; \ 9 | size_t name##_n; \ 10 | size_t name##_alloc 11 | */ 12 | 13 | /* Init functions, at least one of them should be called on uninitialized 14 | * array. */ 15 | 16 | #define INIT_EMPTY_ARRAY(array) \ 17 | do { \ 18 | array = 0; \ 19 | array##_n = 0; \ 20 | array##_alloc = 0; \ 21 | } while (0) 22 | 23 | #define INIT_ARRAY(array, size) \ 24 | do { \ 25 | array = xmalloc(size * sizeof(array[0])); \ 26 | array##_n = 0; \ 27 | array##_alloc = size; \ 28 | } while (0) 29 | 30 | /* ----------------------------------------------------------------------- */ 31 | 32 | #define ALLOC_NR(x) (((x) + 16) * 3 / 2) 33 | 34 | /* this one can be omitted in non-debug version */ 35 | #ifdef NDEBUG 36 | #define CHECK_ARRAY_BOUNDS(array, index) ((void)0); 37 | #else 38 | #define CHECK_ARRAY_BOUNDS(array, index) \ 39 | if (index >= array##_n) { \ 40 | XWARNING("Array: bounds were broken: (r: %u, n: %u)", \ 41 | index, array##_n); \ 42 | break; \ 43 | } 44 | #endif 45 | 46 | /* ----------------------------------------------------------------------- */ 47 | 48 | #define ENSURE_ARRAY_CAPACITY(array, capacity) \ 49 | do { \ 50 | if (capacity > array##_alloc) { \ 51 | size_t newsize = ALLOC_NR(array##_alloc); \ 52 | if (newsize < capacity) \ 53 | newsize = capacity; \ 54 | \ 55 | void *newmem = xmalloc(newsize * sizeof(array[0])); \ 56 | if (array##_n) { \ 57 | memcpy(newmem, array, array##_n * sizeof(array[0])); \ 58 | } \ 59 | if (array) \ 60 | xfree(array); \ 61 | array = newmem; \ 62 | array##_alloc = newsize; \ 63 | } \ 64 | } while (0) 65 | 66 | #define FREE_ARRAY(array) \ 67 | do { \ 68 | if (array) \ 69 | xfree(array); \ 70 | array = 0; \ 71 | array##_n = 0; \ 72 | array##_alloc = 0; \ 73 | } while (0) 74 | 75 | #define CLEAR_ARRAY(array) \ 76 | do { \ 77 | array##_n = 0; \ 78 | } while (0) 79 | 80 | #define ARRAY_INSERT_AFTER(array, index, elt) \ 81 | do { \ 82 | CHECK_ARRAY_BOUNDS(array, index) \ 83 | ENSURE_ARRAY_CAPACITY(array, array##_n + 1); \ 84 | if (index == array##_n - 1) { \ 85 | array[array##_n++] = elt; \ 86 | } else { \ 87 | memmove(&array[index+2], &array[index+1], \ 88 | (array##_n-index-1) * sizeof(array[0])); \ 89 | array[index+1] = elt; \ 90 | array##_n++; \ 91 | } \ 92 | } while (0) 93 | 94 | #define ARRAY_INSERT_BEFORE(array, index, elt) \ 95 | do { \ 96 | CHECK_ARRAY_BOUNDS(array, index) \ 97 | ENSURE_ARRAY_CAPACITY(array, array##_n + 1); \ 98 | memmove(&array[index+1], &array[index], \ 99 | (array##_n-index) * sizeof(array[0])); \ 100 | array[index] = elt; \ 101 | array##_n++; \ 102 | } while (0) 103 | 104 | #define ARRAY_APPEND(array, elt) \ 105 | do { \ 106 | ENSURE_ARRAY_CAPACITY(array, array##_n + 1); \ 107 | array[array##_n++] = elt; \ 108 | } while (0) 109 | 110 | #define ARRAY_PREPEND(array, elt) \ 111 | do { \ 112 | ENSURE_ARRAY_CAPACITY(array, array##_n + 1); \ 113 | memmove(array+1, array, array##_n * sizeof(array[0])); \ 114 | array[0] = elt; \ 115 | array##_n++; \ 116 | } while (0) 117 | 118 | #define ARRAY_REMOVE(array, index) \ 119 | do { \ 120 | CHECK_ARRAY_BOUNDS(array, index) \ 121 | memmove(&array[index], &array[index+1], \ 122 | (array##_n-index-1) * sizeof(array[0])); \ 123 | array##_n--; \ 124 | } while (0) 125 | 126 | #define SHRINK_ARRAY(array) \ 127 | do { \ 128 | if (array##_n == 0) { \ 129 | xfree(array); \ 130 | array = 0; \ 131 | array##_alloc = 0; \ 132 | } else if (array##_n < array##_alloc) { \ 133 | void *newmem = xmalloc(array##_n * sizeof(array[0])); \ 134 | memcpy(newmem, array, array##_n * sizeof(array[0])); \ 135 | xfree(array); \ 136 | array = newmem; \ 137 | array##_alloc = array##_n; \ 138 | } \ 139 | } while (0) 140 | -------------------------------------------------------------------------------- /config-parser.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "util.h" 4 | 5 | /** 6 | * \defgroup config_parser Config format parser 7 | * 8 | * A simple tree-like format parser. 9 | * 10 | * It is used for bmpanel2 config and themes. The config may look like this: 11 | * @code 12 | * #--------------------------------------------- 13 | * # panel 14 | * #--------------------------------------------- 15 | * panel 16 | * position bottom 17 | * separator separator_img.png 18 | * background tile_img.png 19 | * 20 | * #--------------------------------------------- 21 | * # taskbar (this is a comment) 22 | * #--------------------------------------------- 23 | * taskbar 24 | * idle 25 | * left tb_left_idle_img.png 26 | * center tb_tile_idle_img.png 27 | * right tb_right_idle_img.png 28 | * font DejaVuSans 8 29 | * color 255 255 255 30 | * align left 31 | * offset 5 1 32 | * 33 | * pressed 34 | * left tb_left_pressed_img.png 35 | * center tb_tile_pressed_img.png 36 | * right tb_right_pressed_img.png 37 | * font DejaVuSans 8 38 | * color 255 255 255 39 | * align left 40 | * offset 5 1 41 | * 42 | * default_icon default_icon.png 43 | * offset 0 1 44 | * 45 | * @endcode 46 | */ 47 | /*@{*/ 48 | 49 | /** 50 | * Named config format entry with optional associated value and children. 51 | * 52 | * * It is capable of building trees of entries. 53 | */ 54 | struct config_format_entry { 55 | char *name; /**< The name. */ 56 | char *value; /**< The value or 0 if none. */ 57 | 58 | struct config_format_entry *parent; /**< Parent entry or 0 if none. */ 59 | 60 | size_t children_n; /**< Number of children entries. */ 61 | struct config_format_entry *children; /**< Array of children entries. */ 62 | 63 | size_t line; /**< Line in the config file, useful for error messages. */ 64 | }; 65 | 66 | /** 67 | * Config format tree representation. 68 | */ 69 | struct config_format_tree { 70 | /** The directory containing the config file. */ 71 | char *dir; 72 | 73 | /** 74 | * Tree root. 75 | * 76 | * Name and value of this root always point to zero. Actually, only 77 | * \p children_n and \p children values are meaningful. 78 | */ 79 | struct config_format_entry root; 80 | 81 | /** 82 | * A buffer containing modified config format data (used for in-situ 83 | * parsing). 84 | * 85 | * Usually it's a pointer to a zero-terminated string, which 86 | * represents modified contents of a config file. Normally not used 87 | * directly (private data). 88 | */ 89 | char *buf; 90 | }; 91 | 92 | /** 93 | * Load a \p tree from a \p file. 94 | * 95 | * After successful loading, the \p tree should be released using 96 | * free_config_format_tree() function when the data isn't needed anymore. 97 | * 98 | * @param[out] tree The tree to load to. 99 | * @param[in] file The file to load from. 100 | * 101 | * @retval 0 Everything is fine. 102 | * @retval -1 An error occured. Also an error message is printed to the stderr. 103 | */ 104 | int load_config_format_tree(struct config_format_tree *tree, const char *file); 105 | 106 | /** 107 | * Free the loaded tree. 108 | * 109 | * @param[in] tree The tree structure to free. 110 | */ 111 | void free_config_format_tree(struct config_format_tree *tree); 112 | 113 | /** 114 | * Look for a child entry by name. 115 | * 116 | * @param[in] e The entry where to search. 117 | * @param[in] name The name of a searched entry. 118 | * 119 | * @return The null pointer if not found, a pointer to the entry on success. 120 | */ 121 | struct config_format_entry *find_config_format_entry(struct config_format_entry *e, 122 | const char *name); 123 | 124 | /** 125 | * Look for a child entry value by name. 126 | * 127 | * @param[in] e The entry where to search. 128 | * @param[in] name The name of a searched entry. 129 | * 130 | * @return The null pointer if not found, a pointer to the value on success. 131 | */ 132 | char *find_config_format_entry_value(struct config_format_entry *e, 133 | const char *name); 134 | 135 | /** 136 | * Write a path of an entry to a buffer using parent information. 137 | * 138 | * The written path format looks like this: path/to/an/entry 139 | * 140 | * @param[out] buf The buffer to write the path to. 141 | * @param[in] size The size of the buffer. 142 | * @param[in] e We're interested in a path of that entry. 143 | */ 144 | void config_format_entry_path(char *buf, size_t size, struct config_format_entry *e); 145 | 146 | /*@}*/ 147 | -------------------------------------------------------------------------------- /render-pseudo.c: -------------------------------------------------------------------------------- 1 | #include "gui.h" 2 | #include "widget-utils.h" 3 | 4 | static void create_dc(struct panel *p); 5 | static void blit(struct panel *p, int x, int y, unsigned int w, unsigned int h); 6 | static void create_private(struct panel *p); 7 | static void free_private(struct panel *p); 8 | static void update_bg(struct panel *p); 9 | static void panel_resize(struct panel *p); 10 | 11 | struct render_interface render_pseudo = { 12 | .name = "pseudo", 13 | .create_dc = create_dc, 14 | .blit = blit, 15 | .create_private = create_private, 16 | .free_private = free_private, 17 | .update_bg = update_bg, 18 | .panel_resize = panel_resize 19 | }; 20 | 21 | /* 22 | * blit_cr is a real p->bg interface 23 | * backbuf is a storage for p->cr 24 | */ 25 | struct pseudo_render { 26 | Pixmap buf; 27 | cairo_t *buf_cr; 28 | cairo_t *blit_cr; 29 | cairo_surface_t *wallpaper; 30 | }; 31 | 32 | static void create_private(struct panel *p) 33 | { 34 | struct x_connection *c = &p->connection; 35 | struct pseudo_render *pr = xmallocz(sizeof(struct pseudo_render)); 36 | 37 | pr->blit_cr = create_cairo_for_pixmap(c, p->bg, p->width, p->height); 38 | pr->buf = x_create_default_pixmap(c, p->width, p->height); 39 | pr->buf_cr = create_cairo_for_pixmap(c, pr->buf, p->width, p->height); 40 | 41 | if (c->root_pixmap != None) 42 | pr->wallpaper = create_cairo_surface_for_pixmap(c, c->root_pixmap, 43 | c->screen_width, 44 | c->screen_height); 45 | p->render_private = (void*)pr; 46 | } 47 | 48 | static void free_private(struct panel *p) 49 | { 50 | Display *dpy = p->connection.dpy; 51 | struct pseudo_render *pr = p->render_private; 52 | cairo_destroy(pr->buf_cr); 53 | cairo_destroy(pr->blit_cr); 54 | if (pr->wallpaper) 55 | cairo_surface_destroy(pr->wallpaper); 56 | XFreePixmap(dpy, pr->buf); 57 | xfree(pr); 58 | } 59 | 60 | static void create_dc(struct panel *p) 61 | { 62 | cairo_surface_t *backbuf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 63 | p->width, p->height); 64 | 65 | p->cr = cairo_create(backbuf); 66 | cairo_surface_destroy(backbuf); 67 | } 68 | 69 | static void blit(struct panel *p, int x, int y, unsigned int w, unsigned int h) 70 | { 71 | Display *dpy = p->connection.dpy; 72 | struct pseudo_render *pr = p->render_private; 73 | 74 | /* draw wallpaper or clear buffer */ 75 | if (pr->wallpaper) { 76 | blit_image_ex(pr->wallpaper, pr->buf_cr, p->x + x, p->y + y, 77 | w, h, x, y); 78 | } else { 79 | cairo_save(pr->buf_cr); 80 | cairo_set_source_rgb(pr->buf_cr, 0,0,0); 81 | cairo_paint(pr->buf_cr); 82 | cairo_restore(pr->buf_cr); 83 | } 84 | /* composite gui with background */ 85 | blit_image_ex(cairo_get_target(p->cr), pr->buf_cr, x, y, w, h, x, y); 86 | cairo_save(p->cr); 87 | cairo_set_operator(p->cr, CAIRO_OPERATOR_SOURCE); 88 | cairo_set_source_rgba(p->cr, 0, 0, 0, 0); 89 | cairo_paint(p->cr); 90 | cairo_restore(p->cr); 91 | 92 | /* put everything to the background pixmap and clear area */ 93 | blit_image_ex(cairo_get_target(pr->buf_cr), pr->blit_cr, x, y, w, h, x, y); 94 | XClearArea(dpy, p->win, x, y, w, h, False); 95 | } 96 | 97 | static void update_bg(struct panel *p) 98 | { 99 | struct x_connection *c = &p->connection; 100 | struct pseudo_render *pr = p->render_private; 101 | 102 | cairo_surface_destroy(pr->wallpaper); 103 | 104 | if (c->root_pixmap != None) 105 | pr->wallpaper = create_cairo_surface_for_pixmap(c, c->root_pixmap, 106 | c->screen_width, 107 | c->screen_height); 108 | p->needs_expose = 1; 109 | } 110 | 111 | static void panel_resize(struct panel *p) 112 | { 113 | struct x_connection *c = &p->connection; 114 | struct pseudo_render *pr = (struct pseudo_render*)p->render_private; 115 | 116 | /* pr->wallpaper */ 117 | update_bg(p); 118 | 119 | /* p->cr */ 120 | cairo_destroy(p->cr); 121 | cairo_surface_t *backbuf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 122 | p->width, p->height); 123 | 124 | p->cr = cairo_create(backbuf); 125 | cairo_surface_destroy(backbuf); 126 | 127 | /* p->bg */ 128 | XFreePixmap(c->dpy, p->bg); 129 | p->bg = x_create_default_pixmap(c, p->width, p->height); 130 | XSetWindowBackgroundPixmap(c->dpy, p->win, p->bg); 131 | 132 | /* pr->blit_cr */ 133 | cairo_destroy(pr->blit_cr); 134 | pr->blit_cr = create_cairo_for_pixmap(c, p->bg, p->width, p->height); 135 | 136 | /* pr->buf */ 137 | XFreePixmap(c->dpy, pr->buf); 138 | pr->buf = x_create_default_pixmap(c, p->width, p->height); 139 | 140 | /* pr->buf_cr */ 141 | cairo_destroy(pr->buf_cr); 142 | pr->buf_cr = create_cairo_for_pixmap(c, pr->buf, p->width, p->height); 143 | } 144 | -------------------------------------------------------------------------------- /docs/rcref/data/asciidoc-xhtml11.js: -------------------------------------------------------------------------------- 1 | var asciidoc = { // Namespace. 2 | 3 | ///////////////////////////////////////////////////////////////////// 4 | // Table Of Contents generator 5 | ///////////////////////////////////////////////////////////////////// 6 | 7 | /* Author: Mihai Bazon, September 2002 8 | * http://students.infoiasi.ro/~mishoo 9 | * 10 | * Table Of Content generator 11 | * Version: 0.4 12 | * 13 | * Feel free to use this script under the terms of the GNU General Public 14 | * License, as long as you do not remove or alter this notice. 15 | */ 16 | 17 | /* modified by Troy D. Hanson, September 2006. License: GPL */ 18 | /* modified by Stuart Rackham, 2006, 2009. License: GPL */ 19 | 20 | // toclevels = 1..4. 21 | toc: function (toclevels) { 22 | 23 | function getText(el) { 24 | var text = ""; 25 | for (var i = el.firstChild; i != null; i = i.nextSibling) { 26 | if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants. 27 | text += i.data; 28 | else if (i.firstChild != null) 29 | text += getText(i); 30 | } 31 | return text; 32 | } 33 | 34 | function TocEntry(el, text, toclevel) { 35 | this.element = el; 36 | this.text = text; 37 | this.toclevel = toclevel; 38 | } 39 | 40 | function tocEntries(el, toclevels) { 41 | var result = new Array; 42 | var re = new RegExp('[hH]([2-'+(toclevels+1)+'])'); 43 | // Function that scans the DOM tree for header elements (the DOM2 44 | // nodeIterator API would be a better technique but not supported by all 45 | // browsers). 46 | var iterate = function (el) { 47 | for (var i = el.firstChild; i != null; i = i.nextSibling) { 48 | if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { 49 | var mo = re.exec(i.tagName); 50 | if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { 51 | result[result.length] = new TocEntry(i, getText(i), mo[1]-1); 52 | } 53 | iterate(i); 54 | } 55 | } 56 | } 57 | iterate(el); 58 | return result; 59 | } 60 | 61 | var toc = document.getElementById("toc"); 62 | var entries = tocEntries(document.getElementById("content"), toclevels); 63 | for (var i = 0; i < entries.length; ++i) { 64 | var entry = entries[i]; 65 | if (entry.element.id == "") 66 | entry.element.id = "_toc_" + i; 67 | var a = document.createElement("a"); 68 | a.href = "#" + entry.element.id; 69 | a.appendChild(document.createTextNode(entry.text)); 70 | var div = document.createElement("div"); 71 | div.appendChild(a); 72 | div.className = "toclevel" + entry.toclevel; 73 | toc.appendChild(div); 74 | } 75 | if (entries.length == 0) 76 | toc.parentNode.removeChild(toc); 77 | }, 78 | 79 | 80 | ///////////////////////////////////////////////////////////////////// 81 | // Footnotes generator 82 | ///////////////////////////////////////////////////////////////////// 83 | 84 | /* Based on footnote generation code from: 85 | * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html 86 | */ 87 | 88 | footnotes: function () { 89 | var cont = document.getElementById("content"); 90 | var noteholder = document.getElementById("footnotes"); 91 | var spans = cont.getElementsByTagName("span"); 92 | var refs = {}; 93 | var n = 0; 94 | for (i=0; i" + 102 | "" + 103 | n + ". " + note + ""; 104 | spans[i].innerHTML = 105 | "[" + n + "]"; 107 | var id =spans[i].getAttribute("id"); 108 | if (id != null) refs["#"+id] = n; 109 | } 110 | } 111 | if (n == 0) 112 | noteholder.parentNode.removeChild(noteholder); 113 | else { 114 | // Process footnoterefs. 115 | for (i=0; i" + n + "]"; 123 | } 124 | } 125 | } 126 | } 127 | 128 | } 129 | -------------------------------------------------------------------------------- /docs/themeref/data/asciidoc-xhtml11.js: -------------------------------------------------------------------------------- 1 | var asciidoc = { // Namespace. 2 | 3 | ///////////////////////////////////////////////////////////////////// 4 | // Table Of Contents generator 5 | ///////////////////////////////////////////////////////////////////// 6 | 7 | /* Author: Mihai Bazon, September 2002 8 | * http://students.infoiasi.ro/~mishoo 9 | * 10 | * Table Of Content generator 11 | * Version: 0.4 12 | * 13 | * Feel free to use this script under the terms of the GNU General Public 14 | * License, as long as you do not remove or alter this notice. 15 | */ 16 | 17 | /* modified by Troy D. Hanson, September 2006. License: GPL */ 18 | /* modified by Stuart Rackham, 2006, 2009. License: GPL */ 19 | 20 | // toclevels = 1..4. 21 | toc: function (toclevels) { 22 | 23 | function getText(el) { 24 | var text = ""; 25 | for (var i = el.firstChild; i != null; i = i.nextSibling) { 26 | if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants. 27 | text += i.data; 28 | else if (i.firstChild != null) 29 | text += getText(i); 30 | } 31 | return text; 32 | } 33 | 34 | function TocEntry(el, text, toclevel) { 35 | this.element = el; 36 | this.text = text; 37 | this.toclevel = toclevel; 38 | } 39 | 40 | function tocEntries(el, toclevels) { 41 | var result = new Array; 42 | var re = new RegExp('[hH]([2-'+(toclevels+1)+'])'); 43 | // Function that scans the DOM tree for header elements (the DOM2 44 | // nodeIterator API would be a better technique but not supported by all 45 | // browsers). 46 | var iterate = function (el) { 47 | for (var i = el.firstChild; i != null; i = i.nextSibling) { 48 | if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { 49 | var mo = re.exec(i.tagName); 50 | if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { 51 | result[result.length] = new TocEntry(i, getText(i), mo[1]-1); 52 | } 53 | iterate(i); 54 | } 55 | } 56 | } 57 | iterate(el); 58 | return result; 59 | } 60 | 61 | var toc = document.getElementById("toc"); 62 | var entries = tocEntries(document.getElementById("content"), toclevels); 63 | for (var i = 0; i < entries.length; ++i) { 64 | var entry = entries[i]; 65 | if (entry.element.id == "") 66 | entry.element.id = "_toc_" + i; 67 | var a = document.createElement("a"); 68 | a.href = "#" + entry.element.id; 69 | a.appendChild(document.createTextNode(entry.text)); 70 | var div = document.createElement("div"); 71 | div.appendChild(a); 72 | div.className = "toclevel" + entry.toclevel; 73 | toc.appendChild(div); 74 | } 75 | if (entries.length == 0) 76 | toc.parentNode.removeChild(toc); 77 | }, 78 | 79 | 80 | ///////////////////////////////////////////////////////////////////// 81 | // Footnotes generator 82 | ///////////////////////////////////////////////////////////////////// 83 | 84 | /* Based on footnote generation code from: 85 | * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html 86 | */ 87 | 88 | footnotes: function () { 89 | var cont = document.getElementById("content"); 90 | var noteholder = document.getElementById("footnotes"); 91 | var spans = cont.getElementsByTagName("span"); 92 | var refs = {}; 93 | var n = 0; 94 | for (i=0; i" + 102 | "" + 103 | n + ". " + note + ""; 104 | spans[i].innerHTML = 105 | "[" + n + "]"; 107 | var id =spans[i].getAttribute("id"); 108 | if (id != null) refs["#"+id] = n; 109 | } 110 | } 111 | if (n == 0) 112 | noteholder.parentNode.removeChild(noteholder); 113 | else { 114 | // Process footnoterefs. 115 | for (i=0; i" + n + "]"; 123 | } 124 | } 125 | } 126 | } 127 | 128 | } 129 | -------------------------------------------------------------------------------- /xutil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "config.h" 9 | #include "util.h" 10 | 11 | #ifdef HAVE_XINERAMA 12 | #include 13 | #endif 14 | 15 | #ifdef HAVE_XRANDR 16 | #include 17 | #endif 18 | 19 | enum x_atom { 20 | XATOM_WM_STATE, 21 | XATOM_NET_DESKTOP_NAMES, 22 | XATOM_NET_WM_STATE, 23 | XATOM_NET_ACTIVE_WINDOW, 24 | XATOM_NET_CLOSE_WINDOW, 25 | XATOM_NET_WM_NAME, 26 | XATOM_NET_WM_ICON_NAME, 27 | XATOM_NET_WM_VISIBLE_ICON_NAME, 28 | XATOM_NET_WORKAREA, 29 | XATOM_NET_WM_ICON, 30 | XATOM_NET_WM_ICON_GEOMETRY, 31 | XATOM_NET_WM_VISIBLE_NAME, 32 | XATOM_NET_WM_STATE_SKIP_TASKBAR, 33 | XATOM_NET_WM_STATE_SHADED, 34 | XATOM_NET_WM_STATE_HIDDEN, 35 | XATOM_NET_WM_STATE_DEMANDS_ATTENTION, 36 | XATOM_NET_WM_DESKTOP, 37 | XATOM_NET_MOVERESIZE_WINDOW, 38 | XATOM_NET_WM_WINDOW_TYPE, 39 | XATOM_NET_WM_WINDOW_TYPE_DOCK, 40 | XATOM_NET_WM_WINDOW_TYPE_DESKTOP, 41 | XATOM_NET_WM_STRUT, 42 | XATOM_NET_WM_STRUT_PARTIAL, 43 | XATOM_NET_CLIENT_LIST, 44 | XATOM_NET_CLIENT_LIST_STACKING, 45 | XATOM_NET_NUMBER_OF_DESKTOPS, 46 | XATOM_NET_CURRENT_DESKTOP, 47 | XATOM_NET_FRAME_EXTENTS, 48 | XATOM_NET_SYSTEM_TRAY_OPCODE, 49 | XATOM_NET_SHOWING_DESKTOP, 50 | XATOM_UTF8_STRING, 51 | XATOM_MOTIF_WM_HINTS, 52 | XATOM_XROOTPMAP_ID, 53 | XATOM_XROOTPMAP_ID2, 54 | 55 | XATOM_XDND_AWARE, 56 | XATOM_XDND_POSITION, 57 | XATOM_XDND_STATUS, 58 | XATOM_COUNT 59 | }; 60 | 61 | struct x_monitor { 62 | int x; 63 | int y; 64 | int width; 65 | int height; 66 | }; 67 | 68 | struct x_connection { 69 | Display *dpy; 70 | 71 | int screen; 72 | int screen_width; 73 | int screen_height; 74 | 75 | struct x_monitor *monitors; 76 | int monitors_n; 77 | 78 | Visual *default_visual; 79 | Colormap default_colormap; 80 | int default_depth; 81 | 82 | Visual *argb_visual; 83 | Colormap argb_colormap; 84 | 85 | Window root; 86 | Pixmap root_pixmap; 87 | 88 | Atom atoms[XATOM_COUNT]; 89 | }; 90 | 91 | void x_connect(struct x_connection *c, const char *display); 92 | void x_disconnect(struct x_connection *c); 93 | void x_update_monitors_info(struct x_connection *c); 94 | 95 | /* 96 | * default window is (ommiting 5 parameters): 97 | * parent = c->root 98 | * border_width = 0 99 | * depth = c->default_depth 100 | * class = InputOutput 101 | * visual = c->default_visual 102 | */ 103 | Window x_create_default_window(struct x_connection *c, 104 | int x, int y, unsigned int w, unsigned int h, 105 | unsigned long valuemask, XSetWindowAttributes *attrs); 106 | 107 | /* 108 | * default pixmap is (ommiting 2 parameters): 109 | * d = c->root 110 | * depth = c->default_depth 111 | */ 112 | Pixmap x_create_default_pixmap(struct x_connection *c, 113 | unsigned int w, unsigned int h); 114 | 115 | Window x_create_default_embedder(struct x_connection *c, Window parent, 116 | Window icon, unsigned int w, unsigned int h); 117 | 118 | /* allocated by Xlib, should be released with XFree */ 119 | void *x_get_prop_data(struct x_connection *c, Window win, Atom prop, 120 | Atom type, int *items); 121 | 122 | int x_get_prop_int(struct x_connection *c, Window win, Atom at); 123 | Window x_get_prop_window(struct x_connection *c, Window win, Atom at); 124 | Pixmap x_get_prop_pixmap(struct x_connection *c, Window win, Atom at); 125 | int x_get_window_desktop(struct x_connection *c, Window win); 126 | 127 | void x_set_prop_int(struct x_connection *c, Window win, Atom type, int value); 128 | void x_set_prop_visualid(struct x_connection *c, Window win, 129 | Atom type, VisualID value); 130 | void x_set_prop_atom(struct x_connection *c, Window win, Atom type, Atom at); 131 | void x_set_prop_array(struct x_connection *c, Window win, Atom type, 132 | const long *values, size_t len); 133 | 134 | int x_is_window_visible_on_panel(struct x_connection *c, Window win); 135 | int x_is_window_visible_on_screen(struct x_connection *c, Window win); 136 | int x_is_window_iconified(struct x_connection *c, Window win); 137 | int x_is_window_demands_attention(struct x_connection *c, Window win); 138 | 139 | void x_realloc_window_name(struct strbuf *sb, struct x_connection *c, 140 | Window win, Atom *atom, Atom *atype); 141 | 142 | void x_send_netwm_message(struct x_connection *c, Window win, 143 | Atom a, long l0, long l1, long l2, long l3, long l4); 144 | void x_send_dnd_message(struct x_connection *c, Window win, 145 | Atom a, long l0, long l1, long l2, long l3, long l4); 146 | void x_update_root_pmap(struct x_connection *c); 147 | void x_translate_coordinates(struct x_connection *c, int x, int y, 148 | int *xout, int *yout, Window win); 149 | 150 | void x_set_error_trap(); 151 | int x_done_error_trap(); 152 | -------------------------------------------------------------------------------- /event-dispatchers.c: -------------------------------------------------------------------------------- 1 | #include "gui.h" 2 | 3 | static inline int point_in_rect(int px, int py, int x, int y, int w, int h) 4 | { 5 | return (px >= x && 6 | px < x + w && 7 | py >= y && 8 | py < y + h); 9 | } 10 | 11 | void disp_button_press_release(struct panel *p, XButtonEvent *e) 12 | { 13 | if (e->type == ButtonRelease && !p->dnd.taken_on) { 14 | p->last_click_widget = 0; 15 | p->last_click_x = 0; 16 | p->last_click_y = 0; 17 | p->last_button = 0; 18 | } 19 | 20 | size_t i; 21 | for (i = 0; i < p->widgets_n; ++i) { 22 | struct widget *w = &p->widgets[i]; 23 | if (point_in_rect(e->x, e->y, w->x, 0, w->width, p->height)) { 24 | if (!p->dnd.taken_on) { 25 | if (e->type == ButtonPress) { 26 | p->last_click_widget = w; 27 | p->last_click_x = e->x; 28 | p->last_click_y = e->y; 29 | p->last_button = e->button; 30 | } 31 | if (w->interface->button_click) 32 | (*w->interface->button_click)(w, e); 33 | } else { 34 | if (e->type == ButtonRelease) { 35 | p->dnd.dropped_on = w; 36 | p->dnd.dropped_x = e->x; 37 | p->dnd.dropped_y = e->y; 38 | if (w->interface->dnd_drop) 39 | (*w->interface->dnd_drop)(w, &p->dnd); 40 | } 41 | } 42 | break; 43 | } 44 | } 45 | if (e->type == ButtonRelease && p->dnd.taken_on) { 46 | struct widget *w = p->dnd.taken_on; 47 | if (w->interface->dnd_drop && p->dnd.taken_on != p->dnd.dropped_on) 48 | (*w->interface->dnd_drop)(w, &p->dnd); 49 | 50 | CLEAR_STRUCT(&p->dnd); 51 | } 52 | } 53 | 54 | void disp_motion_notify(struct panel *p, XMotionEvent *e) 55 | { 56 | size_t i; 57 | 58 | /* is there any widget under mouse at all? for example if mouse is on 59 | top of separator, there is no widget under it */ 60 | int widget_under_mouse = 0; 61 | 62 | /* motion events: enter, leave, motion */ 63 | for (i = 0; i < p->widgets_n; ++i) { 64 | struct widget *w = &p->widgets[i]; 65 | if (point_in_rect(e->x, e->y, w->x, 0, w->width, p->height)) { 66 | if (w == p->under_mouse) { 67 | if (w->interface->mouse_motion) 68 | (*w->interface->mouse_motion)(w, e); 69 | } else { 70 | if (p->under_mouse && 71 | p->under_mouse->interface->mouse_leave) 72 | { 73 | (*p->under_mouse->interface-> 74 | mouse_leave)(p->under_mouse); 75 | } 76 | p->under_mouse = w; 77 | if (w->interface->mouse_enter) 78 | (*w->interface->mouse_enter)(w); 79 | } 80 | widget_under_mouse = 1; 81 | } 82 | } 83 | if (!widget_under_mouse) { 84 | if (p->under_mouse && p->under_mouse->interface->mouse_leave) 85 | (*p->under_mouse->interface->mouse_leave)(p->under_mouse); 86 | p->under_mouse = 0; 87 | } 88 | 89 | /* drag'n'drop moving */ 90 | if (p->dnd.taken_on) { 91 | p->dnd.cur_root_x = e->x_root; 92 | p->dnd.cur_root_y = e->y_root; 93 | p->dnd.cur_x = e->x; 94 | p->dnd.cur_y = e->y; 95 | struct widget *w = p->dnd.taken_on; 96 | if (w->interface->dnd_drag) 97 | (*w->interface->dnd_drag)(w, &p->dnd); 98 | } 99 | 100 | /* drag'n'drop detection */ 101 | if (p->last_click_widget && (abs(p->last_click_x - e->x) > p->drag_threshold 102 | || abs(p->last_click_y - e->y) > p->drag_threshold)) 103 | { 104 | /* drag detected */ 105 | struct widget *w = p->last_click_widget; 106 | p->dnd.taken_on = w; 107 | p->dnd.taken_x = p->last_click_x; 108 | p->dnd.taken_y = p->last_click_y; 109 | p->dnd.cur_x = e->x; 110 | p->dnd.cur_y = e->y; 111 | p->dnd.cur_root_x = e->x_root; 112 | p->dnd.cur_root_y = e->y_root; 113 | p->dnd.button = p->last_button; 114 | if (w->interface->dnd_start) 115 | (*w->interface->dnd_start)(w, &p->dnd); 116 | 117 | p->last_click_widget = 0; 118 | p->last_click_x = 0; 119 | p->last_click_y = 0; 120 | p->last_button = 0; 121 | } 122 | } 123 | 124 | void disp_enter_leave_notify(struct panel *p, XCrossingEvent *e) 125 | { 126 | if (e->type == LeaveNotify) { 127 | if (p->under_mouse && p->under_mouse->interface->mouse_leave) 128 | (*p->under_mouse->interface->mouse_leave)(p->under_mouse); 129 | p->under_mouse = 0; 130 | } 131 | } 132 | 133 | void disp_property_notify(struct panel *p, XPropertyEvent *e) 134 | { 135 | size_t i; 136 | for (i = 0; i < p->widgets_n; ++i) { 137 | struct widget *w = &p->widgets[i]; 138 | if (w->interface->prop_change) 139 | (*w->interface->prop_change)(w, e); 140 | } 141 | } 142 | 143 | void disp_client_msg(struct panel *p, XClientMessageEvent *e) 144 | { 145 | size_t i; 146 | for (i = 0; i < p->widgets_n; ++i) { 147 | struct widget *w = &p->widgets[i]; 148 | if (w->interface->client_msg) 149 | (*w->interface->client_msg)(w, e); 150 | } 151 | } 152 | 153 | void disp_win_destroy(struct panel *p, XDestroyWindowEvent *e) 154 | { 155 | size_t i; 156 | for (i = 0; i < p->widgets_n; ++i) { 157 | struct widget *w = &p->widgets[i]; 158 | if (w->interface->win_destroy) 159 | (*w->interface->win_destroy)(w, e); 160 | } 161 | } 162 | 163 | void disp_configure(struct panel *p, XConfigureEvent *e) 164 | { 165 | size_t i; 166 | for (i = 0; i < p->widgets_n; ++i) { 167 | struct widget *w = &p->widgets[i]; 168 | if (w->interface->configure) 169 | (*w->interface->configure)(w, e); 170 | } 171 | } 172 | --------------------------------------------------------------------------------