Steam

提供: ArchWiki
移動先: 案内検索

Wikipedia より:

Steam は、コンピュータゲームのダウンロード販売、デジタル著作権管理、マルチプレイヤーゲームのサポート、ユーザの交流補助を目的としたプラットフォームである。開発および運営はバルブ・ソフトウェアによって行なわれている。

Steam は Source Engine のゲーム (例: Half-Life 2, Counter-Strike) を遊ぶのに必要なプラットフォームとしてよく知られています。今日では、多くのデベロッパによる多数のゲームが提供されています。

インストール

ノート:
  • 公式では Arch Linux はサポートされていません
  • Steam クライアントは32ビットアプリケーションなので、64ビット環境で動かすには multilib リポジトリを有効にする必要があります。また、重要な multilib ライブラリを取得するために multilib-devel のインストールをしてください。

Steam は公式リポジトリにある steam パッケージからインストールできます。64ビット環境を使っている場合は、最初に multilib リポジトリを有効にしてください。

Steam はこのディストリビューションをサポートしていません。そのため正しく機能させるためにユーザーが以下のようなフィックスを施す必要があります:

  • Steam は主として Arial フォントを使っています。使える Arial フォントには ttf-liberationSteam によって提供されているフォントがあります。アジアの言語を正しく表示するには wqy-zenhei が必要です。
  • 64ビット環境の場合、32ビットのゲームを動かすには32ビットのグラフィックドライバーをインストールする必要があります (Multilib パッケージカラムのパッケージ)。
  • 64ビット環境の場合、32ビットのゲームでサウンドを有効にするために lib32-alsa-plugins をインストールする必要があります。
  • 64ビット環境の場合、最初の起動時のアップデートを有効にするために lib32-curl をインストールする必要があります。
  • ゲームによってはあなたのシステムに欠けている依存関係を持っています。ゲームが起動しない場合 (基本的にエラーメッセージは表示されません) Steam/ゲーム別のトラブルシューティング にリストアップされているライブラリが全てインストールされているか確認してください。

Steam の起動

Big Picture モード (ディスプレイマネージャを使う)

ディスプレイマネージャ (GDM など) から Big Picture モードで Steam を起動するには、steam-session-gitAUR をインストールしてください。このパッケージは xfwm4 から Steam を起動するのに必要なセッションファイルを設定し、終了時には Steam もちゃんとシャットダウンします。xfwm4 から起動することでマウス・キーボード・コントローラーの入力に問題が起こらなくなることもあります。

もしくは、以下の内容で /usr/share/xsessions/steam-big-picture.desktop ファイルを作成して下さい:

/usr/share/xsessions/steam-big-picture.desktop
[Desktop Entry]
Name=Steam Big Picture Mode
Comment=Start Steam in Big Picture Mode
Exec=/usr/bin/steam -bigpicture
TryExec=/usr/bin/steam
Icon=
Type=Application

サイレントモード

起動時に steam のメインウィンドウが表示される場合、起動コマンドに -silent パラメータを追加することでウィンドウを表示させないようにすることができます:

$ steam -silent

もしくは、以下のデスクトップファイルを編集して、パラメータを手動で追加することも可能です:

~/.config/autostart/steam.desktop
[Desktop Entry]
Name=Steam
Comment=Application for managing and playing games on Steam
Exec=/usr/bin/steam -silent %U
Icon=steam
Terminal=false
Type=Application
Categories=Network;FileTransfer;Game;
MimeType=x-scheme-handler/steam;
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
...

ヘッドレスのホームストリーミングサーバー

ヘッドレスのホームストリーミングサーバーを作成したい場合は次のガイドを参照: https://steamcommunity.com/sharedfiles/filedetails/?id=680514371

Tips and tricks

Bumblebee/Primus などのカスタムコマンドでゲームを起動する

幸いにも Steam はカスタムコマンドを使ったゲーム起動のサポートを追加しました。これをするには、ライブラリページから、選択したゲームを右クリックして、プロパティをクリック、そして起動設定をしてください。Steam は %command% タグを実際に実行するコマンドに置き換えます。例えば、Team Fortress 2 を1920x1080の解像度で primusrun を使って起動するには、次のように入力します:

