diff options
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | config.mk | 9 | ||||
-rw-r--r-- | defaults.h | 8 | ||||
-rw-r--r-- | svte.1 | 45 | ||||
-rw-r--r-- | svte.c | 31 |
5 files changed, 90 insertions, 12 deletions
@@ -43,17 +43,20 @@ svte: ${OBJ} clean: @echo cleaning - @rm -f svte ${OBJ} mt-${VERSION}.tar.gz + @rm -f svte ${OBJ} svte-${VERSION}.tar.gz dist: clean @echo creating dist tarball @mkdir -p svte-${VERSION} @cp -R Makefile config.mk ${SRC} svte-${VERSION} - @tar -cf svte-${VERSION}.tar mt-${VERSION} + @tar -cf svte-${VERSION}.tar svte-${VERSION} @gzip svte-${VERSION}.tar @rm -rf svte-${VERSION} install: all + @echo installing manpage to ${DESTDIR}${MANPREFIX}/man1 + @mkdir -p ${DESTDIR}${MANPREFIX}/man1 + @cp -f svte.1 ${DESTDIR}${MANPREFIX}/man1/svte.1 @echo installing executable file to ${DESTDIR}${PREFIX}/bin @mkdir -p ${DESTDIR}${PREFIX}/bin @cp -f svte ${DESTDIR}${PREFIX}/bin @@ -62,6 +65,8 @@ install: all uninstall: @echo removing executable file from ${DESTDIR}${PREFIX}/bin @rm -f ${DESTDIR}${PREFIX}/bin/svte + @echo removing manpage from ${DESTDIR}${MANPREFIX}/man1/ + @rm -f ${DESTDIR}${MANPREFIX}/man1/svte.1 .PHONY: all options clean dist install uninstall @@ -16,9 +16,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. - # svte version: -VERSION = 0.1.4.1 +VERSION = 0.1.4.2 # Customize below to fit your system @@ -28,20 +27,16 @@ MANPREFIX = ${PREFIX}/share/man # includes and libs - GTKINC=$(shell pkg-config --cflags gtk+-2.0 vte ) GTKLIB=-lvte INCS = -I. -I/usr/include ${GTKINC} LIBS = -L/usr/lib -lc ${GTKLIB} + # flags CPPFLAGS = -DVERSION=\"${VERSION}\" CFLAGS = -mtune=native -std=gnu99 -O3 ${INCS} ${CPPFLAGS} LDFLAGS = -s ${LIBS} -# Solaris -#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" -#LDFLAGS = ${LIBS} - # compiler and linker CC = cc @@ -42,6 +42,14 @@ #define DEFAULT_ALLOW_BOLD TRUE #endif +#ifndef DEFAULT_WINDOW_HEIGHT +#define DEFAULT_WINDOW_HEIGHT 800 +#endif + +#ifndef DEFAULT_WINDOW_WIDTH +#define DEFAULT_WINDOW_WIDTH 600 +#endif + #ifndef DEFAULT_NUM_SCROLLBACK_LINES #define DEFAULT_NUM_SCROLLBACK_LINES -1 #endif @@ -0,0 +1,45 @@ +.TH SVTE 1 svte\-VERSION +.SH NAME +svte \- simple virtual terminal emulator +.SH SYNOPSIS +.B svte +.RB [ \-c +.IR config-file ] +.RB [ \-e +.IR execute ] +.RB [ \-v ] +.P +.BR svte " ..." +.SH DESCRIPTION +.B svte +svte is a terminal that is flexible and has a small codebase. Its aim is to be +lightweight and fast, while providing nice integration with a modern Linux +environment. svte is yet another minimal GTK incarnation of VTE. +.P +.SH OPTIONS +.TP +.B \-c, --config-file +use the config file provided by this argument instead of the default (~/.svterc) +.TP +.B \-e, --execute +svte will launch indicated program instead of the users default shell. xterm +style. +.TP +.B \-v, --version +print current version +.SH USAGE +svte is completely controlled by the keyboard. The shortcuts are not yet +configurable. +.TP +.B Ctrl + Shift + t +Open a new tab. +.TP +.B Ctrl + Shift + n +Open a new window. +.TP +.B Ctrl + Shift + w +Close current tab, if there is only one tab, close the window +.SH FILES +.TP +.I /home/$USER/.svtrc +The default svte config file that svte will attempt to read. @@ -77,6 +77,7 @@ static void tab_focus(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, struct window *w); static void set_window_title(term *t); static void launch_url(char *url); +static void zoom(gboolean b, struct term *t); static inline term* get_current_term(window *w); static inline term* get_nth_term(window *w, guint page); @@ -93,7 +94,7 @@ static GOptionEntry options[] = { "Path to configuration file to use.", NULL }, { "execute", 'e', 0, G_OPTION_ARG_STRING, &start_program, "execute this command.", NULL }, - { "version", 0, 0, G_OPTION_ARG_NONE, &show_version, + { "version", 'v', 0, G_OPTION_ARG_NONE, &show_version, "Print version information and exit", NULL }, { NULL } }; @@ -123,6 +124,17 @@ static void launch_url(char *url) { g_spawn_command_line_async(g_strconcat(config->browser_command, " ", url, NULL), NULL); } +static void zoom(gboolean b, struct term *t) { + + int size = -2000; + if(b) + size = 2000; + PangoFontDescription *font = vte_terminal_get_font(VTE_TERMINAL(t->vte)); + pango_font_description_set_size(font, pango_font_description_get_size(font) + size); + vte_terminal_set_font(VTE_TERMINAL(t->vte), font); + +} + /* key event handler */ gboolean event_key(GtkWidget *widget, GdkEventKey *event, window *w) { @@ -149,6 +161,14 @@ gboolean event_key(GtkWidget *widget, GdkEventKey *event, window *w) { vte_terminal_paste_clipboard(VTE_TERMINAL(get_current_term(w)->vte)); return TRUE; } + if (g == GDK_plus) { + zoom(TRUE, get_current_term(w)); + return TRUE; + } + if (g == GDK_underscore) { + zoom(FALSE, get_current_term(w)); + return TRUE; + } if (g == GDK_C) { vte_terminal_copy_clipboard(VTE_TERMINAL(get_current_term(w)->vte)); return TRUE; @@ -174,7 +194,7 @@ gboolean event_key(GtkWidget *widget, GdkEventKey *event, window *w) { return TRUE; } } - + if(g == GDK_KEY_Forward) { tab_switch(TRUE, w); return TRUE; @@ -576,6 +596,11 @@ static void parse_config_file(gchar *config_file) { config->font = DEFAULT_FONT; } + if (NULL == config->window_width || NULL == config->window_height) { + config->window_width = DEFAULT_WINDOW_WIDTH; + config->window_height = DEFAULT_WINDOW_HEIGHT; + } + if(NULL == config->browser_command) { config->browser_command = DEFAULT_BROWSER_COMMAND; } @@ -597,7 +622,7 @@ int main(int argc, char* argv[]) { } if (show_version) { - printf(VERSION); + printf("%s \n", VERSION); return 0; } |