mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-26 22:06:00 +01:00
Updated interface from zjui project
The whole project files have been replaced by the first version of zjui, a side project for the user interface. Additionally there has been an update of the Makefile and the configuration. Mentionable features: * Buffered commands * Statusbar * Advanced completion * Notification system * Modes and mode-depending shortcuts
This commit is contained in:
parent
58dcfb001d
commit
d1ee4e0689
6 changed files with 981 additions and 1567 deletions
3
LICENSE
3
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2009 ML, JY
|
||||
Copyright (c) 2009 ML, JY - pwmt.org
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
|
@ -18,4 +18,3 @@ freely, subject to the following restrictions:
|
|||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
|
||||
|
|
81
Makefile
81
Makefile
|
@ -1,28 +1,77 @@
|
|||
LIBS = gtk+-2.0 poppler poppler-glib
|
||||
FLAGS = `pkg-config --cflags --libs $(LIBS)`
|
||||
# See LICENSE file for license and copyright information
|
||||
# zathura - user interface
|
||||
|
||||
include config.mk
|
||||
|
||||
PROJECT = zathura
|
||||
SOURCE = zathura.c
|
||||
TARGET = zathura
|
||||
OBJECTS = ${SOURCE:.c=.o}
|
||||
DOBJECTS = ${SOURCE:.c=.do}
|
||||
|
||||
all: $(TARGET)
|
||||
all: options ${PROJECT}
|
||||
|
||||
$(TARGET): zathura.c config.h
|
||||
gcc $(FLAGS) -Wall -o $(TARGET) $(SOURCE)
|
||||
options:
|
||||
@echo ${PROJECT} buld options:
|
||||
@echo "CFLAGS = ${CFLAGS}"
|
||||
@echo "LDFLAGS = ${LDFLAGS}"
|
||||
@echo "DFLAGS = ${DFLAGS}"
|
||||
@echo "CC = ${CC}"
|
||||
|
||||
%.o: %.c
|
||||
@echo CC $<
|
||||
@${CC} -c ${CFLAGS} -o $@ $<
|
||||
|
||||
%.do: %.c
|
||||
@echo CC $<
|
||||
@${CC} -c ${CFLAGS} ${DFLAGS} -o $@ $<
|
||||
|
||||
${OBJECTS}: config.h config.mk
|
||||
${DOBJECTS}: config.h config.mk
|
||||
|
||||
config.h:
|
||||
@cp config.def.h $@
|
||||
|
||||
${PROJECT}: ${OBJECTS}
|
||||
@echo CC -o $@
|
||||
@${CC} -o $@ ${OBJECTS} ${LDFLAGS}
|
||||
|
||||
clean:
|
||||
rm -f $(TARGET)
|
||||
@rm -rf ${PROJECT} ${OBJECTS} ${PROJECT}-${VERSION}.tar.gz \
|
||||
${DOBJECTS} ${PROJECT}-debug
|
||||
|
||||
debug:
|
||||
gcc $(FLAGS) -Wall -o $(TARGET) $(SOURCE) -g
|
||||
${PROJECT}-debug: ${DOBJECTS}
|
||||
@echo CC -o ${PROJECT}-debug
|
||||
@${CC} -o ${PROJECT}-debug ${DOBJECTS} ${LDFLAGS}
|
||||
|
||||
debug: ${PROJECT}-debug
|
||||
|
||||
valgrind: debug
|
||||
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./${TARGET}
|
||||
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes \
|
||||
./${PROJECT}-debug
|
||||
|
||||
gdb: debug
|
||||
cgdb ${PROJECT}-debug
|
||||
|
||||
dist: clean
|
||||
@mkdir -p ${PROJECT}-${VERSION}
|
||||
@cp -R LICENSE Makefile config.mk config.def.h README \
|
||||
${PROJECT}.1 ${SOURCE} ${PROJECT}-${VERSION}
|
||||
@tar -cf ${PROJECT}-${VERSION}.tar ${PROJECT}-${VERSION}
|
||||
@gzip ${PROJECT}-${VERSION}.tar
|
||||
@rm -rf ${PROJECT}-${VERSION}
|
||||
|
||||
install: all
|
||||
@echo installing executeable to /usr/bin
|
||||
@mkdir -p /usr/bin
|
||||
@cp -f ${TARGET} /usr/bin
|
||||
@chmod 755 /usr/bin/${TARGET}
|
||||
@echo installing executeable file
|
||||
@mkdir -p ${PREFIX}/bin
|
||||
@cp -f ${PROJECT} ${PREFIX}/bin
|
||||
@chmod 755 ${PROJECT} ${PREFIX}/bin/${PROJECT}
|
||||
@echo installing manual page
|
||||
@mkdir -p ${MANPREFIX}/man1
|
||||
@sed "s/VERSION/${VERSION}/g" < ${PROJECT}.1 > ${MANPREFIX}/man1/${PROJECT}.1
|
||||
@chmod 644 ${MANPREFIX}/man1/${PROJECT}.1
|
||||
|
||||
uninstall:
|
||||
@echo removing executeable from /usr/bin
|
||||
@rm -f /usr/bin/${TARGET}
|
||||
@echo removing executeable file
|
||||
@rm -f ${MANPREFIX}/bin/${PROJECT}
|
||||
@echo removing manual page
|
||||
@rm -f ${MANPREFIX}/man1/${PROJECT}.1
|
||||
|
|
72
config.def.h
Normal file
72
config.def.h
Normal file
|
@ -0,0 +1,72 @@
|
|||
/* settings */
|
||||
static const int DEFAULT_WIDTH = 800;
|
||||
static const int DEFAULT_HEIGHT = 600;
|
||||
|
||||
/* completion */
|
||||
static const char FORMAT_COMMAND[] = "<b>%s</b>";
|
||||
static const char FORMAT_DESCRIPTION[] = "<i>%s</i>";
|
||||
|
||||
/* look */
|
||||
static const char font[] = "monospace normal 9";
|
||||
static const char default_bgcolor[] = "#000000";
|
||||
static const char default_fgcolor[] = "#DDDDDD";
|
||||
static const char inputbar_bgcolor[] = "#141414";
|
||||
static const char inputbar_fgcolor[] = "#9FBC00";
|
||||
static const char statusbar_bgcolor[] = "#000000";
|
||||
static const char statusbar_fgcolor[] = "#FFFFFF";
|
||||
static const char completion_fgcolor[] = "#DDDDDD";
|
||||
static const char completion_bgcolor[] = "#232323";
|
||||
static const char completion_g_fgcolor[] = "#DEDEDE";
|
||||
static const char completion_g_bgcolor[] = "#FF00FF";
|
||||
static const char completion_hl_fgcolor[] = "#232323";
|
||||
static const char completion_hl_bgcolor[] = "#9FBC00";
|
||||
static const char notification_e_bgcolor[] = "#FF1212";
|
||||
static const char notification_e_fgcolor[] = "#FFFFFF";
|
||||
static const char notification_w_bgcolor[] = "#FFF712";
|
||||
static const char notification_w_fgcolor[] = "#000000";
|
||||
|
||||
/* shortcuts */
|
||||
Shortcut shortcuts[] = {
|
||||
/* mask, key, function, mode, argument */
|
||||
{0, GDK_i, sc_change_mode, NORMAL, { INSERT } },
|
||||
{0, GDK_v, sc_change_mode, NORMAL, { VISUAL } },
|
||||
{GDK_CONTROL_MASK, GDK_q, sc_quit, -1, {0} },
|
||||
{GDK_SHIFT_MASK, GDK_slash, sc_focus_inputbar, -1, { .data = "/" } },
|
||||
{GDK_SHIFT_MASK, GDK_question, sc_focus_inputbar, -1, { .data = "?" } },
|
||||
{0, GDK_colon, sc_focus_inputbar, -1, { .data = ":" } },
|
||||
{0, GDK_Escape, sc_abort, -1, {0} },
|
||||
};
|
||||
|
||||
/* inputbar shortcuts */
|
||||
InputbarShortcut inputbar_shortcuts[] = {
|
||||
/* mask, key, function, argument */
|
||||
{0, GDK_Escape, isc_abort, {0} },
|
||||
{0, GDK_Up, isc_command_history, {0} },
|
||||
{0, GDK_Down, isc_command_history, {0} },
|
||||
{0, GDK_Tab, isc_completion, { NEXT } },
|
||||
{GDK_CONTROL_MASK, GDK_Tab, isc_completion, { NEXT_GROUP } },
|
||||
{0, GDK_ISO_Left_Tab, isc_completion, { PREVIOUS } },
|
||||
{GDK_CONTROL_MASK, GDK_ISO_Left_Tab, isc_completion, { PREVIOUS_GROUP } },
|
||||
{GDK_CONTROL_MASK, GDK_w, isc_string_manipulation, { DELETE_LAST_WORD } },
|
||||
};
|
||||
|
||||
/* commands */
|
||||
Command commands[] = {
|
||||
/* command, abbreviation, function, completion, description */
|
||||
{"open", "o", cmd_quit, cc_open, "Open a file" },
|
||||
{"quit", "q", cmd_quit, 0, "Quit zjui" },
|
||||
};
|
||||
|
||||
/* buffer commands */
|
||||
BufferCommand buffer_commands[] = {
|
||||
/* regex, function, argument */
|
||||
{"^gg$", bcmd_goto, { TOP } },
|
||||
{"^[0-9]+G$", bcmd_goto, {0} },
|
||||
};
|
||||
|
||||
/* special commands */
|
||||
SpecialCommand special_commands[] = {
|
||||
/* identifier, function, a, argument */
|
||||
{'/', scmd_search, 1, { DOWN } },
|
||||
{'?', scmd_search, 1, { UP } },
|
||||
};
|
100
config.h
100
config.h
|
@ -1,100 +0,0 @@
|
|||
/* settings */
|
||||
static const float ZOOM_STEP = 0.1;
|
||||
static const float SCROLL_STEP = 40;
|
||||
static const float HL_TRANSPARENCY = 0.4;
|
||||
static const int SHOW_NOTIFICATION = 5;
|
||||
static const int DEFAULT_WIDTH = 800;
|
||||
static const int DEFAULT_HEIGHT = 600;
|
||||
static const int MIN_INDEX_WIDTH = 200;
|
||||
static const char BROWSER[] = "firefox %s";
|
||||
static const char *PRINTER[] = { "PRINTER_1",
|
||||
"PRINTER_2",
|
||||
"PRINTER_3"
|
||||
};
|
||||
|
||||
/* look */
|
||||
static const char font[] = "monospace normal 9";
|
||||
static const char default_bgcolor[] = "#000000";
|
||||
static const char default_fgcolor[] = "#DDDDDD";
|
||||
|
||||
static const char notification_fgcolor[] = "#0F0F0F";
|
||||
static const char notification_bgcolor[] = "#F9F9F9";
|
||||
static const char notification_warning_fgcolor[] = "DDDDDDC";
|
||||
static const char notification_warning_bgcolor[] = "#D0C54D";
|
||||
static const char notification_error_fgcolor[] = "#FFFFFF";
|
||||
static const char notification_error_bgcolor[] = "#BC2800";
|
||||
|
||||
static const char inputbar_bgcolor[] = "#141414";
|
||||
static const char inputbar_fgcolor[] = "#9FBC00";
|
||||
|
||||
static const char completion_fgcolor[] = "#DDDDDD";
|
||||
static const char completion_bgcolor[] = "#232323";
|
||||
static const char completion_hl_fgcolor[] = "#232323";
|
||||
static const char completion_hl_bgcolor[] = "#9FBC00";
|
||||
|
||||
static const char search_highlight[] = "#9FBC00";
|
||||
|
||||
/* additional settings */
|
||||
#define SHOW_SCROLLBARS 0
|
||||
#define INCREMENTAL_SEARCH 0
|
||||
|
||||
/* shortcuts */
|
||||
Shortcut shortcuts[] = {
|
||||
// mask, key, function, argument
|
||||
{GDK_CONTROL_MASK, GDK_f, sc_navigate, { NEXT } },
|
||||
{GDK_CONTROL_MASK, GDK_b, sc_navigate, { PREVIOUS } },
|
||||
{GDK_CONTROL_MASK, GDK_plus, sc_zoom, { ZOOM_IN } },
|
||||
{GDK_CONTROL_MASK, GDK_minus, sc_zoom, { ZOOM_OUT } },
|
||||
{GDK_CONTROL_MASK, GDK_0, sc_zoom, { ZOOM_ORIGINAL } },
|
||||
{GDK_CONTROL_MASK, GDK_r, sc_rotate, { RIGHT } },
|
||||
{GDK_CONTROL_MASK, GDK_e, sc_rotate, { LEFT } },
|
||||
{GDK_CONTROL_MASK, GDK_p, sc_focus_inputbar, { .data = ":print all" } },
|
||||
{GDK_CONTROL_MASK, GDK_q, sc_quit, {0} },
|
||||
{GDK_CONTROL_MASK, GDK_i, sc_toggle_index, {0} },
|
||||
{GDK_CONTROL_MASK, GDK_m, sc_toggle_inputbar, {0} },
|
||||
{0, GDK_n, sc_search, { FORWARD } },
|
||||
{0, GDK_N, sc_search, { BACKWARD } },
|
||||
{0, GDK_h, sc_scroll, { LEFT } },
|
||||
{0, GDK_j, sc_scroll, { UP } },
|
||||
{0, GDK_k, sc_scroll, { DOWN } },
|
||||
{0, GDK_l, sc_scroll, { RIGHT } },
|
||||
{0, GDK_Page_Up, sc_scroll, { TOP } },
|
||||
{0, GDK_Page_Down, sc_scroll, { BOTTOM } },
|
||||
{0, GDK_i, sc_adjust_window, { ADJUST_BESTFIT } },
|
||||
{0, GDK_u, sc_adjust_window, { ADJUST_WIDTH } },
|
||||
{0, GDK_colon, sc_focus_inputbar, { .data = ":" } },
|
||||
{0, GDK_o, sc_focus_inputbar, { .data = ":open " } },
|
||||
{0, GDK_r, sc_focus_inputbar, { .data = ":rotate " } },
|
||||
{0, GDK_z, sc_focus_inputbar, { .data = ":zoom " } },
|
||||
{0, GDK_g, sc_focus_inputbar, { .data = ":goto " } },
|
||||
{0, GDK_slash, sc_focus_inputbar, { .data = "/" } },
|
||||
{0, GDK_Up, sc_focus_inputbar, {0} },
|
||||
{0, GDK_Down, sc_focus_inputbar, {0} },
|
||||
};
|
||||
|
||||
/* commands */
|
||||
Command commands[] = {
|
||||
// command, function
|
||||
{"export", cmd_export},
|
||||
{"e", cmd_export},
|
||||
{"form", cmd_form},
|
||||
{"f", cmd_form},
|
||||
{"goto", cmd_goto},
|
||||
{"g", cmd_goto},
|
||||
{"info", cmd_info},
|
||||
{"i", cmd_info},
|
||||
{"links", cmd_links},
|
||||
{"l", cmd_links},
|
||||
{"open", cmd_open},
|
||||
{"o", cmd_open},
|
||||
{"print", cmd_print},
|
||||
{"p", cmd_print},
|
||||
{"rotate", cmd_rotate},
|
||||
{"r", cmd_rotate},
|
||||
{"save", cmd_save},
|
||||
{"s", cmd_save},
|
||||
{"quit", cmd_quit},
|
||||
{"q", cmd_quit},
|
||||
{"zoom", cmd_zoom},
|
||||
{"z", cmd_zoom},
|
||||
};
|
25
config.mk
Normal file
25
config.mk
Normal file
|
@ -0,0 +1,25 @@
|
|||
# See LICENSE file for license and copyright information
|
||||
# zathura make config
|
||||
|
||||
VERSION = 0.0.1
|
||||
|
||||
# paths
|
||||
PREFIX = /usr
|
||||
MANPREFIX = ${PREFIX}/share/man
|
||||
|
||||
# libs
|
||||
GTK_INC = $(shell pkg-config --cflags gtk+-2.0)
|
||||
GTK_LIB = $(shell pkg-config --libs gtk+-2.0)
|
||||
|
||||
INCS = -I. -I/usr/include ${GTK_INC}
|
||||
LIBS = -L/usr/lib -lc ${GTK_LIB}
|
||||
|
||||
# flags
|
||||
CFLAGS = -std=c99 -pedantic -Wall $(INCS)
|
||||
LDFLAGS = ${LIBS}
|
||||
|
||||
# debug
|
||||
DFLAGS = -g
|
||||
|
||||
# compiler
|
||||
CC = gcc
|
Loading…
Reference in a new issue