primusrun %command% -w 1920 -h 1080

システムによっては、optirun の方が primusrun よりもパフォーマンスを発揮することがあります。ただし、起動してすぐクラッシュするゲームもあります。この問題は libGL の適切なバージョンをプリロードすることで修正できます。利用可能な実装を確認するには、次のコマンドを使用:

locate libGL

64ビットのゲームの場合、nvidia の64ビット libGL をプリロードすることができます。次の起動コマンドを使用:

LD_PRELOAD=/usr/lib/nvidia/libGL.so optirun %command%

Linux-ck カーネルを動かしている場合、schedtool を使ってゲームを SCHED_ISO (低遅延、CPU 負担を減らす) で起動することで遅延を減らしたりパフォーマンスを向上させたりすることができるかもしれません:

# schedtool -I -e %command% other arguments

ゲームを起動する際にスタンドアロンのコンポジタを終了する

%command% スイッチを利用することで、ゲームや環境によってはラグやティアリングの原因となるスタンドアロンのコンポジタ (XcompmgrCompton) を終了することができ、ゲームを終えた後に再起動できます。ゲームの起動設定に次を加えて下さい。

killall compton && %command%; compton -b &

上のコマンドの compton はあなたが使っているコンポジタに置き換えてください。もちろん、オプションを %command%compton に加えることもできます。

Steam は %command% の後にプロセスは実行し Steam の状態はゲーム中になります。この例では、nohup でコンポジタを実行するので Steam には付着されず (Steam を閉じても実行し続けます)、アンパサンドのあるコンポジタが実行されてからコマンドの行が終了して Steam の状態が戻ります。

ネイティブランタイムを使う

デフォルトで、Steam は利用するライブラリを全てコピーして Steam 自体にパッケージ化しており、それによってゲームが問題なく動作するようになっています。これは resource hog となる可能性があり、パッケージするライブラリが古くて重要な機能が欠けているかもしれません (特に、Steam が使っている OpenAL には HRTF と surround71 サポートがありません)。あなた自身のシステムライブラリを使うには、次のコマンドで Steam を実行してください:

$ STEAM_RUNTIME=0 steam

ただし、Steam が利用するライブラリが存在しない場合、正しく起動できなくなってしまいます。以下のコマンドを実行すると簡単に足りないライブラリを探すことができます:

$ cd ~/.local/share/Steam/ubuntu12_32
$ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq

ライブラリは32ビットでなくてはならないことに注意してください。つまり x86_64 環境を使っている場合 NetworkManager などを AUR からダウンロードする必要があるかもしれないということです。

ライブラリをインストールしたら、STEAM_RUNTIME=0 steam で steam を実行して steam が自身のライブラリをロードしていないことを確認してください:

$ for i in $(pgrep steam); do sed '/\.local/!d;s/.*  //g' /proc/$i/maps; done | sort | uniq

グラフィカル環境で、ネイティブランタイムを使って Steam を起動するには xprofile ファイルに環境変数を追加します:

~/.xprofile
export STEAM_RUNTIME=0

デスクトップを起動している間にファイルを作成・編集した場合は、一度ログアウトしてから再度デスクトップ環境にログインしないと変更が適用されません。

グラフィカル環境でネイティブランタイムの使用を止める

xprofile ファイルに追加した export 行を削除あるいはコメントアウトしてください。その後、ログインしなおして下さい。Steam はバージョンが古い Ubuntu のライブラリを使うようになります。

便利なリポジトリ

alucryd-multilib 非公式リポジトリには x86_64 でネイティブの steam を動かすのに必要なライブラリが全て含まれています。何らかの理由で、sdl2 や libav* をインストールしていても、Steam から使われないことがあります。Steam は独自に搭載されたライブラリを使用します。

