Как я обнаруживаю и уничтожаю совместные действия, если моя игра загружается?

Таким образом, я просто ударил зад в нескольких играх Сражения. Сеть (конкретно StarCraft), потому что это ненавидит совместные действия. Причины, почему очевидны, так как это действительно мышь интенсивная игра, которая берет под свой контроль все, когда Вы разжигаете его. У меня есть псевдонимы для запуска и остановки совместных действий, но проблема - то, что я продолжаю забывать использовать их, прежде чем я запущу игру, и после этого я уже фиксируюсь. Это ДЕЙСТВИТЕЛЬНО действует на мои нервы.

Игра установлена с помощью PlayOnLinux. Какой сценарий я редактирую для вставки чего-то, что уничтожит совместные действия? PlayOnLinux имеет стандартное расположение для помещения пользовательских сценариев или является там некоторыми стандартизированными средствами для того, чтобы сделать этот вид вещи?

Новая информация - Найденный этим:

/usr/share/playonlinux/playonlinux --run "Battle.Net" %F

Это подходит или является там лучшим местом?

0
задан 8 April 2017 в 16:54

1 ответ

Вместо того, чтобы редактировать чей-либо сценарий, я записал обертку. Этот сценарий обрабатывает pulseaudio и совместные действия вполне хорошо, но сама команда playonlinux является проблемой, потому что это возвращается, и я должен придумать способ заставить мой сценарий ожидать..., или возможно я не делаю. Я мог записать это для опроса относительно игры, чтобы видеть, работает ли это.

... Хорошо, я переписал его для включения цикла опроса. У меня есть одно последнее беспокойство, и это - то, если оно не работает от ярлыка.

... Хорошо была проблема с выполнением от ярлыка, но добавлением '&'; в конце playonlinux команда, кажется, обратилась к нему.

#!/bin/bash

#The idea is to use this script to replace the command in the shortcut.
#
# Architectural & contextual notes: This is a desktop ( my wargamer's box called
# Warmachine ) which has a synergy server running on it and also a laptop that
# runs a synergy client. Synergy & pulseaudio must die in order for the game to
# play correctly. Synergy must die on both machines but pulseaudio is an issue
# local to the desktop. The Synergy client running remotely must die because it
# freaks out when it can't find the server. The most annoying effect of this is
# a shrieking laptop fan while you are trying to conentrate when it isn't even
# supposed to be doing anything. I have aliases for all these functions and I'm
# really just putting them into a wrapper script form because I keep forgetting
# to use them.
#
# In order for the sudo commands to work in a non-interactive fashion
# i.e., without a password, you need the following entry in your sudoers file:
# [username goes here] ALL=(root) NOPASSWD: /usr/sbin/service avahi-daemon restart, /usr/bin/killall synergys
# ...and this one on the laptop:
# [username goes here] ALL=(root) NOPASSWD: /usr/bin/killall synergyc, /home/jim/scripts/restartSynergy.sh
# I use a special script to restart synergy on the laptop as it includes a
# screen resizing background process that fixes the synergy screen size
# when it swtches from the laptops display to the 42" TV I use for a regular
# game display.

#kpa - Kill Pulse Audio alias
#We are killing pulseaudio because WINE hates it.

echo "autospawn = no" > ~/.config/pulse/client.conf &
pulseaudio --kill

#Now we need to kill our synergy server and also stop the client in my laptop.

ssh -t -t bl sudo /usr/bin/killall synergyc &
sudo /usr/bin/killall synergys

sleep 1

# This is the command to start the game. This is what the script is wrapping.
# Unfortunately this command returns as soon as it is called regardless, so I
# need to come up with something to deal with that. Perhaps a polling system?
# The apparently extraneous '&' below fixes an issue.
/usr/share/playonlinux/playonlinux --run "Battle.Net" %F &

sleep 1

#This is our polling loop.
EXIT=0
while [ ${EXIT} -eq 0 ]; do
  sleep 5

  ps aux | grep -v grep | grep Battle\.Net
  EXIT=$?
  if [[ ${EXIT} != 0 ]]; then

    #spa - Start Pulse Audio alias
    rm -f ~/.config/pulse/client.conf
    pulseaudio --start

    # Reload the audio devices in the GUI
    sudo /usr/sbin/service avahi-daemon restart &

    /usr/bin/synergys -a 127.0.0.1 -c /etc/synergy.conf
    sleep 1
    #Restart synergy client on laptop.
    ssh -t -t bl /home/jim/scripts/restartSynergy.sh

  fi

done
0
ответ дан 3 November 2019 в 12:03

Другие вопросы по тегам:

Похожие вопросы: