caleb- / evilvte Goto Github PK
View Code? Open in Web Editor NEWVTE based, highly customizable terminal emulator
Home Page: http://www.calno.com/evilvte
VTE based, highly customizable terminal emulator
Home Page: http://www.calno.com/evilvte
When using WINDOW_TITLE_DYNAMIC
, if I set the title for a tab manually it is getting overwritten each time an escape sequence is emitted.
I think the desired behavior is to keep the manually set title, and provide a way to unset it so dynamic title can be enabled again. Maybe setting to an empty title would be fine.
I often don't recognize the visual bell, because the window is active; it's just that I'm in another tab.
Could perhaps the background of the tab in the tabbar light up in a different color upon receiving a bell-event until it gets selected?
Hi!
libvte is getting DPI settings from xsettings. It would be convenient if evilvte could listen to changes to adapt DPI settings. It would be useful for people switching from HiDPI to non-HiDPI screens. xfce4-terminal listen for such changes.
For example if you have:
in your config.h then <ctrl> + <shift> + c
works. However if you turn on the caps lock it changes to just <ctrl> + c
.
Config:
Steps to reproduce:
visit /usr/share/misc and start evilvte from that folder (entering the command on a terminal or via file manager). Evilvte starts with /usr/share/misc as the initial directory.
Do "cd ../awk" and hit Ctrl-Shift-N to open a new terminal.
Expected behaviour:
The new shell opens in /usr/share/awk
Observed behaviour:
The new shell opens in /usr/share/misc
我把字型設成文泉驛等寬微米黑16之後視窗往上位移了快一半Orz
螢幕截圖:http://ind.ntou.edu.tw/~pika1021/Files/Picture_cache/evilvte_issue01.png
reproduce steps:
1.open evilvte
2.調整字型(如上 →視窗往上位移
3.點一下 →無變化
4.點別的window一下後再點一下 →跳回原(正常)位置
*更新*
此bug確定目前只在Unity 3D上出現
I want to change evilvte's font and other aspects but I cant find out anything on this subject.
The only thing I found out was that I can edit the config.h
file and build it again but what about already built and install instance of evilvte?
I would appreciate a lot if evilvte will support the Solarized Color Scheme: http://ethanschoonover.com/solarized
Thanks.
From:
http://evilvte.blogspot.tw/2010/05/how-to-report-bug-request-feature-or.html
Anonymous wrote:
When I maximize the window it does.
When I restore, it sets left upper corner at the right place, but window size remains in maximized size and cannot be changed after that.
Version 0.51 or 0.52pre1 the same.
IceWM as Windowmanager.
That would be very useful to make possible assign shift+arrow keybinding via config file (e.g. for selection of the next or previous tab)
Middle click is widely used in terminal for pasting text selected by left mouse button. It would be more handy to open links by holding Ctrl key and clicking Left Mouse Button.
When referencing the WM_CLASS
variable in xprop, it seems that evilvte has ""
as the value of WM_CLASS
initially, and only after the window leaves the withdrawn state does it get set correctly to Evilvte
. See the following related discussion where the same thing is happening to the Spotify application on launch:
https://bbs.archlinux.org/viewtopic.php?pid=1581353#p1581353
Hi,
I'm going to package it into Fedora, but I hope you can add a proper tag for each release on github.
Thanks.
evilvte --name title -e something -a -b -c de
behaves like evilvte --name title -e something
. It seems that anything after the first space is ignored such that evilvte --name title -e "something -a -b -c de"
is seen as evilvte --name title -e "something
. Is this just me? (Everything works fine for the -T/-title flag however).
One very nice thing about urxvt is that it allows to fade the text of inactive terminals by a certain amount, making it very visually obvious which window is active. This is especially useful with minimal window managers like dwm, where visual cues are fairly few. Any chance of this getting implemented?
Reported here for visibility, details in the Debian bug report:
I can't resize the window to anything smaller than a certain size (which is almost as large as it is maximized on my screen). How do I enable resizing? I'm on Arch Linux 64-bit with Xorg-server version 1.13.1-1. Thanks! Here is my config.h:
/* Use // to disable options */
//#define BACKGROUND_IMAGE "/usr/share/awesome/themes/sky/background.png"
//#define BACKGROUND_SATURATION 0.2
//#define BACKGROUND_SCROLLABLE TRUE
// #define BACKGROUND_TINT_COLOR "black"
//#define BACKGROUND_TRANSPARENT TRUE /* Pseudo transparent background */
// #define BACKGROUND_OPACITY TRUE /* True transparent background */
// #define BACKSPACE_KEY /* Options: AUTO, BACKSPACE, DELETE, ERASE_TTY, */
/* DELETE_SEQUENCE */
// #define DELETE_KEY /* Options: AUTO, BACKSPACE, DELETE, ERASE_TTY, */
/* DELETE_SEQUENCE */
#define BELL_AUDIBLE TRUE
// #define BELL_VISIBLE TRUE
// #define BELL_URGENT TRUE
// #define BUTTON_ORDER_BY_RCFILE TRUE
// #define CLOSE_DIALOG TRUE /* Dialog to confirm close event */
// #define CLOSE_SAFELY TRUE /* Do not kill running applications */
// #define COLOR_BACKGROUND "white"
// #define COLOR_FOREGROUND "#000000"
#define COLOR_STYLE SOLARIZED_DARK
/* Options: LINUX, RXVT, TANGO, XTERM, ZENBURN, */
/* ZENBURN_DARK, SOLARIZED_DARK, */
/* SOLARIZED_LIGHT */
// #define COLOR_TEXT_BOLD "red"
// #define COLOR_TEXT_DIM "#FFFF00"
// #define COLOR_TEXT_HIGHLIGHTED "green"
#define COMMAND_AT_ROOT_WINDOW TRUE /* -r option, run in root window */
// #define COMMAND_COLOR_FG TRUE /* -fg option, foreground color */
// #define COMMAND_COLOR_BG TRUE /* -bg option, background color */
// #define COMMAND_SATURATION TRUE /* -sa option, saturation level */
// #define COMMAND_DOCK_MODE TRUE /* -d option, run as a dock */
#define COMMAND_EXEC_PROGRAM TRUE /* -e option, execute program */
#define COMMAND_FULLSCREEN TRUE /* -f option, init in fullscreen mode */
//#define COMMAND_FONT TRUE /* -fn option, to assign font & size */
// #define COMMAND_GEOMETRY TRUE /* -g +X+Y option, to assign geometry */
// #define COMMAND_LOGIN_SHELL TRUE /* -ls option, to enable login shell */
#define COMMAND_SET_TITLE TRUE /* -T or -title to set program title */
// #define COMMAND_SHOW_HELP TRUE /* -h option, show help */
//#define COMMAND_SHOW_OPTIONS TRUE /* -o option, show build-time options */
#define COMMAND_SHOW_VERSION TRUE /* -v option, show program version */
// #define COMMAND_TAB_NUMBERS TRUE /* -[2-9] options, to set tab numbers */
#define CURSOR_BLINKS FALSE
// #define CURSOR_COLOR "blue"
// #define CURSOR_SHAPE /* Options: BLOCK, IBEAM, UNDERLINE */
// #define DEFAULT_COMMAND g_getenv("SHELL")
// #define DEFAULT_DIRECTORY g_get_current_dir()
// #define DEFAULT_TERMINAL_SIZE 173x44
// #define EXPORT_WINDOWID TRUE
#define FONT "Inconsolata-dz 14"
#define FONT_ANTI_ALIAS TRUE
// #define FONT_ENABLE_BOLD_TEXT TRUE
// #define MOUSE_CTRL_SATURATION TRUE /* Scroll left or right to adjust it */
#define MOUSE_CURSOR_AUTOHIDE TRUE
// #define PROGRAM_ALWAYS_ON_TOP TRUE
// #define PROGRAM_ICON ".config/evilvte/icon.png"
//#define PROGRAM_WM_CLASS TRUE
// #define RECORD_LASTLOG TRUE
// #define RECORD_UTMP TRUE
// #define RECORD_WTMP TRUE
#define SCROLL_LINES -1000 /* Negative value means unlimited */
#define SCROLL_ON_KEYSTROKE TRUE
// #define SCROLL_ON_OUTPUT TRUE
#define SCROLLBAR OFF_R /* Options: LEFT, RIGHT, OFF_L, OFF_R */
#define SHOW_WINDOW_BORDER FALSE
#define SHOW_WINDOW_DECORATED FALSE
// #define SHOW_WINDOW_ICON TRUE
// #define STATUS_BAR TRUE
#define WINDOW_TITLE_DYNAMIC TRUE /* for xterm escape sequences */
#define WORD_CHARS "-A-Za-z0-9_$.+!*(),;:@&=?/~#%"
// #define MENU TRUE
// #define MENU_ENCODING_LIST "BIG-5", "Default Encoding", "GBK", "EUC-JP"
#define MENU_MATCH_STRING_EXEC "google-chrome"
#define MATCH_STRING_L "google-chrome" /* left click to open without menu*/
// #define MATCH_STRING_M "firefox" /* middle click to open */
#define MATCH_STRING_HTTP TRUE /* Detect http(s) and ftp(s) */
// #define MATCH_STRING_MAIL TRUE /* Detect mailto: */
// #define MATCH_STRING_FILE TRUE /* Detect file:/// */
// #define MENU_CUSTOM "Copy", "Separator", "Paste", "Separator"
/* Options: "Copy", "Zoom in", "Add tab",
* "Paste", "Zoom out", "Remove tab",
* "Select all", "Zoom default", "New window",
* "Edit label", "Select font",
* "Input method", "Encoding list",
* "Submenu input method", "Submenu encoding list",
* "Toggle tabbar",
* "Toggle scrollbar", "Background tint",
* "Toggle status bar", "Adjust saturation",
* "Toggle anti-alias",
* "Toggle background", "Separator",
* "Toggle fullscreen", "Quit",
* "Toggle always on top",
* "Toggle hotkeys locking", "Reset terminal",
* "Toggle window decorated", "Reset and clear",
*
* "Auto-click" (when there is only one effective menu item)
*/
#define TAB TRUE
#define TAB_BORDER 0
#define TAB_CLOSE_BUTTON FALSE
// #define TAB_EXPANDED_WIDTH TRUE
// #define TAB_LABEL "Page %u" /* %u will be replaced by numbers */
#define TAB_LABEL_DYNAMIC TRUE /* for xterm escape sequences */
// #define TAB_LABEL_CUSTOM "One", "Two", "Three", "Four", "Five", "Six"
// #define TAB_NEW_PATH_EQUAL_OLD TRUE
// #define TAB_NEW_TAB_AT_TAB_ONE TRUE /* New tab will always the first tab */
#define TAB_REORDERABLE TRUE
// #define TAB_SHOW_INFO_AT_TITLE TRUE
#define TABBAR FALSE
// #define TABBAR_PLACE TOP /* Options: TOP, BOTTOM, LEFT, RIGHT */
// #define TABBAR_AUTOHIDE TRUE
// #define TABBAR_SCROLLABLE TRUE
// #define TABBAR_MENU_SELECT_TAB TRUE
/* Use || for multiple hotkeys.
*
* CTRL(GDK_A) || CTRL(GDK_a) || ALT(GDK_b) || CTRL_ALT(GDK_c) || SHIFT(GDK_d)
*
* CTRL(GDK_a) = "Ctrl + a"
* CTRL(GDK_A) = "Ctrl + Shift + a"
* ALT(GDK_A) = "Alt + Shift + a"
* CTRL_ALT(GDK_A) = "Ctrl + Alt + Shift + a"
*
* Also support: ALT_SHIFT(GDK_*)
* CTRL_ALT_SHIFT(GDK_*)
* CTRL_SHIFT(GDK_*)
*
* See /usr/include/gtk-?.0/gdk/gdkkeysyms.h for GDK_* definitions. */
#define HOTKEY TRUE
#define HOTKEY_COPY CTRL_SHIFT(GDK_C) || CTRL_SHIFT(GDK_c)
#define HOTKEY_PASTE CTRL_SHIFT(GDK_V) || CTRL_SHIFT(GDK_v)
// #define HOTKEY_SELECT_ALL CTRL_SHIFT(GDK_S) || CTRL_SHIFT(GDK_s)
// #define HOTKEY_COLOR_BACKGROUND CTRL_SHIFT(GDK_B) || CTRL_SHIFT(GDK_b)
// #define HOTKEY_EDIT_ENCODING CTRL_SHIFT(GDK_U) || CTRL_SHIFT(GDK_u)
// #define HOTKEY_FONT_BIGGER CTRL(GDK_KP_Add)
// #define HOTKEY_FONT_SMALLER CTRL(GDK_KP_Subtract)
// #define HOTKEY_FONT_DEFAULT_SIZE CTRL(GDK_KP_Insert)
// #define HOTKEY_FONT_SELECT CTRL_SHIFT(GDK_F) || CTRL_SHIFT(GDK_f)
// #define HOTKEY_MIMIC_SCROLL_UP CTRL_SHIFT(GDK_K) || CTRL_SHIFT(GDK_k)
// #define HOTKEY_MIMIC_SCROLL_DOWN CTRL_SHIFT(GDK_J) || CTRL_SHIFT(GDK_j)
// #define HOTKEY_OPEN_NEW_WINDOW CTRL_SHIFT(GDK_N) || CTRL_SHIFT(GDK_n)
// #define HOTKEY_RESET_TERMINAL CTRL_SHIFT(GDK_R) || CTRL_SHIFT(GDK_r)
// #define HOTKEY_RESET_AND_CLEAR CTRL_SHIFT(GDK_A) || CTRL_SHIFT(GDK_a)
// #define HOTKEY_SATURATION_DIALOG CTRL_SHIFT(GDK_X) || CTRL_SHIFT(GDK_x)
// #define HOTKEY_SATURATION_MORE CTRL(GDK_KP_Multiply)
// #define HOTKEY_SATURATION_LESS CTRL(GDK_KP_Divide)
// #define HOTKEY_SCROLL_ONE_PAGE_UP CTRL(GDK_k) || CTRL(GDK_K)
// #define HOTKEY_SCROLL_ONE_PAGE_DOWN CTRL(GDK_j) || CTRL(GDK_J)
// #define HOTKEY_SEARCH_STRING CTRL_SHIFT(GDK_Q) || CTRL_SHIFT(GDK_q)
// #define HOTKEY_SEARCH_PREVIOUS CTRL_SHIFT(GDK_G) || CTRL_SHIFT(GDK_g)
// #define HOTKEY_SEARCH_NEXT CTRL(GDK_g) || CTRL(GDK_G)
// #define SEARCH_CASE_SENSITIVE TRUE
#define HOTKEY_TAB_ADD CTRL_SHIFT(GDK_T) || CTRL_SHIFT(GDK_t)
#define HOTKEY_TAB_REMOVE CTRL_SHIFT(GDK_W) || CTRL_SHIFT(GDK_w)
// #define HOTKEY_TAB_PREVIOUS CTRL(GDK_Page_Up)
// #define HOTKEY_TAB_NEXT CTRL(GDK_Page_Down)
// #define HOTKEY_TAB_FIRST CTRL(GDK_Home)
// #define HOTKEY_TAB_LAST CTRL(GDK_End)
// #define ALT_NUMBER_GO_TO_TAB_NUMBER TRUE
#define CTRL_NUMBER_GO_TO_TAB_NUMBER TRUE
// #define HOTKEY_TAB_EDIT_LABEL CTRL_SHIFT(GDK_E) || CTRL_SHIFT(GDK_e)
// #define HOTKEY_TOGGLE_ANTI_ALIAS CTRL_SHIFT(GDK_L) || CTRL_SHIFT(GDK_l)
// #define HOTKEY_TOGGLE_DECORATED CTRL(GDK_Left)
// #define HOTKEY_TOGGLE_FULLSCREEN CTRL_SHIFT(GDK_M) || CTRL_SHIFT(GDK_m)
// #define HOTKEY_TOGGLE_HOTKEYS CTRL(GDK_quoteleft)
// #define HOTKEY_TOGGLE_ON_TOP CTRL_SHIFT(GDK_O) || CTRL_SHIFT(GDK_o)
// #define HOTKEY_TOGGLE_SCROLLBAR CTRL(GDK_Right)
// #define HOTKEY_TOGGLE_STATUS_BAR CTRL(GDK_Down)
// #define HOTKEY_TOGGLE_TABBAR CTRL(GDK_Up)
// #define HOTKEY_TOGGLE_BACKGROUND CTRL(GDK_KP_Delete)
// #define TOGGLE_BG_ORDER "Image", "Transparent", "No background", "Opacity"
// #define LABEL_DEFAULT_ENCODING "_Default Encoding"
// #define LABEL_DIALOG_BACKGROUND_TINT "_Background tint color"
// #define LABEL_DIALOG_CLOSE "Do you really want to close it?"
// #define LABEL_DIALOG_SEARCH "Find"
// #define LABEL_MENU_SATURATION "_Adjust saturation"
// #define LABEL_MENU_TOGGLE_ANTI_ALIAS "_Toggle anti-alias"
// #define LABEL_MENU_TOGGLE_BG "_Toggle background"
// #define LABEL_MENU_TOGGLE_DECORATED "_Toggle window decorated"
// #define LABEL_MENU_TOGGLE_FULLSCREEN "_Toggle fullscreen"
// #define LABEL_MENU_TOGGLE_HOTKEYS "_Toggle hotkeys locking"
// #define LABEL_MENU_TOGGLE_ON_TOP "_Toggle always on top"
// #define LABEL_MENU_TOGGLE_SCROLLBAR "_Toggle scrollbar"
// #define LABEL_MENU_TOGGLE_STATUS_BAR "_Toggle status bar"
// #define LABEL_MENU_TOGGLE_TABBAR "_Toggle tabbar"
// #define LABEL_SUBMENU_ENCODING "_Character Encoding"
// #define LABEL_SUBMENU_IME "_Input Methods"
// #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; }"
I've got TABBAR_AUTOHIDE
set to TRUE
, and when I close the last tab but one, the window gets automatically resized to its default size.
Steps to reproduce:
I think this is a bad behavior
This is a feature request.
Emacs has Ctrl+v
Alt-v
Vim has Ctrl+f
Ctrl+b
to scroll up/down one screen.
GET_CURRENT_TAB(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook)));
gtk_test_widget_click(term->vte, 4, 0);
only scroll about 7 lines.
How to scroll faster in evilvte?
Everything is put in abysmall font size whenever I try to zoom.
Shows up regardless of how I zoom.
Can not compile latest evilvte.
include/libpng14 -I/usr/include/libpng16 -I/usr/include/harfbuzz -c -o src/evilvte.o src/evilvte.c
src/evilvte.c: In function 'add_tab':
src/evilvte.c:2045:5: warning: 'vte_terminal_fork_command' is deprecated (declared at /usr/include/vte-0.0/vte/vtedeprecated.h:82) [-Wdeprecated-declarations]
cc -lpthread src/evilvte.o -L/usr/local/lib -lglib-2.0 -lgobject-2.0 -lgdk-x11-2.0 -lgtk-x11-2.0 -lvte -o src/evilvte
/System/Libraries/libgio-2.0.so.0: undefined reference to `g_variant_new_take_string'
collect2: ld returned 1 exit status
make: *** [evilvte] Error 1
I have enabled the option WINDOW_TITLE_DYNAMIC, bash is able to set the title, however, vim is still not able to set the title.
I have given my tabs simple numbers and turned on TAB_DYNAMIC_TITLE.
When moving or at least on closing tabs it would be nice to have the title (here just the number) updated.
Example: You open evilvte and open two more tabs, so the titles are
[1][2][3]
Then you close the second tab. The current behavior is that the titles are
[1][3]
If you open up another, you then have
[1][3][3]
Moving the first tab to the end you'd end up with
[3][3][1]
It would be nice to instead have the title of all potentially changed tabs updated after closing (as well as after moving) a tab, so that the tab numbering stays consistend.
With the previous example, after closing the second tab you'd have
[1][2]
Then adding one:
[1][2][3]
Moving the first tab to the end:
[1][2][3]
If you wish to keep the old behavior, you could perhaps introduce a new macro to allow toggling this behavior.
FWD from: http://evilvte.blogspot.com/2010/05/how-to-report-bug-request-feature-or.html#comment-form
johnlm said...
I'll keep this short:
I'm running evilvte-0.5.0 on Gentoo
December 13, 2011 6:17 AM
Like the title saying,when I launch a new evilvte window,often the prompt is invisible,but it's actually there,after I press Enter it becomes visible.
I compile with default config.h,both in version 0.5.0 and 0.5.1 pre3 from github,the problem still there.And this is my showvte output:
Configuration of evilvte 0.5.0:
Hi! It seems gtk_init modifies content of argv when it detects --name/--class arguments and default_argv looses "-e" option parameters.
The following code (I'm not a C-expert, sorry) fixes this problem:
int gtk_argc = argc;
char **gtk_argv = (char**)malloc(argc * sizeof(char*));
int ii = 0;
for (ii = 0; ii < argc; ii++)
gtk_argv[ii] = argv[ii];
gtk_init(>k_argc, >k_argv);
free(gtk_argv);
It would be very nice to be able to define an alternative control sequence for Ctrl-backspace (as urxvt does). I'm not sure if it's a limitation of vte or not.
In vte version 0.38 the API was changed to version 2.91, changing or removing some of the functions used by evilvte, causing compilation or execution to fail after upgrade.
(From: http://evilvte.blogspot.tw/2012/07/evilvte-052pre1-released.html)
Anonymous wrote:
what about custom colorscheme?
~/.Xresources for example?
Can we have a server-client model?
Is there any option to set TERM environment variable? What should be best value to set if I want 256 color enabled? 'vte-256color' or 'xterm-256color' or any other values?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.