必要なのは steam-libsAUR メタパッケージのインストールだけで、後は全てのライブラリがインストールされます。何かライブラリが欠けていたら報告してください。メンテナは既に lib32 パッケージをインストールしており、ライブラリが見過ごされている可能性があります。

非公式リポジトリや steam-libs メタパッケージを使用しないで依存関係を満たす (x86_64 環境)

Steam や様々なゲームのためにライブラリを全てインストールするのが嫌な場合、以下のライブラリをインストールしてください。Steam やゲームを起動するのに必要最小限なパッケージです:

Steam を x86_64 環境で動作させるには AUR から次のライブラリをインストールする必要があります: lib32-gconfAUR, lib32-dbus-glibAUR, lib32-libnm-glibAUR, lib32-libudev0AUR

また、multilib リポジトリから次のライブラリをインストールする必要があります: lib32-openal, lib32-nss, lib32-gtk2, lib32-gtk3

Steam が libcanberra-gtk3 に関するエラーを吐くときは lib32-libcanberra をインストールしてください。

ほとんどのゲームは上記のライブラリをインストールすることで動作しますが、ゲームによっては他にもライブラリが必要になることがあります。そのようなゲームに必要なライブラリのリストはゲーム別のトラブルシューティングのページに記載しています。

Steam のスキン

ノート: 最新の Steam クライアントのバージョンに対応していないスキンを使うと外観がおかしくなる可能性があります。

インターフェースファイルをスキンディレクトリにコピーしたりファイルを修正することで Steam のインターフェースを完全にカスタマイズすることができます。

スキンのリストは Steam のフォーラム にあります。

Steam スキンマネージャ

Steam にスキンを適用するプロセスは AUR の steam-skin-managerAUR を使うことで単純化できます。このパッケージには Steam ランチャーの修正版も含まれておりウィンドウマネージャが Steam ウィンドウに枠を描けるようになっています。

結果として、Steam のスキンにはウィンドウのボタンがあるものとないもの、2つの種類があります。スキンマネージャはハックされたバージョンを使うかどうかあなたにたずねて、自動的に GTK+ テーマに対応するテーマを(見つけたら)適用します。もちろん、もうひとつの方のスキンを適用することも可能です。

パッケージにはデフォルトの Ubuntu テーマ、Ambiance と Radiance の2つのテーマが入っています。

Steam フレンド通知の位置を変える

ノート: ゲームによっては位置の変更をサポートしていないことがあります。例えば XCOM: Enemy Unknown では使えません。

方法 1: スキンを使う

通知コーナーを変更だけを行うスキンを作ることができます。手動でスキンを作成する時間を節約したい場合は mediafire にアップロードされたスキンを使って下さい。ここからダウンロード してホームフォルダに展開します (サブディレクトリには展開しないで下さい、つまり zip の中にある .local フォルダはホームディレクトリに移動する必要があります)。その後 Steam を開いて、設定から、インターフェースタブを開いて下さい。< デフォルトスキン > と書かれたドロップダウンリストからお望みのスキンを選択すれば通知が移動されます。

ファイルを手動で作成してみたい場合、以下がその方法です。まずディレクトリを作成する必要があります:

$ mkdir -p $HOME/Top-Right/resource
$ cp -R $HOME/.steam/steam/resource/styles $HOME/Top-Right/resource/
$ mv $HOME/Top-Right $HOME/.local/share/Steam/skins/
$ cd .local/share/Steam/skins/
$ cp -R Top-Right Top-Left && cp -R Top-Right Bottom-Right

それから好きなテキストエディタで修正したいファイルを開いてください。gameoverlay.style はゲーム内のオーバーレイでのコーナーを変更し steam.style はデスクトップでのコーナーを変更します。次の例では nano を使ってゲーム内のオーバーレイのファイルを編集します。

$ nano Top-Right/resource/styles/gameoverlay.style

そして開いたファイルの中にある Notifications.PanelPosition エントリを探して適当な値に変更して下さい、例えば右上にするには:

Notifications.PanelPosition     "TopRight"

