aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fixing the nasty selection bug. Thanks p37sitdu@lavabit.com!Christoph Lohmann2012-12-101-14/+17
|
* Applying the patch of mar771 right.Christoph Lohmann2012-12-101-4/+4
|
* Applying the change of the Del key assingment. Thanks Martti Kühne!Christoph Lohmann2012-12-091-2/+2
|
* Add support for End keyRoberto E. Vargas Caballero2012-11-252-2/+10
| | | | | | | | | | | | | - Shift + End : Delete until end of line. - Control + End : Delete until end of screen. When the End key is pressed without any modifier is not generated the correct sequence for it (going to the end of the screen), because the size of the terminal is not known, so it is not possible write a sequence for this purpouse. --- config.def.h | 10 ++++++++-- st.info | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-)
* Add support for Supr keyRoberto E. Vargas Caballero2012-11-252-4/+14
| | | | | | | | | Del : Delete character under cursor. Shift + Del : Delete the line under cursor. Ctrl + Del: Delete the full screen. --- config.def.h | 16 ++++++++++++---- st.info | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-)
* Add support for insert keyRoberto E. Vargas Caballero2012-11-252-4/+15
| | | | | | | | | | | | | | | Insert key stands for a key which allows enter or leaves insert mode, so let it generates the correct sequence to change between these modes: - Insert: Enter in insert mode. - Shift + Insert: Leave insert mode (replace mode). - Control + Insert: Insert a blank line. Like Shift + Insert also paste text, if a user want this feature be full functional he has to modify such shortcut. --- config.def.h | 16 ++++++++++++---- st.info | 3 +++ 2 files changed, 15 insertions(+), 4 deletions(-)
* Fix value of ka1 terminfo capabilityRoberto E. Vargas Caballero2012-11-251-1/+1
| | | | | | | ka1 stands for upper left of keypad, so the correct value is the one generated by Home in application keypad mode. --- st.info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* Add a notice in the config.def.h file how to obtain the syntax forChristoph Lohmann2012-11-251-1/+5
| | | xft/fontcache.
* The style inquisition was here.Christoph Lohmann2012-11-251-2/+2
|
* Add key for toogling numlock handlingRoberto E. Vargas Caballero2012-11-252-18/+33
| | | | | | | | | | | | Keypad will generate keycodes when keypad application mode is enabled. It can cause problems with some programs like vi, which operates in such mode. This patch change by default don't generate the keycodes never, but this behaviour can be changed using the combination Alt + NumLock. --- config.def.h | 34 ++++++++++++++++++---------------- st.c | 17 +++++++++++++++-- 2 files changed, 33 insertions(+), 18 deletions(-)
* Fixing the calculation of the base tty pixel size.Christoph Lohmann2012-11-211-8/+8
|
* Restoring the Alt + Backspace functionality. Thanks Brandon Invergo!Christoph Lohmann2012-11-191-1/+1
|
* Add application cursor sequences for HomeRoberto E. Vargas Caballero2012-11-161-3/+4
| | | | | | | | | | | | | | | | | | | | The commit 'Fixing some key issues with mc' fix the problem where mc didn't recognize home key because the generated code and the terminfo entry were different (terminfo khome = \E[1~ but generates \033[H). Home key in ansi mode should generate the sequence CUP (\033[H) to 0,0 (home position), but it is also interesting generate a application code which identifies the key. Real vt520 only generates the ansi sequence CUP, linux console generates only the application code \033[1~, xterm generates CUP in ansi mode and \033OH in cursor application mode, rxvt only generates the application code \033[7~. This patch sets CUP in ansi mode and \033[1~ in cursor application mode, so it can be used in both modes and the application mode value is similar to near values (insert = \033[2~, Prior = \033[5~, Next = \033[6~, End = \033[4~, Supr = \033[3). --- config.def.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
* Fixing some key issues with mc. Thanks nsz!Christoph Lohmann2012-11-161-0/+1
|
* Getbuttoninfo is always used the same and just a helper function. Shrinking itChristoph Lohmann2012-11-151-8/+5
| | | a bit. Thanks nsz!
* Fix speech error in commentRoberto E. Vargas Caballero2012-11-151-1/+1
| | | | | --- st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* Remove unused fields in cursor_movementRoberto E. Vargas Caballero2012-11-151-4/+0
| | | | | --- st.c | 4 ---- 1 file changed, 4 deletions(-)
* Removing my debug fprintf().Christoph Lohmann2012-11-151-4/+1
|
* Optimizing the key lookup to the X11 function key. It is still possible toChristoph Lohmann2012-11-152-0/+20
| | | remap other keys.
* Making all function keys accessible.Christoph Lohmann2012-11-151-12/+12
|
* Adding support for XK_F35.Christoph Lohmann2012-11-151-10/+33
|
* Fix Shift + Insert shortcutRoberto E. Vargas Caballero2012-11-151-15/+20
| | | | | | | This patch apply the same code for shortcuts that it is used now for defined keys. So it is possible use now XK_NO_MOD and XK_ANY_MOD for defining shortcuts. --- st.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-)
* Changing the TODO to the current state.Christoph Lohmann2012-11-151-2/+7
|
* Fixing the return and keypad enter sent characters. Terminals produce \r. AndChristoph Lohmann2012-11-152-6/+10
| | | some minor style changes.
* Import the patch of Eckehard Berns to add insert mode. Thanks!Christoph Lohmann2012-11-152-0/+6
|
* The crlf mode was reversed.Christoph Lohmann2012-11-151-4/+4
|
* Fixing Return in non-crlf mode.Christoph Lohmann2012-11-151-2/+2
|
* Use XK_ANY_MOD instead of XK_NO_MOD in key definitionRoberto E. Vargas Caballero2012-11-151-55/+59
| | | | | | | | | | Usually terminal emulators don't generate any sequence for a combination they don't have registered, for example Shift + Next, but st behavior previous to the keyboard patch generates the sequence without the modifier, in this example Next. This patch uses the XK_ANY_MOD in order to get this same behaviour. --- config.def.h | 114 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 59 insertions(+), 55 deletions(-)
* Fix XK_NO_MOD and XK_ANY_MOD behaviorRoberto E. Vargas Caballero2012-11-151-5/+7
| | | | | | | | | | | XK_NO_MOD match a key without modifiers and XK_ANY_MOD match a key does not matter what modifiers are pressed to. Like they are mask the best value for XK_ANY_MOD is all the bits to 1, so the and with any state will be equal to the state. This also imply that is necessary check the case for XK_NO_MOD (no modifiers at all) with some modifier in state, and the inverse (some mask different to XK_ANY_MOD or XK_NO_MOD and no modifiers in state). --- st.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
* Fix tab keyRoberto E. Vargas Caballero2012-11-142-2/+2
| | | | | | | | | | | When Shift + Tab is pressed X server send the event XK_ISO_Left_Tab with ShiftMask, so this is the entry we need in config.def.h This patch also revert the previous patch for this issue because it breaks the keyboard. --- config.def.h | 2 +- st.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
* Fixing the tab key, when no mask is wanted.Christoph Lohmann2012-11-141-1/+6
|
* The style inquisition was here again.Christoph Lohmann2012-11-133-6/+13
|
* Add missed key definitionsRoberto E. Vargas Caballero2012-11-133-9/+169
| | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the keys for the keypad (in both modes, application mode or ansi mode) and function keys. It uses the same convention than xterm and instead of using the XK_Fxx values it generates them using F1-F12 and modifiers. For example: F1 -> ^[OP F1 + Shift = F13 -> ^[[1;2P F1 + Control = F25 -> ^[[1;5P F1 + Mod2 = F37 -> ^[[1;6P F1 + Mod1 = F49 -> ^[[1;3P F1 + Mod3 = F61 -> ^[[1;4P It is also important notice than the terminfo capability kIC (shifted insert key) only can be generated using the keypad keyboard, because the shorcut for selection paste is using the same combination. After this path the number of elements in the Key array becomes high, and maybe a sequencial search is not enough efficient now. --- TODO | 6 +--- config.def.h | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- st.info | 70 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 169 insertions(+), 9 deletions(-)
* Add control and meta combinations for arrow keysRoberto E. Vargas Caballero2012-11-132-8/+16
| | | | | | | | | | | | | | | Since there isn't any terminfo capability for control and meta modifiers for arrows keys it is necessary use the same that almost terminal emulators use, because there are a lot of programs which have these codes hardcoded. This cause also that shift combinations are also changed, but in this case this is not a problem since there are terminfo capabilities for them. After this patch shift-up and shift-down continue not working in emacs with TERM=st, but they work with TERM=xterm, so it is possible some other changes are necessary in the terminfo entry. --- config.def.h | 16 ++++++++++++---- st.info | 8 ++++---- 2 files changed, 16 insertions(+), 8 deletions(-)
* Fix arrow keys terminfo capabilitiesRoberto E. Vargas Caballero2012-11-131-4/+4
| | | | | | | | | | | | | | Usually the arrow keys generate the ANSI sequence which terminal will understand like a movement, so it is not necessary any dealing for them, the program can not know if the sequence is generate for a echo key or directly from the program. If you need really know if the key was pressed then you need activate the keypad mode where the keys will generate a special code for each keypad key. The terminfo capabilities kcub1, kcud1, kcuf1 and kcuu1 are used for this keypad code, not for the sequence generate in the ansi mode. --- st.info | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
* Remove hardcoded keys form kpressRoberto E. Vargas Caballero2012-11-132-62/+79
| | | | | | | | | Some keys were in the Key array while others were hardcoded in kpress().This cause some problems with some keys which can generate more of one string based in the configuration of the terminal. --- config.def.h | 70 ++++++++++++++++++++++++++++++++++++++++----------------- st.c | 71 +++++++++++++++++++++++++--------------------------------- 2 files changed, 79 insertions(+), 62 deletions(-)
* Move Shift + Insert to shortcutRoberto E. Vargas Caballero2012-11-132-10/+4
| | | | | | | | Shift + Insert is used like a hot key for paste the selection, so it is more logical move it to shortcut array instead of having special code for it. --- config.def.h | 1 + st.c | 13 +++---------- 2 files changed, 4 insertions(+), 10 deletions(-)
* Fix keypad mode and cursor modeRoberto E. Vargas Caballero2012-11-132-4/+5
| | | | | | | | | | | | Keypad mode is used for detecting when keys in the auxiliary keypad are pressed, while cursor mode is used for detecting when a cursor is pressed, but they are different modes. St was mixing both modes and DECPAM and DECPNM modified the cursor mode, and this was incorrect. --- st.c | 5 +++-- st.info | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-)
* Add SRM sequenceRoberto E. Vargas Caballero2012-11-131-20/+56
| | | | | | This sequence enable/disable the local echo. --- st.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 20 deletions(-)
* Gc is not used anymore.Christoph Lohmann2012-11-111-3/+0
|
* Removing some xft naming cruft.Christoph Lohmann2012-11-111-39/+43
|
* Moving the alt declaration to the beginning of the function.Christoph Lohmann2012-11-081-1/+2
|
* Move unsupported sequences to ignored.Roberto E. Vargas Caballero2012-11-081-7/+7
| | | | | | | These sequences will be never implemented and in this moment they are generating a lot of noise. --- st.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
* Ignore DECARM sequenceRoberto E. Vargas Caballero2012-11-081-2/+1
| | | | | | | DECARM modify the auto repeat settings in the keyboard, and since we can not modify this setting in the Xserver the best solution is only ignore it. --- st.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
* Fix VPR sequenceRoberto E. Vargas Caballero2012-11-081-2/+2
| | | | | | | VPR stands for Move cursor down a number of rows, and the code was moving the cursor up instead of moving it down. --- st.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
* Add DECOM sequenceRoberto E. Vargas Caballero2012-11-081-7/+26
| | | | | | | | | DECOM sequence allows to the user defines a new home position. The home position is used as base for all the movement commands except HVP and VPA. It is important notice than DECSLM moves cursor to absolute position 0,0. --- st.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-)
* Save cursor position in terminal resetRoberto E. Vargas Caballero2012-11-081-0/+2
| | | | | | | After terminal reset saved terminal position is reset to 0, allowing know where cursor will go in next restore cursor operation. --- st.c | 2 ++ 1 file changed, 2 insertions(+)
* Clarify some or exclusive expressionsRoberto E. Vargas Caballero2012-11-081-7/+7
| | | | | | | Since relational expresions are always evaluated to 0 or 1, we can use bitwise xor operator instead of using more complex boolean expressions. --- st.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
* Fix bug restoring cursor positionRoberto E. Vargas Caballero2012-11-081-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Sequences like DECSC, DECRC, ESC [?1047l or ESC [?1047h save and restore cursor attributes, than taken from vt100 manual are: Save Cursor (DECSC) ESC 7 =========================== Saves the following in terminal memory. - cursor position - graphic rendition - character set shift state - state of wrap flag - state of origin mode Restore Cursor (DECRC) ESC 8 =========================== Restores the states described for (DECSC) above. If none of these characteristics were saved, the cursor moves to home position; origin mode is reset; no character attributes are assigned; and the default character set mapping is established. This implies that hide attribute of the cursor should not be saved/restored in these sequences. The best way to fix this problem is moving hide attribute into the terminal mode, instead of having it in the cursor state. --- st.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
* Adding scrollwheel support. Thanks Brandon Invergo!Christoph Lohmann2012-11-061-7/+12
|
remember that computers suck.