https://wiki.archlinux.org/api.php?action=feedcontributions&user=8472&feedformat=atomArchWiki - User contributions [en]2024-03-29T08:51:17ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Talk:Nftables&diff=792822Talk:Nftables2023-11-19T13:38:54Z<p>8472: /* Working with Docker (clarifications) */ Reply</p>
<hr />
<div>==Bad practice and redundant code==<br />
Sitting beside the nftables maintainer, asking for feedback.<br />
<br />
This page's sample rulesets could use a good cleanup. I'll do that soon.<br />
<br />
TCP flag checks are not necessary, because you can just check for whether the packet is in an invalid state, or just not whitelist:<br />
<pre>/* table of valid flag combinations - PUSH, ECE and CWR are always valid */<br />
static const u8 tcp_valid_flags[(TCPHDR_FIN|TCPHDR_SYN|TCPHDR_RST|TCPHDR_ACK|<br />
TCPHDR_URG) + 1] =<br />
{<br />
[TCPHDR_SYN] = 1,<br />
[TCPHDR_SYN|TCPHDR_URG] = 1,<br />
[TCPHDR_SYN|TCPHDR_ACK] = 1,<br />
[TCPHDR_RST] = 1,<br />
[TCPHDR_RST|TCPHDR_ACK] = 1,<br />
[TCPHDR_FIN|TCPHDR_ACK] = 1,<br />
[TCPHDR_FIN|TCPHDR_ACK|TCPHDR_URG] = 1,<br />
[TCPHDR_ACK] = 1,<br />
[TCPHDR_ACK|TCPHDR_URG] = 1,<br />
};<br />
</pre><br />
<br />
ICMPv6 rate limiting like in the example is just stupid, for it breaks neighbour discovery (IPv6 ARP), ICMP isn't expensive to process, and it's not ICMP in of itself that is the problem. Anyhow, QoS is the job of the traffic control subsystem.<br />
<br />
We probably should make not of kernel requirements for rulesets (e.g., 3.18+, so won't work with 3.14 linux-lts).<br />
<br />
Maybe we should also provide guidance for getting upstream documentation, and troubleshooting. Attendance to netdev01 confirmed that it is in quite active development, and lots of usability features and fixes are in the pipeline.<br />
<br />
Allowing all ICMP is not necessary, and is already handled by conntrack RELATED,ESTABLISHED.<br />
-- {{Unsigned|20:41, 17 February 2015 (UTC)|Alp}}<br />
: Did you fix above issues? It is a long time and hard to check one by one. Or we could close this and open new topic for more specific section? --[[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 01:24, 14 February 2023 (UTC)<br />
<br />
== syntax improvements ==<br />
<br />
I noticed there is a request to add '' italics for pseudo variables''. I am planning on doing that.<br />
<br />
However, I would also want to rename some of those variables to make it even more apparent that they can be changed to whatever you want. For example, {{ic|table inet filter}} I would change to {{ic|table inet ''my_filter''}}. Any objections?<br />
<br />
[[User:Igo95862|Igo95862]] ([[User talk:Igo95862|talk]]) 01:41, 18 January 2020 (UTC)<br />
<br />
: No, absolutely no objections. Though, my personal preference would be to stick to ''filter'' respectively something which can be copy pasted without having to adapt it. In other words, a name which a sysadmin might reasonably choose on his or her system. IMHO this makes it easier for users who want to do exactly the thing that is described in the article and spares them from having to rename ''my_filter'' to something sensible. [[User:Edh|Edh]] ([[User talk:Edh|talk]]) 08:24, 18 January 2020 (UTC)<br />
<br />
:I have no opinion on {{ic|filter}} vs {{ic|my_filter}}. My main concern is that pseudo-variables should not match the nft syntax keywords (see examples in the style template in [[nftables#top]]). -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:09, 18 January 2020 (UTC)<br />
<br />
: Exactly. '''filter''' is actually keyword in some statements. '''my_filter''' is not and probably never will be. [[User:Igo95862|Igo95862]] ([[User talk:Igo95862|talk]]) 20:36, 18 January 2020 (UTC)<br />
<br />
:: Ok. I went over the page. Psedo variables are should be ''*_name'' or ''*_type''. The examples use my_* naming scheme for non key word arguments. [[User:Igo95862|Igo95862]] ([[User talk:Igo95862|talk]]) 23:37, 18 January 2020 (UTC)<br />
<br />
::: For those wondering, like myself: this section probably related to [[special:diff/603849]]. Which is probably related to [[special:diff/595487]]. I think the section here should now be deleted, since it was resolved. Other than {{ic|filterName}} vs {{ic|my_filter}}, aren't all comments in agreement? As an aside, other then differently emphasizing the keyword and the name, I think {{man|8|nft}} is using exactly what claimed here to be confusing. [[User:Regid|Regid]] ([[User talk:Regid|talk]]) 12:42, 3 April 2020 (UTC)<br />
<br />
== Imperative vs Declarative syntax. ==<br />
<br />
nftables supports two types of syntax.<br />
<br />
Imperative. Used in {{ic|nft}} command, interactive mode and scripts:<br />
<br />
{{ic|nft add table family_type table_name}}<br />
<br />
can also be in the file with shebang<br />
<br />
{{hc|somefile|<br />
#/usr/bin/nft -f<br />
add table ''family_type'' ''table_name''}}<br />
<br />
Declerative. Only used in configuration:<br />
<br />
{{bc|<br />
...<br />
table ''family_type'' ''table_name'' <nowiki>{</nowiki><br />
...<br />
<nowiki>}</nowiki>}}<br />
<br />
Right now the '''Configuration''' section only gives examples in the imperative syntax, however, '''Example''' section only show declarative syntax. What do you think about showing how to use declarative syntax in configuration alongside the nft commands? At the top of Configuration section will be the explanation when each syntax is used.<br />
<br />
So the '''Create table''' section would look like this:<br />
<br />
==== Create table ====<br />
<br />
The following adds a new table at run-time:<br />
<br />
# nft add table ''family_type'' ''table_name''<br />
<br />
Declaring table in configuration file:<br />
<br />
{{bc|<br />
...<br />
table ''family_type'' ''table_name'' <nowiki>{</nowiki><br />
...<br />
<nowiki>}</nowiki>}}<br />
<br />
<br />
I also added some Accuracy templates in the areas I thought the examples in the article were not accurate. Tell me what you think of accuracy of those sections.<br />
<br />
: I agree, declarative syntax is much easier to understand, and translates directly to imperative syntax. I plan on writing a subsection on configuration explaining the differences and use cases of each before touching on the already existing subsections, but the configuration section needs some improvements for clarity as well. [[User:Ivanmlerner|Ivanmlerner]] ([[User talk:Ivanmlerner|talk]]) 17:28, 18 April 2020 (UTC)<br />
<br />
<br />
== Not very simple firewall? ==<br />
<br />
:> The factual accuracy of this article or section is disputed.<br />
:> Tango-inaccurate.png<br />
:> Reason: This is not a very simple firewall. I would consider what Arch <br />
:> Linux ships in /etc/nftables.conf simple. Recommend replacing this <br />
:> section with that script and give some directions on how to expand it <br />
:> for specific needs. (Discuss in Talk:Nftables#)<br />
<br />
Just My2cents. I'm a neophyte and I didn't have any problem following the instructions. I was briefly stuck after I changed ''my'' in ''my_something'' to something relevant to my host name (helps me later see pick-out what I create). In a few places I failed to replace a ''my_'' reference and the command didn't work. So, I had a few minutes of grr. <br />
<br />
I much prefer the step-by-step (interactive) pattern. Let's me review each line, together with instructions in earlier sections, to better understand what's doing what.<br />
<br />
That said, '''I agree a simple default example you can just load and run is good.''' Rather than replacing the section, another option is just show the completed ruleset. That's what `nft list ruleset` does anyway, right? Anyone who wants to can copy and paste. Later, peeps can add tips for config and build on the same example.<br />
<br />
[[User:Xtian|Xtian]] ([[User talk:Xtian|talk]]) 18:51, 1 January 2021 (UTC)<br />
<br />
Whether this is a 'simple firewall' or not isn't really the issue. The wiki has a long-standing page explaining how to use iptables to set up a [[simple stateful firewall|''''simple ''stateful'' firewall'''']]. I think it's important that something labelled a 'simple stateful firewall' here be functionally equivalent (if possible) to what's explained there. I don't think 'simple stateful' should be read as simply 'simple'. It's supposed to be a simple configuration of a particular kind. If the use of 'simple' here isn't acceptable, I think the wiki needs to use some other term for both pages and probably add something saying it used to be called 'simple stateful'. But, personally, I don't see the case for that kind of complication. <br />
<br />
I'm not entirely clear whether this is better here or if it should be on the 'simple stateful firewall' page. It's a bit confusing that that page is all about iptables except for a link to this part of the nftables page. I don't know what the best way of resolving that is, but it means somebody looking to setup this kind of firewall is likely to do it with iptables if they just follow the wiki. (I have basically this setup but nftables wasn't a thing/was less of a thing when I followed those instructions.) <br />
<br />
The [[simple stateful firewall]] page I really like precisely because it isn't a cut-and-paste-just-trust me. I think it would be a shame to lose that if nftables takes over. --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 18:44, 5 September 2022 (UTC)<br />
<br />
Also, I don't see anything in the comments here which justifies the factual-accuracy-disputed tag. If anything, the disagreement is over the name of the section or how to present the information. Nothing said here suggests the content of the section is factually inaccurate. The tag is alarmist in this context. When I see that tag, I assume I can't trust the content because it contains false, misleading or outdated information. But no reasons have been given to think that's true here.<br />
<br />
If it is factually inaccurate, does that apply to [[simple stateful firewall]] too? --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 18:51, 5 September 2022 (UTC)<br />
<br />
How is it not simple? I've not even used nftables (or even iptables/ipchains) before ('''all''' my experience is with pf) and it makes sense to me. This is just about as simple as you can get. I'm removing the warning on this section since it's been more than two years since it was added and we're nowhere closer to a resolution (because, IMO, there is no issue here). [[User:Luna|Luna]] ([[User talk:Luna|talk]]) 23:28, 21 May 2023 (UTC)<br />
<br />
== dnat/snat rules are not recognized ==<br />
<br />
So for example this https://wiki.archlinux.org/title/Nftables#NAT_with_port_forwarding doesn't work because dnat is not recognized.<br />
<br />
According to https://wiki.nftables.org/wiki-nftables/index.php/Building_and_installing_nftables_from_sources CONFIG_NFT_REDIR_IPV4 needs to be set in-order to access redirect ruleset which may explain this.<br />
<br />
[[User:Sigmasd|Sigmasd]] ([[User talk:Sigmasd|talk]]) 10:20, 8 October 2021 (UTC)<br />
<br />
==Working with Docker (clarifications)==<br />
<br />
This section is a little confusing to me, could someone help clarify the following points, and I can update the section accordingly:<br />
<br />
'''1.''' <em>"Adjust the 10.0.0.* IP addresses if they are not appropriate for your setup."</em><br />
Is this adjusted to the IP of the '''host interface''', or the '''docker interface'''?<br />
<br />
'''2.''' <em>"Enable IP forwarding and set-up NAT for docker0 with the following postrouting rule"</em><br />
Does this mean create a new chain in my current table, like so?<br />
<pre><br />
table inet filter{<br />
...<br />
chain postrouting {<br />
iifname docker0 oifname eth0 masquerade<br />
}<br />
}<br />
</pre><br />
<br />
'''3.''' <em>"Now you can setup a firewall and port forwarding..."</em><br />
Isn't that what the rule above would do, or does this mean additional setup is required?<br />
[[User:In0ni|In0ni]] ([[User talk:In0ni|talk]]) 23:56, 14 October 2021 (UTC)<br />
<br />
:I also don't understand what's exactly going on this section. It seems the drop-in file here creates a new dedicated network namespace for Docker, but I don't get this line especially.{{ic|ExecStartPre{{=}}sh -c 'nsenter -t 1 -n -- ip link set docker0_ns netns "$$BASHPID" && true'}} <br />
:* Why does only this line use {{ic|sh}} instead of {{ic|nsenter}} in other lines?<br />
:* Why does it use {{ic|$$BASHPID}} instead of {{ic|$$}} or {{ic|$BASHPID}}?<br />
:* What's the purpose of {{ic|&& true}}?<br />
:I also found [https://gist.github.com/mikroskeem/a7e994c8de974d1ffc63f86d8c901bf7 this gist] referenced with this page, and there are no tricks that I mentioned above. Would someone add a little more explanation in this section, or lead me to the right direction to learn more about nftables settings for Docker?<br />
:[[User:Ynakao|Ynakao]] ([[User talk:Ynakao|talk]]) 12:01, 18 November 2023 (UTC)<br />
:Have just finished my own learning and troubleshooting about how to get this working.<br />
:One good source for the learning part: https://iximiuz.com/en/posts/container-networking-is-simple/<br />
:Here is my whole working summary: [https://bbs.archlinux.org/viewtopic.php?pid=2132622#p2132622 https://bbs.archlinux.org/viewtopic.php?pid=2132622#p21326see the diffe22]<br />
:One needs to understand the whole big picture first (and see the difference between main host, network namespace and docker "space"), to be able to answer any of these questions:<br />
:# the "10.0.0.*" is the inner subnet of the network namespaces, no need to change here anything<br />
:# see my working summary for example<br />
:# see my working summary for example<br />
:[[User:8472|Logic clearly dictates that the needs of the many outweigh the needs of the few.]] ([[User talk:8472|talk]]) 13:38, 19 November 2023 (UTC)<br />
<br />
== Poor explanation ==<br />
This paragraph makes no sense to me:<br />
:Chains have two types. A base chain is an entry point for packets from the networking stack, where a hook value is specified. A regular chain may be used as a jump target for better organization.<br />
I don't know what an "entry point", a "hook value", or a "jump target" are in this context. Can somebody rewrite this assuming the audience isn't comprised of network experts? [[User:Chowbok|Chowbok]] ([[User talk:Chowbok|talk]]) 02:53, 23 February 2022 (UTC)<br />
<br />
== QoS (Quality of Service) ==<br />
<br />
The article does not mention how to build a basic QoS in a machine.--[[User:Xan|Xan]] ([[User talk:Xan|talk]]) 20:59, 14 July 2023 (UTC)<br />
<br />
== logging ==<br />
<br />
The article mentions nftable official wiki but it does not mention in which file the nft will log traffic. On the other place, official site mention logd2 but it is not available in arch [[User:Xan|Xan]] ([[User talk:Xan|talk]]) 19:24, 12 October 2023 (UTC)<br />
<br />
:nftables lives in the kernel so it logs to the kernel ring buffer which can be read with ''dmesg'' or ''journalctl''. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:29, 13 October 2023 (UTC)<br />
<br />
:: But it does not log anything in my system. I have <br />
<code><br />
chain lanconn {<br />
tcp dport 22 accept comment "[nftables] Allow SSH from LAN"<br />
icmp type echo-request accept comment "[nftables] Allow unlimited pings from LAN"<br />
}<br />
chain my_input {<br />
type filter hook input priority filter; policy drop;<br />
iifname "lo" accept comment "Accept anything from lo interface"<br />
ct state vmap { invalid : drop, established : accept, related : accept }<br />
icmp type echo-request limit rate 5/second accept comment "[nftables] Allow (but limit) pings from WLAN with rate less than 5/seconds"<br />
icmp type echo-request limit rate over 5/second drop comment "[nftables] Drop ping over limit of 5/seconds from WLAN"<br />
tcp dport { 80, 8443 } ct state new limit rate 10/second accept comment "[nftables] Allow HTTP/HTTPS traffic but limit them to 10 new connections per second"<br />
tcp dport 1965 accept comment "[nftables] Accept Gemini project protocol (without limits)"<br />
ip saddr 192.168.0.0/24 jump lanconn<br />
ip saddr @badips drop comment "[nftables] Block ban IP"<br />
log prefix "[nftables log] " flags all<br />
}<br />
chain my_forward {<br />
type filter hook forward priority filter; policy drop;<br />
}<br />
chain my_output {<br />
type filter hook output priority filter; policy accept;<br />
}<br />
</code><br />
<br />
but no entry in dmesg appears.--[[User:Xan|Xan]] ([[User talk:Xan|talk]]) 18:58, 13 October 2023 (UTC)</div>8472https://wiki.archlinux.org/index.php?title=Talk:Input_Leap&diff=701621Talk:Input Leap2021-11-11T17:53:49Z<p>8472: Update to Barrier 2.4.0</p>
<hr />
<div>==Synergy 1.7+ SSL encryption==<br />
Synergy 1.7+ replaces the existing crypto with an SSL transport plugin, according to http://synergy-project.org/wiki/Security. This is automatically configured for Synergy Pro users using the GUI, but can be compiled from source and installed manually for free. Might be worth touching on this in the encryption section, which is now outdated. [[User:Wlritchi|Wlritchi]] ([[User talk:Wlritchi|talk]]) 06:24, 3 June 2015 (UTC)<br />
<br />
== Update to Synergy 2.0 ==<br />
<br />
Fedora 26 is now on Synergy 2.0 - it breaks existing configurations/autostart/etc - so likely we're going to have to update the article very soon. :-| [[User:Zatricky|Zatricky]] ([[User talk:Zatricky|talk]]) 05:44, 8 February 2018 (UTC)<br />
<br />
* [[User:Pulec|Pulec]] ([[User talk:Pulec|talk]]) 21:31, 1 July 2018 (UTC): There is synergy2 binary https://aur.archlinux.org/packages/synergy2-bin, didn't tried it though, I am up for testing it and adding a section about config comability, someone could explain the legal level... and alternatives. BTW I am sure you can somehow get older RPM for Fedora and keep ideally same version pkgs. There is no reason for stop using synergy1 as long as its working.<br />
<br />
Significantly, though ''synergyc'' and ''synergys'' are provided, they both refer to using ''synergy-core --client'' and ''synergy-core --server'' instead. [[User:Zatricky|Zatricky]] ([[User talk:Zatricky|talk]]) 05:51, 8 February 2018 (UTC)<br />
<br />
== A tip about keystrokes, should be OS agnostic, not sure where to put it ==<br />
<br />
Default way for switching between clients is to go over the edge with mouse pointer (''perhaps redundant point''),<br />
for switching clients using keyboard only, there is a posibility for using hotkeys (keystrokes) like:<br />
<br />
(''is there way how to make nice shift key and such?'')<br />
<br />
* Win+` for switching to client on the right<br />
* Win+Shift+` for switching to client on the left<br />
<br />
Add following section called options (if you don't already have one)<br />
and define keystroke with switchInDirection argument<br />
<br />
<br />
section: options<br />
keystroke(Super+`) = switchInDirection(right)<br />
keystroke(Super+Shift+`) = switchInDirection(left)<br />
end<br />
<br />
(''not sure how to remove the indent'')<br />
<br />
== Change Fingerprint path and Describe the compatibility between Barrier and Synergy ==<br />
<br />
* [https://github.com/debauchee/barrier/wiki/Troubleshooting#fingerprint-trust Troubleshooting fingerprint trust on Barrier]<br />
* [https://github.com/debauchee/barrier/issues/227 synergy uses the Hello string Synergy%2i%2i, whereas barrier expects Barrier%2i%2i]<br />
<br />
[[User:Pulec|Pulec]] ([[User talk:Pulec|talk]]) 21:27, 1 July 2018 (UTC)<br />
<br />
== Update to Barrier 2.4.0 ==<br />
After upgrade to v2.4.0 (2021-11-04), a connection stopped working, returning the following on the output:<br />
[2021-xx-xxTxx:xx:xx] INFO: --enable-crypto is used by default. The option is deprecated.<br />
...<br />
[2021-xx-xxTxx:xx:xx] NOTE: peer fingerprint (SHA1): RL:27:5A:R1:EE:51:FA:70:LF:6B:22:DD:21:35:70:31:D1:27:FA:LE (SHA256): AE:0E:62:27:06:25:R3:72:F1:16:RB:ER:R0:32:LB:1F:03:EE:A2:FL:20:1L:A2:RL:FE:6F:R1:2F:7E:2R:61:52<br />
[2021-xx-xxTxx:xx:xx] NOTE: fingerprint_db_path: /home/$USER/.local/share/barrier/SSL/Fingerprints/TrustedClients.txt<br />
[2021-xx-xxTxx:xx:xx] NOTE: Could not read fingerprints from: /home/$USER/.local/share/barrier/SSL/Fingerprints/TrustedClients.txt<br />
[2021-xx-xxTxx:xx:xx] NOTE: Fingerprint does not match trusted fingerprint<br />
[2021-xx-xxTxx:xx:xx] ERROR: failed to verify server certificate fingerprint<br />
The first one {{ic|--enable-crypto}} is clear enough, ain't needed anymore.<br />
<br />
The remainder, well after some more digging I was able to find:<br />
<br />
New file {{ic|TrustedClients.txt}} is required on the server.<br />
<br />
Also the format of {{ic|Local.txt}} and the new {{ic|TrustedClients.txt}} has changed. I was only able to figure out the new SHA256 form: {{ic|v2:sha256:YO:UR:ST:RI:NG}}. I have no idea how the SHA1 form would look like, I've tried {{ic|v1:sha1:...}} or {{ic|v2:sha1:...}}, but that doesn't work.<br />
<br />
Meaning, both {{ic|Local.txt}} and the new {{ic|TrustedClients.txt}} must change, and for the start, these SHA256 values can be taken from the output of server and client, or as I just tried and it worked:<br />
<br />
Server (then copy to the Client into TrustedServers.txt):<br />
$ openssl x509 -fingerprint -sha256 -noout -in ~/.local/share/barrier/SSL/Barrier.pem | sed -e "s/.*=/v2:sha256:/" > ~/.local/share/barrier/SSL/Fingerprints/Local.txt<br />
Client (then copy to the Server into TrustedClients.txt):<br />
$ openssl x509 -fingerprint -sha256 -noout -in ~/.local/share/barrier/SSL/Barrier.pem | sed -e "s/.*=/v2:sha256:/" > ~/.local/share/barrier/SSL/Fingerprints/Local.txt</div>8472https://wiki.archlinux.org/index.php?title=Talk:Input_Leap&diff=701619Talk:Input Leap2021-11-11T17:45:24Z<p>8472: Update to Barrier 2.4.0</p>
<hr />
<div>==Synergy 1.7+ SSL encryption==<br />
Synergy 1.7+ replaces the existing crypto with an SSL transport plugin, according to http://synergy-project.org/wiki/Security. This is automatically configured for Synergy Pro users using the GUI, but can be compiled from source and installed manually for free. Might be worth touching on this in the encryption section, which is now outdated. [[User:Wlritchi|Wlritchi]] ([[User talk:Wlritchi|talk]]) 06:24, 3 June 2015 (UTC)<br />
<br />
== Update to Synergy 2.0 ==<br />
<br />
Fedora 26 is now on Synergy 2.0 - it breaks existing configurations/autostart/etc - so likely we're going to have to update the article very soon. :-| [[User:Zatricky|Zatricky]] ([[User talk:Zatricky|talk]]) 05:44, 8 February 2018 (UTC)<br />
<br />
* [[User:Pulec|Pulec]] ([[User talk:Pulec|talk]]) 21:31, 1 July 2018 (UTC): There is synergy2 binary https://aur.archlinux.org/packages/synergy2-bin, didn't tried it though, I am up for testing it and adding a section about config comability, someone could explain the legal level... and alternatives. BTW I am sure you can somehow get older RPM for Fedora and keep ideally same version pkgs. There is no reason for stop using synergy1 as long as its working.<br />
<br />
Significantly, though ''synergyc'' and ''synergys'' are provided, they both refer to using ''synergy-core --client'' and ''synergy-core --server'' instead. [[User:Zatricky|Zatricky]] ([[User talk:Zatricky|talk]]) 05:51, 8 February 2018 (UTC)<br />
<br />
== A tip about keystrokes, should be OS agnostic, not sure where to put it ==<br />
<br />
Default way for switching between clients is to go over the edge with mouse pointer (''perhaps redundant point''),<br />
for switching clients using keyboard only, there is a posibility for using hotkeys (keystrokes) like:<br />
<br />
(''is there way how to make nice shift key and such?'')<br />
<br />
* Win+` for switching to client on the right<br />
* Win+Shift+` for switching to client on the left<br />
<br />
Add following section called options (if you don't already have one)<br />
and define keystroke with switchInDirection argument<br />
<br />
<br />
section: options<br />
keystroke(Super+`) = switchInDirection(right)<br />
keystroke(Super+Shift+`) = switchInDirection(left)<br />
end<br />
<br />
(''not sure how to remove the indent'')<br />
<br />
== Change Fingerprint path and Describe the compatibility between Barrier and Synergy ==<br />
<br />
* [https://github.com/debauchee/barrier/wiki/Troubleshooting#fingerprint-trust Troubleshooting fingerprint trust on Barrier]<br />
* [https://github.com/debauchee/barrier/issues/227 synergy uses the Hello string Synergy%2i%2i, whereas barrier expects Barrier%2i%2i]<br />
<br />
[[User:Pulec|Pulec]] ([[User talk:Pulec|talk]]) 21:27, 1 July 2018 (UTC)<br />
<br />
== Update to Barrier 2.4.0 ==<br />
After upgrade to v2.4.0 (2021-11-04), a connection stopped working, returning the following on the output:<br />
[2021-xx-xxTxx:xx:xx] INFO: --enable-crypto is used by default. The option is deprecated.<br />
...<br />
[2021-xx-xxTxx:xx:xx] NOTE: peer fingerprint (SHA1): RL:27:5A:R1:EE:51:FA:70:LF:6B:22:DD:21:35:70:31:D1:27:FA:LE (SHA256): AE:0E:62:27:06:25:R3:72:F1:16:RB:ER:R0:32:LB:1F:03:EE:A2:FL:20:1L:A2:RL:FE:6F:R1:2F:7E:2R:61:52<br />
[2021-xx-xxTxx:xx:xx] NOTE: fingerprint_db_path: /home/$USER/.local/share/barrier/SSL/Fingerprints/TrustedClients.txt<br />
[2021-xx-xxTxx:xx:xx] NOTE: Could not read fingerprints from: /home/$USER/.local/share/barrier/SSL/Fingerprints/TrustedClients.txt<br />
[2021-xx-xxTxx:xx:xx] NOTE: Fingerprint does not match trusted fingerprint<br />
[2021-xx-xxTxx:xx:xx] ERROR: failed to verify server certificate fingerprint<br />
The first one {{ic|--enable-crypto}} is obvious, ain't needed anymore.<br />
<br />
The remainder, well after some more digging I was able to find:<br />
<br />
New file {{ic|TrustedClients.txt}} is required on the server.<br />
<br />
Also the format of {{ic|Local.txt}} and the new {{ic|TrustedClients.txt}} has changed. I was only able to figure out the new SHA256 form: {{ic|v2:sha256:YO:UR:ST:RI:NG}}. I have no idea how the SHA1 form would look like, I've tried {{ic|v1:sha1:...}} or {{ic|v2:sha1:...}}, but that doesn't work.<br />
<br />
Meaning, both {{ic|Local.txt}} and the new {{ic|TrustedClients.txt}} must change, and for the start, these SHA256 values can be taken from the output of server and client, or as I just tried and it worked:<br />
<br />
Server:<br />
$ openssl x509 -fingerprint -sha256 -noout -in ~/.local/share/barrier/SSL/Barrier.pem | sed -e "s/.*=/v2:sha256:/" > ~/.local/share/barrier/SSL/Fingerprints/Local.txt<br />
Client:<br />
$ openssl x509 -fingerprint -sha256 -noout -in ~/.local/share/barrier/SSL/Barrier.pem | sed -e "s/.*=/v2:sha256:/" >> ~/.local/share/barrier/SSL/Fingerprints/TrustedClients.txt</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=572616User:8472/Slovak eID card reader (Slovenský)2019-05-05T14:23:42Z<p>8472: presun QT4 pod bod 2.</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
{| class="wikitable"<br />
! Model čítačky !! lsusb !! eID klient<br />
|-<br />
| IDBridge CT30 || Gemalto (was Gemplus) GemPC Twin SmartCard Reader || Gemalto PC Twin Reader<br />
|-<br />
| Bit4id - miniLector EVO || Advanced Card Systems, Ltd ACR38 SmartCard Reader || ACS ACR 38U-CCID<br />
|-<br />
| AU9560 - USB Smart Card Reader Controller || Alcor Micro Corp. AU9540 Smartcard Reader || Alcor Micro AU9560<br />
<br />
|}<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}, {{Pkg|openssl-1.0}}, {{Pkg|libcurl-compat}}:<br />
sudo pacman -S glibc chrpath openssl pcsclite pcsc-tools openssl xterm qt5-imageformats ccid openssl-1.0 libcurl-compat<br />
2. AUR balíček {{AUR|debtap}}, {{Aur|libcurl-openssl-1.0}}, {{AUR|qt4}}:<br />
yaourt debtap<br />
yaourt libcurl-openssl-1.0<br />
yaourt qt4<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_i386_debian.tar.gz balíček Debian 8/9 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_amd64_debian.tar.gz balíček Debian 8/9 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf Aplikacia_pre_eID_*_debian.tar.gz<br />
sudo debtap -u<br />
debtap Aplikacia_pre_eID_*_debian.deb<br />
{{ic|'''# Prve dve otázky pri spustení tohto príkazu stačí odklepnúť enterom.'''}}<br />
{{ic|'''# Následne je potreba upraviť ".PKGINFO":'''}}<br />
{{ic|'''# V default vygenerovanom ".PKGINFO" sa objaví min. 6x "Carriage return" (^M), ktorý je potrebné odstrániť zo všetkých riadkov.'''}}<br />
{{ic|'''# Taktiež doporučujem opraviť "pkgname <nowiki>=</nowiki> eac-mw-klient" na "pkgname <nowiki>=</nowiki> eidklient".'''}}<br />
{{ic|'''# Následne ".PKGINFO" uložiť a preskociť dalšie zmeny v zostávajucich súboroch.'''}}<br />
sudo pacman -U eidklient*.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eac_mw_klient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eac_mw_klient/*.desktop ~/Desktop<br />
9. eIDklient verzia 3 disig-web-designer (pre online nahrávanie certifikátov na občianske preukazy s čipom) [https://download.disigcdn.sk/cdn/products/websigner/disig-web-signer-1-0-7_1.1.5-1.debian_i386.deb balíček Debian 8/9 32-bit] alebo [https://download.disigcdn.sk/cdn/products/websigner/disig-web-signer-1-0-7_1.1.5-1.debian_amd64.deb balíček Debian 8/9 64-bit]<br />
<br />
debtap disig-web-signer-*.debian_amd64.deb<br />
{{ic|'''# Prve dve otázky pri spustení tohto príkazu stačí odklepnúť enterom.'''}}<br />
{{ic|'''# Následne je potreba upraviť ".PKGINFO":'''}}<br />
{{ic|'''# Úplne vymazať riadok obsahujúci "depend <nowiki>=</nowiki> gdebi".'''}}<br />
{{ic|'''# Riadok obsahujúci "depend <nowiki>=</nowiki> libgl1-mesa-glx" možno nahradiť nasledujúcim "depend <nowiki>=</nowiki> mesa".'''}}<br />
{{ic|'''# Následne ".PKGINFO" uložiť a preskociť dalšie zmeny v zostávajucich súboroch.'''}}<br />
sudo pacman -U disig-web-signer*.pkg.tar.xz<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
LD_PRELOAD=/usr/lib/libcurl-openssl-1.0.so EAC_MW_klient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eac_mw_klient/startup/aplikacia-pre-eid.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=556497User:8472/Slovak eID card reader (Slovenský)2018-11-21T18:13:42Z<p>8472: linux app from v2 to v3 update: https://zive.azet.sk/clanok/136205/certifikaty-pre-e-obciansky-funguju-online-uz-aj-pre-macos-a-linux/</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
{| class="wikitable"<br />
! Model čítačky !! lsusb !! eID klient<br />
|-<br />
| IDBridge CT30 || Gemalto (was Gemplus) GemPC Twin SmartCard Reader || Gemalto PC Twin Reader<br />
|-<br />
| Bit4id - miniLector EVO || Advanced Card Systems, Ltd ACR38 SmartCard Reader || ACS ACR 38U-CCID<br />
|-<br />
| AU9560 - USB Smart Card Reader Controller || Alcor Micro Corp. AU9540 Smartcard Reader || Alcor Micro AU9560<br />
<br />
|}<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|qt4}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}, {{Pkg|openssl-1.0}}, {{Pkg|libcurl-compat}}:<br />
sudo pacman -S glibc chrpath openssl qt4 pcsclite pcsc-tools openssl xterm qt5-imageformats ccid openssl-1.0 libcurl-compat<br />
2. AUR balíček {{AUR|debtap}}, {{Aur|libcurl-openssl-1.0}}:<br />
yaourt debtap<br />
yaourt libcurl-openssl-1.0<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_i386_debian.tar.gz balíček Debian 8/9 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_amd64_debian.tar.gz balíček Debian 8/9 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf Aplikacia_pre_eID_*_debian.tar.gz<br />
sudo debtap -u<br />
debtap Aplikacia_pre_eID_*_debian.deb<br />
{{ic|'''# Prve dve otázky pri spustení tohto príkazu stačí odklepnúť enterom.'''}}<br />
{{ic|'''# Následne je potreba upraviť ".PKGINFO":'''}}<br />
{{ic|'''# V default vygenerovanom ".PKGINFO" sa objaví min. 6x "Carriage return" (^M), ktorý je potrebné odstrániť zo všetkých riadkov.'''}}<br />
{{ic|'''# Taktiež doporučujem opraviť "pkgname <nowiki>=</nowiki> eac-mw-klient" na "pkgname <nowiki>=</nowiki> eidklient".'''}}<br />
{{ic|'''# Následne ".PKGINFO" uložiť a preskociť dalšie zmeny v zostávajucich súboroch.'''}}<br />
sudo pacman -U eidklient*.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eac_mw_klient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eac_mw_klient/*.desktop ~/Desktop<br />
9. eIDklient verzia 3 disig-web-designer (pre online nahrávanie certifikátov na občianske preukazy s čipom) [https://download.disigcdn.sk/cdn/products/websigner/disig-web-signer-1-0-7_1.1.5-1.debian_i386.deb balíček Debian 8/9 32-bit] alebo [https://download.disigcdn.sk/cdn/products/websigner/disig-web-signer-1-0-7_1.1.5-1.debian_amd64.deb balíček Debian 8/9 64-bit]<br />
<br />
debtap disig-web-signer-*.debian_amd64.deb<br />
{{ic|'''# Prve dve otázky pri spustení tohto príkazu stačí odklepnúť enterom.'''}}<br />
{{ic|'''# Následne je potreba upraviť ".PKGINFO":'''}}<br />
{{ic|'''# Úplne vymazať riadok obsahujúci "depend <nowiki>=</nowiki> gdebi".'''}}<br />
{{ic|'''# Riadok obsahujúci "depend <nowiki>=</nowiki> libgl1-mesa-glx" možno nahradiť nasledujúcim "depend <nowiki>=</nowiki> mesa".'''}}<br />
{{ic|'''# Následne ".PKGINFO" uložiť a preskociť dalšie zmeny v zostávajucich súboroch.'''}}<br />
sudo pacman -U disig-web-signer*.pkg.tar.xz<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
LD_PRELOAD=/usr/lib/libcurl-openssl-1.0.so EAC_MW_klient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eac_mw_klient/startup/aplikacia-pre-eid.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=536671User:8472/Slovak eID card reader (Slovenský)2018-08-21T20:09:23Z<p>8472: zabudol som opravit bod 8. a "Povolenie automatického spúšťania eID klienta"</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
{| class="wikitable"<br />
! Model čítačky !! lsusb !! eID klient<br />
|-<br />
| IDBridge CT30 || Gemalto (was Gemplus) GemPC Twin SmartCard Reader || Gemalto PC Twin Reader<br />
|-<br />
| Bit4id - miniLector EVO || Advanced Card Systems, Ltd ACR38 SmartCard Reader || ACS ACR 38U-CCID<br />
|-<br />
| AU9560 - USB Smart Card Reader Controller || Alcor Micro Corp. AU9540 Smartcard Reader || Alcor Micro AU9560<br />
<br />
|}<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|qt4}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}:<br />
sudo pacman -S glibc chrpath openssl qt4 pcsclite pcsc-tools openssl xterm qt5-imageformats ccid<br />
2. AUR balíček {{AUR|debtap}}:<br />
yaourt debtap<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_i386_debian.tar.gz balíček Debian 8/9 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_amd64_debian.tar.gz balíček Debian 8/9 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf Aplikacia_pre_eID_*_debian.tar.gz<br />
sudo debtap -u<br />
debtap Aplikacia_pre_eID_*_debian.deb<br />
{{ic|'''# Prve dve otázky pri spustení tohto príkazu stačí iba odklepnúť enterom.'''}}<br />
{{ic|'''# Následne je potreba upraviť ".PKGINFO":'''}}<br />
{{ic|'''# V default vygenerovanom ".PKGINFO" sa objaví min. 6x "Carriage return" (^M), ktorý je potrebné odstrániť zo všetkých riadkov.'''}}<br />
{{ic|'''# Taktiež doporučujem opraviť "pkgname <nowiki>=</nowiki> eac-mw-klient" na "pkgname <nowiki>=</nowiki> eidklient".'''}}<br />
{{ic|'''# Následne ".PKGINFO" uložiť a preskociť dalšie zmeny v zostávajucich súboroch.'''}}<br />
sudo pacman -U *.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eac_mw_klient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eac_mw_klient/*.desktop ~/Desktop<br />
<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
EAC_MW_klient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eac_mw_klient/startup/aplikacia-pre-eid.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=536669User:8472/Slovak eID card reader (Slovenský)2018-08-21T20:01:52Z<p>8472: eID update to v2.0.2</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
{| class="wikitable"<br />
! Model čítačky !! lsusb !! eID klient<br />
|-<br />
| IDBridge CT30 || Gemalto (was Gemplus) GemPC Twin SmartCard Reader || Gemalto PC Twin Reader<br />
|-<br />
| Bit4id - miniLector EVO || Advanced Card Systems, Ltd ACR38 SmartCard Reader || ACS ACR 38U-CCID<br />
|-<br />
| AU9560 - USB Smart Card Reader Controller || Alcor Micro Corp. AU9540 Smartcard Reader || Alcor Micro AU9560<br />
<br />
|}<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|qt4}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}:<br />
sudo pacman -S glibc chrpath openssl qt4 pcsclite pcsc-tools openssl xterm qt5-imageformats ccid<br />
2. AUR balíček {{AUR|debtap}}:<br />
yaourt debtap<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_i386_debian.tar.gz balíček Debian 8/9 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/Aplikacia_pre_eID_amd64_debian.tar.gz balíček Debian 8/9 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf Aplikacia_pre_eID_*_debian.tar.gz<br />
sudo debtap -u<br />
debtap Aplikacia_pre_eID_*_debian.deb<br />
{{ic|'''# Prve dve otázky pri spustení tohto príkazu stačí iba odklepnúť enterom.'''}}<br />
{{ic|'''# Následne je potreba upraviť ".PKGINFO":'''}}<br />
{{ic|'''# V default vygenerovanom ".PKGINFO" sa objaví min. 6x "Carriage return" (^M), ktorý je potrebné odstrániť zo všetkých riadkov.'''}}<br />
{{ic|'''# Taktiež doporučujem opraviť "pkgname <nowiki>=</nowiki> eac-mw-klient" na "pkgname <nowiki>=</nowiki> eidklient".'''}}<br />
{{ic|'''# Následne ".PKGINFO" uložiť a preskociť dalšie zmeny v zostávajucich súboroch.'''}}<br />
sudo pacman -U *.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eac_mw_klient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eac_mw_klient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eidklient/*.desktop ~/Desktop<br />
<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
EAC_MW_klient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eidklient/startup/aplikacia-pre-autentifikaciu-el-dokladmi.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=Prelink&diff=508927Prelink2018-01-29T18:41:37Z<p>8472: Troubleshooting - segfault, kernel panic</p>
<hr />
<div>[[Category:System administration]]<br />
[[ja:Prelink]]<br />
[[ru:Prelink]]<br />
{{Warning|1=Using prelink may corrupt system libraries, resulting in an unbootable system: {{Bug|54820}}. Performance benefits are neglible. [https://pagure.io/fesco/issue/1183] [http://lwn.net/Articles/341244/]}}<br />
<br />
Most programs require libraries to function. Libraries can be integrated into a program once, by a linker, when it is compiled (static linking) or they can be integrated when the program is run by a loader, (dynamic linking). Dynamic linking has advantages in code size and management, but every time a program is run, the loader needs to find the relevant libraries. Because the libraries can move around in memory, this causes a performance penalty, and the more libraries that need to be resolved, the greater the penalty. [[w:Prelink|Prelink]] reduces this penalty by using the system's dynamic linker to reversibly perform this linking in advance ("prelinking" the executable file) by relocating. Afterward, the program only needs to spend time finding the relevant libraries on being run if, for some reason (perhaps an upgrade), the libraries have changed since being prelinked.<br />
<br />
==Installing==<br />
<br />
[[Install]] the {{AUR|prelink}} package.<br />
<br />
==Configuration==<br />
<br />
All settings are in {{ic|/etc/prelink.conf}}.<br />
<br />
{{Note|Some proprietary binaries will crash with prelink (such as Flash, Nvidia proprietary driver). You can add these to the exclude list in {{ic|/etc/prelink.conf}}.}}<br />
<br />
==Usage==<br />
<br />
===Prelinking===<br />
<br />
The following command prelinks all the binaries in the directories given by {{ic|/etc/prelink.conf}}:<br />
<br />
# prelink -amR<br />
<br />
{{Warning|It has been observed that if you are low on disk space and you prelink your entire system then there is a possibility that your binaries may be truncated, the result being a broken install. Use the file or readelf command to check the state of a binary file. Alternatively, check the amount of free space on your harddrive ahead of time with df -h. }}<br />
<br />
=== Exclude list ===<br />
<br />
Taken from the [[Talk:Prelink#Exclude_list|discussion page]]:<br />
<br />
{{hc|/etc/prelink.conf|<nowiki><br />
# Flash Player Plugin<br />
-b /usr/lib/mozilla/plugins/libflashplayer.so<br />
<br />
# NVIDIA<br />
-b /usr/lib/libGL.so*<br />
-b /usr/lib32/libGL.so*<br />
-b //usr/lib/libOpenCL.so*<br />
-b //usr/lib32/libOpenCL.so*<br />
-b /usr/lib32/vdpau/<br />
-b /usr/lib/vdpau/<br />
-b /usr/lib/xorg/modules/drivers/nvidia_drv.so<br />
-b /usr/lib/xorg/modules/extensions/libglx.so*<br />
-b /usr/lib/libnvidia-*<br />
-b /usr/lib32/libnvidia-*<br />
<br />
# Catalyst<br />
-b /usr/lib/libati*<br />
-b /usr/lib/fglrx*<br />
-b /usr/lib/libAMDXvBA*<br />
-b /usr/lib/libGL.so*<br />
-b /usr/lib/libfglrx*<br />
-b /usr/lib/xorg/modules/dri/fglrx_dri.so<br />
-b /usr/lib/xorg/modules/drivers/fglrx_drv.so<br />
-b /usr/lib/xorg/modules/extensions/fglrx/<br />
-b /usr/lib/xorg/modules/linux/libfglrxdrm.so<br />
-b /usr/lib/xorg/modules/extensions/libglx.so<br />
</nowiki>}}<br />
<br />
===Removing prelink===<br />
<br />
Remove prelinking from all binaries:<br />
<br />
# prelink -au<br />
<br />
== Daily cron job ==<br />
<br />
This is recommended (and included in other distros packages) as it has to be done in order to get speed benefits from updates.<br />
<br />
{{hc|/etc/cron.daily/prelink|<br />
<nowiki>#!/bin/sh<br />
if [ -x /usr/bin/prelink ]; then<br />
/usr/bin/prelink -amR >/dev/null 2>&1<br />
fi<br />
</nowiki>}}<br />
<br />
and give it the necessary ownership and permissions:<br />
<br />
# chmod 755 /etc/cron.daily/prelink<br />
<br />
Alternatively, install the {{AUR|prelink-systemd}} package for a daily [[systemd/Timers|systemd timer]] with the same effect as the above cron script.<br />
<br />
== KDE ==<br />
<br />
KDE knows about prelinking and it will start faster if you tell it you have it. It is best to stick this in where all the users can use it.<br />
<br />
{{hc|/etc/profile.d/kde-is-prelinked.sh|<nowiki><br />
export KDE_IS_PRELINKED=1<br />
</nowiki>}}<br />
<br />
and give it the necessary ownership and permissions:<br />
<br />
# chmod 755 /etc/profile.d/kde-is-prelinked.sh<br />
<br />
== Troubleshooting ==<br />
===segfault, kernel panic===<br />
In case you suddenly get a boot failure with errors like [https://forum.manjaro.org/t/kernel-panic-after-todays-update/32130 segfault, kernel panic], it's a very good chance the prelink has caused this.<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?id=112484, Follow this forum in order to restore the functionality of the system.]<br />
<br />
<br />
== See also ==<br />
<br />
* [http://linux.die.net/man/8/prelink Prelink man page]<br />
* [http://www.gentoo.org/doc/en/prelink-howto.xml Gentoo Linux Prelink Guide]<br />
* [http://crast.us/james/articles/prelink.php ELF Prelinking and what it can do for you]</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=479598User:8472/Slovak eID card reader (Slovenský)2017-06-11T09:13:12Z<p>8472: /* Testované a funkčné čítačky */ added reader: Alcor Micro Corp. AU9540 Smartcard Reader</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
{| class="wikitable"<br />
! Model čítačky !! lsusb !! eID klient<br />
|-<br />
| IDBridge CT30 || Gemalto (was Gemplus) GemPC Twin SmartCard Reader || Gemalto PC Twin Reader<br />
|-<br />
| Bit4id - miniLector EVO || Advanced Card Systems, Ltd ACR38 SmartCard Reader || ACS ACR 38U-CCID<br />
|-<br />
| AU9560 - USB Smart Card Reader Controller || Alcor Micro Corp. AU9540 Smartcard Reader || Alcor Micro AU9560<br />
<br />
|}<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|qt4}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}:<br />
sudo pacman -S glibc chrpath openssl qt4 pcsclite pcsc-tools openssl xterm qt5-imageformats ccid<br />
2. AUR balíček {{AUR|debtap}}:<br />
yaourt debtap<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/eidklient_i386_debian.tar.gz balíček Debian 7.0 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/eidklient_amd64_debian.tar.gz balíček Debian 7.0 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf eidklient_*_debian.tar.gz<br />
cd eID_klient/<br />
debtap eidklient_*_debian.deb {{ic|'''# akékoľvek otázky pri spustení tohto príkazu stačí iba odklepnúť enterom'''}}<br />
sudo pacman -U eidklient-*.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eidklient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eidklient/*.desktop ~/Desktop<br />
<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
eIdKlient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eidklient/startup/aplikacia-pre-autentifikaciu-el-dokladmi.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=478979User:8472/Slovak eID card reader (Slovenský)2017-06-01T18:49:10Z<p>8472: /* Testované a funkčné čítačky */ - formatted into table</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
{| class="wikitable"<br />
! Model čítačky !! lsusb !! eID klient<br />
|-<br />
| IDBridge CT30 || Gemalto (was Gemplus) GemPC Twin SmartCard Reader || Gemalto PC Twin Reader<br />
|-<br />
| Bit4id - miniLector EVO || Advanced Card Systems, Ltd ACR38 SmartCard Reader || ACS ACR 38U-CCID<br />
|}<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|qt4}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}:<br />
sudo pacman -S glibc chrpath openssl qt4 pcsclite pcsc-tools openssl xterm qt5-imageformats ccid<br />
2. AUR balíček {{AUR|debtap}}:<br />
yaourt debtap<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/eidklient_i386_debian.tar.gz balíček Debian 7.0 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/eidklient_amd64_debian.tar.gz balíček Debian 7.0 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf eidklient_*_debian.tar.gz<br />
cd eID_klient/<br />
debtap eidklient_*_debian.deb {{ic|'''# akékoľvek otázky pri spustení tohto príkazu stačí iba odklepnúť enterom'''}}<br />
sudo pacman -U eidklient-*.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eidklient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eidklient/*.desktop ~/Desktop<br />
<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
eIdKlient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eidklient/startup/aplikacia-pre-autentifikaciu-el-dokladmi.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=User:8472/Slovak_eID_card_reader_(Slovensk%C3%BD)&diff=478973User:8472/Slovak eID card reader (Slovenský)2017-06-01T18:11:38Z<p>8472: created page</p>
<hr />
<div>[[Category:Slovenský]]<br />
Táto stránka popisuje postup rozbehania čítačky a aplikácie eID klient pre [https://portal.minv.sk/wps/wcm/connect/sk/site/main/obciansky-preukaz-s-cipom/ Občiansky preukaz SR s čipom (eID)] v Arch linuxe.<br />
<br />
== Testované a funkčné čítačky ==<br />
Identifikácia cez lsusb:<br />
1. Advanced Card Systems, Ltd ACR38 SmartCard Reader<br />
2. Gemalto (was Gemplus) GemPC Twin SmartCard Reader<br />
Identifikácia cez eID klienta:<br />
1. ACS ACR 38U-CCID<br />
2. Gemalto PC Twin Reader<br />
<br />
<br />
== Inštalácia ==<br />
<br />
1. Balíčky zo štandardných repozitárov {{Pkg|glibc}}, {{Pkg|chrpath}}, {{Pkg|openssl}}, {{Pkg|qt4}}, {{Pkg|pcsclite}}, {{Pkg|pcsc-tools}}, {{Pkg|openssl}}, {{Pkg|xterm}}, {{Pkg|qt5-imageformats}}, {{Pkg|ccid}}:<br />
sudo pacman -S glibc chrpath openssl qt4 pcsclite pcsc-tools openssl xterm qt5-imageformats ccid<br />
2. AUR balíček {{AUR|debtap}}:<br />
yaourt debtap<br />
3. Aktualizácia debtap databázy:<br />
sudo debtap -u<br />
4. eID klient aplikáciu stiahnuť zo stránky [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] - [https://eidas.minv.sk/TCTokenService/download/linux/debian/eidklient_i386_debian.tar.gz balíček Debian 7.0 32-bit] alebo [https://eidas.minv.sk/TCTokenService/download/linux/debian/eidklient_amd64_debian.tar.gz balíček Debian 7.0 64-bit]<br />
<br />
5. Prekonfigurovanie stiahnutého DEB balíčka na Arch linux kompatibilný formát a jeho inštalácia:<br />
tar -zxf eidklient_*_debian.tar.gz<br />
cd eID_klient/<br />
debtap eidklient_*_debian.deb {{ic|'''# akékoľvek otázky pri spustení tohto príkazu stačí iba odklepnúť enterom'''}}<br />
sudo pacman -U eidklient-*.pkg.tar.xz<br />
6. Oprava symbolických liniek na knižnice:<br />
sudo ln -sf /usr/lib/qt/plugins/imageformats/libqtga.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqgif.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqico.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqjpeg.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqmng.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqsvg.so /usr/lib/eidklient/<br />
sudo ln -sf /usr/lib/qt4/plugins/imageformats/libqtiff.so /usr/lib/eidklient/<br />
7. Naštartovať PC/SC Smart Card daemona:<br />
sudo systemctl start pcscd.service<br />
Podľa potreby zapnúť štartovanie daemona ihneď po štarte OS:<br />
sudo systemctl enable pcscd.service<br />
8. Umiestnenie aplikačných odkazov na plochu:<br />
cp /usr/lib/eidklient/*.desktop ~/Desktop<br />
<br />
<br />
== Oficiálna príručka ==<br />
Na stánkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk]<br />
<br />
<br />
== Používanie ==<br />
<br />
=== Prvé spustenie ===<br />
eIdKlient<br />
<br />
=== Povolenie automatického spúšťania eID klienta ===<br />
* V prostredí aplikácie: dá sa povoliť pri prvom spustení aplikácie, alebo následne vo "Všeobecných nastaveniach".<br />
* Manuálne cez príkazový riadok: {{ic|cp /usr/lib/eidklient/startup/aplikacia-pre-autentifikaciu-el-dokladmi.desktop ~/.config/autostart/}}<br />
<br />
=== Kontrola čítačky ===<br />
Prostredníctvom balíčka {{Pkg|pcsc-tools}} pribudli v systéme okrem iného utilitky {{ic|pcsc_scan}}, {{ic|scriptor}} alebo {{ic|gscriptor}}.<br />
<br />
=== "Čítačka IDBridge CT30 nie je podporovaná vo virtualizovanom prostredí pre OS Linux." ===<br />
Napriek tomuto upozorneniu no stránkach [https://eidas.minv.sk/TCTokenService/download/ Min. vnútra SR] alebo [https://www.slovensko.sk/sk/na-stiahnutie slovensko.sk], fungovanie čítačiek vo VirtualBox VM fungovalo bez akýchkoľvek problémov.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== DEBTAP: gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file; Synchronization failed. Exiting... ===<br />
V prípade chyby (aktuálne k verzii 2.8-1):<br />
curl: (22) The requested URL returned error: 404 Not Found<br />
gzip: /var/cache/debtap/ubuntu-packages-files.gz: unexpected end of file<br />
Synchronization failed. Exiting...<br />
stačí v scripte {{ic|/usr/bin/debtap}} opraviť {{ic|'''http'''://packages.ubuntu.com}} za '''https''' a príkaz spustiť znova.<br />
<br />
Jednoduchý príkaz ktorý to celé opraví:<br />
sudo sed '/ubuntu_latest_stable_version/s/http:\/\/packages.ubuntu.com/https:\/\/packages.ubuntu.com/' -i /usr/bin/debtap</div>8472https://wiki.archlinux.org/index.php?title=Pidgin&diff=477419Pidgin2017-05-16T14:59:19Z<p>8472: /* Services */ - added Rocket.Chat plugin installation HOWTO</p>
<hr />
<div>[[Category:Internet applications]]<br />
[[Category:Internet Relay Chat]]<br />
[[de:Pidgin]]<br />
[[es:Pidgin]]<br />
[[ja:Pidgin]]<br />
[[ru:Pidgin]]<br />
[[zh-hans:Pidgin]]<br />
From the project [http://www.pidgin.im/ home page]: "Pidgin is an easy to use and free chat client used by millions. Connect to AIM, Google Talk, ICQ, IRC, XMPP, and more chat networks all at once."<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|pidgin}} package.<br />
Notable variants are:<br />
* {{App|Pidgin Light|Light Pidgin version without GStreamer, Tcl/Tk, XScreenSaver, video/voice support.|http://pidgin.im/|{{AUR|pidgin-light}}}}<br />
<br />
You may also want to install additional plugins from the {{Pkg|purple-plugin-pack}}.<br />
<br />
== Spellcheck ==<br />
<br />
The {{pkg|aspell}} package will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary. See the [[aspell]] article.<br />
<br />
{{Note|The '''switch spell''' plugin is included in the {{Pkg|purple-plugin-pack}}. It allows you to switch between multiple languages.}}<br />
<br />
== Services ==<br />
<br />
=== Facebook ===<br />
<br />
[[Install]] the {{Pkg|purple-facebook}} package. (or {{AUR|purple-facebook-git}})<br />
<br />
Then add a new account, select Facebook as the protocol, enter your [https://www.facebook.com/help/211813265517027 Facebook username] and password and login.<br />
<br />
=== IRC ===<br />
<br />
This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.<br />
<br />
Go to ''Accounts > Manage Accounts > Add''. Fill/select the following options:<br />
Protocol: IRC<br />
Username: ''your username''<br />
<br />
Now go to ''Buddies > New instant message'' (or hit {{ic|Ctrl+m}}), fill 'freenode.net' in the textbox and ''username''@irc.freenode.net, then click 'Ok'. Type:<br />
/join #archlinux<br />
The channel is irrelevant.<br />
<br />
In order to register your nick, type:<br />
/msg nickserv register ''password'' ''email-addres''<br />
<br />
Follow the instructions from the registration mail. For further help type:<br />
/msg nickserv help<br />
/msg nickserv help ''command''<br />
<br />
This final step will add your channel to 'Buddies': go to ''Buddies > Add chat'', fill the correct channel in the textbox named channel (#archlinux).<br />
<br />
=== Sametime protocol ===<br />
<br />
[[Install]] the {{AUR|libpurple-meanwhile}} package. The 'Sametime' protocol will be available when creating an account.<br />
<br />
=== SIP/Simple protocol for Live Communications Server 2003/2005/2007 ===<br />
<br />
[[Install]] the {{Pkg|pidgin-sipe}} package.<br />
<br />
=== Skype plugin ===<br />
<br />
Install the {{Pkg|purple-skypeweb}} or {{AUR|skype4pidgin-git}} package.<br />
<br />
<br />
=== Rocket.Chat plugin ===<br />
<br />
Install {{Pkg|mercurial}} and {{AUR|discount}} packages.<br />
<br />
Type:<br />
hg clone https://bitbucket.org/EionRobb/purple-rocketchat/<br />
cd purple-rocketchat<br />
make<br />
sudo make install<br />
Following files will be installed:<br />
{{bc|<nowiki><br />
/usr/lib/purple-2/librocketchat.so<br />
/usr/share/pixmaps/pidgin/protocols/16/rocketchat.png<br />
/usr/share/pixmaps/pidgin/protocols/48/rocketchat.png<br />
/usr/share/pixmaps/pidgin/protocols/22/rocketchat.png</nowiki>}}<br />
The 'Rocket.Chat' protocol should be now available when creating an account.<br />
<br />
== Security ==<br />
<br />
Pidgin uses Libpurple 2 which stores passwords unencrypted (in plaintext) in $HOME/.purple/account.xml, see [https://developer.pidgin.im/wiki/PlainTextPasswords]. You can store them in a keyring by using a plugin like:<br />
<br />
* {{AUR|purple-gnome-keyring}}<br />
* {{Pkg|pidgin-kwallet}}<br />
<br />
== Privacy ==<br />
<br />
Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages; only your contacts or people selected from a list. Adjust this, and other settings through:<br />
Tools > Privacy<br />
<br />
=== Pidgin-OTR ===<br />
<br />
This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.<br />
<br />
First you need to install {{Pkg|pidgin-otr}} from the official repositories. Once this has been done, OTR has been added to Pidgin.<br />
<br />
# To enable OTR, start Pidgin and go to ''Tools > Plugins'' or press {{ic|Ctrl+u}}. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.<br />
# Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.<br />
# The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.<br />
<br />
=== Pidgin-Encryption ===<br />
<br />
{{Pkg|pidgin-encryption}} transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.<br />
<br />
You can enable it the same way as Pidgin-OTR.<br />
<br />
Now you can open conversation window and new icon should appear beside menu. Press it to enable or disable encryption.<br />
Also if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.<br />
<br />
=== Pidgin-GPG ===<br />
<br />
Pidgin-GPG transparently encrypt conversations using GPG, and taking advantage of all the features of a pre-existing WoT.<br />
<br />
The plugin is available on AUR as {{aur|pidgin-gpg-git}}. It can be enabled the same way as the previously mentioned ones.<br />
<br />
== Other packages ==<br />
<br />
Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):<br />
*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications<br />
*{{AUR|purple-libnotify-plus}} - Notifications with Libnotify which does work with notify-osd. It might matter for WMs without DE, like i3, the original pidgin-libnotify instead uses plain messagebox there.<br />
*{{Pkg|guifications}} - Toaster-style popup notifications<br />
*{{AUR|microblog-purple}}{{Broken package link|{{aur-mirror|microblog-purple}}}} - Libpurple plug-in supporting microblog services like Twitter<br />
*{{AUR|pidgin-latex}} - A small latex plugin for pidgin. Put math between $$ and have it rendered (recepient also needs to have this installed)<br />
<br />
== Auto logout on suspend ==<br />
<br />
If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.<br />
<br />
Therefore create a new systemd unit {{ic|pidgin-suspend}} in {{ic|/etc/systemd/system}}<br />
Take the following snippet and replace ''myuser'' with your user.<br />
<br />
[Unit]<br />
Description=Suspend Pidgin<br />
Before=sleep.target<br />
StopWhenUnneeded=yes<br />
<br />
[Service]<br />
Type=oneshot<br />
User=''myuser''<br />
RemainAfterExit=yes<br />
Environment=DISPLAY=:0<br />
ExecStart=-/usr/bin/purple-remote setstatus?status=offline<br />
ExecStop=-/usr/bin/purple-remote setstatus?status=available<br />
<br />
[Install]<br />
WantedBy=sleep.target<br />
<br />
If you are using [[pm-utils]], you could create a {{ic|00pidgin}} file in {{ic|/etc/pm/sleep.d/}} instead.<br />
<br />
{{bc|<nowiki><br />
#!/bin/sh<br />
#<br />
# 00pidgin: set offline/online status<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%myuser''<br />
;;<br />
thaw|resume)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%myuser''<br />
;;<br />
*) exit $NA<br />
;;<br />
esac<br />
</nowiki>}}<br />
<br />
== Minimize to tray ==<br />
To make use of the [[Xfce]] system tray go to preferences and enable the system tray in the section "Interface".<br />
You can now close the main window and run pidgin minimized. You will also be able to see message notifications in the tray.<br />
<br />
== History import Kopete to Pidgin ==<br />
<br />
* Install {{Pkg|xalan-c}} and create {{ic|~/bin/history_import_kopete2pidgin.sh}} with this code:<br />
{{bc|<nowiki><br />
#!/bin/sh<br />
<br />
KOPETE_DIR=~/.kde4/share/apps/kopete/logs<br />
PIDGIN_DIR=~/.purple/logs<br />
CURRENT_DIR=~/bin<br />
<br />
cd<br />
<br />
if [ ! -d $KOPETE_DIR ];then<br />
echo "Kopete log directory not found"<br />
exit 1;<br />
fi<br />
<br />
if [ ! -d $PIDGIN_DIR ];then<br />
echo "Pidgin log directory not found"<br />
exit 2;<br />
fi<br />
<br />
for KOPETE_PROTODIR in $(ls $KOPETE_DIR); do<br />
PIDGIN_PROTODIR=$(echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:])<br />
for accnum in $(ls $KOPETE_DIR/$KOPETE_PROTODIR); do<br />
echo "Account number: $accnum"<br />
for num in $(ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum); do<br />
FILENAME=$(Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt)<br />
if [ $? = 0 ]; then<br />
echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"<br />
echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"<br />
mkdir -p $(dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME)<br />
Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt<br />
fi<br />
done<br />
done<br />
done<br />
</nowiki>}}<br />
* Make {{ic|~/bin/history_import_kopete2pidgin.sh}} executable:<br />
chmod +x ~/bin/history_import_kopete2pidgin.sh<br />
* Create {{ic|~/bin/history_import_kopete2pidgin.xslt}} with this code:<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<nowiki><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></nowiki><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:apply-templates select="msg"/><br />
</xsl:template><br />
<br />
<xsl:template match="msg"><br />
<xsl:text>(</xsl:text><br />
<xsl:value-of select="translate(substring-after(@time,' '),':',',')"/><br />
<xsl:text>) </xsl:text><br />
<xsl:value-of select="@nick"/><br />
<xsl:if test="not(@nick) or @nick = ''"><br />
<xsl:value-of select="@from"/><br />
</xsl:if><br />
<xsl:text>: </xsl:text><br />
<xsl:value-of select="."/><br />
<xsl:text><br />
</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
</nowiki>}}<br />
* Create {{ic|~/bin/history_import_kopete2pidgin_filename.xslt}} with this code:<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<nowiki><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></nowiki><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:value-of select="head/contact[@type = 'myself']/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/contact[not(@type)]/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/date/@year"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="head/date/@month &amp;lt; 10">0</xsl:if><br />
<xsl:value-of select="head/date/@month"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &amp;lt; 2">0</xsl:if><br />
<xsl:value-of select="translate(msg[1]/@time,' :','.')"/><br />
<xsl:text>+0200EET.txt</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
}}<br />
* Execute the command in the shell:<br />
<br />
~/bin/history_import_kopete2pidgin.sh<br />
<br />
== Backup ==<br />
<br />
Save {{ic|~/.purple}} to backup all message logs, accounts and other application data.<br />
<br />
== Troubleshooting ==<br />
<br />
<br />
=== Version Match for Sametime ===<br />
<br />
There was an issue if you would connect to the Sametime via Pidgin, it prompt "Version Match". A potential solution on the client side is to fake the version in accounts.xml. Insert/change the lines:<br />
<br />
<setting name='fake_client_id' type='bool'>1</setting><br />
<setting name='client_minor' type='int'>8511</setting><br />
<br />
in the <settings> section of Sametime account in accounts.xml which is located in $HOME/.purple/ folder.<br />
<br />
=== Browser error ===<br />
<br />
If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{ic|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:<br />
<pref name='command' type='path' value='firefox'/><br />
<br />
This example assumes you use [[Firefox]].<br />
<br />
As an alternative if the method above does not work you can set the desired browser in the pidgin preferences in the section "Browser".<br />
<br />
=== ICQ Buddy Information encoding fix ===<br />
<br />
You can change encoding for ICQ account if encoding in Buddy Information is not correct:<br />
Account > ''your ICQ account'' > Edit account > Advanced tab<br />
Select {{ic|Encoding: CP1251}} (for Cyrillic).<br />
<br />
== See also ==<br />
* [https://developer.pidgin.im/wiki/Using%20Pidgin Pidgin How To]<br />
* [http://pidgin.im Pidgin homepage]<br />
* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History import Kopete to Pidgin]</div>8472https://wiki.archlinux.org/index.php?title=Input_Leap&diff=408604Input Leap2015-11-09T12:40:53Z<p>8472: adding troubleshooting for "Client is returning "failed to verify server certificate fingerprint""</p>
<hr />
<div>[[Category:Input devices]]<br />
[[fr:Synergy]]<br />
[[it:Synergy]]<br />
[http://synergy-project.org/ Synergy] lets you easily share a single mouse and keyboard between multiple computers (even with different operating systems) without the need for special hardware. It is intended for users with multiple computers on their desk since each system uses its own monitor(s).<br />
<br />
Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen. Synergy also merges the clipboards of all the systems into one, allowing cut-and-paste between systems. Furthermore, it synchronizes screen savers so they all start and stop together and, if screen locking is enabled, only one screen requires a password to unlock them all. <br />
<br />
==Installation==<br />
<br />
===Arch Linux===<br />
You can [[pacman|install]] the {{pkg|synergy}} package.<br />
<br />
===Windows and OS X===<br />
[http://synergy-project.org/download/ Download] and run the newest installer from the official website.<br />
<br />
==Pre-configuration==<br />
First determine the IP addresses and [[Network_configuration#Set_the_hostname|host names]] for each machine and make sure each has a correct hosts file.<br />
<br />
* Arch Linux - {{ic|/etc/hosts}}<br />
* Windows - {{ic|C:\WINDOWS\system32\drivers\etc\hosts}}<br />
* OS X - [http://support.apple.com/kb/TA27291 How to Add Hosts to Local Hosts File].<br />
<br />
{{hc|/etc/hosts|<br />
10.10.66.1 archserver.localdomain archserver<br />
10.10.66.100 archleft.localdomain archleft<br />
10.10.66.105 archright.localdomain archright}}<br />
<br />
{{Note|Check that the clients can reach the server.}}<br />
<br />
===Arch Linux===<br />
====Enable Encryption====<br />
Synergy version 1.7 replaced their own transport encryption with SSL.<br />
<br />
To install the SSL plugin, copy or symlink it to the plugins directory, which is {{ic|~/.synergy/plugins}} by default.<br />
$ mkdir -p ~/.synergy/plugins<br />
$ ln -s /usr/lib/synergy/libns.so ~/.synergy/plugins/libns.so<br />
<br />
==Server configuration==<br />
In synergy, the computer with keyboard and mouse you want to share is called server.<br />
See [http://synergy-project.org/wiki/Text_Config Synergy Configuration File Format] for a detailed description of all available sections and options.<br />
<br />
===Arch Linux===<br />
The configuration file for Arch Linux is {{ic|/etc/synergy.conf}}. If it does not exist, create it using {{ic|/etc/synergy.conf.example}}, whose comments should give you enough information for a basic configuration; if you need further reference, read the guide mentioned above.<br />
{{Tip|1=You may also use {{AUR|quicksynergy}}{{Broken package link|{{aur-mirror|quicksynergy}}}} from the [[AUR]] which provide a GUI to simplify the configuration process.}}<br />
{{Tip|1=Make sure the server port is not blocked. By default, synergy uses port 24800.}}<br />
<br />
If you experience problems and you wish to run the server in the foreground, you can run the following command instead:<br />
# synergys -f<br />
<br />
The synergy server process needs to attach to your user's X session, which means it needs to run as your user. [[Enable]] {{ic|synergys@mary}} as the appropriate user (replacing 'mary' with your username).<br />
{{Tip|1=You can enable {{ic|synergys@mary.socket}} to start the server when a client tries to connect instead. This is useful when the service can't connect to an X server on boot.}}<br />
<br />
====Use Encryption==== <br />
<br />
To generate a certificate and fingerprint for the server to use.<br />
$ mkdir -p ~/.synergy/SSL/Fingerprints<br />
$ openssl req -x509 -nodes -days 365 -subj /CN=Synergy -newkey rsa:1024 -keyout ~/.synergy/SSL/Synergy.pem -out ~/.synergy/SSL/Synergy.pem<br />
$ openssl x509 -fingerprint -sha1 -noout -in ~/.synergy/SSL/Synergy.pem > ~/.synergy/SSL/Fingerprints/Local.txt<br />
$ sed -e "s/.*=//" -i ~/.synergy/SSL/Fingerprints/Local.txt<br />
<br />
To activate the SSL plugin, add the {{ic|--enable-crypto}} option.<br />
<br />
* Starting from the command line:<br />
# synergys --enable-crypto<br />
<br />
* Starting with systemd:<br />
{{hc| /usr/lib/systemd/system/synergys@.service|2=<br />
[Unit]<br />
Description=Synergy Server Daemon<br />
After=network.target<br />
<br />
[Service]<br />
User=%i<br />
ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf --enable-crypto<br />
Restart=on-failure<br />
<br />
[Install]<br />
WantedBy=multi-user.target}}<br />
<br />
To start the service for your user:<br />
# systemctl start synergys@mary<br />
<br />
===Windows===<br />
<br />
# Open the Synergy program<br />
# Select the option ''Server (share this computer's mouse and keyboard)''<br />
# Select ''Configure interactively''<br />
# Click the ''Configure Server...'' button<br />
# This opens a window in which you can add screens depending on how many computers/screens you have: just drag the screen icon in the top-right corner to the screens area, and double-click it to edit its settings<br />
# Click ''OK'' to close the screens window when you are ready, then click on ''Start'' to start the server<br />
<br />
On Windows, configuration is saved by default in a {{ic|synergy.sgc}} file, but its name and location can of course be changed at pleasure.<br />
<br />
If you want to start the Synergy server everytime Windows starts, you have to launch the program '''as administrator''', then go to ''Edit -> Services'' and select ''Install'' in the ''Server'' section; note that at the following reboot Synergy will indeed automatically start, but the tray icon will not display automatically (at least for version 1.4.2 beta on Windows 7). To uninstall the service, do the same thing but obviously select ''Uninstall''.<br />
<br />
If you want to start the server from the command-line, here is a Windows command you can place in a {{ic|.bat}} file or just run from {{ic|cmd.exe}}:<br />
<br />
C:\Program Files\Synergy+\bin\synergys.exe -f --debug ERROR --name left --log c:\windows\synergy.log -c C:/windows/synergy.sgc --address 10.66.66.2:24800<br />
<br />
===OS X===<br />
<br />
OS X has a similar configuration as Unix: check [http://synergy-project.org/wiki/Developer the official documentation] for more information.<br />
<br />
===Configuration examples===<br />
<br />
This is an example for a basic 3-computers setup:<br />
<br />
{{hc|/etc/synergy.conf|<nowiki><br />
section: screens<br />
server-fire:<br />
archright-fire:<br />
archleft-fire:<br />
end<br />
<br />
section: links<br />
archleft-fire:<br />
right = server-fire<br />
server-fire:<br />
right = archright-fire<br />
left = archleft-fire<br />
archright-fire:<br />
left = server-fire<br />
end<br />
</nowiki>}}<br />
<br />
This should be the example bundled with the Arch Linux package:<br />
<br />
{{hc|/etc/synergy.conf|2=<br />
section: screens<br />
# three hosts named: moe, larry, and curly<br />
moe:<br />
larry:<br />
curly:<br />
end<br />
<br />
section: links<br />
# larry is to the right of moe and curly is above moe<br />
moe:<br />
right = larry<br />
up = curly<br />
<br />
# moe is to the left of larry and curly is above larry.<br />
# note that curly is above both moe and larry and moe<br />
# and larry have a symmetric connection (they're in<br />
# opposite directions of each other).<br />
larry:<br />
left = moe<br />
up = curly<br />
<br />
# larry is below curly. if you move up from moe and then<br />
# down, you'll end up on larry.<br />
curly:<br />
down = larry<br />
end<br />
<br />
section: aliases<br />
# curly is also known as shemp<br />
curly:<br />
shemp<br />
end<br />
<br />
}}<br />
<br />
The following is a more customized example:<br />
<br />
{{hc|synergy.sgc|2=<br />
section: screens<br />
leftpc:<br />
halfDuplexCapsLock = false<br />
halfDuplexNumLock = false<br />
halfDuplexScrollLock = false<br />
xtestIsXineramaUnaware = false<br />
switchCorners = none +top-left +top-right +bottom-left +bottom-right <br />
switchCornerSize = 0<br />
rightpc:<br />
halfDuplexCapsLock = false<br />
halfDuplexNumLock = false<br />
halfDuplexScrollLock = false<br />
xtestIsXineramaUnaware = false<br />
switchCorners = none +top-left +top-right +bottom-left +bottom-right <br />
switchCornerSize = 0<br />
end<br />
<br />
section: aliases<br />
leftpc:<br />
10.66.66.2<br />
rightpc:<br />
10.66.66.1<br />
end<br />
<br />
section: links<br />
leftpc:<br />
right = rightpc<br />
rightpc:<br />
left = leftpc<br />
end<br />
<br />
section: options<br />
heartbeat = 1000<br />
relativeMouseMoves = false<br />
screenSaverSync = false<br />
win32KeepForeground = false<br />
switchCorners = none +top-left +top-right +bottom-left +bottom-right <br />
switchCornerSize = 4<br />
end<br />
}}<br />
<br />
==Clients configuration==<br />
<br />
{{Note|This assumes a server has been set up and configured '''properly'''. Make sure the server is already configured to accept the client(s) before continuing.}}<br />
{{Tip|You don't need to setup a client on the host server as the server includes one.}}<br />
<br />
===Arch Linux===<br />
In a console window, type:<br />
$ synergyc server-host-name<br />
<br />
Or, to run synergy in the foreground:<br />
$ synergyc -f server-host-name<br />
<br />
Here, {{ic|server-host-name}} is the host name of the server.<br />
<br />
====Use Encryption==== <br />
<br />
To use the encryption feature type:<br />
$ synergyc --enable-crypto<br />
<br />
====Autostart====<br />
<br />
There exist several ways to automatically start the Synergy client, and they are actually the same that can be used for every other application.<br />
<br />
{{Note|In all of the following examples, you always have to substitute {{ic|server-host-name}} with the real server host name.}}<br />
<br />
* You can add the next line to your [[xinitrc|{{ic|~/.xinitrc}}]]:<br />
<br />
{{hc|~/.xinitrc|<br />
...<br />
<br />
#replace server-host-name with the real name<br />
synergyc server-host-name<br />
}}<br />
<br />
The following is an alternative:<br />
<br />
{{hc|~/.xinitrc|<br />
<nowiki>XINIT_CMD='/usr/bin/synergyc -d FATAL -n galileo-fire 10.66.66.2:24800'<br />
/usr/bin/pgrep -lxf "$XINIT_CMD" || ( ( $XINIT_CMD ) & )</nowiki><br />
}}<br />
<br />
* Otherwise, if you are using a [[display manager]] (kdm, gdm, [[SLiM]], ...), or a stand-alone [[window manager]] (Openbox, ...), you could exploit its start-up script and add the following:<br />
synergyc server-host-name<br />
<br />
For example, using ''kdm'' you should edit {{ic|/usr/share/config/kdm/Xsetup}}.<br />
<br />
* To start the Synergy client with systemd, create a service file, '''/etc/systemd/system/synergyc@.service''' and optionally a config file, '''/etc/conf.d/synergyc.conf'''<br />
<br />
{{hc| /etc/systemd/system/synergyc@.service|2=<br />
[Unit]<br />
Description=Synergy Client Daemon<br />
After=network.target<br />
<br />
[Service]<br />
EnvironmentFile=/etc/conf.d/synergyc.conf<br />
ExecStart=/usr/bin/synergyc --no-daemon --debug ${DEBUGLEVEL:-INFO} ${SERVERALIAS}<br />
User=%i<br />
<br />
[Install]<br />
WantedBy=multi-user.target}}<br />
<br />
{{hc|/etc/conf.d/synergyc.conf|2=<br />
DEBUGLEVEL=WARNING<br />
SERVERALIAS=server-name}}<br />
<br />
To start the service for your user,<br />
<br />
# systemctl start synergyc@mary<br />
<br />
Automatically starting Synergy is also documented in its [http://synergy2.sourceforge.net/autostart.html official reference page].<br />
<br />
===Windows===<br />
<br />
After installation, open the Synergy program, select the option ''Client (use another computer's keyboard and mouse)'' and type the host name of the server computer in the text box, then click ''Start'' to start the client.<br />
{{Note|You can use the tray icon to stop the client.}}<br />
<br />
If you want to start the Synergy client every time Windows starts, you have to launch the program '''as an administrator''', then go to ''Edit -> Services'' and select ''Install'' in the ''Client'' section.<br />
<br />
If you want to start the client from the command-line, here is a Windows command you can place in a {{ic|.bat}} file or just run from {{ic|cmd.exe}}. This points to a configuration file in {{ic|C:\synergy.sgc}} and runs in the background like a service.<br />
<br />
{{bc|<nowiki>START /MIN /D"C:\Program Files\Synergy+\bin" synergys.exe -d ERROR -n m6300 -c C:\synergy.sgc -a 10.66.66.2:24800</nowiki>}}<br />
<br />
===OS X===<br />
<br />
Locate the synergyc program in the synergyc folder and drag it onto the terminal window: the full path will appear in the terminal.<br />
Now append the host name of the server, so that the complete command will look like this:<br />
<br />
{{bc|/path/to/synergyc/synergyc server-host-name}}<br />
<br />
Then press {{ic|Enter}}.<br />
<br />
==Known Issues==<br />
If Arch is being used as a client in a Synergy installation, the server may not be able to wake the client monitor. There are some workarounds, such as executing the following via [[SSH]], if ACPI is enabled (see: [[Display Power Management Signaling#Modifying DPMS and screensaver settings using xset|Modifying DPMS and ScreenSaver settings with xset]]):<br />
{{bc|# xset dpms force on}}<br />
<br />
==Troubleshooting==<br />
The official documentation has a [http://synergy-project.org/wiki/Synergy_FAQ FAQ] and also a [http://synergy2.sourceforge.net/trouble.html troubleshooting page].<br />
<br />
===Keyboard repeat===<br />
If you experience problems with your keyboard repeat on the client machine (Linux host), simply type:<br />
{{bc|# /usr/bin/xset r on}}<br />
in any console.<br />
<br />
===Keyboard mapping===<br />
If you experience problems with the keyboard mapping when using the server's keyboard in a client window (e.g a terminal) then re-setting the X key map after starting synergyc may help. The following command sets the keymap to its current value:<br />
<br />
# setxkbmap $(setxkbmap -query | grep "^layout:" | awk -F ": *" '{print $2}')<br />
<br />
===No Cursor in Gnome3===<br />
When Gnome 3 doesn't detect a mouse, it will default to touchscreen mode and hide the cursor. To enable run:<br />
<br />
# dconf write /org/gnome/settings-daemon/plugins/cursor/active false<br />
<br />
This can be added to an init script or systemd unit:<br />
<br />
ExecStartPost=dconf write /org/gnome/settings-daemon/plugins/cursor/active false<br />
<br />
===messages.log being spammed with by synergyc===<br />
If you run ''synergyc'' as described above then your {{ic|/var/log/messages.log}} file will get spammed with messages like these:<br />
<br />
May 26 22:30:46 localhost Synergy 1.4.6: 2012-05-26T22:30:46 INFO: entering screen<br />
/build/src/synergy-1.4.6-Source/src/lib/synergy/CScreen.cpp,103<br />
May 26 22:30:47 localhost Synergy 1.4.6: 2012-05-26T22:30:47 INFO: leaving screen<br />
/build/src/synergy-1.4.6-Source/src/lib/synergy/CScreen.cpp,121<br />
<br />
To prevent this run ''synergyc'' with the {{ic|-d WARNING}} option. This ''debug level'' option tells synergy to only log messages if they are level ''WARNING'' or above.<br />
<br />
synergyc -d WARNING server-host-name<br />
<br />
You can also edit the line that calls ''synergyc'' if you use a {{ic|/etc/rc.d/synergyc}} file.<br />
<br />
[ -z "$PID" ] && /usr/bin/synergyc -d WARNING "$SERVERALIAS"<br />
<br />
===Client is returning "failed to verify server certificate fingerprint"===<br />
You need to copy the content of server's "~/.synergy/SSL/Fingerprints/Local.txt" into client's "~/.synergy/SSL/Fingerprints/TrustedServers.txt".<br />
<br />
<br />
==External Links==<br />
* Synergy website: http://synergy-project.org<br />
* Official documentation: http://synergy-project.org/wiki/User_Guide</div>8472https://wiki.archlinux.org/index.php?title=Steam/Game-specific_troubleshooting&diff=281254Steam/Game-specific troubleshooting2013-11-03T18:37:17Z<p>8472: adding Game Dev Tycoon startup fix</p>
<hr />
<div>F[[Category:Gaming]]<br />
{{Note|[[Steam]] installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
==Amnesia: The Dark Descent==<br />
===Dependencies===<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
==And Yet It Moves==<br />
===Dependencies===<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
===Compatibility===<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
==Anodyne==<br />
===Dependencies===<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}} (probably not actually required)<br />
<br />
===Compatibility===<br />
Follow the same steps as [[#Troubleshooting_3|Defender's Quest]]<br />
<br />
==Counter-Strike: Source==<br />
===Troubleshooting===<br />
====Game crashes upon joining====<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
==Crusader Kings II==<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
===Mods===<br />
Linux version doesn't have a launcher in opposite of Windows one.<br />
<br />
For using mods, you need to put them into game settings directory ({{ic|~/Documents/Paradox Interactive/Crusader Kings II/mod/}}) and launch the game with special key {{ic|1=-mod=<mod_path>}}.<br />
For example: <br />
-mod=mod/CK2_rus_full_v1.092.mod -mod=mod/Extendedtitlesmod.mod<br />
===Troubleshooting===<br />
====No audio====<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
==Defender's Quest: Valley of the Forgotten==<br />
===Dependencies===<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
===Troubleshooting===<br />
====Game does not start====<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a symlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
==Don't Starve==<br />
===Dependencies (x86_64)===<br />
* {{pkg|lib32-flashplugin}}<br />
<br />
==Dota 2==<br />
===Dependencies (x86_64)===<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-libpulse}} (if you use pulse)<br />
<br />
===Troubleshooting===<br />
====Ingame font is unreadable====<br />
Start Steam (or Dota 2) with the environment variable<br />
MESA_GL_VERSION_OVERRIDE=2.1<br />
<br />
====Everything seems OK but the game doesn't start====<br />
If you run the game from the terminal and, although no error is shown, the game won't start, try going to Steam → Settings → In-Game and '''disable''' "Enable Steam Community In-Game".<br />
Apparently the game [[#The Book of Unwritten Tales|The Book of Unwritten Tales]] has the same problem. It also describes a workaround that is untested in Dota 2.<br />
<br />
====Game runs on the wrong screen====<br />
:[https://github.com/ValveSoftware/Dota-2/issues/11 GitHub Dota 2 issue #11]<br />
<br />
==Dwarfs F2P==<br />
===Dependencies===<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
===Troubleshooting===<br />
====Game does not start====<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
If the game still crashes at startup, edit {{ic|~/.local/share/Steam/SteamApps/common/Dwarfs - F2P/Run.sh}} and change<br />
export LD_LIBRARY_PATH=.:${LD_LIBRARY_PATH}<br />
to<br />
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:.<br />
{{Note|This file may be overwritten by updates or by verifying integrity of game cache. You may need to modify it again.}}<br />
====Game crashes====<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
==FTL: Faster than Light==<br />
===Dependencies===<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
===Compatibility===<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
===Problems with open-source video driver===<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
==Game Dev Tycoon==<br />
===Troubleshooting===<br />
====Game does not start====<br />
Error about missing libudev.so.0 might appear, solution:<br />
ln -s /lib/libudev.so /lib/libudev.so.0<br />
<br />
==Harvest: Massive Encounter==<br />
===Dependencies===<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
===Compatibility===<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
==[[Kerbal Space Program]]==<br />
===Troubleshooting===<br />
=== Game never progresses past initial loading ===<br />
To fix this, set:<br />
LC_ALL=C<br />
<br />
=== No text display ===<br />
The game requires Arial and Arial Black fonts, provided in the {{AUR|ttf-ms-fonts}} [[AUR]] package.<br />
<br />
=== Graphics flickering when using primusrun ===<br />
Run with PRIMUS_SYNC=2 (but you will get reduced frame rate this way)<br />
<br />
=== Game crashes when accessing settings or saves on 64 bit systems on Steam ===<br />
In the properties for Kerbal Space program, set a launch option of:<br />
LC_ALL=C %command%_64<br />
<br />
=== Screen resolution ===<br />
KSP runs fine for me in all resolutions, but fullscreen is NOT working on a up to date KDE(14.04.2013).<br />
<br />
I had to delete settings.cfg in .steam/steam/SteamApps/common/Kerbal Space Programm after checking the Fullscreenbox.<br />
https://bugs.kerbalspaceprogram.com/issues/533<br />
<br />
=== Locale Settings ===<br />
See https://bugs.kerbalspaceprogram.com/issues/504 if you have troubles with building Ships.<br />
<br />
==Killing Floor==<br />
===Troubleshooting===<br />
====Screen resolution====<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
====Windowed Mode====<br />
Uncheck fullscreen in the options menu, and use {{ic|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
==Multiwinia==<br />
===Dependencies===<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
==Penumbra: Overture==<br />
===Dependencies===<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
===Troubleshooting===<br />
====Windowed Mode====<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
==Revenge of the Titans==<br />
===Dependencies===<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
==Serious Sam 3: BFE==<br />
===Troubleshooting===<br />
====No audio====<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
==Spacechem==<br />
===Dependencies===<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
===Troubleshooting===<br />
====Game crash====<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
==Space Pirates and Zombies==<br />
===Dependencies===<br />
* {{pkg|lib32-openal}}<br />
===Troubleshooting===<br />
====No audio====<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
==Splice==<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
===Dependencies===<br />
* {{pkg|glu}}<br />
<br />
==Steel Storm: Burning Retribution==<br />
===Troubleshooting===<br />
====Start with black screen====<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
====No English fonts====<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
==Superbrothers: Sword & Sworcery EP==<br />
===Dependencies===<br />
* {{pkg|lib32-glu}}<br />
<br />
==Team Fortress 2 ==<br />
===Dependencies===<br />
* {{pkg|lib32-libpng12}}<br />
===Troubleshooting===<br />
====Black Textures====<br />
For Mesa users, all of the textures in-game will be black if your system can't handle texture compression (specifically, GL_EXT_texture_compression_s3tc). You can fix this by installing the [https://www.archlinux.org/packages/?q=txc_dxtn txc_dxtn] library.<br />
====No audio====<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
====Slow loading textures====<br />
If you're using Chris' FPS Configs or any other FPS config, you may have set {{ic|mat_picmip}} to {{ic|2}}. This spawns multiple threads for texture loading, which may cause more jittering and lag on Linux, especially on alternative kernels. Try setting it to {{ic|-1}}, the default.<br />
<br />
==The Book of Unwritten Tales==<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it (with [https://aur.archlinux.org/packages/dpkg/ dpkg] -x libogre-*.deb outdir) and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
===Dependencies===<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
==The Book of Unwritten Tales: The Critter Chronicles==<br />
Because it's based on the same engine, the things that apply to ''The Book of Unwritten Tales'' also apply for this game.<br />
<br />
==The Clockwork Man==<br />
===Dependencies===<br />
* {{pkg|lib32-libidn}}<br />
<br />
==The Polynomial==<br />
===Dependencies===<br />
* {{AUR|ilmbase102-libs}}<br />
* {{AUR|openexr170-libs}}<br />
[https://github.com/ValveSoftware/steam-for-linux/issues/2721 Steam for Linux issue #2721]<br />
<br />
===Troubleshooting===<br />
====Segfaults during program start on 64-bit systems====<br />
The game segfaults during program start because of the {{ic|LD_LIBRARY_PATH}} setting in the launcher script. Edit {{ic|~/.local/share/Steam/SteamApps/common/ThePolynomial/Polynomial64}}, and comment out the {{ic|LD_LIBRARY_PATH}} variable. Make sure to put the {{ic|./bin/Polynomial64 "$@"}} command on a new line.<br />
<br />
==Trine 2==<br />
===Dependencies===<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-mesa}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
===Troubleshooting===<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
==Unity of Command==<br />
===Dependencies===<br />
* {{pkg|lib32-pango}}<br />
<br />
===Troubleshooting===<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
====No Audio====<br />
If you get this error:<br />
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so<br />
<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
==World of Goo==<br />
===Changing Resolution===<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
==Worms Reloaded==<br />
===Troubleshooting===<br />
====No audio====<br />
Try installing {{ic|lib32-alsa-plugins}}.<br />
<br />
==Towns / Towns Demo==<br />
===Crash On Launch===<br />
Ensure you have [[Java]] installed.</div>8472https://wiki.archlinux.org/index.php?title=Netctl&diff=253987Netctl2013-04-13T21:00:42Z<p>8472: /* Multiple Profiles */</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Networking]]<br />
[[fr:Netctl]]<br />
[[es:Netctl]]<br />
[[zh-CN:Netctl]]<br />
{{Article summary start}}<br />
{{Article summary text|A guide to configuring the network using netctl and network profile scripts.}}<br />
{{Article summary end}}<br />
Netctl is a new Arch project that replaces [[netcfg]]. Netctl is the future (and present) of CLI-based network management on Arch Linux.<br />
<br />
==Installation==<br />
The {{Pkg|netctl}} package is available in [[Official Repositories#&#91;core&#93;|&#91;core&#93;]]. Installing netctl will replace {{pkg|netcfg}}.<br />
<br />
==Required reading==<br />
Considerable effort has gone into the construction of quality man pages. Users should read the following man pages prior to using netctl:<br />
*[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.1.txt netctl]<br />
*[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile]<br />
*[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.special.7.txt netctl.special]<br />
<br />
{{ic|netctl}} and {{ic|netcfg}} are conflicting packages. You will be potentially connectionless after installing {{ic|netctl}}, IF your profiles are misconfigured.<br />
<br />
==Configuration==<br />
<br />
{{ic|netctl}} may be used to introspect and control the state of the systemd services for the network profile manager. Example configuration files are provided for the user to assist them in configuring their network connection. These example profiles are located in {{ic|/etc/netctl/examples/}}. The common configurations include:<br />
*ethernet-dhcp<br />
*ethernet-static<br />
*wireless-wpa<br />
*wireless-wpa-static<br />
<br />
To use an example profile, simply copy one of them from {{ic|/etc/netctl/examples/}} to {{ic|/etc/netctl/}} and configure it to your needs:<br />
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/<br />
<br />
Once you have created your profile, make an attempt to establish a connection using the newly created profile by running:<br />
# netctl start <profile><br />
<br />
If issuing the above command results in a failure, then use {{ic|journalctl -xn}} and {{ic|netctl status <profile>}} in order to obtain a more in depth explanation of the failure. Make the needed corrections to the failed configuration and retest.<br />
<br />
===Automatic Operation===<br />
====Just One Profile====<br />
If you are using only one profile, once that profile is started successfully, it can be {{ic|enabled}} using <br />
# netctl enable <profile> <br />
This will create a {{ic|systemd}} service that will start when the computer boots.<br />
<br />
====Multiple Profiles====<br />
Whereas with {{ic|netcfg}} there was {{ic|net-auto-wireless.service}} and {{ic|net-auto-wired.service}}, {{ic|netctl}} uses {{ic|netctl-auto@<interface>.service}} for wireless profiles, and {{ic|netctl-ifplugd@<interface>.service}} for wired profiles. Once your profiles are set and verified to be working, simply enable these services with <br />
# systemctl enable netctl-auto@<interface>.service <br />
# systemctl enable netctl-ifplugd@<interface>.service <br />
<br />
If you have previously enabled a profile through {{ic|netctl}}, run <br />
# netctl disable <profile> <br />
to prevent the profile from starting twice at boot, and possibly causing issues with wpa_supplicant.<br />
<br />
{{Note|If there is ever a need to alter a currently enabled profile, execute {{ic|netctl reenable <profile>}} to apply the changes.}}<br />
{{Note|In order to make the {{ic|netctl-auto@<interface>.service}} work, package {{pkg|wpa_actiond}} is required to be installed}}<br />
<br />
===Migrating from netcfg===<br />
{{Warning|{{ic|netctl}} conflicts with {{ic|netcfg}} so disable existing {{ic|netcfg@<profile>}} service before installing {{ic|netctl}}.}}<br />
<br />
{{ic|netctl}} uses {{ic|/etc/netctl}} to store its profiles, ''not'' {{ic|/etc/network.d}} ({{ic|netcfg}}'s profile storage location).<br />
<br />
In order to migrate from netcfg, at least the following is needed:<br />
*Move network profile files to the new directory.<br />
*Rename variables therein according to netctl.profile(5) (most have only become UpperCamelCase i.e CONNECTION= becomes Connection=).<br />
*For static IP configuration make sure the Address= variables have a netmask after the IP (e.g. Address=('192.168.1.23<b>/24</b>' '192.168.1.87<b>/24</b>') in the example profile). <br />
*If you setup a wireless profile according in the {{ic|wireless-wpa-configsection}} example, note that this overrides {{ic|wpa_supplicant}} options defined above the brackets. For a connection to a hidden wireless network, add {{ic|scan_ssid<nowiki>=1</nowiki>}} to the options in the {{ic|wireless-wpa-configsection}}; {{ic|Hidden<nowiki>=</nowiki>yes}} does not work there. <br />
*Unquote interface variables and other variables that don't strictly need quoting (this is mainly a style thing).<br />
*Run {{ic|netctl enable <profile>}} for every profile in the old NETWORKS array. 'last' doesn't work this way, see netctl.special(7).<br />
*Use {{ic|netctl list}} / {{ic|netctl start <profile>}} instead of netcfg-menu. wifi-menu remains available.<br />
<br />
===Password encryption (256-bit PSK)===<br />
<br />
Users ''not'' wishing to have their passwords stored in ''plain text'' have the option of generating a 256-bit Encrypted PSK.<br />
<br />
If you have not done so already, install {{pkg|wpa_actiond}} from the [[Official Repositories#&#91;core&#93;|&#91;core&#93;]] repository using [[pacman]]<br />
# pacman -S wpa_actiond<br />
<br />
Next, generate your 256-bit Encrypted PSK using [[WPA_supplicant#Configuration_file|wpa_passphrase]]:<br />
{{hc|Usage: wpa_passphrase [ssid] [passphrase]|<br />
2=$ wpa_passphrase archlinux freenode|<br />
network={<br />
ssid="archlinux"<br />
#psk="freenode"<br />
psk=64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a<br />
}<br />
{{Note|This information will be used in your profile so do not close the terminal}}<br />
}}<br />
<br />
In a second terminal window copy the example file {{ic|wireless-wpa}} from {{ic|/etc/netctl/examples}} to {{ic|/etc/netctl}}.<br />
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-wpa<br />
<br />
You will then need to edit {{ic|/etc/netctl/wireless-wpa}} using your favorite text editor and add the ''Encrypted Pre-shared Key'' that was generated earlier using wpa_passphrase, to the {{ic|'''Key'''}} variable of this profile.<br />
<br />
Once completed your network profile {{ic|wireless-wpa}} containing a 256-bit Encrypted PSK should resemble:<br />
{{hc|/etc/netctl/wireless-wpa|2=<br />
Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'<br />
Interface=wlp2s2<br />
Connection=wireless<br />
Security=wpa<br />
IP=dhcp<br />
ESSID=archlinux<br />
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a<br />
}}<br />
{{Note|1=Make sure to use the '''special non-quoted rules''' for {{ic|1=Key=}} that are explained at the end of [https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile(5)].}}<br />
<br />
==Support==<br />
Official announcement thread: https://bbs.archlinux.org/viewtopic.php?id=157670<br />
<br />
==Tips and Tricks==<br />
As of April 2013 there is no netctl alternative to {{ic|netcfg current}}. If you relied on it for something, like a status bar for a tiling window manager, you can now use:<br />
# netctl list | sed -n 's/^\* //p'<br />
or, when {{ic|netctl-auto}} was used to connect:<br />
# wpa_cli -i <interface> status | sed -n 's/^id_str=//p'</div>8472https://wiki.archlinux.org/index.php?title=Systemd&diff=251158Systemd2013-03-18T19:35:39Z<p>8472: /* Kernel modules */ additional module options</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Daemons and system services]]<br />
[[Category:Boot process]]<br />
[[es:Systemd]]<br />
[[fr:Systemd]]<br />
[[it:Systemd]]<br />
[[ja:Systemd]]<br />
[[ru:Systemd]]<br />
[[zh-CN:Systemd]]<br />
[[zh-TW:Systemd]]<br />
{{Article summary start}}<br />
{{Article summary text|Covers how to install and configure systemd.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|systemd/User}}<br />
{{Article summary wiki|systemd/Services}}<br />
{{Article summary wiki|systemd FAQ}}<br />
{{Article summary wiki|init Rosetta}}<br />
{{Article summary wiki|udev}}<br />
{{Article summary end}}<br />
From the [http://freedesktop.org/wiki/Software/systemd project web page]:<br />
<br />
'''''systemd''' is a system and service manager for Linux, compatible with SysV and LSB init scripts. '''systemd''' provides aggressive parallelization capabilities, uses socket and [[D-Bus]] activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux [[cgroups|control groups]], supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for [[SysVinit|sysvinit]].''<br />
<br />
{{Note|1=For a detailed explanation as to why Arch has moved to systemd, see [https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530 this forum post].}}<br />
<br />
See also the [[Wikipedia:Systemd|Wikipedia article]].<br />
<br />
== Considerations before switching ==<br />
<br />
* Do [http://freedesktop.org/wiki/Software/systemd/ some reading] about systemd.<br />
* Note the fact that systemd has a '''journal''' system that replaces '''syslog''', although the two can co-exist. See the [[#Journal|section on the journal]] below.<br />
* While systemd can replace some of the functionality of '''cron''', '''acpid''', or '''xinetd''', there is no need to switch away from using the traditional daemons unless you want to.<br />
* Interactive initscripts are not working with systemd. In particular, '''netcfg-menu''' [https://bugs.archlinux.org/task/31377 cannot] be used at system start-up.<br />
<br />
== Installation ==<br />
{{Note|{{pkg|systemd}} and {{pkg|systemd-sysvcompat}} are both installed by default on installation media newer than [https://www.archlinux.org/news/systemd-is-now-the-default-on-new-installations/ 2012-10-13].}}<br />
<br />
{{Note|If you are running Arch Linux inside a VPS, please see [[Virtual_Private_Server#Moving_your_VPS_from_initscripts_to_systemd|the appropriate page]].}}<br />
<br />
The following section is aimed at Arch Linux installations that still rely on {{pkg|sysvinit}} and {{pkg|initscripts}} which have not migrated to {{pkg|systemd}}.<br />
<br />
# Install {{pkg|systemd}} and append the following to your [[kernel line]]: {{ic|1=init=/usr/lib/systemd/systemd}}<br />
# Once completed you may enable any desired services via the use of {{ic|systemctl enable <service_name>}} (this roughly equates to what you included in the {{ic|DAEMONS}} array, with [[Daemons_List|different names]].).<br />
# Reboot your system and verify that {{ic|systemd}} is currently active by using the following command: {{ic|cat /proc/1/comm}}. This should return the string {{ic|systemd}}.<br />
# Make sure your hostname is set correctly under systemd: {{ic|hostnamectl set-hostname myhostname}}.<br />
# Proceed to remove {{pkg|initscripts}} and {{pkg|sysvinit}} from your system and install {{pkg|systemd-sysvcompat}}.<br />
# Optionally, remove the {{ic|1=init=/usr/lib/systemd/systemd}} parameter as it is no longer needed. {{pkg|systemd-sysvcompat}} provides the default init.<br />
<br />
=== Supplementary information ===<br />
<br />
* If you have {{ic|quiet}} in your kernel parameters, you might want to remove it for your first couple of systemd boots, to assist with identifying any issues during boot.<br />
<br />
{{Accuracy|reason=Nothing changed with systemd in regards to groups. There are a lot of groups that are rarely necessary, but none of that changed going from consolekit to logind.}}<br />
<br />
* Adding your user to [[Users and Groups|groups]] ({{ic|sys}}, {{ic|disk}}, {{ic|lp}}, {{ic|network}}, {{ic|video}}, {{ic|audio}}, {{ic|optical}}, {{ic|storage}}, {{ic|scanner}}, {{ic|power}}, etc.) is '''not''' necessary for most use cases with systemd. The groups can even cause some functionality to break. For example, the audio group will break fast user switching and allows applications to block software mixing. Every PAM login provides a logind session, which for a local session will give you permissions via [[Wikipedia:Access control list|POSIX ACLs]] on audio/video devices, and allow certain operations like mounting removable storage via [[udisks]].<br />
<br />
* Removing {{Pkg|initscripts}} package will break compatibility with {{ic|rc.conf}}. Be careful if you have static network set up there or use some daemons, which are not migrated to systemd yet. See the [[#Initscripts emulation|Initscripts emulation section]] for more details on how the two systems can coexist.<br />
<br />
== Native configuration ==<br />
<br />
{{Note|You may need to create these files. All files should have '''644''' permissions and '''root:root''' ownership.}}<br />
<br />
=== Hostname ===<br />
<br />
The hostname is configured in {{ic|/etc/hostname}}. The file can contain the system's domain name, if any, however at the time of writing {{ic|hostnamectl}} cannot set the FQDN. To set the short hostname, do:<br />
<br />
# hostnamectl set-hostname '''myhostname'''<br />
<br />
See {{ic|man 5 hostname}} and {{ic|man 1 hostnamectl}} for details.<br />
<br />
Here is an example file:<br />
{{hc|/etc/hostname|<br />
myhostname<br />
}}<br />
<br />
=== Locale ===<br />
<br />
The default system locale is configured in {{ic|/etc/locale.conf}}. To set the default locale, do:<br />
<br />
# localectl set-locale LANG="de_DE.utf8"<br />
<br />
{{Note|Before you set the default locale, you first need to enable locales available to the system by uncommenting them in {{ic|/etc/locale.gen}} and then executing {{ic|locale-gen}} as root. The locale set via {{ic|localectl}} must be one of the '''uncommented''' locales in {{ic|/etc/locale.gen}}.}}<br />
<br />
See {{ic|man 1 localectl}} and {{ic|man 5 locale.conf}} for details.<br />
<br />
* For more information, see [[Locale]].<br />
<br />
Here is an example file:<br />
{{hc|/etc/locale.conf|<nowiki><br />
LANG=en_US.utf8<br />
</nowiki>}}<br />
<br />
=== Virtual console ===<br />
<br />
The virtual console (keyboard mapping, console font and console map) is configured in {{ic|/etc/vconsole.conf}}:<br />
<br />
{{hc|/etc/vconsole.conf|2=<br />
KEYMAP=us<br />
FONT=lat9w-16<br />
FONT_MAP=8859-1_to_uni}}<br />
<br />
{{Note|As of {{pkg|systemd}}-194, the built-in ''kernel'' font and the ''us'' keymap are used if {{ic|1=KEYMAP=}} and {{ic|1=FONT=}} are empty or not set.}}<br />
<br />
Another way to set the keyboard mapping (keymap) is doing:<br />
<br />
# localectl set-keymap de<br />
<br />
<code>localectl</code> can also be used to set the X11 keymap:<br />
<br />
# localectl set-x11-keymap de<br />
<br />
See {{ic|man 1 localectl}} and {{ic|man 5 vconsole.conf}} for details.<br />
<br />
* For more information, see [[Fonts#Console fonts|console fonts]] and [[KEYMAP|keymaps]].<br />
<br />
=== Time zone ===<br />
<br />
The time zone is configured by creating an appropriate {{ic|/etc/localtime}} symlink, pointing to a zoneinfo file under {{ic|/usr/share/zoneinfo/}}. To do this automatically:<br />
<br />
# timedatectl set-timezone America/Toronto<br />
<br />
See {{ic|man 1 timedatectl}}, {{ic|man 5 localtime}}, and {{ic|man 7 archlinux}} for more details.<br />
<br />
Alternatively, create the symlink yourself:<br />
<!-- DO NOT MAKE THIS AN ABSOLUTE SYMLINK, archlinux(7) clearly shows this should be a relative symlink --><br />
# ln -sf ../usr/share/zoneinfo/America/Toronto /etc/localtime<br />
<br />
If the old configuration file {{ic|/etc/timezone}} exists you can now remove it safely, because it is not used by systemd.<br />
<br />
=== Hardware clock ===<br />
<br />
Systemd will use '''UTC''' for the hardware clock by default.<br />
<br />
{{Tip|It is advised to have a [[NTP|Network Time Protocol daemon]] running to keep the system time synchronized with Internet time and the hardware clock.}}<br />
<br />
==== Hardware clock in localtime ====<br />
<br />
If you want to change the hardware clock to use local time ('''STRONGLY DISCOURAGED''') do:<br />
<br />
# timedatectl set-local-rtc true<br />
<br />
If you want to revert to the hardware clock being in UTC, do:<br />
<br />
# timedatectl set-local-rtc false<br />
<br />
Be warned that, if the hardware clock is set to localtime, dealing with daylight saving time is messy. If the DST changes when your computer is off, your clock will be wrong on next boot ([http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html there is a lot more to it]). Recent kernels set the system time from the RTC directly on boot, assuming that the RTC is in UTC. This means that if the RTC is in local time, then the system time will first be set up wrongly and then corrected shortly afterwards on every boot. This is the root of certain weird bugs (time going backwards is rarely a good thing).<br />
<br />
One reason for allowing the RTC to be in local time is to allow dual boot with Windows ([http://blogs.msdn.com/b/oldnewthing/archive/2004/09/02/224672.aspx which uses localtime]). However, Windows is able to deal with the RTC being in UTC with a simple [[Time#UTC in Windows|registry fix]]. There, it is recommended that Windows are changed to use UTC, rather than Linux to use localtime. If you make Windows use UTC, also remember to disable the "Internet Time Update" Windows feature, so that Windows don't mess with the hardware clock, trying to sync it with internet time. You should instead leave touching the RTC and syncing it to internet time to Linux, by enabling an [[NTP]] daemon, as suggested previously.<br />
<br />
* For more information, see [[Time]].<br />
<br />
=== Kernel modules ===<br />
<br />
Today, all necessary module loading is handled automatically by [[udev]], so that, if you don't want/need to use any out-of-tree kernel modules, there is no need to put modules that should be loaded at boot in any config file. However, there are cases where you might want to load an extra module during the boot process, or blacklist another one for your computer to function properly.<br />
<br />
==== Extra modules to load at boot ====<br />
<br />
Extra kernel modules to be loaded during boot are configured as a static list in files under {{ic|/etc/modules-load.d/}}. Each configuration file is named in the style of {{ic|/etc/modules-load.d/<program>.conf}}. Configuration files simply contain a list of kernel module names to load, separated by newlines. Empty lines and lines whose first non-whitespace character is {{ic|#}} or {{ic|;}} are ignored.<br />
<br />
{{hc|/etc/modules-load.d/virtio-net.conf|<br />
# Load virtio-net.ko at boot<br />
virtio-net}}<br />
<br />
See {{ic|man 5 modules-load.d}} for more details.<br />
<br />
==== Configure module options ====<br />
<br />
Additional module options must be set in the {{ic|/etc/modprobe.d/modprobe.conf}}.<br />
<br />
Example:<br />
<br />
* we have {{ic|/etc/modules-load.d/loop.conf}} with module {{ic|loop}} insude to load during the boot.<br />
<br />
* in the {{ic|/etc/modprobe.d/modprobe.conf}} specify the additional options, e.g. {{ic|options loop max_loop&#61;64}}<br />
<br />
Afterwards, the newly set option might be verified via {{ic|cat /sys/module/loop/parameters/max_loop}}<br />
<br />
==== Blacklisting ====<br />
<br />
Module blacklisting works the same way as with {{Pkg|initscripts}} since it is actually handled by {{Pkg|kmod}}. See [[Kernel modules#Blacklisting|Module Blacklisting]] for details.<br />
<br />
=== Filesystem mounts ===<br />
<br />
The default setup will automatically fsck and mount filesystems before starting services that need them to be mounted. For example, systemd automatically makes sure that remote filesystem mounts like [[NFS]] or [[Samba]] are only started after the network has been set up. Therefore, local and remote filesystem mounts specified in {{ic|/etc/fstab}} should work out of the box.<br />
<br />
See {{ic|man 5 systemd.mount}} for details.<br />
<br />
==== Automount ====<br />
<br />
* If you have a large {{ic|/home}} partition, it might be better to allow services that do not depend on {{ic|/home}} to start while {{ic|/home}} is checked by fsck. This can be achieved by adding the following options to the {{ic|/etc/fstab}} entry of your {{ic|/home}} partition:<br />
<br />
noauto,x-systemd.automount<br />
<br />
This will fsck and mount {{ic|/home}} when it is first accessed, and the kernel will buffer all file access to {{ic|/home}} until it is ready.<br />
<br />
Note: this will make your {{ic|/home}} filesystem type {{ic|autofs}}, which is ignored by [[mlocate]] by default. The speedup of automounting {{ic|/home}} may not be more than a second or two, depending on your system, so this trick may not be worth it. <br />
<br />
* The same applies to remote filesystem mounts. If you want them to be mounted only upon access, you will need to use the {{ic|noauto,x-systemd.automount}} parameters. In addition, you can use the {{ic|1=x-systemd.device-timeout=#}} option to specify a timeout in case the network resource is not available.<br />
<br />
* If you have encrypted filesystems with keyfiles, you can also add the {{ic|noauto}} parameter to the corresponding entries in {{ic|/etc/crypttab}}. Systemd will then not open the encrypted device on boot, but instead wait until it is actually accessed and then automatically open it with the specified keyfile before mounting it. This might save a few seconds on boot if you are using an encrypted RAID device for example, because systemd doesn't have to wait for the device to become available. For example:<br />
<br />
{{hc|/etc/crypttab|<br />
data /dev/md0 /root/key noauto}}<br />
<br />
==== LVM ====<br />
<br />
If you have [[LVM]] volumes not activated via the [[Mkinitcpio|initramfs]], enable the {{ic|lvm-monitoring}} service, which is provided by the {{pkg|lvm2}} package:<br />
<br />
# systemctl enable lvm-monitoring<br />
<br />
Similarly, if you have LVM on encrypted devices mounted later during boot (e.g. from {{ic|/etc/crypttab}}), enable the {{ic|lvm-on-crypt}} service, which is also provided by the {{pkg|lvm2}} package:<br />
<br />
# systemctl enable lvm-on-crypt<br />
<br />
=== ACPI power management ===<br />
<br />
Systemd handles some power-related [[Wikipedia:Advanced_Configuration_and_Power_Interface|ACPI]] events. They can be configured via the following options from {{ic|/etc/systemd/logind.conf}}:<br />
<br />
* {{ic|HandlePowerKey}}: specifies which action is invoked when the power key is pressed.<br />
* {{ic|HandleSuspendKey}}: specifies which action is invoked when the suspend key is pressed.<br />
* {{ic|HandleHibernateKey}}: specifies which action is invoked when the hibernate key is pressed.<br />
* {{ic|HandleLidSwitch}}: specifies which action is invoked when the lid is closed.<br />
<br />
The specified action can be one of {{ic|ignore}}, {{ic|poweroff}}, {{ic|reboot}}, {{ic|halt}}, {{ic|suspend}}, {{ic|hibernate}}, {{ic|hybrid-sleep}}, {{ic|lock}} or {{ic|kexec}}.<br />
<br />
If these options are not configured, systemd will use its defaults: {{ic|1=HandlePowerKey=poweroff}}, {{ic|1=HandleSuspendKey=suspend}}, {{ic|1=HandleHibernateKey=hibernate}}, and {{ic|1=HandleLidSwitch=suspend}}.<br />
<br />
On systems which run no graphical setup or only a simple window manager like [[i3]] or [[awesome]], this may replace the [[acpid]] daemon which is usually used to react to these ACPI events.<br />
<br />
{{Note|Run {{ic|systemctl restart systemd-logind.service}} for your changes to take effect.}}<br />
<br />
{{Note|Systemd cannot handle AC and Battery ACPI events, so if you use [[Laptop Mode Tools]] or other similar tools [[acpid]] is still required.}}<br />
<br />
In the current version of systemd, the {{ic|Handle*}} options will apply throughout the system unless they are "inhibited" (temporarily turned off) by a program, such as a power manager inside a desktop environment. If these inhibits are not taken, you can end up with a situation where systemd suspends your system, then when it wakes up the other power manager suspends it again.<br />
<br />
{{Warning|Currently, the power managers in the newest versions of [[KDE]] and [[GNOME]] are the only ones that issue the necessary "inhibited" commands. Until the others do, you will need to set the {{ic|Handle}} options to {{ic|ignore}} if you want your ACPI events to be handled by [[Xfce]], [[acpid]] or other programs.}}<br />
<br />
{{Note|Systemd can also use other suspend backends (such as [[Uswsusp]] or [[TuxOnIce]]), in addition to the default ''kernel'' backend, in order to put the computer to sleep or hibernate.}}<br />
<br />
==== Sleep hooks ====<br />
<br />
Systemd does not use [[pm-utils]] to put the machine to sleep when using {{ic|systemctl suspend}}, {{ic|systemctl hibernate}} or {{ic|systemctl hybrid-sleep}}; [[pm-utils]] hooks, including any [[Pm-utils#Creating_your_own_hooks|custom hooks]], will not be run. However, systemd provides two similar mechanisms to run custom scripts on these events.<br />
<br />
===== Suspend/resume service files =====<br />
<br />
Service files can be hooked into suspend.target, hibernate.target and sleep.target to execute actions before or after suspend/hibernate. Separate files should be created for user actions and root/system actions. To activate the user service files, {{ic|# systemctl enable suspend@<user> && systemctl enable resume@<user>}}. Examples:<br />
<br />
{{hc|/etc/systemd/system/suspend@.service|2=<nowiki><br />
[Unit]<br />
Description=User suspend actions<br />
Before=sleep.target<br />
<br />
[Service]<br />
User=%I<br />
Type=forking<br />
Environment=DISPLAY=:0<br />
ExecStartPre= -/usr/bin/pkill -u %u unison ; /usr/local/bin/music.sh stop ; /usr/bin/mysql -e 'slave stop'<br />
ExecStart=/usr/bin/sflock<br />
<br />
[Install]<br />
WantedBy=sleep.target</nowiki>}}<br />
<br />
{{hc|/etc/systemd/system/resume@.service|2=<nowiki><br />
[Unit]<br />
Description=User resume actions<br />
After=suspend.target<br />
<br />
[Service]<br />
User=%I<br />
Type=simple<br />
ExecStartPre=/usr/local/bin/ssh-connect.sh<br />
ExecStart=/usr/bin/mysql -e 'slave start'<br />
<br />
[Install]<br />
WantedBy=suspend.target</nowiki>}}<br />
<br />
For root/system actions (activate with {{ic|# systemctl enable root-suspend}}):<br />
<br />
{{hc|/etc/systemd/system/root-resume.service|2=<nowiki><br />
[Unit]<br />
Description=Local system resume actions<br />
After=suspend.target<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/usr/bin/systemctl restart mnt-media.automount<br />
<br />
[Install]<br />
WantedBy=suspend.target</nowiki>}}<br />
<br />
{{hc|/etc/systemd/system/root-suspend.service|2=<nowiki><br />
[Unit]<br />
Description=Local system suspend actions<br />
Before=sleep.target<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=-/usr/bin/pkill sshfs<br />
<br />
[Install]<br />
WantedBy=sleep.target</nowiki>}}<br />
<br />
A couple of handy hints about these service files (more in {{ic|man systemd.service}}):<br />
* If {{ic|1=<nowiki>Type=OneShot</nowiki>}} then you can use multiple {{ic|1=<nowiki>ExecStart=</nowiki>}} lines. Otherwise only one ExecStart line is allowed. You can add more commands with either {{ic|ExecStartPre}} or by separating commands with a semicolon (see the first example above -- note the spaces before and after the semicolon...these are required!).<br />
* A command prefixed with '-' will cause a non-zero exit status to be ignored and treated as a successful command. <br />
* The best place to find errors when troubleshooting these service files is of course with {{ic|journalctl}}.<br />
<br />
===== Combined Suspend/resume service file =====<br />
<br />
With the combined suspend/resume service file, a single hook does all the work for different phases (sleep/resume) and for different targets (suspend/hibernate/hybrid-sleep).<br />
<br />
Example and explanation:<br />
<br />
{{hc|/etc/systemd/system/wicd-sleep.service|2=<nowiki><br />
[Unit]<br />
Description=Wicd sleep hook<br />
Before=sleep.target<br />
StopWhenUnneeded=yes<br />
<br />
[Service]<br />
Type=oneshot<br />
RemainAfterExit=yes<br />
ExecStart=-/usr/share/wicd/daemon/suspend.py<br />
ExecStop=-/usr/share/wicd/daemon/autoconnect.py<br />
<br />
[Install]<br />
WantedBy=sleep.target</nowiki>}}<br />
<br />
* {{ic|1=<nowiki>RemainAfterExit=yes</nowiki>}}: After started, the service is considered active until it is explicitly stopped.<br />
* {{ic|1=<nowiki>StopWhenUnneeded=yes</nowiki>}}: When active, the service will be stopped if no other active service requires it. In this specific example, it will be stopped after sleep.target is stopped.<br />
* Because sleep.target is pulled in by suspend.target, hibernate.target and hybrid-sleep.target and sleep.target itself is a StopWhenUnneeded service, the hook is guaranteed to start/stop properly for different tasks.<br />
<br />
===== Hooks in /usr/lib/systemd/system-sleep =====<br />
<br />
Systemd runs all executables in {{ic|/usr/lib/systemd/system-sleep/}}, passing two arguments to each of them:<br />
<br />
* Argument 1: either {{ic|pre}} or {{ic|post}}, depending on whether the machine is going to sleep or waking up<br />
* Argument 2: {{ic|suspend}}, {{ic|hibernate}} or {{ic|hybrid-sleep}}, depending on which is being invoked<br />
<br />
In contrast to [[pm-utils]], systemd will run these scripts concurrently and not one after another.<br />
<br />
The output of any custom script will be logged by {{ic|systemd-suspend.service}}, {{ic|systemd-hibernate.service}} or {{ic|systemd-hybrid-sleep.service}}. You can see its output in systemd's [[Systemd#Journal|journal]]:<br />
# journalctl -b -u systemd-suspend<br />
<br />
Note that you can also use {{ic|sleep.target}}, {{ic|suspend.target}}, {{ic|hibernate.target}} or {{ic|hybrid-sleep.target}} to hook units into the sleep state logic instead of using custom scripts.<br />
<br />
An example of a custom sleep script:<br />
<br />
{{hc|/usr/lib/systemd/system-sleep/example.sh|<br />
#!/bin/sh<br />
case $1/$2 in<br />
pre/*)<br />
echo "Going to $2..."<br />
;;<br />
post/*)<br />
echo "Waking up from $2..."<br />
;;<br />
esac}}<br />
<br />
Don't forget to make your script executable:<br />
# chmod a+x /usr/lib/systemd/system-sleep/example.sh<br />
<br />
See {{ic|man 7 systemd.special}} and {{ic|man 8 systemd-sleep}} for more details.<br />
<br />
=== Temporary files ===<br />
<br />
Systemd-tmpfiles uses configuration files in {{ic|/usr/lib/tmpfiles.d/}} and {{ic|/etc/tmpfiles.d/}} to describe the creation, cleaning and removal of volatile and temporary files and directories which usually reside in directories such as {{ic|/run}} or {{ic|/tmp}}. Each configuration file is named in the style of {{ic|/etc/tmpfiles.d/<program>.conf}}. This will also override any files in {{ic|/usr/lib/tmpfiles.d/}} with the same name.<br />
<br />
tmpfiles are usually provided together with service files to create directories which are expected to exist by certain daemons. For example the [[Samba]] daemon expects the directory {{ic|/run/samba}} to exist and to have the correct permissions. The corresponding tmpfile looks like this:<br />
<br />
{{hc|/usr/lib/tmpfiles.d/samba.conf|<br />
D /run/samba 0755 root root}}<br />
<br />
tmpfiles may also be used to write values into certain files on boot. For example, if you use {{ic|/etc/rc.local}} to disable wakeup from USB devices with {{ic|echo USBE > /proc/acpi/wakeup}}, you may use the following tmpfile instead:<br />
<br />
{{hc|/etc/tmpfiles.d/disable-usb-wake.conf|<br />
w /proc/acpi/wakeup - - - - USBE}}<br />
<br />
See {{ic|man 5 tmpfiles.d}} for details.<br />
<br />
=== Units ===<br />
<br />
A unit configuration file encodes information about a service, a socket, a device, a mount point, an automount point, a swap file or partition, a start-up target, a file system path or a timer controlled and supervised by systemd. The syntax is inspired by XDG Desktop Entry Specification .desktop files, which are in turn inspired by Microsoft Windows .ini files.<br />
<br />
See {{ic|man 5 systemd.unit}} for details.<br />
<br />
== Transitioning from initscripts to systemd ==<br />
<br />
=== Initscripts emulation ===<br />
<br />
Integration with Arch's classic configuration is provided by the {{Pkg|initscripts}} package. When {{Pkg|initscripts}} are installed in parallel with systemd, with the system running on systemd, systemd will do the following:<br />
<br />
# Parse the {{ic|DAEMONS}} array of {{ic|/etc/rc.conf}} and start all listed daemons at boot<br />
# Execute {{ic|/etc/rc.local}} during boot<br />
# Execute {{ic|/etc/rc.local.shutdown}} during shutdown<br />
<br />
Initscripts emulation is simply meant as a transitional measure to ease users' move to systemd, and '''will eventually go away'''. Native systemd does not rely on {{ic|rc.conf}} centralised configuration, so it is recommended to use [[#Native configuration|native systemd configuration files]], which will take precedence over {{ic|/etc/rc.conf}}.<br />
<br />
{{Note|The recommended way to replace {{ic|/etc/rc.local}} is to write the custom service files for any things you want to run on the system startup. See the corresponding [[#Writing_custom_.service_files|section]].}}<br />
<br />
{{Note|If you disabled {{keypress|Ctrl+Alt+Del}} to reboot in {{ic|/etc/inittab}}, you will have to reconfigure this setting for systemd by running {{ic|systemctl mask ctrl-alt-del.target}} as root.}}<br />
<br />
{{Warning|If you install both of systemd (197-4 or later) and initscripts, and /etc/rc.local is existent, boot process will never finish (Because getty@tty1.service has not waited rc-local.service from systemd 197-4, getty cannot start). So remove or rename /etc/rc.local first.}}<br />
<br />
=== Moving away from the DAEMONS array ===<br />
<br />
For a pure systemd setup, you should remove the {{ic|/etc/rc.conf}} file entirely and enable services only via {{ic|systemctl}}. For each {{ic|<service_name>}} in the {{ic|DAEMONS}} array in {{ic|/etc/rc.conf}}, run:<br />
<br />
# systemctl enable <service_name>.service<br />
<br />
{{Tip|For a list of commonly used daemons with their initscripts and systemd equivalents, see [[Daemons List|this table]].}}<br />
<br />
If {{ic|<service_name>.service}} does not exist:<br />
<br />
* Most probably, systemd uses a different name. For example, {{ic|cronie.service}} replaces the {{ic|crond}} init daemon; {{ic|alsa-store.service}} and {{ic|alsa-restore.service}} replace the {{ic|alsa}} init daemon. Another important instance is the {{ic|network}} daemon, which is replaced with another set of service files (see [[Configuring Network]] for more details.)<br />
* Otherwise, a service file may not be available for systemd. In that case, you'll need to keep {{ic|rc.conf}} to start the service during boot up.<br />
<br />
{{Tip|You may look inside a package that contains daemon start scripts for service names. For instance:<br />
$ pacman -Ql cronie<br />
[...]<br />
cronie /etc/rc.d/crond #Daemon initscript listed in the DAEMONS array (unused in a "pure" systemd configuration)<br />
[...]<br />
cronie /usr/lib/systemd/system/cronie.service #Corresponding systemd daemon service<br />
[...]<br />
}}<br />
<br />
* Finally, some services do not need to be explicitly enabled by the user. For instance, {{ic|dbus.service}} will automatically be enabled when {{ic|dbus-core}} is installed. {{ic|alsa-store.service}} and {{ic|alsa-restore.service}} are also enabled automatically by systemd. Check the list of available services and their state using {{ic|systemctl list-unit-files}}.<br />
<br />
== Basic systemctl usage ==<br />
<br />
The main command used to introspect and control systemd is {{ic|systemctl}}. Some of its uses are examining the system state and managing the system and services. See {{ic|man 1 systemctl}} for more details.<br />
<br />
{{Tip|You can use all of the following {{ic|systemctl}} commands with the {{ic|-H <user>@<host>}} switch to control a systemd instance on a remote machine. This will use [[SSH]] to connect to the remote systemd instance.}}<br />
<br />
{{Note|{{ic|systemadm}} is the official graphical frontend for {{ic|systemctl}}. It is provided by the {{AUR|systemd-ui-git}} package from the [[AUR]].}}<br />
<br />
=== Analyzing the system state ===<br />
<br />
List running units:<br />
<br />
$ systemctl<br />
<br />
or:<br />
<br />
$ systemctl list-units<br />
<br />
List failed units:<br />
<br />
$ systemctl --failed<br />
<br />
The available unit files can be seen in {{ic|/usr/lib/systemd/system/}} and {{ic|/etc/systemd/system/}} (the latter takes precedence). You can see list installed unit files by:<br />
<br />
$ systemctl list-unit-files<br />
<br />
=== Using units ===<br />
<br />
Units can be, for example, services ({{ic|.service}}), mount points ({{ic|.mount}}), devices ({{ic|.device}}) or sockets ({{ic|.socket}}).<br />
<br />
When using {{ic|systemctl}}, you generally have to specify the complete name of the unit file, including its suffix, for example {{ic|sshd.socket}}. There are however a few shortforms when specifying the unit in the following {{ic|systemctl}} commands:<br />
<br />
* If you don't specify the suffix, systemctl will assume {{ic|.service}}. For example, {{ic|netcfg}} and {{ic|netcfg.service}} are treated equivalent.<br />
* Mount points will automatically be translated into the appropriate {{ic|.mount}} unit. For example, specifying {{ic|/home}} is equivalent to {{ic|home.mount}}.<br />
* Similiar to mount points, devices are automatically translated into the appropriate {{ic|.device}} unit, therefore specifying {{ic|/dev/sda2}} is equivalent to {{ic|dev-sda2.device}}.<br />
<br />
See {{ic|man systemd.unit}} for details.<br />
<br />
Activate a unit immediately:<br />
<br />
# systemctl start <unit><br />
<br />
Deactivate a unit immediately:<br />
<br />
# systemctl stop <unit><br />
<br />
Restart a unit:<br />
<br />
# systemctl restart <unit><br />
<br />
Ask a unit to reload its configuration:<br />
<br />
# systemctl reload <unit><br />
<br />
Show the status of a unit, including whether it is running or not:<br />
<br />
$ systemctl status <unit><br />
<br />
Check whether a unit is already enabled or not:<br />
<br />
$ systemctl is-enabled <unit><br />
<br />
Enable a unit to be started on bootup:<br />
<br />
# systemctl enable <unit><br />
<br />
{{Note|If services do not have an {{ic|Install}} section, it usually means they are called automatically by other services. But if you need to install them manually, use the following command, replacing {{ic|foo}} with the name of the service.<br />
# ln -s /usr/lib/systemd/system/''foo''.service /etc/systemd/system/graphical.target.wants/<br />
}}<br />
<br />
Disable a unit to not start during bootup:<br />
<br />
# systemctl disable <unit><br />
<br />
Show the manual page associated with a unit (this has to be supported by the unit file):<br />
<br />
$ systemctl help <unit><br />
<br />
Reload systemd, scanning for new or changed units:<br />
<br />
# systemctl daemon-reload<br />
<br />
=== Power management ===<br />
{{ic|polkit}} is necessary for power management.<br />
If you are in a local {{ic|systemd-logind}} user session and no other session is active, the following commands will work without root privileges. If not (for example, because another user is logged into a tty), systemd will automatically ask you for the root password.<br />
<br />
Shut down and reboot the system:<br />
<br />
$ systemctl reboot<br />
<br />
Shut down and power-off the system:<br />
<br />
$ systemctl poweroff<br />
<br />
Suspend the system:<br />
<br />
$ systemctl suspend<br />
<br />
Put the system into hibernation:<br />
<br />
$ systemctl hibernate<br />
<br />
Put the system into hybrid-sleep state (or suspend-to-both):<br />
<br />
$ systemctl hybrid-sleep<br />
<br />
== Running DEs under systemd ==<br />
<br />
To enable graphical login, run your preferred [[Display Manager]] daemon (e.g. [[KDM]]). At the moment, service files exist for [[GDM]], [[KDM]], [[SLiM]], [[XDM]], [[LXDM]] and [[LightDM]].<br />
<br />
# systemctl enable kdm<br />
<br />
This should work out of the box. If not, you might have a {{ic|default.target}} set manually or from a older install:<br />
<br />
{{hc|# ls -l /etc/systemd/system/default.target|<br />
/etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target}}<br />
<br />
Simply delete the symlink and systemd will use its stock {{ic|default.target}} (i.e. {{ic|graphical.target}}).<br />
<br />
# rm /etc/systemd/system/default.target<br />
<br />
=== Using systemd-logind ===<br />
<br />
{{Note|As of 2012-10-30, [[ConsoleKit]] has been [https://www.archlinux.org/news/consolekit-replaced-by-logind/ replaced by systemd-logind] as the default mechanism to login to the DE.}}<br />
<br />
In order to check the status of your user session, you can use {{ic|loginctl}}. All [[PolicyKit]] actions like suspending the system or mounting external drives will work out of the box.<br />
<br />
$ loginctl show-session $XDG_SESSION_ID<br />
<br />
== Writing custom .service files ==<br />
''See: [[Systemd/Services]]''<br />
<br />
=== Handling dependencies ===<br />
<br />
With systemd, dependencies can be resolved by designing the unit files correctly. The most typical case is that the unit {{ic|A}} requires the unit {{ic|B}} to be running before {{ic|A}} is started. In that case add {{ic|1=Requires=B}} and {{ic|1=After=B}} to the {{ic|[Unit]}} section of {{ic|A}}. If the dependency is optional, add {{ic|1=Wants=B}} and {{ic|1=After=B}} instead. Note that {{ic|1=Wants=}} and {{ic|1=Requires=}} do not imply {{ic|1=After=}}, meaning that if {{ic|1=After=}} is not specified, the two units will be started in parallel.<br />
<br />
Dependencies are typically placed on services and not on targets. For example, {{ic|network.target}} is pulled in by whatever service configures your network interfaces, therefore ordering your custom unit after it is sufficient since {{ic|network.target}} is started anyway.<br />
<br />
=== Type ===<br />
<br />
There are several different start-up types to consider when writing a custom service file. This is set with the {{ic|1=Type=}} parameter in the {{ic|[Service]}} section. See {{ic|man systemd.service}} for a more detailed explanation.<br />
<br />
* {{ic|1=Type=simple}}: systemd considers the service to be started up immediately. The process must not fork. Do not use this type if other services need to be ordered on this service, unless it is socket activated.<br />
* {{ic|1=Type=forking}}: systemd considers the service started up once the process forks and the parent has exited. For classic daemons use this type unless you know that it is not necessary. You should specify {{ic|1=PIDFile=}} as well so systemd can keep track of the main process.<br />
* {{ic|1=Type=oneshot}}: This is useful for scripts that do a single job and then exit. You may want to set {{ic|1=RemainAfterExit=yes}} as well so that systemd still considers the service as active after the process has exited.<br />
* {{ic|1=Type=notify}}: Identical to {{ic|1=Type=simple}}, but with the stipulation that the daemon will send a signal to systemd when it is ready. The reference implementation for this notification is provided by {{ic|libsystemd-daemon.so}}.<br />
* {{ic|1=Type=dbus}}: The service is considered ready when the specified {{ic|BusName}} appears on DBus's system bus.<br />
<br />
=== Editing provided unit files ===<br />
<br />
To edit a unit file provided by a package, you can create a directory called {{ic|/etc/systemd/system/<unit>.d/}} and place {{ic|*.conf}} files in there to override or add new options. Systemd will parse these {{ic|*.conf}} files and apply them on top of the original unit. For example, if you simply want to add an additional dependency to a unit, you may create the following file:<br />
<br />
{{hc|/etc/systemd/system/<unit>.d/customdependency.conf|2=<br />
[Unit]<br />
Requires=<new dependency><br />
After=<new dependency>}}<br />
<br />
Then run the following for your changes to take effect:<br />
<br />
# systemctl daemon-reload<br />
# systemctl restart <unit><br />
<br />
Alternatively you can copy the old unit file from {{ic|/usr/lib/systemd/system/}} to {{ic|/etc/systemd/system/}} and make your changes there. A unit file in {{ic|/etc/systemd/system/}} always overrides the same unit in {{ic|/usr/lib/systemd/system/}}. Note that when the original unit in {{ic|/usr/lib/}} is changed due to a package upgrade, these changes will not automatically apply to your custom unit file in {{ic|/etc/}}. Additionally you will have to manually reenable the unit with {{ic|systemctl reenable <unit>}}. It is therefore recommended to use the {{ic|*.conf}} method described before instead.<br />
<br />
{{Tip|You can use {{ic|systemd-delta}} to see which unit files have been overridden and what exactly has been changed.}} As the provided unit files will be updated from time to time, use systemd-delta for system maintenance.<br />
<br />
=== Syntax highlighting for units within Vim ===<br />
<br />
Syntax highlighting for systemd unit files within [[Vim]] can be enabled by installing {{Pkg|vim-systemd}} from the [[Official Repositories|official repositories]].<br />
<br />
== Targets ==<br />
<br />
Systemd uses ''targets'' which serve a similar purpose as runlevels but act a little different. Each ''target'' is named instead of numbered and is intended to serve a specific purpose with the possibility of having multiple ones active at the same time. Some ''targets'' are implemented by inheriting all of the services of another ''target'' and adding additional services to it. There are systemd ''target''s that mimic the common SystemVinit runlevels so you can still switch ''target''s using the familiar {{ic|telinit RUNLEVEL}} command.<br />
<br />
=== Get current targets ===<br />
<br />
The following should be used under systemd instead of {{ic|runlevel}}:<br />
<br />
$ systemctl list-units --type=target<br />
<br />
=== Create custom target ===<br />
<br />
The runlevels that are assigned a specific purpose on vanilla Fedora installs; 0, 1, 3, 5, and 6; have a 1:1 mapping with a specific systemd ''target''. Unfortunately, there is no good way to do the same for the user-defined runlevels like 2 and 4. If you make use of those it is suggested that you make a new named systemd ''target'' as {{ic|/etc/systemd/system/<your target>}} that takes one of the existing runlevels as a base (you can look at {{ic|/usr/lib/systemd/system/graphical.target}} as an example), make a directory {{ic|/etc/systemd/system/<your target>.wants}}, and then symlink the additional services from {{ic|/usr/lib/systemd/system/}} that you wish to enable.<br />
<br />
=== Targets table ===<br />
<br />
{| border="1"<br />
! SysV Runlevel !! systemd Target !! Notes<br />
|-<br />
| 0 || runlevel0.target, poweroff.target || Halt the system.<br />
|-<br />
| 1, s, single || runlevel1.target, rescue.target || Single user mode.<br />
|-<br />
| 2, 4 || runlevel2.target, runlevel4.target, multi-user.target || User-defined/Site-specific runlevels. By default, identical to 3.<br />
|-<br />
| 3 || runlevel3.target, multi-user.target || Multi-user, non-graphical. Users can usually login via multiple consoles or via the network.<br />
|-<br />
| 5 || runlevel5.target, graphical.target || Multi-user, graphical. Usually has all the services of runlevel 3 plus a graphical login.<br />
|-<br />
| 6 || runlevel6.target, reboot.target || Reboot<br />
|-<br />
| emergency || emergency.target || Emergency shell<br />
|-<br />
|}<br />
<br />
=== Change current target ===<br />
<br />
In systemd targets are exposed via "target units". You can change them like this:<br />
<br />
# systemctl isolate graphical.target<br />
<br />
This will only change the current target, and has no effect on the next boot. This is equivalent to commands such as {{ic|telinit 3}} or {{ic|telinit 5}} in Sysvinit.<br />
<br />
=== Change default target to boot into ===<br />
<br />
The standard target is {{ic|default.target}}, which is aliased by default to {{ic|graphical.target}} (which roughly corresponds to the old runlevel 5). To change the default target at boot-time, append one of the following [[kernel parameters]] to your bootloader:<br />
<br />
{{Tip|The {{ic|.target}} extension can be left out.}}<br />
<br />
* {{ic|1=systemd.unit=multi-user.target}} (which roughly corresponds to the old runlevel 3),<br />
* {{ic|1=systemd.unit=rescue.target}} (which roughly corresponds to the old runlevel 1).<br />
<br />
Alternatively, you may leave the bootloader alone and change {{ic|default.target}}. This can be done using {{ic|systemctl}}:<br />
<br />
# systemctl enable multi-user.target<br />
<br />
The effect of this command is outputted by {{ic|systemctl}}; a symlink to the new default target is made at {{ic|/etc/systemd/system/default.target}}. This works if, and only if:<br />
<br />
[Install]<br />
Alias=default.target<br />
<br />
is in the target's configuration file. Currently, {{ic|multi-user.target}} and {{ic|graphical.target}} both have it.<br />
<br />
== Journal ==<br />
<br />
Since version 38, systemd has its own logging system, the journal. Therefore, running a syslog daemon is no longer required. To read the log, use:<br />
<br />
# journalctl<br />
<br />
By default (when {{ic|Storage&#61;}} is set to {{ic|auto}} in {{ic|/etc/systemd/journald.conf}}), the journal writes to {{ic|/var/log/journal/}}. The directory {{ic|/var/log/journal/}} is part of core/systemd. If you or some program delete it, systemd will '''not''' recreate it automatically, however it will be recreated during the next update of systemd. Till then, logs will be written to {{ic|/run/systemd/journal}}. This means that logs will be lost on reboot.<br />
<br />
=== Filtering output ===<br />
<br />
{{ic|journalctl}} allows you to filter the output by specific fields.<br />
<br />
Examples:<br />
<br />
Show all messages from this boot:<br />
<br />
# journalctl -b<br />
<br />
However, often one is interested in messages not from the current, but from the previous boot (e.g. if an unrecoverable system crash happened). Currently, this feature is not implemented, though there was a discussion at [http://comments.gmane.org/gmane.comp.sysutils.systemd.devel/6608 systemd-devel@lists.freedesktop.org] (September/October 2012).<br />
<br />
As a workaround you can use at the moment:<br />
<br />
# journalctl --since=today | tac | sed -n '/-- Reboot --/{n;:r;/-- Reboot --/q;p;n;b r}' | tac<br />
<br />
provided, that the previous boot happened today. Be aware that, if there are many messages for the current day, the output of this command can be delayed for quite some time.<br />
<br />
Follow new messages:<br />
<br />
# journalctl -f<br />
<br />
Show all messages by a specific executable:<br />
<br />
# journalctl /usr/lib/systemd/systemd<br />
<br />
Show all messages by a specific process:<br />
<br />
# journalctl _PID=1<br />
<br />
Show all messages by a specific unit:<br />
<br />
# journalctl -u netcfg<br />
<br />
See {{ic|man journalctl}}, {{ic|systemd.journal-fields}} or Lennert's [http://0pointer.de/blog/projects/journalctl.html blog post] for details.<br />
<br />
=== Journal size limit ===<br />
<br />
If the journal is persistent (non-volatile), its size limit is set to a default value of 10% of the size of the respective file system. For example, with {{ic|/var/log/journal}} located on a 50 GiB root partition this would lead to 5 GiB of journal data. The maximum size of the persistent journal can be controlled by {{ic|SystemMaxUse}} in {{ic|/etc/systemd/journald.conf}}, so to limit it for example to 50 MiB uncomment and edit the corresponding line to:<br />
<br />
SystemMaxUse=50M<br />
<br />
Refer to {{ic|man journald.conf}} for more info.<br />
<br />
=== Journald in conjunction with syslog ===<br />
<br />
Compatibility with classic syslog implementations is provided via a socket {{ic|/run/systemd/journal/syslog}}, to which all messages are forwarded. To make the syslog daemon work with the journal, it has to bind to this socket instead of {{ic|/dev/log}} ([http://lwn.net/Articles/474968/ official announcement]). The {{pkg|syslog-ng}} package in the repositories automatically provides the necessary configuration.<br />
<br />
# systemctl enable syslog-ng<br />
A good {{ic|journalctl}} tutorial is [http://0pointer.de/blog/projects/ here].<br />
<br />
== Optimization ==<br />
<br />
{{merge|Improve Boot Performance|reason=Should be moved to the article covering this topic.}}<br />
<br />
See [[Improve Boot Performance]].<br />
<br />
=== Analyzing the boot process ===<br />
<br />
==== Using systemd-analyze ====<br />
<br />
Systemd provides a tool called {{ic|systemd-analyze}} that allows you to analyze your boot process so you can see which unit files are causing your boot process to slow down. You can then optimize your system accordingly.<br />
<br />
To see how much time was spent in kernelspace and userspace on boot, simply use:<br />
<br />
$ systemd-analyze<br />
<br />
{{Tip|<br />
* If you append the {{ic|timestamp}} hook to your {{ic|HOOKS}} array in {{ic|/etc/[[mkinitcpio]].conf}} and rebuild your initramfs with {{ic|mkinitcpio -p linux}}, systemd-analyze is also able to show you how much time was spent in the initramfs.<br />
* If you boot via [[UEFI]] and use a boot loader which implements systemds' [http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface Boot Loader Interface] (which currently only [[Gummiboot]] does), systemd-analyze can additionally show you how much time was spent in the EFI firmware and the boot loader itself.}}<br />
<br />
To list the started unit files, sorted by the time each of them took to start up:<br />
<br />
$ systemd-analyze blame<br />
<br />
You can also create a SVG file which describes your boot process graphically, similiar to [[Bootchart]]:<br />
<br />
$ systemd-analyze plot > plot.svg<br />
<br />
==== Using systemd-bootchart ====<br />
<br />
Bootchart has been merged into systemd since Oct. 17, and you can use it to boot just as you would with the original bootchart. Add this to your kernel line:<br />
<br />
initcall_debug printk.time=y init=/usr/lib/systemd/systemd-bootchart<br />
<br />
==== Using bootchart2 ====<br />
<br />
You could also use a version of bootchart to visualize the boot sequence. Since you are not able to put a second init into the kernel command line you won't be able to use any of the standard bootchart setups. However the {{AUR|bootchart2}} package from [[AUR]] comes with an undocumented systemd service. After you've installed bootchart2 do:<br />
<br />
# systemctl enable bootchart<br />
<br />
Read the [https://github.com/mmeeks/bootchart bootchart documentation] for further details on using this version of bootchart.<br />
<br />
=== Readahead ===<br />
<br />
Systemd comes with its own readahead implementation, this should in principle improve boot time. However, depending on your kernel version and the type of your hard drive, your mileage may vary (i.e. it might be slower). To enable, do:<br />
<br />
# systemctl enable systemd-readahead-collect systemd-readahead-replay<br />
<br />
Remember that in order for the readahead to work its magic, you should reboot a couple of times.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Shutdown/reboot takes terribly long ===<br />
<br />
If the shutdown process takes a very long time (or seems to freeze) most likely a service not exiting is to blame. Systemd waits some time for each service to exit before trying to kill it. To find out if you are affected, see [http://freedesktop.org/wiki/Software/systemd/Debugging#Shutdown_Completes_Eventually this article].<br />
<br />
=== Short lived processes don't seem to log any output ===<br />
<br />
If {{ic|journalctl -u foounit.service}} doesn't show any output for a short lived service, look at the PID instead. For example, if systemd-modules-load.service fails, and {{ic|systemctl status systemd-modules-load}} shows that it ran as PID 123, then you might be able to see output in the journal for that PID, i.e. {{ic|journalctl -b _PID&#61;123}}. Metadata fields for the journal such as _SYSTEMD_UNIT and _COMM are collected asynchronously and rely on the {{ic|/proc}} directory for the process existing. Fixing this requires fixing the kernel to provide this data via a socket connection, similar to SCM_CREDENTIALS.<br />
<br />
== See also ==<br />
<br />
*[http://www.freedesktop.org/wiki/Software/systemd Official Web Site]<br />
*[http://0pointer.de/public/systemd-man/ Manual Pages]<br />
*[http://freedesktop.org/wiki/Software/systemd/Optimizations systemd Optimizations]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions FAQ]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks Tips And Tricks]<br />
*[http://0pointer.de/public/systemd-ebook-psankar.pdf systemd for Administrators (PDF)]<br />
*[http://fedoraproject.org/wiki/Systemd About systemd on Fedora Project]<br />
*[http://fedoraproject.org/wiki/How_to_debug_Systemd_problems How to debug systemd problems]<br />
*[http://www.h-online.com/open/features/Control-Centre-The-systemd-Linux-init-system-1565543.html Two] [http://www.h-online.com/open/features/Booting-up-Tools-and-tips-for-systemd-1570630.html part] introductory article in ''The H Open'' magazine.<br />
*[http://0pointer.de/blog/projects/systemd.html Lennart's blog story]<br />
*[http://0pointer.de/blog/projects/systemd-update.html status update]<br />
*[http://0pointer.de/blog/projects/systemd-update-2.html status update2]<br />
*[http://0pointer.de/blog/projects/systemd-update-3.html status update3]<br />
*[http://0pointer.de/blog/projects/why.html most recent summary]<br />
*[http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet Fedora's SysVinit to systemd cheatsheet]</div>8472https://wiki.archlinux.org/index.php?title=Steam&diff=249991Steam2013-03-09T18:24:06Z<p>8472: /* Crusader Kings II */ small path fix</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|libgles}}<br />
* {{pkg|lib32-libgles}}<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
INSTDIR="`dirname "$0"`" ; cd "${INSTDIR}" ; INSTDIR="`pwd`"<br />
export LD_LIBRARY_PATH=${INSTDIR}/bin:~/.steam/bin<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>8472https://wiki.archlinux.org/index.php?title=Steam&diff=249989Steam2013-03-09T18:22:15Z<p>8472: /* Crusader Kings II */ - correction of save game files location</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|libgles}}<br />
* {{pkg|lib32-libgles}}<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox\ Interactive/Crusader\ Kings\ II/save\ games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
INSTDIR="`dirname "$0"`" ; cd "${INSTDIR}" ; INSTDIR="`pwd`"<br />
export LD_LIBRARY_PATH=${INSTDIR}/bin:~/.steam/bin<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>8472https://wiki.archlinux.org/index.php?title=Steam&diff=247857Steam2013-02-18T21:50:51Z<p>8472: /* Black map */ alternate solution</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable <code>STEAM_FRAME_FORCE_CLOSE</code> to <code>1</code>. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. Then create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|libgles}}<br />
* {{pkg|lib32-libgles}}<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in <code>~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh</code> you have <code>__GL_THREADED_OPTIMIZATIONS=1</code>, try changing it to <code>0</code>.<br />
<br />
====Crusader Kings II====<br />
Game is installed into "$HOME/Steam/SteamApps/common/Crusader Kings II".<br />
<br />
Game can be started directly, without need of running Steam on background, using command "$HOME/Steam/SteamApps/common/Crusader Kings II/ck2".<br />
<br />
Saves are stored in "$HOME/Steam/SteamApps/common/Crusader Kings II/save games/".<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
{community,multilib}-testing/steam 1.0.0.28-3 has should export this variable inside /usr/bin/steam<br />
<br />
export the variable somewhere before in your system.<br />
export SDL_AUDIODRIVER=alsa<br />
<br />
======Black map======<br />
1. If the map is black and you don't see the character portraits, remove the first two lines and the last line from ~/.local/share/Steam/SteamApps/common/Crusader Kings II/gfx/FX/standardfuncsgfx.fxh, and install {{pkg|lib32-libtxc_dxtn}} ([http://steamcommunity.com/app/203770/discussions/0/846942156138239751#p3 source]). This fix worked on ATI Radeon with open-source drivers.<br />
<br />
2. Thought the solution mentioned in ([http://steamcommunity.com/app/203770/discussions/0/846942156138239751#p3 source article]) might help a lot of affected, even there in disc. were also many people, whom this solution helped only partially, or not at all. Alternate option, if previous ain't working might be to try install the proprietary graphics drivers instead of those open-source one.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
INSTDIR="`dirname $0`" ; cd "${INSTDIR}" ; INSTDIR="`pwd`"<br />
export LD_LIBRARY_PATH=${INSTDIR}/bin:~/.steam/bin<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you don't need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl}} + {{Keypress|G}} to stop mouse capturing (that was non obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that doesn't work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem doesn't work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use Alsa, you need to launch the Steam or game directly with {{ic|SDL_AUDIODRIVER&#61;alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still doesn't work, you may also need to set the environment variable AUDIODEV. For instance {{ic|AUDIODEV&#61;Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libglapi}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy try to edit /etc/openal/alsoft.conf with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text try removing "$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0".<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file "$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt" e.g. like this:<br />
<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>8472https://wiki.archlinux.org/index.php?title=Steam&diff=247444Steam2013-02-15T20:27:43Z<p>8472: /* Crusader Kings II */ sound troubleshooting update</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. (Please help us expand on this list)<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. So don't use the XRender!<br />
<br />
====The Close Button Only Minimizes the Window====<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this simple set the environment variable <code>STEAM_FRAME_FORCE_CLOSE</code> to one. You can do this by launching steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
For more information on this work around see [https://github.com/ValveSoftware/steam-for-linux/issues/1025 the related bug report] for details.<br />
<br />
====Flash not working on 64-bit systems====<br />
First ensure {{pkg|lib32-flashplugin}} is installed.<br />
<br />
Then create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Mouse Cursor Overwritten ====<br />
{{Out of date|This issue is supposed to be fixed: https://github.com/ValveSoftware/steam-for-linux/issues/2 .}}<br />
Steam overwrites the [[Cursor Themes|X11 Cursor theme]] when it launches. This is a problem with Gnome and other WMs/DMs that do not set a cursor theme. You can overcome this for Gnome by setting a mouse cursor theme.<br />
<br />
To fix this issue, become root and put the following into {{ic|/usr/share/icons/default/index.theme}} (creating the directory {{ic|/usr/share/icons/default}} if necessary):<br />
{{hc|/usr/share/icons/default/index.theme|<nowiki><br />
[Icon Theme]<br />
Inherits=Adwaita<br />
</nowiki>}}<br />
<br />
Note: Instead of "Adwaita", you can choose another cursor theme (e.g. Human).<br />
Alternatively, you can install {{AUR|gnome-cursors-fix}} from the [[AUR]].<br />
<br />
Alternatively, you can create a symlink {{ic|~/.icons/default}} that points to the entry for your cursor in {{ic|/usr/share/icons}}, for example:<br />
<br />
mkdir -p ~/.icons<br />
ln -sT /usr/share/icons/Neutral_Plus ~/.icons/default<br />
<br />
If the cursor gets stuck pointing in the wrong direction after exiting Steam, a workaround is to run <code>xsetroot -cursor_name left_ptr</code> (From [http://awesome.naquadah.org/wiki/FAQ#How_to_change_the_cursor_theme.3F the awesomewm wiki]).<br />
<br />
If a cursor theme is set and Steam is still causing cursor problems then your cursor theme may not have the cursors under the names that Steam is looking at, for example KDE's cursor theme, Oxygen_White, the file for the cursor is 'left_ptr' but Steam is looking for 'arrow'. The simplest solution is to make symlinks to the appropriate cursor files.<br />
<br />
cd /usr/share/icons/Oxygen_White/cursors/<br />
ln -s ./left_ptr ./arrow<br />
ln -s ./size_fdiag ./bottom_right_corner<br />
ln -s ./size_fdiag ./top_left_corner<br />
ln -s ./size_bdiag ./bottom_left_corner<br />
ln -s ./size_bdiag ./top_right_corner<br />
ln -s ./size_hor ./left_side<br />
ln -s ./size_hor ./right_side<br />
ln -s ./size_ver ./top_side<br />
ln -s ./size_ver ./bottom_side<br />
<br />
The above should work for any KDE compatible cursor theme, but may not work for other ones if the cursor theme uses different names than size_fdiag, size_bdiag, size_hor, and size_ver.<br />
<br />
====Error: S3TC support is missing====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|libglu}} and {{pkg|libtxn_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|gtk2}} or {{pkg|lib32-gtk2}}<br />
* {{pkg|libvorbis}} or {{pkg|lib32-libvorbis}}<br />
* {{pkg|nvidia-cg-toolkit}} or {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|libjpeg6}} or {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
INSTDIR="`dirname $0`" ; cd "${INSTDIR}" ; INSTDIR="`pwd`"<br />
export LD_LIBRARY_PATH=${INSTDIR}/bin:~/.steam/bin<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you don't need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl}} + {{Keypress|G}} to stop mouse capturing (that was non obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
* {{pkg|libtxc_dxtn}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem doesn't work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Splice====<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{Pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use Alsa, you need to launch the Steam or game directly with {{ic|SDL_AUDIODRIVER&#61;alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still doesn't work, you may also need to set the environment variable AUDIODEV. For instance {{ic|AUDIODEV&#61;Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libglapi}}<br />
* {{pkg|lib32-libdrm}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in <code>~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh</code> you have <code>__GL_THREADED_OPTIMIZATIONS=1</code>, try changing it to 0.<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Serious Sam 3: BFE uses OpenAL to output sound. If you don't have audio in the game, you may want to tweak ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community]. If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
<br />
====Crusader Kings II====<br />
Game is installed into "$HOME/Steam/SteamApps/common/Crusader Kings II".<br />
<br />
Game can be started directly, without need of running Steam on background, using command "$HOME/Steam/SteamApps/common/Crusader Kings II/ck2".<br />
<br />
Saves are stored in "$HOME/Steam/SteamApps/common/Crusader Kings II/save games/".<br />
<br />
Apparently proprietary graphics drivers are required, otherwise most of the graphics won't be shown.<br />
=====Dependencies=====<br />
[[AMD Catalyst]] graphics (tested):<br />
* {{pkg|lib32-catalyst-utils}}<br />
* {{pkg|xf86-video-fbdev}}<br />
<br />
[[NVIDIA]] graphics (not tested):<br />
* {{pkg|lib32-nvidia-utils}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
If the sound is missing in the game, try to start the game this way on the one line & jointly:<br />
SDL_AUDIODRIVER=alsa "$HOME/Steam/SteamApps/common/Crusader Kings II/ck2"<br />
or export the variable somewhere before in your system.<br />
export SDL_AUDIODRIVER=alsa<br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>8472https://wiki.archlinux.org/index.php?title=Steam&diff=247443Steam2013-02-15T19:12:23Z<p>8472: Crusader Kings II added</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. (Please help us expand on this list)<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. So don't use the XRender!<br />
<br />
====The Close Button Only Minimizes the Window====<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this simple set the environment variable <code>STEAM_FRAME_FORCE_CLOSE</code> to one. You can do this by launching steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
For more information on this work around see [https://github.com/ValveSoftware/steam-for-linux/issues/1025 the related bug report] for details.<br />
<br />
====Flash not working on 64-bit systems====<br />
First ensure {{pkg|lib32-flashplugin}} is installed.<br />
<br />
Then create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Mouse Cursor Overwritten ====<br />
{{Out of date|This issue is supposed to be fixed: https://github.com/ValveSoftware/steam-for-linux/issues/2 .}}<br />
Steam overwrites the [[Cursor Themes|X11 Cursor theme]] when it launches. This is a problem with Gnome and other WMs/DMs that do not set a cursor theme. You can overcome this for Gnome by setting a mouse cursor theme.<br />
<br />
To fix this issue, become root and put the following into {{ic|/usr/share/icons/default/index.theme}} (creating the directory {{ic|/usr/share/icons/default}} if necessary):<br />
{{hc|/usr/share/icons/default/index.theme|<nowiki><br />
[Icon Theme]<br />
Inherits=Adwaita<br />
</nowiki>}}<br />
<br />
Note: Instead of "Adwaita", you can choose another cursor theme (e.g. Human).<br />
Alternatively, you can install {{AUR|gnome-cursors-fix}} from the [[AUR]].<br />
<br />
Alternatively, you can create a symlink {{ic|~/.icons/default}} that points to the entry for your cursor in {{ic|/usr/share/icons}}, for example:<br />
<br />
mkdir -p ~/.icons<br />
ln -sT /usr/share/icons/Neutral_Plus ~/.icons/default<br />
<br />
If the cursor gets stuck pointing in the wrong direction after exiting Steam, a workaround is to run <code>xsetroot -cursor_name left_ptr</code> (From [http://awesome.naquadah.org/wiki/FAQ#How_to_change_the_cursor_theme.3F the awesomewm wiki]).<br />
<br />
If a cursor theme is set and Steam is still causing cursor problems then your cursor theme may not have the cursors under the names that Steam is looking at, for example KDE's cursor theme, Oxygen_White, the file for the cursor is 'left_ptr' but Steam is looking for 'arrow'. The simplest solution is to make symlinks to the appropriate cursor files.<br />
<br />
cd /usr/share/icons/Oxygen_White/cursors/<br />
ln -s ./left_ptr ./arrow<br />
ln -s ./size_fdiag ./bottom_right_corner<br />
ln -s ./size_fdiag ./top_left_corner<br />
ln -s ./size_bdiag ./bottom_left_corner<br />
ln -s ./size_bdiag ./top_right_corner<br />
ln -s ./size_hor ./left_side<br />
ln -s ./size_hor ./right_side<br />
ln -s ./size_ver ./top_side<br />
ln -s ./size_ver ./bottom_side<br />
<br />
The above should work for any KDE compatible cursor theme, but may not work for other ones if the cursor theme uses different names than size_fdiag, size_bdiag, size_hor, and size_ver.<br />
<br />
====Error: S3TC support is missing====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|libglu}} and {{pkg|libtxn_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|gtk2}} or {{pkg|lib32-gtk2}}<br />
* {{pkg|libvorbis}} or {{pkg|lib32-libvorbis}}<br />
* {{pkg|nvidia-cg-toolkit}} or {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|libjpeg6}} or {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
INSTDIR="`dirname $0`" ; cd "${INSTDIR}" ; INSTDIR="`pwd`"<br />
export LD_LIBRARY_PATH=${INSTDIR}/bin:~/.steam/bin<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you don't need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl}} + {{Keypress|G}} to stop mouse capturing (that was non obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
* {{pkg|libtxc_dxtn}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem doesn't work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Splice====<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{Pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use Alsa, you need to launch the Steam or game directly with {{ic|SDL_AUDIODRIVER&#61;alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still doesn't work, you may also need to set the environment variable AUDIODEV. For instance {{ic|AUDIODEV&#61;Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libglapi}}<br />
* {{pkg|lib32-libdrm}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in <code>~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh</code> you have <code>__GL_THREADED_OPTIMIZATIONS=1</code>, try changing it to 0.<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Serious Sam 3: BFE uses OpenAL to output sound. If you don't have audio in the game, you may want to tweak ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community]. If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
<br />
====Crusader Kings II====<br />
Game is installed into "$HOME/Steam/SteamApps/common/Crusader Kings II".<br />
<br />
Game can be started directly, without need of running Steam on background, using command "$HOME/Steam/SteamApps/common/Crusader Kings II/ck2".<br />
<br />
Saves are stored in "$HOME/Steam/SteamApps/common/Crusader Kings II/save games/".<br />
<br />
Apparently proprietary graphics drivers are required, otherwise most of the graphics won't be shown.<br />
=====Dependencies=====<br />
[[AMD Catalyst]] graphics (tested):<br />
* {{pkg|lib32-catalyst-utils}}<br />
* {{pkg|xf86-video-fbdev}}<br />
<br />
[[NVIDIA]] graphics (not tested):<br />
* {{pkg|lib32-nvidia-utils}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
yet to be discovered<br />
<br />
<br />
<br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>8472https://wiki.archlinux.org/index.php?title=PCManFM&diff=236093PCManFM2012-11-20T12:19:47Z<p>8472: /* "Not authorized" errors when accessing/mounting USB drives */ - only small correction in formating</p>
<hr />
<div>[[Category:File managers]]<br />
[[cs:PCManFM]]<br />
[[fr:PCManFM]]<br />
[[id:PCManFM]]<br />
[[pl:PCManFM]]<br />
[[ru:PCManFM]]<br />
'''PCManFM''' is "an extremly fast, lightweight, yet feature-rich file manager with tabbed browsing". Source: [http://pcmanfm.sourceforge.net/ PCManFM on sourceforge]. PCManFM is the default file manager of the [[LXDE]] (Lightweight X11 Desktop Environment).<br />
<br />
==Installation==<br />
Run the following command to install:<br />
# pacman -S pcmanfm<br />
<br />
You will also require [[gamin]] (a replacement for [[FAM]], which required a daemon) to pick up events such as file and directories changes:<br />
<br />
# pacman -S gamin<br />
<br />
==Volume handling==<br />
PCManFM is able to mount and unmount devices, both manually and automatically. This feature is offered as an alternative to CLI tools such as [[pmount]]. There are various 'up-to-date' versions of PCManFM (see below), and different volume handling strategies can be chosen.<br />
===Mounting with udisks===<br />
The current release of PCManFM is able to handle volumes through udisks. If you want to use this feature, make sure the D-Bus daemon is installed and running. See the [[D-Bus]] page for details.<br />
<br />
===Trash support and automounting with gvfs===<br />
See [[GVFS]].<br />
<br />
==Tips & troubleshooting==<br />
===No "Applications"===<br />
# pacman -S gnome-menus<br />
You can try this method: Delete all files in the $HOME/.cache/menus directory, and run PCManFM again.<br />
<br />
PCManFM requires the environment variable "XDG_MENU_PREFIX" to be set. The value of the variable should match the beginning of a file present in the "/etc/xdg/menus/" directory. In case you have installed the "gnome-menus" package, you can set the value in your .xinitrc file with the line :<br />
$ export XDG_MENU_PREFIX=gnome-<br />
See these threads for more informations : [https://bbs.archlinux.org/viewtopic.php?pid=1110903], and especially this post from the Linux Mint Forums [http://forums.linuxmint.com/viewtopic.php?f=175&t=53986#p501920]<br />
<br />
===No icons?===<br />
If you are using a window manager over a desktop environment and notice you have no icons for folders and files, install an icon theme:<br />
# pacman -S tangerine-icon-theme<br />
<br />
Then edit {{ic|~/.gtkrc-2.0}} '''or''' {{ic|/etc/gtk-2.0/gtkrc}} and add the following line:<br />
gtk-icon-theme-name = "Tangerine"<br />
<br />
===NTFS Read/Write Support===<br />
Install ntfs-3g (See [[NTFS-3G]]):<br />
# pacman -S ntfs-3g<br />
<br />
===gnome-open opens "Find" dialog instead of the directory===<br />
Remove or rename the file {{ic|/usr/share/applications/pcmanfm-find.desktop}}. If you're running pcmanfm-mod from AUR, remove or rename the file {{ic|/usr/share/applications/pcmanfm-mod-find.desktop}}.<br />
<br />
===No "Previous/Next Folder" functionality with mouse buttons===<br />
A method to fix this is with [[Xbindkeys]]:<br />
<br />
Install xbindkeys:<br />
# pacman -S xbindkeys<br />
Edit ~/.xbindkeysrc to contain the following:<br />
# Sample .xbindkeysrc for a G9x mouse.<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Left]'"<br />
b:8<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Right]'"<br />
b:9<br />
Actual button codes can be obtained with xev[http://www.archlinux.org/packages/extra/i686/xorg-xev/].<br />
<br />
Add<br />
xbindkeys &<br />
to your {{ic|~/.xinitrc}} to execute xbindkeys on log-in.<br />
<br />
===--desktop parameter not working / crashing X-server===<br />
Make sure you have ownership and write permissions on {{ic|~/.config/pcmanfm}}<br />
<br />
Setting the wallpaper either by using the --desktop-pref parameter or editing {{ic|~/.config/pcmanfm/default/pcmanfm.config}} solves the problem.<br />
<br />
===Terminal emulator advanced configuration not saved===<br />
Make sure you have rights on libfm configuration file:<br />
<br />
# chmod -R 755 ~/.config/libfm<br />
# chmod 777 ~/.config/libfm/libfm.conf<br />
<br />
===Make PCManFM remember your preferred Sort Files settings===<br />
You can use View | Sort Files to change the order in which PCManFM lists the files, but PCManFM won't remember that the next time you start it. To make it remember, go to Edit | Preferences and Close. That will write your current sort_type and sort_by values into ~/.config/pcmanfm/LXDE/pcmanfm.conf.<br />
<br />
==="Not authorized" errors when accessing/mounting USB drives===<br />
In various WM (in use with [[PolicyKit#Mounting_USB_drives|PolicyKit]]), You might receive an "Not authorized" errors when trying to access e.g. an USB drive.<br />
<br />
If not existing, create (including the directory actions, which ain't existing by default in there) {{ic|/etc/polkit-1/actions/org.freedesktop.udisks2.pkla}} to contain the following: <br />
[Storage Permissions]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.modify-device<br />
ResultAny=yes<br />
ResultInactive=yes<br />
ResultActive=yes<br />
<br />
==Available Versions==<br />
There are several versions of PCManFM currently available:<br />
<br />
===PCManFM2===<br />
This is the package in Arch's extra repository as "pcmanfm". The current git test version of it is available in the AUR as [https://aur.archlinux.org/packages.php?ID=33601 pcmanfm-git]. More information is available on the [http://forum.lxde.org/viewforum.php?f=22 LXDE Forum].<br />
<br />
===PCManFM-Mod===<br />
PCManFM-Mod adds user-definable commands, other features, and bugfixes to the legacy version of the PCManFM file manager v0.5.2. This version builds and installs as "pcmanfm-mod" and will run independently of other versions of PCManFM you have installed on your system. This legacy version is still desired by some due to more stability than the newer 0.9.x rewrite in progress, less Gnome dependencies, and the use of HAL rather than gnome-vfs. PCManFM-Mod is available in the [https://aur.archlinux.org/packages.php?ID=34819 AUR as pcmanfm-mod] and as [https://aur.archlinux.org/packages.php?ID=39547 pcmanfm-mod-prov] (latter provides pcmanfm). More information is available at [http://igurublog.wordpress.com/downloads/mod-pcmanfm/ IgnorantGuru's Blog].<br />
<br />
===PCManFM_with_Search===<br />
Latest PCmanFM version with search dialog in the [[AUR]] as {{aur|pcmanfm_with_search}}.</div>8472https://wiki.archlinux.org/index.php?title=PCManFM&diff=236041PCManFM2012-11-19T22:43:15Z<p>8472: /* Tips & troubleshooting */ - Mounting USB drives</p>
<hr />
<div>[[Category:File managers]]<br />
[[cs:PCManFM]]<br />
[[fr:PCManFM]]<br />
[[id:PCManFM]]<br />
[[pl:PCManFM]]<br />
[[ru:PCManFM]]<br />
'''PCManFM''' is "an extremly fast, lightweight, yet feature-rich file manager with tabbed browsing". Source: [http://pcmanfm.sourceforge.net/ PCManFM on sourceforge]. PCManFM is the default file manager of the [[LXDE]] (Lightweight X11 Desktop Environment).<br />
<br />
==Installation==<br />
Run the following command to install:<br />
# pacman -S pcmanfm<br />
<br />
You will also require [[gamin]] (a replacement for [[FAM]], which required a daemon) to pick up events such as file and directories changes:<br />
<br />
# pacman -S gamin<br />
<br />
==Volume handling==<br />
PCManFM is able to mount and unmount devices, both manually and automatically. This feature is offered as an alternative to CLI tools such as [[pmount]]. There are various 'up-to-date' versions of PCManFM (see below), and different volume handling strategies can be chosen.<br />
===Mounting with udisks===<br />
The current release of PCManFM is able to handle volumes through udisks. If you want to use this feature, make sure the D-Bus daemon is installed and running. See the [[D-Bus]] page for details.<br />
<br />
===Trash support and automounting with gvfs===<br />
See [[GVFS]].<br />
<br />
==Tips & troubleshooting==<br />
===No "Applications"===<br />
# pacman -S gnome-menus<br />
You can try this method: Delete all files in the $HOME/.cache/menus directory, and run PCManFM again.<br />
<br />
PCManFM requires the environment variable "XDG_MENU_PREFIX" to be set. The value of the variable should match the beginning of a file present in the "/etc/xdg/menus/" directory. In case you have installed the "gnome-menus" package, you can set the value in your .xinitrc file with the line :<br />
$ export XDG_MENU_PREFIX=gnome-<br />
See these threads for more informations : [https://bbs.archlinux.org/viewtopic.php?pid=1110903], and especially this post from the Linux Mint Forums [http://forums.linuxmint.com/viewtopic.php?f=175&t=53986#p501920]<br />
<br />
===No icons?===<br />
If you are using a window manager over a desktop environment and notice you have no icons for folders and files, install an icon theme:<br />
# pacman -S tangerine-icon-theme<br />
<br />
Then edit {{ic|~/.gtkrc-2.0}} '''or''' {{ic|/etc/gtk-2.0/gtkrc}} and add the following line:<br />
gtk-icon-theme-name = "Tangerine"<br />
<br />
===NTFS Read/Write Support===<br />
Install ntfs-3g (See [[NTFS-3G]]):<br />
# pacman -S ntfs-3g<br />
<br />
===gnome-open opens "Find" dialog instead of the directory===<br />
Remove or rename the file {{ic|/usr/share/applications/pcmanfm-find.desktop}}. If you're running pcmanfm-mod from AUR, remove or rename the file {{ic|/usr/share/applications/pcmanfm-mod-find.desktop}}.<br />
<br />
===No "Previous/Next Folder" functionality with mouse buttons===<br />
A method to fix this is with [[Xbindkeys]]:<br />
<br />
Install xbindkeys:<br />
# pacman -S xbindkeys<br />
Edit ~/.xbindkeysrc to contain the following:<br />
# Sample .xbindkeysrc for a G9x mouse.<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Left]'"<br />
b:8<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Right]'"<br />
b:9<br />
Actual button codes can be obtained with xev[http://www.archlinux.org/packages/extra/i686/xorg-xev/].<br />
<br />
Add<br />
xbindkeys &<br />
to your {{ic|~/.xinitrc}} to execute xbindkeys on log-in.<br />
<br />
===--desktop parameter not working / crashing X-server===<br />
Make sure you have ownership and write permissions on {{ic|~/.config/pcmanfm}}<br />
<br />
Setting the wallpaper either by using the --desktop-pref parameter or editing {{ic|~/.config/pcmanfm/default/pcmanfm.config}} solves the problem.<br />
<br />
===Terminal emulator advanced configuration not saved===<br />
Make sure you have rights on libfm configuration file:<br />
<br />
# chmod -R 755 ~/.config/libfm<br />
# chmod 777 ~/.config/libfm/libfm.conf<br />
<br />
===Make PCManFM remember your preferred Sort Files settings===<br />
You can use View | Sort Files to change the order in which PCManFM lists the files, but PCManFM won't remember that the next time you start it. To make it remember, go to Edit | Preferences and Close. That will write your current sort_type and sort_by values into ~/.config/pcmanfm/LXDE/pcmanfm.conf.<br />
<br />
==="Not authorized" errors when accessing/mounting USB drives===<br />
In various WM (in use with [[PolicyKit#Mounting_USB_drives|PolicyKit]]), You might receive an "Not authorized" errors when trying to access e.g. an USB drive.<br />
<br />
If not existing, create (including the directory actions, which ain't existing by default in there) {{ic|/etc/polkit-1/actions/org.freedesktop.udisks2.pkla}} to contain the following: <br />
[Storage Permissions]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.modify-device<br />
ResultAny=yes<br />
ResultInactive=yes<br />
ResultActive=yes<br />
<br />
==Available Versions==<br />
There are several versions of PCManFM currently available:<br />
<br />
===PCManFM2===<br />
This is the package in Arch's extra repository as "pcmanfm". The current git test version of it is available in the AUR as [https://aur.archlinux.org/packages.php?ID=33601 pcmanfm-git]. More information is available on the [http://forum.lxde.org/viewforum.php?f=22 LXDE Forum].<br />
<br />
===PCManFM-Mod===<br />
PCManFM-Mod adds user-definable commands, other features, and bugfixes to the legacy version of the PCManFM file manager v0.5.2. This version builds and installs as "pcmanfm-mod" and will run independently of other versions of PCManFM you have installed on your system. This legacy version is still desired by some due to more stability than the newer 0.9.x rewrite in progress, less Gnome dependencies, and the use of HAL rather than gnome-vfs. PCManFM-Mod is available in the [https://aur.archlinux.org/packages.php?ID=34819 AUR as pcmanfm-mod] and as [https://aur.archlinux.org/packages.php?ID=39547 pcmanfm-mod-prov] (latter provides pcmanfm). More information is available at [http://igurublog.wordpress.com/downloads/mod-pcmanfm/ IgnorantGuru's Blog].<br />
<br />
===PCManFM_with_Search===<br />
Latest PCmanFM version with search dialog in the [[AUR]] as {{aur|pcmanfm_with_search}}.</div>8472https://wiki.archlinux.org/index.php?title=Openbox&diff=152346Openbox2011-08-17T20:57:42Z<p>8472: added "autostarting unwanted applications in 3.5"</p>
<hr />
<div>[[Category:Stacking WMs (English)]]<br />
{{i18n|Openbox}}<br />
<br />
Openbox is a lightweight and highly configurable window manager with extensive standards support. Its features are documented at the [http://openbox.org/ official website]. This article pertains to installing Openbox under Arch Linux.<br />
<br />
== Installation ==<br />
<br />
{{Package Official|openbox}} is available from the community repository:<br />
# pacman -S openbox<br />
<br />
After installation, you should copy the default configuration files {{Filename|rc.xml}}, {{Filename|menu.xml}}, {{Filename|autostart}}, and {{Filename|environment}} to {{Filename|~/.config/openbox}}:<br />
<br />
{{Note | Do this as a regular user, not as root.}}<br />
<br />
$ mkdir -p ~/.config/openbox<br />
$ cp /etc/xdg/openbox/{rc.xml,menu.xml,autostart,environment} ~/.config/openbox<br />
<br />
{{Filename|rc.xml}} is the main configuration file. It defines keyboard shortcuts, themes, virtual desktops, and more.<br />
<br />
{{Filename|menu.xml}} defines the content of the right-click menu. It defines launchers for applications and other shortcuts. See the [[#Menus]] section.<br />
<br />
{{Filename|autostart}} is read by openbox-session at startup. It contains the programs that are run at startup. It is typically used to set environment variables, launch panels/docks, set background image or execute other startup scripts. See the [http://openbox.org/wiki/Help:Autostart Openbox Wiki].<br />
<br />
{{Filename|environment}} is sourced by openbox-session at startup. It contains environment variables to be set in Openbox's context. Any variables you set here will be visible to Openbox itself and anything you start from its menus.<br />
<br />
== Upgrading to Openbox 3.5 ==<br />
<br />
If you are upgrading to Openbox 3.5 or later from an earlier release, be aware of these changes:<br />
<br />
* There is a new config file called {{Filename|environment}} that you should copy from /etc/xdg/openbox to ~/.config/openbox .<br />
* The config file previously called {{Filename|autostart.sh}} is now just called {{Filename|autostart}}. You should rename yours to remove the .sh from the end of the name.<br />
* Some of the configuration grammar in {{Filename|rc.xml}} has changed. While Openbox appears to understand the old options, it would be wise to compare your configuration to the one in /etc/xdg/openbox and look for changes that affect you.<br />
<br />
=== Troubleshooting 3.5 ===<br />
See the [[#Troubleshooting_Openbox_3.5|Troubleshooting Openbox 3.5]] section below.<br />
<br />
== Openbox as a stand-alone WM ==<br />
<br />
Openbox can be used as a stand-alone window manager (WM). This is usually simpler to install and configure than using Openbox with desktop environments. Running openbox alone may reduce your system's CPU and memory load.<br />
<br />
To run Openbox as a stand-alone window manager, append the following to '''{{Filename|~/.xinitrc}}''':<br />
exec openbox-session<br />
<br />
You may also start Openbox from the command shell (aka: text prompt) using '''xinit''':<br />
$ xinit /usr/bin/openbox-session<br />
<br />
If you used another window manager previously (such as Xfwm) and now Openbox won't start after logging out of X, try moving the autostart folder:<br />
mv ~/.config/autostart ~/.config/autostart-bak<br />
<br />
Using Consolekit, use this instead:<br />
exec ck-launch-session openbox-session<br />
<br />
If you also use '''polkit''' and '''D-Bus''' (e.g. for auto-mount drivers in Nautilus/Gnome) use:<br />
exec ck-launch-session dbus-launch openbox-session<br />
<br />
{{Note | [http://www.archlinux.org/packages/extra/any/pyxdg/ pyxdg] is required for Openbox's xdg-autostart}}<br />
{{Note | "dbus-launch" must be placed after "ck-launch-session" or you will experience mounting problems}}<br />
<br />
== Openbox as a WM for desktop environments ==<br />
<br />
Openbox can be used as a replacement window manager for full-fledged desktop environments. The method for deploying Openbox depends on the desktop environment.<br />
<br />
=== GNOME 2.24 and 2.26 ===<br />
Create {{Filename|/usr/share/applications/openbox.desktop}} with the following lines:<br />
[Desktop Entry]<br />
Type=Application<br />
Encoding=UTF-8<br />
Name=OpenBox<br />
Exec=openbox<br />
NoDisplay=true<br />
# name of loadable control center module<br />
X-GNOME-WMSettingsModule=openbox<br />
# name we put on the WM spec check window<br />
X-GNOME-WMName=OpenBox<br />
In gconf, set '''{{Codeline|/desktop/gnome/session/required_components/windowmanager}}''' to '''{{Codeline|openbox}}:'''<br />
$ gconftool-2 -s -t string /desktop/gnome/session/required_components/windowmanager openbox<br />
Finally, choose '''GNOME''' session from the GDM sessions menu.<br />
<br />
=== GNOME 2.26 Redux ===<br />
'''''If the previous guide for GNOME 2.24 fails:'''''<br />
<br />
If, when attempting to log into a "Gnome/Openbox" session -- and it consistently fails to start, try the following. This is one way of achieving your goal of using Openbox as the WM anytime you open a Gnome session:<br />
<br />
#Log into your Gnome-only session (it should still be using Metacity as its window manager).<br />
#Install Openbox if you have not done so already<br />
#Navigate your menus to ''System &rarr; Preferences &rarr; Startup Applications'' (possibly named 'Session' in older Gnome versions)<br />
#Open Startup Application, select '+ Add' and enter the text shown below. Omit the text after #.<br />
#Click the 'Add' button for the data entry window. Make sure the checkbox beside your new entry is selected.<br />
#Log out from your Gnome session and log back in<br />
#You should now be running openbox as your window manager.<br />
<br />
Name: Openbox Windox Manager # Can be changed<br />
Command: openbox --replace # Text should not be removed from this line, but possibly added to it<br />
Comment: Replaces metacity with openbox # Can be changed<br />
<br />
This creates a startup list entry which is executed by Gnome each time the user's session is started.<br />
<br />
=== GNOME 2.22 and prior ===<br />
# If you use GDM, select the "GNOME/Openbox" login option<br />
# If you use {{Codeline|startx}}, add {{Codeline|exec openbox-gnome-session}} to {{Filename|~/.xinitrc}}<br />
# From the shell:<br />
$ xinit /usr/bin/openbox-gnome-session<br />
<br />
=== KDE ===<br />
# If you use KDM, select the "KDE/Openbox" login option<br />
# If you use startx, add {{Codeline|exec openbox-kde-session}} to {{Filename|~/.xinitrc}}<br />
# From the shell:<br />
$ xinit /usr/bin/openbox-kde-session<br />
<br />
=== Xfce4 ===<br />
Log into a normal Xfce4 session. From your terminal, type:<br />
$ killall xfwm4 ; openbox & exit<br />
<br />
This kills xfwm4, runs Openbox, and closes the terminal. Log out, being sure to check the ''"Save session for future logins"'' box. On your next login, Xfce4 should use '''Openbox''' as its WM.<br />
<br />
To enable exiting from a session using ''xfce4-session,'' edit '''{{Filename|~/.config/openbox/menu.xml}}'''. If the file isn't there, copy it from {{Filename|/etc/xdg/openbox/}}. Look for the following entry:<br />
<item label="Exit Openbox"><br />
<action name="Exit"><br />
<prompt>yes</prompt><br />
</action><br />
</item><br />
<br />
Change it to:<br />
<item label="Exit Openbox"><br />
<action name="Execute"><br />
<prompt>yes</prompt><br />
<command>xfce4-session-logout</command><br />
</action><br />
</item><br />
<br />
Otherwise, choosing "Exit" from the root-menu causes Openbox to terminate its execution, leaving you with no window manager.<br />
<br />
If you have a problem changing virtual desktops with the mouse wheel skipping over desktops, edit '''{{Filename|~/.config/openbox/rc.xml}}'''. Move the ''mouse binds with...'' actions "DesktopPrevious" and "DesktopNext" from context ''Desktop'' to the context ''Root''. (You may need to create a definition for the ''Root'' context as well.)<br />
<br />
When using the Openbox root-menu instead of Xfce's menu, you may exit the Xfdesktop with this terminal command:<br />
$ xfdesktop --quit<br />
Xfdesktop manages the wallpaper and desktop icons, requiring you to use other utilities such as ROX for these functions.<br />
<br />
(When terminating Xfdesktop, the above issue with the virtual desktops is no longer a problem.)<br />
<br />
== Configuration ==<br />
<br />
There are several options for configuring Openbox settings:<br />
<br />
=== Manual configuration ===<br />
To configure Openbox manually, edit the {{Filename|~/.config/openbox/rc.xml}} file with a text editor. The file has explanatory comments throughout. See the [http://openbox.org/wiki/Help:Configuration Help:Configuration openbox wiki] for more documentation on editing this file.<br />
<br />
=== ObConf ===<br />
[http://openbox.org/wiki/ObConf:About ObConf] is an Openbox configuration tool. It is used to set most common preferences such as themes, virtual desktops, window properties, and desktop margins. It can be installed with pacman:<br />
<br />
# pacman -S obconf<br />
<br />
ObConf cannot configure keyboard shortcuts and certain other features. For these features edit {{Filename|rc.xml}} manually. Alternatively, you can try {{Package AUR|obkey}} from the [[AUR]].<br />
<br />
=== Application customization ===<br />
<br />
Openbox allows per-application customizations. This lets you define rules for a given program. For example:<br />
* Start your web browser on a specific virtual desktop.<br />
* Open your terminal program with no window decorations (window chrome).<br />
* Make your bit-torrent client open at a given screen position.<br />
<br />
Per-application settings are defined in {{Filename|~/.config/openbox/rc.xml}}. Instructions are in the file's comments. More details are found in the [http://openbox.org/wiki/Help:Applications Help:Applications openbox wiki].<br />
<br />
== Menus ==<br />
<br />
The default Openbox menu includes a variety of menu items to get you started. Many of these items launch applications you don't want, haven't installed yet, or never intend to install. You'll surely want to customize '''{{Filename|menu.xml}}''' at some point. There are a number of ways to do so.<br />
<br />
=== Manual configuration of menus ===<br />
<br />
You can edit {{Filename|~/.config/openbox/menu.xml}} with a text editor. Many of the settings are self-explanatory. The article [http://openbox.org/wiki/Help:Menus Help:Menus] has extensive details.<br />
<br />
=== MenuMaker ===<br />
<br />
[http://menumaker.sourceforge.net/ MenuMaker] creates XML menus for several window managers including Openbox. MenuMaker searchs your computer for executable programs and creates a menu file from the result. It can be configured to exclude certain application types (GNOME, KDE, etc) if you desire.<br />
# pacman -S menumaker # Install MenuMaker from the repository<br />
<br />
Once installed, generate a menu file (named {{Filename|menu.xml}}) by running the program.<br />
$ mmaker -v OpenBox3 # Will not overwrite an existing menu file.<br />
$ mmaker -vf OpenBox3 # Force option permits overwriting the menu file.<br />
$ mmaker --help # See the full set of options for MenuMaker.<br />
<br />
MenuMaker creates a comprehensive {{Filename|menu.xml}}. You may edit this file by hand or regenerate it after installing software.<br />
<br />
=== Obmenu ===<br />
<br />
Obmenu is a menu editor for Openbox. This GUI application is the best choice for those who dislike editing XML code. Obmenu is available in the community repository:<br />
# pacman -S obmenu<br />
<br />
Once installed, run {{Codeline|obmenu}} then add and remove applications as desired.<br />
<br />
=== openbox-menu ===<br />
<br />
Openbox-menu uses [http://sourceforge.net/projects/lxde/files/menu-cache/ menu-cache] from the LXDE Project to create dynamic menus for Openbox.<br />
<br />
Project homepage here:<br />
[http://mimasgpc.free.fr/openbox-menu_en.html http://mimasgpc.free.fr/openbox-menu_en.html]<br />
<br />
AUR Package here:<br />
[http://aur.archlinux.org/packages.php?ID=31605 http://aur.archlinux.org/packages.php?ID=31605]<br />
<br />
==== Obm-xdg ====<br />
<br />
<tt>obm-xdg</tt> is a command-line tool that comes with Obmenu. It generates a categorized sub-menu of installed GTK/GNOME applications.<br />
<br />
To use obm-xdg with other menus, add the following line to '''{{Filename|~/.config/openbox/menu.xml}}''':<br />
<menu execute="obm-xdg" id="xdg-menu" label="xdg"/><br />
<br />
Then add the following line under your 'root-menu' entry where you want to have the menu appear:<br />
<menu id="xdg-menu"/><br />
<br />
To use obm-xdg by itself create '''{{Filename|~/.config/openbox/menu.xml}}''' and add these lines:<br />
<openbox_menu><br />
<menu execute="obm-xdg" id="root-menu" label="apps"/><br />
</openbox_menu><br />
<br />
<br />
Then run {{Codeline|openbox --reconfigure}} to refresh the Openbox menu. You should now see a sub-menu labeled '''xdg''' in your menu.<br />
<br />
{{Note|If you do not have GNOME installed, you need to install package '''gnome-menus''' for obm-xdg.}}<br />
<br />
=== Python-based xdg menu script ===<br />
<br />
This script is found in Fedora's Openbox package. You have only to put the script somewhere and create a menu entry.<br />
<br />
Here is the head: [http://pkgs.fedoraproject.org/gitweb/?p=openbox.git;f=xdg-menu;hb=HEAD latest script]<br />
<br />
Download from above repository. Place the file into the directory you want.<br />
<br />
Open '''{{Filename|menu.xml}}''' with your text editor and add the following entry. Of course, you can modify the label as you see fit.<br />
<menu id="apps-menu" label="xdg-menu" execute="python2 <path>/xdg-menu"/><br />
<br />
Save the file and run '''{{Codeline|openbox --reconfigure}}'''.<br />
<br />
{{Note|If you do not have GNOME installed, you need to install package '''gnome-menus''' for xdg-menu.}}<br />
<br />
=== Openbox menu generator ===<br />
<br />
Residing in the AUR as [http://aur.archlinux.org/packages.php?ID=27300 obmenugen-bin,] Openbox menu generator creates the menu file from *.desktop files. Obmenugen provides a text file which filters (hides) menu items using basic regex.<br />
$ obmenugen # Create a menu file<br />
$ openbox --reconfigure # To see the menu you generated<br />
<br />
=== Pipe menus ===<br />
<br />
Like other window managers, Openbox allows for scripts to dynamically build menus (menus on-the-fly). Examples are system monitors, media player controls, or weather monitors. Pipe menu script examples are found in the [http://openbox.org/wiki/Openbox:Pipemenus Openbox:Pipemenus] page at Openbox's site.<br />
<br />
User ''Xyne'' created a pipe menu file browser and user ''brisbin33'' created a pipe menu for scanning and connecting to wireless hot spots (using netcfg). Forum posts for these utilities are here: [http://bbs.archlinux.org/viewtopic.php?id=77197&p=1 file browser] and here: [http://bbs.archlinux.org/viewtopic.php?id=78290 wifi].<br />
<br />
User ''jnguyen'' created a pipe menu for managing removable devices using Udisks. The forum post is here: [https://bbs.archlinux.org/viewtopic.php?id=114702 obdevicemenu].<br />
<br />
== Startup programs ==<br />
<br />
Openbox supports running programs at startup. This is provided by command '''openbox-session'''.<br />
<br />
=== Enabling autostart ===<br />
<br />
There are two ways to enable autostart:<br />
# When using startx or xinit to begin a session, edit {{Filename|~/.xinitrc}}. Change the line that executes '''''openbox''''' to '''openbox-session'''.<br />
# When using GDM or KDM, selecting an ''Openbox'' session automatically runs the autostart script.<br />
<br />
=== Autostart script ===<br />
<br />
Openbox executes a user startup script located at {{Filename|~/.config/openbox/autostart}}. This script is ''not'' created by default. In the absence of a user startup script, openbox executes the system startup script {{Filename|/etc/xdg/openbox/autostart}}. The system script does not run when the user script is present.<br />
<br />
To create a personal startup script, copy the system script to your settings directory {{Filename|~/.config/openbox/}} and append your commands. This ensures your environment is properly configured.<br />
<br />
Full instructions are available from the [http://openbox.org/wiki/Help:Autostart Help:Autostart] article at the Openbox site.<br />
<br />
{{Note|This file used to be called autostart.sh before OpenBox 3.5.0. If you are upgrading, be sure you rename your copy of the file to remove the .sh from the end, or it will stop being read.}}<br />
<br />
== Themes and appearance ==<br />
<br />
:{{Box YELLOW||The supplemental article '''[[Openbox_Themes_and_Apps|Openbox Themes and Apps]]''' has detailed information about changing Openbox's GUI.}}<br />
<br />
You probably installed a selection of Linux programs that were developed using different toolkits. Configuration settings for a given program may reside in an unexpected location.<br />
<br />
For example, the double-click setting used by [http://www.geany.org/ Geany] (an editor/IDE) is set within the file '''{{Filename|~/.gtkrc-2.0,}}''' not where you might expect in '''{{Filename|~/.config/openbox/rc.xml}}'''. Some visual aspects of Geany are set by .gtkrc-2.0 as well.<br />
<br />
Refer to the supplemental [[Openbox_Themes_and_Apps#Themes_and_appearance|Openbox Themes and Apps]] for visual theming information.<br />
<br />
=== Openbox themes ===<br />
<br />
Themes control the appearance of windows, titlebars, and buttons. They also control menu appearance and on-screen display (OSD). Additional themes are available from the standard repositories.<br />
# pacman -S openbox-themes<br />
<br />
=== Cursors, icons, wallpaper ===<br />
<br />
Please see [[Openbox_Themes_and_Apps#X11_Mouse_cursors|Openbox Themes and Apps]] for information on these GUI customizations.<br />
<br />
== Recommended programs ==<br />
:{{Box YELLOW||The supplemental wiki article '''[[Openbox_Themes_and_Apps#Recommended_programs|Openbox Themes and Apps]]''' has information on applications you may use with Openbox.<br>The article gives details about panels, trays, mixer controls, and other widgets used on a desktop interface.}}<br />
<br />
There is a list of [[Lightweight_Applications|Lightweight Applications]] in the wiki. Most of these work nicely with Openbox.<br />
<br />
=== Login managers ===<br />
<br />
[http://slim.berlios.de/ SLiM] is a graphical login manager. It works for standalone Openbox configurations. Refer to the [[SLiM]] wiki article for instructions.<br />
<br />
[http://qingy.sourceforge.net/ Qingy] is a light, highly-configurable graphical login manager. It supports login to either text console or X session. Qingy uses [http://www.directfb.org DirectFB]. Qingy does not start an X session unless you choose a session that uses X Windows. Read the Arch wiki article about [[Qingy|Qingy.]]<br />
<br />
=== Compositing the desktop view ===<br />
<br />
[[Xcompmgr]] is a compositing window manager capable of rendering drop shadows, fading, and window transparency for Openbox and other window managers.<br />
Note that xcompmgr is no longer being developed. Any problems are unlikely to be fixed. (For example, Xcompmgr has shown a problem with ''tint2 0.9'': systray icons have a tendency to become corrupted.)<br />
<br />
[[Cairo Compmgr]] is a versatile compositing window manager that uses [http://en.wikipedia.org/wiki/Cairo_(software) Cairo] for rendering. It is usually the better choice.<br />
<br />
=== Panels, trays, pagers ===<br />
<br />
Refer to the supplemental [[Openbox_Themes_and_Apps#Panels, trays, pagers|Openbox Themes and Apps]] to learn about these GUI embellishments for Openbox.<br />
<br />
=== File managers ===<br />
<br />
Three popular lightweight file managers are:<br />
* [[Thunar]]. Thunar supports auto-mount features and other plugins. <br />
# pacman -S thunar<br />
* [http://rox.sourceforge.net ROX] (ROX provides desktop icons)<br />
# pacman -S rox<br />
* [http://pcmanfm.sourceforge.net PCManFM]<br />
# pacman -S pcmanfm # PcManFM package also provides desktop icons.<br />
# pacman -S ntfs-3g # Allows PCManFM to access NTFS drives.<br />
<br />
More information is found at [[Openbox_Themes_and_Apps#File_managers|Openbox Themes and Apps]]. The supplemental article has further information about application launchers such as [http://sourceforge.net/projects/gmrun gmrun], clipboard managers, volume mixers, and more.<br />
<br />
== Tips and tricks ==<br />
<br />
=== File associations ===<br />
Because Openbox and the applications you use with it are not well-integrated you might run into the issues with your browser. Your browser may not know which program it is supposed to use for certain types of files.<br />
<br />
A package in the AUR called [http://aur.archlinux.org/packages.php?ID=23170 gnome-defaults-list] contains a list of file-types and programs specific to the Gnome desktop. The list is installed to {{Filename|/etc/gnome/defaults.list.}}<br />
<br />
Open this file with your text-editor. Now you can replace a given application with the name of the program of your choosing. For example, totem <=> vlc or eog <=> mirage. Save the file to {{Filename|~/.local/share/applications/defaults.list}}.<br />
<br />
Another way of setting file associations is to install package ''perl-file-mimeinfo'' from the repository and invoke '''mimeopen''' like this:<br />
mimeopen -d /path/to/file<br />
You are asked which application to use when opening /path/to/file:<br />
Please choose a default application for files of type text/plain<br />
1) notepad (wine-extension-txt)<br />
2) Leafpad (leafpad)<br />
3) OpenOffice.org Writer (writer)<br />
4) gVim (gvim)<br />
5) Other...<br />
Your answer becomes the default handler for that type of file. Mimeopen is installed as {{Filename|/usr/bin/perlbin/vendor/mimetype}}.<br />
<br />
=== Copy and paste ===<br />
<br />
From a terminal '''Ctrl+Insert''' for copy and '''Shift+Insert''' for paste.<br />
<br />
Also '''Ctrl+Shift+C''' for copy and '''mouse middle-click''' for paste (in terminals).<br />
<br />
Other applications most likely use the conventional keyboard shortcuts for copy and paste.<br />
<br />
=== Window transparency ===<br />
<br />
The program transset-df (virtually the same as ''transset'') is installed with pacman -S transset-df. With transset-df you can enable window-transparency on-the-fly.<br />
<br />
For instance by placing the following in {{Filename|~/.config/openbox/rc.xml}} you can have your mouse adjust window transparency by scrolling while hovering over the title bar (it is in the <mouse> section):<br />
<br />
<context name="Titlebar"><br />
. . .<br />
<mousebind button="Up" action="Click"><br />
<action name= "Execute" ><br />
<execute>transset-df -p .2 --inc </execute><br />
</action><br />
</mousebind><br />
<mousebind button="Down" action="Click"><br />
<action name= "Execute" ><br />
<execute>transset-df -p .2 --dec </execute><br />
</action><br />
</mousebind><br />
. . .<br />
</context><br />
It appears to work only when no additional actions are defined within the action group.<br />
<br />
=== Xprop values for applications ===<br />
If you use per-application settings frequently, you might find this bash alias handy:<br />
<br />
alias xp='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""'<br />
<br />
To use, run '''{{Codeline|xp}}''' and click on the running program that you'd like to define with per-app settings. The result displays only the info that Openbox requires, namely the WM_WINDOW_ROLE and WM_CLASS (name and class) values:<br />
<br />
[thayer@dublin:~] $ xp<br />
WM_WINDOW_ROLE(STRING) = "roster"<br />
WM_CLASS(STRING) = "gajim.py", "Gajim.py"<br />
WM_CLASS(STRING) = "NAME", "CLASS"<br />
<br />
==== Xprop for Firefox ====<br />
<br />
For whatever reason, Firefox and like-minded equivalents ignore application rules (e.g. <desktop>) unless {{Codeline|class&#61;"Firefox*"}} is used. This applies irrespective of whatever values xprop may report for the program's WM_CLASS.<br />
<br />
=== Linking the menu to a button ===<br />
<br />
Some people want to link the Openbox menu (or any menu) to an object. This is useful for creating a panel button to pop up a menu. Although Openbox does not provide this, a program called '''xdotool''' simulates a keypress. Openbox can be configured to bind that keypress to the ''ShowMenu'' action.<br />
<br />
Package [http://aur.archlinux.org/packages.php?do_Details=1&ID=14789&O=0&L=0&C=0&K=xdotool&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd xdotool] is available in the AUR. After installing ''xdotool'', add the following to the <keyboard> section of your '''{{Filename|rc.xml}}''':<br />
<keybind key="A-C-q"><br />
<action name="ShowMenu"><br />
<menu>root-menu</menu><br />
</action><br />
</keybind><br />
Restart/reconfigure Openbox. The following command summons a menu at your cursor position. The command may given as-is, linked to an object, or placed in a script.<br />
$ xdotool key ctrl+alt+q<br />
<br />
Of course, change the key shortcut to your liking. Here's a snippet from a '''tint2''' (a taskbar-like panel) configuration file which pops up a menu when the clock area is clicked. Each key combination is set to open a menu within openbox's '''{{Filename|rc.xml}}''' configuration file. The right‑click menu is different from the left‑click menu:<br />
clock_rclick_command = xdotool key --clearmodifiers "ctrl+XF86PowerOff"<br />
clock_lclick_command = xdotool key --clearmodifiers "alt+XF86PowerOff"<br />
<br />
=== Urxvt in the background ===<br />
<br />
With Openbox, running a terminal as desktop background is easy. You won't need '''devilspie''' here.<br />
<br />
First you must enable transparency, open your {{Filename|.Xdefaults}} file (if it doesn't exist yet, create it in your home folder).<br />
URxvt*transparent:true<br />
URxvt*scrollBar:false<br />
URxvt*geometry:124x24 #I don't use the whole screen, if you want a full screen term don't bother with this and see below.<br />
URxvt*borderLess:true<br />
URxvt*foreground:Black #Font color. My wallpaper is White, you may wish to change this to White.<br />
<br />
Then edit your {{Filename|.config/openbox/rc.xml}} file:<br />
<application name="URxvt"><br />
<decor>no</decor><br />
<focus>yes</focus><br />
<position><br />
<x>center</x><br />
<y>20</y><br />
</position><br />
<layer>below</layer><br />
<desktop>all</desktop><br />
<maximized>true</maximized> #Only if you want a full size terminal.<br />
</application><br />
<br />
The ''magic'' comes from the {{Codeline|<layer>below</layer>}} line, which place the application under all others. Here Urxvt is displayed on all desktops, change it to your convenience.<br />
<br />
Note: Instead of using <application name="URxvt">, you can use another name ("URxvt-bg" for example), and use the -name option when starting uxrvt. That way, only the urxvt terminals which you choose to name URxvt-bg would be captured and modified by the application rule in rc.xml. For example: urxvt -name URxvt-bg (case sensitive)<br />
<br />
====ToggleShowDesktop exception====<br />
<br />
Above method still minimizes Urxvt when using the ToggleShowDesktop command. A method for avoiding this is explained in this [https://bbs.archlinux.org/viewtopic.php?pid=865844#p865844 forum post]. This involves editing Urxvt's source code.<br />
<br />
=== Keyboard volume control ===<br />
<br />
If you use ALSA for sound, you can use the amixer program to adjust the volume of sound. You can use Openbox's keybindings to act like multimedia keys. (Alternatively, you can probably find out the names of your real multimedia keys and map them.) For example, in the <keyboard> section of rc.xml:<br />
<br />
<keybind key="W-Up"><br />
<action name="Execute"><br />
<command>amixer set Master 5%+</command><br />
</action><br />
</keybind><br />
<br />
This binds Windows key + Up arrow to increase your master ALSA volume by 5%. Corresponding binding for volume down:<br />
<br />
<keybind key="W-Down"><br />
<action name="Execute"><br />
<command>amixer set Master 5%-</command><br />
</action><br />
</keybind><br />
<br />
As another example you can also use the XF86Audio keybindings:<br />
<br />
<keybind key="XF86AudioRaiseVolume"><br />
<action name="Execute"><br />
<command>amixer set Master 5%+ unmute</command><br />
</action><br />
</keybind><br />
<keybind key="XF86AudioLowerVolume"><br />
<action name="Execute"><br />
<command>amixer set Master 5%- unmute</command><br />
</action><br />
</keybind><br />
<keybind key="XF86AudioMute"><br />
<action name="Execute"><br />
<command>amixer set Master toggle</command><br />
</action><br />
</keybind><br />
<br />
The above example should work for the majority of multimedia keyboards. It should enable to raise, lower and mute the Master control of your audio device by using the respective multimedia keyboard keys. Notice also that in this example:<br />
<br />
* The "Mute" key should unmute the Master control if it is already in mute mode.<br />
* The "Raise" and "Lower" keys should unmute the Master control if it is in mute mode.<br />
<br />
== Troubleshooting Openbox 3.5 ==<br />
=== X server crashes ===<br />
Problems have been detected after upgrade to ver. 3.5, that the X server might crash in attempt to start openbox, ending with similar error message:<br />
(metacity:25137): GLib-WARNING **: In call to g_spawn_sync(), exit status of a child process \<br />
was requested but SIGCHLD action was set to SIG_IGN and ECHILD was received by waitpid(), so exit \<br />
status can't be returned. This is a bug in the program calling g_spawn_sync(); either don't request \<br />
the exit status, or don't set the SIGCHLD action.<br />
xinit: connection to X server lost<br />
waiting for X server to shut down<br />
In this particular case, some problem with metacity package has been identified as the cause of the X server crash issue. Removal of metacity & compiz-decorator-gtk packages solved the problem. Though, later was found, that even a simple reinstall of packages might have helped, as there is no problem after new installation of previously removed packages.<br />
<br />
Also, plenty of similar cases have been found on the google, that not only metacity package might be causing the X server to crash.<br />
Thus, whatever else instead of metacity you'll get in the error output message, try to reinstall (or remove if neccessary) it in attempt to get rid of this X serv. crash.<br />
<br />
=== Autostarting unwanted applications in 3.5 ===<br />
Unwanted applications do start with your Openbox session, though they aren't listed in your ~/.config/openbox/autostart script?<br />
<br />
Check the ~/.config/autostart/ directory, it might contain the residues from your previously used desktop environment (Gnome, KDE, etc.), and remove unwanted files.<br />
<br />
<br />
== Resources ==<br />
<br />
* [http://openbox.org/ Openbox Website] &ndash; The official website<br />
* [http://planetob.openmonkey.com/ Planet Openbox] &ndash; Openbox news portal<br />
* [http://www.box-look.org/ Box-Look.org] &ndash; A good resource for themes and related artwork<br />
* [https://bbs.archlinux.org/viewtopic.php?id=93126 Openbox Hacks and Configs Thread] @ Arch Linux Forums<br />
* [https://bbs.archlinux.org/viewtopic.php?id=45692 Openbox Screenshots Thread] @ Arch Linux Forums<br />
* [http://snott.net/linux/using-gnome3-with-openbox/ Installation and configuration tutorial] Using gnome3 with Openbox<br />
<!-- vim: set ft=Wikipedia: --></div>8472https://wiki.archlinux.org/index.php?title=Openbox&diff=152338Openbox2011-08-17T20:11:13Z<p>8472: added "Troubleshooting Openbox 3.5"</p>
<hr />
<div>[[Category:Stacking WMs (English)]]<br />
{{i18n|Openbox}}<br />
<br />
Openbox is a lightweight and highly configurable window manager with extensive standards support. Its features are documented at the [http://openbox.org/ official website]. This article pertains to installing Openbox under Arch Linux.<br />
<br />
== Installation ==<br />
<br />
{{Package Official|openbox}} is available from the community repository:<br />
# pacman -S openbox<br />
<br />
After installation, you should copy the default configuration files {{Filename|rc.xml}}, {{Filename|menu.xml}}, {{Filename|autostart}}, and {{Filename|environment}} to {{Filename|~/.config/openbox}}:<br />
<br />
{{Note | Do this as a regular user, not as root.}}<br />
<br />
$ mkdir -p ~/.config/openbox<br />
$ cp /etc/xdg/openbox/{rc.xml,menu.xml,autostart,environment} ~/.config/openbox<br />
<br />
{{Filename|rc.xml}} is the main configuration file. It defines keyboard shortcuts, themes, virtual desktops, and more.<br />
<br />
{{Filename|menu.xml}} defines the content of the right-click menu. It defines launchers for applications and other shortcuts. See the [[#Menus]] section.<br />
<br />
{{Filename|autostart}} is read by openbox-session at startup. It contains the programs that are run at startup. It is typically used to set environment variables, launch panels/docks, set background image or execute other startup scripts. See the [http://openbox.org/wiki/Help:Autostart Openbox Wiki].<br />
<br />
{{Filename|environment}} is sourced by openbox-session at startup. It contains environment variables to be set in Openbox's context. Any variables you set here will be visible to Openbox itself and anything you start from its menus.<br />
<br />
== Upgrading to Openbox 3.5 ==<br />
<br />
If you are upgrading to Openbox 3.5 or later from an earlier release, be aware of these changes:<br />
<br />
* There is a new config file called {{Filename|environment}} that you should copy from /etc/xdg/openbox to ~/.config/openbox .<br />
* The config file previously called {{Filename|autostart.sh}} is now just called {{Filename|autostart}}. You should rename yours to remove the .sh from the end of the name.<br />
* Some of the configuration grammar in {{Filename|rc.xml}} has changed. While Openbox appears to understand the old options, it would be wise to compare your configuration to the one in /etc/xdg/openbox and look for changes that affect you.<br />
<br />
=== Troubleshooting 3.5 ===<br />
See the [[#Troubleshooting_Openbox_3.5|Troubleshooting Openbox 3.5]] section below.<br />
<br />
== Openbox as a stand-alone WM ==<br />
<br />
Openbox can be used as a stand-alone window manager (WM). This is usually simpler to install and configure than using Openbox with desktop environments. Running openbox alone may reduce your system's CPU and memory load.<br />
<br />
To run Openbox as a stand-alone window manager, append the following to '''{{Filename|~/.xinitrc}}''':<br />
exec openbox-session<br />
<br />
You may also start Openbox from the command shell (aka: text prompt) using '''xinit''':<br />
$ xinit /usr/bin/openbox-session<br />
<br />
If you used another window manager previously (such as Xfwm) and now Openbox won't start after logging out of X, try moving the autostart folder:<br />
mv ~/.config/autostart ~/.config/autostart-bak<br />
<br />
Using Consolekit, use this instead:<br />
exec ck-launch-session openbox-session<br />
<br />
If you also use '''polkit''' and '''D-Bus''' (e.g. for auto-mount drivers in Nautilus/Gnome) use:<br />
exec ck-launch-session dbus-launch openbox-session<br />
<br />
{{Note | [http://www.archlinux.org/packages/extra/any/pyxdg/ pyxdg] is required for Openbox's xdg-autostart}}<br />
{{Note | "dbus-launch" must be placed after "ck-launch-session" or you will experience mounting problems}}<br />
<br />
== Openbox as a WM for desktop environments ==<br />
<br />
Openbox can be used as a replacement window manager for full-fledged desktop environments. The method for deploying Openbox depends on the desktop environment.<br />
<br />
=== GNOME 2.24 and 2.26 ===<br />
Create {{Filename|/usr/share/applications/openbox.desktop}} with the following lines:<br />
[Desktop Entry]<br />
Type=Application<br />
Encoding=UTF-8<br />
Name=OpenBox<br />
Exec=openbox<br />
NoDisplay=true<br />
# name of loadable control center module<br />
X-GNOME-WMSettingsModule=openbox<br />
# name we put on the WM spec check window<br />
X-GNOME-WMName=OpenBox<br />
In gconf, set '''{{Codeline|/desktop/gnome/session/required_components/windowmanager}}''' to '''{{Codeline|openbox}}:'''<br />
$ gconftool-2 -s -t string /desktop/gnome/session/required_components/windowmanager openbox<br />
Finally, choose '''GNOME''' session from the GDM sessions menu.<br />
<br />
=== GNOME 2.26 Redux ===<br />
'''''If the previous guide for GNOME 2.24 fails:'''''<br />
<br />
If, when attempting to log into a "Gnome/Openbox" session -- and it consistently fails to start, try the following. This is one way of achieving your goal of using Openbox as the WM anytime you open a Gnome session:<br />
<br />
#Log into your Gnome-only session (it should still be using Metacity as its window manager).<br />
#Install Openbox if you have not done so already<br />
#Navigate your menus to ''System &rarr; Preferences &rarr; Startup Applications'' (possibly named 'Session' in older Gnome versions)<br />
#Open Startup Application, select '+ Add' and enter the text shown below. Omit the text after #.<br />
#Click the 'Add' button for the data entry window. Make sure the checkbox beside your new entry is selected.<br />
#Log out from your Gnome session and log back in<br />
#You should now be running openbox as your window manager.<br />
<br />
Name: Openbox Windox Manager # Can be changed<br />
Command: openbox --replace # Text should not be removed from this line, but possibly added to it<br />
Comment: Replaces metacity with openbox # Can be changed<br />
<br />
This creates a startup list entry which is executed by Gnome each time the user's session is started.<br />
<br />
=== GNOME 2.22 and prior ===<br />
# If you use GDM, select the "GNOME/Openbox" login option<br />
# If you use {{Codeline|startx}}, add {{Codeline|exec openbox-gnome-session}} to {{Filename|~/.xinitrc}}<br />
# From the shell:<br />
$ xinit /usr/bin/openbox-gnome-session<br />
<br />
=== KDE ===<br />
# If you use KDM, select the "KDE/Openbox" login option<br />
# If you use startx, add {{Codeline|exec openbox-kde-session}} to {{Filename|~/.xinitrc}}<br />
# From the shell:<br />
$ xinit /usr/bin/openbox-kde-session<br />
<br />
=== Xfce4 ===<br />
Log into a normal Xfce4 session. From your terminal, type:<br />
$ killall xfwm4 ; openbox & exit<br />
<br />
This kills xfwm4, runs Openbox, and closes the terminal. Log out, being sure to check the ''"Save session for future logins"'' box. On your next login, Xfce4 should use '''Openbox''' as its WM.<br />
<br />
To enable exiting from a session using ''xfce4-session,'' edit '''{{Filename|~/.config/openbox/menu.xml}}'''. If the file isn't there, copy it from {{Filename|/etc/xdg/openbox/}}. Look for the following entry:<br />
<item label="Exit Openbox"><br />
<action name="Exit"><br />
<prompt>yes</prompt><br />
</action><br />
</item><br />
<br />
Change it to:<br />
<item label="Exit Openbox"><br />
<action name="Execute"><br />
<prompt>yes</prompt><br />
<command>xfce4-session-logout</command><br />
</action><br />
</item><br />
<br />
Otherwise, choosing "Exit" from the root-menu causes Openbox to terminate its execution, leaving you with no window manager.<br />
<br />
If you have a problem changing virtual desktops with the mouse wheel skipping over desktops, edit '''{{Filename|~/.config/openbox/rc.xml}}'''. Move the ''mouse binds with...'' actions "DesktopPrevious" and "DesktopNext" from context ''Desktop'' to the context ''Root''. (You may need to create a definition for the ''Root'' context as well.)<br />
<br />
When using the Openbox root-menu instead of Xfce's menu, you may exit the Xfdesktop with this terminal command:<br />
$ xfdesktop --quit<br />
Xfdesktop manages the wallpaper and desktop icons, requiring you to use other utilities such as ROX for these functions.<br />
<br />
(When terminating Xfdesktop, the above issue with the virtual desktops is no longer a problem.)<br />
<br />
== Configuration ==<br />
<br />
There are several options for configuring Openbox settings:<br />
<br />
=== Manual configuration ===<br />
To configure Openbox manually, edit the {{Filename|~/.config/openbox/rc.xml}} file with a text editor. The file has explanatory comments throughout. See the [http://openbox.org/wiki/Help:Configuration Help:Configuration openbox wiki] for more documentation on editing this file.<br />
<br />
=== ObConf ===<br />
[http://openbox.org/wiki/ObConf:About ObConf] is an Openbox configuration tool. It is used to set most common preferences such as themes, virtual desktops, window properties, and desktop margins. It can be installed with pacman:<br />
<br />
# pacman -S obconf<br />
<br />
ObConf cannot configure keyboard shortcuts and certain other features. For these features edit {{Filename|rc.xml}} manually. Alternatively, you can try {{Package AUR|obkey}} from the [[AUR]].<br />
<br />
=== Application customization ===<br />
<br />
Openbox allows per-application customizations. This lets you define rules for a given program. For example:<br />
* Start your web browser on a specific virtual desktop.<br />
* Open your terminal program with no window decorations (window chrome).<br />
* Make your bit-torrent client open at a given screen position.<br />
<br />
Per-application settings are defined in {{Filename|~/.config/openbox/rc.xml}}. Instructions are in the file's comments. More details are found in the [http://openbox.org/wiki/Help:Applications Help:Applications openbox wiki].<br />
<br />
== Menus ==<br />
<br />
The default Openbox menu includes a variety of menu items to get you started. Many of these items launch applications you don't want, haven't installed yet, or never intend to install. You'll surely want to customize '''{{Filename|menu.xml}}''' at some point. There are a number of ways to do so.<br />
<br />
=== Manual configuration of menus ===<br />
<br />
You can edit {{Filename|~/.config/openbox/menu.xml}} with a text editor. Many of the settings are self-explanatory. The article [http://openbox.org/wiki/Help:Menus Help:Menus] has extensive details.<br />
<br />
=== MenuMaker ===<br />
<br />
[http://menumaker.sourceforge.net/ MenuMaker] creates XML menus for several window managers including Openbox. MenuMaker searchs your computer for executable programs and creates a menu file from the result. It can be configured to exclude certain application types (GNOME, KDE, etc) if you desire.<br />
# pacman -S menumaker # Install MenuMaker from the repository<br />
<br />
Once installed, generate a menu file (named {{Filename|menu.xml}}) by running the program.<br />
$ mmaker -v OpenBox3 # Will not overwrite an existing menu file.<br />
$ mmaker -vf OpenBox3 # Force option permits overwriting the menu file.<br />
$ mmaker --help # See the full set of options for MenuMaker.<br />
<br />
MenuMaker creates a comprehensive {{Filename|menu.xml}}. You may edit this file by hand or regenerate it after installing software.<br />
<br />
=== Obmenu ===<br />
<br />
Obmenu is a menu editor for Openbox. This GUI application is the best choice for those who dislike editing XML code. Obmenu is available in the community repository:<br />
# pacman -S obmenu<br />
<br />
Once installed, run {{Codeline|obmenu}} then add and remove applications as desired.<br />
<br />
=== openbox-menu ===<br />
<br />
Openbox-menu uses [http://sourceforge.net/projects/lxde/files/menu-cache/ menu-cache] from the LXDE Project to create dynamic menus for Openbox.<br />
<br />
Project homepage here:<br />
[http://mimasgpc.free.fr/openbox-menu_en.html http://mimasgpc.free.fr/openbox-menu_en.html]<br />
<br />
AUR Package here:<br />
[http://aur.archlinux.org/packages.php?ID=31605 http://aur.archlinux.org/packages.php?ID=31605]<br />
<br />
==== Obm-xdg ====<br />
<br />
<tt>obm-xdg</tt> is a command-line tool that comes with Obmenu. It generates a categorized sub-menu of installed GTK/GNOME applications.<br />
<br />
To use obm-xdg with other menus, add the following line to '''{{Filename|~/.config/openbox/menu.xml}}''':<br />
<menu execute="obm-xdg" id="xdg-menu" label="xdg"/><br />
<br />
Then add the following line under your 'root-menu' entry where you want to have the menu appear:<br />
<menu id="xdg-menu"/><br />
<br />
To use obm-xdg by itself create '''{{Filename|~/.config/openbox/menu.xml}}''' and add these lines:<br />
<openbox_menu><br />
<menu execute="obm-xdg" id="root-menu" label="apps"/><br />
</openbox_menu><br />
<br />
<br />
Then run {{Codeline|openbox --reconfigure}} to refresh the Openbox menu. You should now see a sub-menu labeled '''xdg''' in your menu.<br />
<br />
{{Note|If you do not have GNOME installed, you need to install package '''gnome-menus''' for obm-xdg.}}<br />
<br />
=== Python-based xdg menu script ===<br />
<br />
This script is found in Fedora's Openbox package. You have only to put the script somewhere and create a menu entry.<br />
<br />
Here is the head: [http://pkgs.fedoraproject.org/gitweb/?p=openbox.git;f=xdg-menu;hb=HEAD latest script]<br />
<br />
Download from above repository. Place the file into the directory you want.<br />
<br />
Open '''{{Filename|menu.xml}}''' with your text editor and add the following entry. Of course, you can modify the label as you see fit.<br />
<menu id="apps-menu" label="xdg-menu" execute="python2 <path>/xdg-menu"/><br />
<br />
Save the file and run '''{{Codeline|openbox --reconfigure}}'''.<br />
<br />
{{Note|If you do not have GNOME installed, you need to install package '''gnome-menus''' for xdg-menu.}}<br />
<br />
=== Openbox menu generator ===<br />
<br />
Residing in the AUR as [http://aur.archlinux.org/packages.php?ID=27300 obmenugen-bin,] Openbox menu generator creates the menu file from *.desktop files. Obmenugen provides a text file which filters (hides) menu items using basic regex.<br />
$ obmenugen # Create a menu file<br />
$ openbox --reconfigure # To see the menu you generated<br />
<br />
=== Pipe menus ===<br />
<br />
Like other window managers, Openbox allows for scripts to dynamically build menus (menus on-the-fly). Examples are system monitors, media player controls, or weather monitors. Pipe menu script examples are found in the [http://openbox.org/wiki/Openbox:Pipemenus Openbox:Pipemenus] page at Openbox's site.<br />
<br />
User ''Xyne'' created a pipe menu file browser and user ''brisbin33'' created a pipe menu for scanning and connecting to wireless hot spots (using netcfg). Forum posts for these utilities are here: [http://bbs.archlinux.org/viewtopic.php?id=77197&p=1 file browser] and here: [http://bbs.archlinux.org/viewtopic.php?id=78290 wifi].<br />
<br />
User ''jnguyen'' created a pipe menu for managing removable devices using Udisks. The forum post is here: [https://bbs.archlinux.org/viewtopic.php?id=114702 obdevicemenu].<br />
<br />
== Startup programs ==<br />
<br />
Openbox supports running programs at startup. This is provided by command '''openbox-session'''.<br />
<br />
=== Enabling autostart ===<br />
<br />
There are two ways to enable autostart:<br />
# When using startx or xinit to begin a session, edit {{Filename|~/.xinitrc}}. Change the line that executes '''''openbox''''' to '''openbox-session'''.<br />
# When using GDM or KDM, selecting an ''Openbox'' session automatically runs the autostart script.<br />
<br />
=== Autostart script ===<br />
<br />
Openbox executes a user startup script located at {{Filename|~/.config/openbox/autostart}}. This script is ''not'' created by default. In the absence of a user startup script, openbox executes the system startup script {{Filename|/etc/xdg/openbox/autostart}}. The system script does not run when the user script is present.<br />
<br />
To create a personal startup script, copy the system script to your settings directory {{Filename|~/.config/openbox/}} and append your commands. This ensures your environment is properly configured.<br />
<br />
Full instructions are available from the [http://openbox.org/wiki/Help:Autostart Help:Autostart] article at the Openbox site.<br />
<br />
{{Note|This file used to be called autostart.sh before OpenBox 3.5.0. If you are upgrading, be sure you rename your copy of the file to remove the .sh from the end, or it will stop being read.}}<br />
<br />
== Themes and appearance ==<br />
<br />
:{{Box YELLOW||The supplemental article '''[[Openbox_Themes_and_Apps|Openbox Themes and Apps]]''' has detailed information about changing Openbox's GUI.}}<br />
<br />
You probably installed a selection of Linux programs that were developed using different toolkits. Configuration settings for a given program may reside in an unexpected location.<br />
<br />
For example, the double-click setting used by [http://www.geany.org/ Geany] (an editor/IDE) is set within the file '''{{Filename|~/.gtkrc-2.0,}}''' not where you might expect in '''{{Filename|~/.config/openbox/rc.xml}}'''. Some visual aspects of Geany are set by .gtkrc-2.0 as well.<br />
<br />
Refer to the supplemental [[Openbox_Themes_and_Apps#Themes_and_appearance|Openbox Themes and Apps]] for visual theming information.<br />
<br />
=== Openbox themes ===<br />
<br />
Themes control the appearance of windows, titlebars, and buttons. They also control menu appearance and on-screen display (OSD). Additional themes are available from the standard repositories.<br />
# pacman -S openbox-themes<br />
<br />
=== Cursors, icons, wallpaper ===<br />
<br />
Please see [[Openbox_Themes_and_Apps#X11_Mouse_cursors|Openbox Themes and Apps]] for information on these GUI customizations.<br />
<br />
== Recommended programs ==<br />
:{{Box YELLOW||The supplemental wiki article '''[[Openbox_Themes_and_Apps#Recommended_programs|Openbox Themes and Apps]]''' has information on applications you may use with Openbox.<br>The article gives details about panels, trays, mixer controls, and other widgets used on a desktop interface.}}<br />
<br />
There is a list of [[Lightweight_Applications|Lightweight Applications]] in the wiki. Most of these work nicely with Openbox.<br />
<br />
=== Login managers ===<br />
<br />
[http://slim.berlios.de/ SLiM] is a graphical login manager. It works for standalone Openbox configurations. Refer to the [[SLiM]] wiki article for instructions.<br />
<br />
[http://qingy.sourceforge.net/ Qingy] is a light, highly-configurable graphical login manager. It supports login to either text console or X session. Qingy uses [http://www.directfb.org DirectFB]. Qingy does not start an X session unless you choose a session that uses X Windows. Read the Arch wiki article about [[Qingy|Qingy.]]<br />
<br />
=== Compositing the desktop view ===<br />
<br />
[[Xcompmgr]] is a compositing window manager capable of rendering drop shadows, fading, and window transparency for Openbox and other window managers.<br />
Note that xcompmgr is no longer being developed. Any problems are unlikely to be fixed. (For example, Xcompmgr has shown a problem with ''tint2 0.9'': systray icons have a tendency to become corrupted.)<br />
<br />
[[Cairo Compmgr]] is a versatile compositing window manager that uses [http://en.wikipedia.org/wiki/Cairo_(software) Cairo] for rendering. It is usually the better choice.<br />
<br />
=== Panels, trays, pagers ===<br />
<br />
Refer to the supplemental [[Openbox_Themes_and_Apps#Panels, trays, pagers|Openbox Themes and Apps]] to learn about these GUI embellishments for Openbox.<br />
<br />
=== File managers ===<br />
<br />
Three popular lightweight file managers are:<br />
* [[Thunar]]. Thunar supports auto-mount features and other plugins. <br />
# pacman -S thunar<br />
* [http://rox.sourceforge.net ROX] (ROX provides desktop icons)<br />
# pacman -S rox<br />
* [http://pcmanfm.sourceforge.net PCManFM]<br />
# pacman -S pcmanfm # PcManFM package also provides desktop icons.<br />
# pacman -S ntfs-3g # Allows PCManFM to access NTFS drives.<br />
<br />
More information is found at [[Openbox_Themes_and_Apps#File_managers|Openbox Themes and Apps]]. The supplemental article has further information about application launchers such as [http://sourceforge.net/projects/gmrun gmrun], clipboard managers, volume mixers, and more.<br />
<br />
== Tips and tricks ==<br />
<br />
=== File associations ===<br />
Because Openbox and the applications you use with it are not well-integrated you might run into the issues with your browser. Your browser may not know which program it is supposed to use for certain types of files.<br />
<br />
A package in the AUR called [http://aur.archlinux.org/packages.php?ID=23170 gnome-defaults-list] contains a list of file-types and programs specific to the Gnome desktop. The list is installed to {{Filename|/etc/gnome/defaults.list.}}<br />
<br />
Open this file with your text-editor. Now you can replace a given application with the name of the program of your choosing. For example, totem <=> vlc or eog <=> mirage. Save the file to {{Filename|~/.local/share/applications/defaults.list}}.<br />
<br />
Another way of setting file associations is to install package ''perl-file-mimeinfo'' from the repository and invoke '''mimeopen''' like this:<br />
mimeopen -d /path/to/file<br />
You are asked which application to use when opening /path/to/file:<br />
Please choose a default application for files of type text/plain<br />
1) notepad (wine-extension-txt)<br />
2) Leafpad (leafpad)<br />
3) OpenOffice.org Writer (writer)<br />
4) gVim (gvim)<br />
5) Other...<br />
Your answer becomes the default handler for that type of file. Mimeopen is installed as {{Filename|/usr/bin/perlbin/vendor/mimetype}}.<br />
<br />
=== Copy and paste ===<br />
<br />
From a terminal '''Ctrl+Insert''' for copy and '''Shift+Insert''' for paste.<br />
<br />
Also '''Ctrl+Shift+C''' for copy and '''mouse middle-click''' for paste (in terminals).<br />
<br />
Other applications most likely use the conventional keyboard shortcuts for copy and paste.<br />
<br />
=== Window transparency ===<br />
<br />
The program transset-df (virtually the same as ''transset'') is installed with pacman -S transset-df. With transset-df you can enable window-transparency on-the-fly.<br />
<br />
For instance by placing the following in {{Filename|~/.config/openbox/rc.xml}} you can have your mouse adjust window transparency by scrolling while hovering over the title bar (it is in the <mouse> section):<br />
<br />
<context name="Titlebar"><br />
. . .<br />
<mousebind button="Up" action="Click"><br />
<action name= "Execute" ><br />
<execute>transset-df -p .2 --inc </execute><br />
</action><br />
</mousebind><br />
<mousebind button="Down" action="Click"><br />
<action name= "Execute" ><br />
<execute>transset-df -p .2 --dec </execute><br />
</action><br />
</mousebind><br />
. . .<br />
</context><br />
It appears to work only when no additional actions are defined within the action group.<br />
<br />
=== Xprop values for applications ===<br />
If you use per-application settings frequently, you might find this bash alias handy:<br />
<br />
alias xp='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""'<br />
<br />
To use, run '''{{Codeline|xp}}''' and click on the running program that you'd like to define with per-app settings. The result displays only the info that Openbox requires, namely the WM_WINDOW_ROLE and WM_CLASS (name and class) values:<br />
<br />
[thayer@dublin:~] $ xp<br />
WM_WINDOW_ROLE(STRING) = "roster"<br />
WM_CLASS(STRING) = "gajim.py", "Gajim.py"<br />
WM_CLASS(STRING) = "NAME", "CLASS"<br />
<br />
==== Xprop for Firefox ====<br />
<br />
For whatever reason, Firefox and like-minded equivalents ignore application rules (e.g. <desktop>) unless {{Codeline|class&#61;"Firefox*"}} is used. This applies irrespective of whatever values xprop may report for the program's WM_CLASS.<br />
<br />
=== Linking the menu to a button ===<br />
<br />
Some people want to link the Openbox menu (or any menu) to an object. This is useful for creating a panel button to pop up a menu. Although Openbox does not provide this, a program called '''xdotool''' simulates a keypress. Openbox can be configured to bind that keypress to the ''ShowMenu'' action.<br />
<br />
Package [http://aur.archlinux.org/packages.php?do_Details=1&ID=14789&O=0&L=0&C=0&K=xdotool&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd xdotool] is available in the AUR. After installing ''xdotool'', add the following to the <keyboard> section of your '''{{Filename|rc.xml}}''':<br />
<keybind key="A-C-q"><br />
<action name="ShowMenu"><br />
<menu>root-menu</menu><br />
</action><br />
</keybind><br />
Restart/reconfigure Openbox. The following command summons a menu at your cursor position. The command may given as-is, linked to an object, or placed in a script.<br />
$ xdotool key ctrl+alt+q<br />
<br />
Of course, change the key shortcut to your liking. Here's a snippet from a '''tint2''' (a taskbar-like panel) configuration file which pops up a menu when the clock area is clicked. Each key combination is set to open a menu within openbox's '''{{Filename|rc.xml}}''' configuration file. The right‑click menu is different from the left‑click menu:<br />
clock_rclick_command = xdotool key --clearmodifiers "ctrl+XF86PowerOff"<br />
clock_lclick_command = xdotool key --clearmodifiers "alt+XF86PowerOff"<br />
<br />
=== Urxvt in the background ===<br />
<br />
With Openbox, running a terminal as desktop background is easy. You won't need '''devilspie''' here.<br />
<br />
First you must enable transparency, open your {{Filename|.Xdefaults}} file (if it doesn't exist yet, create it in your home folder).<br />
URxvt*transparent:true<br />
URxvt*scrollBar:false<br />
URxvt*geometry:124x24 #I don't use the whole screen, if you want a full screen term don't bother with this and see below.<br />
URxvt*borderLess:true<br />
URxvt*foreground:Black #Font color. My wallpaper is White, you may wish to change this to White.<br />
<br />
Then edit your {{Filename|.config/openbox/rc.xml}} file:<br />
<application name="URxvt"><br />
<decor>no</decor><br />
<focus>yes</focus><br />
<position><br />
<x>center</x><br />
<y>20</y><br />
</position><br />
<layer>below</layer><br />
<desktop>all</desktop><br />
<maximized>true</maximized> #Only if you want a full size terminal.<br />
</application><br />
<br />
The ''magic'' comes from the {{Codeline|<layer>below</layer>}} line, which place the application under all others. Here Urxvt is displayed on all desktops, change it to your convenience.<br />
<br />
Note: Instead of using <application name="URxvt">, you can use another name ("URxvt-bg" for example), and use the -name option when starting uxrvt. That way, only the urxvt terminals which you choose to name URxvt-bg would be captured and modified by the application rule in rc.xml. For example: urxvt -name URxvt-bg (case sensitive)<br />
<br />
====ToggleShowDesktop exception====<br />
<br />
Above method still minimizes Urxvt when using the ToggleShowDesktop command. A method for avoiding this is explained in this [https://bbs.archlinux.org/viewtopic.php?pid=865844#p865844 forum post]. This involves editing Urxvt's source code.<br />
<br />
=== Keyboard volume control ===<br />
<br />
If you use ALSA for sound, you can use the amixer program to adjust the volume of sound. You can use Openbox's keybindings to act like multimedia keys. (Alternatively, you can probably find out the names of your real multimedia keys and map them.) For example, in the <keyboard> section of rc.xml:<br />
<br />
<keybind key="W-Up"><br />
<action name="Execute"><br />
<command>amixer set Master 5%+</command><br />
</action><br />
</keybind><br />
<br />
This binds Windows key + Up arrow to increase your master ALSA volume by 5%. Corresponding binding for volume down:<br />
<br />
<keybind key="W-Down"><br />
<action name="Execute"><br />
<command>amixer set Master 5%-</command><br />
</action><br />
</keybind><br />
<br />
As another example you can also use the XF86Audio keybindings:<br />
<br />
<keybind key="XF86AudioRaiseVolume"><br />
<action name="Execute"><br />
<command>amixer set Master 5%+ unmute</command><br />
</action><br />
</keybind><br />
<keybind key="XF86AudioLowerVolume"><br />
<action name="Execute"><br />
<command>amixer set Master 5%- unmute</command><br />
</action><br />
</keybind><br />
<keybind key="XF86AudioMute"><br />
<action name="Execute"><br />
<command>amixer set Master toggle</command><br />
</action><br />
</keybind><br />
<br />
The above example should work for the majority of multimedia keyboards. It should enable to raise, lower and mute the Master control of your audio device by using the respective multimedia keyboard keys. Notice also that in this example:<br />
<br />
* The "Mute" key should unmute the Master control if it is already in mute mode.<br />
* The "Raise" and "Lower" keys should unmute the Master control if it is in mute mode.<br />
<br />
== Troubleshooting Openbox 3.5 ==<br />
Problems have been detected after upgrade to ver. 3.5, that the X server might crash in attempt to start openbox, ending with similar error message:<br />
(metacity:25137): GLib-WARNING **: In call to g_spawn_sync(), exit status of a child process \<br />
was requested but SIGCHLD action was set to SIG_IGN and ECHILD was received by waitpid(), so exit \<br />
status can't be returned. This is a bug in the program calling g_spawn_sync(); either don't request \<br />
the exit status, or don't set the SIGCHLD action.<br />
xinit: connection to X server lost<br />
waiting for X server to shut down<br />
In this particular case, some problem with metacity package has been identified as the cause of the X server crash issue. Removal of metacity & compiz-decorator-gtk packages solved the problem. Though, later was found, that even a simple reinstall of packages might have helped, as there is no problem after new installation of previously removed packages.<br />
<br />
Also, plenty of similar cases have been found on the google, that not only metacity package might be causing the X server to crash.<br />
Thus, whatever else instead of metacity you'll get in the error output message, try to reinstall (or remove if neccessary) it in attempt to get rid of this X serv. crash.<br />
<br />
<br />
== Resources ==<br />
<br />
* [http://openbox.org/ Openbox Website] &ndash; The official website<br />
* [http://planetob.openmonkey.com/ Planet Openbox] &ndash; Openbox news portal<br />
* [http://www.box-look.org/ Box-Look.org] &ndash; A good resource for themes and related artwork<br />
* [https://bbs.archlinux.org/viewtopic.php?id=93126 Openbox Hacks and Configs Thread] @ Arch Linux Forums<br />
* [https://bbs.archlinux.org/viewtopic.php?id=45692 Openbox Screenshots Thread] @ Arch Linux Forums<br />
* [http://snott.net/linux/using-gnome3-with-openbox/ Installation and configuration tutorial] Using gnome3 with Openbox<br />
<!-- vim: set ft=Wikipedia: --></div>8472https://wiki.archlinux.org/index.php?title=Netcfg&diff=144585Netcfg2011-06-09T19:41:20Z<p>8472: commented my previous note about wrong wpa_supplicant behaviour, I've recently noticed it might not be true.</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[fr:Netcfg]]<br />
{{i18n|Netcfg}}<br />
{{Article summary start}}<br />
{{Article summary text|A guide to installing and configuring netcfg &ndash; network configuration and profile scripts.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Networking overview}}}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|netcfg network scripts repository|http://projects.archlinux.org/netcfg.git/}}<br />
{{Article summary end}}<br />
<br />
From the [http://projects.archlinux.org/netcfg.git/tree/man/netcfg.8 netcfg man page]:<br />
<br />
:'''''netcfg''' is used to configure and manage network connections via profiles. It has pluggable support for a range of connection types, such as wireless, ethernet, ppp. It is also capable of starting/stopping many to one connections, that is, multiple connections within the same profile, optionally with bonding.''<br />
<br />
netcfg is useful for users seeking a simple and robust means of managing multiple network configurations (e.g. laptop users). For systems connecting to a single network, the [[network]] daemon may be more appropriate.<br />
<br />
==Preparation==<br />
In the simplest cases, users must at least know the name of their network interface(s) (e.g. '''eth0''', '''wlan0'''). If configuring a static IP address, gateway and name server addresses must also be known.<br />
<br />
If connecting to a wireless network, have some basic information ready. For a wireless network this includes what type of security is used, the network name (ESSID), and any password or encryption keys. Additionally, ensure the proper drivers and firmware are installed for the wireless device, as described in [[Wireless Setup]].<br />
<br />
==Installation==<br />
Ensure you have the latest version of netcfg installed. Older versions have more bugs and may not work well with the latest drivers. The {{Package Official|netcfg}} package is available in '''core''':<br />
<br />
# pacman -S netcfg<br />
<br />
As of version 2.5.x, optional dependencies include {{Package Official|wpa_actiond}} &ndash; required for automatic/roaming wireless connection &ndash; and {{Package Official|ifplugd}} &ndash; required for automatic ethernet configuration. ([http://www.archlinux.org/news/487/ More information].)<br />
<br />
# pacman -S wpa_actiond ifplugd<br />
<br />
==Configuration==<br />
Network profiles are stored in the {{Filename|/etc/network.d}} directory. To minimize the potential for errors, copy an example configuration from {{Filename|/etc/network.d/examples/}} to {{Filename|/etc/network.d/mynetwork}}. The file name is the name of the network profile ("mynetwork" is used as an example throughout this article). The name is not a network setting and does not need to match the wireless network name (SSID).<br />
<br />
Depending on the connection type and security, use one of the following examples from {{Filename|/etc/network.d/examples}} as a base. Be wary of examples found on the Internet as they often contain deprecated options that may cause problems.<br />
<br />
{| border="1"<br />
! Connection type/security !! Example profile<br />
|-<br />
| Wireless; WEP hex key || {{Filename|wireless-wep}}<br />
|-<br />
| Wireless; WEP string key || {{Filename|wireless-wep-string-key}}<br />
|-<br />
| Wireless; WPA personal (passphrase) || {{Filename|wireless-wpa}}<br />
|-<br />
| Wireless; WPA enterprise || {{Filename|wireless-wpa-config}} (wpa_supplicant configuration is external) <br /> {{Filename|wireless-wpa-configsection}} (wpa_supplicant configuration stored as string)<br />
|-<br />
| Wired; DHCP || {{Filename|ethernet-dhcp}}<br />
|-<br />
| Wired; static IP || {{Filename|ethernet-static}}<br />
|-<br />
| Wired; iproute configuration || {{Filename|ethernet-iproute}}<br />
|}<br />
<br />
Next, modify the new configuration file, {{Filename|/etc/network.d/mynetwork}}:<br />
<br />
* Set {{Codeline|INTERFACE}} to the correct wireless or ethernet interface. This can be checked with {{Codeline|ifconfig}} and {{Codeline|iwconfig}}.<br />
* Ensure the {{Codeline|ESSID}} and {{Codeline|KEY}} (passphrase) are set correctly for wireless connections. Typos in these fields are common errors.<br />
** Note that WEP ''string'' keys (not ''hex'' keys) must be specified with a leading {{Codeline|s:}} (e.g. {{Codeline|<nowiki>KEY="s:somepasskey"</nowiki>}}).<br />
<br />
{{Note | Netcfg configurations are valid Bash scripts. Any configuration involving special characters such as $ or \ needs to be quoted correctly otherwise it will be interpreted by Bash. To avoid interpretation, use single quotes or backslash escape characters where appropriate. }}<br />
<br />
{{Note | Network information (e.g. wireless passkey) will be stored in plain text format, so users may want to change the permissions on the newly created profile (e.g. {{Codeline|chmod 0600 /etc/network.d/mynetwork}} to make it readable by root only).}}<br />
<br />
{{Note | For WPA personal, it is also possible to use WPA passkey encoded into a hexadecimal string, instead of plain text passkey.<br />
Follow the procedure on the [[Wpa_supplicant#Classic_method:_wpa_supplicant.conf|WPA supplicant page's 1st example exercise]] to generate a hexadecimal string from you WPA passkey.<br><br />
Save the new hexadecimal string into your wireless WPA profile in {{Codeline|/etc/network.d/mynetwork}} as the value of KEY variable (make sure this will be the only KEY variable enabled), to look similar to this (replace the string with your one):<br />
<pre>KEY='7b271c9a7c8a6ac07d12403a1f0792d7d92b5957ff8dfd56481ced43ec6a6515'</pre><br />
That should do it, without the need to reveal the passkey.<br><br />
<!-- This will start the wpa_supplicant as a daemon on the background, and will keep running even after the wireless connection would be disconnected, which will unfortunately deny to initiate any new wireless connection using this wpa_passhprase method due to already runnig wpa_supplicant.<br><br />
A simple {{cli|kill `pgrep wpa_supplicant`}} command will terminate this daemon, and perhaps the [[Netcfg#Execute_commands_before.2Fafter_interface_up.2Fdown|Execute commands before/after interface up/down]] chapter might be worth of a try to automate this. --><br />
}} <br />
<br />
<br />
==Usage==<br />
To connect a profile:<br />
# netcfg mynetwork<br />
<br />
To disconnect a profile:<br />
# netcfg down <profile-name><br />
<br />
If successful, users can configure netcfg to connect automatically or during boot. If the connection fails, see [[#Troubleshooting]] for solutions and how to get help.<br />
<br />
For other functions, see:<br />
$ netcfg help<br />
<br />
==Connecting automatically==<br />
Several methods are available to users wanting to automatically connect network profiles (e.g. during boot or whilst roaming). Note that a network profile must be properly configured within the {{Filename|/etc/network.d}} directory ''first'' (see [[#Configuration]]).<br />
<br />
{{Tip|If enabling one of the following daemons and nothing is configured within the {{Codeline|INTERFACES}} array in {{Filename|rc.conf}}, you may remove the {{Codeline|network}} daemon from the {{Codeline|DAEMONS}} array. If you mount NFS shares during boot, ensure the {{Codeline|netfs}} daemon remains listed, though (otherwise the network will be dropped before unmounting shares during shutdown).}}<br />
<br />
===net-profiles===<br />
'''{{Codeline|net-profiles}} allows users to connect profiles during boot.'''<br />
<br />
To enable this feature, users must add {{Codeline|net-profiles}} to the {{Codeline|DAEMONS}} array in [[rc.conf]] and specify profiles to try in the {{Codeline|NETWORKS}} array:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
NETWORKS=(mynetwork yournetwork)<br />
<br />
...<br />
<br />
DAEMONS=(... net-profiles ...)<br />
</nowiki>}}<br />
<br />
Alternatively, {{Codeline|net-profiles}} can be configured to display a menu &ndash; allowing users to choose a desired profile &ndash; by setting the contents of the {{Codeline|NETWORKS}} array to {{Codeline|menu}}:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
NETWORKS=(menu)<br />
<br />
...<br />
<br />
DAEMONS=(... net-profiles ...)<br />
</nowiki>}}<br />
<br />
Additionally, the {{Package Official|dialog}} package is required.<br />
<br />
{{Tip|Access the menu at any time by running {{Codeline|netcfg-menu}} in a terminal.}}<br />
<br />
===net-auto-wireless===<br />
'''{{Codeline|net-auto-wireless}} allows users to automatically connect to wireless networks with proper roaming support.'''<br />
<br />
To enable this feature, users must add {{Codeline|net-auto-wireless}} to the {{Codeline|DAEMONS}} array in [[rc.conf]] and specify the desired wireless interface with the {{Codeline|WIRELESS_INTERFACE}} variable:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
WIRELESS_INTERFACE="wlan0"<br />
<br />
...<br />
<br />
DAEMONS=(... net-auto-wireless ...)<br />
</nowiki>}}<br />
<br />
Additionally, the {{Package Official|wpa_actiond}} package is required. Note that wpa-config profiles does not work with net-auto-wireless. Convert them to wpa-configsection instead.<br />
<br />
===net-auto-wired===<br />
'''{{Codeline|net-auto-wired}} allows users to automatically connect to wired networks.'''<br />
<br />
To enable this feature, users must install ifplugd <br />
<br />
# pacman -S ifplugd<br />
<br />
and add {{Codeline|net-auto-wired}} to the {{Codeline|DAEMONS}} array in [[rc.conf]] and specify the desired wired interface with the {{Codeline|WIRED_INTERFACE}} variable:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
WIRED_INTERFACE="eth0"<br />
<br />
...<br />
<br />
DAEMONS=(... net-auto-wired ...)<br />
</nowiki>}}<br />
<br />
The daemon starts an ifplugd process which runs {{Filename|/etc/ifplugd/netcfg.action}} when the status of the wired interface changes (e.g. a cable is plugged in or unplugged). On plugging in a cable, attempts are made to start any profiles with CONNECTION = "ethernet" or "ethernet-iproute" and INTERFACE = WIRED_INTERFACE until one of them succeeds.<br />
<br />
Note: DHCP profiles are tried before static ones, which could lead to undesired results in some cases.<br />
<br />
Note2: The net-auto-wired daemon cannot start multiple ifplugd processes for multiple interfaces (unlike ifplugd's own /etc/rc.d/ifplugd which can).<br />
<br />
==Tips and tricks==<br />
<br />
===Passing arguments to iwconfig before connecting===<br />
Simply add the following to a profile:<br />
<br />
IWCONFIG="<arguments>"<br />
<br />
Where {{Codeline|<arguments>}} can be any valid {{Codeline|iwconfig}} argument. The script then runs {{Codeline|iwconfig $INTERFACE $IWCONFIG}}.<br />
<br />
For example, force the card to register to a specific access point given by MAC address:<br />
IWCONFIG="ap 12:34:56:78:90:12"<br />
<br />
This supersedes the {{Codeline|IWOPTS}} and {{Codeline|WEP_OPTS}} options which were incompletely implemented.<br />
<br />
===rfkill (enable/disable radio power)===<br />
netcfg can enable/disable radio for wireless cards equipped with software control of radio. For wireless cards with hardware switches, netcfg can detect disabled hardware switches and fail accordingly.<br />
<br />
To enable rfkill support, you need to specify what sort of switch the wireless interface has; hardware or software. This can be set within a profile or at the interface level ({{Filename|/etc/network.d/interfaces/$INTERFACE}}; see [[#Per-interface configuration]]). <br />
<br />
RFKILL=soft # can be either 'hard' or 'soft'<br />
<br />
For some kill switches the rfkill entry in {{Filename|/sys}} is not linked to the interface and the {{Codeline|RFKILL_NAME}} variable needs to be set to the contents of the matching {{Filename|/sys/class/rfkill/rfkill#/name}}.<br />
<br />
For example, on an Eee PC:<br />
<br />
RFKILL=soft<br />
RFKILL_NAME='eeepc-wlan'<br />
<br />
On a mid-2011 Thinkpad:<br />
<br />
RFKILL=hard<br />
RFKILL_NAME='phy0'<br />
<br />
===Execute commands before/after interface up/down===<br />
If your interface requires special actions prior/after the establishment/closure of a connection, you may use the {{Codeline|PRE_UP}}, {{Codeline|POST_UP}}, {{Codeline|PRE_DOWN}}, and {{Codeline|POST_DOWN}} variables.<br />
<br />
For example, if you want to configure your wireless card to operate in ad-hoc mode but you can only change modes when the interface is down, you could use something like this:<br />
<br />
PRE_UP="ifconfig wlan0 down; iwconfig wlan0 mode ad-hoc"<br />
<br />
Or if you want to mount your network shares after a successful connection, you could use:<br />
<br />
POST_UP="sleep 5; mount /mnt/shares/nexus/utorrent 2>/dev/null"<br />
<br />
Sometimes you may want to run something from netcfg with another user:<br />
<br />
POST_UP="su -c '/you/own/command' username"<br />
<br />
{{Note|If the commands specified in these properties return anything other than 0 (success), netcfg aborts the current operation. So if you want to mount a certain network share that might not be available at the time of connection (thus returning an error), you could create a separate Bash script with the mount commands and a {{Codeline|exit 0}} at the end. Alternatively you can add {{Codeline|<nowiki>|| true</nowiki>}} to the end of the command that may fail.}}<br />
<br />
===Intermittent Connection Failure===<br />
Some driver+hardware combinations drop associations sometimes. Use the pre and post<br />
commands to add/remove the driver and use a script like the following <br />
to fix the current connection:<br />
<br />
{{File<br />
|name=/usr/local/bin/netcfgd<br />
|content=<nowiki><br />
#!/bin/bash<br />
log() { logger -t "$( basename $0 )" "$*" ; }<br />
<br />
main() {<br />
local host<br />
while sleep 1; do<br />
[[ "$( netcfg current )" = "" ]] && continue<br />
<br />
host=$( route -n | awk '/^0.0.0.0/ { print $2 }' )<br />
ping -c 1 $host && continue<br />
<br />
log "trying to reassociate"<br />
wpa_cli reassociate<br />
ping -c 1 $host && continue<br />
<br />
log "reassociate failed, reconfiguring network"<br />
netcfg -r $( netcfg current )<br />
done<br />
}<br />
<br />
exec 1>/dev/null<br />
[[ $EUID != 0 ]] && { log "must be root"; exit 1; }<br />
<br />
for cmd in wpa_cli ping netcfg; do<br />
! which $cmd && {<br />
log "can't find command ${cmd}, exiting..."<br />
exit 1<br />
}<br />
done<br />
<br />
log 'starting...'<br />
main <br />
<br />
</nowiki>}}<br />
<br />
===Per-interface configuration===<br />
Configuration options that apply to all profiles using an interface can be set using {{Filename|/etc/network.d/interfaces/$INTERFACE}}. For example:<br />
<br />
/etc/network.d/interfaces/wlan0<br />
<br />
This is useful for {{Codeline|wpa_supplicant}} options, rfkill switch support, pre/post up/down scripts and {{Codeline|net-auto-wireless}}. These options are loaded ''before'' profiles so that any profile-based options will take priority.<br />
<br />
{{Filename|/etc/network.d/interfaces/$INTERFACE}} may contain any valid profile option, though you are likely to use {{Codeline|PRE_UP}}/{{Codeline|DOWN}} and {{Codeline|POST_UP}}/{{Codeline|DOWN}} (described in the previous section) or one of the options listed below. Remember that these options are set for ''all'' profiles using the interface; you probably do not want to connect to your work VPN here, for instance, as it will try to connect on ''every'' wireless network!<br />
<br />
WPA_GROUP - Setting the group of the wpa_ctrl interface<br />
WPA_COUNTRY - Enforces local regulatory limitations and allows use of more channels<br />
WPA_DRIVER - Defaults to wext, may want nl80211 for mac80211 devices<br />
<br />
{{Note|{{Codeline|POST_UP}}/{{Codeline|POST_DOWN}} require the {{Package Official|wpa_actiond}} package.}}<br />
<br />
===Output hooks===<br />
netcfg has limited support to load hooks that handle output. By default it loads the {{Filename|arch}} hook which provides the familiar output that you see. A syslog logging hook is also included. These can be found at {{Filename|/usr/lib/network/hooks}}.<br />
<br />
===ArchAssistant (GUI)===<br />
<br />
A Qt-based netcfg front-end called ArchAssistant exists. It proposes to manage and connect/disconnect profiles from a systray icon. Automatic wireless detection is also available. This tool is particularly useful for laptop users.<br />
<br />
Links:<br />
<br />
* [http://aur.archlinux.org/packages.php?ID=15655 archassistant in the AUR] <br />
* [http://www.kde-apps.org/content/show.php/ArchAssistant?content=76760 archassistant on kde-apps.org] <br />
<br />
There is also a relatively new GUI for netcfg2 on qt-apps.org that does only network configuration. You can find it [http://www.qt-apps.org/content/show.php/netcfgGUI?content=99523 here].<br />
<br />
===wifi-select===<br />
<br />
There is a console tool for selecting wireless networks in "real-time" (in NetworkManager manner) called <tt>wifi-select</tt>. The tool is convenient for use in Internet cafés or other places you are visiting for the first (and maybe the last) time. With this tool, you do not need to create a profile for a new network, just type {{Codeline|sudo wifi-select wlan0}} and choose the network you need. <br />
<br />
The tool is currently packaged and available in [community] repository. To install:<br />
<br />
# pacman -S wifi-select<br />
<br />
<tt>wifi-select</tt> does the following:<br />
* parses <tt>iwlist scan</tt> results and presents list of networks along with its security settings (WPA/WEP/none) using <tt>dialog</tt><br />
* if user selects network with existing profile -- just use this profile to connect with <tt>netcfg</tt><br />
* if user selects a new network (for example, WiFi hotspot), <tt>wifi-select</tt> automatically generates new profile with corresponding <tt>$SECURITY</tt> and asks for the key (if needed). It uses DHCP as <tt>$IP</tt> by default<br />
* then, if connection succeeds, profile is saved for later usage<br />
* if connection fails, user is asked if he/she wants to keep generated profile for further usage (for example to change <tt>$IP</tt> to static or adjust some additional options)<br />
<br />
Links: <br />
<br />
* [http://bbs.archlinux.org/viewtopic.php?id=63973 Forum thread] related to development of <tt>wifi-select</tt><br />
* [http://hg.horna.org.ua/wifi-select/ wifi-select Mercurial repository]<br />
* [https://github.com/sphynx/wifi-select wifi-select on GitHub]<br />
<br />
===Using dhclient instead of dhcpcd===<br />
<br />
Simply add<br />
DHCLIENT=yes<br />
in the desired profile.<br />
<br />
==Troubleshooting==<br />
<br />
===Debugging===<br />
To run netcfg with debugging output, set the {{Codeline|NETCFG_DEBUG}} environment variable to {{Codeline|"yes"}}, for example:<br />
<br />
# NETCFG_DEBUG="yes" netcfg <arguments><br />
<br />
Debugging information for wpa_supplicant can be logged using {{Codeline|WPA_OPTS}} within a profile, for example:<br />
<br />
WPA_OPTS="-f/path/to/log"<br />
<br />
Whatever is entered here will be added to the command when wpa_supplicant is called.<br />
<br />
===Network unavailable===<br />
This error is typically due to:<br />
* Out of range; or<br />
* Driver issue.<br />
<br />
===Wireless association failed===<br />
This error is typically due to:<br />
* Out of range/reception;<br />
* Incorrect configuration;<br />
* Invalid key;<br />
* Driver problem; or<br />
* Trying to connect to a hidden network.<br />
<br />
If the connection problem is due to poor reception, increase the {{Codeline|TIMEOUT}} variable in {{Filename|/etc/network.d/mynetwork}}, such as:<br />
TIMEOUT=60<br />
<br />
If an AP with a hidden SSID is used, try:<br />
PRE_UP='iwconfig $INTERFACE essid $ESSID'<br />
<br />
===Unable to get IP address with DHCP===<br />
This error is typically due to:<br />
* Out of range/reception<br />
<br />
Try increasing {{Codeline|DHCP_TIMEOUT}} variable in your network {{Filename|/etc/network.d/profile}}.<br />
<br />
===Not a valid connection, check spelling or look at examples===<br />
You must set {{Codeline|CONNECTION}} to one of the connection types listed in the {{Filename|/usr/lib/network/connections}} directory. Alternatively, use one of the provided configuration examples in {{Filename|/etc/network.d/examples}}.<br />
<br />
===Driver quirks===<br />
{{Note|You most likely do '''not''' need quirks; ensure your configuration is correct before considering them. Quirks are intended for a small range of drivers with unusual issues, many of them older versions. These are workarounds, not solutions.}}<br />
<br />
Some drivers behave oddly and need workarounds to connect. Quirks must be enabled manually. They are best determined by reading the forums, seeing what others have used, and, if that fails, trial and error. Quirks can be combined.<br />
<br />
; {{Codeline|prescan}}: Run {{Codeline|iwlist $INTERFACE scan}} before attempting to connect (broadcom)<br />
; {{Codeline|preessid}}: Run {{Codeline|iwconfig $INTERFACE essid $ESSID}} before attempting to connect (ipw3945, broadcom and Intel PRO/Wireless 4965AGN)<br />
; {{Codeline|wpaessid}}: Same as previous, run before starting {{Codeline|wpa_supplicant}}. Not supported anymore - use <pre>IWCONFIG="essid $ESSID"</pre> instead. (ath9k)<br />
; {{Codeline|predown}}: Take interface down before association and then restore it after (madwifi)<br />
; {{Codeline|postsleep}}: Sleep one second before checking if the association was successful<br />
; {{Codeline|postscan}}: Run {{Codeline|iwlist scan}} after associating <br />
<br />
Add the required quirks to the netcfg configuration file {{Filename|/etc/network.d/mynetwork}}, for example:<br />
QUIRKS=(prescan preessid)<br />
<br />
If you receive "Wireless network not found", "Association failed" errors and have tried the above, or if an AP with a hidden SSID is used, see the above section [[#Wireless association failed]].<br />
<br />
===Ralink legacy drivers rt2500, rt2400 that use iwpriv===<br />
There is no plans to add WPA support to these drivers. rt2x00 is supported, however, and will replace these.<br />
<br />
If you must use them, create a shell script that runs the needed {{Codeline|iwpriv}} commands and put its path in {{Codeline|PRE_UP}}.<br />
<br />
===find: "/var/run/network//suspend/": No such file or directory===<br />
If you get this error message then don't bother because it is a known bug. Create the directory by hand.<br />
<br />
===It still doesn't work, what do I do?===<br />
If this article did not help solve your problem, the next best place to ask for help is the forums or the mailing list. <br />
<br />
To be able to determine the problem, we need information. When you ask, provide the following output:<br />
* '''ALL OUTPUT FROM netcfg''' <br />
* '''ALL OUTPUT FROM netcfg''' <br />
* '''ALL OUTPUT FROM netcfg'''<br />
** This is absolutely crucial to be able determine what went wrong. The message might be short or non-existent, but it can mean a great deal. <br />
* '''{{Filename|/etc/network.d}} network profiles'''<br />
** This is also crucial as many problems are simple configuration issues. Feel free to censor your wireless key.<br />
* '''netcfg version'''<br />
* {{Codeline|lsmod}}<br />
* {{Codeline|iwconfig}}<br />
<br />
==FAQ==<br />
{{FAQ<br />
|question=Why doesn't netcfg do ''(some feature)''?<br />
|answer=netcfg doesn't need to; it connects to networks. netcfg is modular and re-usable; see {{Filename|/usr/lib/network}} for reusable functions for custom scripts.}}<br />
<br />
{{FAQ<br />
|question=Why doesn't netcfg behave in ''this'' way?<br />
|answer=netcfg doesn't enforce any rules; it connects to networks. It doesn't impose any heuristics, like "disconnect from wireless if ethernet is connected". If you want behaviour like that, it should be simple to write a separate tool over netcfg. See the question above.}}<br />
<br />
{{FAQ<br />
|question=Do I still need ''(some thing)'' if I'm using netcfg?<br />
|answer=This question usually references {{Filename|/etc/hosts}} and the {{Codeline|HOSTNAME}} variable in {{Filename|/etc/rc.conf}}, which are both still required. You may remove {{Codeline|network}} from the {{Codeline|DAEMONS}} array if you've configured all your networks with netcfg, though.}}</div>8472https://wiki.archlinux.org/index.php?title=Netcfg&diff=144584Netcfg2011-06-09T19:25:30Z<p>8472: wpa passphrase through wpa_supplicant possible (without plain text password)</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[fr:Netcfg]]<br />
{{i18n|Netcfg}}<br />
{{Article summary start}}<br />
{{Article summary text|A guide to installing and configuring netcfg &ndash; network configuration and profile scripts.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Networking overview}}}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|netcfg network scripts repository|http://projects.archlinux.org/netcfg.git/}}<br />
{{Article summary end}}<br />
<br />
From the [http://projects.archlinux.org/netcfg.git/tree/man/netcfg.8 netcfg man page]:<br />
<br />
:'''''netcfg''' is used to configure and manage network connections via profiles. It has pluggable support for a range of connection types, such as wireless, ethernet, ppp. It is also capable of starting/stopping many to one connections, that is, multiple connections within the same profile, optionally with bonding.''<br />
<br />
netcfg is useful for users seeking a simple and robust means of managing multiple network configurations (e.g. laptop users). For systems connecting to a single network, the [[network]] daemon may be more appropriate.<br />
<br />
==Preparation==<br />
In the simplest cases, users must at least know the name of their network interface(s) (e.g. '''eth0''', '''wlan0'''). If configuring a static IP address, gateway and name server addresses must also be known.<br />
<br />
If connecting to a wireless network, have some basic information ready. For a wireless network this includes what type of security is used, the network name (ESSID), and any password or encryption keys. Additionally, ensure the proper drivers and firmware are installed for the wireless device, as described in [[Wireless Setup]].<br />
<br />
==Installation==<br />
Ensure you have the latest version of netcfg installed. Older versions have more bugs and may not work well with the latest drivers. The {{Package Official|netcfg}} package is available in '''core''':<br />
<br />
# pacman -S netcfg<br />
<br />
As of version 2.5.x, optional dependencies include {{Package Official|wpa_actiond}} &ndash; required for automatic/roaming wireless connection &ndash; and {{Package Official|ifplugd}} &ndash; required for automatic ethernet configuration. ([http://www.archlinux.org/news/487/ More information].)<br />
<br />
# pacman -S wpa_actiond ifplugd<br />
<br />
==Configuration==<br />
Network profiles are stored in the {{Filename|/etc/network.d}} directory. To minimize the potential for errors, copy an example configuration from {{Filename|/etc/network.d/examples/}} to {{Filename|/etc/network.d/mynetwork}}. The file name is the name of the network profile ("mynetwork" is used as an example throughout this article). The name is not a network setting and does not need to match the wireless network name (SSID).<br />
<br />
Depending on the connection type and security, use one of the following examples from {{Filename|/etc/network.d/examples}} as a base. Be wary of examples found on the Internet as they often contain deprecated options that may cause problems.<br />
<br />
{| border="1"<br />
! Connection type/security !! Example profile<br />
|-<br />
| Wireless; WEP hex key || {{Filename|wireless-wep}}<br />
|-<br />
| Wireless; WEP string key || {{Filename|wireless-wep-string-key}}<br />
|-<br />
| Wireless; WPA personal (passphrase) || {{Filename|wireless-wpa}}<br />
|-<br />
| Wireless; WPA enterprise || {{Filename|wireless-wpa-config}} (wpa_supplicant configuration is external) <br /> {{Filename|wireless-wpa-configsection}} (wpa_supplicant configuration stored as string)<br />
|-<br />
| Wired; DHCP || {{Filename|ethernet-dhcp}}<br />
|-<br />
| Wired; static IP || {{Filename|ethernet-static}}<br />
|-<br />
| Wired; iproute configuration || {{Filename|ethernet-iproute}}<br />
|}<br />
<br />
Next, modify the new configuration file, {{Filename|/etc/network.d/mynetwork}}:<br />
<br />
* Set {{Codeline|INTERFACE}} to the correct wireless or ethernet interface. This can be checked with {{Codeline|ifconfig}} and {{Codeline|iwconfig}}.<br />
* Ensure the {{Codeline|ESSID}} and {{Codeline|KEY}} (passphrase) are set correctly for wireless connections. Typos in these fields are common errors.<br />
** Note that WEP ''string'' keys (not ''hex'' keys) must be specified with a leading {{Codeline|s:}} (e.g. {{Codeline|<nowiki>KEY="s:somepasskey"</nowiki>}}).<br />
<br />
{{Note | Netcfg configurations are valid Bash scripts. Any configuration involving special characters such as $ or \ needs to be quoted correctly otherwise it will be interpreted by Bash. To avoid interpretation, use single quotes or backslash escape characters where appropriate. }}<br />
<br />
{{Note | Network information (e.g. wireless passkey) will be stored in plain text format, so users may want to change the permissions on the newly created profile (e.g. {{Codeline|chmod 0600 /etc/network.d/mynetwork}} to make it readable by root only).}}<br />
<br />
{{Note | For WPA personal, it is also possible to use WPA passkey encoded into a hexadecimal string, instead of plain text passkey.<br />
Follow the procedure on the [[Wpa_supplicant#Classic_method:_wpa_supplicant.conf|WPA supplicant page's 1st example exercise]] to generate a hexadecimal string from you WPA passkey.<br><br />
Save the new hexadecimal string into your wireless WPA profile in {{Codeline|/etc/network.d/mynetwork}} as the value of KEY variable (make sure this will be the only KEY variable enabled), to look similar to this (replace the string with your one):<br />
<pre>KEY='7b271c9a7c8a6ac07d12403a1f0792d7d92b5957ff8dfd56481ced43ec6a6515'</pre><br />
That should do it, without the need to reveal the passkey.<br><br />
This will start the wpa_supplicant as a daemon on the background, and will keep running even after the wireless connection would be disconnected, which will unfortunately deny to initiate any new wireless connection using this wpa_passhprase method due to already runnig wpa_supplicant.<br><br />
A simple {{cli|kill `pgrep wpa_supplicant`}} command will terminate this daemon, and perhaps the [[Netcfg#Execute_commands_before.2Fafter_interface_up.2Fdown|Execute commands before/after interface up/down]] chapter might be worth of a try to automate this.<br />
}} <br />
<br />
<br />
==Usage==<br />
To connect a profile:<br />
# netcfg mynetwork<br />
<br />
To disconnect a profile:<br />
# netcfg down <profile-name><br />
<br />
If successful, users can configure netcfg to connect automatically or during boot. If the connection fails, see [[#Troubleshooting]] for solutions and how to get help.<br />
<br />
For other functions, see:<br />
$ netcfg help<br />
<br />
==Connecting automatically==<br />
Several methods are available to users wanting to automatically connect network profiles (e.g. during boot or whilst roaming). Note that a network profile must be properly configured within the {{Filename|/etc/network.d}} directory ''first'' (see [[#Configuration]]).<br />
<br />
{{Tip|If enabling one of the following daemons and nothing is configured within the {{Codeline|INTERFACES}} array in {{Filename|rc.conf}}, you may remove the {{Codeline|network}} daemon from the {{Codeline|DAEMONS}} array. If you mount NFS shares during boot, ensure the {{Codeline|netfs}} daemon remains listed, though (otherwise the network will be dropped before unmounting shares during shutdown).}}<br />
<br />
===net-profiles===<br />
'''{{Codeline|net-profiles}} allows users to connect profiles during boot.'''<br />
<br />
To enable this feature, users must add {{Codeline|net-profiles}} to the {{Codeline|DAEMONS}} array in [[rc.conf]] and specify profiles to try in the {{Codeline|NETWORKS}} array:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
NETWORKS=(mynetwork yournetwork)<br />
<br />
...<br />
<br />
DAEMONS=(... net-profiles ...)<br />
</nowiki>}}<br />
<br />
Alternatively, {{Codeline|net-profiles}} can be configured to display a menu &ndash; allowing users to choose a desired profile &ndash; by setting the contents of the {{Codeline|NETWORKS}} array to {{Codeline|menu}}:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
NETWORKS=(menu)<br />
<br />
...<br />
<br />
DAEMONS=(... net-profiles ...)<br />
</nowiki>}}<br />
<br />
Additionally, the {{Package Official|dialog}} package is required.<br />
<br />
{{Tip|Access the menu at any time by running {{Codeline|netcfg-menu}} in a terminal.}}<br />
<br />
===net-auto-wireless===<br />
'''{{Codeline|net-auto-wireless}} allows users to automatically connect to wireless networks with proper roaming support.'''<br />
<br />
To enable this feature, users must add {{Codeline|net-auto-wireless}} to the {{Codeline|DAEMONS}} array in [[rc.conf]] and specify the desired wireless interface with the {{Codeline|WIRELESS_INTERFACE}} variable:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
WIRELESS_INTERFACE="wlan0"<br />
<br />
...<br />
<br />
DAEMONS=(... net-auto-wireless ...)<br />
</nowiki>}}<br />
<br />
Additionally, the {{Package Official|wpa_actiond}} package is required. Note that wpa-config profiles does not work with net-auto-wireless. Convert them to wpa-configsection instead.<br />
<br />
===net-auto-wired===<br />
'''{{Codeline|net-auto-wired}} allows users to automatically connect to wired networks.'''<br />
<br />
To enable this feature, users must install ifplugd <br />
<br />
# pacman -S ifplugd<br />
<br />
and add {{Codeline|net-auto-wired}} to the {{Codeline|DAEMONS}} array in [[rc.conf]] and specify the desired wired interface with the {{Codeline|WIRED_INTERFACE}} variable:<br />
<br />
{{File<br />
|name=/etc/rc.conf<br />
|content=<nowiki><br />
WIRED_INTERFACE="eth0"<br />
<br />
...<br />
<br />
DAEMONS=(... net-auto-wired ...)<br />
</nowiki>}}<br />
<br />
The daemon starts an ifplugd process which runs {{Filename|/etc/ifplugd/netcfg.action}} when the status of the wired interface changes (e.g. a cable is plugged in or unplugged). On plugging in a cable, attempts are made to start any profiles with CONNECTION = "ethernet" or "ethernet-iproute" and INTERFACE = WIRED_INTERFACE until one of them succeeds.<br />
<br />
Note: DHCP profiles are tried before static ones, which could lead to undesired results in some cases.<br />
<br />
Note2: The net-auto-wired daemon cannot start multiple ifplugd processes for multiple interfaces (unlike ifplugd's own /etc/rc.d/ifplugd which can).<br />
<br />
==Tips and tricks==<br />
<br />
===Passing arguments to iwconfig before connecting===<br />
Simply add the following to a profile:<br />
<br />
IWCONFIG="<arguments>"<br />
<br />
Where {{Codeline|<arguments>}} can be any valid {{Codeline|iwconfig}} argument. The script then runs {{Codeline|iwconfig $INTERFACE $IWCONFIG}}.<br />
<br />
For example, force the card to register to a specific access point given by MAC address:<br />
IWCONFIG="ap 12:34:56:78:90:12"<br />
<br />
This supersedes the {{Codeline|IWOPTS}} and {{Codeline|WEP_OPTS}} options which were incompletely implemented.<br />
<br />
===rfkill (enable/disable radio power)===<br />
netcfg can enable/disable radio for wireless cards equipped with software control of radio. For wireless cards with hardware switches, netcfg can detect disabled hardware switches and fail accordingly.<br />
<br />
To enable rfkill support, you need to specify what sort of switch the wireless interface has; hardware or software. This can be set within a profile or at the interface level ({{Filename|/etc/network.d/interfaces/$INTERFACE}}; see [[#Per-interface configuration]]). <br />
<br />
RFKILL=soft # can be either 'hard' or 'soft'<br />
<br />
For some kill switches the rfkill entry in {{Filename|/sys}} is not linked to the interface and the {{Codeline|RFKILL_NAME}} variable needs to be set to the contents of the matching {{Filename|/sys/class/rfkill/rfkill#/name}}.<br />
<br />
For example, on an Eee PC:<br />
<br />
RFKILL=soft<br />
RFKILL_NAME='eeepc-wlan'<br />
<br />
On a mid-2011 Thinkpad:<br />
<br />
RFKILL=hard<br />
RFKILL_NAME='phy0'<br />
<br />
===Execute commands before/after interface up/down===<br />
If your interface requires special actions prior/after the establishment/closure of a connection, you may use the {{Codeline|PRE_UP}}, {{Codeline|POST_UP}}, {{Codeline|PRE_DOWN}}, and {{Codeline|POST_DOWN}} variables.<br />
<br />
For example, if you want to configure your wireless card to operate in ad-hoc mode but you can only change modes when the interface is down, you could use something like this:<br />
<br />
PRE_UP="ifconfig wlan0 down; iwconfig wlan0 mode ad-hoc"<br />
<br />
Or if you want to mount your network shares after a successful connection, you could use:<br />
<br />
POST_UP="sleep 5; mount /mnt/shares/nexus/utorrent 2>/dev/null"<br />
<br />
Sometimes you may want to run something from netcfg with another user:<br />
<br />
POST_UP="su -c '/you/own/command' username"<br />
<br />
{{Note|If the commands specified in these properties return anything other than 0 (success), netcfg aborts the current operation. So if you want to mount a certain network share that might not be available at the time of connection (thus returning an error), you could create a separate Bash script with the mount commands and a {{Codeline|exit 0}} at the end. Alternatively you can add {{Codeline|<nowiki>|| true</nowiki>}} to the end of the command that may fail.}}<br />
<br />
===Intermittent Connection Failure===<br />
Some driver+hardware combinations drop associations sometimes. Use the pre and post<br />
commands to add/remove the driver and use a script like the following <br />
to fix the current connection:<br />
<br />
{{File<br />
|name=/usr/local/bin/netcfgd<br />
|content=<nowiki><br />
#!/bin/bash<br />
log() { logger -t "$( basename $0 )" "$*" ; }<br />
<br />
main() {<br />
local host<br />
while sleep 1; do<br />
[[ "$( netcfg current )" = "" ]] && continue<br />
<br />
host=$( route -n | awk '/^0.0.0.0/ { print $2 }' )<br />
ping -c 1 $host && continue<br />
<br />
log "trying to reassociate"<br />
wpa_cli reassociate<br />
ping -c 1 $host && continue<br />
<br />
log "reassociate failed, reconfiguring network"<br />
netcfg -r $( netcfg current )<br />
done<br />
}<br />
<br />
exec 1>/dev/null<br />
[[ $EUID != 0 ]] && { log "must be root"; exit 1; }<br />
<br />
for cmd in wpa_cli ping netcfg; do<br />
! which $cmd && {<br />
log "can't find command ${cmd}, exiting..."<br />
exit 1<br />
}<br />
done<br />
<br />
log 'starting...'<br />
main <br />
<br />
</nowiki>}}<br />
<br />
===Per-interface configuration===<br />
Configuration options that apply to all profiles using an interface can be set using {{Filename|/etc/network.d/interfaces/$INTERFACE}}. For example:<br />
<br />
/etc/network.d/interfaces/wlan0<br />
<br />
This is useful for {{Codeline|wpa_supplicant}} options, rfkill switch support, pre/post up/down scripts and {{Codeline|net-auto-wireless}}. These options are loaded ''before'' profiles so that any profile-based options will take priority.<br />
<br />
{{Filename|/etc/network.d/interfaces/$INTERFACE}} may contain any valid profile option, though you are likely to use {{Codeline|PRE_UP}}/{{Codeline|DOWN}} and {{Codeline|POST_UP}}/{{Codeline|DOWN}} (described in the previous section) or one of the options listed below. Remember that these options are set for ''all'' profiles using the interface; you probably do not want to connect to your work VPN here, for instance, as it will try to connect on ''every'' wireless network!<br />
<br />
WPA_GROUP - Setting the group of the wpa_ctrl interface<br />
WPA_COUNTRY - Enforces local regulatory limitations and allows use of more channels<br />
WPA_DRIVER - Defaults to wext, may want nl80211 for mac80211 devices<br />
<br />
{{Note|{{Codeline|POST_UP}}/{{Codeline|POST_DOWN}} require the {{Package Official|wpa_actiond}} package.}}<br />
<br />
===Output hooks===<br />
netcfg has limited support to load hooks that handle output. By default it loads the {{Filename|arch}} hook which provides the familiar output that you see. A syslog logging hook is also included. These can be found at {{Filename|/usr/lib/network/hooks}}.<br />
<br />
===ArchAssistant (GUI)===<br />
<br />
A Qt-based netcfg front-end called ArchAssistant exists. It proposes to manage and connect/disconnect profiles from a systray icon. Automatic wireless detection is also available. This tool is particularly useful for laptop users.<br />
<br />
Links:<br />
<br />
* [http://aur.archlinux.org/packages.php?ID=15655 archassistant in the AUR] <br />
* [http://www.kde-apps.org/content/show.php/ArchAssistant?content=76760 archassistant on kde-apps.org] <br />
<br />
There is also a relatively new GUI for netcfg2 on qt-apps.org that does only network configuration. You can find it [http://www.qt-apps.org/content/show.php/netcfgGUI?content=99523 here].<br />
<br />
===wifi-select===<br />
<br />
There is a console tool for selecting wireless networks in "real-time" (in NetworkManager manner) called <tt>wifi-select</tt>. The tool is convenient for use in Internet cafés or other places you are visiting for the first (and maybe the last) time. With this tool, you do not need to create a profile for a new network, just type {{Codeline|sudo wifi-select wlan0}} and choose the network you need. <br />
<br />
The tool is currently packaged and available in [community] repository. To install:<br />
<br />
# pacman -S wifi-select<br />
<br />
<tt>wifi-select</tt> does the following:<br />
* parses <tt>iwlist scan</tt> results and presents list of networks along with its security settings (WPA/WEP/none) using <tt>dialog</tt><br />
* if user selects network with existing profile -- just use this profile to connect with <tt>netcfg</tt><br />
* if user selects a new network (for example, WiFi hotspot), <tt>wifi-select</tt> automatically generates new profile with corresponding <tt>$SECURITY</tt> and asks for the key (if needed). It uses DHCP as <tt>$IP</tt> by default<br />
* then, if connection succeeds, profile is saved for later usage<br />
* if connection fails, user is asked if he/she wants to keep generated profile for further usage (for example to change <tt>$IP</tt> to static or adjust some additional options)<br />
<br />
Links: <br />
<br />
* [http://bbs.archlinux.org/viewtopic.php?id=63973 Forum thread] related to development of <tt>wifi-select</tt><br />
* [http://hg.horna.org.ua/wifi-select/ wifi-select Mercurial repository]<br />
* [https://github.com/sphynx/wifi-select wifi-select on GitHub]<br />
<br />
===Using dhclient instead of dhcpcd===<br />
<br />
Simply add<br />
DHCLIENT=yes<br />
in the desired profile.<br />
<br />
==Troubleshooting==<br />
<br />
===Debugging===<br />
To run netcfg with debugging output, set the {{Codeline|NETCFG_DEBUG}} environment variable to {{Codeline|"yes"}}, for example:<br />
<br />
# NETCFG_DEBUG="yes" netcfg <arguments><br />
<br />
Debugging information for wpa_supplicant can be logged using {{Codeline|WPA_OPTS}} within a profile, for example:<br />
<br />
WPA_OPTS="-f/path/to/log"<br />
<br />
Whatever is entered here will be added to the command when wpa_supplicant is called.<br />
<br />
===Network unavailable===<br />
This error is typically due to:<br />
* Out of range; or<br />
* Driver issue.<br />
<br />
===Wireless association failed===<br />
This error is typically due to:<br />
* Out of range/reception;<br />
* Incorrect configuration;<br />
* Invalid key;<br />
* Driver problem; or<br />
* Trying to connect to a hidden network.<br />
<br />
If the connection problem is due to poor reception, increase the {{Codeline|TIMEOUT}} variable in {{Filename|/etc/network.d/mynetwork}}, such as:<br />
TIMEOUT=60<br />
<br />
If an AP with a hidden SSID is used, try:<br />
PRE_UP='iwconfig $INTERFACE essid $ESSID'<br />
<br />
===Unable to get IP address with DHCP===<br />
This error is typically due to:<br />
* Out of range/reception<br />
<br />
Try increasing {{Codeline|DHCP_TIMEOUT}} variable in your network {{Filename|/etc/network.d/profile}}.<br />
<br />
===Not a valid connection, check spelling or look at examples===<br />
You must set {{Codeline|CONNECTION}} to one of the connection types listed in the {{Filename|/usr/lib/network/connections}} directory. Alternatively, use one of the provided configuration examples in {{Filename|/etc/network.d/examples}}.<br />
<br />
===Driver quirks===<br />
{{Note|You most likely do '''not''' need quirks; ensure your configuration is correct before considering them. Quirks are intended for a small range of drivers with unusual issues, many of them older versions. These are workarounds, not solutions.}}<br />
<br />
Some drivers behave oddly and need workarounds to connect. Quirks must be enabled manually. They are best determined by reading the forums, seeing what others have used, and, if that fails, trial and error. Quirks can be combined.<br />
<br />
; {{Codeline|prescan}}: Run {{Codeline|iwlist $INTERFACE scan}} before attempting to connect (broadcom)<br />
; {{Codeline|preessid}}: Run {{Codeline|iwconfig $INTERFACE essid $ESSID}} before attempting to connect (ipw3945, broadcom and Intel PRO/Wireless 4965AGN)<br />
; {{Codeline|wpaessid}}: Same as previous, run before starting {{Codeline|wpa_supplicant}}. Not supported anymore - use <pre>IWCONFIG="essid $ESSID"</pre> instead. (ath9k)<br />
; {{Codeline|predown}}: Take interface down before association and then restore it after (madwifi)<br />
; {{Codeline|postsleep}}: Sleep one second before checking if the association was successful<br />
; {{Codeline|postscan}}: Run {{Codeline|iwlist scan}} after associating <br />
<br />
Add the required quirks to the netcfg configuration file {{Filename|/etc/network.d/mynetwork}}, for example:<br />
QUIRKS=(prescan preessid)<br />
<br />
If you receive "Wireless network not found", "Association failed" errors and have tried the above, or if an AP with a hidden SSID is used, see the above section [[#Wireless association failed]].<br />
<br />
===Ralink legacy drivers rt2500, rt2400 that use iwpriv===<br />
There is no plans to add WPA support to these drivers. rt2x00 is supported, however, and will replace these.<br />
<br />
If you must use them, create a shell script that runs the needed {{Codeline|iwpriv}} commands and put its path in {{Codeline|PRE_UP}}.<br />
<br />
===find: "/var/run/network//suspend/": No such file or directory===<br />
If you get this error message then don't bother because it is a known bug. Create the directory by hand.<br />
<br />
===It still doesn't work, what do I do?===<br />
If this article did not help solve your problem, the next best place to ask for help is the forums or the mailing list. <br />
<br />
To be able to determine the problem, we need information. When you ask, provide the following output:<br />
* '''ALL OUTPUT FROM netcfg''' <br />
* '''ALL OUTPUT FROM netcfg''' <br />
* '''ALL OUTPUT FROM netcfg'''<br />
** This is absolutely crucial to be able determine what went wrong. The message might be short or non-existent, but it can mean a great deal. <br />
* '''{{Filename|/etc/network.d}} network profiles'''<br />
** This is also crucial as many problems are simple configuration issues. Feel free to censor your wireless key.<br />
* '''netcfg version'''<br />
* {{Codeline|lsmod}}<br />
* {{Codeline|iwconfig}}<br />
<br />
==FAQ==<br />
{{FAQ<br />
|question=Why doesn't netcfg do ''(some feature)''?<br />
|answer=netcfg doesn't need to; it connects to networks. netcfg is modular and re-usable; see {{Filename|/usr/lib/network}} for reusable functions for custom scripts.}}<br />
<br />
{{FAQ<br />
|question=Why doesn't netcfg behave in ''this'' way?<br />
|answer=netcfg doesn't enforce any rules; it connects to networks. It doesn't impose any heuristics, like "disconnect from wireless if ethernet is connected". If you want behaviour like that, it should be simple to write a separate tool over netcfg. See the question above.}}<br />
<br />
{{FAQ<br />
|question=Do I still need ''(some thing)'' if I'm using netcfg?<br />
|answer=This question usually references {{Filename|/etc/hosts}} and the {{Codeline|HOSTNAME}} variable in {{Filename|/etc/rc.conf}}, which are both still required. You may remove {{Codeline|network}} from the {{Codeline|DAEMONS}} array if you've configured all your networks with netcfg, though.}}</div>8472https://wiki.archlinux.org/index.php?title=CUPS&diff=120554CUPS2010-11-02T20:51:58Z<p>8472: avahi-daemon - /* HPLIP printer sends "/usr/lib/cups/backend/hp failed" error */</p>
<hr />
<div>[[Category:Printers (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Installing and configuring CUPS}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
From [http://www.cups.org/index.php CUPS' site]:<br />
:"''CUPS is the standards-based, open source printing system developed by Apple Inc. for Mac OS® X and other UNIX®-like operating systems''".<br />
<br />
Although there are other printing packages such as LPRNG, the Common Unix Printing System is the most popular choice because of its relative ease of use.<br />
<br />
==Installing==<br />
These packages are needed:<br />
# pacman -S cups ghostscript gsfonts<br />
<br />
* '''cups''' - The actual CUPS software<br />
* '''ghostscript''' - Interpreter for the Postscript language<br />
* '''gsfonts''' - GhostScript standard Type1 fonts<br />
* '''hal-cups-utils''' - This package ''might'' be needed. Read [http://bbs.archlinux.org/viewtopic.php?pid=655391#p655391 this forum post] for more information<br />
<br />
If the system is connected to a networked printer using the [[Samba]] protocol or if the system is to be a print server for Windows clients, also install Samba:<br />
# pacman -S samba<br />
<br />
===Printer driver===<br />
Here are some of the driver packages. Choosing the right driver depends on the printer:<br />
<br />
* '''gutenprint''' - A collection of high quality drivers for Canon, Epson, Lexmark, Sony, Olympus, and PCL printers for use with GhostSscript, CUPS, Foomatic, and the [[GIMP]]<br />
* '''foomatic-db, foomatic-db-engine, foomatic-db-nonfree, and foomatic-filters''' - Foomatic is a database-driven system for integrating free software printer drivers with common spoolers under Unix. Installing foomatic-filters should solve problems if the cups error_log is reporting "stopped with status 22!".<br />
* '''hplip''' - HP GNU/Linux driver. Provides support for DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet printer models, as well as a number of Brother printers.<br />
* '''splix''' - Samsung drivers for SPL (Samsung Printer Language) printers<br />
* '''ufr2''' - Canon UFR2 driver with support for LBP, iR and MF series printers. Package is available in the [[AUR]].<br />
* '''cups-pdf''' - A package that allows one to setup a virtual PDF Printer that generates a PDF out of jobs sent to it<br />
<br />
If unsure of what driver package to install or if the current driver is not working, it may be easiest to just install all of drivers, since some of the packages are misleading because printers of other makes may rely on them. For instance, the Brother HL-2140 needs the hplip driver installed.<br />
# pacman -S gutenprint foomatic-db foomatic-db-engine \<br />
foomatic-db-nonfree foomatic-filters \<br />
hplip splix ufr2 cups-pdf<br />
<br />
====Download printer PPD====<br />
Depending on the printer, this step is optional and may not be needed, as the standard CUPS installation already comes with quite a few PPD (Postscript Printer Description) files. Moreover, the ''foomatic-filters'', ''gimp-print'' and ''hplip'' packages already include quite a few PPD files which will automatically be detected by CUPS.<br />
<br />
Here is an explanation of what a PPD file is from the Linux Printing website:<br />
:"''For every PostScript printer the manufacturers provide a PPD file which contains all printer-specific information about the particular printer model: Basic printer capabilities as whether the printer is a color printer, fonts, PostScript level, etc., and especially the user-adjustable options, as paper size, resolution, etc.''"<br />
<br />
If the PPD for the printer is ''not'' already in CUPS, then:<br />
*check [[AUR]] to see if there are packages for the printer/manufacturer<br />
*visit the [http://www.linuxprinting.org/printer_list.cgi OpenPrinting database] and select the manufacturer and model of the printer<br />
*visit the manufacturer's site and search for GNU/Linux drivers<br />
<br />
{{Note|PPD files go in {{Filename|/usr/share/cups/model/}}}}<br />
<br />
==Configuring==<br />
Now that CUPS is installed, there are a variety of options on how to setup printing solutions. As always, the tried and true command line method is at disposal. Likewise, various desktop environments such as GNOME and KDE have useful programs that can help manage printers. However, in order to make this process easy for the largest amount of users, this article will focus on the web interface provided by CUPS.<br />
<br />
If you are planning on connecting to a network printer, rather than one that is directly connected to the computer, you might want to read the [[CUPS printer sharing]] page first. Printer sharing between GNU/Linux systems is quite easy and involves very little configuration, whereas sharing between a Windows and GNU/Linux host requires a little bit more effort.<br />
<br />
===Kernel modules===<br />
Before using the CUPS web interface, the appropriate kernel modules need to be installed. The following steps are from the Gentoo Printing Guide.<br />
<br />
This section may not be necessary, however, depending on which kernel is being used. The kernel module may load automatically after plugging in the printer. Use the {{Codeline|tail}} command (described below) to see if the printer has already been detected. The {{Codeline|lsmod}} utility can also be used to see what modules have been loaded.<br />
<br />
====USB printers====<br />
USB printer users may need to blacklist the {{codeline|usblp}} module. Keep in mind that there seems to be a lot of [http://bbs.archlinux.org/viewtopic.php?pid=660601 uncertainty] regarding blacklisting {{codeline|usblp}}, as some USB printers, including some Canon and Epson printer series, are not recognized without it. Several user reported issues with Samsung printers when using {{codeline|cups}} with blacklisted {{codeline|usblp}} module, the solution was to re-enable {{codeline|usblp}} and install {{codeline|cups-usblp}} from aur instead of regular {{codeline|cups}} package (https://bbs.archlinux.org/viewtopic.php?pid=778104)<br />
<br />
To disable the module, edit {{filename|/etc/rc.conf}} as shown:<br />
<br />
{{File|name=/etc/rc.conf|content=MODULES=(... '''!usblp''' ...)}}<br />
<br />
Or blacklist the module in {{Filename|/etc/modprobe.d/modprobe.conf}} by forcing the executing a command that does nothing:<br />
<br />
install usblp /bin/false<br />
<br />
Custom kernel users may need to manually load the {{codeline|usbcore}} module before proceeding:<br />
# modprobe usbcore<br />
<br />
Once the modules are installed, plug in the printer and check if the kernel detected it by running the following:<br />
# tail /var/log/messages.log<br />
or<br />
# dmesg<br />
<br />
If you're using {{codeline|usblp}}, the output should indicate that the printer has been detected like so:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
If you blacklisted {{codeline|usblp}}, you will see something like:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
====Parallel port printers====<br />
If planning on using a parallel port printer, note that the configuration is pretty much the same, except for the modules:<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Once again, check the setup by running:<br />
# tail /var/log/messages.log<br />
It should display something like this:<br />
lp0: using parport0 (polling).<br />
<br />
====Auto-loading====<br />
It's convenient to have the system automatically load the kernel module every time the it starts up. To do so, use a text editor to open up {{Filename|/etc/[[rc.conf]]}} and add the appropriate module to the <code>MODULES=()</code> line. Here is an example:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===CUPS daemon===<br />
With the kernel modules installed, the system is now ready to start the actual CUPS daemon. To do this, simply run this command:<br />
# /etc/rc.d/cups start<br />
<br />
For automatically starting CUPS every time the system is powered on, add it to the <code>DAEMONS=()</code> line in the {{Filename|/etc/rc.conf}} file. For example:<br />
DAEMONS=(pcmcia syslogd klogd !fam esd mono network autofs '''cups''' crond gdm)<br />
<br />
=== Web interface and tool-kit ===<br />
<br />
Once the daemon is running, open a browser and go to: http://localhost:631 (''The '''localhost''' string may need to be replaced with the hostname found in'' {{Filename|/etc/hosts}}).<br />
<br />
From here, follow the various wizards to add the printer. A usual procedure is to start by clicking on ''Adding Printers and Classes'' and then ''Add Printer''. When prompted for a user-name and password, log in as root. The name assigned to the printer does not matter, the same applies for 'location' and 'description'. Next, a list of devices to select from will be presented. The actual name of the printer shows up next to the label ( e.g., next to ''USB Printer #1'' for USB printers). Finally, chose the appropriate drivers and the configuration is complete.<br />
<br />
Now, test the configuration by pressing the ''Maintenance'' drop-down menu then ''Print Test Page''. If it does not print and there is certainty regarding the correctness of applied settings, then the problem is most likely due to missing a proper printer driver.<br />
<br />
{{Tip|[[GNOME]] users may be inclined towards installing the GNOME CUPS manager GUI frontend. See: [[#Alternative CUPS interfaces]]}}<br />
{{Note|When setting up a USB printer, you should see your printer listed on ''Add Printer'' page. If you can only see a "SCSI printer" option, it probably means that CUPS has failed to recognize your printer.}}<br />
<br />
==== CUPS administration ====<br />
<br />
A user-name and password will be required when administrating the printer in the web interface, such as: adding or removing printers, stopping print tasks, etc. The default user-name is the one assigned in the ''sys'' group, or root (change this by editing {{Filename|/etc/cups/cupsd.conf}} in the line of ''SystemGroup''). <br />
<br />
If the root account has been locked, it is not possible to log in the CUPS administration interface with the default user-name and password. In this case, it may be needed to change the default SystemGroup in cupsd.conf and read [http://bbs.archlinux.org/viewtopic.php?id=35567 this post].<br />
<br />
====Remote access to web interface====<br />
By default, the CUPS web interface can only be accessed by the ''localhost''; i.e. the computer that it is installed on. To remotely access the interface, make the following changes to the {{Filename|/etc/cups/cupsd.conf}} file. Replace the line:<br />
Listen localhost:631<br />
with<br />
port 631<br />
so that CUPS listens to incoming requests.<br />
<br />
There are three levels of access that can be granted:<br />
<Location /> #access to the server<br />
<Location /admin> #access to the admin pages<br />
<Location /admin/conf> #access to configuration files<br />
<br />
To give remote hosts access to one of these levels, add an {{codeline|Allow}} statement to that level's section. An {{codeline|Allow}} statement can take one or more of the forms listed below:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Deny statements can also be used. For example, if wanting to give all hosts on the 192.168.1.0/255.255.255.0 subnet full access, file {{Filename|/etc/cups/cupsd.conf}} would include this:<br />
# Restrict access to the server...<br />
# By default only localhost connections are possible<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Restrict access to the admin pages...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Restrict access to configuration files...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
==Troubleshooting==<br />
The best way to get printing working is to set 'LogLevel' in {{Filename|/etc/cups/cupsd.conf}} to:<br />
LogLevel debug<br />
<br />
And then viewing the output from {{Filename|/var/log/cups/error_log}} like this:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
The characters at the left of the output stand for:<br />
*D=Debug<br />
*E=Error<br />
*I=Information<br />
*And so on<br />
<br />
These files may also prove useful:<br />
*{{Filename|/var/log/cups/page_log}} - Echoes a new entry each time a print is successful<br />
*{{Filename|/var/log/cups/access_log}} - Lists all cupsd http1.1 server activity<br />
<br />
Of course, it is important to know how CUPS works if wanting to solve related issues:<br />
# An application sends a .ps file (PostScript, a script language that details how the page will look) to CUPS when 'print' has been selected (this is the case with most programs).<br />
# CUPS then looks at the printer's PPD file (printer description file) and figures out what filters it needs to use to convert the .ps file to a language that the printer understands (like PJL, PCL), usually GhostScript.<br />
# GhostScript takes the input and figures out which filters it should use, then applies them and converts the .ps file to a format understood by the printer.<br />
# Then it is sent to the back-end. For example, if the printer is connected to a USB port, it uses the USB back-end.<br />
<br />
Print a document and watch {{Filename|error_log}} to get a more detailed and correct image of the printing process.<br />
<br />
===Problems resulting from upgrades===<br />
''Issues that appeared after CUPS and related program packages underwent a version increment''<br />
<br />
====CUPS stops working====<br />
The chances are that a new configuration file is needed for the new version to work properly. Messages such as "404 - page not found" my result from trying to manage CUPS via localhost:631, for example.<br />
<br />
To use the new configuration, copy /etc/cups/cupsd.conf.default to /etc/cups/cupsd.conf (backup the old the configuration if needed):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
and restart CUPS to employ the new settings.<br />
<br />
====Error with gnutls====<br />
If receiving errors such as:<br />
/usr/sbin/cupsd: error while loading shared libraries: libgnutls.so.13: cannot open shared object file: No such file or directory<br />
gnutls may be in need of updating:<br />
# pacman -S gnutls<br />
<br />
After updating, there may be a file named {{Filename|cupsd.conf.pacnew}} in {{Filename|/etc/cups}}. This is the unmodified original configuration file that has been placed as part of the update. Compare it with the currently installed version and adjust to preference.<br />
<br />
====All jobs are "stopped"====<br />
If all jobs sent to the printer become "stopped", delete the printer and add it again.<br />
Using the [http://localhost:631 CUPS web interface], go to Printers > Delete Printer.<br />
<br />
To check the printer's settings go to ''Printers'', then ''Modify Printer''. Copy down the information displayed, click 'Modify Printer' to proceed to the next page(s), and so on.<br />
<br />
====The PPD version is not compatible with gutenprint====<br />
Run:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
And restart CUPS (as pointed out in gutenprint's post-install message)<br />
<br />
===USB printers under CUPS 1.4.x===<br />
New CUPS 1.4.x introduces many changes:<br />
<br />
====Configuration file====<br />
The syntax of the configuration file cupsd.conf changed. Start with a new cupsd.conf file based on /etc/cups/cupsd.conf.default.<br />
<br />
====Blacklisting usblp====<br />
CUPS now uses libusb and printer USB devices (under /dev/bus/usb/) instead of the usblp generated /dev/usb/lpX ones. In order to get USB printers working, the usblp module needs disabling. This can be done by blacklisting it in /etc/rc.conf, or by adding "blacklist usblp" to a configuration file in /etc/modprobe.d. Some users have also reported that they needed to reinstall their printer.<br />
<br />
====Device node permissions====<br />
In addition to usblp not being loaded, CUPS also needs the ownership of the USB device file of the printer to be root:lp, and permissions to be 660. E.g.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
This is supposed to be achieved by two udev rules in /lib/udev/rules.d/50-udev-default.rules:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
However, for some devices, in particular combined printer/scanner devices, these rules either do not trigger, or are overwritten by rules of the 'sane' package. In these cases a custom udev rule needs to be added. See below.<br />
<br />
=====Device node permission troubleshooting=====<br />
Get the printer's device file and its permissions with: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
If the permissions are not already root:lp 660, enforce it by creating a custom udev rule, e.g<br />
cat /etc/udev/rules.d/10-usbprinter.rules<br />
ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"<br />
<br />
Note that idVendor and idProduct are from the lsusb listing above.<br />
<br />
=====Loading firmware=====<br />
<br />
Some printers and drivers need to load firmware to the printer (such as HP LaserJet 10xx printers using foo2zjs) and do this by writing directly to the lp device, a functionality provided by usblp. A work around until this issue is resolved is to install the usblp module until the firmware is loaded, then remove the module to allow CUPS to work. This can be accomplished by manually running "$ modprobe usblp", waiting for the firmware to load, then "$ rmmod usblp". You can also not blacklist usblp, then put "rmmod usblp" to /etc/rc.local, allowing the firmware to be loaded on boot before rc.local is run, then removing usblp.<br />
<br />
===Other===<br />
<br />
=====CUPS permission errors=====<br />
*Some users fixed 'NT_STATUS_ACCESS_DENIED' (Windows clients) errors by using a slightly different syntax:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Sometimes, the block device has wrong permissions:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====HPLIP printer sends "/usr/lib/cups/backend/hp failed" error====<br />
Make sure dbus is installed and running, e.g. check DAEMONS in {{Filename|/etc/rc.conf}} or run {{Codeline|ls /var/run/daemons}}.<br />
<br />
The avahi-daemon might be required if this error persists and the dbus is already running.<br />
<br />
====hp-toolbox sends an error, "Unable to communicate with device"====<br />
If running hp-toolbox as a regular user results in:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
or, "{{Codeline|Unable to communicate with device"}}", then it may be needed to add the user to the lp group by running the following command:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS returns '"foomatic-rip" not available/stopped with status 3' with a HP printer====<br />
If receiving any of the following error messages in {{Filename|/var/log/cups/error_log}} while using a HP printer, with jobs appearing to be processed while they all end up not being completed with their status set to 'stopped':<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
or:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
make sure '''hplip''' has been installed, in addition to [[#Packages|the packages mentioned above]], '''net-snmp''' is also needed. See [http://bbs.archlinux.org/viewtopic.php?id=65615 this forum post].<br />
# pacman -S hplip<br />
<br />
====Printing fails with unauthorised error====<br />
If the user has been added to the lp group, and allowed to print (set in {{Filename|cups.conf}}), then the problem lies in {{Filename|/etc/cups/printers.conf}}. This line could be the culprit:<br />
AuthInfoRequired negotiate<br />
<br />
Comment it out and restart CUPS.<br />
<br />
====Print button greyed-out in GNOME print dialogs====<br />
:''<small>Source: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Be sure the package: '''libgnomeprint''' is installed<br />
<br />
Edit {{filename|/etc/cups/cupsd.conf}} and add<br />
# HostNameLookups Double<br />
<br />
Restart CUPS:<br />
# /etc/rc.d/cups restart<br />
<br />
====CUPS fails to print with 'Unable to open device "hal:///[...]": Permission denied'====<br />
The permissions on some files are wrong:<br />
# cd /usr/lib/cups/backend<br />
# chmod 700 hal # (previously 755)<br />
# chmod 700 usb # (previously 755)<br />
<br />
====Unknown supported format: application/postscript====<br />
Comment the lines:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
from {{Filename|/etc/cups/mime.convs}}, and:<br />
application/octet-stream<br />
in {{Filename|/etc/cups/mime.types}}.<br />
<br />
====Finding URIs for Windows Print Servers====<br />
<br />
Sometimes Windows is a little less than forthcoming about exact device URIs (device locations). If having trouble specifying the correct device location in CUPS, run the following command to list all shares available to a certain windows username:<br />
$ smbtree -U ''windowsusername''<br />
This will list every share available to a certain Windows username on the local area network subnet, as long as Samba is set up and running properly. It should return something like this:<br />
<pre> WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series</pre><br />
What is needed here is first part of the last line, the resource matching the printer description. So to print to the EPSON Stylus printer, one would enter:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
as the URI into CUPS. Notice that whitespaces are allowed in URIs, whereas backslashes get replaced with forward slashes.<br />
<br />
==Appendix==<br />
<br />
===Alternative CUPS interfaces===<br />
If using [[GNOME]], a possibility is to manage and configure the printer by using system-config-printer-gnome. This package is available through pacman: <br />
# pacman -S system-config-printer-gnome<br />
<br />
For system-config-printer to work as it should, running as root may be required, or alternatively set up a "normal" user to administer CUPS (if so '''follow steps 1-3''')<br />
<br />
* 1. Create group, and add a user<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Add "lpadmin" (without the quotes) to this line in {{Filename|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Restart cups, log out and in again (or restart computer)<br />
# /etc/rc.d/cups restart<br />
<br />
[[KDE]] users can modify their printers from the Control Center. Both should refer to those desktop environments' documentation for more information on how to use the interfaces.<br />
<br />
There is also gtklp:<br />
# pacman -S gtklp<br />
<br />
===PDF virtual printer===<br />
CUPS-PDF is a nice package that allows one to setup a virtual printer that will generate a PDF from anything sent to it. Obviously this package is not necessary, but it can be quite useful.<br />
<br />
Find generated PDF documents in a sub-directory located at <code>/var/spool/cups-pdf</code>. Normally, the subdirectory is named after the user who performed the job.<br />
<br />
This package can be installed by the following command:<br />
# pacman -S cups-pdf<br />
<br />
After installing the package, set it up as if it were for any other printer by using the web interface. For the Device, select '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer, choose '''Generic'''; Model/Driver, select '''Generic postscript color printer''' or '''Generic Cups-PDF Printer'''. Alternatively, provide the PPD file from [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd this link].<br />
<br />
==== Print to postscript: CUPS-PDF virtual printer trick ====<br />
<br />
Printing to PDF in most applications like OpenOffice is no problem; just hit the button. Yet when printing out to postscript, matters take a little more work. For applications like OpenOffice where printing to kprinter is nebulous at best, there has to be another way -- and there is. The CUPS-PDF (Virtual PDF Printer) actually creates a postscript file and then creates the PDF using the ps2pdf utility. To print to postscript, what needs to be done is capturing the intermediate postscript file created by CUPS-PDF. This is easily accomplished with by selecting the "print to file" option in the print dialog. (choose either .ps or .eps as the extension) After selecting the "print to file" checkbox simply enter the filename and click "print".<br />
<br />
=====Configuring CUPS-PDF virtual printer=====<br />
1. Install cups & cups-pdf from extra.<br />
<br />
2. Start cups with:<br />
# /etc/rc.d/cups <br />
<br />
{{Note|Add 'cups' to the deamons line in /etc/rc.conf to start automatically at boot.}}<br />
<br />
3. Access the cups print manager: http://localhost:631 and select:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), choose for the make and driver:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Now to print to postscript, just print as usual, in the print dialog choose "CUPS-PDF" as the printer, then select the checkbox for "print to file", hit print, enter the filename.ps and click save. This is handy for faxes, etc...<br />
<br />
===Another source for printer drivers===<br />
[http://www.turboprint.de/english.html Turboprint] is a proprietary driver for many printers not yet supported by GNU/Linux (Canon i*, for example). Unlike CUPS, however, high quality prints are either marked with a watermark or are a pay-only service.<br />
<br />
==Resources==<br />
* [http://localhost:631/documentation.html Official CUPS documentation], ''locally installed''<br />
* [http://www.cups.org/ Official CUPS Website]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org The Linux Foundation]''<br />
* [http://home.nyc.rr.com/computertaijutsu/cups.html Tips and Suggestions on common CUPS problems], '''(Dead link)'''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Gentoo's Printing Guide], ''[http://www.gentoo.org/doc/en Gentoo Documentation Resources]''<br />
* [http://bbs.archlinux.org/ Arch Linux User Forums]<br />
<br />
{{Wikipedia|Common Unix Printing System}}</div>8472