https://wiki.archlinux.org/api.php?action=feedcontributions&user=Bbc&feedformat=atomArchWiki - User contributions [en]2024-03-28T20:42:48ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=WireGuard&diff=504619WireGuard2017-12-27T12:55:41Z<p>Bbc: /* Setup a VPN server */</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
[[ja:WireGuard]]<br />
From the [https://www.wireguard.com/ WireGuard] project homepage: <br />
:Wireguard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it plans to be cross-platform and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.<br />
<br />
{{Warning|''WireGuard has not undergone proper degrees of security auditing and the protocol is still subject to change.''[https://www.wireguard.com/#work-in-progress]}}<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|wireguard-dkms}} and {{pkg|wireguard-tools}} packages.<br />
<br />
== Usage ==<br />
<br />
To create a public and private key<br />
$ wg genkey | tee privatekey | wg pubkey > publickey<br />
<br />
The following demonstrates how to setup a simple connection between two peers.<br />
<br />
==== Server ====<br />
<br />
Setup a server connection that accepts connections from any IP with the correct private key<br />
<br />
$ ip link add dev wg0 type wireguard<br />
$ ip addr add 10.0.0.1/24 dev wg0<br />
$ wg set wg0 listen-port 51820 private-key ./privatekey<br />
$ wg set wg0 peer [client public key] allowed-ips 0.0.0.0/0<br />
<br />
==== Client ====<br />
<br />
Setup a client to connect with the server.<br />
<br />
$ ip link add dev wg0 type wireguard<br />
$ ip addr add 10.0.0.1/24 dev wg0<br />
$ wg set wg0 private-key ./privatekey<br />
$ wg set wg0 peer [server public key] allowed-ips 10.0.0.1/24 endpoint [server ip]:56104 persistent-keepalive 25<br />
<br />
The config can be saved by utilizing {{ic|showconf}}<br />
$ wg showconf wg0 > /etc/wireguard/wg0.conf<br />
$ wg setconf wg0 /etc/wireguard/wg0.conf<br />
<br />
== Setup a VPN server ==<br />
<br />
Wireguard comes with a tool to quickly create and tear down VPN servers and clients, {{ic|wg-quick}}. Note that the config file used here is not a valid config file that can be used with {{ic|wg setconf}}.<br />
<br />
==== Server ====<br />
<br />
{{hc|1=/etc/wireguard/wg0server.conf|2=<br />
[Interface]<br />
Address = 10.200.100.1/24<br />
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<br />
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE<br />
ListenPort = 51820<br />
PrivateKey = [SERVER PRIVATE KEY]<br />
<br />
[Peer]<br />
PublicKey = [CLIENT PUBLIC KEY]<br />
AllowedIPs = 10.200.100.2/32 # This denotes the clients IP.<br />
}}<br />
Bring this interface up by using {{ic|wg-quick up wg0server}}, and use {{ic|wg-quick down wg0server}} to bring it down.<br />
<br />
==== Client ====<br />
<br />
{{hc|1=/etc/wireguard/wg0.conf|2=<br />
[Interface]<br />
Address = 10.200.100.2/32 # The client IP from wg0server.conf<br />
PrivateKey = [CLIENT PRIVATE KEY]<br />
DNS = 10.200.100.1<br />
<br />
[Peer]<br />
PublicKey = [SERVER PUBLICKEY]<br />
AllowedIPs = 0.0.0.0/0<br />
Endpoint = [SERVER ENDPOINT]:51820<br />
PersistentKeepalive = 25<br />
}}<br />
Bring this interface up by using {{ic|wg-quick up wg0}}, and use {{ic|wg-quick down wg0}} to bring it down.<br />
<br />
To bring this up automatically one can use {{ic|systemctl enable wg-quick@wg0}}<br />
<br />
If you use [[NetworkManager]], it may be necessary to also enable NetworkManager-wait-online.service {{ic|systemctl enable NetworkManager-wait-online.service}}<br />
<br />
or if you're using systemd-networkd, to enable systemd-networkd-wait-online.service {{ic|systemctl enable systemd-networkd-wait-online.service}}<br />
<br />
to wait until devices are network ready before attempting wireguard connection.<br />
<br />
== Troubleshooting ==<br />
<br />
=== DKMS module not available ===<br />
<br />
If the following command does not list any module after you installed {{pkg|wireguard-dkms}},<br />
<br />
$ modprobe wireguard && lsmod | grep wireguard<br />
<br />
or if creating a new link returns<br />
<br />
# ip link add dev wg0 type wireguard<br />
RTNETLINK answers: Operation not supported<br />
<br />
you probably miss the linux headers.<br />
<br />
These headers are available in {{pkg|linux-headers}} or {{pkg|linux-lts-headers}} depending of the kernel installed on your system.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Store private keys in encrypted form ===<br />
<br />
It may be desirable to store private keys in encrypted form, such as through use of {{pkg|pass}}. Just replace the PrivateKey line under [Interface] in your config file with:<br />
<br />
PostUp = wg set %i private-key <(su user -c "export PASSWORD_STORE_DIR=/path/to/your/store/; pass WireGuard/private-keys/%i")<br />
<br />
where user is your username. See the `wg-quick(8)` man page for more details.</div>Bbchttps://wiki.archlinux.org/index.php?title=WireGuard&diff=504617WireGuard2017-12-27T12:54:53Z<p>Bbc: /* Usage */</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
[[ja:WireGuard]]<br />
From the [https://www.wireguard.com/ WireGuard] project homepage: <br />
:Wireguard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it plans to be cross-platform and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.<br />
<br />
{{Warning|''WireGuard has not undergone proper degrees of security auditing and the protocol is still subject to change.''[https://www.wireguard.com/#work-in-progress]}}<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|wireguard-dkms}} and {{pkg|wireguard-tools}} packages.<br />
<br />
== Usage ==<br />
<br />
To create a public and private key<br />
$ wg genkey | tee privatekey | wg pubkey > publickey<br />
<br />
The following demonstrates how to setup a simple connection between two peers.<br />
<br />
==== Server ====<br />
<br />
Setup a server connection that accepts connections from any IP with the correct private key<br />
<br />
$ ip link add dev wg0 type wireguard<br />
$ ip addr add 10.0.0.1/24 dev wg0<br />
$ wg set wg0 listen-port 51820 private-key ./privatekey<br />
$ wg set wg0 peer [client public key] allowed-ips 0.0.0.0/0<br />
<br />
==== Client ====<br />
<br />
Setup a client to connect with the server.<br />
<br />
$ ip link add dev wg0 type wireguard<br />
$ ip addr add 10.0.0.1/24 dev wg0<br />
$ wg set wg0 private-key ./privatekey<br />
$ wg set wg0 peer [server public key] allowed-ips 10.0.0.1/24 endpoint [server ip]:56104 persistent-keepalive 25<br />
<br />
The config can be saved by utilizing {{ic|showconf}}<br />
$ wg showconf wg0 > /etc/wireguard/wg0.conf<br />
$ wg setconf wg0 /etc/wireguard/wg0.conf<br />
<br />
== Setup a VPN server ==<br />
<br />
Wireguard comes with a tool to quickly create and tearn down VPN servers and clients, {{ic|wg-quick}}. Note that the config file used here is not a valid config file that can be used with {{ic|wg setconf}}.<br />
<br />
==== Server ====<br />
<br />
{{hc|1=/etc/wireguard/wg0server.conf|2=<br />
[Interface]<br />
Address = 10.200.100.1/24<br />
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<br />
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE<br />
ListenPort = 51820<br />
PrivateKey = [SERVER PRIVATE KEY]<br />
<br />
[Peer]<br />
PublicKey = [CLIENT PUBLIC KEY]<br />
AllowedIPs = 10.200.100.2/32 # This denotes the clients IP.<br />
}}<br />
Bring this interface up by using {{ic|wg-quick up wg0server}}, and use {{ic|wg-quick down wg0server}} to bring it down.<br />
<br />
==== Client ====<br />
<br />
{{hc|1=/etc/wireguard/wg0.conf|2=<br />
[Interface]<br />
Address = 10.200.100.2/32 # The client IP from wg0server.conf<br />
PrivateKey = [CLIENT PRIVATE KEY]<br />
DNS = 10.200.100.1<br />
<br />
[Peer]<br />
PublicKey = [SERVER PUBLICKEY]<br />
AllowedIPs = 0.0.0.0/0<br />
Endpoint = [SERVER ENDPOINT]:51820<br />
PersistentKeepalive = 25<br />
}}<br />
Bring this interface up by using {{ic|wg-quick up wg0}}, and use {{ic|wg-quick down wg0}} to bring it down.<br />
<br />
To bring this up automatically one can use {{ic|systemctl enable wg-quick@wg0}}<br />
<br />
If you use [[NetworkManager]], it may be necessary to also enable NetworkManager-wait-online.service {{ic|systemctl enable NetworkManager-wait-online.service}}<br />
<br />
or if you're using systemd-networkd, to enable systemd-networkd-wait-online.service {{ic|systemctl enable systemd-networkd-wait-online.service}}<br />
<br />
to wait until devices are network ready before attempting wireguard connection.<br />
<br />
== Troubleshooting ==<br />
<br />
=== DKMS module not available ===<br />
<br />
If the following command does not list any module after you installed {{pkg|wireguard-dkms}},<br />
<br />
$ modprobe wireguard && lsmod | grep wireguard<br />
<br />
or if creating a new link returns<br />
<br />
# ip link add dev wg0 type wireguard<br />
RTNETLINK answers: Operation not supported<br />
<br />
you probably miss the linux headers.<br />
<br />
These headers are available in {{pkg|linux-headers}} or {{pkg|linux-lts-headers}} depending of the kernel installed on your system.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Store private keys in encrypted form ===<br />
<br />
It may be desirable to store private keys in encrypted form, such as through use of {{pkg|pass}}. Just replace the PrivateKey line under [Interface] in your config file with:<br />
<br />
PostUp = wg set %i private-key <(su user -c "export PASSWORD_STORE_DIR=/path/to/your/store/; pass WireGuard/private-keys/%i")<br />
<br />
where user is your username. See the `wg-quick(8)` man page for more details.</div>Bbchttps://wiki.archlinux.org/index.php?title=Kernel/Arch_build_system&diff=287855Kernel/Arch build system2013-12-13T13:40:15Z<p>Bbc: /* Changing build() */ typo</p>
<hr />
<div>[[Category:Kernel]]<br />
[[de:Eigenen Kernel erstellen]]<br />
[[it:Kernels/Compilation/Arch Build System]]<br />
[[ja:Kernels/Compilation/Arch Build System]]<br />
[[ru:Custom Kernel Compilation with ABS]]<br />
[[zh-CN:Kernels/Compilation/Arch Build System]]<br />
The [[Arch Build System]] can be used to build a custom kernel based on the official {{Pkg|linux}} package. This compilation method can automate the entire process, and is based on a very well tested package. You can edit the PKGBUILD to use a custom kernel configuration or add additional patches.<br />
<br />
==Getting the Ingredients==<br />
<br />
{{bc|# pacman -S abs base-devel}}<br />
<br />
First of all, you need a clean kernel to start your customization from. Fetch the kernel package files from ABS:<br />
<br />
{{bc|1=$ ABSROOT=. abs core/linux}}<br />
<br />
If you have some problem with the firewall blocking the rsync port, you can try with -t, which uses the tarball to sync.<br />
<br />
{{bc|1=$ ABSROOT=. abs core/linux -t}}<br />
<br />
Then, get any other file you need (e.g. custom configuration files, patches, etc.) from the respective sources.<br />
<br />
==Modifying the PKGBUILD==<br />
Modify {{ic|pkgbase}} for your custom package name, e.g.:<br />
pkgbase=linux-custom<br />
<br />
===Changing build()===<br />
If you need to change a few config options you can use the default one and append your options the config file:<br />
$ echo '<br />
CONFIG_DEBUG_INFO=y<br />
CONFIG_FOO=n<br />
' >> config.x86_64<br />
<br />
Or you can use GUI tool to tweak the options. Uncomment one of the possibilities shown in the build() function of the PKGBUILD, e.g.:<br />
{{hc|PKGBUILD|<br />
...<br />
# load configuration<br />
# Configure the kernel. Replace the line below with one of your choice.<br />
#make menuconfig # CLI menu for configuration<br />
make nconfig # new CLI menu for configuration<br />
#make xconfig # X-based configuration<br />
#make oldconfig # using old config from previous kernel version<br />
# ... or manually edit .config<br />
...<br />
}}<br />
<br />
<br />
If you have already a kernel {{ic|.config}} file, uncommenting one of the interactive config tools, such as {{ic|nconfig}}, and loading your {{ic|.config}} from there avoids any problems with kernel naming that may otherwise occur - except in the case of at least make menuconfig. See note.<br />
<br />
{{Note|If you uncomment and use 'make menuconfig' in build(), then use the menuconfig gui to load your existing config, you will run into problems with conflicting files in the end package. This is because you will overwrite the default config that PKGBUILD has modified to provide a unique install path, specifically the LOCALVERSION and LOCALVERSION_AUTO config options. To fix this, simply re-set LOCALVERSION to your custom kernel naming and LOCALVERSION_AUTO&#61;n while still in menuconfig. For details, see https://bbs.archlinux.org/viewtopic.php?id&#61;173504 }}<br />
<br />
{{Note|If you uncomment ''return 1'', you can change to the kernel source directory after makepkg finishes extraction and then make nconfig. This lets you configure the kernel over multiple sessions. When you're ready to compile, copy the .config file over top of either config or config.x86_64 (depending on your architecture), comment ''return 1'' and use '''makepkg -i'''. But do not use this for custom patches; put your patch commands after these lines. If you do patch manually bztar unpack and replace your patch.}}<br />
<br />
==Compiling==<br />
{{Tip|[[Makepkg#MAKEFLAGS|Running compilation jobs simultaneously]] can reduce compilation time significantly on multi-core systems.}}<br />
<br />
You can now proceed to compile you kernel by the usual command<br />
{{ic|makepkg}}<br />
If you have chosen an interactive program for configuring the kernel parameters (like menuconfig), you need to be there during the compilation.<br />
<br />
{{Note|A kernel needs some time to be compiled. 1h is not unusual. On recent systems with a SSD it usually takes less than ten minutes.}}<br />
<br />
==Installing==<br />
After the makepkg, you can have a look at the linux.install file. You will see that some variables have changed. Now, you only have to install the package as usual with pacman (or equivalent program):<br />
# pacman -U <kernel_package><br />
<br />
==Boot Loader==<br />
Now, the folders and files for your custom kernel have been created, e.g. {{ic|/boot/vmlinuz-linux-test}}. To test your kernel, update your bootloader (/boot/grub/menu.lst for GRUB) and add new entries ('default' and 'fallback') for your custom kernel. That way, you can have both the stock kernel and the custom one to choose from.</div>Bbchttps://wiki.archlinux.org/index.php?title=User:Bbc&diff=215927User:Bbc2012-08-01T08:26:11Z<p>Bbc: Short description</p>
<hr />
<div>Archlinux and Debian user.</div>Bbchttps://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&diff=215924Talk:Beginners' guide2012-08-01T08:22:55Z<p>Bbc: /* wireless set up for wpa */ configuration directory change</p>
<hr />
<div>#The Beginners Guide now redirects to Beginners' Guide.<br />
#A version bump in mediawiki has rectified the former apostrophe bug which rendered the page useless.<br />
#Please make all editing suggestions here.<br />
#Please keep discussions civil and productive.<br />
<br />
Thanks.<br />
[[User:Misfit138|Misfit138]] 15:23, 22 October 2009 (EDT)<br />
<br />
== <s>4.1 Configuring the network</s> ==<br />
<br />
Most of this section is a repeat of info already presented earlier in the guide (most notably in [[Beginners'_Guide#Configure_Network_.28Netinstall.29|3.1.1]]).<br />
<br />
I understand that directing users to [[Beginners'_Guide#Configure_Network_.28Netinstall.29|3.1.1]] when they've already got a system up and running isn't that great of an idea since they are no longer in the live environment and some things are different (but not much!), but surely something can be done to reduce the redunancy (especially on the [[Beginners'_Guide#Wireless_LAN|4.1.2 Wireless LAN]] section, which is basically a 1:1 copy of [[Beginners'_Guide#Wireless_Quickstart_For_the_Live_Environment|3.1.1.2]]) [[User:Xgamer99|Xgamer99]] 19:49, 8 January 2011 (EST)<br />
:Went ahead and made the edit, as I can't see anything wrong with it. Please let me know if you disagree. However, I still believe that 4.1 should be re-worked and merged with 3.1.1, and just have 4.1 direct users to it. The only thing that would need to be added is the Proxy settings and manual wired connection (installer handles wired connections flawlessly, so manual activation isn't covered in 3.1.1). [[User:Xgamer99|Xgamer99]] 04:00, 9 January 2011 (EST)<br />
<br />
== Splitting the 'Installation' section in the split version?==<br />
Even after the split the Installation section is still a bit long. Couldn't it be split into two pages? --[[User:Det|Det]] 07:24, 12 August 2011 (EDT)<br />
<br />
==Reiser4?==<br />
Reiser4 is by far a better choice for /var than ReiserFS, if you don't count the bugs that may still exist. The latest support is for 2.6.38 but is that a reason to not even mention it? --[[User:Det|Det]] 11:02, 14 August 2011 (EDT)<br />
: Reiser4 is not supported by the installation media. [[User:Misfit138|Misfit138]] 21:16, 15 August 2011 (EDT)<br />
<br />
==Offload some USB prep info to authority article ([[USB Installation Media]])?==<br />
[[Beginners' Guide/Preparation#Flash memory device or USB stick]] contains what I think are overly detailed instructions considering it already references the perfectly good [[USB Installation Media]] article.<br />
<br />
Does anyone agree that it would be better to move that content there and clean it up a bit? | [[User:Emiralle|Emiralle]] 01:53, 13 October 2011 (EDT)<br />
:I do. Maybe just leave a generic overview of the procedure, like for [[Beginners' Guide/Preparation#Install on a virtual machine]], to work as an introduction to "Continue with [[#Boot Arch Linux installer|Boot Arch Linux installer]]" which IMO should be kept for consistency and continuity. -- [[User:Kynikos|Kynikos]] 07:40, 14 October 2011 (EDT)<br />
<br />
==Move Auto prepare details further down the guide ==<br />
I would like to move [[Beginners' Guide/Installation#Creating filesystems (general information)]] to just after [[Beginners' Guide/Installation#How big should my partitions be?|#How big should my partitions be?]], and [[Beginners' Guide/Installation#Option 1: Auto prepare|#Option 1: Auto prepare]] down just below [[Beginners' Guide/Installation#A note on journaling|#A note on journaling]] as I've done in [[Beginners' Guide/Installation (EspaƱol)#Preparar el disco duro]].<br />
<br />
The section would look like:<br />
1.4 Prepare hard drive<br />
1.4.1 Partitioning hard disks (general information)<br />
1.4.1.1 Partition type<br />
1.4.1.2 Swap partition<br />
1.4.1.3 Partition scheme<br />
1.4.1.4 How big should my partitions be?<br />
1.4.2 Creating filesystems (general information)<br />
1.4.2.1 Filesystem types<br />
1.4.2.2 A note on journaling<br />
1.4.3 Option 1: Auto prepare<br />
1.4.4 Option 2: Manually partition hard drives<br />
1.4.5 Option 3: Manually configure block devices, filesystems and mountpoints<br />
<br />
Benefits:<br />
*Even auto-prepare asks you about the partition sizes and what filesystem you want for / and home. So people have to scroll back and forth for the info anyways.<br />
*This information is healthy for beginners.<br />
<br />
Thoughts? | [[User:Emiralle|Emiralle]] 05:34, 13 October 2011 (EDT)<br />
:I like the idea. You may create anchor links to the Option subsections from the bulleted list in [[Beginners' Guide/Installation#Prepare hard drive]]. -- [[User:Kynikos|Kynikos]] 07:46, 14 October 2011 (EDT)<br />
<br />
::Great idea! I had been thinking the same thing myself...the logical ordering is not quite correct and the proposed re-arrangement is much better. Also, Option 3 is a required follow-up to Option 2. I have edited the guide in a few places to make this clearer. --[[User:Sportscliche|Sportscliche]] 03:54, 15 November 2011 (EST)<br />
:::This is implemented. Revision for continuity would be good. --[[User:Emiralle|Emiralle]] 21:17, 15 November 2011 (EST)<br />
::::There were a lot of continuity problems, but I think I managed to fix everything. It would be nice if someone could proofread this section since a lot of changes were made. --[[User:Sportscliche|Sportscliche]] 23:38, 15 November 2011 (EST)<br />
:::::Good job guys! I've just found the time to do some sort of proofreading, the section looks much tidier now, thank you! -- [[User:Kynikos|Kynikos]] 16:44, 23 November 2011 (EST)<br />
<br />
== Settings for dd in 2.1.3.1 ==<br />
<br />
The default value for bytes written/read per time in dd is normally 512 bytes, which can make the performance for dd ridiculously slow and processor usage high in some cases. I recommend adding the options ibs=4M obs=4M in the code snippet.<br />
: I agree. Go for it. [[User:Misfit138|Misfit138]] 18:41, 6 November 2011 (EST)<br />
<br />
== Replace grub-legacy info with syslinux ==<br />
<br />
Now the syslinux support is in AIF and grub-legacy being dead upstream and with suggestions for its removal from base group (or even core repo), I think it is time to recommend syslinux as the default bootloader by replacing all the grub-legacy related info and examples with syslinux ones. What do you guys think?<br />
<br />
== Configuring /etc/pacman.conf ==<br />
<br />
It would be useful to make new users aware of the benefits of enabling the multilib repository when installing 64-bit Arch. Currently the guide assumes that the defaults are fine but verification is recommended, which is good and true. However, a new user may not be aware of the purpose of multilib, and I think it would be good to inform them of its purpose so that they can make a more informed choice when editing their config files. Multilib is commented out in /etc/pacman.conf by default. --[[User:Rthomas6|Rthomas6]] 15:08, 19 December 2011 (EST)<br />
: I agree. Go for it. [[User:Misfit138|Misfit138]] 22:04, 20 December 2011 (EST)<br />
<br />
== <s>User creation and the audio group</s> ==<br />
I have two persons using my system using different accounts and use fast user switch. Just like [http://www.debjitbiswas.com/entry/pulseaudio-no-audio-multiple-user/ this guy], I had to remove both my users from the audio group, as quoted on the [http://www.pulseaudio.org/wiki/PerfectSetup PulseAudio wiki]. Is the information provided on this guide to create the user on the audio group still correct? -- [[User:Falmp|falmp]] 8:25, 03 February 2012 (BRT)<br />
:At the moment of writing this there is no conflict with PulseAudio wiki. Linked article clearly explains that users of distributions like Arch, which do not contain (by default) overcomplicated audio permission management mechanisms, should still rely on '''audio''' group. --[[User:AlexanderR|AlexanderR]] 22:38, 10 February 2012 (EST)<br />
<br />
== [[Beginners'_Guide#Need_Help.3F]] Re-direct? ==<br />
<br />
I had created the [[IRC Collaborative Debugging]] page that details how to collect errors from programs, working from the console, and submitting via a pastebin service upload program. I think the details (what files need to be presented needs to stay) but the process of doing so can be re-directed? Any thoughts?<br />
<br />
--[[User:Gen2ly|Gen2ly]] ([[User talk:Gen2ly|talk]]) 06:38, 12 May 2012 (UTC)<br />
<br />
:Let's see if I've understood correctly: what you want to do is move the "how" part from [[Beginners'_Guide#Need_Help.3F]] to [[IRC Collaborative Debugging]]? In that case, one observation I may make is that the section in the Beginners' Guide refers to the forums, not IRC: how would you deal with that? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:34, 13 May 2012 (UTC)<br />
<br />
:: My reasoning for this edit would be that: because at this stage of the install if there are problems booting into the X11 environment using iRC may useful to some users simply for the reason of not having to boot into an alternate OS. Thinking about this some more though, I'm beginning to think this just adds extra details that the current method is most beneficial to the majority of the users.<br />
:: --[[User:Gen2ly|Gen2ly]] ([[User talk:Gen2ly|talk]]) 02:11, 18 May 2012 (UTC)<br />
<br />
:::An alternative could be to link to [[General Troubleshooting]] and move all troubleshooting/help-request guidelines there. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:04, 20 May 2012 (UTC)<br />
<br />
==Booting issues with NVIDIA==<br />
<br />
I have old desktop Dell OptiPlex 740 with video card: NVIDIA GeForce 6150 LE. I noticed some issue while booting the Arch from ISO. After a few init messages, the screen gets corrupted. The workaround is to pass ''nomodeset'' kernel options on boot. I think it is a good idea to add this with NVIDIA-specific section to troubleshooting section in the guide, or to [[General Troubleshooting]] article. --[[User:Mloskot|Mloskot]] ([[User talk:Mloskot|talk]]) 19:02, 14 July 2012 (UTC)<br />
<br />
== wireless set up for wpa ==<br />
<br />
1.) One needs in addition the global option for wpa_supplicant configuration file:<br />
<br />
here is the quote for original wpa_supplicant wiki<br />
<br />
'''Global options'''<br />
<br />
Lastly, you will need to specify some global options.<br />
Specify these additional lines at the top of {{ic|/etc/wpa_supplicant.conf}}, with your editor of choice. The following is mandatory.<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel<br />
<br />
{{Note|For use with netcfg-2.6.1-1 in {{Ic|[testing]}} (as of 2011-06-25), this should be {{ic|/run/wpa_supplicant}} (note: ''not'' {{ic|/var/...}}). This will, however, break the default for {{Ic|wpa_cli}} (use the {{Ic|-p}} option to override). If this is not changed, one gets errors like "Failed to connect to wpa_supplicant - wpa_ctrl_open: no such file or directory".}}<br />
<br />
There is a lot of optional parameters (have a look at {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}). For example:<br />
ap_scan=0<br />
fast_reauth=1<br />
<br />
{{Note|Your network information will be stored in plain text format; therefore, it may be desirable to change permissions on the newly created {{ic|/etc/wpa_supplicant.conf}} file (e.g. {{Ic|chmod 0600 /etc/wpa_supplicant.conf}} to make it readable by root only), depending upon how security conscious you are.}}<br />
<br />
'''Complete example'''<br />
{{hc|wp_supplicant.conf|<nowiki><br />
ctrl_interface = DIR=/var/run/wpa_supplicant GROUP=wheel<br />
fast_reauth = 1<br />
ap_scan = 1<br />
<br />
network ={<br />
ssid = "mySSID"<br />
proto = RSN<br />
key_mgmt = WPA-EAP<br />
pairwise = TKIP CCMP<br />
auth_alg = OPEN<br />
group = TKIP<br />
eap = PEAP<br />
identity = "myUsername"<br />
password = "********"<br />
}</nowiki><br />
}}<br />
<br />
<br />
<br />
<br />
2.) the wpa_supplicant config file is moved from<br />
<br />
/etc/wpa_supplicant.conf to <br />
<br />
/etc/wpa_suplicant/wpa_supplicant.conf<br />
: The Beginners's Guide does not reflects this change yet (https://wiki.archlinux.org/index.php/Beginners%27_Guide#Setup_wireless_network). Should I or someone change it? --[[User:Bbc|Bbc]] ([[User talk:Bbc|talk]]) 08:22, 1 August 2012 (UTC)</div>Bbchttps://wiki.archlinux.org/index.php?title=GTK&diff=149802GTK2011-07-23T23:02:58Z<p>Bbc: /* GTK+ 1.x */ Fixed reference to gtk-smooth-engine, which was moved from [extra] to AUR.</p>
<hr />
<div>[[Category:Eye candy (English)]]<br />
{{i18n|GTK+}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|This articles details theme configuration of GTK+ applications. GTK+ (GIMP Toolkit) is a cross-platform widget toolkit for creating graphical user interfaces. This article will explore the tools used to configure the GTK+ theme, style, icon, font and font size, and also detail manual configuration.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Uniform Look for QT and GTK Applications}}<br />
{{Article summary end}}<br />
<br />
GTK+, The GIMP Toolkit, was initially made for [[Gimp]] but is now a very popular toolkit with bindings for many languages. <br />
<br />
== Themes ==<br />
<br />
=== GTK+ 1.x ===<br />
Old GTK+ 1 apps (like xmms) often don't look very nice at first. This is because they use ugly themes by default.<br />
To change this, you need to:<br />
# download and install some nice themes<br />
# change the theme<br />
<br />
Some nice themes are in [[AUR]]. To install them, see [http://aur.archlinux.org/packages.php?ID=43501 gtk-smooth-engine].<br />
<br />
To change the theme you can use gtk-theme-switch:<br />
# pacman -S gtk-theme-switch2<br />
<br />
Run it with the 'switch' command.<br />
<br />
=== GTK+ 2.x ===<br />
<br />
Major [[Desktop Environment]]s provide tools to configure the GTK+ theme, icons, font and font size. Alternatively, tools such as {{Package Official|lxappearance}}, {{Package Official|gtk-chtheme}}, {{Package Official|gtk-theme-switch2}} and {{Package Official|gtk2_prefs}} may be used. {{Package Official|lxappearance}} is a DE independent configuration tool from the LXDE project, which does not require any other parts of LXDE. Install one of these packages, as below:<br />
# pacman -S lxappearance<br />
<br />
# pacman -S gtk-chtheme<br />
<br />
# pacman -S gtk-theme-switch2<br />
<br />
# pacman -S gtk2_prefs<br />
<br />
It is recommended to install some GTK+ 2 themes as well. The popular ''Clearlooks'' theme is included within the {{Package Official|gtk-engines}} package:<br />
# pacman -S gtk-engines<br />
<br />
Further themes can be found in [[AUR]]:<br />
*http://aur.archlinux.org/packages.php?O=0&K=gtk2-theme&do_Search=Go<br />
*http://aur.archlinux.org/packages.php?O=0&K=gtk-theme&do_Search=Go<br />
<br />
Alternatively, GTK+ settings can be configured manually by editing {{Filename|~/.gtkrc-2.0}}. A list of GTK+ settings can be found in the [http://library.gnome.org/devel/gtk/stable/GtkSettings.html gnome library]. To manually change the GTK+ theme, icons, font and font size, add the following to {{Filename|~/.gtkrc-2.0}}:<br />
<br />
{{File|name=~/.gtkrc-2.0|content=<br />
gtk-icon-theme-name = "[name-of-icon-theme]"<br />
gtk-theme-name = "[name-of-theme]"<br />
gtk-font-name = "[font-name] [size]"<br />
}}<br />
<br />
For example:<br />
{{File|name=~/.gtkrc-2.0|content=<br />
gtk-icon-theme-name = "Tango"<br />
gtk-theme-name = "Murrine-Gray"<br />
gtk-font-name = "DejaVu Sans 8"<br />
}}<br />
<br />
{{Note| The above example requires the packages {{Package Official|ttf-dejavu}}, {{Package Official|tango-icon-theme}}, {{Package Official|gtk-engine-murrine}} and murrine-themes-collection (from AUR).}}<br />
<br />
=== GTK+ and QT ===<br />
If you have GTK+ and QT (KDE) applications on your desktop then you know that their looks don't blend well. If you wish to make your GTK+ styles match your QT styles please read [[Uniform Look for QT and GTK Applications]].<br />
<br />
== Configuration ==<br />
<br />
{{Note|See the [http://library.gnome.org/devel/gtk/stable/GtkSettings.html GNOME library] for the full list of GTK configuration options.}}<br />
<br />
The purpose of this section is to collect GTK configuration settings which can e.g. be used within <tt>~/.gtkrc-2.0</tt>. <br />
<br />
=== Enabling Customizable Keyboard Shortcuts ===<br />
<br />
You can customize your GTK applications' keyboard shortcuts (those are called ''accelerators'' in GTK terminology) by hovering your mouse over a menu item and pressing your desired key combination. However, this feature is disabled by default. To enable it, set <br />
gtk-can-change-accels = 1<br />
<br />
=== Speed up your GNOME menu ===<br />
<br />
This setting controls the delay between you pointing the mouse at a menu and that menu opening in GNOME. Change this to a setting you prefer. I guess the number is in milliseconds, e.g. 250 being a quarter of a second.<br />
gtk-menu-popup-delay = 0<br />
<br />
=== Reduce widget sizes ===<br />
<br />
If you have a small screen or you just don't like big icons and widgets, you can resize things easily. <br />
To have icons without text in toolbars, use<br />
gtk-toolbar-style = GTK_TOOLBAR_ICONS<br />
To use smaller icons, use a line like this:<br />
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=16,16\<br />
:gtk-small-toolbar=16,16:gtk-button=16,16"<br />
Or to remove icons from buttons completely:<br />
gtk-button-images = 0<br />
You can also remove icons from menus:<br />
gtk-menu-images = 0<br />
<br />
There is some more tweaking to do in your themes gtkrc like explained [http://martin.ankerl.com/2008/10/10/how-to-make-a-compact-gnome-theme/ here] and there's another [http://gnome-look.org/content/show.php/Simple+eGTK?content=119812 theme] that does it all.<br />
<br />
== Compiling GTK+ programs ==<br />
<br />
When writing a start-from-scratch GTK+ program with C, it's necessary to add CFLAGS for gcc (the code was adopted from ubuntu forum):<br />
gcc -g -Wall `pkg-config --cflags --libs gtk+-2.0` -o base base.c<br />
-g and -Wall parameters are not necessary since they are only for verbose debugging outputs.<br />
You may try out the official [http://library.gnome.org/devel/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD Hello World example] provided by the gtk.org.<br />
<br />
== Resources ==<br />
* [http://www.gtk.org/ The official GTK+ website]<br />
* [http://library.gnome.org/devel/gtk-tutorial/stable/ A tutorial for GTK+ 2]<br />
* [http://en.wikipedia.org/wiki/GTK%2B Wikipedia Article about GTK+]</div>Bbc