set CapsLock as Esc, and Ctrl when pressed in combination

Solution 1:

You could try the combination of setxkbmap and xcape. After installing the packages, type the following in a terminal:

setxkbmap -option ctrl:nocaps
xcape -e 'Control_L=Escape' -t 175

Caps lock will now act as Escape when pressed and Ctrl when held.