My fork of the Suckless Simple Terminal (st).
Go to file
Avi Halachmi (:avih) 28ad288399 mouseshortcuts: fix custom modifier on release
This line didn't work at mshortcuts at config.h:

  /*  mask       button   function  arg       release */
    { ShiftMask, Button2, selpaste, {.i = 0}, 1 },

and now it does work.

The issue was that XButtonEvent.state is "the logical state ... just prior
to the event", which means that on release the state has the Button2Mask
bit set because button2 was down just before it was released.

The issue didn't manifest with the default shift + middle-click on release
(to override mouse mode) because its specified modifier is XK_ANY_MOD, at
which case match(...) ignores any specific bits and simply returns true.

The issue also doesn't manifest on press, because prior to the event
Button<N> was not down and its mask bit is not set.

Fix by filtering out the mask of the button which we're currently matching.

We could have said "well, that's how button events behave, you should
use ShiftMask|Button2Mask for release", but this both not obvious to
figure out, and specifically here always filtering does not prevent
configuring any useful modifiers combination. So it's a win-win.
2020-04-02 14:41:03 +02:00
FAQ update FAQ 2019-11-17 20:04:52 +01:00
LEGACY LEGACY: typo. 2012-09-18 19:08:03 +02:00
LICENSE LICENSE: fix a few years 2018-03-14 20:08:00 +01:00
Makefile Makefile: fix dependencies on config.h 2019-01-04 12:33:01 +01:00
README tic -s -> tic -sx (Treat unknown capabilities as user-defined.) 2016-11-14 19:05:47 +01:00
TODO Remove old TODO entry. 2015-04-13 17:06:11 +02:00
arg.h don't modify argv, use a counter 2018-03-20 21:22:27 +01:00
config.def.h mouse shortcuts: don't hardcode selpaste 2019-10-13 21:46:31 +02:00
config.mk bump version to 0.8.2 2019-02-09 12:48:39 +01:00
st.1 Remove the ISO 14755 feature 2018-09-11 19:05:55 +02:00
st.c OSC 52 - copy to clipboard: don't limit to 382 bytes 2019-11-10 22:45:54 +01:00
st.h mouse shortcuts: allow same functions as kb shortcuts 2019-10-13 21:46:31 +02:00
st.info Fix tmux terminfo extensions Se and Ss 2019-11-05 19:51:35 +01:00
win.h better Input Method Editor (IME) support 2019-02-12 18:45:15 +01:00
x.c mouseshortcuts: fix custom modifier on release 2020-04-02 14:41:03 +02:00

README

st - simple terminal
--------------------
st is a simple terminal emulator for X which sucks less.


Requirements
------------
In order to build st you need the Xlib header files.


Installation
------------
Edit config.mk to match your local setup (st is installed into
the /usr/local namespace by default).

Afterwards enter the following command to build and install st (if
necessary as root):

    make clean install


Running st
----------
If you did not install st with make clean install, you must compile
the st terminfo entry with the following command:

    tic -sx st.info

See the man page for additional details.

Credits
-------
Based on Aurélien APTEL <aurelien dot aptel at gmail dot com> bt source code.