kakounedotcom / connect.kak

Connect a program to Kakoune clients
https://kakoune.org
The Unlicense
88 stars 18 forks source link

kak-desktop: Is this the only way to check if we are inside a terminal? #21

Closed useredsa closed 4 years ago

useredsa commented 4 years ago

After I suggested (I apologize for caussing this issue) kak-desktop should open the file passed in the terminal if it is run from there, the following lines where added to kak-desktop:

elif test -t 1; then
  kak "$@"

I wonder if there's a better way to check if kak-desktop is being run inside a terminal than to check the output file descriptor. The reason is, if I spawn dolphin using sxhkd its output is linked to tty1, which also happens to the spawned kak-desktop process when I try to open a file. As a result, the file is not opened in a new terminal emulator. I know this can be fixed starting dolphin as dolphin >/dev/null, but perhaps there's a different way to check whether the process indeed has access to a virtual terminal displayed to the user.

alexherbo2 commented 4 years ago

I’m not sure if there is another way. If you find a better handling, I will happily merge.

useredsa commented 4 years ago

I’m not sure if there is another way. If you find a better handling, I will happily merge.

I only know that STDIN is not matched to a terminal in my particular case, so checking with test -t 0 would suffice. Instead of replacing a test with the other one, I suggest including both, which, even though it doesn't quite solve the problem, I believe will be more robust. What do you think?