contour-terminal / contour

Modern C++ Terminal Emulator
http://contour-terminal.org/
Apache License 2.0
2.32k stars 102 forks source link

Copy selected text in terminal using CMD+c on macOS doesn't work #1379

Closed erf closed 6 months ago

erf commented 6 months ago

Abstract

Copy selected text in terminal using CMD+c on macOS doesn't work. This is possible on other popular macOS terminals.

Motivation

Specification

christianparpart commented 6 months ago

@erf Did you build from source? If so, would you mind trying out the linked PR branch? Keep in mind, that the Command key is called Meta (to be somewhat more unified with other platforms, such as Windows and Linux).

Should we add Command as modifier name as well, to make it feel more MacOS-alike?

erf commented 6 months ago

Previously i installed via homebrew, but i managed to install it from source now (adding lots of deps to homebrew..).

Control-c now works to copy, but on macOS Command-c is the default key so should use that for macOS.

BTW when i'm typing after building from source, input is all CAP's.

christianparpart commented 6 months ago

Merry Christmas, @erf 🎄

BTW when i'm typing after building from source, input is all CAP's

Please, I do not understand this sentence. What did you mean by that?

EDIT: Okay, now I understand. I fixed that.

I've also merged #1382 to master now. This at least fixed Command + C/V for me. I'd love you to confirm that.

input_mappings:
    # ...
    - { mods: [Command],        key: C,             action: CopySelection, mode: 'Select' }
    - { mods: [Command],        key: C,             action: CancelSelection, mode: 'Select|Insert' }
    - { mods: [Command],        key: V,             action: PasteClipboard }
    # ...
erf commented 6 months ago

Merry Christmas 🎅

I got the latest from master and tried to build now but when i do:

cmake --build build/

I get the error:

ld: can't write output file: src/contour/contour.app/Contents/MacOS/contour

Which is maybe not the correct output path?

christianparpart commented 6 months ago

Sorry @erf for replying late. Did you fix it by now? Maybe you cannot write that file when it is currently being executed. Otherwise I would probably fully remove the build dir and recompile freshly. 🤔

erf commented 6 months ago

I got it building after deleting the build folder, but I still have to press Control-c to copy. Command-c does not work.

BTW when i build i get a bunch of these QT errors ( i still seem to build though):

ERROR: Cannot resolve rpath "@rpath/QtCore.framework/Versions/A/QtCore"
ERROR:  using QList("/Users/erlend/projects/contour/build/lib")
ERROR: Cannot resolve rpath "@rpath/QtQml.framework/Versions/A/QtQml"
ERROR:  using QList("/Users/erlend/projects/contour/build/lib")
ERROR: Cannot resolve rpath "@rpath/QtNetwork.framework/Versions/A/QtNetwork"
ERROR:  using QList("/Users/erlend/projects/contour/build/lib")
ERROR: Cannot resolve rpath "@rpath/QtCore.framework/Versions/A/QtCore"
ERROR:  using QList("/Users/erlend/projects/contour/build/lib")
ERROR: Cannot resolve rpath "@rpath/QtVirtualKeyboard.framework/Versions/A/QtVirtualKeyboard"
...
uspasojevic96 commented 6 months ago

Did you update your contour config to use Command instead of Control?

As for the errors, those are runtime... @christianparpart what step is he missing?

erf commented 6 months ago

Oh do i have to update the config manually? I thought it would be the default mapping on macOS

erf commented 6 months ago

After i update the key commands manually it works - i would however prefer is this was the default on macOS.

BTW i noticed the executable is not copied to the Applications folder on install on macOS but rather to:

~ % /usr/local/contour.app/Contents/MacOS/contour

@christianparpart do you have a mac to test on?

uspasojevic96 commented 6 months ago

BTW i noticed the executable is not copied to the Applications folder on install on macOS but rather to:

~ % /usr/local/contour.app/Contents/MacOS/contour

That is correct, you didn't change the install path of cmake

@christianparpart do you have a mac to test on?

He does

erf commented 6 months ago

That is correct, you didn't change the install path of cmake

Is this mentioned anywhere?

uspasojevic96 commented 6 months ago

That is correct, you didn't change the install path of cmake

Is this mentioned anywhere?

https://cmake.org/cmake/help/v3.0/variable/CMAKE_INSTALL_PREFIX.html

It's there by default

christianparpart commented 6 months ago

i would however prefer is this was the default on macOS

This is going to become the default eventually. We're in the middle of reworking configuration loading implementation in #1300. With that, we're then also making sure to provide sane defaults for the platform in question. :)

ERROR: Cannot resolve rpath "@rpath/QtCore.framework/Versions/A/QtCore" ERROR: using QList("/Users/erlend/projects/contour/build/lib")

I am getting these errors too, when I'm building locally. I am really no MacOS pro (even though I'm using one, I'm more the Linux guy). If someone knows how to help out here, I'd be more than happy. (I was just recently fighting Mac + Qt install process until 🥵 💥)

~ % /usr/local/contour.app/Contents/MacOS/contour

You need to set CMAKE_INSTALL_PREFIX to /Applications I think

erf commented 6 months ago

Would it be possible to set CMAKE_INSTALL_PREFIX automatically based on platform as a build step?

christianparpart commented 6 months ago

I think MacOS would be the only one where that could would make sense. We could give that a try ...