├── ChangeLog ├── Makefile ├── SHA1SUMS ├── configure ├── gpl-2.0.txt ├── misc ├── 16.png ├── 20.png ├── 22.png ├── 24.png ├── 32.png ├── 36.png ├── 40.png ├── 48.png ├── 64.png ├── 72.png ├── 96.png ├── evilvte.desktop ├── evilvte.svg ├── evilvte.xml ├── manpage.1 └── showvte.1 └── src ├── config.h ├── dlopen.c ├── gtk2.c ├── gtk3.c ├── gtk3dev.c ├── macro1.h ├── macro2.h └── process.sh /ChangeLog: -------------------------------------------------------------------------------- 1 | UNRELEASED 2 | * Fix a bug for -e option with --name/--class, closes #14. 3 | Thanks to Sergey Zaytsev 4 | * Fix assert error with zsh, closes #26. 5 | Thanks to tantSinnister 6 | * New COLOR_STYLE option: USER_CUSTOM 7 | Thanks to Eric Davis 8 | * Allow fractional font size 9 | Thanks to Alex Kritikos 10 | * New COLOR_STYLE option: HOLO 11 | Thanks to Alex Kritikos 12 | * Drop configure option: --with-gtk=2+3 13 | 14 | 0.5.2~pre1 15 | * Support command line options: -fg, -bg, -sa 16 | Thanks to Globe Trotter 17 | * Support EXPORT_WINDOWID, like what xterm and rxvt do. 18 | Thanks to Peter Bui 19 | * Improve desktop file, thanks to adaptee 20 | * New COLOR_STYLE option: SOLARIZED_DARK and SOLARIZED_LIGHT, closes #8. 21 | * Fix COLOR_STYLE data according to xterm-279 and linux console in qemu 22 | * Workaround for Caps lock problem by changing hotkey settings, issue #7. 23 | 24 | 0.5.1 25 | * Better compatibility with some compilers and CFLAGS 26 | Thanks to Daniel Richard G. 27 | * Support key bindings for ALT_SHIFT, CTRL_ALT_SHIFT, and CTRL_SHIFT 28 | * Auto-detect gtk_*_resize_grip in dlopen() mode 29 | * Fix a potential bug for HOTKEY_SCROLL_ONE_PAGE_* 30 | * Strict minimum font size to 1 31 | * Hide DEFAULT_ENCODING, PROGRAM_NAME, and PROGRAM_VERSION 32 | * Make everything GTK+ 3.4.0 compatible 33 | 34 | 0.5.1~pre3 35 | * New hotkey definition method, support ALT and SHIFT, closes #2. 36 | The new behavior breaks old hotkey definitions. 37 | If you have old conffiles, please update them to latest format. 38 | * Support TAB_NEW_PATH_EQUAL_OLD when open new evilvte window, closes #3. 39 | * Support HOTKEY_SCROLL_ONE_PAGE_*, closes #4. 40 | * Some distributions backports gtk_*_resize_grip to GTK+ 2.x. 41 | Try export CFLAGS="-DGTK_HAS_RESIZE_GRIP" and rebuild evilvte 42 | * Drop old CTRL_ALT option 43 | * Deprecate HOTKEY_TAB_GO_TO_NUMBER, use ALT_NUMBER_GO_TO_TAB_NUMBER or 44 | CTRL_NUMBER_GO_TO_TAB_NUMBER instead 45 | 46 | 0.5.1~pre2 47 | * Support TAB_NEW_TAB_AT_TAB_ONE, let new tab always be the first tab 48 | Thanks to shenfeng 49 | * Make close button smaller 50 | * Improve resizing behavior with "-VteTerminal-inner-border" property 51 | 52 | 0.5.1~pre1 53 | 54 | * Temporary workaround for "-VteTerminal-inner-border" property 55 | * Mouse clicking can also turn off urgency hint now 56 | 57 | 0.5.0 58 | 59 | The "One binary to rule them all!" Release 60 | 61 | * Fix a bug for -e option 62 | * Fix a bug for input method menu 63 | * New configure option: --with-gtk=2+3|3+2 64 | The binary will not link to VTE nor GTK+, thus can support GTK+ 2.x and 3.x 65 | at the same time. It still depends on VTE runtime, of course. 66 | Use --2 or --3 command line options to choose the version of GTK+. 67 | If evilvte segfaults with --3 option, please try export USE_ACCESSIBLE=0 or 68 | USE_ACCESSIBLE=1. 69 | * Drop codes with VTE version < 0.17.1 70 | 71 | 0.5.0~pre1 72 | * Sync COLOR_STYLE: ZENBURN with xterm 73 | Thanks to Artur Dryomov 74 | Previous ZENBURN is renamed to ZENBURN_DARK 75 | * Replace all deprecated functions that have suitable replacements 76 | * Make everything GTK+ 3.1.92 compatible 77 | Use GTK_FONT_CHOOSER_DIALOG only for GTK+ version >= 3.1.90 78 | * Make everything VTE 0.29.1 compatible 79 | If you encounter problems, try export CFLAGS="-DUSE_ACCESSIBLE=0" 80 | and rebuild evilvte. 81 | 82 | 0.4.9 83 | * Fix makefile parallelization 84 | Thanks to Thomas Weißschuh 85 | * Use GTK_FONT_CHOOSER_DIALOG for GTK+ version >= 3.1.12 86 | * Expand VTE widget in GtkGrid 87 | 88 | 0.4.9~pre5 89 | * Support GtkGrid 90 | * Fix an SCROLLBAR minor bug with option OFF_L and OFF_R 91 | * New icon set under the license: 92 | GNU General Public License version 2 or any later version 93 | Thanks to Alexander Inglessi 94 | * Use vte_terminal_fork_command() by default. Please see: 95 | http://evilvte.blogspot.com/2011/03/issue-evilvte-048-makes-zsh-segfault.html 96 | 97 | 0.4.9~pre4 98 | * Support SEARCH_CASE_SENSITIVE 99 | I will make it toggleable at runtime in the future. 100 | But I am lazy to write it now. :-P 101 | Patches are very welcome. 102 | * Make everything GLib 2.29.8 compatible 103 | * Sign SHA1SUMS using RSA key ID BE8BA819 and DSA key ID E98D6159 104 | 105 | 0.4.9~pre3 106 | * Grayed out menu items according to their status: 107 | "Copy", "Paste", "Zoom default" 108 | 109 | 0.4.9~pre2 110 | * Minor tweaks in TABBAR_AUTOHIDE for GTK+ 3.x 111 | * Hide VTE_FIXED color style which was merged in VTE version >= 0.17.1 112 | * Drop !TAB codes since evilvte is GtkNotebook-only for a very long time. 113 | For those who do not use tabs, the binary size will increase a little. 114 | 115 | 0.4.9~pre1 116 | * Support "Auto-click" when there is only one effective menu item. 117 | You can assign anything to right-click now. 118 | * Support embedded GTK3_CSS 119 | 120 | 0.4.8 121 | 122 | The "Welcome, GTK+ 3.0.0!" Release 123 | 124 | * Better compatibility with string matching 125 | * Fix a bug that made MATCH_STRING fail when MENU is not enabled 126 | Thanks to Kabakov Boris 127 | * New COLOR_STYLE option: ZENBURN 128 | Thanks to thagraal and 129 | * New options: MATCH_STRING_HTTP 130 | MATCH_STRING_MAIL 131 | MATCH_STRING_FILE 132 | * Hide MATCH_STRING 133 | * Make everything GTK+ 3.0.0 compatible 134 | 135 | 0.4.8~pre3 136 | * Fix a bug for multiple -e options in command line 137 | * Fix an i18n bug when linked to GTK+ version >= 2.90.0 138 | 139 | 0.4.8~pre2 140 | * Initial support for vte_terminal_search_* 141 | The feature of VTE is still quite buggy. 142 | Please see: https://bugzilla.gnome.org/627886 143 | * Support underscore in LABEL_* to indicate mnemonic of menu item 144 | * Drop MATCH_STRING_EXEC which was deprecated since 0.4.7~pre1 145 | * Hide DEFAULT_EMULATION_TYPE, TAB_BORDER_HORIZONTAL and TAB_BORDER_VERTICAL 146 | * Provide a clearsigned SHA1SUMS using DSA key ID E98D6159 147 | 148 | 0.4.8~pre1 149 | * Status bar and scrollbar can be hidden initially and be toggled on later 150 | * Better behavior for *_TOGGLE_TABBAR with TABBAR_AUTOHIDE enabled 151 | * Sync window state with window manager 152 | * Fix some cross-platform issues 153 | Thanks to Aragon Gouveia 154 | * Initial support for new resizing behavior of VTE 155 | If you are using GTK+ version >= 2.91.1 and VTE version >= 0.27.1, 156 | the window size of evilvte is not always correct currently. 157 | 158 | 0.4.7.1 159 | * Fix a segfault bug of HOTKEY_MIMIC_SCROLL_UP and HOTKEY_MIMIC_SCROLL_DOWN 160 | 161 | 0.4.7 162 | * Better compatibility with WM_CLASS 163 | - Accept environment variable RESOURCE_NAME 164 | - Document --name and --class command line options in manpage 165 | - Note that -title and -T no longer changes WM_CLASS 166 | - Thanks to Zveroy and 167 | Tetralet 168 | * Accept environment variable PKG_CONFIG_PATH, thanks to letoh 169 | * Support -g +X+Y command line option to assign initial window geometry 170 | * Prevent tab labels getting focus 171 | 172 | 0.4.7~pre5 173 | * Support -fn command line option to assign font and font size 174 | * Better compatibility with configure options 175 | 176 | 0.4.7~pre4 177 | * Support HOTKEY_MIMIC_SCROLL_*, thanks to qotsa 178 | * New configure option: --with-gtk=2.0|3.0 179 | 180 | 0.4.7~pre3 181 | * Support vte_terminal_fork_command_full 182 | * Support all positive integer font size 183 | * Drop gdk-pixbuf dependency. It was used for a bug only exists in VTE 0.24.0. 184 | 185 | 0.4.7~pre2 186 | * Support BELL_URGENT, aka WM_URGENT hint. Thanks to L29Ah. 187 | 188 | 0.4.7~pre1 189 | 190 | The "Thanks to Aragon!" Release 191 | 192 | * Rename MATCH_STRING_EXEC to MATCH_STRING_L 193 | * Provide MATCH_STRING_M 194 | * Fix two MATCH_STRING_* bugs 195 | * Fix two WINDOW_TITLE_DYNAMIC bugs 196 | * Fix a cross-platform issue 197 | 198 | 0.4.6 199 | * Workaround for VTE 0.24.0 vte_terminal_set_background_image_file() bug 200 | 201 | 0.4.6~pre6 202 | * Support CURSOR_SHAPE 203 | * New BACKSPACE_KEY and DELETE_KEY option: ERASE_TTY 204 | * Simplify Makefile and configure 205 | 206 | 0.4.6~pre5 207 | * Saturation can be adjusted by holding Ctrl and scrolling mouse up or down. 208 | Define both MOUSE_CTRL_SATURATION and HOTKEY to TRUE to use this function. 209 | If CTRL_ALT is TRUE, you have to hold Ctrl and Alt while scrolling. 210 | * Remove close button border in some specific themes 211 | Thanks to Tetralet 212 | 213 | 0.4.6~pre4 214 | * Support MATCH_STRING_EXEC 215 | * Define TAB_LABEL when Arch Linux is detected, thanks to Ethan 216 | 217 | 0.4.6~pre3 218 | * Respect CC 219 | * Support gnome-default-applications 220 | * Support "make uninstall" 221 | * VTE_FIXED color style will be disabled if VTE version >= 0.17.1 222 | * Do not define SHOW_WINDOW_BORDER automatically 223 | 224 | 0.4.6~pre2 225 | * Support -d command line option to run as a dock 226 | * Support WINDOW_TITLE_DYNAMIC for xterm escape sequences, thanks to IllvilJa 227 | * Support personal configuration file other than src/config.h. For example: 228 | "make distclean ; ./configure --config=/dev/null ; make strip" 229 | 230 | 0.4.6~pre1 231 | * Support PROGRAM_ICON so users can put their own icons at $HOME 232 | * Respect CFLAGS and OPTFLAGS 233 | * Drop "Select_all" in MENU_CUSTOM. Use "Select all" instead. 234 | * Improve coloring of showvte and configure script 235 | * Improve man page description. Thanks to editors of http://freshmeat.net. 236 | 237 | 0.4.5 238 | * Support -ls command line option to enable login shell 239 | * Fix an CLOSE_SAFELY bug which was in 0.4.5~pre5 to 0.4.5~pre7 240 | * Make TAB_LABEL more customizable and support i18n 241 | * Hide DEFAULT_ARGV 242 | * Fix build failure when linked by GNU gold linker 243 | Thanks to Peter Fritzsche 244 | 245 | 0.4.5~pre7 246 | * Fix an HOTKEY_TOGGLE_BACKGROUND bug which was in 0.4.5~pre3 to 0.4.5~pre6 247 | 248 | 0.4.5~pre6 249 | * Support TAB_LABEL_DYNAMIC for xterm escape sequences, thanks to Pavel Plesov 250 | 251 | 0.4.5~pre5 252 | * Merge changes from 0.4.4.2 253 | 254 | 0.4.5~pre4 255 | * New option DEFAULT_TERMINAL_SIZE 256 | * New option SCROLLBAR 257 | 258 | 0.4.5~pre3 259 | * Improve command line option support 260 | * Improve hotkey customization 261 | 262 | 0.4.5~pre2 263 | * Fix a displaying bug about toggling scrollbar or status bar. 264 | 265 | 0.4.5~pre1 266 | * Enable deprecated VTE functions that were disabled in evilvte 0.4.4. 267 | 268 | 0.4.4.2 269 | * Fix an CLOSE_DIALOG bug which could destroy the program by accident. 270 | Thanks to an anonymous guest. 271 | (http://hyperrate.com/thread.php?tid=11916#11916) 272 | * Support "make distclean" 273 | 274 | 0.4.4.1 275 | * Support command line -T option 276 | 277 | 0.4.4 278 | * Disable deprecated VTE functions if VTE version >= 0.19.4 279 | 280 | 0.4.4~pre10 281 | * Support CTRL_ALT 282 | If you enable it, all hotkeys will become Ctrl + Alt + hotkey(s). 283 | 284 | 0.4.4~pre9 285 | * Support command line -f option 286 | * New COLOR_STYLE option: VTE_FIXED 287 | 288 | 0.4.4~pre8 289 | 290 | The "Thanks to Samuli Suominen!" Release 291 | 292 | * Rename libraries variable to LDLIBS 293 | * Fix Makefile to work with LDFLAGS="-Wl,--as-needed" 294 | * Remove target "all" from target "install" which caused everything to get 295 | re-compiled at install phase. 296 | 297 | 0.4.4~pre7 298 | * Respect LDFLAGS 299 | 300 | 0.4.4~pre6 301 | * Support PROGRAM_WM_CLASS 302 | Thanks to Bruno Vieira 303 | 304 | 0.4.4~pre5 305 | * Support CTRL_TOGGLE_FULLSCREEN and "Toggle fullscreen" item in menu 306 | * Fix a do-no-harm message when trying to rename a null tab label 307 | Thanks to Bernhard R. Link 308 | 309 | 0.4.4~pre4 310 | * Support command line -title option 311 | * Use g_get_current_dir() instead of g_getenv("PWD") to decide current path 312 | Thanks to Bruno Vieira 313 | 314 | 0.4.4~pre3 315 | * Support TAB_CLOSE_BUTTON 316 | 317 | 0.4.4~pre2 318 | * Support TAB_REORDERABLE 319 | * Fix a switch-page bug 320 | * Always handle delete_event signal 321 | * Disable tab label auto-resorting 322 | 323 | 0.4.4~pre1 324 | * Support command line -r option 325 | * Support command line -h option 326 | * Support command line -2 to -9 options 327 | * Make manpage according to build-time options 328 | 329 | 0.4.3 330 | * Support PROGRAM_ALWAYS_ON_TOP 331 | * Support CTRL_TOGGLE_ON_TOP and "Toggle always on top" item in menu 332 | 333 | 0.4.3~pre1 334 | * Fix Segmentation fault when closing program 335 | 336 | 0.4.2 337 | * Clarify licenses 338 | Thanks to Vincent Bernat and 339 | Don Armstrong 340 | 341 | 0.4.1 342 | * Support CTRL_SATURATION_DIALOG and "Adjust saturation" item in menu 343 | * Support CTRL_COLOR_BACKGROUND and "Background tint" item in menu 344 | * Parse TOGGLE_BG_ORDER and COLOR_STYLE 345 | * Support command line -v option in showvte 346 | 347 | 0.4.0 348 | * Support CTRL_TOGGLE_HOTKEYS and "Toggle hotkeys locking" item in menu 349 | When hotkeys are locked, all evilvte hotkeys will be disabled, except 350 | CTRL_TOGGLE_HOTKEYS. 351 | * Fix a focus bug 352 | * Let all tabs share the same background setting and saturation level 353 | * Adjust saturation of opacity to match the saturation of background image 354 | 355 | 0.3.9 356 | * Parse src/config.h to make binary smaller. 357 | * Support CTRL_TOGGLE_ANTI_ALIAS 358 | * Support CTRL_TOGGLE_DECORATED 359 | * Support CTRL_TOGGLE_SCROLLBAR 360 | * Support CTRL_TOGGLE_STATUS_BAR 361 | * Support CTRL_TOGGLE_TABBAR 362 | * Support "Quit" item in menu 363 | 364 | 0.3.8 365 | * Support CLOSE_DIALOG 366 | * Support "Toggle window decorated" item in menu 367 | * Support "Toggle anti-alias" item in menu 368 | * Support "make strip" and "make installstrip" 369 | 370 | 0.3.7 371 | * Support MOUSE_CTRL_SATURATION 372 | * Support "Toggle scrollbar", "Toggle status bar", and "Toggle tabbar" items 373 | in menu 374 | * Disable menu when MENU_CUSTOM defines nothing or separators only. 375 | * Fix build failure when CTRL_TOGGLE_BACKGROUND is enabled without defining 376 | BACKGROUND_SATURATION 377 | 378 | 0.3.6 379 | * Support BACKGROUND_OPACITY and SHOW_WINDOW_DECORATED 380 | Thanks to dx 381 | * Do not kill foreground applications when CLOSE_SAFELY is enabled 382 | Thanks to Tetralet 383 | 384 | 0.3.5 385 | * Support "Submenu encoding list" item in menu 386 | * Support "Submenu input method" item in menu 387 | * Support CTRL_SELECT_ALL and "Select_all" item in menu 388 | * Support "Toggle background" item in menu 389 | * Remove "Quit" item in menu 390 | 391 | 0.3.4 392 | * Support MENU_MATCH_STRING_EXEC 393 | * Support "Select font" item in menu 394 | * Support CTRL_FONT_SELECT 395 | * Support PROGRAM_VERSION for personal versioning 396 | * Simplify menu customization 397 | 398 | 0.3.3 399 | * Remove an useless variable in the struct terminal. 400 | Thanks to marianoguerra 401 | * Fix an TABBAR_SCROLLABLE bug 402 | Thanks to marianoguerra 403 | * Fix a label editing bug when scrollbar is not enabled 404 | * Support TAB_EXPANDED_WIDTH 405 | 406 | 0.3.2 407 | * Fix the auto-detect-SUSE failure in openSUSE Build Service. 408 | Thanks to swyear 409 | * Support "New window" and "Edit label" items in menu 410 | * Support "Zoom in", "Zoom out", and "Zoom default" items in menu 411 | 412 | 0.3.1 413 | * Define TAB_LABEL when SUSE system is detected 414 | Thanks to swyear 415 | * Support MENU_CUSTOM 416 | * Support "Reset terminal", "Quit", and "Separator" items in menu 417 | 418 | 0.3.0 419 | * Support "Copy" and "Paste" items in menu 420 | * Support "Add tab" and "Remove tab" items in menu 421 | * Support "Reset and clear" item in menu 422 | * Support CTRL_OPEN_NEW_WINDOW 423 | * Support CTRL_EDIT_ENCODING 424 | * Support gtk-alternative-button-order setting 425 | * Fix a dialog title bug 426 | * Fix an CTRL_TAB_EDIT_LABEL hotkey bug 427 | 428 | 0.2.9 429 | * Support CTRL_TAB_EDIT_LABEL 430 | * Support TOGGLE_BG_ORDER 431 | * Support new tab with current tab's working directory 432 | 433 | 0.2.8 434 | * Support TAB_LABEL_STYLE_*, thanks to BV1AL. 435 | * Support CTRL_TOGGLE_BACKGROUND 436 | * Support CTRL_TAB_FIRST and CTRL_TAB_LAST 437 | * Support CTRL_TAB_GO_TO_NUMBER 438 | 439 | 0.2.7 440 | * Support COMMAND_SHOW_OPTIONS 441 | * Add a script "showvte" to show build-time configuration 442 | * Show configuration status in configure script 443 | 444 | 0.2.6 445 | * Support CTRL_SATURATION_MORE and CTRL_SATURATION_LESS 446 | * Support LABEL_DEFAULT_ENCODING 447 | 448 | 0.2.5 449 | * Support all arguments in -e option 450 | Thanks to Tetralet 451 | * Support CTRL_RESET_TERMINAL 452 | * Support CTRL_RESET_AND_CLEAR 453 | 454 | 0.2.4 455 | * Fix an TABBAR_AUTOHIDE bug 456 | 457 | 0.2.3 458 | * New option TABBAR 459 | * Support TAB_SHOW_INFO_AT_TITLE 460 | * Fix an CLOSE_SAFELY bug for i386 architecture 461 | * Fix a status bar size bug 462 | 463 | 0.2.2 464 | * Support TABBAR_MENU_SELECT_TAB 465 | * Support TABBAR_SCROLLABLE 466 | * Support tabbar at bottom, left, right, and top 467 | 468 | 0.2.1 469 | * Support DEFAULT_EMULATION_TYPE 470 | * Support COMMAND_EXEC_PROGRAM 471 | 472 | 0.2.0 473 | * Support hotkeys for copy and paste 474 | * Support transparent background 475 | * Support "Input method" item in menu 476 | * Support VteTerminalEraseBinding 477 | * Support background image 478 | * Support cursor blinks 479 | * Support font size change with hotkey 480 | * Support "Default Encoding" in encoding switching menu 481 | * Support CLOSE_SAFELY 482 | * Close a tab will not close background applications now 483 | * Support command line -v option 484 | * Support all VTE color settings 485 | * Support foreground and background colors 486 | * Configurable hotkeys 487 | 488 | 0.1.0 489 | * Support window title 490 | * Support window icon 491 | * Option to turn off tabs 492 | * Fix defining TAB_LABEL without scrollbar 493 | * Support SHOW_WINDOW_BORDER and TAB_BORDER 494 | * Support color scheme 495 | * Support tabbar autohide 496 | 497 | 0.0.2 498 | * Initial release 499 | 500 | 0.0.1 501 | * Forked from sakura 2.0.1, http://www.pleyades.net/david/sakura.php 502 | Thanks to David Gómez 503 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | include src/config.mk 2 | 3 | ifeq ($(LDFLAGS),) 4 | LDFLAGS = -Wl,--as-needed 5 | endif 6 | 7 | ifeq ($(LDLIBS),) 8 | LDLIBS = -L/usr/local/lib $(LIBS_VTE_L) -lglib-2.0 -lgobject-2.0 $(LIBS_VTE) 9 | endif 10 | 11 | CFLAGS += $(OPTFLAGS) $(VTEINC) 12 | 13 | evilvte: src/evilvte.o 14 | $(CC) $(LDFLAGS) src/evilvte.o $(LDLIBS) -o src/$(PROG) 15 | 16 | src/evilvte.o: src/evilvte.h 17 | 18 | prepare: 19 | rm -f src/custom.h src/evilvte.h src/evilvte.o 20 | 21 | src/custom.h: prepare $(CONF_FILE) 22 | (echo '/* This file is generated - please edit $(CONF_FILE) instead */'; \ 23 | grep -v '^ *//' $(CONF_FILE) \ 24 | | sed 's/ CTRL_ALT / CTRL_ALT_FOO /g') > src/custom.h 25 | 26 | src/evilvte.h: src/custom.h 27 | sh src/process.sh src/$(PROG) 28 | 29 | strip: evilvte 30 | strip --remove-section=.comment --remove-section=.note src/$(PROG) 31 | 32 | install: 33 | install -d $(bindir) 34 | install -m 755 src/$(PROG) src/showvte $(bindir) 35 | install -d $(ICON_DIR_INSTALL) 36 | install -m 644 misc/48.png $(ICON_DIR_INSTALL)/evilvte.png 37 | install -d $(THEME_DIR)/hicolor/16x16/apps 38 | install -m 644 misc/16.png $(THEME_DIR)/hicolor/16x16/apps/evilvte.png 39 | install -d $(THEME_DIR)/hicolor/20x20/apps 40 | install -m 644 misc/20.png $(THEME_DIR)/hicolor/20x20/apps/evilvte.png 41 | install -d $(THEME_DIR)/hicolor/22x22/apps 42 | install -m 644 misc/22.png $(THEME_DIR)/hicolor/22x22/apps/evilvte.png 43 | install -d $(THEME_DIR)/hicolor/24x24/apps 44 | install -m 644 misc/24.png $(THEME_DIR)/hicolor/24x24/apps/evilvte.png 45 | install -d $(THEME_DIR)/hicolor/32x32/apps 46 | install -m 644 misc/32.png $(THEME_DIR)/hicolor/32x32/apps/evilvte.png 47 | install -d $(THEME_DIR)/hicolor/36x36/apps 48 | install -m 644 misc/36.png $(THEME_DIR)/hicolor/36x36/apps/evilvte.png 49 | install -d $(THEME_DIR)/hicolor/40x40/apps 50 | install -m 644 misc/40.png $(THEME_DIR)/hicolor/40x40/apps/evilvte.png 51 | install -d $(THEME_DIR)/hicolor/48x48/apps 52 | install -m 644 misc/48.png $(THEME_DIR)/hicolor/48x48/apps/evilvte.png 53 | install -d $(THEME_DIR)/hicolor/64x64/apps 54 | install -m 644 misc/64.png $(THEME_DIR)/hicolor/64x64/apps/evilvte.png 55 | install -d $(THEME_DIR)/hicolor/72x72/apps 56 | install -m 644 misc/72.png $(THEME_DIR)/hicolor/72x72/apps/evilvte.png 57 | install -d $(THEME_DIR)/hicolor/96x96/apps 58 | install -m 644 misc/96.png $(THEME_DIR)/hicolor/96x96/apps/evilvte.png 59 | install -d $(THEME_DIR)/hicolor/scalable/apps 60 | install -m 644 misc/evilvte.svg $(THEME_DIR)/hicolor/scalable/apps 61 | install -d $(mandir) 62 | install -m 644 misc/evilvte.1 misc/showvte.1 $(mandir) 63 | install -d $(deskdir) 64 | install -m 644 misc/evilvte.desktop $(deskdir) 65 | install -d $(GNOME_DEF_APP) 66 | install -m 644 misc/evilvte.xml $(GNOME_DEF_APP) 67 | 68 | install-strip: strip 69 | sh src/install.sh 70 | 71 | uninstall: 72 | sh src/uninstall.sh 73 | 74 | clean: src/config.mk 75 | rm -f src/$(PROG) src/showvte src/evilvte.o src/evilvte.h misc/evilvte.? src/custom.h 76 | 77 | distclean: clean 78 | rm -f src/evilvte.c src/*.o src/*.mk src/install.sh src/uninstall.sh 79 | 80 | src/config.mk: 81 | ./configure --quiet 82 | 83 | .PHONY: evilvte prepare strip install install-strip uninstall clean distclean 84 | -------------------------------------------------------------------------------- /SHA1SUMS: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP SIGNED MESSAGE----- 2 | Hash: SHA1,SHA512 3 | 4 | 0dff499cb74d14a26e877d33aea94cafe1167c72 16732 ChangeLog 5 | a04ecb6c7384bf33bb3dd5eecf696b4578a44873 2903 Makefile 6 | ee9ab3617a5b97cbb29bb96e91c92689b425ebe3 10218 configure 7 | 4cc77b90af91e615a64ae04893fdffa7939db84c 18092 gpl-2.0.txt 8 | 5b7542ce6d5aab4e3529ae8b8b11ae2c470c1e01 864 misc/16.png 9 | 49dd0639ca6e9dc9726311ba9a7a2f4aeb44c3be 694 misc/20.png 10 | 80be5014d3fdcc2c3b4a2ced3e0700900616b5f9 741 misc/22.png 11 | 45417744c31fddf5223bd42be6bb3ef792f18b86 813 misc/24.png 12 | 9d615f9fb27b5d6db4f1788e492acf55d03b86ab 988 misc/32.png 13 | ae38a2198cce1af62832132fe7afada23f68e490 1258 misc/36.png 14 | 4a2042bfd083565a7f2872b321fdc12468a5d2a7 1415 misc/40.png 15 | 797b6647d7f2213fe69b68d00f3c7be1230c69dd 1644 misc/48.png 16 | eae1b0fb4deb0adbed4237bfbf7cea7022efa909 2373 misc/64.png 17 | 2ed6879f871e1604c17724a6906b5307bc893313 2853 misc/72.png 18 | 18ad6f262b972382789e2c811bd34a6f984adeca 3033 misc/96.png 19 | edd3909afc7ea08a5108aa2b26425f01596eca52 1433 misc/evilvte.desktop 20 | 45cf02d4da29acd0388cd19527a58dd123f44586 15284 misc/evilvte.svg 21 | 83055c532a24e778aabd9b5aa86cf9ee3d1f17a9 353 misc/evilvte.xml 22 | 299e5764800d97fb4d4a7436eee21bb32958f105 1882 misc/manpage.1 23 | a83357473eb7c431a9f8e2813e02553d5ffa54b7 338 misc/showvte.1 24 | b3d4693cf3009be584d286e1cc9b264365dedb80 12158 src/config.h 25 | a80eddf1416b44bf110ec907610d8f3008c44a70 134053 src/dlopen.c 26 | 3fffe22a51126228a40cfda41966cf496410c4f8 86625 src/gtk2.c 27 | 02f9698c5dc2a605020f615b5adb874dc26ee0ea 89919 src/gtk3.c 28 | bdc611241ee148ea67a008af090911708aff8a48 87713 src/gtk3dev.c 29 | 019867e7d7436d8aa5d0c69350b0b0c5d79d2d1f 2216 src/macro1.h 30 | df1605994ff7d4511068766a30fe04c14b64a5c0 25377 src/macro2.h 31 | 838b43b5274c2e7f173aeb0d6b24aea85913e79d 16438 src/process.sh 32 | -----BEGIN PGP SIGNATURE----- 33 | 34 | iEYEARECAAYFAlJbYycACgkQdEpXpumNYVmmhgCdH5EkrEmfOGzeBSwCc+S3st3k 35 | lg8AniMohHlSn/Wd4krjxmUTSz7Q0t23iQIcBAEBCgAGBQJSW2MnAAoJELc3H0m+ 36 | i6gZ0h0P/0l5fPbU2YbOEZ8h+tcP7z4EcSud5GIlFrOYKLDnsIgt3BarEs9hei61 37 | qYZ7nyQAMOr7m7XYcwcxIsUbuM31J96n+7qOm65PSmWteY9OvdaIQJS/GY3aecw9 38 | w1zjFTd1uUueLfNycg/X5wvY5AVR1cmTY5eIq8TEqG2YRa53w5GEkOZeqdmHvTNO 39 | pUC23cJPh1KXuUrQVTSazKEv/NNsewj8Bpi+8PPHFQ+dYO7TBGqGv3BMvgFWQGDM 40 | /KxZGuy5bvmg2BQXiWtD0crK1it1HM0yRIck0eyeZYrNZC0G+o18+7JPlLBef/+Q 41 | hJHhGK022/8Pc1++4uzTaPlgM4YMieZTBoaZ5YX7Amp4HZe3LBQWGABR9KsdXBbZ 42 | 9eBueeOe3zcOwzRcn4PGZ9wOfuPVK+9IlMSYhsEg23hDleI93OET4LMNwhdRUWsq 43 | hip0z2ePDTOoK1ymH4iod9P4HsM0Ez09VYR3gFoKA88VyRVFrG1bg2QhYY0xSL7L 44 | V6lcT/iH60L9Iba5viMX4Z0XiLzeY+uLFTbTqy9DUrlCcV5KU3Io/vEDguc1pDTT 45 | sql+GyiWaV04VNny+ZvYoQa5pkpeqHct/ZcWABADLCr+RH47KcFB3IQxUDe7+AYZ 46 | 106radVvLksuec4UWJhDRREKYi9eCJMgvmklILjaXojbBMXoIGWd 47 | =DoEf 48 | -----END PGP SIGNATURE----- 49 | -------------------------------------------------------------------------------- /configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -f src/*.o src/*.mk src/custom.h src/evilvte.h src/install.sh src/uninstall.sh 4 | 5 | DO_CAT=cat 6 | DO_ECHO=echo 7 | prefix="/usr/local" 8 | CONF_FILE="src/config.h" 9 | 10 | for opt do 11 | case "$opt" in 12 | --with-gtk=*) with_gtk=`echo $opt | cut -d '=' -f 2` 13 | ;; 14 | --quiet) DO_CAT=true 15 | DO_ECHO=true 16 | ;; 17 | --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` 18 | ;; 19 | --config=*) CONF_FILE=`echo $opt | cut -d '=' -f 2` 20 | ;; 21 | -h | "-?" | --help | --config | --prefix | --quiet=* | --with-gtk) 22 | echo 23 | echo " Options: --prefix=/usr/local (default)" 24 | echo " --prefix=/usr" 25 | echo 26 | echo " --config=src/config.h (default)" 27 | echo ' --config=$HOME/.config/evilvte/config.h' 28 | echo 29 | echo " --with-gtk=2.0 (default)" 30 | echo " --with-gtk=3.0" 31 | echo " --with-gtk=3+2" 32 | exec echo 33 | ;; 34 | *) 35 | $DO_ECHO 36 | $DO_ECHO Option '"'$opt'"' is not supported yet. | sed 's/=.* is/" is/' 37 | ;; 38 | esac 39 | done 40 | 41 | if [ ! -e $CONF_FILE ] || [ -d $CONF_FILE ]; then 42 | $DO_ECHO 43 | $DO_ECHO "WARNING: parsing error: $CONF_FILE" 44 | HOME_ERR=`echo $CONF_FILE | grep '~'` 45 | if [ "$HOME_ERR" != "" ]; then 46 | $DO_ECHO ' Please do not use "~".' 47 | else 48 | $DO_ECHO " Please make sure your configuration file is correct." 49 | fi 50 | exec $DO_ECHO 51 | fi 52 | 53 | PROG=`grep PROGRAM_NAME $CONF_FILE | sed -e 's/\t/ /g' -e 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | cut -d '"' -f 2` 54 | [ "$PROG" = "" ] && PROG=evilvte 55 | 56 | SUSE_LD=`ld -v 2>&1 | tr A-Z a-z | grep suse` 57 | [ "$SUSE_LD" != "" ] && echo \#define DEF_TAB_LABEL >> src/config.mk 58 | 59 | ARCH_UNAME=`uname -a | grep -- '-ARCH '` 60 | [ "$ARCH_UNAME" != "" ] && echo \#define DEF_TAB_LABEL >> src/config.mk 61 | 62 | real_gtk=$with_gtk 63 | if [ "$with_gtk" != "2.0" ] && [ "$with_gtk" != "3.0" ]; then 64 | with_gtk=2.0 65 | VTEINC=`pkg-config --cflags vte 2> /dev/null` 66 | if [ $? != 0 ]; then 67 | VTEINC=`pkg-config --cflags vte-2.90 2> /dev/null` 68 | [ $? = 0 ] && with_gtk=3.0 69 | fi 70 | fi 71 | 72 | [ "$real_gtk" = "3+2" ] && with_gtk=3.0 73 | [ "$real_gtk" = "dev" ] && with_gtk=3.0 74 | 75 | if [ "$with_gtk" = "2.0" ]; then 76 | VTEINC=`pkg-config --cflags vte 2> /dev/null` 77 | [ $? != 0 ] && exec pkg-config --cflags vte 78 | LIBS_VTE="-lgdk-x11-2.0 -lgtk-x11-2.0 -lvte" 79 | LIBS_VTE_L=`pkg-config --libs-only-L vte 2> /dev/null` 80 | ln -sf gtk2.c src/evilvte.c 81 | fi 82 | 83 | if [ "$with_gtk" = "3.0" ]; then 84 | VTEINC=`pkg-config --cflags vte-2.90 2> /dev/null` 85 | [ $? != 0 ] && exec pkg-config --cflags vte-2.90 86 | LIBS_VTE="-lgdk-3 -lgtk-3 -lvte2_90" 87 | LIBS_VTE_L=`pkg-config --libs-only-L vte-2.90 2> /dev/null` 88 | ln -sf gtk3.c src/evilvte.c 89 | fi 90 | 91 | if [ "$real_gtk" = "3+2" ]; then 92 | real_gtk="all" 93 | LIBS_VTE="-ldl" 94 | ln -sf dlopen.c src/evilvte.c 95 | fi 96 | 97 | [ "$real_gtk" = "dev" ] && ln -sf gtk3dev.c src/evilvte.c 98 | 99 | $DO_ECHO 100 | [ "$SUSE_LD" != "" ] && $DO_ECHO "OS :" SUSE 101 | [ "$ARCH_UNAME" != "" ] && $DO_ECHO "OS :" Arch Linux 102 | [ "$with_gtk" = "2.0" ] && $DO_ECHO "VTE :" `pkg-config --modversion vte` 103 | [ "$with_gtk" = "3.0" ] && $DO_ECHO "VTE :" `pkg-config --modversion vte-2.90` 104 | $DO_ECHO "GTK+ :" `pkg-config --modversion gtk+-$with_gtk` 105 | $DO_ECHO Prefix: $prefix 106 | $DO_ECHO -n "Configuration: " 107 | DEFINE_LINES=`cat $CONF_FILE | tr '\t' ' ' | tr -s ' ' ' ' | sed -e 's/^ //' -e 's~/\*~\n~g' | grep ^\#define | wc -l` 108 | if [ "$DEFINE_LINES" = "0" ]; then 109 | $DO_ECHO Disable everything. 110 | else 111 | $DO_ECHO 112 | fi 113 | $DO_CAT $CONF_FILE | tr '\t' ' ' | tr -s ' ' ' ' | sed -e 's/^ //' -e 's~/\*~\n~g' | grep ^\#define | grep -v \*\/ | \ 114 | sed -e 's/$//' \ 115 | -e 's/"/"/' \ 116 | -e 's/ 0/ 0/' \ 117 | -e 's/ 1/ 1/' \ 118 | -e 's/ 2/ 2/' \ 119 | -e 's/ 3/ 3/' \ 120 | -e 's/ 4/ 4/' \ 121 | -e 's/ 5/ 5/' \ 122 | -e 's/ 6/ 6/' \ 123 | -e 's/ 7/ 7/' \ 124 | -e 's/ 8/ 8/' \ 125 | -e 's/ 9/ 9/' \ 126 | -e 's/TRUE/TRUE/' \ 127 | -e 's/FALSE/FALSE/' \ 128 | -e 's/ AUTO/ AUTO/' \ 129 | -e 's/ ERASE_TTY/ ERASE_TTY/' \ 130 | -e 's/ BLOCK/ BLOCK/' \ 131 | -e 's/ IBEAM/ IBEAM/' \ 132 | -e 's/ UNDERLINE/ UNDERLINE/' \ 133 | -e 's/ BACKSPACE/ BACKSPACE/g' \ 134 | -e 's/BACKSPACE_KEY/BACKSPACE_KEY/' \ 135 | -e 's/ DELETE/ DELETE/g' \ 136 | -e 's/DELETE_KEY/DELETE_KEY/' \ 137 | -e 's/ LINUX/ LINUX/' \ 138 | -e 's/ RXVT/ RXVT/' \ 139 | -e 's/ TANGO/ TANGO/' \ 140 | -e 's/ XTERM/ XTERM/' \ 141 | -e 's/ ZENBURN/ ZENBURN/' \ 142 | -e 's/ g_/ g_/' \ 143 | -e 's/ RIGHT/ RIGHT/' \ 144 | -e 's/ LEFT/ LEFT/' \ 145 | -e 's/ OFF_R/ OFF_R/' \ 146 | -e 's/ OFF_L/ OFF_L/' \ 147 | -e 's/ TOP/ TOP/' \ 148 | -e 's/ BOTTOM/ BOTTOM/' \ 149 | -e 's/ ALT(/ ALT(/' \ 150 | -e 's/ ALT_SHIFT(/ ALT_SHIFT(/' \ 151 | -e 's/ CTRL(/ CTRL(/' \ 152 | -e 's/ CTRL_ALT(/ CTRL_ALT(/' \ 153 | -e 's/ CTRL_ALT_SHIFT(/ CTRL_ALT_SHIFT(/' \ 154 | -e 's/ CTRL_SHIFT(/ CTRL_SHIFT(/' \ 155 | -e 's/ SHIFT(/ SHIFT(/' 156 | $DO_ECHO 157 | $DO_ECHO Please edit $CONF_FILE to customize your options. 158 | $DO_ECHO 159 | 160 | bindir=$prefix/bin 161 | mandir=$prefix/share/man/man1 162 | deskdir=$prefix/share/applications 163 | ICON_DIR=$prefix/share/pixmaps 164 | THEME_DIR=$prefix/share/icons 165 | GNOME_DEF_APP=$prefix/share/gnome-control-center/default-apps 166 | PROGRAM_VERSION=`head -n 1 ChangeLog` 167 | 168 | echo "VTEINC=$VTEINC" >> src/config.mk 169 | # sed -i 's/-pthread//' src/config.mk 170 | echo "LIBS_VTE=$LIBS_VTE" >> src/config.mk 171 | echo "LIBS_VTE_L=$LIBS_VTE_L" >> src/config.mk 172 | echo "prefix=$prefix" >> src/config.mk 173 | echo "bindir=\$(DESTDIR)$bindir" >> src/config.mk 174 | echo "mandir=\$(DESTDIR)$mandir" >> src/config.mk 175 | echo "deskdir=\$(DESTDIR)$deskdir" >> src/config.mk 176 | echo \#define ICON_DIR '"'$ICON_DIR'"' >> src/config.mk 177 | echo "ICON_DIR_INSTALL=\$(DESTDIR)$ICON_DIR" >> src/config.mk 178 | echo "THEME_DIR=\$(DESTDIR)$THEME_DIR" >> src/config.mk 179 | echo "GNOME_DEF_APP=\$(DESTDIR)$GNOME_DEF_APP" >> src/config.mk 180 | echo "PROG=$PROG" >> src/config.mk 181 | echo \#ifndef PROGRAM_VERSION >> src/config.mk 182 | echo \#define PROGRAM_VERSION '"'$PROGRAM_VERSION'"' >> src/config.mk 183 | echo \#endif >> src/config.mk 184 | [ "$real_gtk" = "all" ] && echo \#define RULE_THEM_ALL >> src/config.mk 185 | echo "CONF_FILE=$CONF_FILE" >> src/config.mk 186 | head -n 1 $0 > src/uninstall.sh 187 | echo "set -x" >> src/uninstall.sh 188 | echo "rm -f $bindir/$PROG" >> src/uninstall.sh 189 | echo "rm -f $bindir/showvte" >> src/uninstall.sh 190 | echo "rmdir $bindir 2> /dev/null" >> src/uninstall.sh 191 | echo "rm -f $deskdir/evilvte.desktop" >> src/uninstall.sh 192 | echo "rmdir $deskdir 2> /dev/null" >> src/uninstall.sh 193 | echo "rm -f $GNOME_DEF_APP/evilvte.xml" >> src/uninstall.sh 194 | echo "rmdir $GNOME_DEF_APP 2> /dev/null" >> src/uninstall.sh 195 | echo "rmdir $prefix/share/gnome-control-center 2> /dev/null" >> src/uninstall.sh 196 | echo "rm -f $mandir/evilvte.1" >> src/uninstall.sh 197 | echo "rm -f $mandir/showvte.1" >> src/uninstall.sh 198 | echo "rmdir $mandir 2> /dev/null" >> src/uninstall.sh 199 | echo "rmdir $prefix/share/man 2> /dev/null" >> src/uninstall.sh 200 | echo "rm -f $ICON_DIR/evilvte.png" >> src/uninstall.sh 201 | echo "rmdir $ICON_DIR 2> /dev/null" >> src/uninstall.sh 202 | echo "rm -f $THEME_DIR/hicolor/16x16/apps/evilvte.png" >> src/uninstall.sh 203 | echo "rmdir $THEME_DIR/hicolor/16x16/apps 2> /dev/null" >> src/uninstall.sh 204 | echo "rmdir $THEME_DIR/hicolor/16x16 2> /dev/null" >> src/uninstall.sh 205 | echo "rm -f $THEME_DIR/hicolor/20x20/apps/evilvte.png" >> src/uninstall.sh 206 | echo "rmdir $THEME_DIR/hicolor/20x20/apps 2> /dev/null" >> src/uninstall.sh 207 | echo "rmdir $THEME_DIR/hicolor/20x20 2> /dev/null" >> src/uninstall.sh 208 | echo "rm -f $THEME_DIR/hicolor/22x22/apps/evilvte.png" >> src/uninstall.sh 209 | echo "rmdir $THEME_DIR/hicolor/22x22/apps 2> /dev/null" >> src/uninstall.sh 210 | echo "rmdir $THEME_DIR/hicolor/22x22 2> /dev/null" >> src/uninstall.sh 211 | echo "rm -f $THEME_DIR/hicolor/24x24/apps/evilvte.png" >> src/uninstall.sh 212 | echo "rmdir $THEME_DIR/hicolor/24x24/apps 2> /dev/null" >> src/uninstall.sh 213 | echo "rmdir $THEME_DIR/hicolor/24x24 2> /dev/null" >> src/uninstall.sh 214 | echo "rm -f $THEME_DIR/hicolor/32x32/apps/evilvte.png" >> src/uninstall.sh 215 | echo "rmdir $THEME_DIR/hicolor/32x32/apps 2> /dev/null" >> src/uninstall.sh 216 | echo "rmdir $THEME_DIR/hicolor/32x32 2> /dev/null" >> src/uninstall.sh 217 | echo "rm -f $THEME_DIR/hicolor/36x36/apps/evilvte.png" >> src/uninstall.sh 218 | echo "rmdir $THEME_DIR/hicolor/36x36/apps 2> /dev/null" >> src/uninstall.sh 219 | echo "rmdir $THEME_DIR/hicolor/36x36 2> /dev/null" >> src/uninstall.sh 220 | echo "rm -f $THEME_DIR/hicolor/40x40/apps/evilvte.png" >> src/uninstall.sh 221 | echo "rmdir $THEME_DIR/hicolor/40x40/apps 2> /dev/null" >> src/uninstall.sh 222 | echo "rmdir $THEME_DIR/hicolor/40x40 2> /dev/null" >> src/uninstall.sh 223 | echo "rm -f $THEME_DIR/hicolor/48x48/apps/evilvte.png" >> src/uninstall.sh 224 | echo "rmdir $THEME_DIR/hicolor/48x48/apps 2> /dev/null" >> src/uninstall.sh 225 | echo "rmdir $THEME_DIR/hicolor/48x48 2> /dev/null" >> src/uninstall.sh 226 | echo "rm -f $THEME_DIR/hicolor/64x64/apps/evilvte.png" >> src/uninstall.sh 227 | echo "rmdir $THEME_DIR/hicolor/64x64/apps 2> /dev/null" >> src/uninstall.sh 228 | echo "rmdir $THEME_DIR/hicolor/64x64 2> /dev/null" >> src/uninstall.sh 229 | echo "rm -f $THEME_DIR/hicolor/72x72/apps/evilvte.png" >> src/uninstall.sh 230 | echo "rmdir $THEME_DIR/hicolor/72x72/apps 2> /dev/null" >> src/uninstall.sh 231 | echo "rmdir $THEME_DIR/hicolor/72x72 2> /dev/null" >> src/uninstall.sh 232 | echo "rm -f $THEME_DIR/hicolor/96x96/apps/evilvte.png" >> src/uninstall.sh 233 | echo "rmdir $THEME_DIR/hicolor/96x96/apps 2> /dev/null" >> src/uninstall.sh 234 | echo "rmdir $THEME_DIR/hicolor/96x96 2> /dev/null" >> src/uninstall.sh 235 | echo "rm -f $THEME_DIR/hicolor/scalable/apps/evilvte.svg" >> src/uninstall.sh 236 | echo "rmdir $THEME_DIR/hicolor/scalable/apps 2> /dev/null" >> src/uninstall.sh 237 | echo "rmdir $THEME_DIR/hicolor/scalable 2> /dev/null" >> src/uninstall.sh 238 | echo "rmdir $THEME_DIR/hicolor 2> /dev/null" >> src/uninstall.sh 239 | echo "rmdir $THEME_DIR 2> /dev/null" >> src/uninstall.sh 240 | echo "rmdir $prefix/share 2> /dev/null" >> src/uninstall.sh 241 | echo "rmdir $prefix 2> /dev/null" >> src/uninstall.sh 242 | echo "true" >> src/uninstall.sh 243 | -------------------------------------------------------------------------------- /gpl-2.0.txt: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /misc/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/16.png -------------------------------------------------------------------------------- /misc/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/20.png -------------------------------------------------------------------------------- /misc/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/22.png -------------------------------------------------------------------------------- /misc/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/24.png -------------------------------------------------------------------------------- /misc/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/32.png -------------------------------------------------------------------------------- /misc/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/36.png -------------------------------------------------------------------------------- /misc/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/40.png -------------------------------------------------------------------------------- /misc/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/48.png -------------------------------------------------------------------------------- /misc/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/64.png -------------------------------------------------------------------------------- /misc/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/72.png -------------------------------------------------------------------------------- /misc/96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb-/evilvte/8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a/misc/96.png -------------------------------------------------------------------------------- /misc/evilvte.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Evilvte 4 | Comment=Terminal Emulator 5 | Comment[ar]=محاكي طرفية 6 | Comment[be]=Эмулятар тэрмінала 7 | Comment[ca]=Emulador de terminal 8 | Comment[cs]=Emulátor terminálu 9 | Comment[de]=Terminal-Programm 10 | Comment[dz]=ཊར་མི་ནཱལ་ནུས་འཕྲུལ། 11 | Comment[el]=Προσομοίωση τερματικού 12 | Comment[en_GB]=Terminal Emulator 13 | Comment[eo]=Terminala Simulilo 14 | Comment[es]=Emulador de Terminal para las X 15 | Comment[eu]=Terminal Emuladorea 16 | Comment[fi]=Pääte-emulaattori 17 | Comment[fr]=Émulateur de terminal 18 | Comment[he]=מדמה מסוף 19 | Comment[hu]=Terminál Emulátor 20 | Comment[ja]=ターミナルエミュレーター 21 | Comment[ko]=터미널 에뮬레이터 22 | Comment[lv]=Termināļa Emulators 23 | Comment[nb_NO]=Teminalemulator 24 | Comment[nl]=Terminal-emulatieprogramma 25 | Comment[pa]=ਟਰਮੀਨਲ ਈਮੂਲੇਟਰ 26 | Comment[pl]=Emulator terminala 27 | Comment[pt_BR]=Emulador de Terminal 28 | Comment[pt_PT]=Emulador de Terminal 29 | Comment[ro]=Emulator de terminal 30 | Comment[ru]=Эмулятор терминала 31 | Comment[sk]=Terminál Emulátor 32 | Comment[sq]=Emulues Terminali 33 | Comment[sv]=Terminalemulator 34 | Comment[tr]=Uçbirim Öykünücüsü 35 | Comment[uk]=Імітатор терміналу 36 | Comment[ur]=ٹرمنل ایمولیٹر 37 | Comment[vi]=Trình giả lập Terminal 38 | Comment[zh_TW]=終端機程式 39 | Icon=evilvte 40 | Exec=evilvte 41 | Categories=System;Utility;TerminalEmulator; 42 | -------------------------------------------------------------------------------- /misc/evilvte.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 49 | 53 | 57 | 58 | 66 | 70 | 74 | 75 | 84 | 86 | 90 | 94 | 95 | 104 | 112 | 116 | 120 | 121 | 129 | 133 | 137 | 138 | 145 | 149 | 153 | 154 | 162 | 166 | 169 | 170 | 178 | 182 | 186 | 190 | 194 | 195 | 203 | 207 | 211 | 212 | 220 | 222 | 225 | 229 | 230 | 238 | 246 | 250 | 253 | 257 | 258 | 268 | 278 | 288 | 298 | 308 | 318 | 327 | 337 | 347 | 357 | 366 | 375 | 385 | 386 | 388 | 389 | 391 | image/svg+xml 392 | 394 | 395 | 396 | 397 | 398 | 405 | 410 | 415 | 424 | 433 | 442 | 451 | 456 | 465 | e_ 479 | e_ 493 | 494 | -------------------------------------------------------------------------------- /misc/evilvte.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | evilvte 7 | evilvte 8 | evilvte %s 9 | terminal 10 | -e 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /misc/manpage.1: -------------------------------------------------------------------------------- 1 | .TH EVILVTE 1 2 | .SH NAME 3 | evilvte \- highly customizable terminal emulator based on VTE 4 | .SH SYNOPSIS 5 | .B evilvte 6 | .RI [ options ] 7 | .SH DESCRIPTION 8 | .B evilvte 9 | is a terminal emulator. It supports almost everything VTE provides. It also supports tabs, automatic hiding of the tab bar, and the ability to switch encoding at runtime. Configuration is done by editing the source code and recompiling it. 10 | .SH OPTION 11 | .\" 2 .TP 12 | .\" 2 .B \-2 \-3 \-4 \-5 \-6 \-7 \-8 \-9 13 | .\" 2 Specify the initial tab numbers. 14 | .\" D .TP 15 | .\" D .B \-d 16 | .\" D Start evilvte as a dock. 17 | .\" E .TP 18 | .\" E .B \-e [program] [options] 19 | .\" E Specify the program to be run in evilvte. 20 | .\" F .TP 21 | .\" F .B \-f 22 | .\" F Start evilvte in fullscreen mode. 23 | .\" 3 .TP 24 | .\" 3 .B \-fg 25 | .\" 3 Specify foreground color 26 | .\" 4 .TP 27 | .\" 4 .B \-bg 28 | .\" 4 Specify background color 29 | .\" 5 .TP 30 | .\" 5 .B \-sa 31 | .\" 5 Specify saturation level in [0, 1] 32 | .\" 7 .TP 33 | .\" 7 .B \-fn \[dq][font] [size]\[dq] 34 | .\" 7 Specify font and font size. 35 | .\" G .TP 36 | .\" G .B \-g +X+Y 37 | .\" G Specify initial window geometry. 38 | .\" H .TP 39 | .\" H .B \-h 40 | .\" H Show help. 41 | .\" O .TP 42 | .\" O .B \-o 43 | .\" O Show build-time configuration of evilvte. It is as same as the "showvte" command. 44 | .\" R .TP 45 | .\" R .B \-r 46 | .\" R Make evilvte run in root window. 47 | .\" V .TP 48 | .\" V .B \-v 49 | .\" V Show version of evilvte. 50 | .\" T .TP 51 | .\" T .B \-T, \-title [string] 52 | .\" T Specify program title. 53 | .\" L .TP 54 | .\" L .B \-ls 55 | .\" L Use login shell. 56 | .\" 6 .SH GTK+ OPTIONS 57 | .\" 6 6 .TP 58 | .\" 6 6 .B \--2 59 | .\" 6 6 Specify GTK+ 2.x as GUI. 60 | .\" 6 6 .TP 61 | .\" 6 6 .B \--3 62 | .\" 6 6 Specify GTK+ 3.x as GUI. 63 | .\" 6 .TP 64 | .\" 6 .B \--class [string] 65 | .\" 6 Specify WM_CLASS class. 66 | .\" 6 .TP 67 | .\" 6 .B \--name [string] 68 | .\" 6 Specify WM_CLASS name. 69 | .\" 8 .SH ENVIRONMENT VARIABLE 70 | .\" 8 .TP 71 | .\" 8 .B RESOURCE_NAME 72 | .\" 8 Specify WM_CLASS name. 73 | .SH SEE ALSO 74 | .BR showvte (1) 75 | .SH AUTHOR 76 | evilvte was written by Wen-Yen Chuang 77 | -------------------------------------------------------------------------------- /misc/showvte.1: -------------------------------------------------------------------------------- 1 | .TH SHOWVTE 1 2 | .SH NAME 3 | showvte \- show build-time configuration of evilvte 4 | .SH SYNOPSIS 5 | .B showvte 6 | .RI [ option ] 7 | .SH DESCRIPTION 8 | .B showvte 9 | displays build-time configuration of evilvte. 10 | .SH OPTIONS 11 | .TP 12 | .B \-v 13 | Show version of showvte. 14 | .SH SEE ALSO 15 | .BR evilvte (1) 16 | .SH AUTHOR 17 | showvte was written by Wen-Yen Chuang 18 | -------------------------------------------------------------------------------- /src/config.h: -------------------------------------------------------------------------------- 1 | /* Use // to disable options */ 2 | 3 | #define BACKGROUND_IMAGE ".config/evilvte/background.png" 4 | // #define BACKGROUND_SATURATION 0.4 5 | // #define BACKGROUND_SCROLLABLE TRUE 6 | // #define BACKGROUND_TINT_COLOR "black" 7 | // #define BACKGROUND_TRANSPARENT TRUE /* Pseudo transparent background */ 8 | // #define BACKGROUND_OPACITY TRUE /* True transparent background */ 9 | // #define BACKSPACE_KEY /* Options: AUTO, BACKSPACE, DELETE, ERASE_TTY, */ 10 | /* DELETE_SEQUENCE */ 11 | // #define DELETE_KEY /* Options: AUTO, BACKSPACE, DELETE, ERASE_TTY, */ 12 | /* DELETE_SEQUENCE */ 13 | // #define BELL_AUDIBLE TRUE 14 | // #define BELL_VISIBLE TRUE 15 | // #define BELL_URGENT TRUE 16 | // #define BUTTON_ORDER_BY_RCFILE TRUE 17 | // #define CLOSE_DIALOG TRUE /* Dialog to confirm close event */ 18 | // #define CLOSE_SAFELY TRUE /* Do not kill running applications */ 19 | // #define COLOR_BACKGROUND "white" 20 | // #define COLOR_FOREGROUND "#000000" 21 | // #define COLOR_STYLE /* Options: LINUX, RXVT, TANGO, XTERM, ZENBURN, */ 22 | /* ZENBURN_DARK, SOLARIZED_DARK, */ 23 | /* SOLARIZED_LIGHT, HOLO, USER_CUSTOM */ 24 | // #define USER_COLOR_00 0x1b1d1e /* black dark */ 25 | // #define USER_COLOR_08 0x505354 /* black light */ 26 | // #define USER_COLOR_01 0xf92672 /* red dark */ 27 | // #define USER_COLOR_09 0xff5995 /* red light */ 28 | // #define USER_COLOR_02 0x82b414 /* green dark */ 29 | // #define USER_COLOR_10 0xb6e354 /* green light */ 30 | // #define USER_COLOR_03 0xfd971f /* yellow dark */ 31 | // #define USER_COLOR_11 0xfeed6c /* yellow light */ 32 | // #define USER_COLOR_04 0x56c2d6 /* blue dark */ 33 | // #define USER_COLOR_12 0x8cedff /* blue light */ 34 | // #define USER_COLOR_05 0x8c54fe /* magenta dark */ 35 | // #define USER_COLOR_13 0x9e6ffe /* magenta light */ 36 | // #define USER_COLOR_06 0x465457 /* cyan dark */ 37 | // #define USER_COLOR_14 0x899ca1 /* cyan light */ 38 | // #define USER_COLOR_07 0xccccc6 /* white dark */ 39 | // #define USER_COLOR_15 0xf8f8f2 /* white light */ 40 | 41 | // #define COLOR_TEXT_BOLD "red" 42 | // #define COLOR_TEXT_DIM "#FFFF00" 43 | // #define COLOR_TEXT_HIGHLIGHTED "green" 44 | // #define COMMAND_AT_ROOT_WINDOW TRUE /* -r option, run in root window */ 45 | // #define COMMAND_COLOR_FG TRUE /* -fg option, foreground color */ 46 | // #define COMMAND_COLOR_BG TRUE /* -bg option, background color */ 47 | // #define COMMAND_SATURATION TRUE /* -sa option, saturation level */ 48 | // #define COMMAND_DOCK_MODE TRUE /* -d option, run as a dock */ 49 | #define COMMAND_EXEC_PROGRAM TRUE /* -e option, execute program */ 50 | // #define COMMAND_FULLSCREEN TRUE /* -f option, init in fullscreen mode */ 51 | // #define COMMAND_FONT TRUE /* -fn option, to assign font & size */ 52 | // #define COMMAND_GEOMETRY TRUE /* -g +X+Y option, to assign geometry */ 53 | // #define COMMAND_LOGIN_SHELL TRUE /* -ls option, to enable login shell */ 54 | // #define COMMAND_SET_TITLE TRUE /* -T or -title to set program title */ 55 | // #define COMMAND_SHOW_HELP TRUE /* -h option, show help */ 56 | #define COMMAND_SHOW_OPTIONS TRUE /* -o option, show build-time options */ 57 | #define COMMAND_SHOW_VERSION TRUE /* -v option, show program version */ 58 | // #define COMMAND_TAB_NUMBERS TRUE /* -[2-9] options, to set tab numbers */ 59 | // #define CURSOR_BLINKS TRUE 60 | // #define CURSOR_COLOR "blue" 61 | // #define CURSOR_SHAPE /* Options: BLOCK, IBEAM, UNDERLINE */ 62 | // #define DEFAULT_COMMAND g_getenv("SHELL") 63 | // #define DEFAULT_DIRECTORY g_get_current_dir() 64 | // #define DEFAULT_TERMINAL_SIZE 80x24 65 | // #define EXPORT_WINDOWID TRUE 66 | // #define FONT "Monospace 10" 67 | // #define FONT_ANTI_ALIAS TRUE 68 | // #define FONT_ENABLE_BOLD_TEXT TRUE 69 | // #define MOUSE_CTRL_SATURATION TRUE /* Scroll left or right to adjust it */ 70 | // #define MOUSE_CURSOR_AUTOHIDE TRUE 71 | // #define PROGRAM_ALWAYS_ON_TOP TRUE 72 | // #define PROGRAM_ICON ".config/evilvte/icon.png" 73 | // #define PROGRAM_WM_CLASS TRUE 74 | // #define RECORD_LASTLOG TRUE 75 | // #define RECORD_UTMP TRUE 76 | // #define RECORD_WTMP TRUE 77 | // #define SCROLL_LINES 1000 /* Negative value means unlimited */ 78 | // #define SCROLL_ON_KEYSTROKE TRUE 79 | // #define SCROLL_ON_OUTPUT TRUE 80 | #define SCROLLBAR RIGHT /* Options: LEFT, RIGHT, OFF_L, OFF_R */ 81 | // #define SHOW_WINDOW_BORDER TRUE 82 | // #define SHOW_WINDOW_DECORATED TRUE 83 | #define SHOW_WINDOW_ICON TRUE 84 | #define STATUS_BAR TRUE 85 | // #define WINDOW_TITLE_DYNAMIC TRUE /* for xterm escape sequences */ 86 | #define WORD_CHARS "-A-Za-z0-9_$.+!*(),;:@&=?/~#%" 87 | 88 | #define MENU TRUE 89 | // #define MENU_ENCODING_LIST "BIG-5", "Default Encoding", "GBK", "EUC-JP" 90 | // #define MENU_MATCH_STRING_EXEC "firefox" 91 | // #define MATCH_STRING_L "firefox" /* left click to open without menu*/ 92 | // #define MATCH_STRING_M "firefox" /* middle click to open */ 93 | // #define MATCH_STRING_HTTP TRUE /* Detect http(s) and ftp(s) */ 94 | // #define MATCH_STRING_MAIL TRUE /* Detect mailto: */ 95 | // #define MATCH_STRING_FILE TRUE /* Detect file:/// */ 96 | // #define MENU_CUSTOM "Copy", "Separator", "Paste", "Separator" 97 | /* Options: "Copy", "Zoom in", "Add tab", 98 | * "Paste", "Zoom out", "Remove tab", 99 | * "Select all", "Zoom default", "New window", 100 | * "Edit label", "Select font", 101 | * "Input method", "Encoding list", 102 | * "Submenu input method", "Submenu encoding list", 103 | * "Toggle tabbar", 104 | * "Toggle scrollbar", "Background tint", 105 | * "Toggle status bar", "Adjust saturation", 106 | * "Toggle anti-alias", 107 | * "Toggle background", "Separator", 108 | * "Toggle fullscreen", "Quit", 109 | * "Toggle always on top", 110 | * "Toggle hotkeys locking", "Reset terminal", 111 | * "Toggle window decorated", "Reset and clear", 112 | * 113 | * "Auto-click" (when there is only one effective menu item) 114 | */ 115 | 116 | #define TAB TRUE 117 | // #define TAB_BORDER 0 118 | // #define TAB_CLOSE_BUTTON TRUE 119 | // #define TAB_EXPANDED_WIDTH TRUE 120 | // #define TAB_LABEL "Page %u" /* %u will be replaced by numbers */ 121 | // #define TAB_LABEL_DYNAMIC TRUE /* for xterm escape sequences */ 122 | // #define TAB_LABEL_CUSTOM "One", "Two", "Three", "Four", "Five", "Six" 123 | // #define TAB_NEW_PATH_EQUAL_OLD TRUE 124 | // #define TAB_NEW_TAB_AT_TAB_ONE TRUE /* New tab will always the first tab */ 125 | // #define TAB_REORDERABLE TRUE 126 | // #define TAB_SHOW_INFO_AT_TITLE TRUE 127 | // #define TABBAR TRUE 128 | // #define TABBAR_PLACE TOP /* Options: TOP, BOTTOM, LEFT, RIGHT */ 129 | // #define TABBAR_AUTOHIDE TRUE 130 | // #define TABBAR_SCROLLABLE TRUE 131 | // #define TABBAR_MENU_SELECT_TAB TRUE 132 | 133 | /* Use || for multiple hotkeys. 134 | * 135 | * CTRL(GDK_A) || CTRL(GDK_a) || ALT(GDK_b) || CTRL_ALT(GDK_c) || SHIFT(GDK_d) 136 | * 137 | * CTRL(GDK_a) = "Ctrl + a" 138 | * CTRL(GDK_A) = "Ctrl + Shift + a" 139 | * ALT(GDK_A) = "Alt + Shift + a" 140 | * CTRL_ALT(GDK_A) = "Ctrl + Alt + Shift + a" 141 | * 142 | * Also support: ALT_SHIFT(GDK_*) 143 | * CTRL_ALT_SHIFT(GDK_*) 144 | * CTRL_SHIFT(GDK_*) 145 | * 146 | * See /usr/include/gtk-?.0/gdk/gdkkeysyms.h for GDK_* definitions. */ 147 | 148 | #define HOTKEY TRUE 149 | // #define HOTKEY_COPY CTRL_SHIFT(GDK_C) || CTRL_SHIFT(GDK_c) 150 | // #define HOTKEY_PASTE CTRL_SHIFT(GDK_V) || CTRL_SHIFT(GDK_v) 151 | // #define HOTKEY_SELECT_ALL CTRL_SHIFT(GDK_S) || CTRL_SHIFT(GDK_s) 152 | // #define HOTKEY_COLOR_BACKGROUND CTRL_SHIFT(GDK_B) || CTRL_SHIFT(GDK_b) 153 | // #define HOTKEY_EDIT_ENCODING CTRL_SHIFT(GDK_U) || CTRL_SHIFT(GDK_u) 154 | // #define HOTKEY_FONT_BIGGER CTRL(GDK_KP_Add) 155 | // #define HOTKEY_FONT_SMALLER CTRL(GDK_KP_Subtract) 156 | // #define HOTKEY_FONT_DEFAULT_SIZE CTRL(GDK_KP_Insert) 157 | // #define HOTKEY_FONT_SELECT CTRL_SHIFT(GDK_F) || CTRL_SHIFT(GDK_f) 158 | // #define HOTKEY_MIMIC_SCROLL_UP CTRL_SHIFT(GDK_K) || CTRL_SHIFT(GDK_k) 159 | // #define HOTKEY_MIMIC_SCROLL_DOWN CTRL_SHIFT(GDK_J) || CTRL_SHIFT(GDK_j) 160 | // #define HOTKEY_OPEN_NEW_WINDOW CTRL_SHIFT(GDK_N) || CTRL_SHIFT(GDK_n) 161 | // #define HOTKEY_RESET_TERMINAL CTRL_SHIFT(GDK_R) || CTRL_SHIFT(GDK_r) 162 | // #define HOTKEY_RESET_AND_CLEAR CTRL_SHIFT(GDK_A) || CTRL_SHIFT(GDK_a) 163 | // #define HOTKEY_SATURATION_DIALOG CTRL_SHIFT(GDK_X) || CTRL_SHIFT(GDK_x) 164 | // #define HOTKEY_SATURATION_MORE CTRL(GDK_KP_Multiply) 165 | // #define HOTKEY_SATURATION_LESS CTRL(GDK_KP_Divide) 166 | // #define HOTKEY_SCROLL_ONE_PAGE_UP CTRL(GDK_k) || CTRL(GDK_K) 167 | // #define HOTKEY_SCROLL_ONE_PAGE_DOWN CTRL(GDK_j) || CTRL(GDK_J) 168 | // #define HOTKEY_SEARCH_STRING CTRL_SHIFT(GDK_Q) || CTRL_SHIFT(GDK_q) 169 | // #define HOTKEY_SEARCH_PREVIOUS CTRL_SHIFT(GDK_G) || CTRL_SHIFT(GDK_g) 170 | // #define HOTKEY_SEARCH_NEXT CTRL(GDK_g) || CTRL(GDK_G) 171 | // #define SEARCH_CASE_SENSITIVE TRUE 172 | #define HOTKEY_TAB_ADD CTRL_SHIFT(GDK_T) || CTRL_SHIFT(GDK_t) 173 | #define HOTKEY_TAB_REMOVE CTRL_SHIFT(GDK_W) || CTRL_SHIFT(GDK_w) 174 | #define HOTKEY_TAB_PREVIOUS CTRL(GDK_Page_Up) 175 | #define HOTKEY_TAB_NEXT CTRL(GDK_Page_Down) 176 | // #define HOTKEY_TAB_FIRST CTRL(GDK_Home) 177 | // #define HOTKEY_TAB_LAST CTRL(GDK_End) 178 | // #define ALT_NUMBER_GO_TO_TAB_NUMBER TRUE 179 | // #define CTRL_NUMBER_GO_TO_TAB_NUMBER TRUE 180 | // #define HOTKEY_TAB_EDIT_LABEL CTRL_SHIFT(GDK_E) || CTRL_SHIFT(GDK_e) 181 | // #define HOTKEY_TOGGLE_ANTI_ALIAS CTRL_SHIFT(GDK_L) || CTRL_SHIFT(GDK_l) 182 | // #define HOTKEY_TOGGLE_DECORATED CTRL(GDK_Left) 183 | // #define HOTKEY_TOGGLE_FULLSCREEN CTRL_SHIFT(GDK_M) || CTRL_SHIFT(GDK_m) 184 | // #define HOTKEY_TOGGLE_HOTKEYS CTRL(GDK_quoteleft) 185 | // #define HOTKEY_TOGGLE_ON_TOP CTRL_SHIFT(GDK_O) || CTRL_SHIFT(GDK_o) 186 | // #define HOTKEY_TOGGLE_SCROLLBAR CTRL(GDK_Right) 187 | // #define HOTKEY_TOGGLE_STATUS_BAR CTRL(GDK_Down) 188 | // #define HOTKEY_TOGGLE_TABBAR CTRL(GDK_Up) 189 | // #define HOTKEY_TOGGLE_BACKGROUND CTRL(GDK_KP_Delete) 190 | // #define TOGGLE_BG_ORDER "Image", "Transparent", "No background", "Opacity" 191 | 192 | // #define LABEL_DEFAULT_ENCODING "_Default Encoding" 193 | // #define LABEL_DIALOG_BACKGROUND_TINT "_Background tint color" 194 | // #define LABEL_DIALOG_CLOSE "Do you really want to close it?" 195 | // #define LABEL_DIALOG_SEARCH "Find" 196 | // #define LABEL_MENU_SATURATION "_Adjust saturation" 197 | // #define LABEL_MENU_TOGGLE_ANTI_ALIAS "_Toggle anti-alias" 198 | // #define LABEL_MENU_TOGGLE_BG "_Toggle background" 199 | // #define LABEL_MENU_TOGGLE_DECORATED "_Toggle window decorated" 200 | // #define LABEL_MENU_TOGGLE_FULLSCREEN "_Toggle fullscreen" 201 | // #define LABEL_MENU_TOGGLE_HOTKEYS "_Toggle hotkeys locking" 202 | // #define LABEL_MENU_TOGGLE_ON_TOP "_Toggle always on top" 203 | // #define LABEL_MENU_TOGGLE_SCROLLBAR "_Toggle scrollbar" 204 | // #define LABEL_MENU_TOGGLE_STATUS_BAR "_Toggle status bar" 205 | // #define LABEL_MENU_TOGGLE_TABBAR "_Toggle tabbar" 206 | // #define LABEL_SUBMENU_ENCODING "_Character Encoding" 207 | // #define LABEL_SUBMENU_IME "_Input Methods" 208 | // #define GTK3_CSS "GtkNotebook GtkHBox GtkButton { -GtkWidget-focus-line-width: 0; } GtkNotebook GtkButton { border-width: 0; padding: 0; -GtkButton-inner-border: 0; } GtkWindow GtkNotebook { padding: 0; }" 209 | -------------------------------------------------------------------------------- /src/macro1.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #ifndef G_CONST_RETURN 5 | #define G_CONST_RETURN const 6 | #endif 7 | #include 8 | #if GTK_CHECK_VERSION(2,90,7) 9 | #include 10 | #endif 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #ifndef VTE_CHECK_VERSION 21 | #define VTE_CHECK_VERSION(x,y,z) FALSE 22 | #endif 23 | 24 | #ifndef VTE_ERASE_TTY 25 | #define VTE_ERASE_TTY VTE_ERASE_AUTO 26 | #endif 27 | 28 | #define AUTO VTE_ERASE_AUTO 29 | #define BACKSPACE VTE_ERASE_ASCII_BACKSPACE 30 | #define DELETE VTE_ERASE_ASCII_DELETE 31 | #define DELETE_SEQUENCE VTE_ERASE_DELETE_SEQUENCE 32 | #define ERASE_TTY VTE_ERASE_TTY 33 | 34 | #define BLOCK VTE_CURSOR_SHAPE_BLOCK 35 | #define IBEAM VTE_CURSOR_SHAPE_IBEAM 36 | #define UNDERLINE VTE_CURSOR_SHAPE_UNDERLINE 37 | 38 | #define LINUX 1 39 | #define RXVT 2 40 | #define TANGO 3 41 | #define VTE_FIXED 4 42 | #define XTERM 5 43 | #define ZENBURN_DARK 6 44 | #define ZENBURN 7 45 | #define SOLARIZED_DARK 8 46 | #define SOLARIZED_LIGHT 9 47 | #define USER_CUSTOM 10 48 | #define HOLO 11 49 | 50 | #define LEFT 0 51 | #define RIGHT 1 52 | #define TOP 2 53 | #define BOTTOM 3 54 | #define OFF_L 4 55 | #define OFF_R 5 56 | 57 | #define ALT(x) (((event->state & GDK_MOD1_MASK) == GDK_MOD1_MASK) && (event->keyval == (x))) 58 | #define ALT_SHIFT(x) (((event->state & (GDK_MOD1_MASK | GDK_SHIFT_MASK)) == (GDK_MOD1_MASK | GDK_SHIFT_MASK)) && (event->keyval == (x))) 59 | #define CTRL(x) (((event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK) && (event->keyval == (x))) 60 | #define CTRL_ALT(x) (((event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)) == (GDK_CONTROL_MASK | GDK_MOD1_MASK)) && (event->keyval == (x))) 61 | #define CTRL_ALT_SHIFT(x) (((event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK)) && (event->keyval == (x))) 62 | #define CTRL_SHIFT(x) (((event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) && (event->keyval == (x))) 63 | #define SHIFT(x) (((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK) && (event->keyval == (x))) 64 | 65 | #include "custom.h" 66 | #include "evilvte.h" 67 | -------------------------------------------------------------------------------- /src/macro2.h: -------------------------------------------------------------------------------- 1 | #ifndef INNER_BORDER_H 2 | #define INNER_BORDER_H 2 3 | #endif 4 | 5 | #ifndef INNER_BORDER_W 6 | #define INNER_BORDER_W 2 7 | #endif 8 | 9 | #if defined(COLOR_STYLE) && (COLOR_STYLE == VTE_FIXED) 10 | #undef COLOR_STYLE 11 | #endif 12 | 13 | #ifndef VTE_FORK_CMD_OLD 14 | #define VTE_FORK_CMD_OLD TRUE 15 | #endif 16 | 17 | #if VTE_CHECK_VERSION(0,25,1) && defined(VTE_DISABLE_DEPRECATED) 18 | #undef VTE_FORK_CMD_OLD 19 | #define VTE_FORK_CMD_OLD FALSE 20 | #endif 21 | 22 | #ifndef VTE_COLUMNS 23 | #define VTE_COLUMNS 0 24 | #endif 25 | 26 | #ifndef VTE_ROWS 27 | #define VTE_ROWS 0 28 | #endif 29 | 30 | #define GET_CURRENT_TAB(x) term = (struct terminal*)g_object_get_data(G_OBJECT(gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), (x))), "current_tab") 31 | 32 | #ifndef DEFAULT_COMMAND 33 | #define DEFAULT_COMMAND g_getenv("SHELL") 34 | #endif 35 | 36 | #ifndef RECORD_LASTLOG 37 | #define RECORD_LASTLOG TRUE 38 | #endif 39 | #define EVILVTE_PTY_NO_LASTLOG 0 40 | #if !RECORD_LASTLOG 41 | #undef EVILVTE_PTY_NO_LASTLOG 42 | #define EVILVTE_PTY_NO_LASTLOG VTE_PTY_NO_LASTLOG 43 | #endif 44 | 45 | #ifndef RECORD_UTMP 46 | #define RECORD_UTMP TRUE 47 | #endif 48 | #define EVILVTE_PTY_NO_UTMP 0 49 | #if !RECORD_UTMP 50 | #undef EVILVTE_PTY_NO_UTMP 51 | #define EVILVTE_PTY_NO_UTMP VTE_PTY_NO_UTMP 52 | #endif 53 | 54 | #ifndef RECORD_WTMP 55 | #define RECORD_WTMP TRUE 56 | #endif 57 | #define EVILVTE_PTY_NO_WTMP 0 58 | #if !RECORD_WTMP 59 | #undef EVILVTE_PTY_NO_WTMP 60 | #define EVILVTE_PTY_NO_WTMP VTE_PTY_NO_WTMP 61 | #endif 62 | 63 | #define EVILVTE_PTY_NO_HELPER 0 64 | #if !RECORD_LASTLOG && !RECORD_UTMP && !RECORD_WTMP 65 | #undef EVILVTE_PTY_NO_HELPER 66 | #define EVILVTE_PTY_NO_HELPER VTE_PTY_NO_HELPER 67 | #endif 68 | 69 | #ifndef LABEL_DEFAULT_ENCODING 70 | #define LABEL_DEFAULT_ENCODING "_Default Encoding" 71 | #endif 72 | 73 | #ifndef LABEL_DIALOG_BACKGROUND_TINT 74 | #define LABEL_DIALOG_BACKGROUND_TINT "_Background tint color" 75 | #endif 76 | 77 | #ifndef LABEL_DIALOG_CLOSE 78 | #define LABEL_DIALOG_CLOSE "Do you really want to close it?" 79 | #endif 80 | 81 | #ifndef LABEL_DIALOG_SEARCH 82 | #define LABEL_DIALOG_SEARCH "Find" 83 | #endif 84 | 85 | #ifndef LABEL_MENU_SATURATION 86 | #define LABEL_MENU_SATURATION "_Adjust saturation" 87 | #endif 88 | 89 | #ifndef LABEL_MENU_TOGGLE_ANTI_ALIAS 90 | #define LABEL_MENU_TOGGLE_ANTI_ALIAS "_Toggle anti-alias" 91 | #endif 92 | 93 | #ifndef LABEL_MENU_TOGGLE_BG 94 | #define LABEL_MENU_TOGGLE_BG "_Toggle background" 95 | #endif 96 | 97 | #ifndef LABEL_MENU_TOGGLE_DECORATED 98 | #define LABEL_MENU_TOGGLE_DECORATED "_Toggle window decorated" 99 | #endif 100 | 101 | #ifndef LABEL_MENU_TOGGLE_FULLSCREEN 102 | #define LABEL_MENU_TOGGLE_FULLSCREEN "_Toggle fullscreen" 103 | #endif 104 | 105 | #ifndef LABEL_MENU_TOGGLE_HOTKEYS 106 | #define LABEL_MENU_TOGGLE_HOTKEYS "_Toggle hotkeys locking" 107 | #endif 108 | 109 | #ifndef LABEL_MENU_TOGGLE_ON_TOP 110 | #define LABEL_MENU_TOGGLE_ON_TOP "_Toggle always on top" 111 | #endif 112 | 113 | #ifndef LABEL_MENU_TOGGLE_SCROLLBAR 114 | #define LABEL_MENU_TOGGLE_SCROLLBAR "_Toggle scrollbar" 115 | #endif 116 | 117 | #ifndef LABEL_MENU_TOGGLE_STATUS_BAR 118 | #define LABEL_MENU_TOGGLE_STATUS_BAR "_Toggle status bar" 119 | #endif 120 | 121 | #ifndef LABEL_MENU_TOGGLE_TABBAR 122 | #define LABEL_MENU_TOGGLE_TABBAR "_Toggle tabbar" 123 | #endif 124 | 125 | #ifndef LABEL_SUBMENU_ENCODING 126 | #define LABEL_SUBMENU_ENCODING "_Character Encoding" 127 | #endif 128 | 129 | #ifndef LABEL_SUBMENU_IME 130 | #define LABEL_SUBMENU_IME "_Input Methods" 131 | #endif 132 | 133 | #define MATCH_HTTP_DATA "((f|F)|(h|H)(t|T))(t|T)(p|P)(s|S)?://(([^|.< \t\r\n\\\"]*([.][^|< \t\r\n\\\"])?[^|.< \t\r\n\\\"]*)*[^< \t\r\n,;|\\\"]*[^|.< \t\r\n\\\"])?/*" 134 | #define MATCH_FILE_DATA "(f|F)(i|I)(l|L)(e|E):///(([^|.< \t\r\n\\\"]*([.][^|< \t\r\n\\\"])?[^|.< \t\r\n\\\"]*)*[^< \t\r\n,;|\\\"]*[^|.< \t\r\n\\\"])?/*" 135 | #define MATCH_MAIL_DATA "(m|M)(a|A)(i|I)(l|L)(t|T)(o|O):(([^|.< \t\r\n\\\"]*([.][^|< \t\r\n\\\"])?[^|.< \t\r\n\\\"]*)*@[^< \t\r\n,;|\\\"]*[^|.< \t\r\n\\\"])?/*" 136 | 137 | #ifndef CLOSE_DIALOG 138 | #define CLOSE_DIALOG FALSE 139 | #endif 140 | 141 | #if CLOSE_DIALOG 142 | #define DEL_TAB del_tab 143 | #define DEL_TAB_DECL del_tab 144 | #endif 145 | #if !CLOSE_DIALOG 146 | #define DEL_TAB(x,y) del_tab() 147 | #define DEL_TAB_DECL(x,y) del_tab(void) 148 | #endif 149 | 150 | #ifndef TAB 151 | #define TAB 0 152 | #endif 153 | 154 | #if !TAB 155 | #undef COMMAND_TAB_NUMBERS 156 | #undef SHOW_WINDOW_BORDER 157 | #undef TAB_BORDER 158 | #undef TAB_BORDER_VERTICAL 159 | #undef TAB_BORDER_HORIZONTAL 160 | #undef TAB_CLOSE_BUTTON 161 | #undef TAB_EXPANDED_WIDTH 162 | #undef TAB_LABEL 163 | #undef TAB_LABEL_DYNAMIC 164 | #undef TAB_LABEL_CUSTOM 165 | #undef TAB_NEW_PATH_EQUAL_OLD 166 | #undef TAB_REORDERABLE 167 | #undef TAB_SHOW_INFO_AT_TITLE 168 | #undef TABBAR 169 | #undef TABBAR_PLACE 170 | #undef TABBAR_AUTOHIDE 171 | #undef TABBAR_SCROLLABLE 172 | #undef TABBAR_MENU_SELECT_TAB 173 | #define SHOW_WINDOW_BORDER FALSE 174 | #define TABBAR FALSE 175 | #endif 176 | 177 | #ifndef SHOW_WINDOW_ICON 178 | #define SHOW_WINDOW_ICON 0 179 | #endif 180 | #ifndef COMMAND_EXEC_PROGRAM 181 | #define COMMAND_EXEC_PROGRAM 0 182 | #endif 183 | #ifndef COMMAND_SHOW_OPTIONS 184 | #define COMMAND_SHOW_OPTIONS 0 185 | #endif 186 | #ifndef COMMAND_SHOW_VERSION 187 | #define COMMAND_SHOW_VERSION 0 188 | #endif 189 | #ifndef CLOSE_SAFELY 190 | #define CLOSE_SAFELY 0 191 | #endif 192 | #ifndef EXPORT_WINDOWID 193 | #define EXPORT_WINDOWID 0 194 | #endif 195 | #ifndef TAB_NEW_PATH_EQUAL_OLD 196 | #define TAB_NEW_PATH_EQUAL_OLD 0 197 | #endif 198 | #ifndef MATCH_STRING_HTTP 199 | #define MATCH_STRING_HTTP 0 200 | #endif 201 | #ifndef MATCH_STRING_MAIL 202 | #define MATCH_STRING_MAIL 0 203 | #endif 204 | #ifndef MATCH_STRING_FILE 205 | #define MATCH_STRING_FILE 0 206 | #endif 207 | #ifndef TAB_NEW_TAB_AT_TAB_ONE 208 | #define TAB_NEW_TAB_AT_TAB_ONE 0 209 | #endif 210 | #ifndef TAB_LABEL_DYNAMIC 211 | #define TAB_LABEL_DYNAMIC 0 212 | #endif 213 | #ifndef MOUSE_CTRL_SATURATION 214 | #define MOUSE_CTRL_SATURATION 0 215 | #endif 216 | #ifndef TABBAR_AUTOHIDE 217 | #define TABBAR_AUTOHIDE 0 218 | #endif 219 | #ifndef TAB_EXPANDED_WIDTH 220 | #define TAB_EXPANDED_WIDTH 0 221 | #endif 222 | #ifndef TAB_SHOW_INFO_AT_TITLE 223 | #define TAB_SHOW_INFO_AT_TITLE 0 224 | #endif 225 | #ifndef WINDOW_TITLE_DYNAMIC 226 | #define WINDOW_TITLE_DYNAMIC 0 227 | #endif 228 | #ifndef TAB_CLOSE_BUTTON 229 | #define TAB_CLOSE_BUTTON 0 230 | #endif 231 | #ifndef TABBAR_SCROLLABLE 232 | #define TABBAR_SCROLLABLE 0 233 | #endif 234 | #ifndef TABBAR_MENU_SELECT_TAB 235 | #define TABBAR_MENU_SELECT_TAB 0 236 | #endif 237 | #ifndef BELL_URGENT 238 | #define BELL_URGENT 0 239 | #endif 240 | #ifndef TAB_REORDERABLE 241 | #define TAB_REORDERABLE 0 242 | #endif 243 | #ifndef COMMAND_TAB_NUMBERS 244 | #define COMMAND_TAB_NUMBERS 0 245 | #endif 246 | #ifndef COMMAND_FULLSCREEN 247 | #define COMMAND_FULLSCREEN 0 248 | #endif 249 | #ifndef COMMAND_GEOMETRY 250 | #define COMMAND_GEOMETRY 0 251 | #endif 252 | #ifndef COMMAND_DOCK_MODE 253 | #define COMMAND_DOCK_MODE 0 254 | #endif 255 | #ifndef COMMAND_AT_ROOT_WINDOW 256 | #define COMMAND_AT_ROOT_WINDOW 0 257 | #endif 258 | #ifndef COMMAND_LOGIN_SHELL 259 | #define COMMAND_LOGIN_SHELL 0 260 | #endif 261 | #ifndef BACKGROUND_OPACITY 262 | #define BACKGROUND_OPACITY 0 263 | #endif 264 | #ifndef COMMAND_SET_TITLE 265 | #define COMMAND_SET_TITLE 0 266 | #endif 267 | #ifndef PROGRAM_WM_CLASS 268 | #define PROGRAM_WM_CLASS 0 269 | #endif 270 | #ifndef BUTTON_ORDER_BY_RCFILE 271 | #define BUTTON_ORDER_BY_RCFILE 0 272 | #endif 273 | #ifndef COMMAND_SHOW_HELP 274 | #define COMMAND_SHOW_HELP 0 275 | #endif 276 | #ifndef COMMAND_FONT 277 | #define COMMAND_FONT 0 278 | #endif 279 | #ifndef COMMAND_COLOR_FG 280 | #define COMMAND_COLOR_FG 0 281 | #endif 282 | #ifndef COMMAND_COLOR_BG 283 | #define COMMAND_COLOR_BG 0 284 | #endif 285 | #ifndef COMMAND_SATURATION 286 | #define COMMAND_SATURATION 0 287 | #endif 288 | 289 | #define GET_VTE_CHILD_PID NULL 290 | #if VTE_FORK_CMD_OLD 291 | #undef GET_VTE_CHILD_PID 292 | #define GET_VTE_CHILD_PID 293 | #endif 294 | 295 | #if TAB_NEW_PATH_EQUAL_OLD || CLOSE_DIALOG || CLOSE_SAFELY 296 | #undef GET_VTE_CHILD_PID 297 | #define GET_VTE_CHILD_PID &(term->pid) 298 | #if VTE_FORK_CMD_OLD 299 | #undef GET_VTE_CHILD_PID 300 | #define GET_VTE_CHILD_PID term->pid = 301 | #endif 302 | #endif 303 | 304 | #if TAB_NEW_PATH_EQUAL_OLD 305 | #ifndef DEFAULT_DIRECTORY 306 | #define DEFAULT_DIRECTORY g_get_current_dir() 307 | #endif 308 | #define VTE_DEFAULT_DIRECTORY default_directory 309 | char *default_directory; 310 | #endif 311 | 312 | #if !TAB_NEW_PATH_EQUAL_OLD 313 | #ifndef DEFAULT_DIRECTORY 314 | #define DEFAULT_DIRECTORY NULL 315 | #endif 316 | #define VTE_DEFAULT_DIRECTORY DEFAULT_DIRECTORY 317 | #endif 318 | 319 | #ifndef HOTKEY_HAS_DEFINE 320 | #undef HOTKEY 321 | #endif 322 | 323 | #ifndef HOTKEY 324 | #define HOTKEY 0 325 | #endif 326 | 327 | #if !HOTKEY 328 | #undef MENU_TOGGLE_HOTKEYS 329 | #undef HOTKEY_COLOR_BACKGROUND 330 | #undef HOTKEY_FONT_BIGGER 331 | #undef HOTKEY_FONT_SMALLER 332 | #undef HOTKEY_FONT_DEFAULT_SIZE 333 | #undef HOTKEY_FONT_SELECT 334 | #undef HOTKEY_HAS_DEFINE 335 | #undef HOTKEY_MIMIC_SCROLL_UP 336 | #undef HOTKEY_MIMIC_SCROLL_DOWN 337 | #undef HOTKEY_SATURATION_DIALOG 338 | #undef HOTKEY_SATURATION_MORE 339 | #undef HOTKEY_SATURATION_LESS 340 | #undef HOTKEY_SEARCH_STRING 341 | #undef HOTKEY_SEARCH_PREVIOUS 342 | #undef HOTKEY_SEARCH_NEXT 343 | #undef HOTKEY_TOGGLE_ANTI_ALIAS 344 | #undef HOTKEY_TOGGLE_DECORATED 345 | #undef HOTKEY_TOGGLE_FULLSCREEN 346 | #undef HOTKEY_TOGGLE_HOTKEYS 347 | #undef HOTKEY_TOGGLE_ON_TOP 348 | #undef HOTKEY_TOGGLE_SCROLLBAR 349 | #undef HOTKEY_TOGGLE_STATUS_BAR 350 | #undef HOTKEY_TOGGLE_BACKGROUND 351 | #endif 352 | 353 | #if defined(HOTKEY_TAB_GO_TO_NUMBER) && !defined(CTRL_NUMBER_GO_TO_TAB_NUMBER) 354 | #define CTRL_NUMBER_GO_TO_TAB_NUMBER HOTKEY_TAB_GO_TO_NUMBER 355 | #endif 356 | 357 | #if !TAB || !HOTKEY 358 | #undef HOTKEY_TAB_ADD 359 | #undef HOTKEY_TAB_REMOVE 360 | #undef HOTKEY_TAB_PREVIOUS 361 | #undef HOTKEY_TAB_NEXT 362 | #undef HOTKEY_TAB_FIRST 363 | #undef HOTKEY_TAB_LAST 364 | #undef ALT_NUMBER_GO_TO_TAB_NUMBER 365 | #undef CTRL_NUMBER_GO_TO_TAB_NUMBER 366 | #undef HOTKEY_TAB_EDIT_LABEL 367 | #undef HOTKEY_TOGGLE_TABBAR 368 | #endif 369 | 370 | #ifndef ALT_NUMBER_GO_TO_TAB_NUMBER 371 | #define ALT_NUMBER_GO_TO_TAB_NUMBER 0 372 | #endif 373 | #ifndef CTRL_NUMBER_GO_TO_TAB_NUMBER 374 | #define CTRL_NUMBER_GO_TO_TAB_NUMBER 0 375 | #endif 376 | 377 | #if BUTTON_ORDER_BY_RCFILE 378 | bool button_order = FALSE; 379 | #endif 380 | 381 | #ifndef MENU 382 | #define MENU 0 383 | #endif 384 | 385 | #if !MENU 386 | #undef MENU_ENCODING_LIST 387 | #undef MENU_MATCH_STRING_EXEC 388 | #undef MENU_CUSTOM 389 | #endif 390 | 391 | #ifndef MENU_CUSTOM_SIZE 392 | #undef MENU_CUSTOM 393 | #endif 394 | 395 | #ifndef MENU_ENCODING_LIST_SIZE 396 | #undef MENU_ENCODING_LIST 397 | #endif 398 | 399 | #ifndef TOGGLE_BG_ORDER_SIZE 400 | #undef TOGGLE_BG_ORDER 401 | #endif 402 | 403 | #ifndef MENU_CUSTOM 404 | #undef MENU_COPY 405 | #undef MENU_PASTE 406 | #undef MENU_SELECT_ALL 407 | #undef MENU_COLOR_BACKGROUND 408 | #undef MENU_OPEN_NEW_WINDOW 409 | #undef MENU_QUIT 410 | #undef MENU_FONT_BIGGER 411 | #undef MENU_FONT_SMALLER 412 | #undef MENU_FONT_DEFAULT_SIZE 413 | #undef MENU_RESET_TERMINAL 414 | #undef MENU_RESET_AND_CLEAR 415 | #undef MENU_FONT_SELECT 416 | #undef MENU_SEPARATOR 417 | #undef SUBMENU_ENCODING_LIST 418 | #undef SUBMENU_INPUT_METHOD 419 | #undef MENU_TOGGLE_BACKGROUND 420 | #undef MENU_TOGGLE_HOTKEYS 421 | #undef MENU_TOGGLE_ON_TOP 422 | #undef MENU_TOGGLE_SCROLLBAR 423 | #undef MENU_TOGGLE_STATUS_BAR 424 | #undef MENU_TOGGLE_DECORATED 425 | #undef MENU_TOGGLE_FULLSCREEN 426 | #undef MENU_TOGGLE_ANTI_ALIAS 427 | #undef MENU_CHANGE_SATURATION 428 | #undef ONLY_ONE_MENU_ITEM 429 | #endif 430 | 431 | #ifndef STATUS_BAR 432 | #define STATUS_BAR 0 433 | #endif 434 | #ifndef SCROLLBAR 435 | #define SCROLLBAR OFF_R 436 | #endif 437 | 438 | #if !TAB || !defined(MENU_CUSTOM) 439 | #undef MENU_TAB_ADD 440 | #undef MENU_TAB_REMOVE 441 | #undef MENU_TAB_EDIT_LABEL 442 | #undef MENU_TOGGLE_TABBAR 443 | #endif 444 | 445 | #if defined(HOTKEY_TOGGLE_ON_TOP) || defined(MENU_TOGGLE_ON_TOP) 446 | #ifndef PROGRAM_ALWAYS_ON_TOP 447 | #define PROGRAM_ALWAYS_ON_TOP FALSE 448 | #endif 449 | #endif 450 | 451 | #if defined(HOTKEY_SATURATION_DIALOG) || defined(MENU_CHANGE_SATURATION) 452 | GtkWidget *adjustment; 453 | #endif 454 | 455 | #if defined(HOTKEY_TOGGLE_HOTKEYS) || defined(MENU_TOGGLE_HOTKEYS) 456 | bool hotkey_status = TRUE; 457 | #endif 458 | 459 | #ifdef MENU_ENCODING_LIST 460 | char *encoding[] = { MENU_ENCODING_LIST }; 461 | #endif 462 | 463 | #if !defined(MENU_ENCODING_LIST) && MENU 464 | GtkWidget *encoding_item; 465 | #endif 466 | 467 | #if defined(TOGGLE_BG_ORDER_SIZE) && (TOGGLE_BG_ORDER_SIZE == 1) 468 | #undef HOTKEY_TOGGLE_BACKGROUND 469 | #undef MENU_TOGGLE_BACKGROUND 470 | #endif 471 | 472 | #if defined(HOTKEY_TOGGLE_BACKGROUND) || defined(MENU_TOGGLE_BACKGROUND) 473 | #ifndef BACKGROUND_IMAGE 474 | #define BACKGROUND_IMAGE ".config/evilvte/background.png" 475 | #endif 476 | #ifndef TOGGLE_BG_ORDER 477 | #define TOGGLE_BG_ORDER "Image", "Transparent", "No background", "Opacity" 478 | #undef TOGGLE_BG_ORDER_SIZE 479 | #define TOGGLE_BG_ORDER_SIZE 4 480 | #define TOGGLE_BG_OPACITY 481 | #define TOGGLE_BG_IMAGE 482 | #define TOGGLE_BG_TRANSPARENT 483 | #define TOGGLE_BG_NO_BACKGROUND 484 | #endif 485 | const char *background_order[] = { TOGGLE_BG_ORDER }; 486 | unsigned short background_status = 0; 487 | #endif 488 | 489 | #ifdef BACKGROUND_IMAGE 490 | char imgstr[sizeof(BACKGROUND_IMAGE) + 64]; 491 | #endif 492 | 493 | #ifdef PROGRAM_ICON 494 | char iconstr[sizeof(PROGRAM_ICON) + 64]; 495 | #endif 496 | 497 | #if defined(BACKGROUND_IMAGE) || (defined(BACKGROUND_TRANSPARENT) && BACKGROUND_TRANSPARENT) || defined(TOGGLE_BG_TRANSPARENT) 498 | #define BACKGROUND_EXIST 499 | #endif 500 | 501 | #if defined(HOTKEY_COLOR_BACKGROUND) || defined(MENU_COLOR_BACKGROUND) 502 | #ifndef BACKGROUND_TINT_COLOR 503 | #define BACKGROUND_TINT_COLOR "black" 504 | #endif 505 | #endif 506 | 507 | #if defined(BACKGROUND_TINT_COLOR) && defined(BACKGROUND_EXIST) 508 | GdkColor color_tint; 509 | #endif 510 | 511 | #if defined(HOTKEY_TOGGLE_SCROLLBAR) || defined(MENU_TOGGLE_SCROLLBAR) 512 | #ifndef SCROLLBAR 513 | #define SCROLLBAR RIGHT 514 | #endif 515 | bool scrollbar_status = (SCROLLBAR < 3); 516 | #endif 517 | 518 | #if !defined(HOTKEY_TOGGLE_SCROLLBAR) && !defined(MENU_TOGGLE_SCROLLBAR) && (SCROLLBAR > 3) 519 | #undef SCROLLBAR 520 | #endif 521 | 522 | #ifdef SCROLLBAR 523 | #define VTE_HBOX term->hbox 524 | #endif 525 | #ifndef SCROLLBAR 526 | #define VTE_HBOX term->vte 527 | #endif 528 | 529 | #if defined(HOTKEY_TOGGLE_STATUS_BAR) || defined(MENU_TOGGLE_STATUS_BAR) 530 | bool status_bar_status = STATUS_BAR; 531 | bool status_bar_resize_grip = FALSE; 532 | #endif 533 | 534 | #if defined(HOTKEY_TOGGLE_DECORATED) || defined(MENU_TOGGLE_DECORATED) 535 | #ifdef SHOW_WINDOW_DECORATED 536 | bool window_decorated_status = SHOW_WINDOW_DECORATED; 537 | #endif 538 | #ifndef SHOW_WINDOW_DECORATED 539 | bool window_decorated_status = TRUE; 540 | #endif 541 | #endif 542 | 543 | #if defined(HOTKEY_TOGGLE_FULLSCREEN) || defined(MENU_TOGGLE_FULLSCREEN) || defined(VTE_FUNNY) 544 | bool window_fullscreen_status = FALSE; 545 | #endif 546 | 547 | #if VTE_CHECK_VERSION(0,19,1) && defined(VTE_DISABLE_DEPRECATED) 548 | #undef FONT_ANTI_ALIAS 549 | #undef HOTKEY_TOGGLE_ANTI_ALIAS 550 | #undef MENU_TOGGLE_ANTI_ALIAS 551 | #endif 552 | 553 | #if defined(HOTKEY_TOGGLE_ANTI_ALIAS) || defined(MENU_TOGGLE_ANTI_ALIAS) 554 | #if defined(FONT_ANTI_ALIAS) && !FONT_ANTI_ALIAS 555 | unsigned short antialias_status = VTE_ANTI_ALIAS_FORCE_DISABLE; 556 | #endif 557 | #if !defined(FONT_ANTI_ALIAS) || FONT_ANTI_ALIAS 558 | unsigned short antialias_status = VTE_ANTI_ALIAS_FORCE_ENABLE; 559 | #endif 560 | #endif 561 | 562 | #define ONLY_ONE_MENU_HANDLE 563 | #ifdef ONLY_ONE_MENU_ITEM 564 | #undef ONLY_ONE_MENU_HANDLE 565 | #define ONLY_ONE_MENU_HANDLE || (menu_item_success == 1) 566 | #endif 567 | 568 | #ifdef MENU_CUSTOM 569 | const char *menu_custom[] = { MENU_CUSTOM }; 570 | unsigned short menu_item_success = 0; 571 | #endif 572 | 573 | #if TABBAR_AUTOHIDE && !defined(TABBAR) 574 | #define TABBAR TRUE 575 | #endif 576 | 577 | #if defined(HOTKEY_TOGGLE_TABBAR) || defined(MENU_TOGGLE_TABBAR) 578 | #ifdef TABBAR 579 | bool tabbar_status = TABBAR; 580 | #endif 581 | #ifndef TABBAR 582 | bool tabbar_status = TRUE; 583 | #endif 584 | #define VTE_TABBAR tabbar_status 585 | #endif 586 | 587 | #if !defined(HOTKEY_TOGGLE_TABBAR) && !defined(MENU_TOGGLE_TABBAR) 588 | #define VTE_TABBAR TABBAR 589 | #endif 590 | 591 | #if defined(MENU_MATCH_STRING_EXEC) || defined(MATCH_STRING_L) || defined(MATCH_STRING_M) 592 | #if !MATCH_STRING_HTTP && !MATCH_STRING_MAIL && !MATCH_STRING_FILE && !defined(MATCH_STRING) 593 | #undef MATCH_STRING_HTTP 594 | #define MATCH_STRING_HTTP TRUE 595 | #endif 596 | #endif 597 | 598 | #ifdef FONT_ANTI_ALIAS 599 | #define VTE_ANTI_ALIAS VTE_ANTI_ALIAS_FORCE_ENABLE 600 | #if !FONT_ANTI_ALIAS 601 | #undef VTE_ANTI_ALIAS 602 | #define VTE_ANTI_ALIAS VTE_ANTI_ALIAS_FORCE_DISABLE 603 | #endif 604 | #endif 605 | 606 | #ifndef FONT_ANTI_ALIAS 607 | #define VTE_ANTI_ALIAS VTE_ANTI_ALIAS_USE_DEFAULT 608 | #endif 609 | 610 | #define EVILVTE_SET_FONT(x,y,z) vte_terminal_set_font_from_string(x,y) 611 | #if defined(FONT_ANTI_ALIAS) || defined(MENU_TOGGLE_ANTI_ALIAS) || defined(HOTKEY_TOGGLE_ANTI_ALIAS) 612 | #undef EVILVTE_SET_FONT 613 | #define EVILVTE_SET_FONT vte_terminal_set_font_from_string_full 614 | #endif 615 | 616 | #ifndef PROGRAM_NAME 617 | #define PROGRAM_NAME "evilvte" 618 | #define UPPER_PROGRAM_NAME "Evilvte" 619 | #endif 620 | 621 | #if PROGRAM_WM_CLASS 622 | char *wm_class_name = PROGRAM_NAME; 623 | char *wm_class_class = UPPER_PROGRAM_NAME; 624 | #endif 625 | 626 | #define VTE_REGEX 0 627 | #if defined(SEARCH_CASE_SENSITIVE) && !SEARCH_CASE_SENSITIVE 628 | #undef VTE_REGEX 629 | #define VTE_REGEX G_REGEX_CASELESS 630 | #endif 631 | 632 | #define VTE_PROGRAM_NAME PROGRAM_NAME 633 | #if COMMAND_SET_TITLE 634 | #undef VTE_PROGRAM_NAME 635 | #define VTE_PROGRAM_NAME program_name 636 | char *program_name = PROGRAM_NAME; 637 | #endif 638 | 639 | #if COMMAND_FONT 640 | char *command_font = NULL; 641 | #endif 642 | 643 | #if COMMAND_COLOR_BG 644 | char *command_color_bg = NULL; 645 | #endif 646 | 647 | #if COMMAND_COLOR_FG 648 | char *command_color_fg = NULL; 649 | #endif 650 | 651 | #if COMMAND_GEOMETRY 652 | char *command_geometry = NULL; 653 | #endif 654 | 655 | GtkWidget *main_window; 656 | GtkWidget *notebook; 657 | 658 | #define VTE_LABEL NULL 659 | #if defined(TAB_LABEL) || defined(TAB_LABEL_CUSTOM) 660 | #undef VTE_LABEL 661 | #define VTE_LABEL label 662 | #endif 663 | 664 | #if defined(GTK3_CSS_USE_BOX) && defined(USE_GTK_GRID) 665 | #if CLOSE_DIALOG || TAB_CLOSE_BUTTON || defined(SCROLLBAR) || STATUS_BAR || defined(HOTKEY_TOGGLE_STATUS_BAR) || defined(MENU_TOGGLE_STATUS_BAR) 666 | #warning "You are using GtkGrid but your GTK3_CSS defined GtkHBox or GtkVBox." 667 | #endif 668 | #endif 669 | 670 | #if defined(DEF_TAB_LABEL) || TAB_CLOSE_BUTTON 671 | #ifndef TAB_LABEL 672 | #define TAB_LABEL "Page %u" 673 | #endif 674 | #endif 675 | 676 | #if TAB_CLOSE_BUTTON 677 | #undef VTE_LABEL 678 | #define VTE_LABEL term->label 679 | #endif 680 | 681 | #if TAB_CLOSE_BUTTON 682 | #ifndef GTK3_CSS 683 | #ifdef USE_GTK_GRID 684 | #define GTK3_CSS "GtkNotebook GtkGrid GtkButton { -GtkWidget-focus-line-width: 0; } GtkNotebook GtkButton { border-width: 0; padding: 0; -GtkButton-inner-border: 0; }" 685 | #endif 686 | #ifndef USE_GTK_GRID 687 | #define GTK3_CSS "GtkNotebook GtkHBox GtkButton { -GtkWidget-focus-line-width: 0; } GtkNotebook GtkButton { border-width: 0; padding: 0; -GtkButton-inner-border: 0; }" 688 | #endif 689 | #endif 690 | #endif 691 | 692 | #ifdef TAB_LABEL_CUSTOM 693 | #undef TAB_LABEL 694 | const char *label_style_custom[] = { TAB_LABEL_CUSTOM }; 695 | const int label_style_size = sizeof(label_style_custom) / sizeof(label_style_custom[0]); 696 | #endif 697 | 698 | #ifdef COLOR_STYLE 699 | const GdkColor color_style[16] = { 700 | #if COLOR_STYLE == LINUX 701 | { 0, 0x0000, 0x0000, 0x0000 }, 702 | { 0, 0xa8a8, 0x0000, 0x0000 }, 703 | { 0, 0x0000, 0xa8a8, 0x0000 }, 704 | { 0, 0xa8a8, 0x5757, 0x0000 }, 705 | { 0, 0x0000, 0x0000, 0xa8a8 }, 706 | { 0, 0xa8a8, 0x0000, 0xa8a8 }, 707 | { 0, 0x0000, 0xa8a8, 0xa8a8 }, 708 | { 0, 0xa8a8, 0xa8a8, 0xa8a8 }, 709 | { 0, 0x5757, 0x5757, 0x5757 }, 710 | { 0, 0xffff, 0x5757, 0x5757 }, 711 | { 0, 0x5757, 0xffff, 0x5757 }, 712 | { 0, 0xffff, 0xffff, 0x5757 }, 713 | { 0, 0x5757, 0x5757, 0xffff }, 714 | { 0, 0xffff, 0x5757, 0xffff }, 715 | { 0, 0x5757, 0xffff, 0xffff }, 716 | { 0, 0xffff, 0xffff, 0xffff } 717 | #endif 718 | #if COLOR_STYLE == RXVT 719 | { 0, 0x0000, 0x0000, 0x0000 }, 720 | { 0, 0xcdcd, 0x0000, 0x0000 }, 721 | { 0, 0x0000, 0xcdcd, 0x0000 }, 722 | { 0, 0xcdcd, 0xcdcd, 0x0000 }, 723 | { 0, 0x0000, 0x0000, 0xcdcd }, 724 | { 0, 0xcdcd, 0x0000, 0xcdcd }, 725 | { 0, 0x0000, 0xcdcd, 0xcdcd }, 726 | { 0, 0xfafa, 0xebeb, 0xd7d7 }, 727 | { 0, 0x4040, 0x4040, 0x4040 }, 728 | { 0, 0xffff, 0x0000, 0x0000 }, 729 | { 0, 0x0000, 0xffff, 0x0000 }, 730 | { 0, 0xffff, 0xffff, 0x0000 }, 731 | { 0, 0x0000, 0x0000, 0xffff }, 732 | { 0, 0xffff, 0x0000, 0xffff }, 733 | { 0, 0x0000, 0xffff, 0xffff }, 734 | { 0, 0xffff, 0xffff, 0xffff } 735 | #endif 736 | #if COLOR_STYLE == TANGO 737 | { 0, 0x2e2e, 0x3434, 0x3636 }, 738 | { 0, 0xcccc, 0x0000, 0x0000 }, 739 | { 0, 0x4e4e, 0x9a9a, 0x0606 }, 740 | { 0, 0xc4c4, 0xa0a0, 0x0000 }, 741 | { 0, 0x3434, 0x6565, 0xa4a4 }, 742 | { 0, 0x7575, 0x5050, 0x7b7b }, 743 | { 0, 0x0606, 0x9898, 0x9a9a }, 744 | { 0, 0xd3d3, 0xd7d7, 0xcfcf }, 745 | { 0, 0x5555, 0x5757, 0x5353 }, 746 | { 0, 0xefef, 0x2929, 0x2929 }, 747 | { 0, 0x8a8a, 0xe2e2, 0x3434 }, 748 | { 0, 0xfcfc, 0xe9e9, 0x4f4f }, 749 | { 0, 0x7272, 0x9f9f, 0xcfcf }, 750 | { 0, 0xadad, 0x7f7f, 0xa8a8 }, 751 | { 0, 0x3434, 0xe2e2, 0xe2e2 }, 752 | { 0, 0xeeee, 0xeeee, 0xecec } 753 | #endif 754 | #if COLOR_STYLE == XTERM 755 | { 0, 0x0000, 0x0000, 0x0000 }, 756 | { 0, 0xcdcd, 0x0000, 0x0000 }, 757 | { 0, 0x0000, 0xcdcd, 0x0000 }, 758 | { 0, 0xcdcd, 0xcdcd, 0x0000 }, 759 | { 0, 0x0000, 0x0000, 0xeeee }, 760 | { 0, 0xcdcd, 0x0000, 0xcdcd }, 761 | { 0, 0x0000, 0xcdcd, 0xcdcd }, 762 | { 0, 0xe5e5, 0xe5e5, 0xe5e5 }, 763 | { 0, 0x7f7f, 0x7f7f, 0x7f7f }, 764 | { 0, 0xffff, 0x0000, 0x0000 }, 765 | { 0, 0x0000, 0xffff, 0x0000 }, 766 | { 0, 0xffff, 0xffff, 0x0000 }, 767 | { 0, 0x5c5c, 0x5c5c, 0xffff }, 768 | { 0, 0xffff, 0x0000, 0xffff }, 769 | { 0, 0x0000, 0xffff, 0xffff }, 770 | { 0, 0xffff, 0xffff, 0xffff } 771 | #endif 772 | #if COLOR_STYLE == ZENBURN_DARK 773 | { 0, 0x0000, 0x0000, 0x0000 }, 774 | { 0, 0x9e9e, 0x1818, 0x2828 }, 775 | { 0, 0xaeae, 0xcece, 0x9292 }, 776 | { 0, 0x9696, 0x8a8a, 0x3838 }, 777 | { 0, 0x4141, 0x4141, 0x7171 }, 778 | { 0, 0x9696, 0x3c3c, 0x5959 }, 779 | { 0, 0x4141, 0x8181, 0x7979 }, 780 | { 0, 0xbebe, 0xbebe, 0xbebe }, 781 | { 0, 0x6666, 0x6666, 0x6666 }, 782 | { 0, 0xcfcf, 0x6161, 0x7171 }, 783 | { 0, 0xc5c5, 0xf7f7, 0x7979 }, 784 | { 0, 0xffff, 0xf7f7, 0x9696 }, 785 | { 0, 0x4141, 0x8686, 0xbebe }, 786 | { 0, 0xcfcf, 0x9e9e, 0xbebe }, 787 | { 0, 0x7171, 0xbebe, 0xbebe }, 788 | { 0, 0xffff, 0xffff, 0xffff } 789 | #endif 790 | #if COLOR_STYLE == ZENBURN 791 | { 0, 0x3f3f, 0x3f3f, 0x3f3f }, 792 | { 0, 0x7070, 0x5050, 0x5050 }, 793 | { 0, 0x6060, 0xb4b4, 0x8a8a }, 794 | { 0, 0xdfdf, 0xafaf, 0x8f8f }, 795 | { 0, 0x5050, 0x6060, 0x7070 }, 796 | { 0, 0xdcdc, 0x8c8c, 0xc3c3 }, 797 | { 0, 0x8c8c, 0xd0d0, 0xd3d3 }, 798 | { 0, 0xdcdc, 0xdcdc, 0xcccc }, 799 | { 0, 0x7070, 0x9090, 0x8080 }, 800 | { 0, 0xdcdc, 0xa3a3, 0xa3a3 }, 801 | { 0, 0xc3c3, 0xbfbf, 0x9f9f }, 802 | { 0, 0xf0f0, 0xdfdf, 0xafaf }, 803 | { 0, 0x9494, 0xbfbf, 0xf3f3 }, 804 | { 0, 0xecec, 0x9393, 0xd3d3 }, 805 | { 0, 0x9393, 0xe0e0, 0xe3e3 }, 806 | { 0, 0xffff, 0xffff, 0xffff } 807 | #endif 808 | #if COLOR_STYLE == SOLARIZED_DARK 809 | { 0, 0x0707, 0x3636, 0x4242 }, 810 | { 0, 0xdcdc, 0x3232, 0x2f2f }, 811 | { 0, 0x8585, 0x9999, 0x0000 }, 812 | { 0, 0xb5b5, 0x8989, 0x0000 }, 813 | { 0, 0x2626, 0x8b8b, 0xd2d2 }, 814 | { 0, 0xd3d3, 0x3636, 0x8282 }, 815 | { 0, 0x2a2a, 0xa1a1, 0x9898 }, 816 | { 0, 0xeeee, 0xe8e8, 0xd5d5 }, 817 | { 0, 0x0000, 0x2b2b, 0x3636 }, 818 | { 0, 0xcbcb, 0x4b4b, 0x1616 }, 819 | { 0, 0x5858, 0x6e6e, 0x7575 }, 820 | { 0, 0x6565, 0x7b7b, 0x8383 }, 821 | { 0, 0x8383, 0x9494, 0x9696 }, 822 | { 0, 0x6c6c, 0x7171, 0xc4c4 }, 823 | { 0, 0x9393, 0xa1a1, 0xa1a1 }, 824 | { 0, 0xfdfd, 0xf6f6, 0xe3e3 } 825 | #endif 826 | #if COLOR_STYLE == SOLARIZED_LIGHT 827 | { 0, 0xeeee, 0xe8e8, 0xd5d5 }, 828 | { 0, 0xdcdc, 0x3232, 0x2f2f }, 829 | { 0, 0x8585, 0x9999, 0x0000 }, 830 | { 0, 0xb5b5, 0x8989, 0x0000 }, 831 | { 0, 0x2626, 0x8b8b, 0xd2d2 }, 832 | { 0, 0xd3d3, 0x3636, 0x8282 }, 833 | { 0, 0x2a2a, 0xa1a1, 0x9898 }, 834 | { 0, 0x0707, 0x3636, 0x4242 }, 835 | { 0, 0xfdfd, 0xf6f6, 0xe3e3 }, 836 | { 0, 0xcbcb, 0x4b4b, 0x1616 }, 837 | { 0, 0x9393, 0xa1a1, 0xa1a1 }, 838 | { 0, 0x8383, 0x9494, 0x9696 }, 839 | { 0, 0x6565, 0x7b7b, 0x8383 }, 840 | { 0, 0x6c6c, 0x7171, 0xc4c4 }, 841 | { 0, 0x5858, 0x6e6e, 0x7575 }, 842 | { 0, 0x0000, 0x2b2b, 0x3636 } 843 | #endif 844 | #if COLOR_STYLE == USER_CUSTOM 845 | #define CLR_R(x) (((x) & 0xff0000) >> 16) 846 | #define CLR_G(x) (((x) & 0x00ff00) >> 8) 847 | #define CLR_B(x) (((x) & 0x0000ff) >> 0) 848 | #define CLR_16(x) (((x) << 8) | (x)) 849 | #define CLR_GDK(x) { 0, CLR_16(CLR_R(x)), CLR_16(CLR_G(x)), CLR_16(CLR_B(x)) } 850 | CLR_GDK(USER_COLOR_00), 851 | CLR_GDK(USER_COLOR_01), 852 | CLR_GDK(USER_COLOR_02), 853 | CLR_GDK(USER_COLOR_03), 854 | CLR_GDK(USER_COLOR_04), 855 | CLR_GDK(USER_COLOR_05), 856 | CLR_GDK(USER_COLOR_06), 857 | CLR_GDK(USER_COLOR_07), 858 | CLR_GDK(USER_COLOR_08), 859 | CLR_GDK(USER_COLOR_09), 860 | CLR_GDK(USER_COLOR_10), 861 | CLR_GDK(USER_COLOR_11), 862 | CLR_GDK(USER_COLOR_12), 863 | CLR_GDK(USER_COLOR_13), 864 | CLR_GDK(USER_COLOR_14), 865 | CLR_GDK(USER_COLOR_15) 866 | #endif 867 | #if COLOR_STYLE == HOLO 868 | { 0, 0x0000, 0x0000, 0x0000 }, 869 | { 0, 0xcccc, 0x0000, 0x0000 }, 870 | { 0, 0x6666, 0x9999, 0x0000 }, 871 | { 0, 0xffff, 0x8888, 0x0000 }, 872 | { 0, 0x0000, 0x9999, 0xcccc }, 873 | { 0, 0x9999, 0x3333, 0xcccc }, 874 | { 0, 0x0000, 0x9999, 0xcccc }, 875 | { 0, 0xa8a8, 0xa8a8, 0xa8a8 }, 876 | { 0, 0x5757, 0x5757, 0x5757 }, 877 | { 0, 0xffff, 0x4444, 0x4444 }, 878 | { 0, 0x9999, 0xcccc, 0x0000 }, 879 | { 0, 0xffff, 0xbbbb, 0x3333 }, 880 | { 0, 0x3333, 0xb5b5, 0xe5e5 }, 881 | { 0, 0xaaaa, 0x6666, 0xcccc }, 882 | { 0, 0x3333, 0xb5b5, 0xe5e5 }, 883 | { 0, 0xffff, 0xffff, 0xffff } 884 | #endif 885 | }; 886 | #endif 887 | 888 | #if defined(FONT_ANTI_ALIAS) || defined(MENU_FONT_BIGGER) || defined(MENU_FONT_SMALLER) || defined(MENU_FONT_SELECT) || defined(MENU_TOGGLE_ANTI_ALIAS) || defined(HOTKEY_TOGGLE_ANTI_ALIAS) || defined(HOTKEY_FONT_BIGGER) || defined(HOTKEY_FONT_SMALLER) || defined(HOTKEY_FONT_SELECT) || COMMAND_FONT 889 | #ifndef FONT 890 | #define FONT "Monospace 10" 891 | #endif 892 | #endif 893 | 894 | #if !defined(MENU_FONT_BIGGER) && !defined(MENU_FONT_SMALLER) && !defined(MENU_FONT_SELECT) && !defined(HOTKEY_FONT_BIGGER) && !defined(HOTKEY_FONT_SMALLER) && !defined(HOTKEY_FONT_SELECT) 895 | #undef MENU_FONT_DEFAULT_SIZE 896 | #undef HOTKEY_FONT_DEFAULT_SIZE 897 | #endif 898 | 899 | #ifdef FONT 900 | char font_name[125]; 901 | char font_str[128]; 902 | double font_size; 903 | #if defined(HOTKEY_FONT_DEFAULT_SIZE) || defined(MENU_FONT_DEFAULT_SIZE) 904 | double font_size_default; 905 | #endif 906 | #endif 907 | 908 | #if COMMAND_EXEC_PROGRAM 909 | #define VTE_DEFAULT_COMMAND default_command 910 | char default_command[256]; 911 | char **default_argv = NULL; 912 | #endif 913 | 914 | #if !COMMAND_EXEC_PROGRAM 915 | #define VTE_DEFAULT_COMMAND DEFAULT_COMMAND 916 | #define default_argv NULL 917 | #endif 918 | 919 | #if COMMAND_LOGIN_SHELL && VTE_FORK_CMD_OLD 920 | char *login_shell[] = { "-", NULL }; 921 | #endif 922 | 923 | #if COMMAND_LOGIN_SHELL || (!VTE_FORK_CMD_OLD && COMMAND_EXEC_PROGRAM) 924 | unsigned short login_shell_flag = 0; 925 | #endif 926 | 927 | #if defined(HOTKEY_SATURATION_MORE) || defined(HOTKEY_SATURATION_LESS) || MOUSE_CTRL_SATURATION || BACKGROUND_OPACITY || defined(HOTKEY_SATURATION_DIALOG) || defined(MENU_CHANGE_SATURATION) || defined(HOTKEY_TOGGLE_BACKGROUND) || defined(MENU_TOGGLE_BACKGROUND) || COMMAND_SATURATION 928 | #ifndef BACKGROUND_SATURATION 929 | #define BACKGROUND_SATURATION 0.4 930 | #endif 931 | #endif 932 | 933 | #ifdef PROGRAM_ALWAYS_ON_TOP 934 | bool always_on_top = PROGRAM_ALWAYS_ON_TOP; 935 | #endif 936 | 937 | #ifdef BACKGROUND_SATURATION 938 | double saturation_level = BACKGROUND_SATURATION; 939 | #endif 940 | 941 | #if COMMAND_AT_ROOT_WINDOW 942 | bool at_root_window = FALSE; 943 | #endif 944 | 945 | #if MENU 946 | GtkWidget *menu; 947 | #endif 948 | 949 | #ifdef MENU_COPY 950 | GtkWidget *menu_copy; 951 | #endif 952 | 953 | #ifdef MENU_PASTE 954 | GtkWidget *menu_paste; 955 | #endif 956 | 957 | #ifdef MENU_FONT_DEFAULT_SIZE 958 | GtkWidget *menu_zoom_100; 959 | #endif 960 | 961 | #ifdef MENU_MATCH_STRING_EXEC 962 | GtkWidget *match_open; 963 | GtkWidget *match_copy; 964 | GtkWidget *match_item; 965 | #endif 966 | 967 | #if defined(MENU_MATCH_STRING_EXEC) || defined(MATCH_STRING_L) || defined(MATCH_STRING_M) 968 | char *matched_url = NULL; 969 | #endif 970 | 971 | #if STATUS_BAR || defined(HOTKEY_TOGGLE_STATUS_BAR) || defined(MENU_TOGGLE_STATUS_BAR) 972 | GtkWidget *statusbar; 973 | GtkWidget *vbox; 974 | #endif 975 | 976 | #if defined(HOTKEY_SEARCH_STRING) || defined(HOTKEY_SEARCH_PREVIOUS) || defined(HOTKEY_SEARCH_NEXT) 977 | GtkWidget *global_search_string; 978 | #endif 979 | 980 | struct terminal { 981 | GtkWidget *vte; 982 | #if CLOSE_DIALOG || CLOSE_SAFELY || TAB_NEW_PATH_EQUAL_OLD 983 | int pid; 984 | #endif 985 | #if TAB_CLOSE_BUTTON 986 | GtkWidget *button; 987 | GtkWidget *label; 988 | GtkWidget *label_edit; 989 | #endif 990 | #ifdef SCROLLBAR 991 | GtkWidget *hbox; 992 | GtkWidget *scrollbar; 993 | #endif 994 | #if defined(HOTKEY_TAB_EDIT_LABEL) || defined(MENU_TAB_EDIT_LABEL) 995 | bool label_exist; 996 | #endif 997 | #if defined(HOTKEY_SEARCH_STRING) || defined(HOTKEY_SEARCH_PREVIOUS) || defined(HOTKEY_SEARCH_NEXT) 998 | GtkWidget *search_string; 999 | bool global_string; 1000 | #endif 1001 | }; 1002 | 1003 | struct terminal *term; 1004 | -------------------------------------------------------------------------------- /src/process.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (C) 2008-2012 Wen-Yen Chuang 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; version 2 of the License. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License along 14 | # with this program; if not, write to the Free Software Foundation, Inc., 15 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 16 | 17 | CONFFILE=src/install.sh 18 | 19 | grep '^#' src/config.mk > $CONFFILE 20 | rm -f $1 src/evilvte.o 21 | 22 | RULE_THEM_ALL=`grep '^#define RULE_THEM_ALL$' $CONFFILE | wc -l` 23 | MENU_DEFAULT_ENCODING=`grep MENU_ENCODING_LIST src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep 'Default Encoding'` 24 | MENU_ENCODING_LIST_SIZE=`grep MENU_ENCODING_LIST src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | tr ',' '\n' | grep '"' | wc -l` 25 | TOGGLE_BG_ORDER_SIZE=`grep TOGGLE_BG_ORDER src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | tr ',' '\n' | grep '"' | wc -l` 26 | MENU_CUSTOM_SIZE=`grep MENU_CUSTOM src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | tr ',' '\n' | grep '"' | wc -l` 27 | UPPER_PROGRAM_NAME=`grep PROGRAM_NAME src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | cut -d '"' -f 2 | sed 's/\b\(.\)/\u\1/'` 28 | GTK3_CSS_USE_BOX=`grep GTK3_CSS src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep "Gtk.Box"` 29 | HOTKEY_TAB_GO_TO_NUMBER=`grep HOTKEY_TAB_GO_TO_NUMBER src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1` 30 | HOTKEY_HAS_DEFINE=`sed 's/_GO_TO_/_HOTKEY_/' src/custom.h | grep HOTKEY_ | grep -v HOTKEY_TOGGLE_HOTKEYS | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | wc -l` 31 | [ "$MENU_DEFAULT_ENCODING" != "" ] && echo \#define MENU_DEFAULT_ENCODING >> $CONFFILE 32 | [ "$MENU_ENCODING_LIST_SIZE" != "0" ] && echo \#define MENU_ENCODING_LIST_SIZE $MENU_ENCODING_LIST_SIZE >> $CONFFILE 33 | [ "$TOGGLE_BG_ORDER_SIZE" != "0" ] && echo \#define TOGGLE_BG_ORDER_SIZE $TOGGLE_BG_ORDER_SIZE >> $CONFFILE 34 | [ "$MENU_CUSTOM_SIZE" != "0" ] && echo \#define MENU_CUSTOM_SIZE $MENU_CUSTOM_SIZE >> $CONFFILE 35 | [ "$UPPER_PROGRAM_NAME" != "" ] && echo \#define UPPER_PROGRAM_NAME '"'$UPPER_PROGRAM_NAME'"' >> $CONFFILE 36 | [ "$GTK3_CSS_USE_BOX" != "" ] && echo \#define GTK3_CSS_USE_BOX >> $CONFFILE 37 | [ "$HOTKEY_HAS_DEFINE" != "0" ] && echo \#define HOTKEY_HAS_DEFINE >> $CONFFILE 38 | if [ "$HOTKEY_TAB_GO_TO_NUMBER" != "" ]; then 39 | echo "Warning! HOTKEY_TAB_GO_TO_NUMBER is obsolete." 40 | echo " Please use ALT_NUMBER_GO_TO_TAB_NUMBER or" 41 | echo " CTRL_NUMBER_GO_TO_TAB_NUMBER." 42 | fi 43 | 44 | DEFAULT_TERMINAL_SIZE_DEFINE=`grep DEFAULT_TERMINAL_SIZE src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1` 45 | if [ "$DEFAULT_TERMINAL_SIZE_DEFINE" != "" ]; then 46 | COLUMNS_DEFINE=`echo $DEFAULT_TERMINAL_SIZE_DEFINE | awk '{print $3}' | cut -d x -f 1` 47 | ROWS_DEFINE=`echo $DEFAULT_TERMINAL_SIZE_DEFINE | grep x | cut -d x -f 2` 48 | [ "$ROWS_DEFINE" = "" ] && ROWS_DEFINE=24 49 | echo \#define VTE_COLUMNS $COLUMNS_DEFINE >> $CONFFILE 50 | echo \#define VTE_ROWS $ROWS_DEFINE >> $CONFFILE 51 | fi 52 | 53 | TOGGLE_BG_ORDER_DEFINE=`grep TOGGLE_BG_ORDER src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1` 54 | TOGGLE_BG_IMAGE=`echo $TOGGLE_BG_ORDER_DEFINE | grep Image` 55 | TOGGLE_BG_TRANSPARENT=`echo $TOGGLE_BG_ORDER_DEFINE | grep Transparent` 56 | TOGGLE_BG_NO_BACKGROUND=`echo $TOGGLE_BG_ORDER_DEFINE | grep 'No background'` 57 | TOGGLE_BG_OPACITY=`echo $TOGGLE_BG_ORDER_DEFINE | grep Opacity` 58 | [ "$TOGGLE_BG_IMAGE" != "" ] && echo \#define TOGGLE_BG_IMAGE >> $CONFFILE 59 | [ "$TOGGLE_BG_TRANSPARENT" != "" ] && echo \#define TOGGLE_BG_TRANSPARENT >> $CONFFILE 60 | [ "$TOGGLE_BG_NO_BACKGROUND" != "" ] && echo \#define TOGGLE_BG_NO_BACKGROUND >> $CONFFILE 61 | [ "$TOGGLE_BG_OPACITY" != "" ] && echo \#define TOGGLE_BG_OPACITY >> $CONFFILE 62 | 63 | MENU_CUSTOM_DEFINE=`grep MENU_CUSTOM src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1` 64 | 65 | MENU_COPY=`echo $MENU_CUSTOM_DEFINE | grep Copy` 66 | [ "$MENU_COPY" != "" ] && echo \#define MENU_COPY >> $CONFFILE 67 | 68 | MENU_PASTE=`echo $MENU_CUSTOM_DEFINE | grep Paste` 69 | [ "$MENU_PASTE" != "" ] && echo \#define MENU_PASTE >> $CONFFILE 70 | 71 | MENU_SELECT_ALL=`echo $MENU_CUSTOM_DEFINE | grep 'Select all'` 72 | [ "$MENU_SELECT_ALL" != "" ] && echo \#define MENU_SELECT_ALL >> $CONFFILE 73 | 74 | MENU_COLOR_BACKGROUND=`echo $MENU_CUSTOM_DEFINE | grep 'Background tint'` 75 | [ "$MENU_COLOR_BACKGROUND" != "" ] && echo \#define MENU_COLOR_BACKGROUND >> $CONFFILE 76 | 77 | MENU_TAB_ADD=`echo $MENU_CUSTOM_DEFINE | grep 'Add tab'` 78 | [ "$MENU_TAB_ADD" != "" ] && echo \#define MENU_TAB_ADD >> $CONFFILE 79 | 80 | MENU_TAB_REMOVE=`echo $MENU_CUSTOM_DEFINE | grep 'Remove tab'` 81 | [ "$MENU_TAB_REMOVE" != "" ] && echo \#define MENU_TAB_REMOVE >> $CONFFILE 82 | 83 | MENU_TAB_EDIT_LABEL=`echo $MENU_CUSTOM_DEFINE | grep 'Edit label'` 84 | [ "$MENU_TAB_EDIT_LABEL" != "" ] && echo \#define MENU_TAB_EDIT_LABEL >> $CONFFILE 85 | 86 | MENU_OPEN_NEW_WINDOW=`echo $MENU_CUSTOM_DEFINE | grep 'New window'` 87 | [ "$MENU_OPEN_NEW_WINDOW" != "" ] && echo \#define MENU_OPEN_NEW_WINDOW >> $CONFFILE 88 | 89 | MENU_QUIT=`echo $MENU_CUSTOM_DEFINE | grep Quit` 90 | [ "$MENU_QUIT" != "" ] && echo \#define MENU_QUIT >> $CONFFILE 91 | 92 | MENU_FONT_BIGGER=`echo $MENU_CUSTOM_DEFINE | grep 'Zoom in'` 93 | [ "$MENU_FONT_BIGGER" != "" ] && echo \#define MENU_FONT_BIGGER >> $CONFFILE 94 | 95 | MENU_FONT_SMALLER=`echo $MENU_CUSTOM_DEFINE | grep 'Zoom out'` 96 | [ "$MENU_FONT_SMALLER" != "" ] && echo \#define MENU_FONT_SMALLER >> $CONFFILE 97 | 98 | MENU_FONT_DEFAULT_SIZE=`echo $MENU_CUSTOM_DEFINE | grep 'Zoom default'` 99 | [ "$MENU_FONT_DEFAULT_SIZE" != "" ] && echo \#define MENU_FONT_DEFAULT_SIZE >> $CONFFILE 100 | 101 | MENU_RESET_TERMINAL=`echo $MENU_CUSTOM_DEFINE | grep 'Reset terminal'` 102 | [ "$MENU_RESET_TERMINAL" != "" ] && echo \#define MENU_RESET_TERMINAL >> $CONFFILE 103 | 104 | MENU_RESET_AND_CLEAR=`echo $MENU_CUSTOM_DEFINE | grep 'Reset and clear'` 105 | [ "$MENU_RESET_AND_CLEAR" != "" ] && echo \#define MENU_RESET_AND_CLEAR >> $CONFFILE 106 | 107 | MENU_FONT_SELECT=`echo $MENU_CUSTOM_DEFINE | grep 'Select font'` 108 | [ "$MENU_FONT_SELECT" != "" ] && echo \#define MENU_FONT_SELECT >> $CONFFILE 109 | 110 | MENU_SEPARATOR=`echo $MENU_CUSTOM_DEFINE | grep Separator` 111 | [ "$MENU_SEPARATOR" != "" ] && echo \#define MENU_SEPARATOR >> $CONFFILE 112 | 113 | SUBMENU_ENCODING_LIST=`echo $MENU_CUSTOM_DEFINE | grep 'Submenu encoding list'` 114 | [ "$SUBMENU_ENCODING_LIST" != "" ] && echo \#define SUBMENU_ENCODING_LIST >> $CONFFILE 115 | 116 | SUBMENU_INPUT_METHOD=`echo $MENU_CUSTOM_DEFINE | grep 'Submenu input method'` 117 | [ "$SUBMENU_INPUT_METHOD" != "" ] && echo \#define SUBMENU_INPUT_METHOD >> $CONFFILE 118 | 119 | MENU_TOGGLE_BACKGROUND=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle background'` 120 | [ "$MENU_TOGGLE_BACKGROUND" != "" ] && echo \#define MENU_TOGGLE_BACKGROUND >> $CONFFILE 121 | 122 | MENU_TOGGLE_HOTKEYS=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle hotkeys locking'` 123 | [ "$MENU_TOGGLE_HOTKEYS" != "" ] && echo \#define MENU_TOGGLE_HOTKEYS >> $CONFFILE 124 | 125 | MENU_TOGGLE_ON_TOP=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle always on top'` 126 | [ "$MENU_TOGGLE_ON_TOP" != "" ] && echo \#define MENU_TOGGLE_ON_TOP >> $CONFFILE 127 | 128 | MENU_TOGGLE_SCROLLBAR=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle scrollbar'` 129 | [ "$MENU_TOGGLE_SCROLLBAR" != "" ] && echo \#define MENU_TOGGLE_SCROLLBAR >> $CONFFILE 130 | 131 | MENU_TOGGLE_STATUS_BAR=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle status bar'` 132 | [ "$MENU_TOGGLE_STATUS_BAR" != "" ] && echo \#define MENU_TOGGLE_STATUS_BAR >> $CONFFILE 133 | 134 | MENU_TOGGLE_TABBAR=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle tabbar'` 135 | [ "$MENU_TOGGLE_TABBAR" != "" ] && echo \#define MENU_TOGGLE_TABBAR >> $CONFFILE 136 | 137 | MENU_TOGGLE_DECORATED=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle window decorated'` 138 | [ "$MENU_TOGGLE_DECORATED" != "" ] && echo \#define MENU_TOGGLE_DECORATED >> $CONFFILE 139 | 140 | MENU_TOGGLE_FULLSCREEN=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle fullscreen'` 141 | [ "$MENU_TOGGLE_FULLSCREEN" != "" ] && echo \#define MENU_TOGGLE_FULLSCREEN >> $CONFFILE 142 | 143 | MENU_TOGGLE_ANTI_ALIAS=`echo $MENU_CUSTOM_DEFINE | grep 'Toggle anti-alias'` 144 | [ "$MENU_TOGGLE_ANTI_ALIAS" != "" ] && echo \#define MENU_TOGGLE_ANTI_ALIAS >> $CONFFILE 145 | 146 | MENU_CHANGE_SATURATION=`echo $MENU_CUSTOM_DEFINE | grep 'Adjust saturation'` 147 | [ "$MENU_CHANGE_SATURATION" != "" ] && echo \#define MENU_CHANGE_SATURATION >> $CONFFILE 148 | 149 | ONLY_ONE_MENU_ITEM=`echo $MENU_CUSTOM_DEFINE | grep '"Auto-click"'` 150 | [ "$ONLY_ONE_MENU_ITEM" != "" ] && echo \#define ONLY_ONE_MENU_ITEM >> $CONFFILE 151 | 152 | mv $CONFFILE src/evilvte.h 153 | 154 | head -n 1 $0 > src/install.sh 155 | echo "set -x" >> src/install.sh 156 | make -n install | grep 'install ' >> src/install.sh 157 | 158 | head -n 1 $0 > src/showvte 159 | tail -n 6 $0 | grep -v ^grep >> src/showvte 160 | cat src/custom.h | tr '\t' ' ' | tr -s ' ' ' ' | sed -e 's/^ //' -e 's~/\*~\n~g' | grep ^\#define >> src/showvte 161 | 162 | SHOWVTE_PROG_NAME=`grep PROGRAM_NAME src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | cut -d '"' -f 2` 163 | [ "$SHOWVTE_PROG_NAME" = "" ] && SHOWVTE_PROG_NAME="evilvte" 164 | 165 | SHOWVTE_VERSION=`grep PROGRAM_VERSION src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | cut -d '"' -f 2` 166 | [ "$SHOWVTE_VERSION" = "" ] && SHOWVTE_VERSION=`head -n 1 ChangeLog` 167 | 168 | echo echo Configuration of $SHOWVTE_PROG_NAME $SHOWVTE_VERSION: >> src/showvte 169 | 170 | DEFINE_LINES=`grep ^\#define src/showvte | wc -l` 171 | 172 | if [ "$DEFINE_LINES" = "0" ]; then 173 | echo echo Disable everything. >> src/showvte 174 | echo exit >> src/showvte 175 | fi 176 | 177 | tail -n 6 $0 | grep ^grep >> src/showvte 178 | 179 | COMMAND_AT_ROOT_WINDOW=`grep COMMAND_AT_ROOT_WINDOW src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 180 | COMMAND_COLOR_FG=`grep COMMAND_COLOR_FG src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 181 | COMMAND_COLOR_BG=`grep COMMAND_COLOR_BG src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 182 | COMMAND_SATURATION=`grep COMMAND_SATURATION src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 183 | COMMAND_DOCK_MODE=`grep COMMAND_DOCK_MODE src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 184 | COMMAND_EXEC_PROGRAM=`grep COMMAND_EXEC_PROGRAM src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 185 | COMMAND_FULLSCREEN=`grep COMMAND_FULLSCREEN src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 186 | COMMAND_FONT=`grep COMMAND_FONT src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 187 | COMMAND_GEOMETRY=`grep COMMAND_GEOMETRY src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 188 | COMMAND_LOGIN_SHELL=`grep COMMAND_LOGIN_SHELL src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 189 | COMMAND_SET_TITLE=`grep COMMAND_SET_TITLE src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 190 | COMMAND_SHOW_HELP=`grep COMMAND_SHOW_HELP src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 191 | COMMAND_SHOW_OPTIONS=`grep COMMAND_SHOW_OPTIONS src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 192 | COMMAND_SHOW_VERSION=`grep COMMAND_SHOW_VERSION src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 193 | COMMAND_TAB_NUMBERS=`grep COMMAND_TAB_NUMBERS src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 194 | PROGRAM_WM_CLASS=`grep PROGRAM_WM_CLASS src/custom.h | tr '\t' ' ' | sed 's/^\( \)*//g' | grep -v ^\/\/ | tail -n 1 | grep -v -i FALSE | grep -v 0` 195 | 196 | head -n 10 misc/manpage.1 > misc/evilvte.1 197 | 198 | [ "$COMMAND_DOCK_MODE" != "" ] && grep '^.\\" D ' misc/manpage.1 | sed 's/^.\\" D //' >> misc/evilvte.1 199 | [ "$COMMAND_EXEC_PROGRAM" != "" ] && grep '^.\\" E ' misc/manpage.1 | sed 's/^.\\" E //' >> misc/evilvte.1 200 | [ "$COMMAND_FULLSCREEN" != "" ] && grep '^.\\" F ' misc/manpage.1 | sed 's/^.\\" F //' >> misc/evilvte.1 201 | [ "$COMMAND_COLOR_FG" != "" ] && grep '^.\\" 3 ' misc/manpage.1 | sed 's/^.\\" 3 //' >> misc/evilvte.1 202 | [ "$COMMAND_COLOR_BG" != "" ] && grep '^.\\" 4 ' misc/manpage.1 | sed 's/^.\\" 4 //' >> misc/evilvte.1 203 | [ "$COMMAND_SATURATION" != "" ] && grep '^.\\" 5 ' misc/manpage.1 | sed 's/^.\\" 5 //' >> misc/evilvte.1 204 | [ "$COMMAND_FONT" != "" ] && grep '^.\\" 7 ' misc/manpage.1 | sed 's/^.\\" 7 //' >> misc/evilvte.1 205 | [ "$COMMAND_GEOMETRY" != "" ] && grep '^.\\" G ' misc/manpage.1 | sed 's/^.\\" G //' >> misc/evilvte.1 206 | [ "$COMMAND_SHOW_HELP" != "" ] && grep '^.\\" H ' misc/manpage.1 | sed 's/^.\\" H //' >> misc/evilvte.1 207 | [ "$COMMAND_LOGIN_SHELL" != "" ] && grep '^.\\" L ' misc/manpage.1 | sed 's/^.\\" L //' >> misc/evilvte.1 208 | [ "$COMMAND_SHOW_OPTIONS" != "" ] && grep '^.\\" O ' misc/manpage.1 | sed 's/^.\\" O //' >> misc/evilvte.1 209 | [ "$COMMAND_AT_ROOT_WINDOW" != "" ] && grep '^.\\" R ' misc/manpage.1 | sed 's/^.\\" R //' >> misc/evilvte.1 210 | [ "$COMMAND_SET_TITLE" != "" ] && grep '^.\\" T ' misc/manpage.1 | sed 's/^.\\" T //' >> misc/evilvte.1 211 | [ "$COMMAND_SHOW_VERSION" != "" ] && grep '^.\\" V ' misc/manpage.1 | sed 's/^.\\" V //' >> misc/evilvte.1 212 | [ "$COMMAND_TAB_NUMBERS" != "" ] && grep '^.\\" 2 ' misc/manpage.1 | sed 's/^.\\" 2 //' >> misc/evilvte.1 213 | 214 | COMMAND_NUMBERS=`grep '^.B..-' misc/evilvte.1 | wc -l` 215 | 216 | grep '^.\\" 6 ' misc/manpage.1 | sed 's/^.\\" 6 //' >> misc/evilvte.1 217 | 218 | if [ "$RULE_THEM_ALL" = 1 ]; then 219 | sed 's/^6 //' misc/evilvte.1 > misc/evilvte.2 220 | else 221 | sed 's/^6/.\\" 6/' misc/evilvte.1 > misc/evilvte.2 222 | fi 223 | mv misc/evilvte.2 misc/evilvte.1 224 | 225 | tail -n 8 misc/manpage.1 >> misc/evilvte.1 226 | 227 | [ "$COMMAND_NUMBERS" = "0" ] && grep -v OPTION$ misc/manpage.1 | sed 's/^.\\" 6 //' > misc/evilvte.1 228 | if [ "$COMMAND_NUMBERS" != "0" ] && [ "$COMMAND_NUMBERS" != "1" ]; then 229 | sed 's/SH OPTION$/SH OPTIONS/' misc/evilvte.1 > misc/evilvte.2 230 | mv misc/evilvte.2 misc/evilvte.1 231 | fi 232 | if [ "$PROGRAM_WM_CLASS" != "" ]; then 233 | sed 's/^.\\" 8 //' misc/evilvte.1 > misc/evilvte.2 234 | mv misc/evilvte.2 misc/evilvte.1 235 | fi 236 | exit 237 | 238 | if [ "$1" = "-v" ]; then 239 | SHOWVTE_VERSION=`grep ^echo $0 | cut -d : -f 1 | cut -d ' ' -f 5` 240 | echo showvte, version $SHOWVTE_VERSION 241 | exit 242 | fi 243 | grep ^#define $0 | sed -e 's/$//' -e 's/"/"/' -e 's/ 0/ 0/' -e 's/ 1/ 1/' -e 's/ 2/ 2/' -e 's/ 3/ 3/' -e 's/ 4/ 4/' -e 's/ 5/ 5/' -e 's/ 6/ 6/' -e 's/ 7/ 7/' -e 's/ 8/ 8/' -e 's/ 9/ 9/' -e 's/TRUE/TRUE/' -e 's/FALSE/FALSE/' -e 's/ AUTO/ AUTO/' -e 's/ ERASE_TTY/ ERASE_TTY/' -e 's/ BLOCK/ BLOCK/' -e 's/ IBEAM/ IBEAM/' -e 's/ UNDERLINE/ UNDERLINE/' -e 's/ BACKSPACE/ BACKSPACE/g' -e 's/BACKSPACE_KEY/BACKSPACE_KEY/' -e 's/ DELETE/ DELETE/g' -e 's/DELETE_KEY/DELETE_KEY/' -e 's/ LINUX/ LINUX/' -e 's/ RXVT/ RXVT/' -e 's/ TANGO/ TANGO/' -e 's/ XTERM/ XTERM/' -e 's/ ZENBURN/ ZENBURN/' -e 's/ g_/ g_/' -e 's/ RIGHT/ RIGHT/' -e 's/ LEFT/ LEFT/' -e 's/ OFF_R/ OFF_R/' -e 's/ OFF_L/ OFF_L/' -e 's/ TOP/ TOP/' -e 's/ BOTTOM/ BOTTOM/' -e 's/ ALT(/ ALT(/' -e 's/ ALT_SHIFT(/ ALT_SHIFT(/' -e 's/ CTRL(/ CTRL(/' -e 's/ CTRL_ALT(/ CTRL_ALT(/' -e 's/ CTRL_ALT_SHIFT(/ CTRL_ALT_SHIFT(/' -e 's/ CTRL_SHIFT(/ CTRL_SHIFT(/' -e 's/ SHIFT(/ SHIFT(/' 244 | --------------------------------------------------------------------------------