この行はどちらのファイルでも同じです。3つの種類 (Top-Right, Top-Left, Bottom-Left) があるので満足するまでスキン毎にデスクトップ・ゲーム内オーバーレイのコーナーを調整して、ファイルを保存してください。

上で説明しているように Steam でスキンを選択すれば作業は完了です。このスキンファイルは違うディストリビューションでも Windows でも使用することができます (OS X にはデスクトップ通知の配置を決める別のエントリが存在します)。

方法 2: オンザフライパッチ

この方法は Steam が将来アップデートされても互換性があります。上のスキンファイルは steam の一部としてアップデートされオリジナルのファイルが変更されたような場合、スキンは steam のグラフィックの変更に追従しないため、変更される度に再作成する必要があります。また、この方法ではゲームの起動オプションで通知の位置を変更するパッチを実行するように指定することができるので、ゲームごとに通知の場所を変えることが可能です。

Steam はアップデートするたびに (起動する度に行います) 編集する必要があるファイルを更新するので、Steam を起動した後にファイルにパッチをあてるのが一番効率的です。

まず このパッチ(pastebin バージョン) が必要です。エントリを編集して "BottomRight" (デフォルト), "TopRight", "TopLeft", "BottomLeft" で変えることができますが元のファイルでは "TopRight" を使っています。このファイルを $HOME/.steam/topright.patch として保存してください。

ノート: For pastebin to work you need to copy the raw data from line 1 through line 12 (line 12 is whitespace, but the patch will fail without it, this is why I provided a mediafire version too) you basically need to start copying behind the "-" sign at the bottom of the raw paste data and go up from there.

次に $HOME/.bashrc にエイリアスを作成します:

alias steam_topright='pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd'

一度ログアウトしてログインしなおしエイリアスを更新してください。Steam を起動して完全にロードされるまで待ってから、エイリアスを実行します:

$ steam_topright

これでほとんどのゲームで通知が右上のコーナーに表示されるようになります。

ゲームによって使用するコーナーを変えたい場合、パッチを複製して他のコーナーのエイリアスを作成することができます。

この作業を自動化したい場合、steam の起動オプションはエイリアスを読み取れないためスクリプトファイルが必要です。ファイルのパスや名前は例えば $HOME/.scripts/steam_topright.sh などにして、実行可能属性を付与する必要があります:

$ chmod +755 $HOME/.scripts/steam_topright.sh

ファイルの中身は以下のようになります:

#!/bin/sh
pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd

起動オプションは以下のようになります:

$HOME/.scripts/steam_topright.sh && %command%

gameoverlay.style フォルダと同じフォルダに steam.style という名前の別のファイルが存在し、パッチをあてたファイルと同じように働くエントリが存在し、(ゲーム内ではなく)デスクトップの通知コーナーを変更しますが、このファイルを編集して使うには steam を起動する前に設定して steam がファイルを書き換えないように読み取り専用にフォルダを設定する必要があります。そのためこのファイルを編集する方法は、ディレクトリを読み取り専用にして steam が起動時に変更しないようにする (アップデートが壊れる可能性あり) か、方法1のようにスキンを作成するかのどちらかしかありません。

メモリダンプによってメモリが食い潰されるのを防ぐ

Steam はクラッシュすると、毎回 /tmp/dumps/ にメモリダンプを書き出します。Steam がクラッシュループにはまったり、頻繁にクラッシュしてしまうと、ダンプファイルの容量は莫大に増えていきます。Arch では /tmp は tmpfs でマウントされるため、メモリやスワップファイルが不必要に消費されることになります。/tmp/dumps から /dev/null にシンボリックリンクを作成したり、パーミッションを変更することでメモリの浪費を防ぐことが可能です。それによって Steam はダンプファイルを書き込めなくなります。また、Steam によって Valve のサーバーにダンプがアップロードされることもなくなります。

# ln -s /dev/null /tmp/dumps

または:

# mkdir /tmp/dumps
# chmod 600 /tmp/dumps

トラブルシューティング

Steam/トラブルシューティングを参照してください。

参照