Built on top of curses, libviper is a set of APIs designed to facilitate the development of console based user interfaces.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake bumped version to 1.6.1 and updated changelog. included some cmake fi… Sep 29, 2017
CHANGELOG
CMakeLists.txt
LICENSE move code from google code Jun 23, 2015
README.md bump to version 3.0.0 and update changelog Dec 23, 2018
TODO update TODO list Dec 29, 2017
klasses.txt added vk_menu_t klass Dec 15, 2017
libviper.pc working 2.0.0 build Dec 8, 2017
list.h working 2.0.0 build Dec 8, 2017
macros.h fixed FASTCOLOR mode Dec 27, 2018
pkg-config.pc.cmake converted build system to cmake and dealt with compiler warnings Sep 29, 2017
private.h build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
strings.c converted build system to cmake and dealt with compiler warnings Sep 29, 2017
strings.h created strsplitv() and replaced glib func in viper_msgbox Sep 25, 2017
viper.h create a new interface so that FASTCOLOR implementation can be expose… Dec 27, 2018
viper_callbacks.c build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
viper_callbacks.h build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
viper_color.c
viper_color.h 90 percent pruning of glib. need to fix msgbox code Sep 24, 2017
viper_deck.c lay ground work for multiple screens Mar 30, 2018
viper_deck.h build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
viper_events.c lay ground work for multiple screens Mar 30, 2018
viper_events.h build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
viper_gpm.def cleaned up the rest of the files Sep 18, 2017
viper_keyboard.c partial implementation of vk_container and no build errors Nov 11, 2017
viper_kmio.c create a new interface so that FASTCOLOR implementation can be expose… Dec 27, 2018
viper_kmio.h
viper_msgbox.c
viper_msgbox.h beginning of major rewrite Oct 28, 2017
viper_private.c lay ground work for multiple screens Mar 30, 2018
viper_screen.c lay ground work for multiple screens Mar 30, 2018
viper_screen.h beginning of major rewrite Oct 28, 2017
viper_states.c lay ground work for multiple screens Mar 30, 2018
viper_states.h build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
viper_userptr.c partial implementation of vk_container and no build errors Nov 11, 2017
viper_wclose.c bump to version 2.0.3 and fix NULL pointer crash Dec 12, 2017
viper_wcreate.c lay ground work for multiple screens Mar 30, 2018
viper_wdecorate.c partial implementation of vk_container and no build errors Nov 11, 2017
viper_wdecorate.h
viper_wdestroy.c working 2.0.0 build Dec 8, 2017
viper_wdestroy.h beginning of major rewrite Oct 28, 2017
viper_wfind.c lay ground work for multiple screens Mar 30, 2018
viper_wmove.c
viper_wresize.c fix a couple of logic bugs in window resize code Dec 26, 2017
viper_wtraits.c partial implementation of vk_container and no build errors Nov 11, 2017
vk_container.c working 2.0.0 build Dec 8, 2017
vk_container.h compile with listbox no errors Dec 1, 2017
vk_item.h added new file to repo Dec 15, 2017
vk_listbox.c added API to determine optimum metrics of listbox size and derived kl… Dec 15, 2017
vk_listbox.h added vk_menu_t klass Dec 15, 2017
vk_menu.c fix a calculation error on framed menus Dec 21, 2017
vk_menu.h added vk_menu_t klass Dec 15, 2017
vk_object.c working 2.0.0 build Dec 8, 2017
vk_object.h working 2.0.0 build Dec 8, 2017
vk_widget.c build against ncurses wide in light of libvterm 4.0 and changes to VWM Dec 21, 2018
vk_widget.h
w_create.c working 2.0.0 build Dec 8, 2017
w_decorate.c 90 percent pruning of glib. need to fix msgbox code Sep 24, 2017
w_fill.c 90 percent pruning of glib. need to fix msgbox code Sep 24, 2017
w_metrics.c 90 percent pruning of glib. need to fix msgbox code Sep 24, 2017
w_move.c 90 percent pruning of glib. need to fix msgbox code Sep 24, 2017
w_shadow.c 90 percent pruning of glib. need to fix msgbox code Sep 24, 2017

README.md

ABOUT

Built on top of ncurses, libviper is a convenience layer and a GTK-like framework for rapidly creating console programs. It takes care of setting up the screen, initializing GPM for normal terminal use or Xterm. The screen itself can be painted with custom wallpaper (line art of course). On top of that libviper managds two "decks" of windows per screen. These decks are analogous to a deck of cards. The decks can be rotated and the window on top has default focus. The managed deck can be manipulated by the mouse and is where normal windows reside. On top of that is another deck, the unmanaged deck. In terms of Z-order, the last window on the unmanaged deck resides just above the topmost window on the managed deck. The unmanaged deck is useful for creating menus and user dialogs. It's also well suited for installing hotkeys since user input propogates to the unmanaged deck first.

BUILDING

Building libviper is typically pretty straight forward.

REQUIREMENTS

ncursesw 5.4+

OPTIONAL

libgpm

run the following make commands:

cmake CMakeList.txt make sudo make install

BUGS

Submit bugs via GitHub

Enjoy!