Wine에서 실행되는 Window 프로그램의 창은 기본적으로 앞에 있지 않습니다.

Wine에서 실행되는 Window 프로그램의 창은 기본적으로 앞에 있지 않습니다.

나는 종종 터미널에서 파일을 열기 위해 프로그램을 실행하는데, 프로그램 창을 클릭한 다음 프로그램을 닫아서 프로그램을 닫지 않고 프로그램에서 파일을 빠르게 보고 싶습니다. Ctrl이를 F4위해서는 프로그램 창이 앞에 있어야 합니다. 즉, 기본적으로 초점이 맞춰져 있습니다.

  • 프로그램이 기본 Linux 프로그램인 경우 기본적으로 프로그램 창은 항상 앞에, 즉 초점이 맞춰져 있으므로 Ctrl- 를 통해 프로그램을 닫을 수 있습니다 F4.

  • 프로그램이 Wine에서 실행되는 Windows 프로그램인 경우 프로그램의 창이 앞에 있지 않습니다. 즉, 기본적으로 초점이 맞지 않습니다. 맨 앞의 프로그램은 이를 실행하는 터미널입니다. 나는 종종 이것을 잊어버리고 실수로 Ctrl프로그램 대신 터미널을 닫습니다 F4. 터미널을 닫으면 프로그램도 닫히는데 효과는 생각보다 컸습니다.

제 질문은: Windows 프로그램이 기본적으로 앞에서 실행되도록 하려면 어떻게 해야 합니까?

노트:

  1. Windows 프로그램으로 PDF 파일을 열어 위의 내용을 테스트할 수 있습니다.PDFXCview.exeWine 2.0.1에서 기본 Linux 프로그램 evince를 사용합니다. Ubuntu 16.04에서 실행하고 있습니다.

  2. Windows 프로그램을 실행하고 터미널의 wine 아래에 있는 파일을 엽니다.

    wine /home/tim/path/to/PDFXCview.exe myfile.pdf
    

    그리고 프로그램 창은 기본적으로 앞쪽에 있지 않습니다.

    이상한 점은 파일을 열지 않고 프로그램을 실행하면

    wine /home/tim/path/to/PDFXCview.exe 
    

    기본적으로 프로그램 창은 앞에 있습니다.

  3. 관련성이 있을 수도 있고 없을 수도 있는 한 가지는 다음을 추가하여 LXDE의 파일 관리자 PcManFM에서 PDF 파일을 열도록 PDFXCview.exe를 설정했다는 것입니다 ~/.local/share/applications/mimeinfo.cache.

    application/pdf=wine-extension-pdf.desktop;userapp-PDFXCview.exe-NHNW1Y.desktop;
    

    파일 내용은 ~/.local/share/applications/userapp-PDFXCview.exe-NHNW1Y.desktop 어디에 있나요?

    [Desktop Entry]
    Type=Application
    Name=PDFXCview.exe
    Exec=wine /home/tim/path/to/PDFXCview.exe %U
    Categories=Other;
    NoDisplay=true
    MimeType=application/pdf
    Terminal=false
    

    데스크탑 환경에서 프로그램을 실행하기 위한 설정이고 제 질문은 터미널에서 프로그램을 실행하는 것에 관한 것이므로 관련이 없을 수도 있습니다.

    PcManFM의 와인에서 PDFXCview.exe를 사용하여 PDF 파일을 열 때 PcManFM에서 파일을 두 번 클릭하면 PDFXCview.exe 창이 앞쪽에 나타나지 않습니다. 바라보다https://askubuntu.com/q/925540/1471

감사해요.

답변1

먼저 전경 창과 키보드 포커스가 있는 창은 동일하지 않습니다. Mircosoft의 Windows 및 많은 창 관리자와 함께 작동하지만 반드시 그런 것은 아닙니다. 예를 들어, KDE는 이 두 속성을 독립적으로 관리할 수 있습니다.

이제 귀하의 질문에 관해서는 위에서 요청한 것처럼 창 관리자에 따라 다릅니다. Kde에는 키보드 초점을 제어할 수 있는 설정이 있으며, 응용 프로그램에 따라 달라지는 설정도 있습니다(그러나 여전히 창 관리자의 일부입니다).여기에 이미지 설명을 입력하세요.위 이미지는 반대 작업을 수행하는 방법을 보여줍니다(요청한 작업을 수행하려면 포커스 허용을 "예"로 설정). 애플리케이션에 대해 구성을 테스트했습니다.


창 관리자, 실행기 등의 역할을 혼동하지 마십시오. KDE, Gnome, LXDE 등은 모두 이러한 기능을 구현할 수 있습니다. 창 관리자는 어느 창이 어디로 이동하는지, 크기, 최소화 여부, 어느 창이 어느 창 뒤에 있는지, 어느 창에 키보드 포커스가 있는지 관리합니다. 응용 프로그램도 이를 제어할 수 있고 다른 응용 프로그램도 제어할 수 있지만 궁극적으로 창 관리자로 등록된 프로세스가 책임을 집니다. 이는 다른 프로세스가 이러한 작업을 수행하는 것을 방지하고 창이 매핑된 위치와 처음 매핑되었을 때 키보드 포커스를 얻을지 여부를 결정합니다. 창 관리자에서 유일하게 볼 수 있는 부분은 다른 모든 창의 제목 표시줄(+ 닫기, 최대화, 최소화 등의 아이콘)입니다.

답변2

새로 출시된 프로그램에 초점을 맞추는 데 사용할 수 있습니다 xdotool.

파일이 열리자마자 PDF 뷰어에 초점이 맞춰지도록 다음 짧은 스크립트를 사용하여 PDF를 엽니다(여러 파일이 동시에 열려 있는 경우에도 작동함).

#!/bin/bash

# Filename expected by wine ("z:" being "/", the linux root directory)
Filename="z:${1//\//\\}"

# Start PDF-XChange Viewer, open the PDF file(s) in it, and continue with the script
WINEPREFIX=~/.wine/pdfxchange/ wine ~/.wine/pdfxchange/drive_c/Program\ Files/Tracker\ Software/PDF\ Viewer/PDFXCview.exe "$Filename" "$@" &

# Wait until the viewer has started so that xdotool can identify the window
while [ -z "$WID" ]; do WID=$(xdotool search --name "PDF-XChange Viewer"); sleep 0.1; done

# Wait until the viewer is really open and ready for input
sleep 0.5

# Activate the PDF-XChange Viewer window
xdotool windowactivate "$WID"

exit 0

물론, 와인 파일 위치를 조정해야 합니다.

관련 정보