aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--config.mk9
-rw-r--r--defaults.h8
-rw-r--r--svte.145
-rw-r--r--svte.c31
5 files changed, 90 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 641e0b0..0c49d72 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/config.mk b/config.mk
index 58b302f..bf83dc0 100644
--- a/config.mk
+++ b/config.mk
@@ -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
diff --git a/defaults.h b/defaults.h
index 3e36bf8..0cad826 100644
--- a/defaults.h
+++ b/defaults.h
@@ -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
diff --git a/svte.1 b/svte.1
new file mode 100644
index 0000000..cb6eb3b
--- /dev/null
+++ b/svte.1
@@ -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.
diff --git a/svte.c b/svte.c
index e265033..d75334f 100644
--- a/svte.c
+++ b/svte.c
@@ -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;
}