M-x doesn't work on Cygwin

1

I'm running Cygwin with rxvt, and I've tried mrxvt under X, as well as the default of bash in CMD. M-x doesn't work whilst other Meta combinations do. xev shows nothing for it (Meta shows, as you would expect from the fact that other combinations work). Rebinding it in .inputrc results in no action being taken. Spy++ shows MOD_ALT'X' being pressed. What else should I look at?

Sam Brightman

Posted 2011-06-19T17:46:21.367

Reputation: 540

I don't see a reason for this question to be downvoted. – bwDraco – 2011-06-19T23:26:44.433

Bizarre. Do I have to literally phrase as a question? – Sam Brightman – 2011-06-20T06:38:00.293

Answers

1

I have Growl 2.0.6 running, and it appears to be capturing M-x. I decided to start killing running applications one by one, and Growl stopping got it working - I don't even need to restart Cygwin/emacs.

See, for example, the comment thread attached to the answer of question 1598854. There is a file in a location such as %LOCALAPPDATA%\Growl\2.0.0.0\user.config which has a setting:

    <setting name="KeyboardShortcutCloseLast" serializeAs="String">
        <value>Alt+X</value>
    </setting>

Once this is moved away from Alt-X (preferrably to something with more than one modifier or very uncommon), everything works as expected. It seems a change was made to the hotkey registration so that Growl can no longer pass the key on, and this hasn't yet been fixed.

Sam Brightman

Posted 2011-06-19T17:46:21.367

Reputation: 540

0

Set the following Windows environmental variable:

CYGWIN=tty

and restart Cygwin.

Mike Fitzpatrick

Posted 2011-06-19T17:46:21.367

Reputation: 15 062

I will try but a) I think it's already set; b) current documentation recommends having it off for "other terminals". More importantly, how does it explain only M-x not working? – Sam Brightman – 2011-06-20T06:37:27.507

I nearly accepted as logging in remotely showed tty not set and when I added it M-x worked. However, logging in again without setting it still worked. I still believe unset is correct for modern Unixy terminals. – Sam Brightman – 2011-06-21T06:00:35.870