Ticket #4479 (closed defect: fixed)

Opened 2 years ago

Last modified 15 months ago

video & images at cli (not in an X terminal)

Reported by: glennmcc Owned by: zaytsev
Priority: minor Milestone: 4.8.33
Component: mc-core Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: merged Votes for changeset: committed-master

Description

pressing 'enter' on a video or image file does not play or view the file when outside of X but rather at a cli

In the older versions of mc (circa 2010 and before) it worked just fine.

In the newer versions of mc it only works when inside of X running mc within a terminal window.

My currently installed version is 4.8.29

Attachments

0001-Ticket-4479-prioritize-console-players-for-audio-vid.patch (2.8 KB) - added by zaytsev 16 months ago.
sound.sh (2.2 KB) - added by glennmcc 16 months ago.
image.sh (1.6 KB) - added by glennmcc 16 months ago.
video.sh (1.3 KB) - added by glennmcc 16 months ago.

Change History

comment:1 Changed 16 months ago by glennmcc

Both of these now work perfectly both at the cli and inside of X

comment:2 Changed 16 months ago by glennmcc

Same problem was happening with sound.sh

xdg-open works OK inside of X but not at the cli outside of X

At the cli, xdg-open is treating the file linked to within mc
just as-if it were a URL and hence sends it to the links or lynx web browser.

comment:3 Changed 16 months ago by andrew_b

9	if [ -n "$DISPLAY" ]; then
10	([ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open")
11	fi

Code in the parenthesis is run in the child shell and has no effect in the current one.

$ A=aaa
$ echo $A
aaa
$ (A=bbb)
$ echo $A
aaa
$ A=bbb 
$ echo $A
bbb

comment:4 Changed 16 months ago by glennmcc

Unless that code is either commented-out all together
or simply only run when inside of X
the result is as I said... the file is sent to links or lynx
instead of to mplayer, or fim

xdg-open simply does not work correctly when running mc completely outside of X

It does work fine running mc in a terminal window _inside_ of X

So, do I simply need to remove the parenthesis from that line ?

Last edited 16 months ago by glennmcc (previous) (diff)

comment:5 Changed 16 months ago by glennmcc

Yep, that fixed it.

With the parenthesis inside of X mplayer was being used even though
xine was set as the default app for mp4 files.

Removed the parenthesis and now xine is used.

And since xdg-open is not coming into play at the cli outside of X
everything works as it should and images, videos and sound files
all get opened with the correct programs and are no-longer getting sent to links or lynx.

Last edited 16 months ago by glennmcc (previous) (diff)

comment:6 follow-up: ↓ 7 Changed 16 months ago by zaytsev

Reporter: can you test? Andrew: OK?

comment:7 in reply to: ↑ 6 Changed 16 months ago by glennmcc

Replying to zaytsev:

Reporter: can you test? Andrew: OK?

Line #9 does not work but rather results only in...

/usr/libexec/mc/ext.d/image.sh: line 9: [: -n: binary operator expected

My original lines 9, 10 & 11 work correctly after removing the parenthesis.

In addition, the " && sleep 10" is needed otherwise the message will not be seen until mc is exited.

echo "Please install either fim or fbi to view this file" && sleep 10

Version 3, edited 16 months ago by glennmcc (previous) (next) (diff)

Changed 16 months ago by glennmcc

Changed 16 months ago by glennmcc

Changed 16 months ago by glennmcc

comment:8 Changed 16 months ago by glennmcc

All 3 scripts without parenthesis have been working perfectly for me for a week so have now been re-uploaded to here.

comment:9 Changed 15 months ago by zaytsev

  • Priority changed from major to minor
  • Status changed from new to accepted
  • Branch state changed from no branch to on review
  • Owner set to zaytsev
  • Milestone changed from Future Releases to 4.8.33

Branch: 4479_console_players
Initial changeset:572312bd882581fcc49b2d8e070a7f4e4179b34e

  • Added the blocks to suppress the use of xdg-open to image, audio and video scripts.
  • Added console image viewers.
  • Removed error messages with sleep.

comment:10 Changed 15 months ago by andrew_b

Why not use built-in command which is POSIX compatible:
How can I check if a program exists from a Bash script?

comment:11 Changed 15 months ago by zaytsev

Well, I didn't know about it. Thank you for the pointer, looks like a good idea. I have just replaced all occurrences that I could find.

comment:12 Changed 15 months ago by andrew_b

  • Votes for changeset set to andrew_b
  • Branch state changed from on review to approved

comment:13 Changed 15 months ago by zaytsev

  • Status changed from accepted to testing
  • Votes for changeset changed from andrew_b to committed-master
  • Resolution set to fixed
  • Branch state changed from approved to merged

comment:14 Changed 15 months ago by zaytsev

  • Status changed from testing to closed
Note: See TracTickets for help on using tickets.