mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-27 12:46:02 +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
19
LICENSE
19
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
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
@ -8,14 +8,13 @@ Permission is granted to anyone to use this software for any purpose,
|
||||||
including commercial applications, and to alter it and redistribute it
|
including commercial applications, and to alter it and redistribute it
|
||||||
freely, subject to the following restrictions:
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
claim that you wrote the original software. If you use this software
|
claim that you wrote the original software. If you use this software
|
||||||
in a product, an acknowledgment in the product documentation would be
|
in a product, an acknowledgment in the product documentation would be
|
||||||
appreciated but is not required.
|
appreciated but is not required.
|
||||||
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
misrepresented as being the original software.
|
misrepresented as being the original software.
|
||||||
|
|
||||||
3. This notice may not be removed or altered from any source
|
|
||||||
distribution.
|
|
||||||
|
|
||||||
|
3. This notice may not be removed or altered from any source
|
||||||
|
distribution.
|
||||||
|
|
83
Makefile
83
Makefile
|
@ -1,28 +1,77 @@
|
||||||
LIBS = gtk+-2.0 poppler poppler-glib
|
# See LICENSE file for license and copyright information
|
||||||
FLAGS = `pkg-config --cflags --libs $(LIBS)`
|
# zathura - user interface
|
||||||
SOURCE = zathura.c
|
|
||||||
TARGET = zathura
|
|
||||||
|
|
||||||
all: $(TARGET)
|
include config.mk
|
||||||
|
|
||||||
$(TARGET): zathura.c config.h
|
PROJECT = zathura
|
||||||
gcc $(FLAGS) -Wall -o $(TARGET) $(SOURCE)
|
SOURCE = zathura.c
|
||||||
|
OBJECTS = ${SOURCE:.c=.o}
|
||||||
|
DOBJECTS = ${SOURCE:.c=.do}
|
||||||
|
|
||||||
|
all: options ${PROJECT}
|
||||||
|
|
||||||
|
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:
|
clean:
|
||||||
rm -f $(TARGET)
|
@rm -rf ${PROJECT} ${OBJECTS} ${PROJECT}-${VERSION}.tar.gz \
|
||||||
|
${DOBJECTS} ${PROJECT}-debug
|
||||||
|
|
||||||
debug:
|
${PROJECT}-debug: ${DOBJECTS}
|
||||||
gcc $(FLAGS) -Wall -o $(TARGET) $(SOURCE) -g
|
@echo CC -o ${PROJECT}-debug
|
||||||
|
@${CC} -o ${PROJECT}-debug ${DOBJECTS} ${LDFLAGS}
|
||||||
|
|
||||||
|
debug: ${PROJECT}-debug
|
||||||
|
|
||||||
valgrind: 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
|
install: all
|
||||||
@echo installing executeable to /usr/bin
|
@echo installing executeable file
|
||||||
@mkdir -p /usr/bin
|
@mkdir -p ${PREFIX}/bin
|
||||||
@cp -f ${TARGET} /usr/bin
|
@cp -f ${PROJECT} ${PREFIX}/bin
|
||||||
@chmod 755 /usr/bin/${TARGET}
|
@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:
|
uninstall:
|
||||||
@echo removing executeable from /usr/bin
|
@echo removing executeable file
|
||||||
@rm -f /usr/bin/${TARGET}
|
@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