https://wiki.archlinux.de/api.php?action=feedcontributions&user=Orschiro&feedformat=atom
wiki.archlinux.de - Benutzerbeiträge [de]
2024-03-28T11:03:59Z
Benutzerbeiträge
MediaWiki 1.41.0
https://wiki.archlinux.de/index.php?title=Wicd&diff=17528
Wicd
2014-03-24T14:21:25Z
<p>Orschiro: Hinweis hinzugefuegt</p>
<hr />
<div>{{veraltet}}<br />
<br />
'''Hinweis: Wicd wird nicht mehr aktiv weiterentwickelt. Siehe hierzu [https://answers.launchpad.net/wicd/+question/227789 diesen] Bug Report. Es wird empfohlen stattdessen [[Networkmanager]] oder [[netctl]] zu verwenden.'''<br />
<br />
<br />
Wicd ist ein Netzwerkverbindungsmanager, mit dem man sowohl kabelgebundene als auch kabellose Verbindungen verwalten kann. Es stellt eine Alternative zum [[Networkmanager]] dar. Wicd wurde in Python und GTK+ geschrieben und benötigt weniger Abhängigkeiten als andere Manager.<br />
<br />
{{installation<br />
|repo=extra<br />
|paket=wicd<br />
|zusatz=hicolor-icon-theme<br />
|zusatzinfo=Schönere Icons}}<br />
<br />
Zudem besteht die Möglichkeit {{AUR|wicd-bzr}} aus dem [[AUR]] zu installieren.<br />
<br />
== Setup ==<br />
Wicd stellt einen [[Daemon]] bereit, der gestartet werden muss bevor man mittels wicd das Netzwerk verwalten kann. Wenn man mehrere Netzwerkverbindungsmanager verwendet, wird dies Probleme verursachen, deshalb ist es wichtig alle anderen Daemons dieser Art abzuschalten.<br />
<br />
kurz<br />
systemctl stop network dhcpd networkmanager net-profiles<br />
<br />
In der [[rc.conf]] müssen im Netzwerk-Abschnitt alle Interfaces deaktiviert werden, die von wicd verwaltet werden sollen.<br />
<br />
INTERFACES=(!eth0 !wlan0)<br />
<br />
In diesem Fall sollen eth0 und wlan0 von wicd verwaltet werden, und werden daher deaktiviert.<br />
<br />
Es müssen in dieser Datei auch alle Netzwerverwaltungs-Daemons aus dem DAEMONS-Array deaktiviert werden. Dies schließt ''network'', ''dhcdbd'' und ''networkmanager'' ein. Eingetragen werden müssen hier jetzt noch dbus (falls nicht schon vorhanden) und wicd. Das DAEMONS array sollte nun in etwa so aussehen:<br />
<br />
DAEMONS=(syslog-ng dbus !network !dhcdbd !networkmanager !net-profiles wicd …)<br />
<br />
Wenn man HAL benutzt, sollte man ''dbus'' durch ''hal'' ersetzen, da der HAL-Daemon DBUS automatisch mitstartet.<br />
<br />
Der Benutzer, der wicd verwenden soll, muss der Gruppe ''network'' hinzugefügt werden.<br />
<br />
gpasswd -a USERNAME network<br />
<br />
Danach werden der HAL '''oder''' der DBUS-Daemon und WICD gestartet:<br />
<br />
/etc/rc.d/hal start<br />
/etc/rc.d/dbus start<br />
/etc/rc.d/wicd start<br />
<br />
Beziehungsweise in der Kurzform<br />
<br />
rc.d start hal wicd<br />
<br />
oder <br />
<br />
rc.d start dbus wicd<br />
<br />
== wicd starten ==<br />
Wicd ist ein Client-Server-System. Mittels des wicd-Clients greift man auf den wicd-Server in Form des wicd-Daemons zu.<br />
Allerdings ist der Betrieb des wicd-Clients keine Voraussetzung für die Funktionsfähigkeit des wicd-Daemons.<br />
<br />
Für den Wicd-Clienten gibt es eine GTK und eine auf Ncurses basierende GUI, die für die Nutzung auf der Konsole geeignet ist. Die entsprechenden Befehle zum starten der (gtk) GUI sollten in die Autostart-Dateien der verwendeten Desktopumgebung / Fenstermanger oder in die "~/.xinitrc" eingetragen werden.<br />
<br />
===GTK===<br />
Ab version 1.7 ist "wicd-gtk" die bevorzugte Methode die GTK-GUI zu starten. Wicd-gtk wird niemals versuchen "wicd-curses" zu starten.<br />
Das bisher verwendete "wicd-client" versucht hingegen wicd-curses zu starten, falls keine X-Session vorhanden ist.<br />
wicd-gtk<br />
<br />
Wicd-gtk kann auch ohne Tray-Icon gestartet werden.<br />
<br />
wicd-gtk -n<br />
<br />
===Ncurses===<br />
Um die ncurses-Version von wicd zu nutzen kann der Befehl<br />
<br />
wicd-curses<br />
<br />
ausgeführt werden.<br />
<br />
== Scripte ==<br />
Wicd kann automatisch (Bash)-Scripte ausführen:<br />
#bevor eine Verbindung aufgebaut wird (preconnet)<br />
#nachdem eine Verbindung aufgebaut wurde (postconnect)<br />
#bevor eine Verbindung getrennt wird (predisconnect)<br />
#nachdem eine Verbindung getrennt wurde (postdisconnect)<br />
<br />
Es gibt die Möglichkeit Scripte auf alle Verbindungen anzuwenden und/oder nur auf bestimmte.<br />
<br />
<br />
'''Alle Verbindungen'''<br><br />
Scripte die immer ausgeführt werden sollen, egal mit welchem Netzwerk Wicd eine Verbindung aufbaut/trennt, werden in folgenden Verzeichnissen abgespeichert.<br />
/etc/wicd/scripts/predisconnect<br />
/etc/wicd/scripts/postdisconnect<br />
/etc/wicd/scripts/preconnect<br />
/etc/wicd/scripts/postconnect<br />
<br />
<br />
'''Nur bestimmte Verbindungen'''<br><br />
Scripte die einem bestimmten Netzwerk zugeordnet werden sollen, müssen in die entsprechenden Konfigurations-Dateien eingetragen werden.<br />
Die Datei für die kabelgebunden Netzwerkprofile ist <code>/etc/wicd/wired-settings.conf</code>, die für die Funknetzwerke <br />
<code>/etc/wicd/wireless-settings.conf</code>. Die entsprechenden Einträge lauten:<br />
beforescript = /pfad/zum/script<br />
afterscript = /pfad/zum/script<br />
predisconnectscript = /pfad/zum/script<br />
poastdisconnectscript = /pfad/zum/script<br />
'''WICHTIG''' - Für die Scripte sollte nur "root" Schreibrechte haben, und sie sollten sich in einem Verzeichnis befinden, für das nur "root" Schreibrechte besitzt.<br />
<br />
In der GTK-Oberfläche (wicd-gtk) können die Scripte den Netzwerken über ''Eigenschaften --> Scripte'' zugeordnet werden.<br />
Dafür wird allerdings [[sudo]] inklusive einer grafischen Oberfläche benötigt. Zum Beispiel ''gksu'' oder ''kdesu''.<br />
Und die Datei <code>/usr/share/wicd/gtk/configscript.py</code> muss in die /etc/sudoers eingetragen werden.<br />
<br />
== Eduroam ==<br />
<br />
Um {{wikipedia|Eduroam}} nutzen zu können, kann man das Paket {{AUR|wicd-eduroam}} installieren, das u.a. ein eduroam-template beinhaltet.<br />
<br />
Sollte dies nicht funktionieren, so können einzelne Konfigurationspunkte angepasst werden. Eine Beispielkonfiguration könnte lauten:<br />
<br />
#<br />
# eduroam-template under /etc/wicd/encryption/templates/eduroam<br />
# has to be set activated, see also: aur/wicd-eduroam<br />
#<br />
# tested for University of Rostock, Germany<br />
name = eduroam<br />
author = hølgerssøn, based on the file of Ander Martinez<br />
version = 2.1<br />
require identity *Identity password *Password<br />
-----<br />
ctrl_interface=/var/run/wpa_supplicant<br />
network={<br />
ssid="$_ESSID"<br />
scan_ssid="$_SCAN"<br />
key_mgmt=WPA-EAP<br />
eap=PEAP<br />
pairwise=CCMP TKIP<br />
group=CCMP TKIP<br />
identity="$_IDENTITY"<br />
password="$_PASSWORD"<br />
}<br />
<br />
== Siehe auch ==<br />
* [[(W)LAN_und_Arch_Linux#wpa_supplicant|wpa_supplicant]]<br />
<br />
== Weblinks ==<br />
* [http://wicd.sourceforge.net/ Homepage von wicd] {{sprache|en}}<br />
<br />
[[Kategorie:GTK]]<br />
[[Kategorie:Netzwerk]]<br />
<br />
[[en:wicd]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=11979
Benutzer:Orschiro
2011-09-07T12:52:50Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Prozess eliminieren===<br />
<br />
kill -9 PID<br />
<br />
===Top im nicht interaktiven Modus===<br />
<br />
top -b<br />
<br />
===Gruppenzugehörigkeit anzeigen===<br />
<br />
groups <user><br />
<br />
===mplayer DVD-Menü Support===<br />
<br />
mplayer -nocache dvdnav://<br />
<br />
===Sicherung von lokalem Rechner auf entfernten Rechner===<br />
<br />
rsync -avze ssh /home/benutzer benutzer@rechner.de:/backups <br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Xfce&diff=11948
Xfce
2011-08-24T02:31:48Z
<p>Orschiro: /* Shutdown / Reboot */</p>
<hr />
<div>[[Bild:Xfce.png|thumb|300px|Das ist Xfce]]<br />
==Info==<br />
Xfce ist eine leichtgewichtige Desktopumgebung. Im Vergleich zu [[KDE]] oder [[GNOME]] ist Xfce wesentlich schlanker und eignet sich somit auch gut für etwas ältere Rechner.<br />
<br />
==Installation==<br />
Xfce ist modular aufgebaut, das heißt es gibt viele Xfce-Pakete, die aber nicht unbedingt alle benötigt werden.<br />
Es gibt ein Meta-Paket für das Xfce-Basis-System und eins für Extras (z.B. Panel-Plugins, etc.). <br />
<br />
Das Basis-System installieren.<br />
<br />
pacman -S xfce4<br />
<br />
Möchte man hingegen nur die minimal Installation verwenden.<br />
<br />
pacman -S xfwm4 xfce4-panel xfdesktop thunar xfce4-session xfce4-settings xfce4-appfinder xfce-utils xfconf<br />
<br />
Extras installieren.<br />
<br />
pacman -S xfce4-goodies<br />
<br />
Fehlende Icons installieren.<br />
<br />
pacman -S gnome-icon-theme tango-icon-theme<br />
<br />
===Xfce starten===<br />
Xfce kann von der Konsole aus, per ''startx'', per [[Login-Manager]] oder über ~/.bash_profile nach dem Login gestartet werden.<br />
<br />
====Konsole====<br />
startxfce4<br />
<br />
====~/.xinitrc====<br />
<br />
Wenn keine .xinitrc im Homeverzeichnis vorhanden sein sollten (passiert wenn der Benutzer vor der Installation von xfce angelegt wurde) einfach mittels.<br />
<br />
cp /etc/skel/.xinitrc ~/.xinitrc<br />
<br />
eine .xinitrc in das Homeverzeichnis kopieren. Bitte daran denken, das dieses unter den User Login passieren sollte, nicht über root.<br />
<br />
Die .xinitrc mittels einen Editors öffnen und folgendes ergänzen.<br />
<br />
exec ck-launch-session dbus-launch --exit-with-session startxfce4<br />
<br />
Der dbus-launch mit dem ck-launch sind notwendig damit Xfce auf die Energieverwaltung und das Abmelden, Neustarten, Ausschalten durchführen kann.<br />
<br />
====Login-Manager====<br />
<br />
Mit der Basis Installation werden die nötigen Session Dateien installiert (sind in xfce4-utils enthalten).<br />
Es kann also ganz einfach ein [[Login-Manager]] benutzt werden.<br />
<br />
====~/.bash_profile====<br />
startx wird nach dem Login (auf der 1. Konsole) automatisch ausgeführt. Dazu folgendes am Ende der ~/.bash_profile eintragen: <br />
<br />
if [ "$(tty)" = "/dev/tty1" ]; then<br />
startxfce4<br />
fi<br />
<br />
==Shutdown / Reboot==<br />
Seit Version 4.4 nutzt Xfce den DBUS-Daemon, um den Rechner herunterzufahren bzw. neuzustarten. Um die Shutdown- und Reboot-Funktionen in Xfce zu nutzen, muss der DBUS-Daemon gestartet sein. Um diesen beim Hochfahren des Rechners automatisch zu starten, muss dbus in der [[Rc.conf|/etc/rc.conf]] in das DAEMONS-Array eingetragen werden. Bei laufendem DBUS-Daemon wird außerdem das automatische Mounten von optischen und externen Datenträgern aktiviert. Um dies am besten zu nutzen, sollte man das Paket ''thunar-volman'' installieren.<br />
<br />
====Recht zum Herunterfahren und Neustarten setzen====<br />
Der Benutzer muss in diesem Fall Mitglied der Gruppe '''power''' sein.<br />
gpasswd -a <benutzername> power<br />
<br />
====Recht zum automatischen Einbinden von Laufwerken setzen====<br />
Der Benutzer muss in diesem Fall Mitglied der Gruppe '''storage''' sein.<br />
gpasswd -a <benutzername> storage<br />
<br />
==Compositor==<br />
Xfce 4.4 hat einen eigenen Compositor für Effekte wie z.B. Schatten und Tranzparenz.<br />
<br />
Um den Compositor nutzen zu können, muss die Composite-Extension des X-Servers (in der xorg.conf) aktiviert werden.<br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection<br />
<br />
Um den Compositor von Xfce zu aktivieren muss man in der Datei ''/usr/share/xfwm4/defaults'' den Wert von ''use_compositing'' von ''false'' auf ''true'' setzen<br />
<br />
Die Compositor Einstellung sind zu erreichen über:<br />
*''Einstellungen'' --> ''Fenstermanager-Tweaks''<br />
<br />
Sollte der ''Compositor'' Reiter dort nicht erscheinen muss die Datei ''~/.config/xfce4/mcs_settings/wmtweaks.xml'' editiert werden. Diese Zeile muss vorhanden sein:<br />
<option name="Xfwm/UseCompositing" type="int" value="1"/><br />
<br />
==Desktop wird nicht aktualisiert?==<br />
Xfce 4.4 nutzt den [[FAM]]-Daemon, um "informiert" zu werden wenn Änderungen an Dateien oder Verzeichnissen stattfinden.<br />
Sollte das automatische Aktualisieren des Desktops nicht funktionieren, überprüfe ob der FAM-Daemon läuft. Soll er beim Booten automatisch gestartet werden, muss er ebenfalls ins DAEMONS-Array in der ''[[Rc.conf|/etc/rc.conf]]'' eingetragen werden. Als Ergänzung zur Nutzung von DBUS und HAL sollte FAM erst danach gestartet werden. Siehe ''[[Rc.conf|/etc/rc.conf]]'' DAEMONS=(... dbus hal fam ...).<br />
<br />
Eine Alternative zu FAM ist [[Gamin]]. Falls FAM bereits installiert ist, muss es deinstalliert werden, bevor Gamin installiert werden kann: <br />
(pacman -Rd fam)<br />
Im Gegensatz zu FAM muss Gamin nicht in der rc.conf eingetragen werden. Es reicht aus, es einfach nur zu installieren. Eventuell muss nach der Installation von Gamin der X-Server neu gestartet werden, damit Xfce davon Gebrauch macht.<br />
<br />
'''Gamin kann aus dem Community Repository installiert werden:'''<br />
<br />
pacman -S gamin<br />
<br />
==Themes und Splash Screens==<br />
Wenn man zusätzlich zu den bereits vorhandenen Themes und Splash Screens weitere nutzen möchte, sind folgende Hinweise zu beachten:<br />
<br />
* In /home/$USER/ das Verzeichnis .themes anlegen (Berechtigung 755 und Besitz für user und usergroup, wenn von root erstellt)<br />
* Themes, welche meistens als *.tar.gz zum Download bereitstehen, werden vom Anwender selbst in o.g. Verzeichnis entpackt<br />
Beispiel: Download 71993-SlicknesS.tar.gz von http://www.xfce-look.org/ und Entpacken nach .themes/SlicknesS. Im Xfce Settings Manager kann im User Interface das Theme ausgewählt werden. Dieses ist gleich verfügbar.<br />
* Splash Screens, welche meistens als *.tar.gz zum Download bereitstehen, werden NICHT vom Anwender selbst in o.g. Verzeichnis entpackt. Dies übernimmt die Konfiguration per Splash Screen Settings - Balou - Configure - Configure Balou und Balou Theme - Klick mit rechter Maustaste auf eins der bereits vorhandenen Themes - Menü: Install New Theme - Dateimanager geht auf - Auswahl der Datei SplashScreen.tar.gz - Open und Fertig.<br />
<br />
==Hostname nicht gefunden==<br />
Falls sich Xfce beim Start beschwert, dass der Hostname nicht gefunden wurde:<br />
"Could not look up internet address for myhost. This will prevent XFCE from working correctly."<br />
Dann muss der in der Konfigurationsdatei ''/etc/rc.conf'' festgelegte Computername in die Hosts-Datei ''/etc/hosts'' eingetragen werden. Lautet der Eintrag für den Computernamen in ''/etc/rc.conf'' beispielsweise:<br />
HOSTNAME="myhost"<br />
Dann muss die Hosts-Datei ''/etc/hosts'' folgendermaßen aussehen:<br />
#<ip-adress> <hostname.domain.org> <hostname><br />
127.0.0.1 localhost.localdomain myhost<br />
<br />
==Weblinks==<br />
* [http://www.xfce.org Xfce Homepage] {{sprache|en}} <br />
* [http://www.xfce-look.org Themes, Wallpaper ect.] {{sprache|en}} <br />
* [http://wiki.xfce.org Xfce-Wiki] {{sprache|en}} <br />
<br />
[[Kategorie:Desktopumgebung]]<br />
[[Kategorie:GTK]]<br />
<br />
[[en:Xfce]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Xournal%2B%2B&diff=11335
Xournal++
2011-01-12T08:57:00Z
<p>Orschiro: </p>
<hr />
<div>[[Bild:Xournal.png|thumb|Xournal Hauptfenster]]<br />
''Xournal'' ist ein kleines Program zum Notizen schreiben und PDFs annotieren, welches besonders gut mit Tablet-PCs oder Grafiktablets funktioniert. Die so bearbeiteten Dateien können auch wieder als PDF exportiert, bzw. mittels anderen Programmen wie [[CUPS-PDF]], als PDF gedruckt werden.<br />
<br />
== Installation ==<br />
Xournal kann einfach aus dem ''extra'' Repositorium via [[pacman]] installiert werden:<br />
pacman -S xournal<br />
<br />
== Konfiguration == <br />
Xournal bietet die Möglichkeit, neue Standardeinstellungen über die Benutzeroberfläche (Options | Save Preferences) zu übernehmen. Während dies bei Einstellungen wie der Schriftfarbe funktioniert, wird eine Änderung bei der Schriftgröße nicht übernommen. Abhilfe schafft hier das manuelle Editieren der Konfigurationsdatei unter '''~/.xournal/config''', in der bequem und schnell die einzelnen Werte abgeändert werden können.<br />
<br />
== Funktionen ==<br />
=== Werkzeuge ===<br />
Xournal startet standardmäßig mit einer neuen, leeren Seite. Allerdings lässt sich auch eine schon vorhandene PDF-Datei mit Xournal öffnen und mit Notizen versehen. Wer handschriftlich Notizen anlegen möchte, sollte dies vorzugsweise mit einem Grafiktablett oder Tablet-PC machen (Xournal unterstützt Pressure-sensitivity!). Xournal hat ein Stift-werkzeug mit einstellbarer Strichstärke (3 verscheidene), Radiergummi, Marker (in einstellbaren Farben), Textwerkzeug sowie ein "Lineal" zum zeichnen von geraden Linien mit an Bord. Desweiteren kann es mit verschiedenen Layern umgehen.<br />
<br />
=== Grundlegendes ===<br />
Zum Markieren von Text in einem PDF-Dokument wie in einem herkömmlichen Buch benutzt man am besten das Marker-Werkzeug zusätzlich mit dem "Lineal". Hierbei kann die Farbe sowie die Deckkraft gewählt werden.<br />
<br />
Sämtliche Objekte und Notizen sowie Text können mittels der Auswahl (nachträglich) genommen und verschoben werden, als wären sie ein starres Objekt (bzw. wie eine Vektorgrafik). Dies ermöglicht es z.b. eine ganze Markerlinie zu nehmen und zu löschen.<br />
<br />
''Linksklick+Maus bewegen = Malen''<br />
<br />
''Rechtsklick+Maus bewegen = Radiergummi / Löschen''<br />
<br />
=== Speichern und Drucken ===<br />
Die Annotierten PDFs können im Xournal eigenen Format ''*.xoj'' gespeichert werden, wobei lediglich die von Xournal hinzugefügten Objekte gespeichert sind, die PDF bleibt an ihren Ursprungsort unbearbeitet.<br />
Natürlich können wie Dateien auch als PDF gedruckt werden, einmal durch den Dialog unter ''Export PDF'', oder aber durch z.B. [[CUPS-PDF]].<br />
<br />
== Weblinks ==<br />
* [http://xournal.sourceforge.net/ Homepage von Xournal bei Sourceforge] {{sprache|en}}<br />
<br />
[[Kategorie:Büro]]<br />
[[Kategorie:GTK]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Dm-crypt&diff=11092
Dm-crypt
2010-11-14T07:07:20Z
<p>Orschiro: /* LVM einrichten */</p>
<hr />
<div>[[en:System_Encryption_with_LUKS_for_dm-crypt]]<br />
==Übersicht==<br />
Eine komplett verschlüsselte Festplatte kann in vielen Fällen sinnvoll sein. Zum Beispiel kann es sehr schnell passieren, dass der private Laptop mit den privaten Daten irgendwo liegen gelassen oder geklaut wird. In solchen Fällen ist es immer besser, wenn niemand auf die Daten zugreifen kann. In diesen Beitrag werden zwei Varianten vorgestellt wie sich eine Festplatte bereits während der Installation von Arch Linux verschlüsseln lassen. Beide Varianten sind gleich sicher, erstere Variante verlangt nur nach weniger Konfigurationsaufwand.<br />
<br />
==Festplatte Verschlüsseln==<br />
===Verschlüsselte LVM Partition(Variante 1)===<br />
Dies ist die meist verbreitete Variante zumal viele andere Distributionen solch eine Verschlüsselung automatisch bei der Installation anbieten. Diese Anleitung geht davon aus, dass die [[Arch_Linux_installieren|Installation]] beherrscht wird sowie die [[Partitionierung|Partitionierungstools]] angewendet werden können.<br />
<br />
====Partitionslayout====<br />
Das Grundlayout solch einer Festplatte sieht vor, dass bis auf eine kleine Bootpartition die gesamte Platte verschlüsselt wird. Innerhalb des verschlüsselten Bereichs wird eine [[LVM]] angelegt. In dieser können wiederum eine unbegrenzte Anzahl von Logical Volumes angelegt werden.<br />
Bevor man also beginnt, sollte das Partitionslayout so aussehen:<br />
<br />
/dev/sda1 - ca. 100MB(Bootpartition)<br />
/dev/sda2 - Rest der Festplatte<br />
<br />
====Verschlüsselung anlegen====<br />
Zuallererst sollte man die zu verschlüsselnde Partition mit zufälligen Daten überschreiben:<br />
# shred -v /dev/sda2<br />
shred überschreibt die Festplatte dreimal mit Zufallswerten. Wem einmal überschreiben reicht kann auch "shred -v -n 1 /dev/sda2" aufrufen.<br />
<br />
Dann müssen die benötigen Kernelmodule geladen werden:<br />
# modprobe dm-crypt<br />
# modprobe aes-i586 //meist nicht notwendig<br />
Danach verschlüsselt man sda2 mit folgenden Befehl:<br />
# cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2<br />
Den Befehl bestätigen und das gewünschte Passwort eingeben. (Je länger das Passwort umso sicherer ist es)<br />
Für die weiteren Schritte muss man die eben verschlüsselte Partition gleich einbinden:<br />
# cryptsetup luksOpen /dev/sda2 lvm<br />
<br />
In den Ordner /dev/mapper erscheint jetzt die neue Gerätedatei lvm<br />
<br />
====LVM einrichten====<br />
Mit<br />
# pvcreate /dev/mapper/lvm<br />
# vgcreate main /dev/mapper/lvm<br />
richtet man jetzt die LVM und eine Volume Group ein. Jetzt muss man noch die jeweiligen Logical Volumes einrichten. Logical Volumes sind so etwas wie virtuelle Partitionen, die von Linux wie richtige Partitionen gemountet und verwendet werden können. Zuallererst sollte man sich über das gewünschte Layout im klaren sein.<br />
<br />
/ -> etwa 10GB<br />
/swap -> doppelte Arbeitsspeichergröße<br />
/home -> restlicher Festplattenplatz<br />
Das Layout ist nur eine Empfehlung und kann beliebig verändert werden.<br />
<br />
Um obiges Layout im LVM anzulegen muss man folgende Befehle verwenden.<br />
# lvcreate -L 10GB -n root main<br />
# lvcreate -L 2GB -n swap main<br />
# lvcreate -l 100%FREE -n home main<br />
<br />
Möchte man statt GB mit MB-Größen arbeiten, lässt sich auch Folgendes anwenden:<br />
<br />
# lvcreate -L 3072M -n swap main<br />
<br />
====Arch Linux installieren====<br />
Nun startet man mit<br />
# /arch/setup<br />
wie gewohnt die Installation. Wenn man während der Installtion die Filesystem Mountpoints festlegt, muss man die eben erstellen Partitionen wählen und ein Filesystem seiner Wahl anlegen lassen. (Außer swap welches natürlich das swap Filesystem bekommt). /boot muss auf /dev/sda1 angelegt werden. /dev/sda2 und /dev/mapper/lvm bleiben indes unangetastet.<br />
<br />
Im Vergleich zur normalen Installation müssen folgende Änderungen an den Konfigurationsdateien vorgenommen werden:<br />
<br />
/etc/rc.conf<br />
USELVM=”yes”<br />
<br />
/etc/mkinitcpio.conf<br />
HOOKS="base udev autodetect pata scsi sata encrypt lvm2 filesystems"<br />
Es ist besonders darauf zu achten, dass "encrypt" '''vor''' "lvm2" erscheint! Wünscht man bei der Abfrage der Passworts ein deutsches Tastaturlayout, sollte man noch "keymap" vor "encrypt" einfügen. Benutzt man eine USB-Tastatur (oder hat man vor, dies irgendwann zu tun), so müssen zusätzlich noch "usb" und "usbinput" vor "encrypt" eingesetzt werden.<br />
Insgesamt sollte es also wie folgt aussehen:<br />
HOOKS="base udev autodetect pata scsi sata usb usbinput keymap encrypt lvm2 filesystems"<br />
<br />
/boot/grub/menu.lst<br />
<br />
Bei den beiden Booteinträgen "Arch Linux" und "Arch Linux Fallback" muss “cryptdevice=/dev/sda2:main” zwischen "root=/dev/mapper/main-root" und "ro" eingetragen werden, sodass die Kernelzeile am Ende wie folgt aussieht:<br />
<br />
kernel /vmlinuz26 cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro<br />
<br />
Sollte "keymap" in die mkinitcpio.conf eingetragen worden sein, so müssen noch "lang=de" und "locale=de_DE.UTF-8" in die Kernelzeile eingetragen werden.<br />
<br />
Grub selbst sollte auf /dev/sda installiert werden.<br />
<br />
Nachdem die Installation beendet ist startet man neu und genießt seine frisch verschlüsselte Festplatte.<br />
<br />
====LVM manuell mounten====<br />
<br />
Möchte man ein mit LVM eingerichtetes und verschlüsseltes System manuell mounten, beispielsweise beim Start von einer Live-CD, so ist wie im Folgenden zu verfahren.<br />
<br />
Verschlüsselte Partition einbinden:<br />
<br />
# cryptsetup luksOpen /dev/sda2 lvm<br />
<br />
Unter /dev/mapper erscheint nun die Gerätedatei lvm. Im nächsten Schritt ist mitunter der folgende Befehl nötig, um die Volume-Group - in diesem Fall lautet sie ''main'' - zu aktivieren.<br />
<br />
# vgchange -ay<br />
<br />
Nun sollte es möglich sein, einzelne Partitionen aus dieser Volume-Group ins System einzubinden.<br />
<br />
# mount -t ext4 /dev/main/root /mnt<br />
<br />
===Partitionen einzeln verschlüsseln(Variante 2)===<br />
<br />
<br />
Für alle folgenden Schritte wird keine Haftung übernommen! Es wird empfohlen, vorher ein komplettes Backup aller wichtigen Daten zu erstellen. <br />
<br />
====Partitionslayout festlegen====<br />
Die Festplatte (in meinem Fall /dev/sda) sollte für alle folgenden Schritte folgendermaßen partitioniert sein:<br />
<br />
/dev/sda1 -> /boot (32-64MB, bis zu 100MB)<br />
/dev/sda2 -> swap (je nach Größe des Arbeitsspeichers, 1,2 x Arbeitsspeicher)<br />
/dev/sda3 -> / (10-15GB, ggf. 20?)<br />
/dev/sda4 -> /home<br />
<br />
Die Größe der einzelnen Partitionen kann variieren.<br />
<br />
====Crypto-Devices anlegen====<br />
Das Ver- und Entschlüsseln wird über das Kryptographie-Modul des Devicemappers des Kernels abgewickelt. Dieser stellt uns ein virtuelles Device zu Verfügung, über das auf die verschlüsselten Partitionen zugegriffen werden kann.<br />
Den Verschlüsselungsalgorithmus, die Größe des Schlüssels und viele weitere Dinge die die Verschlüsselung beeinflussen, können selber festgelegt werden. Nähere Informationen zu den verfügbaren Parametern gibt es hier auf der Seite von dm-crypt [http://www.saout.de/misc/dm-crypt/]<br />
Informationen über die Geschwindigkeit der einzelnen Algorithmen gibt es hier [http://web.archive.org/web/20070519171434/http://www.saout.de/tikiwiki/tiki-index.php?page=UserPageChonhulio] übersichtlich dargestellt. <br />
Für die folgenden Verschlüsselung wurde der AES-Algorithmus mit SHA-256 als Hash und mit einer Schlüssellänge von 256 Bit gewählt.<br />
<br />
Laden der benötigten Kernelmodule:<br />
<br />
modprobe dm-crypt<br />
modprobe aes-x86-64 # aes-i586 für nicht 64-bit Systeme <br />
<br />
Anlegen des Crypto-Devices:<br />
<br />
# cryptsetup luksFormat /dev/sda3 --cipher aes-cbc-essiv:sha256 --verify-passphrase --key-size 256<br />
-> Passwort zweimal eingeben. <br />
'''ACHTUNG:''' Das Passwort sollte ausreichend lang sein, also mindestens 16 stellig.<br />
<br />
'''Hinweis: '''Da das Passwort während des Bootvorgangs abgefragt wird steht noch keine deutsche Tastaturbelegung zur Verfügung. Es stehen also keine Umlaute (ä;ö;ü;ß) zur Verfügung und Sonderzeichen sowie y und z befinden sich auf anderen Tasten. Um Probleme zu vermeiden sollte das Passwort mit der amerikanischen Tastaturbelegung erstellt werden.<br />
<br />
'''Ergänzung: '''Das Tastaturlayout beim Boot kann dahingehend angepasst werden, indem man eine HOOKS-Option in der /etc/mkinitcpio.conf hinzufügt und die Boot-Optionen für den Kernel erweitert. In der /etc/mkinitcpio.conf muss die Option "keymap" vor "filesystems" hinzugefügt werden, also etwa so aussehen HOOKS="base udev autodetect keymap sata encrypt filesystems". Unter /boot/grub/menu.lst erweitert man die Kernel-Zeile um die Sprachinformationen, also etwa so "kernel /boot/vmlinuz26 lang=de locale=de_DE.UTF-8 root=/dev/sda1 ro". Damit steht die deutsch Tastaturbelegung auch während des Bootvorgangs zur Verfügung.<br />
<br />
<br />
Öffnen des eben erstellten Crypto-Devices:<br />
<br />
# mkdir /mnt/root<br />
# cryptsetup luksOpen /dev/sda3 root<br />
-> Passwort eingeben<br />
<br />
Formatieren und mounten der Partition: <br />
<br />
# mke2fs -j /dev/mapper/root (mit ext3)<br />
# mount /dev/mapper/root /mnt/root<br />
<br />
Für die home-Partition wollen wir kein extra Passwort verwenden, sondern ein Keyfile, damit wir nicht bei jedem Start des Systems zwei Passwörter eingeben müssen. Das Keyfile für die Home-Partition legen wir in /crypto/home.key ab. Allerdings ist es sehr wichtig dieses Keyfile zu sichern. Sollte die Root-Partition einmal beschädigt und nicht wiederherstellbar sein, ist die Home-Partition mit allen Daten ebenfalls verloren. Eine andere Möglichkeit wäre es auch hier eine 16-stelliges Passwort zu benutzen, dieses in der /etc/crypttab anzugeben und es an einem sehr sicheren Ort aufzubewahren. So muss das Passwort nicht auf einem physikalischen Datenträger abgelegt werden. Man kann es sich entweder merken oder z.B. in einem Bankschließfach ablegen ;)<br />
<br />
Das Keyfile erstellen wir uns zufällig, indem wir einen 2048 Byte großen Block aus /dev/urandom kopieren.<br />
<br />
# mkdir /mnt/root/crypto<br />
# dd if=/dev/urandom of=/mnt/root/crypto/home.key bs=1k count=2<br />
<br />
Anlegen des Crypto-Devices:<br />
<br />
# cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher aes-cbc-essiv:sha256 --key-size 256<br />
<br />
# cryptsetup luksOpen /dev/sda4 home --key-file /mnt/root/crypto/home.key<br />
<br />
Formatieren und mounten der Partition: <br />
<br />
# mke2fs -j /dev/mapper/home (mit ext3)<br />
# mkdir /mnt/root/home<br />
# mount /dev/mapper/home /mnt/root/home<br />
<br />
====ArchLinux installieren====<br />
Zuerst müssen wir noch unsere Boot-Partition erstellen und mounten.<br />
<br />
# mke2fs /dev/sda1<br />
# mkdir /mnt/root/boot<br />
# mount /dev/sda1 /mnt/root/boot<br />
<br />
Um eine Verbindung zum Internet aufbauen zu können, muss eine IP-adresse beim Router angefragt werden.<br />
<br />
# dhcpcd eth0<br />
<br />
Jetzt kopieren wir alle wichtigen Dateien für das System in unsere verschlüsselte root-Partition.<br />
<br />
# /arch/quickinst ftp /mnt/root ftp://ftp.archlinux.org/current/os/i686<br />
<br />
bzw.<br />
<br />
# /arch/quickinst ftp /mnt/root ftp://ftp.archlinux.org/current/os/x86_64<br />
<br />
Nun brauchen wir für das neue System auch noch einen Kernel.<br />
<br />
# /mnt/root/usr/bin/pacman.static -r /mnt/root --config /tmp/pacman.conf -S kernel26<br />
<br />
Und damit wir das System nachher auch bequem starten können einen Bootloader, in diesem Fall nehmen wir [[GRUB]].<br />
<br />
Zuerst mounten wir alle wichtigen Systemverzeichnisse,<br />
<br />
# mount -o bind /dev /mnt/root/dev<br />
# mount -o bind /proc /mnt/root/proc<br />
# mount -o bind /sys /mnt/root/sys<br />
<br />
und wechseln mit chroot das Root-Verzeichnis.<br />
<br />
# chroot /mnt/root /bin/bash<br />
<br />
Schnell GRUB installieren.<br />
<br />
# install-grub /dev/sda /dev/sda1<br />
<br />
Und /boot/grub/menu.lst anpassen:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 cryptdevice=/dev/sda3:root root=/dev/mapper/root ro<br />
initrd /kernel26.img<br />
<br />
Damit dürfte das System im Prinzip schon einsatzbereit sein. Das initrd-image erkennt automatisch die verschlüsselte Partition und fragt nach dem Passwort. Sollte das nicht der Fall sein, muss noch mit [[mkinitcpio]] ein neues initrd-image erstellt werden, welches den hook für "encrypt" enthält. Dieser hook sollte in jedem Fall vor "filesystem" stehen. Dazu die Konfigurationsdatei /etc/mkinitcpio.conf bearbeiten und mit dem Befehl mkinitcpio das neue Image erzeugen.<br />
<br />
Den hook encrypt einfügen.<br />
<br />
# nano /etc/mkinitcpio.conf<br />
<br />
und dann das Image neu schreiben.<br />
<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
'''ACHTUNG:''' Sollte der Fall eintreten, dass sich während des Installationsprozesses die Kernel-Version im Repository ändert, z.B. weil der Kernel auf dem Installationsmedium älter ist (wie 2.6.24 anstatt 2.6.25) und man sich aber online die aktuellen Packages besorgt hat, kommt es zu Problemen beim Erstellen des neuen initrd-Images, weil nicht alle entsprechenden Treiber gefunden werden (wie die für die Verschlüsselung)! Abhilfe schafft ein …<br />
<br />
# mkinitcpio '''-k 2.6.25-ARCH -p kernel26''' -g /boot/kernel26.img<br />
<br />
… in der chroot-Umgebung: ''-k'' für den neuen Kernel (hier 2.6.25) und ''-p'' damit u.a. auch ein Fallback erstellt wird; nähere Infos siehe [[manpage]].<br />
<br />
Um später zum gewohnten …<br />
<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
… zurückzukommen, muss der Kernel irgendwann im laufenden System nochmal installiert werden.<br />
<br />
====Konfiguration anpassen====<br />
Zunächst tragen wir erstmal die Boot und die Root Partition in die /etc/[[fstab]] ein.<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/sda1 /boot ext2 defaults 0 0<br />
/dev/mapper/root / ext3 defaults 0 0<br />
<br />
Damit unser System auch die Home-Partition korrekt einbindet und die Swap-Partition bei jedem Start mit einem neuen zufälligen Schlüssel verschlüsselt, müssen wir noch folgendes machen.<br />
<br />
=====Home-Partition=====<br />
Zuerst öffnen wir /etc/crypttab und tragen unsere Home-Partition samt Schlüssel, der ja auf der Root-Partition in /crypto/home.key liegt, ein.<br />
<br />
# NAME SOURCE DEVICE PASSWORD OPTIONS<br />
home /dev/sda4 /crypto/home.key<br />
....<br />
<br />
Um die Partitionen über die UUID einzubinden, benutzen wir die aus folgendem Befehl resultierende UUID<br />
$ cryptsetup luksDump /dev/sda4 | grep UUID:<br />
<br />
Damit wird bei jedem Systemstart die Home-Partition automatisch geöffnet. Jetzt können wir /dev/mapper/home ganz normal in unsere fstab-Datei eintragen, damit /home auch korrekt gemountet wird.<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/mapper/home /home ext3 defaults 0 0<br />
<br />
=====Swap Partition=====<br />
Auch die Swap Partition tragen wir in die /etc/crypttab ein.<br />
<br />
'''Achtung:''' unbedingt darauf achten, dass hier das richtige Device angegeben wird, da sonst Datenverlust droht!<br />
<br />
# NAME SOURCE DEVICE PASSWORD OPTIONS<br />
swap /dev/sda2 SWAP -c aes-cbc-essiv:sha256 -s 256<br />
<br />
Jetzt müssen wir nur noch /dev/mapper/swap in die fstab Datei eintragen.<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/mapper/swap swap swap defaults 0 0<br />
<br />
<br />
*ANMERKUNG: ''Falls nach dem Neustart die Swap-Partition nicht richtig eingebunden wird, kann folgender Befehl Abhilfe schaffen:''<br />
<br />
dd if=/dev/zero of=/dev/sda2<br />
<br />
====Aufräumen & Neustarten====<br />
Zum Schluss müssen wir nur noch chroot mit Strg+d verlassen alle Partitionen wieder unmounten und die Crypto-Container schließen.<br />
<br />
# umount /mnt/root/boot /mnt/root/home <br />
# umount -l /mnt/root<br />
# cryptsetup luksClose root<br />
# cryptsetup luksClose home<br />
# rm -r /mnt/root<br />
<br />
Jetzt braucht es nur noch einen Restart und es sollte ein komplett verschlüsseltes ArchLinux starten ;)<br />
<br />
# shutdown -r now<br />
<br />
==System per USB-Stick entschlüsseln==<br />
Wer nicht jedesmal beim Booten das LUKS Passwort für die root Partition eingeben will kann auch ein Keyfile auf einem USB-Stick speichern.<br />
Wenn der Stick beim Booten eingesteckt ist wird das System automatisch aufgeschlossen. Es gibt zwei Möglichkeiten den Key auf dem Stick zu speichern.<br />
Als einfache (sichtbare) klartext Datei, oder zwischen dem MBR und der ersten Partition des Sticks.<br />
<br />
===Vorbereitungen===<br />
Bei beiden Methoden muss zunächst erstmal eine Udev Regel für den Stick erstellt werden. Wie das geht wird [[Einbindung_von_USB-Ger%C3%A4ten#Udev_Regel_erstellen | hier]] beschrieben. Ab jetzt wird angenommen, dass die Udev Regel den Stick ''usbstick'' nennt und die erste Partition des Sticks ''usbstick1''. <br />
<br />
Jetzt erstellt man ein Keyfile und speichert es auf dem USB-Stick. Soll das Keyfile als klartext Datei gespeichert werden, darf der Name keine Sonderzeichen, Punkte (versteckte Dateien) etc. enthalten, da der ''encrypt'' HOOK die Datei sonst beim Booten nicht findet.<br />
<br />
USB-Stick mounten<br />
<br />
mkdir /mnt/usb-stick<br />
mount /dev/usbstick1 /mnt/usb-stick<br />
<br />
Keyfile erstellen und auf dem Stick speichern.<br />
<br />
dd if=/dev/urandom of=/mnt/usb-stick/archkey bs=512 count=4<br />
<br />
Jetzt kann das Keyfile zu den Schlüsseln für die root Partition (hier ''/dev/sda3'') hinzugefügt werden. Das alte LUKS Passwort sollte man nicht löschen. Falls das Keyfile mal verloren geht, oder das Entschlüsseln per USB-Stick nicht auf Anhieb funktioniert, kommt man immer noch ins System.<br />
<br />
cryptsetup luksAddKey /dev/sda3 /mnt/usb-stick/archkey<br />
<br />
''/dev/sda3'' gegebenen Falls anpassen...<br />
<br />
Als nächstes wird die ''/etc/mkinitcpio.conf'' angepasst. Die Udev-Regel wird in die FILES="" Zeile eingetragen und zu den HOOKS ''usb'' hinzugefügt (vor encrypt).<br />
<br />
FILES="/etc/udev/rules.d/50-myusb.rules"<br />
HOOKS="... usb encrypt filesystems ..."<br />
<br />
Soll das Keyfile als klartext Datei gespeichert werden, müssen noch zwei Module zur MODULES="" Zeile hinzugefügt werden. Eins für das Dateisystem des Sticks (hier vfat) und eins für die Codepage<br />
<br />
MODULES="ata_generic ata_piix '''nls_cp437''' '''vfat'''"<br />
<br />
Die Module für das Dateisystem und die Codepage müssen durch die passenden ersetzt werden, falls der USB-Stick ein anderes Dateisystem hat (z.B. ext2). Benutzer des Arch-stock Kernels sollten die hier genannte Codepage verwenden.<br />
<br />
Jetzt kann das neue initrd-image erstellt werden. (evtl. das alte vorher sichern)<br />
<br />
mkinitcpio -p kernel26<br />
<br />
===Schlüssel als klartext Datei speichern===<br />
Da das Keyfile ja bereits auf dem Stick existiert, muss nur noch die kernel Zeile in der menu.lst (GRUB) angepasst werden.<br />
<br />
kernel /vmlinuz26 cryptdevice=/dev/sda3:root root=/dev/mapper/root ro vga=771 cryptkey=/dev/usbstick1:vfat:/archkey<br />
<br />
''/dev/usbstick1'' ist dabei die FAT Partition mit dem Keyfile.<br />
<br />
Wenn alles geklappt hat, sollte Das System beim nächsten Booten automatisch aufgeschlossen werden.<br />
Vorausgesetzt der USB-Stick ist eingesteckt. ;-)<br />
<br />
===Schlüssel zwischen MBR und erster Partition speichern===<br />
'''ACHTUNG:''' man sollte das hier nur machen wenn man weiß was man tut. Es kann zu Datenverlust kommen und die Partitionen oder der MBR des Sticks beschädigt werden.<br />
<br />
Sollte auf dem Stick ein Bootloader installiert sein müssen einige Werte angepasst werden. GRUB braucht z. B. die ersten 16 Sektoren. Man müsste also ''seek=4'' durch ''seek=16'' ersetzen. Andernfalls würden Teile von GRUB überschrieben werden. Im Zweifelsfall kann man sich die ersten 64 Sektoren anschauen und nach einem genügend großen freien Bereich suchen. <br />
<br />
dd if=/dev/usbstick of=64sectors bs=512 count=64 # kopiert die ersten 64 Sektoren<br />
hexcurse 64sectors # freien Platz suchen<br />
<br />
Den Schlüssel auf den Stick schreiben.<br />
<br />
dd if=/mnt/usb-stick/archkey of=/dev/usbstick bs=512 seek=4<br />
<br />
Wenn das geklappt hat kann das (klartext) Keyfile vom Stick gelöscht werden.<br />
<br />
shred --remove --zero /mnt/usb-stick/archkey<br />
<br />
Jetzt muss noch die kernel Zeile in der ''menu.lst'' (GRUB) Datei angepasst werden. <br />
<br />
kernel /vmlinuz26 cryptdevice=/dev/sda3:root root=/dev/mapper/root ro vga=771 cryptkey=/dev/usbstick:2048:2048<br />
<br />
Das Format für die ''cryptkey'' Option sieht so aus:<br />
<br />
cryptkey=BLOCKDEVICE:OFFSET:SIZE<br />
<br />
Die Werte für OFFSET und SIZE passen für dieses Beispiel, da das Keyfile die Länge 2048 hat (bs=512 count=4), und ab OFFSET 2048 (bs=512 seek=4) auf dem Stick gespeichert ist. Gegebenen Falls müssen die Werte angepasst werden.<br />
<br />
Das wars, wenn alles geklappt hat, sollte Das System beim nächsten Booten automatisch aufgeschlossen werden.<br />
Vorausgesetzt der USB-Stick ist eingesteckt. ;-)<br />
<br />
==Padlock Fehlermeldung==<br />
FATAL: Error inserting padlock_aes (/lib/modules/2.6.24-ARCH/kernel/drivers/crypto/padlock-aes.ko): No such device<br />
Wenn diese Fehlermeldung beim Booten erscheint, ist das nicht weiter schlimm.<br />
Die padlock-Module können nur mit speziellen Mini-ITX-Mainboards von VIA mit C7- oder Eden-CPU benutzt werden. Diese Mainboards enthalten eine Verschlüsselungseinheit namens Padlock, die unter anderem einen Hardware-Zufallsgenerator bereitstellt sowie hardwarebeschleunigte AES-Ver-/Entschlüsselung ermöglicht.<br />
<br />
Versucht zu laden werden die Module an zwei Stellen:<br />
<br />
* in der initrd<br />
* durch udev<br />
<br />
Um die Meldung weg zu bekommen kan mann folgendes machen:<br />
<br />
'''a)'''<br><br />
Der encrypt-Hook bewirkt beim Erstellen des initrd-Images das alle Module die in Verzeichnissen namens crypto liegen eingebunden und versucht zu laden werden. Das kann man steuern durch den Parameter CRYPTO_MODULES in der /etc/mkinitcpio.conf ähnlich des MODULES Parameters dort. D.h., man muss alle Crypto-Module, die zum Aufschließen der verschlüsselten Root-Partition nötig sind, dort explizit aufführen da der encrypt-Hook diese nicht mehr automatisch einfügt. Die benötigten Module kann man durch lsmod im laufenden System finden. Wer seine crypto-Module anhand des Namens nicht eindeutig identifizieren kann findet sie auf diesen Weg:<br />
<br />
cd /lib/modules/$(uname -r)<br />
source /lib/initcpio/functions <br />
m="$(all_modules "/crypto/") "<br />
echo $m<br />
<br />
Diese Module würde der encrypt-Hook automatisch einbinden (darunter auch die padlock).<br />
Zum Abgleich mit den eigenen Modulen jetzt einfach lsmod mit dieser Liste vergleichen.<br />
<br />
Der nötige Eintrag in der /etc/mkinitcpio.conf kann z.B. so aussehen:<br />
<br />
CRYPTO_MODULES="blowfish sha256_generic aes_i586 aes_generic"<br />
<br />
Jetzt noch das initrd-Image erstellen(als root): <br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
'''b)'''<br><br />
Damit das Modul durch udev nicht versucht wird zu laden. Es reicht nicht (bzw. hat keine Auswirkung) die Module in der rc.conf mit ! vom Laden ausschließen zu wollen. Erst das explizite Blacklisten bei udev führte bei mir zum Erfolg. Also Datei /etc/modprobe.d/modprobe.conf editieren<br />
<br />
blacklist padlock-aes<br />
blacklist padlock-sha<br />
<br />
'''Nachtrag:'''<br>Durch das Update auf 2.6.27 hat sich bei den notwendigen CRYPTO_MODULES wieder einiges geändert. Ich konnte meinen Laptop erstmal nicht normal starten, da in meinen vorgegebenen Modulen welche fehlten. Um das (und das padlock-Problem zu umgehen) habe ich nun die CRYPTO_MODULES Zeile wieder rausgenommen und habe einfach die Module selbst in lib/modules/2.6.27-ARCH/kernel/drivers/crypto/padlock-* gelöscht. Dann das initrd neu erstellt. Somit taucht diese Meldung ebenfalls nicht mehr auf (ich verwende nie eine Hardware für das ich dieses padlock brauchen würde).<br />
<br />
==lrw-benbi==<br />
Wer wie im [http://wiki.archlinux.org/index.php/System_Encryption_with_LUKS_for_dm-crypt#Mapping_partitions US-Arch-Wiki] mit lrw-benbi verschlüsseln will, muss ebenso die /etc/mkinitcpio.conf anpassen:<br />
<br />
CRYPTO_MODULES="blowfish '''lrw''' sha256_generic aes_i586 aes_generic"<br />
<br />
<br />
==Weblinks==<br />
* [[Verschlüsseltes Verzeichnis]]<br />
* [[Truecrypt]]<br />
* [https://wiki.koeln.ccc.de/index.php/Suspend_to_Cryptodisk "Suspend to Cryptodisk"-How-To auf wiki.koeln.ccc.de]<br />
<br />
[[Kategorie: Sicherheit]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Anleitung_f%C3%BCr_Einsteiger&diff=10081
Anleitung für Einsteiger
2010-05-26T06:44:25Z
<p>Orschiro: </p>
<hr />
<div>[[Category:Deutsch]]<br />
[[Category:Arch erhalten und installieren (Deutsch)]]<br />
[[Category:Über Arch (Deutsch)]]<br />
[[Category:HOWTOs (Deutsch)]]<br />
{{i18n|Beginners' Guide}}<br />
<br />
==Vorwort==<br />
=====Alles, was Du jemals über die Installation von Arch Linux wissen wolltest, aber niemals zu fragen wagtest=====<br />
Dieses Dokument wird Dich durch den Prozess der Installation und Konfiguration von ArchLinux führen. Es richtet sich in erster Linie an neue Arch-Nutzer, stellt jedoch gleichzeitig auch eine gute Quelle für alle Anderen dar. Obwohl diese Orientierungshife zeigen will, wie man ein voll konfiguriertes Arch Linux System erhält (mit grafischer Oberfläche, DVD-Spieler, Internet-Browser, E-Mails, Musik), können hier niemals alle Möglichkeiten aufgezeigt werden. Dieses Dokument konzentriert sich darauf, die wichtigsten und nützlichsten Schritte zu zeigen; mehr Informationen findest Du im englischen [[Main Page|Arch Linux Wiki-en]] oder im [http://bbs.archlinux.org/ Arch Linux' Forum], aber auch auf der [http://www.archlinux.de/ deutschen Seite]. Vielleicht bist Du auch am [[The Arch Way (Deutsch)|Arch-Weg]] interessiert, welcher die Prinzipien der Arch Linux Distribution erklärt.<br />
<br />
Dieser Artikel ist in 3 Hauptteile getrennt:<br />
<br />
*[http://wiki.archlinux.org/index.php?title=Beginners_Guide_%28Deutsch%29#Teil_1:_Installation_des_Grundsystems Teil 1: Installation des Grundsystems]<br />
<br />
*[http://wiki.archlinux.org/index.php?title=Beginners_Guide_%28Deutsch%29#Teil_2:_Installation_von_X_und_Konfiguration_von_ALSA Teil 2: Installation von X und Konfiguration von ALSA]<br />
<br />
*[http://wiki.archlinux.org/index.php?title=Beginners_Guide_%28Deutsch%29#Teil_3:_Installation_und_Konfiguration_einer_Desktopumgebung Teil 3: Installation und Konfiguration einer Desktopumgebung]<br />
<br />
=====KEINE PANIK!=====<br />
Bitte sei Dir darüber im Klaren, dass sich die Installation von Arch Linux deutlich von anderen Distribution unterscheidet, die Du vielleicht schon zuvor ausprobiert hast. Das Arch Linux System wird '''vom Benutzer''' geformt. Die Installation liefert ein Grundsystem mit lediglich einer 'bash-Konsole' (Kommandozeilen-Eingabe) und grundlegenden Systemprogrammen. Von der Kommandozeile wirst Du Pakete (Programme) mit Hilfe des [http://wiki.archlinux.org/index.php/Pacman_%28Deutsch%29 pacman]-Programmes von den Arch-Servern herunterladen und installieren, bis das System nach Deinen Bedürfnissen eingerichtet ist. Dies erlaubt maximale Flexibilität, Entscheidungsfreiheit und Kontrolle der Systemressourcen. Weil '''Du''' es einrichtest, wirst Du das A und O Deines Systems kennenlernen - und das, was unter der Haube des Systems liegt. Denke auch daran, dass sich Arch Linux sowohl an kompetente GNU/Linux Benutzer wie auch an Benutzer richtet, die ihr System wirklich von Grund auf erforschen wollen.<br />
<br />
''Die Entwicklungs-Prinzipien hinter Arch liegen darin, die Dinge einfach zu halten.'' <br />
<br />
Bedenke, dass 'einfach' in diesem Zusammenhang nicht 'benutzerfreundlich' bedeutet, sondern eher 'ohne unnötige Zusätze, Änderungen oder Komplikationen'. Kurz gesagt: ein eleganter, minimalistischer Ansatz.<br />
<br />
Falls Du denkst, dass etwas Wichtiges fehlt oder nicht funktioniert, schick mir eine Mitteilung an <freigeist [at] elfenbeinturm.cc>. Oder füge die Verbesserung, oder was auch immer Du anfangs gebraucht hast, ein (was die Hauptidee eines Wikis ist :)). Es gibt auch einen [http://bbs.archlinux.org/viewtopic.php?t=29055 englischen Arch Forum] Eintrag, der Anfängern gewidmet ist.<br>Oder gehe zum [http://forum.archlinux.de/ deutschen Arch Forum].<br />
<br />
*''Falls Du zu diesem Wiki beitragen möchtest, füge bitte das 'Weshalb' und das 'Wie' ein, wenn es passend ist. Die beste Dokumentation lehrt uns das Wie sowie das Warum!''<br />
<br />
<br />
Willkommen zu Arch! Lass uns beginnen.<br />
<br />
==Teil 1: Installation des Grundsystems==<br />
<br />
===Die Hardware-Uhr überprüfen===<br />
Ein kleiner und vielleicht unbedeutender Schritt, aber man spart sich ggf. später ein paar Unklarheiten und Boot-Vorgänge. - Prüfe im BIOS, ob die Hardware-Uhr Deines PCs '''UTC''' oder '''lokale Zeit''' anzeigt. Zeigt sie (in deutschsprachigen Ländern) eine Zeit, die (je nach Sommerzeit) der aktuellen Uhrzeit um ein bzw. zwei Stunden hinterherhinkt, dann ist es UTC. Merken!<br />
<br />
===Die neuste Core Iso beziehen ===<br />
<br />
Du kannst die neuste Momentaufnahme von [http://www.archlinux.org/download/ www.archlinux.org/download/] herunterladen.<br />
<br />
Es wird empfohlen, die '''core-iso''' zu wählen, da dieses Wiki auf den core Installationsprozess ausgerichtet ist.<br />
<br />
Das core-iso Image beinhaltet nur die nötigen Programme, um ein minimales GNU/Linux Grundsystem zu installieren. ''Bemerke, dass ein minimales Grundsystem keine graphische Oberfläche enthält.'' Der Rest des Arch Linux Systemes - einschließlich graphischer Oberfläche - wird von der Kommandozeile aus mit Hilfe von Binärpaketen und Konfigurationsdateien eingerichtet. Dieser Prozess wird detailiert weiter unten besprochen.<br />
<br />
Brenne die ISO auf CD. Generell ist es ratsam, mit einer Maximalgeschwindigkeit von 16x zu brennen, um verlässliche CDs zu erhalten.<br />
<br />
<br />
===Starte die Arch Linux CD===<br />
Während Du diesen Anweisungen folgst, könnte auch der [[Official Arch Linux Install Guide|offizielle Installationsguide]] hilfreich sein. Zusätzlich findest Du [http://www.archlinux.org/static/docs/arch-install-guide.html hier] eine Druckversion.<br />
<br />
Setze die CD in das Laufwerk und starte von ihr. Es kann sein, dass Du die Startreihenfolge Deines Computers im BIOS ändern musst, oder eine Taste (normalerweise F11 oder F12) während der BIOS-Phase drücken musst.<br><br />
Einige nützliche Startoptionen der Arch Linux CD:<br />
* ''ide-legacy'' falls Du Probleme mit IDE-Laufwerken hast.<br />
* ''noapic acpi=off pci=routeirq nosmp'' wenn sich Dein System beim Starten aufhängt.<br />
* ''memtest86+'' Wenn Du Deinen Speicher auf Fehler testen willst.<br />
* ''lowmem'' ist für ältere Maschinen nützlich. Dies braucht nur 96MB System-RAM entgegen 256MB bei normaler Installation.<br />
Wähle "Arch Linux Installation / Rescue System". Falls Du die Startoptionen ändern musst, drücke 'e', um die Startlinien zu bearbeiten.<br>Das System startet nun von CD und präsentiert einen Willkommenstext mit einigen Erklärungen, wenn es bereit ist.<br />
<br />
===Ändern der 'keymap'===<br />
Drücke am Willkommensbild die Enter-Taste. Falls Du eine 'nicht-US' Tastatur hast, gib in die Befehlszeile <br />
km<br />
ein und wähle die richtige 'keymap'.<br />
<br />
Zum Beispiel für deutsche Tastatur:<br />
<br />
In der Konsole 'keymap':<br />
de.map.gz<br />
In der Konsole 'font screen' wähle:<br />
default8x16.psfu.gz<br />
Diesen Standard für die Konsolen-Schriftart ist eine sichere Wahl.<br />
<br />
===Konfigurieren eines Proxyservers===<br />
Wenn du die Installation per 'FTP' durchführen willst und über einen Proxyserver mit dem Internet verbunden bist, kannst du folgendes in die Kommandozeile eingeben<br />
export http_proxy="<nowiki>http://<servername>:<port></nowiki><br />
export ftp_proxy="<nowiki>ftp://<servername>:<port></nowiki><br />
Wobei <servername> entweder der Hostname oder die IP-Adresse des Proxyservers ist und <port> die Portnummer (meistens 8080 oder 3128).<br />
<br />
===Installation starten===<br />
Gib in die Kommandozeile<br />
/arch/setup <br />
ein, um die Installation zu starten.<br />
<br />
====Eine Installationsquelle wählen====<br />
Du wirst nach einer Installationsquelle gefragt. Wähle '''CDROM''', falls Deine CDROM von einem 'core-ISO' gebrannt wurde, das die gesamte Basisinstallation von Arch Linux enthält, oder entscheide Dich für '''FTP''', falls Deine CDROM ein 'FTP-ISO' enthält, das die meisten Teile von Arch Linux während der Installation aus dem Netz lädt. In letzterem Fall ist eine funktionierende Netzwerkverbindung für die Installation zwingend erforderlich.<br />
<br />
====Vorbereiten der Festplatte====<br />
Wähle den ersten Eintrag "Prepare Hard Drive" (Festplatte vorbereiten). Bitte sei Dir im Klaren, dass 'Auto-Prepare' (automatisches Vorbereiten) keine sichere Wahl ist, da es die gesamte Festplatte löschen wird.<br />
Wir werden hier die Festplatte manuell partitionieren. Wähle '2. Partition Hard Drives' (Festplatten partitionieren), wähle die Festplatte, auf der Du Arch installieren willst (/dev/sdx), und erstelle einige Partitionen.<br />
<br />
''An dieser Stelle wird der erfahrenere GNU/Linux-Benutzer zum [http://wiki.archlinux.org/index.php?title=Beginners_Guide_%28Deutsch%29#W.C3.A4hle_Pakete'''Pakete Wählen'''] springen wollen.''<br />
<br />
=====Partitionierungs-Info=====<br />
Eine Partition ist eine Sektion der Festplatte, die als separate Festplatte erschienen wird und zu Deinem Arch Linux Dateisystem hinzugefügt werden kann. Partitionan werden in 'primär', 'erweitert' oder 'logisch' eingeteilt. <br />
Primäre Partitionen können startfähig sein und sind auf die Anzahl von 4 beschränkt. Wenn Du zum Beispiel einen PC mit einer einzelnen SATA-Festplatte benutzt, wird die erste 'primäre' Partition 'sda1' genannt. Die zweite 'primäre' Partition nennt sich 'sda2', dann kommt sda3 und sda4. Bei mehr als 4 Partitionen müssen wir eine erweiterte Partition benutzen, welche die logischen Partitionen enthält.<br />
<br />
Erweiterte Partitionen sind von sich aus nicht benutzbar; sie sind eher ein "Kontainer" für logische Partitionen. Logische Partitionen müssen in innerhalb der erweiterten Partition liegen. Wenn eine Festplatte partitioniert wird, kann man folgendes Nummernschema sehen: sda1-3 für die ersten drei primären Partitionen. Darauf folgt die erweiterte Partition sda4. Und innerhalb der erweiterten Partition werden logische Partitionen (sda5, sda6 usw.) erstellt.<br />
=====Root, Home und Swap=====<br />
Jeder hat eine andere Meinung, wie man seine Festplatte am besten einteilen sollte. Du wirst mindestens eine primäre Partition brauchen, welche das [http://en.wikipedia.org/wiki/File_system Dateisystem] 'root' ( / ) enthält.Des weiteren brauchst Du eine Partition für 'swap'. Weitere Kandidaten für eigene Partitionen sind /boot (beinhaltet hauptsächlich den Kernel) und /home (beinhaltet die Benutzerdaten). Es ist gute Praxis, / und /home auf unterschiedlichen Partitionen zu haben. Dies macht es mögich, Arch Linux (oder eine andere Distribution) neu zu installieren, während der Benutzer seine Daten, Musik, Bilder und Einstellungen behalten kann.<br />
<br />
In diesem Wiki werden wir eine Partition für /, eine Partition für /home und eine swap Partition anlegen.<br />
<br />
=====Swap-Partition=====<br />
Eine Swap-Partition ist der Platz einer Festplatte, wo der "virtuelle Speicher" beheimatet ist. Falls Deine Prozesse mehr RAM brauchen als physikalisch vorhanden, kann Linux die Anfrage nicht bearbeiten und ein Fehler tritt auf. Eine swap Partition hilft in dieser Situation, indem physikalischer RAM durch virtuellen RAM erweitert wird. Linux benutzt diesen Platz der Festplatte (die Swap-Partition), um die Informationen, welche nicht mehr in den physikalischen RAM passen, zu speichern (in Wahrheit ist es ein wenig komplizierter, da Linux versucht, Informationen ins Swap zu schreiben, die nicht oft benötigt werden). Da eine Festplatte im Vergleich zu physikalischem RAM sehr langsam ist, ist dies nur ein Behelf.<br />
<br />
Wenn Du zwei Leute über eine Swap-Partition fragst, wirst Du 4 verschiedene Antworten bekommen. Falls Du viel RAM (mehr als 1024 MB) hast, kannst Du meiner Meinung nach die Swap-Größe gut zwischen 512 MB und 1 GB halten. Deshalb werden wir in unserem Beispiel eine Swap-Partition mit 1 GB erstellen.<br />
<br />
Hinweis: im Fall der späteren Verwendung von '''suspend to disk''', d.h. des Versetzens des Rechners in den Schlafmodus mit Auslagerung des RAM-Inhalts auf die Festplatte, ist eine Swap-Partition in mindestens der vollen Größe des RAMs erforderlich, damit diese Auslagerung funktioniert.<br />
<br />
=====Die Partitionierung=====<br />
Lass uns damit starten, die '''primäre Partition''' zu erstellen, welche das '''/'''-Dateisystem beherbergt. Wähle ''New -> Primary'' und gib die Größe, welche Du willst. 4 GB sollte man für ein eher konsolenorientiertes Minimalsystem oder einen Fileserver mindestens veranschlagen. Für ein voll ausgestattetes System mit grafischer Oberfläche, Büroprogrammen, Multimedia und/oder Entwicklungswerkzeugen kommt man mit 10 GB aus. Man bedenke, daß üblicherweise auch das tmp-Verzeichnis und das var-Verzeichnis auf dieser Partition liegen, so daß also auch etwas Platz frei bleiben muß, der dynamisch benutzt wird. Eine hier zu klein gewählte Partition zieht in der Regel umfangreiche und komplizierte Wartungsmaßnahmen nach sich, ggf. eine Neupartitionierung mit Neuinstallation! Stelle diese Partition an den Anfang der Festplatte. Wähle die neu erstellte Partition an und und wähle "Bootable" aus, damit man von ihr starten kann.<br />
<br />
Füge als zweites eine '''Partition für Swap''' hinzu. Wähle eine Größe zwischen 512 MB und 1 GB und ändere den Partitionstyp zu 82 (Linux swap / Solaris).<br />
<br />
Füge eine dritte '''Partition für Deine Benutzer - /home''' hinzu. Wähle eine weitere primäre Partition und gib ihr die Größe, welche Du willst. Da die Größe wirklich davon abhängt, was Deine Benutzer in ihren Home-Ordnern speichern, kann ich Dir keine Vorschläge machen. Die Größe kann zwischen ein paar hundert Megabyte für einige Büro-Dokumente und hunderten von Gigabytes für Videos und MP3s variieren. Falls Du den gesamten Platz auf Deiner Festplatte nutzen möchtest, wähle den verbleibenden Platz minus 512 MB - 1 GB. <br />
<br />
Überlege, ob es ratsam ist, einen Teil der Festplatte am Ende für Experimente übrig zu lassen. Lasse dort entweder einen Bereich unpartitioniert oder lege eine letzte, gesonderte Partition an (vielleicht 10 GB), in die man später beispielsweise ein zweites Betriebsystem installieren könnte. Wenn Du diesen Fall ausschließen kannst, kannst Du auch die gesamte Platte mit der home-Partition füllen.<br />
<br />
So sollte Dein Layout aussehen (die Größe kann ja nach Deinen Entscheidungen variieren):<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Boot Primary Linux (4096 - 8192)<br />
sda2 Primary Linux swap / Solaris (512 - 1024)<br />
sda3 Primary Linux (> 100)<br />
<br />
Wähle 'Write' und tippe 'yes' ein. Beachte, dass diese Operation Daten auf Deiner Festplatte zerstören kann, falls Du Partitionen gelöscht hast! Wähle Quit, um den Partitionierer zu verlassen. Dann wähle Done um dieses Menü zu verlassen und mit dem Setzen der Mountpunkte fortzufahren.<br />
<br />
====Setzen der Mountpunkte der Filesysteme====<br />
<br />
=====Ein Paar kurze Worte über Dateisysteme und "Datei Systeme":=====<br />
<br />
Technisch und der Genauigkeit halber, ist ein '''Dateisystem''' ein Daten '''Format''' für Informationsfuß, während ein "Datei System" (beachte den Leerschlag) eine Bezeichnung ist, die sich auf das Layout aller Dateien und Ordner in einem bestimmten System bezieht. Wenn Du deshalb gefragt wirst, ob Du ein '''Dateisystem''' bilden willst, wirst Du eigentlich gefragt, ob Du eine bestimmte Partition '''formatieren''' willst.<br>Aber wenn Du nach Mountpunkten gefragt wirst, gibst Du die Informationen, wo sich die bestimmten Partitionen in Deinem Arch Linux '''Datei System''' befinden.<br />
<br />
Lass uns beginnen.<br />
<br />
=====Dateisystem-Typen=====<br />
Zuerst wirst Du nach Deiner Swap-Partition gefragt. Wähle die passende Partition (sda2 in unserem Beispiel). Du wirst gefragt, ob Du ein swap-Dateisystem bilden willst. Wähle 'yes'.<br>Als nächstes musst Du wählen, wo das / (root) Verzeichnis aktiviert wird (sda1 im Beispiel). Du wirst nun gefragt, welche Art von Dateisystem Du willst.<br />
<br />
Frage wiederum zwei Personen, welches Dateisystem Du wählen sollst, und Du wirst fünf unterschiedliche Antworten erhalten. Jedes hat seine Vor- und Nachteile. Dies ist ein kurzer Überblick über die unterstützten Dateisysteme:<br />
#'''ext2''' - Altes, verlässliches GNU/Linux Dateisystem. Sehr stabil, aber ohne Aufzeichnung. Könnte lästig sein wegen langen fsck's (Checken des Systems).<br />
#'''ext3''' - Eigentlich das ext2-System - aber mit Aufzeichnungs-Unterstützung. Generell anerkannt als ''ein wenig'' langsamer als ext2 und andere Dateisysteme, aber '''extrem''' stabil und das am weitesten verbreitete, unterstützte und entwickelte GNU/Linux Dateisystem.<br />
#'''ext4''' - In ext4 sind diverse Verbesserungen gegenüber seinem Vorgänger ext3 integriert. So unterstützt es Partitionen oder Volumes, die bis zu 1 EiB groß sind, im Gegensatz zu ext3, das nur 32 TiB zulässt.<br />
#'''ReiserFS''' - Hans Reiser's hochperformace Dateisystem mit Aufzeichnung. Es benutzt eine sehr interessante Methode des Datendurchlasses. ReiserFS ist schnell, vor allem bei der Behandlung vieler kleiner Dateien. ReiserFS ist sehr langsam beim mounten. Ziemlich gut etabliert und stabil. ReiserFS wird zur Zeit nicht aktiv entwickelt (Reiser4 ist das neue Reiser Dateisystem).<br />
#'''JFS''' - Das Aufzeichnungs-Dateisystem von IBM. JFS ist sehr schnell und braucht die geringste CPU-Prozessorenergie aller Dateisysteme. Sehr schnell beim mounten. Auf der JFS-Mail-Liste wurde berichtet, dass es an Fragmentationsproblemen leiden könnte.<br />
#'''XFS''' - Sehr schnelles Dateisystem mit Aufzeichnung. Es ist als bestes für große Dateien geeignet, während es mit kleinen Dateien langsamer (immer noch ziemlich schnell) ist. Sehr schnell beim mounten.<br />
Ein großer Unterschied ist die [http://de.wikipedia.org/wiki/Journaling-Dateisystem Aufzeichnung] (etwas Ähnliches wie Verschiebungs-Logs in Datenbanken-Umgebungen). Alle Dateisysteme außer ext2 benutzen die Aufzeichnung. ext3 ist zu ext2 komplett kompatibel, weshalb man sogar mit sehr alten Rettungs-CD's mounten kann. Eine sichere Wahl für die root- Partition ist ext3. ReiserFS, XFS und JFS sind auch OK, da GRUB (der Startmanager, den wir später installieren werden) auch von diesen Dateisystemen starten kann. Bilde das Dateisystem (formatiere die Partition), indem Du yes wählst. Nun wirst Du aufgefordert, weitere Partitionen inzuzufügen. In unserem Beispiel bleibt nur noch sda3. Wähle ein Dateisystem und mounte es als /home. Bilde wiederum das Dateisystem und wähle Done an. Gehe zurück zum Hauptmenü (main menu).<br />
<br />
===Wähle Pakete===<br />
Nun sollen wir die Pakete bzw Programme wählen, die wir in unserem System installieren. Wähle CD als Quelle und das richtige CD-Laufwerk, falls Du mehr als eines hast. Nimm die Kategorie 'base' (alle Grundpakete, die gewählt sind, zu lassen ist eine gute Wahl). Wenn Du '''sicher''' bist, dass Du gewisse Pakete nicht brauchst (z.B. ein Dateisystemtyp, den Du nicht brauchst, PCMCIA, ISDN oder PPPoE Unterstützung), sei so frei und entferne sie aus der Grundpakete- Auswahl. Das (ab-)wählen von Paketen geschieht mit der Leertaste.<br />
<br />
<br />
''Seit der Installations-CD Arch 2007.08-2 kannst Du nun Pakete von den Kategorien '''Lib''', '''Devel''' und '''Support''' hinzufügen.''<br />
<br />
Alle, keines oder einige Pakete dieser Kategorien zu wählen, ist in jedem Fall eine sichere Wahl, aber überfliege sie trotzdem. Anfänger können einfach alles auswählen.<br />
<br />
===Pakete Installieren===<br />
Das Installationsskript wird nun die ausgewählten Pakete auf Deinem System installieren. Die Programme sind binär i686-optimiert und brauchen insgesamt etwa 100MB für das Grundsystem. Deshalb sind sie recht schnell installiert.<br />
<br />
===Systemkonfiguration===<br />
Du wirst gefragt, ob Du willst, dass hwdetect einige Informationen über Deine Konfiguration sammelt. Dies ist empfohlen, weshalb Du diese Option wählen solltest.<br><br />
Nun wirst Du gefragt, ob Du Unterstützung brauchst, um von USB zu starten, für FireWire-Geräte, für PCMCIA-Geräte, NFS-Shares, Software RAID Arrays und verschlüsselte Partitionen. Wähle yes, falls Du etwas brauchst; in unserem Beispiel wird nichts benötigt.<br>Nun wirst Du gefragt, welchen Texteditor Du benutzen möchtest; wähle [http://de.wikipedia.org/wiki/Nano_(Texteditor) nano], falls Du nicht vertraut bist mit [http://en.wikipedia.org/wiki/Vim vi/vim].<br>Nun wird ein Menü erscheinen, welches die wichtigsten Konfigurationsdateien auf Deinem System zeigt. Wir werden diesmal nur einige kleinere Änderungen vornehmen. Falls Du die vorhandenen Optionen, wie in rc.conf erklärt, nachschauen willst, drücke Alt+F2 um zu einer Eingabeaufforderung zu gelangen. Schaue es dort nach und wechsle mirt Alt+F1 zurück zum Installationsprogramm<br />
<br />
=====/etc/rc.conf=====<br />
<br />
* Ändere Dein ''LOCALE'', falls Du es brauchst (z.B. "de_DE.utf8") (Dieses locale muss sich mit /etc/locale.gen decken [http://wiki.archlinux.org/index.php/Beginners_Guide_%28Deutsch%29#.2Fetc.2Flocale.gen '''Siehe unten'''].)<br />
* Ändere Deine TIMEZONE, falls benötigt (z.B. "Europe/Berlin")<br />
* Ändere Dein KEYMAP, falls nötig (z.B. "de-latin1-nodeadkeys")<br />
<br />
* Gib in MODULES an, falls Du weisst, dass ein wichtiges Modul fehlt ('hwdetect' sollte die wichtigsten Module eingetragen haben)<br />
* Gib Deinen HOSTNAME an.<br />
* Ändere Deine Netzwerkeinstellungen:<br />
** Ändere nicht die lo-Linie<br />
** Passe die IP-Adresse, die Netzmaske (netmask) und die Sende-Adresse (broadcast address) an, ''falls'' Du '''statische IP''' verwendest, ansonsten lass diese Information auskommentiert.<br />
** Setze eth0="dhcp" falls Du '''DHCP''' nutzen willst.<br />
** Falls Du '''statische IP''' nutzt, setzte die Gateway Adresse auf den Deines Routers und entferne des '!' vor der ROUTES Eintragung. (Lass diesen Eintrag wie er ist, falls Du DHCP nutzt.)<br />
<br />
=====Über DAEMONS=====<br />
Du musst diesmal die [[daemons]]-Linie (Daemons) nicht bearbeiten; es ist jedoch sinnvoll zu erklären, was Daemons sind, weil wir sie später in diesem Wiki brauchen. Analog zu einem Windows Service ist ein Daemon ein Programm, das im Hintergrund läuft, auf ein Ereignis wartet und einen Service erbringt.Ein gutes Beispiel ist ein Webserver, der auf eine Anfrage wartet, eine Seite zu liefern, oder ein SSH-Server wartet auf jemanden, der versucht sich einzuloggen. Während dies vollumfängliche Anwendungen sind, gibt es Daemons, deren Arbeit nicht so sichtbar ist. Beispiele sind ein Daemon, der Mitteilungen in eine log-Datei schreibt (z.B. syslog, metalog), ein Daemon, der die Frequenz Deines CPU absenkt, wenn er nichts zu tun hat (z.B. cpufreq) und ein Daemon, der einen graphischen Login bereitstellt (wie gdn, kdm). All diese Programme können zur Daemons-Linie hinzugefügt werden und werden dann bei Systemstart gestartet. Nützliche Daemons werden im Laufe dieses Wikis präsentiert.<br />
<br />
Verlasse mit Ctrl+X den Editor.<br />
<br />
=====/etc/hosts=====<br />
<br />
Füge den gewünschten ''hostname'' hinzu (welchen Du in /etc/rc.conf zuvor gesetzt hast), so dass es in etwa so ausschaut wie folgt:<br />
127.0.0.1 localhost.localdomain localhost ''dein-hostname''<br />
''Dieses Format, '''inklusive den 'localhost'-Einträgen''' wird für Programmkompatibilität benötigt! Fehler in diesem Syntax führen dazu, dass sich Programme sehr langsam öffnen.<br>Die ist bei Anfängern ein ziemlich häufiger Fehler.''<br />
<br />
Für die meisten Benutzer wird es reichen, einfach ''dein-hostname'' ans Ende der Standardlinie hinzuzufügen. Jedoch raten einige Nutzer dazu, folgenden Syntax zu benutzen:<br />
127.0.0.1 ''dein-hostname''.domaene.org localhost.localdomain localhost ''dein-hostname''<br />
Falls Du eine statische IP benutzt, füge eine weitere Linie mit folgendem Syntax hinzu: <static-ip> hostname.domainname.org hostname<br />
Beispiel:<br />
192.168.1.100 dein-hostname.domaene.org dein-hostname<br />
<br />
===== /etc/fstab, mkinitcpio.conf und modprobe.conf=====<br />
Zu diesem Zeitpunkt ist es nicht nötig, die Dateien mkinitcpio.conf und modprobe.conf zu bearbeiten. mkinitcpio konfiguriert die [[Initrd]] (z.B. booten von RAID, verschlüsselte Festplatten) und modprobe kann dazu verwendet werden, einige spezielle Konfigurationsoptionen für die Module zu bestimmen.<br />
<br />
''Falls Du den hal daemon benutzen willst, um das Mounten von Festplatten, optischen Laufwerken, USB-Laufwerken usw. zu automatisieren, solltest Du /etc/fstab bearbeiten und die Einträge für cdrom, floppy und dvd auskommentieren.''<br />
<br />
=====/etc/resolv.conf (für statische IP)=====<br />
Falls Du eine statische IP benutzt, setze Deine DNS Server in /etc/resolv.conf (namenserver <ip-adresse>). Du kannst so viele haben, wie Du willst.<br />
<br />
Falls Du einen Router benutzt, wirst Du wahrscheinlich Deine DNS Server im Router selbst festlegen und bloß von Deinem 'resolv.conf' dorthin verweisen, indem Du die IP Deines Routers benutzt (Deine Gateway in /etc/rc.conf). Beispiel:<br />
nameserver 192.168.1.1<br />
Alternativ kannst Du Deine Lieblingsserver untereinander hinzufügen, z.B.:<br />
nameserver 4.2.2.1<br />
nameserver 4.2.2.2<br />
<br />
=====/etc/locale.gen=====<br />
<br />
Das Kommando '''locale-gen''' liest aus /etc/locale.gen und generiert spezielle Lokalisierungen. Diese können dann von glibc und jedem anderen lokalisierten Programm oder Bibliothek zum Texterstellen benutzt werden. /etc/locale.gen ist standardmäßig eine leere Datei mit kommentierter Dokumentation. Wenn diese Datei einmal bearbeitet wurde, wird sie nie mehr berührt werden. Locale-gen wird bei jedem Update von glibc ausgeführt, wodurch alle Lokalisierungen aus /etc/locale.gen hergestellt werden.<br />
<br />
Wähle alle Loalisierung(en), welche Du nutzen willst (lösche das # am Anfang der Zeile), z.B.:<br />
en_US ISO-8859-1<br />
en_US.UTF-8 <br />
('''Deine Lokalisierungen müssen mit denen in /etc/rc.conf von oben übereinstimmen.''')<br />
<br />
Die Installation wird nun das '''locale-gen''' Skript ausführen, welches die gewünschten Lokalisierungen erstellt. Du kannst in Zukunft die Lokalisierung ändern, indem Du /etc/locale.gen bearbeitest und danach '''locale-gen''' als root ausführst.<br />
<br />
''Beachte: falls Du Deine Lokalisierung nicht wählst, wird das zum "The current locale is invalid..." Fehler führen. Dies ist wahrscheinlich der häufigste Fehler unter neuen Arch Nutzern, und er führt auch zur am meisten gestellten Frage im Forum.''<br />
<br />
=====Root Password=====<br />
Setze zum Schluß ein root-Passwort und vergewissere Dich, dass Du es später noch weißt. Kehre zum Hauptmenü zurück und fahre mit der Installation des Startmanagers (Bootloader) fort.<br />
<br />
===Installation des Bootloaders===<br />
Da wir in unserem Beispiel kein zweites Betriebssystem haben, werden wir einen Bootloader benötigen. [http://www.gnu.org/software/grub/ GNU GRUB] ist der empfohlene Bootloader. Alternativ kannst Du [http://lilo.go.dyndns.org/ LILO] wählen. Die gezeigte GRUB Konfiguration (/boot/grub/menu.lst) sollte ausreichend sein. Das einzige, was Du ändern könntest, ist die Auflösung der Konsole. Füge zur ersten Kernel-Linie eine vga=<number> hinzu. (Eine Tabelle mit Auflösungen und entsprechenden Nummern ist in der menu.lst abgedruckt.) <br />
title Arch Linux (Main)<br />
root (hd0,0)<br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro vga=773<br />
initrd /boot/kernel26.img<br />
Das Argument "vga=773" wird einen 1024x768 framebuffer mit 256 Farbtiefe ergeben.<br />
<br />
Verlasse die Installation und gebe reboot ein.<br />
<br />
Wenn alles gut geht, wird Dein neues Arch Linux System nun starten und mit einer Login-Eingabe enden (Du solltest in Deinem BIOS die Startreihenfolge zurückstellen auf das Starten von Festplatte).<br />
<br />
Herzlichen Glückwunsch und willkommen zu Deinem schönen neuen Arch Linux Basissystem!<br />
<br />
==Konfiguration des Basis-Systems ==<br />
Dein neues Arch Linux Basissystem ist nun eine funktionelle GNU/Linux-Umgebung, die auf die Anpassung wartet. Von hier aus kannst Du diese Installation in all das verwandeln, was Du wünscht oder für Deine Vorhaben brauchst.<br />
<br />
Fangen wir an.<br />
-----<br />
Login mit Deinem root Account. Wir werden nun pacman konfigurieren, das System updaten und dann einen gewöhnlichen Benutzer hinzufügen.<br />
<br />
<br />
===Einstellen des Netzwerkes (falls nötig)===<br />
''Dieser Abschnitt wird Dir dabei helfen, die meisten Arten von Netzwerken zu konfigurieren, falls die Installations-Skripte mit den auto-Konfigurationen für Dich nicht funktionieren.''<br />
-----<br />
Falls alles gut verlief, solltest Du ein funktionierendes Netzwerk haben. Versuche www.google.com zu pingen, um es zu bestätigen:<br />
ping -c 3 www.google.com<br />
<br />
''Falls Du erfolgreich eine Netzwerkverbindung hergestellt hast, fahre mit'' [http://wiki.archlinux.org/index.php/Beginners_Guide_%28Deutsch%29#Updaten.2C_Synchronisieren_und_Upgraden_des_Systems_mit_pacman ''Updaten, Synchronisieren und Upgraden des Systems mit pacman''] fort.<br />
<br />
Falls deine Internetverbindung seltsam langsam ist, versuche es mit dem [http://wiki.archlinux.de/title/IPv6_-_Modul_deaktivieren deaktivieren von IPv6]<br />
<br />
Falls nach dem Pingen ein "unknown host" Fehler auftrat, könntest Du schließen, dass Dein Netzwerk nicht konfiguriert ist. Du solltest zunächst die folgenden Dateien auf Integrität und saubere Einstellungen untersuchen:<br />
<br />
'''/etc/rc.conf''' # Achte speziell in den HOSTNAME= und NETWORKING Abschnitten auf Tippfehler und andere Fehler.<br />
<br />
'''/etc/hosts''' # Checke nochmals das Format. (Siehe oben.)<br />
<br />
'''/etc/resolv.conf''' # Falls Du eine statische IP benutzt. Falls Du DHCP benutzt, wird diese Datei dynamisch erstellt und standardmäßig zerstört. Aber sie kann für Deine Einstellungen geändert werden. (Siehe [[Network]].)<br />
<br />
Fortgeschrittene Anweisungen, das Netzwerk einzustellen, können im [[Network]] Artikel gefunden werden.<br />
<br />
====LAN über Kabel====<br />
<br />
Überprüfe Dein Ethernet mit<br />
ifconfig<br />
Dort solltest Du einen Eintrag für eth0 sehen. Falls benötigt, kannst Du eine neue statische IP mit<br />
ifconfig eth0 <ip address> netmask <netmask> up <br />
und die Standard-Gateway mit <br />
route add default gw <ip address of the gateway><br />
setzen.<br />
Kontrolliere, ob /etc/resolv.conf Deinen DNS Server enthält und füge ihn hinzu, falls er fehlt.<br />
Kontrolliere das Netzwerk nochmals mit ping www.google.de. Falls nun alles funktioniert, passe /etc/rc.conf wie in Abschnitt 2.6 besprochen an (statische IP). Falls Du einen DHCP Server/Router in Deinem Netzwerk hast, versuche<br />
dhcpcd eth0<br />
Falls dies funktioniert, passe /etc/rc.conf an, wie es in Abschnitt 2.6 beschrieben wird (dynamische IP).<br />
<br />
====Kabelloses LAN====<br />
Detailiertes Setup-Wiki: [[Wireless Setup]]<br />
<br />
====Analoges Modem====<br />
Um ein zu Hayes kompatibles, externes analoges Modem verwenden zu können, muss zumindest das Paket ppp installiert werden. Bearbeite die Datei /etc/ppp/options mit Hilfe von man pppd, um sie Deinen Bedürfnissen anzupassen. Du wirst ein Chat-Skript definieren müssen, mit welchem Du nach dem ersten Einwählen Deinem Internetanbieter den Benutzernamen und das Passwort übermittelst. Die Hilfeseiten (Manpages) von pppd und chat liefern Beispiele, die ausreichend sein sollten, eine Verbindung zum Laufen zu bekommen (falls Du entweder erfahren genug oder bissig genug bist). Mit udev sollten deine seriellen Schnittstellen normalerweise /dev/tts/0 und /dev/tts/1 sein.<br />
Tipp: Lese [[Dialup without a dialer HOWTO]].<br />
<br />
Anstatt eine ruhmreiche Schlacht nur mit pppd zu schlagen, kannst Du auch wvdial oder ein anderes Programm installieren, um den Setup-Prozess erheblich zu vereinfachen. Falls Du ein so genanntes WinModem benutzt, welches hauptsächlich eine PCI-Pluginkarte ist und als internes Modem funktioniert, solltest Du die Informationen auf der [http://www.linmodems.org/ LinModem] Homepage beachten.<br />
<br />
====ISDN====<br />
<br />
Die ISDN-Einrichtung erfolgt in drei Schrtitten:<br />
# Installiere und konfiguriere die Hardware<br />
# Installiere und konfiguriere die ISDN Dienstprogramme<br />
# Füge die Einstellungen Deines Netzbetreibers hinzu.<br />
<br />
Die derzeitigen Standardkernel von Arch Linux beinhalten die nötigen IDSN-Module; dies bedeutet, dass Du normalerweise keinen neuen Kernel kompilieren musst (außer Du benutzt ziemlich komische ISDN-Geräte). Nachdem die ISDN-Karte physisch in den Computer eingebaut bzw. eingesteckt ist, kannst Du versuchen die Module mit modprobe zu laden. Fast alle passiven ISDN PCI Karten werden vom hisax Modul angesprochen, welches zwei Parameter braucht: Typ und Protokol. Das Protokol muss auf '1' gesetzt werden, wenn Dein Land den 1TR6-Standard verwendet; '2' steht für EuroISDN (EDSS1), gib '3' ein, falls Du an einen so genannten gemieteten Anschluß ohne D-Kanal angeschlossen bist und '4' steht für das US NI1 Protokol.<br />
<br />
Details über alle diese Einstellungen, und wie man sie einstellt, sind in der Kernel-Dokumentation, genauer im ISDN-Unterverzeichnis, sowie im Internet zu finden. Die Typ-Einstellung hängt von deiner Karte ab; eine Liste aller möglichen Typen kann in der README.HiSax Kernel-Documentation gefunden werden. Wähle Deine Karte und lade das Modul mit den angemessenen Optionen, wie z.B.:<br />
<br />
modprobe hisax type=18 protocol=2<br />
<br />
Dieser Befehl wird das hisax Modul für meine ELSA Quichstep 1000PCI Karte laden, welche in Deutschland mit dem EDSS1 Protocol benutzt wird. Hilfreiche Fehlerbehebungs-Angaben solltest Du in der Datei /var/log/everything.log finden, wo Du Deine Karte vorbereitet finden solltest. Bitte beachte, dass Du wahrscheinlich einige USB-Module laden musst, bevor ein externer USB ISDN Adapter verwendet werden kann.<br />
<br />
Wenn Du einmal rausgefunden hast, mit welchen Einstellungen Deine Karte funktioniert, kannst Du die Modul-Optionen zur Datei /etc/modprobe.conf hinzufügen. In unserem Beispiel sähe es so aus:<br />
<br />
alias ippp0 hisax<br />
options hisax type=18 protocol=2<br />
<br />
Alternativ kannst Du hier nur die Optionen-Linie hinzufügen und hisax zum MODULES-Array in rc.conf hinzufügen. Es ist wirklich Deine Wahl, jedoch hat obiges Beispiel den Vorteil, das das Modul erst geladen wird, wenn es wirklich benötigt wird.<br />
<br />
Jetzt solltest Du funktionierende, unterstützte Hardware haben. Jetzt brauchen wir die Programme, um sie nutzen zu können!<br />
<br />
Installiere das Paket isdn4k-utils und lese die Manpage zu isdnctrl; dies wird Dir beim Start helfen. Etwas weiter unten in der Manpage wirst Du Erklärungen finden, wie man eine Konfigurationsdatei erstellt, die von isdnctrl analysiert werden kann; außerdem gibt es dort einige hilfreiche Setup-Beispiele. Bitte beachte, dass Du über ein Komma getrennt Dein SPID zu deiner MSN Einstellung hinzufügen musst, wenn Du US NI1 benutzt.<br />
<br />
Nach der Konfiguration Deiner ISDN Karte mit Hilfe von isdnctrl sollte es nun möglich sein, die Maschine, die im PHONE_OUT Parameter angegeben ist, anzuwählen; jedoch wird die Authentifizierung des Benutzernamens und Passwortes fehlschlagen. Um dieses Problem zu beheben, füge der Datei /etc/ppp/pap-secrets ooder /etc/ppp/chap-secrets Dein Benutzernamen und Passwort hinzu, als ob Du eine normale analoge PPP-Verbindung einstellen würdest (abhängig vom Protokoll, welches Dein Netzanbieter benutzt). Platziere die Daten bei Zweifeln in beiden Dateien.<br />
<br />
Wenn alles korrekt eingestellt wurde, solltest Du nun mit Hilfe des Befehles (als root ausgeführt)<br />
isdnctrl dial ippp0<br />
eine Dial-Up Verbindung aufbauen können. Vergiss bei Problemen nicht, die Log-Dateien zu checken!<br />
<br />
====DSL (PPPoE)====<br />
<br />
Diese Anweisungen sind nur dann relevant für Dich, wenn der PC selbst die Verbindung zum Netzbetreiber managen soll. Falls Du einen separaten Router für diese Aufgabe hast, musst Du nur den richtigen default gateway einrichten.<br />
<br />
Vor der Benutzung der DSL-Verbindung muss die Netzwerkkarte, die sich mit dem DSL-Modem verbinden soll, in den Computer eingesetzt werden. Nachdem die neu installierte Netzwerkkarte in den Dateien modules.conf/modprobe.conf oder dem MODULES-Array aufgenommen wurde, solltest Du das Programm rp-pppoe installieren und das Skript pppoe-setup ausführen, um die Verbindung einzustellen. Nachdem alle Daten eingegeben wurden, kasst Du mit Hilfe dieser Befehle jeweils die Verbindung<br />
<br />
/etc/rc.d/adsl start<br />
<br />
starten bzw.<br />
<br />
/etc/rc.d/adsl stop<br />
<br />
stoppen. Das Setup ist normalerweise recht einfach und geradlinig, aber lese ruhig die Manpages für Tipps. Wenn Du Dich beim Systemstart automatisch ins Internet einwählen willst, füge adsl zu Deinem DAEMONS Array hinzu.<br />
<br />
==Updaten, Synchronisieren und Upgraden des Systems mit [[pacman]]==<br />
Nun werden wir mit Hilfe von [[pacman]] das System updaten. <br />
<br />
=====Was ist pacman ?=====<br />
[[Pacman]] ist der '''pac'''kage '''man'''ager von Arch Linux. Pacman ist in C geschrieben, er ist schnell, einfach und extrem mächtig. Er managt das gesamte Pakete-System und verwaltet die Installation, das Löschen, das Downgraden von Paketen (über den Cache); er ist auch zuständig für die Verwaltung selbst kompilierter Programme, das automatische Lösen von Paket-Abhängigkeiten, das entfernte und lokale Suchen nach Paketen und sehr viel mehr. Wir werden pacman benutzen, um Softwarepakete von Servern aus dem Internet (Repositories) herunterzuladen und sie auf dem System zu installieren.<br />
<br />
Pacman ist das wichtigste Werkzeug im Arch Linux Werkzeugkoffer, um das Basissystem oder was auch immer Du willst, zu formen.<br />
<br />
===Konfiguration von pacman===<br />
=====/etc/pacman.conf=====<br />
pacman wird jedesmal, wenn er involviert ist, die Datei /etc/pacman.conf lesen. Diese Einstellungsdatei ist in Sektionen oder Repositories aufgeteilt. Jede Sektion definiert ein Paketerepository, welches pacman zum Suchen nach Programmen nutzen kann. Eine Ausnahme ist der Optionen-Teil, der globale Optionen festlegt.<br />
nano -w /etc/pacman.conf<br />
Beispiel:<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/core/os/i686<br />
Include = /etc/pacman.d/core<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/extra/os/i686<br />
Include = /etc/pacman.d/extra<br />
#[unstable]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/unstable/os/i686<br />
#Include = /etc/pacman.d/unstable<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/community/os/i686<br />
Include = /etc/pacman.d/community<br />
Versichere Dich, dass das [community] Repo aktiviert ist (lösche den # vor den Zeilen "Include = /etc/pacman.d/community" und "[community]"). Arch's community repository bietet viele nützliche Programme.<br />
<br />
Die "Server =" Zeile, falls auskommentiert, wird dafür sorgen, dass der angegebene Server zuallererst abgesucht wird. Weitere Einstellungen für Repos sind unter /etc/pacman.d/ zu finden.<br />
<br />
====/etc/pacman.d/====<br />
Schnellere Server werden die Leistung von pacman erheblich verbessern, und somit auch Deine gesamte Arch Linux-Erfahrung.<br />
<br />
Benutze das Skript '''rankmirrors''', welches mit dem neusten pacman Paket geliefert wird, um die Server automatisch nach Schnelligkeit zu ordnen. <br />
<br />
''(EDIT: '''rankmirrors''' benoetigt Python)''<br />
pacman -Sy python<br />
Um zum nun die Server in der allgemeinen Mirrorlist zu sortieren, müsstest Du als root folgendes eingeben:<br />
rankmirrors /etc/pacman.d/mirrorlist<br />
<br />
Alternativ kannst Du die Datei /etc/pacman.d/mirrorlist von Hand editieren und die zu Dir nächsten Server an den Anfang der Liste verschieben. (Wenn Du nano benutzt: Alt+A startet das Auswählen einer Region, Pfeil nach unten markiert die Linien, Ctrl+K schneidet die angewählte Region aus und Ctrl+U fügt sie wieder ein). Wiederhole dies für alle Dateien in /etc/pacman.d/. Du kannst in diesen Einstellungsdateien mit verschiedenen Servern experimentieren. Wähle gut!<br />
<br />
==Updaten des Systems==<br />
Update, synchronisiere und '''upgrade''' Dein gesamtes System mit:<br />
pacman -Syu<br />
pacman wird nun die neusten Informationen über verfügbare Programme herunterladen und alle vorhandenen Upgrades vornehmen. (Du könntest an diesem Punkt dazu aufgefordert werden, pacman selbst upzudaten. Sage dazu yes und starte nach Update den Befehl pacman -Syu erneut.)<br />
<br />
=====''Beachte dies, falls ein größeres Kernel-Update vorkommt.''=====<br />
<br />
''Falls der Kernel einem größeren Update unterläuft, werden Module wie zum Beispiel ''' nvidia''' und '''madwifi''' (wird später installiert, falls nötig) unbenutzbar, da die neuen upgedateten Paketversionen solcher Module gegen den neueren Kernel gebildet wurden, aber Dein System derzeit einen älteren verwendet. Ein Neustart wird nötig sein.''<br />
<br />
=====Die Schönheit des rollenden Releases=====<br />
Denk daran, dass Arch eine '''rolling release''' Distribution ist. Dies bedeutet, dass es niemals einen Grund gibt, das System neu zu installieren oder aufwändige Systemneubauten durchzuführen, um die neuste Version zu haben. Von Zeit zu Zeit einfach '''pacman -Syu''' ausführen, und das System ist up-to-date und auf dem neusten Stand. Am Ende dieses Upgrades ist Dein System auf dem neusten Stand.<br />
<br />
=====Mit pacman vertraut werden=====<br />
Pacman ist der beste Freund eines Arch-Benutzers. Das Programm steuert jegliche Installation, Deinstallation und Aktualisierung von Software. Man sollte sich undbedingt mit den wichtigsten Funktionen vertraut machen. Die Handbuchseite erreichst Du über den Befehl:<br />
man pacman<br />
Der [[Pacman (Deutsch)]]-Eintrag im Wiki erklärt zudem die wichtigsten Befehle.<br />
<br />
===Füge einen Benutzer hinzu und setze Gruppen===<br />
Deine täglichen Arbeiten solltest Du nicht mit dem root-Account machen. Es ist mehr als nur schlechte Handhabung; es ist gefärlich. Root ist für administrative Aufgaben. Deshalb fügen wir nun einen normalen Benutzer hinzu:<br />
adduser<br />
Obwohl die meisten Standardeinstellungen in Ordnung sind, könntest Du storage, audio, video, optical and wheel zu Deinen weiteren Gruppen hinzufügen - besonders, wenn Du eine voll funktionsfähige Desktopumgebung haben willst.<br />
<br />
Gruppen und deren Benutzer werden hier definiert: /etc/group. <br />
<br />
Sie beinhalten:<br />
<br />
*audio - für Aufgaben, die Soundkarte und verwandte Software betrifft<br />
<br />
*wheel - zum Benutzen von sudo<br />
<br />
*storage - zum Managen von Speicherlaufwerken<br />
<br />
*video - für Videoaufgaben und 3d-Beschleunigung<br />
<br />
*optical - zum Managen von Aufgaben, welche die optischen Laufwerke betreffen<br />
<br />
*floppy - falls Zugang zu einer Diskette nötig ist<br />
<br />
*lp - zum Managen von Druckaufgaben<br />
<br />
Schau in den Eintrag [[Groups]], um zu verstehen, bei welchen Gruppen Du Mitglied werden musst.<br />
<br />
Du kannst Deinen benutzer auch so zu den gewünschten Gruppen hinzufügen (als root):<br />
usermod -aG audio,video,floppy,lp,optical,network,storage,wheel USERNAME<br />
Checke die Manpages für usermod und gpasswd für mehr Information.<br />
<br />
===grundlegende Dämonen===<br />
Hier, d.h. bevor man sich der grafischen Oberfläche und/oder Multimedia zuwendet, wäre möglicherweise ein guter Zeitpunkt, ein paar grundlegende Dämonen zu installieren. Man kann diese Arbeiten aber auch später nachträglich erledigen (siehe darum auch entsprechende und ausführlichere Abschnitte weiter hinten).<br />
pacman -S hal ntp fam<br />
Für Laptops auch:<br />
pacman -S acpi cpufreq<br />
cpufreq muss sehr wahrscheinlich in der Datei /etc/conf.d/cpufreq rechnerspezifisch konfiguriert werden.<br />
<br />
Diese Dämonen müssen nach der Installation in /etc/rc.conf eintragen werden, damit sie während des Bootens auch geladen werden.<br />
<br />
nano /etc/rc.conf<br />
DAEMONS=(syslog-ng network crond hal ntp fam)<br />
<br />
==Teil 2: Installation von X und Konfiguration von ALSA==<br />
===Installation und Konfiguration von X===<br />
Das X Window System (gemeinhin X11, oder einfach nur X) ist ein Netzwerk- und Anzeigeprotokoll, das das Darstellen von Fenstern auf Bildschirmen erlaubt. Es liefert das Standardwerkzeug, um graphische Benutzeroberflächen (graphical user interfaces oder GUIs) auf Unix-ähnlichen Betriebssystemen zu bilden.<br />
<br />
X bietet den grundlegenden Rahmen, oder die Grundfunktion, GUI Umgbungen zu bilden: zeichnen und bewegen von Fenstern auf dem Bildschirm sowie Interaktion mit einer Maus und/oder einer Tastatur. X ordnet nicht das Nutzer-Interface - individuelle Client-Programme bewerkstelligen dies.<br />
-----<br />
*''Notiz: Wenn Du planst, einen '''open-source''' Video-Treiber zu benutzen und 3d-Beschleunigung benötigst, wird empfohlen, die Library libgl vor Xorg zu installieren.''<br />
pacman -S libgl<br />
''(Proprietäre Video-Treiber liefern ihre eigenen gl Library Ausführungen.)''<br />
----- <br />
Nun werden wir mit Hilfe von pacman die Basis-Pakete von Xorg installieren. Dies ist der erste Schritt, eine GUI zu bilden.<br />
<br />
pacman -S xorg<br />
<br />
Jetzt haben wir die Basispakete, die wir zum Benutzen des X Servers brauchen. Nun solltest Du den Treiber Deiner Graphikkarte hinzufügen (z.B. xf86-video-<name>). Der einfachste Weg, X.org zu konfigurieren ist es, indem man die korrekten Treiberpakete zuerst installiert und dann /etc/X11/xorg.conf generiert, indem man ein autokonfigurations-Skript wie Xorg -configure benutzt.<br />
<br />
Wenn Du eine Liste aller '''open-source''' Videotreiber brauchst, mache:<br />
pacman -Ss xf86-video | less<br />
Falls Du nicht weißt, welche Graphikkarte Du benutzt, mache:<br />
lspci | grep VGA<br />
Dies ist eine Liste von '''open source''' Treibern und ihren korrespondierenden Chipsets.<br />
*'''xf86-video-apm''' Alliance ProMotion Videotreiber<br />
*'''xf86-video-ark''' ark Videotreiber<br />
*'''xf86-video-ati''' ati Videotreiber<br />
*'''xf86-video-chips''' Chips and Technologies Videotreiber<br />
*'''xf86-video-cirrus''' Cirrus Logic Videotreiber<br />
*'''xf86-video-dummy''' dummy Videotreiber<br />
*'''xf86-video-fbdev''' framebuffer Videotreiber<br />
*'''xf86-video-glint''' GLINT/Permedia Videotreiber<br />
*'''xf86-video-i128''' Number 0 i128 Videotreiber<br />
*'''xf86-video-i740''' Intel i740 Videotreiber<br />
*'''xf86-video-intel <strike>xf86-video-i810</strike>''' Intel i810/i830/i9xx Videotreiber<br />
*'''xf86-video-imstt''' Integrated Micro Solutions Twin Turbo Videotreiber<br />
*'''xf86-video-mga''' mga Videotreiber (Matrox Graphikadapter)<br />
*'''xf86-video-neomagic''' neomagic Videotreiber<br />
*'''xf86-video-nv''' nvidia nv Videotreiber<br />
*'''xf86-video-rendition''' Rendition Videotreiber<br />
*'''xf86-video-s3''' S3 Videotreiber<br />
*'''xf86-video-s3virge''' S3 Virge Videotreiber<br />
*'''xf86-video-savage''' savage Videotreiber<br />
*'''xf86-video-siliconmotion''' siliconmotion Videotreiber<br />
*'''xf86-video-sis''' SiS Videotreiber<br />
*'''xf86-video-sisusb''' SiS USB Videotreiber<br />
*'''xf86-video-tdfx''' tdfx Videotreiber<br />
*'''xf86-video-trident''' Trident Videotreiber<br />
*'''xf86-video-tseng''' tseng Videotreiber<br />
*'''xf86-video-unichrome''' Unichrome Videotreiber<br />
*'''xf86-video-v4l''' v4l Videotreiber<br />
*'''xf86-video-vesa''' vesa Videotreiber<br />
*'''xf86-video-vga''' VGA 16 color Videotreiber<br />
*'''xf86-video-via''' via Videotreiber<br />
*'''xf86-video-vmware ''' vmware Videotreiber<br />
*'''xf86-video-voodoo ''' voodoo Videotreiber<br />
<br />
* Beachte, dass der '''vesa''' Treiber der allgemeinste ist und mit fast jedem modernem Chipset funktionieren sollte. Falls Du keinen passenden Treiber für Dein Videochipset finden kannst, '''sollte''' vesa funktionieren.<br />
<br />
* Falls Du einen nVIDIA oder ATI Videoadapter hast, könntest Du wünschen, die proprietären nVIDIA oder ATI Treiber zu installieren. '''Die Installation propretärer Videotreiber wird weiter unten behandelt''', unter [http://wiki.archlinux.org/index.php/Beginners_Guide_%28Deutsch%29#Verwendung_von_propri.C3.A4teren_Grafikkarten-Treibern_.28nVIDIA.2C_ATI.29 Verwendung von proprietären Graphikkarten-Treibern (nVIDIA, ATI)]<br />
<br />
Benutze pacman, um den passenden Videotreiber für Deine Videokarte/onboard Video zu installieren, z.B.:<br />
pacman -S xf86-video-intel<br />
(für den intel 810 chipset Treiber.)<br />
<br />
*Falls Du immer noch nicht weißt, welchen Videotreiber Du installieren sollst, kannst Du die gesamte Videotreiber-Pakete-Gruppe installieren, und dem Xorg -configure Skript erlauben den Treiber in xorg.conf festzulegen:<br />
pacman -S xorg-video-drivers<br />
<br />
*Eine detailierte Anleitung zum Xorg Server findet ihr auch hier: http://wiki.archlinux.org/index.php/Xorg.<br />
<br />
==Erstellen von /etc/X11/xorg.conf==<br />
=====Wozu dient /etc/X11/xorg.conf?=====<br />
/etc/X11/xorg.conf ist die '''Einstellungs-Datei''' für das '''X''' Window System, die Grundlage der graphischen Benutzer-Oberfläche ('''GUI'''). Es ist eine simple Textdatei die in Abschnitte und Unterabschnitte unterteilt ist. Wichtige Abschnitte sind ''Files, InputDevice, Monitor, Modes, Screen, Device, und ServerLayout''. Die Abschnitte können in beliebiger Reihenfolge auftreten und es kann mehrere gleiche Abschnitte geben. Als Beispiel sei die mehrfache Angabe eines monitor Abschnitts angeführt, einmal der Video Projektor und einmal der LCD-Bildschirm des Laptops.<br />
------<br />
Standardmäßig existiert keine Xorg Einstellungs-Datei und mit den neuesten Xorg-Versionen wirst du auch keine brauchen, ''wenn'' die automatische Erkennung ''ausgezeichnet funktioniert'' und du darüberhinaus keine Features wie aiglx oder so brauchst.<br />
<br />
''Die meisten Leute werden dennoch eine Xorg Einstellungs-Datei anlegen wollen oder brauchen.''<br />
<br />
*Benutze das Xorg -configure Skript um eine Standard-Konfiguration zu erstellen:<br />
Xorg -configure<br />
Verschiebe die erstellte Datei nach /etc/X11:<br />
mv /root/xorg.conf.new /etc/X11/xorg.conf<br />
<br />
Öffne die Datei:<br />
nano /etc/X11/xorg.conf<br />
<br />
<br />
Vergewissere dich dass das Xorg -configure Skript deine Grafikkartentreiber richtig erkannt hat z.B.:<br />
Section "Device"<br />
Driver "i810"<br />
<br />
<br />
Vergewissere dich dass die Spezifikationen für ''horizontal sync'' und ''vertical refresh'' unter dem Abschnitt "Monitor" vorhanden sind. Wenn das nicht der Fall ist, füge sie hinzu:<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
HorizSync 30.0 - 130.0 # Safe for LCD's<br />
VertRefresh 50.0 - 100.0 # Safe for LCD's and most CRT's.<br />
EndSection<br />
(Sind dir deren Werte unbekannt, schlag im entsprechendem Handbuch nach.)<br />
<br />
<br />
Stell die standardmäßige Farbtiefe im Abschnitt "Screen" ein:<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
(In den meisten Fällen wird hier der Wert 24 verwendet (True Color).)<br />
<br />
<br />
Weiters füge die erwünschten (und möglichen) Auflösungs-Modi in den Unterabschnitt "Display" ein. Das solltst du zumindest für die Farbtiefe 24 tun z.B.:<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
Modes "1024x768" "800x600" "640x480"<br />
Fahre fort mit einem [http://wiki.archlinux.org/index.php/Beginners_Guide_%28Deutsch%29#Simple_baseline_X_test Einfachen X server test] oder folgenden Abschnitten zur proprietären Treiber Einrichtung.<br />
<br />
===Verwendung von propriäteren Grafikkarten-Treibern (nVIDIA, ATI)===<br />
Du hast die Wahl, propriätere Treiber von ATI oder nVIDIA zu verwenden. <br />
====nVIDIA Grafikkarte====<br />
Die propriäteren nVIDIA Treiber haben den Ruf, ausgezeichnet zu funktionieren und bieten ungeschlagene 3D Leistung.<br />
<br />
Bevor du deine Grafikkarte konfigurierst, musst du herausfinden, welcher Treiber der Passende ist. Arch besitzt zur Zeit 3 verschiedene Treiber, welche einer bestimmten Untergruppe von Grafikkarten entsprechen: <br />
<br />
'''1. nvidia-71xx''' ''für sehr alte Karten wie TNT und TNT2''<br />
<br />
'''2. nvidia-96xx''' ''für etwas neuere Karten bis inklusive GF 4''<br />
<br />
'''3. nvidia''' ''für die neueren Grafikkarten ab GF 4''<br />
<br />
Sieh auf der nVIDIA-Homepage nach, welcher Treiber für deine Grafikkarte geeignet ist. Sie unterscheiden sich ausschließlich in der Installation, die Konfiguration ist für alle drei Treiber gleich.<br />
<br />
Installiere die entsprechenden nVIDIA Treiber, z.B.: <br />
pacman -S nvidia <br />
<br />
Das nVIDIA Paket inkludiert ein Tool, um die existierende /etc/X11/xorg.conf für die Benutzung des nVIDIA Treibers zu modifizieren:<br />
nvidia-xconfig<br />
<br />
Weiterhin gibt es mehrere Optionen, die die Beschaffenheit der xorg.conf genauer spezifizieren.<br />
Als Beispiel,<br />
nvidia-xconfig --composite --add-argb-glx-visuals<br />
<br />
Für weitere Informationen, siehe nvidia-xconfig(1).<br />
<br />
Einige nützliche xorg-Tweaks im ''device'' Abschnitt (Warnung: systemabhängig):<br />
Option "RenderAccel" "true"<br />
Option "NoLogo" "true"<br />
Option "AGPFastWrite" "true"<br />
Option "EnablePageFlip" "true"<br />
Vergewissere dich, dass alle dri-Aufführungen auskommentiert sind:<br />
# Load "dri"<br />
Vergewissere dich nochmals, dass die in der /etc/X11/xorg.conf eingetragenen ''depth'', ''horizontal refresh'', ''vertical refresh'', und ''modes'' Werte richtig sind.<br />
<br />
Logout und login. <br />
<br />
Starte den X server als normaler User, um die Konfiguration zu testen:<br />
startx<br />
<br />
Weiterführende Hilfestellung für die nVIDIA Konfiguration gibt es im [[NVIDIA]] Artikel.<br />
<br />
====ATI Grafikkarte====<br />
Besitzer von ATI Grafikkarten haben die Wahl zwischen 2 verschiedenen Treibern. Wenn du nicht sicher bist welchen du nehmen sollst, teste bitte zuerst den Open-Source Treiber. Dieser erfüllt die meisten Bedürfnisse und ist allgemein weniger problematisch.<br />
<br />
Installiere den '''Open-Source''' ATI Treiber mit<br />
pacman -S xf86-video-ati<br />
Momentan ist die Leistung des Open-Source Treibers allerdings noch nicht so gut, wie die des proprietären. Außerdem fehlen ihm die Unterstützung von TV-out, dual link DVI und möglicherweise noch weitere Features. Andererseits unterstützt er aber [[AIGLX]] und hat auch eine bessere Unterstützung für Multimonitorbetrieb.<br />
<br />
Installiere den '''proprietären''' ATI Treiber mit<br />
pacman -S catalyst<br />
Mit dem aticonfig Tool kannst du nun die xorg.conf bearbeiten. Wichtig: Der proprietäre Treiber unterstützt kein [[AIGLX]]. Um [[Compiz]] oder [[Beryl]] mit diesem Treiber zu nutzen, müsstest du stattdessen [[XGL]] verwenden.<br />
<br />
Weiterführende Hilfestellung für die ATI Konfiguration gibt es im [[ATI]] Artikel.<br />
<br />
===Simple baseline X test===<br />
<br />
An diesem Punkt angelangt, solltest du sowohl X.org als auch einen passenden Treiber für deine Grafikkarte installiert haben, sowie eine xorg.conf erstellt haben. Wenn du deine Konfiguration testen willst bevor du eine Desktopumgebung installierst, kannst du dies mit dem Befehl '''xterm''' machen. Xterm ist ein einfacher Terminal Emulator der in der X Umgebung läuft. Es wurde als Bestandteil der xorg Pakete installiert und dient uns nun dazu zu überprüfen, ob dein Grafikkartentreiber und die /etc/X11/xorg.conf richtig konfiguriert sind.<br />
(Alternativ könntest du auch auf die /etc/X11/xorg.conf verzichten und testen ob die automatische Erkennung von X bei dir zufriedenstellend funktioniert.)<br />
pacman -S xterm<br />
===== ~/.xinitrc =====<br />
Bearbeite die Datei /home/Nutzername/.xinitrc '''als normaler Nutzer''', um zu bestimmen, welches X-Server-Ereignis durch den 'startx'-Befehl aufgerufen wird:<br />
<br />
su DeinNutzername<br />
<br />
nano ~/.xinitrc<br />
<br />
und füge hinzu (oder kommentiere aus):<br />
<br />
exec xterm<br />
<br />
Es sollte dann so aussehen:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
exec xterm<br />
# exec wmaker<br />
# exec startkde<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
''Stell sicher, dass nur eine '''exec'''-Zeile in Deiner ~/.xinitrc auskommentiert ist!''<br />
<br />
Wenn Du keine ~/.xinitrc hast, kannst Du mit der obenstehenden Information eine erstellen, oder die Beispieldatei aus /etc/skel/ in dein Home-Verzeichnis kopieren:<br />
cp /etc/skel/.xinitrc ~/<br />
*ANMERKUNG: ''Wenn die Datei ~/.xinitrc fehlt, wird automatisch auf /etc/X11/xinit/xinitrc zurückgegriffen. Diese Datei nutzt standardmäßig TWM und Xterm.''<br />
<br />
Starte den X-Server als normaler Nutzer mit dem Befehl:<br />
<br />
startx<br />
Nun sollte sich eine xterm-Sitzung öffnen. Du kannst den X-Server mit der Kombination STRG+Alt+Backspace verlassen, oder indem du "exit" eingibst. Wenn Du Probleme hast, X zu starten, kannst Du in der Datei /var/log/Xorg.0.log nach Fehlern suchen, oder die Ausgabe der Konsole betrachten, von der aus Du X gestartet hast.<br />
<br />
Weitere Angaben zur Konfiguration von X finden sich im Eintrag [[Xorg]].<br />
<br />
===Konfiguration der Audiokarte mit Alsamixer===<br />
Die Advanced Linux Sound Architecture (ALSA) ist eine Komponente im Linux Kernel die das Open Sound System (OSS) ersetzen soll. Neben der Bereitstellung von Soundtreibern bündelt ALSA auch eine "user space library" für Programmierer die auf eine höherliegende API zugreifen möchten und nicht direkt auf die Befehle des Kernels zugreifen möchten. Das alsa-utils Paket enthält alsamixer, welche die Einstellungen deiner Soundkarte über die Konsole zulassen. (Möglicherweise wirst du später alsamixer von deiner grafischen Umgebung ausführen.)<br />
<br />
-----<br />
Deine Soundkarte sollte bereits funktionieren, möglicherweise hörst du aber nichts, da sie standardmäßig stummgeschalten ist.<br />
<br />
Installiere das alsa-utils Paket:<br />
pacman -S alsa-utils<br />
Hast du deinen Benutzer bereits zur Audio-Gruppe hinzugefügt? Wenn nicht, ist es jetzt an der Zeit da sonst nur root Musik hören kann. Führe als root folgenden Befehl aus:<br />
gpasswd -a yourusername audio<br />
Führe folgenden Befehl als normaler Benutzer aus:<br />
alsamixer<br />
Aktiviere die Master und PCM Kanäle indem du mit den Cursortasten nach links oder rechts scrollst und dann '''M''' drückst. Passe dann die Lautstärke mit der Cursor-Hinauf-Taste. (70-90 sollte eine sichere Einstellung sein). Verlasse den Alsamixer indem du ESC drückst.<br />
<br />
<br />
Führe dann alsactl als root aus. Das wird die Datei '/etc/asound.state' erzeugen in der die alsamixer Einstellungen gespeichert sind.<br />
alsactl store<br />
<br />
Füge danach den alsa ''daemon'' zu den DAEMONS in deiner /etc/rc.conf damit die gespeicherten Mixereinstellungen beim Booten geladen werden.<br />
nano /etc/rc.conf<br />
DAEMONS=(syslog-ng network crond '''alsa''')<br />
''Beachte das der alsa daemon lediglich die Lautstärken beim Booten wiederherstellt. Er ist getrennt von der alsa sound library (und der Kernel level API).''<br />
<br />
<br />
Weitere Information findest du im [[ALSA]]-Eintrag des Wikis.<br />
<br />
==Teil 3: Installation und Konfiguration einer Desktopumgebung ==<br />
Wenn du zwei Leute nach der besten Desktopumgebung oder dem besten Fenstermanager fragst, wirst du sechs verschiedene Antworten bekommen. Wähle die beste nach ''deinem'' Geschmack und deinen Bedürfnissen.<br />
* Wenn du etwas vollfunktionsfähiges und ähnlich wie Windows oder Mac OS X willst, dann ist '''KDE''' eine gute Wahl<br />
* Wenn du etwas minimalistischeres möchtest, welches eher dem K.I.S.S.-Prinzip folgt, dann ist '''GNOME''' eine gute Wahl<br />
* Wenn du einen etwas älteren Computer hast, dann ist '''xfce4''' eine gute Wahl, die dir immer noch eine komplette Desktopumgebung bereitstellt.<br />
* Wenn du etwas noch abgespeckteres möchtest, dann ist vielleicht '''openbox, fluxbox, windowmaker, twm, fvwm2 oder ähnliches''' das Richtige für dich. (Achtung: Diese Programme stellen lediglich Fenstermanager und keine kompletten Desktopumgebungen dar.)<br />
* Wenn du etwas komplett anderes anderes ausprobieren möchtest, versuche es mit '''ion, wmii oder dwm'''.<br />
<br />
<br />
===Schriftarten installieren===<br />
An diesem Punkt möchtest du vielleicht ein paar gutaussende Schriftarten installieren, '''bevor''' du eine Desktopumgebung oder Fenstermanager installierst. Dejavu und bitstream sind Pakete mit einigen netten Schriftarten. Für einige Websiten brauchst du vielleicht die Microsoft Schriftarten auch.<br />
<br />
Installiere sie mit:<br />
pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<br />
<br />
===GNOME===<br />
====Über GNOME====<br />
GNOME steht für '''G'''NU '''N'''etwork '''O'''bject '''M'''odel '''E'''nvironment. Das GNOME-Projekt bietet zwei Dinge: The GNOME-Desktopumgebung, ein intuitiver und attraktiver Desktop für Endnutzer und die GNOME Entwicklerplattform, ein erweitertes Framework, das erlaubt Programme zu erstellen, die sich in den Rest des Desktop integrieren.<br />
<br />
====Installation====<br />
Installiere die gesamte GNOME-Desktopumgebung mit:<br />
pacman -S gnome gnome-extra<br />
Es ist eine sichere Wahl alle Pakete zu installieren.<br />
Alternativ kannst du ein abgespecktes GNOME installieren:<br />
pacman -S gnome<br />
<br />
=====Nützliche Daemons für GNOME=====<br />
Ein Daemon ist ein Programm das im Hintergrund läuft und auf bestimmte Ereignisse wartet und Dienste anbietet. Der '''hal''' daemon, neben anderen Dingen, automatisiert das mounten von Festplatten, optischen Laufwerken und USB Laufwerken um auf sie in der GUI darauf zugreifen zu können. Der '''fam'' daemon erlaubt eine Echtzeitrepräsentation von Dateiänderungen in der GUI, kürzlich installierte Programme oder Änderungen am Dateisystem. Sowohl der '''hal''' als auch '''fam''' macht das Leben für GNOME-Nutzer einfacher. hal und fam werden automatisch mit dem GNOME-Paket mitinstallieret, müssen aber aufgerufen werden um nützlich zu werden.<br />
<br />
<br />
Eventuell möchtest du einen grafischen Loginmanager. Für GNOME-Nutzer empfiehlt sich '''gdm'''. Instaliere gdm mit:<br />
pacman -S gdm<br />
Du willst ziemlich sicher den '''hal''' und '''fam''' daemon.<br />
<br />
Starte hal und fam:<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
<br />
Füge sie zur DAEMONS-Sektion in deiner /etc/rc.conf hinzu, damit sie beim Booten automatisch ausgeführt werden:<br />
nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond alsa '''hal fam gdm''')<br />
(Wenn du es lieber möchtest dich in der Konsole einzuloggen und X lieber manuell startest, dann lasse gdm weg.)<br />
<br />
====~/.xinitrc====<br />
<br />
Diese Konfigurationsdatei beinhaltet was passieren soll wenn du 'startx' ausführst.<br />
<br />
Ändere deine /home/username/.xinitrc um GNOME zu verwenden:<br />
<br />
nano ~/.xinitrc<br />
<br />
Kommentiere das 'exec gnome-session' aus. Das Ganze sollte dann ungefähr so aussehen:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
#exec xterm<br />
#exec wmaker<br />
# exec startkde<br />
exec gnome-session<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
Wenn du keine ~/.xinitc hast, erstelle einfach eine mit dem obigen Inhalt or kopiere die Beispieldatei von /etc/skel/ in dein Home-Verzeichnis:<br />
cp /etc/skel/.xinitrc ~/<br />
Achte darauf das du nur eine unkommentierte '''exec'''-Zeile in deiner ~/.xinitrc hast.<br />
<br />
Wechsle zu einem normalen Benutzer:<br />
su username<br />
<br />
Und teste es mit:<br />
startx<br />
<br />
Wahrscheinlich möchtest du ein Terminal und einen Editor installieren. Zum Beispiel geany und gnome-terminal (Teil des gnome-extra Pakets):<br />
pacman -S geany gnome-terminal<br />
<br />
====Eye Candy====<br />
Möglicherweise findest du das GNOME Erscheinungsbild und die Icons nicht besonders attraktiv. Ein hübsches GTK-Thema ist murrine. Installiere es mit:<br />
pacman -S gtk-engine-murrine<br />
und wähle es unter System->Einstellungen->Erscheinungsbild. Mehr Themen, Icons und Wallpaper findest du unter [http://www.gnome-look.org Gnome Look].<br />
<br />
Weitere Informationen und Anweisungen zum Installieren und Konfigurieren vom GNOME findest du im [[Gnome]]-Artikel.<br />
<br />
===KDE===<br />
====Über KDE====<br />
KDE steht für '''K''' '''D'''esktop '''E'''nvironment. KDE ist eine mächtige freie grafische Desktop-Umgebung für GNU/Linux und UNIX Computer. Es kombiniert Einfachheit, Funktionalität und ein außergewöhnliches grafisches Design mit der technischen Überlegenheit von UNIX-ähnlichen Betriebssystemen.<br />
<br />
====Installation====<br />
Arch bietet verschiedene Versionen von KDE: '''kde, kdebase, und KDEmod'''. Wähle '''einen''' der folgenden und fahre mit '''"Nützliche KDE Daemons"''' fort:<br />
'''1.)''' Das Paket '''kde''' ist die komplette vanilla KDE, ~300MB.<br />
pacman -S kde<br />
'''2.)''' Das Paket '''kdebase''' ist eine abgespeckte Version mit weniger Anwendungen, ~80MB.<br />
pacman -S kdebase<br />
'''3.)''' Zuletzt gibt es noch '''KDEmod''' welches ein Arch Linux exklusiver, community gesteuerten System ist, welches verändert wurde um höchstmögliche Performance und Modularität herzustellen. Die Website des KDEmod-Projekts kann unter [http://kdemod.ath.cx/ http://kdemod.ath.cx/] gefunden werden. KDEmod ist extrem schnell und bietet ein hübsches angepasste Erscheinungsbild.<br />
<br />
====Nützliche KDE Dämonen====<br />
<br />
KDE erfordert den Dämon '''hal''' ('''H'''ardware '''A'''bstraction '''L'''ayer). Der '''kdm'''-Dämon ist der '''K''' '''D'''isplay '''M'''anager, der ein '''graphisches Einloggen''' erlaubt, wenn dies gewünscht wird.<br />
<br />
Oben wurde bereits gesagt, dass ein Dämon ein Programm ist, das im Hintergrund läuft. Es wartet auf bestimmte Ereignisse und bietet dann passende Dienste an. Der HAL-Dämon wird - unter anderem - das Einhängen von Festplatten, optischen Laufwerken sowie USB_platten und -Sticks automatisieren, so dass sie unter einer grafischen Nutzeroberfläche angesprochen werden können. '''hal''' erleichtert das Leben des KDE-Nutzers beträchtlich. Bei der Installation von KDE werden die Pakete für hal und kdm automatisch nachgezogen, müssen jedoch aktiviert werden.<br />
<br />
Starte hal:<br />
<br />
/etc/rc.d/hal start<br />
<br />
*'''ANMERKUNG:''' ''Der hal-Dämon wird den dbus-Dämon automatisch starten.''<br />
Bearbeite die DAEMONS-Sektion in deiner /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Füge '''hal''' deiner DAEMONS-Sektion hinzu, damit sie beim Bootprozess aufgerufen werden. Wenn du eine grafische Anmeldung bevorzugst, füge auch '''kdm''' hinzu: <br />
DAEMONS=(syslog-ng '''hal''' network crond alsa '''kdm''')<br />
*Diese Methode wird das System in Runlevel 3 starten (/etc/inittab default, multiuser mode), und dann KDM als Dämon aufrufen. <br />
<br />
*Manche Nutzer bevorzugen eine andere Methode, um einen Display-Manager wie KDM beim Booten zu starten. Diese nutzt /etc/inittab runlevel5. Siehe dazu [[http://wiki.archlinux.org/index.php/Einen_Anmeldungsmanager_hinzuf%C3%BCgen_%28KDM%2C_GDM%2C_oder_XDM%29%2C_der_sich_automatisch_beim_Systemstart_%C3%B6ffnet_%28Deutsch%29]].<br />
<br />
*Wenn du es bevorzugst, dich auf Runlevel 3 in der '''Konsole''' anzumelden, und dann X per Hand in der 'Slackware-Tradition' zu starten: Lass kdm einfach weg, oder kommentiere es mit einem Ausrufungszeichen aus. ( ! )<br />
=====~/.xinitrc=====<br />
Diese Konfigurations-Datei kontrolliert, was beim eingeben von 'startx' erscheint.<br />
<br />
<br />
Bearbeite Dein /home/username/.xinitrc um KDE zu benutzen:<br />
nano ~/.xinitrc<br />
Unkommentiere die 'exec startkde' Linie, so dass es so aussieht:<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
#exec xterm<br />
#exec wmaker<br />
exec startkde<br />
# exec gnome-session<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
Falls Du kein ~/.xinitrc hast, kannst Du einfach eines mit obiger Informatin erstellen oder die Beispieldatei von /etc/skel/ in Dein Heimverzeichnis kopieren:<br />
cp /etc/skel/.xinitrc ~/<br />
''Beachte, nur eine unkommentierte '''exec''' Linie in Deinem ~/.xinitrc zu haben.''<br />
<br />
Wechsle zu Deinem normalen Benutzer:<br />
su username<br />
Versuche nun den X Server zu starten:<br />
startx<br />
Fortgeschrittene Anleitungen für die Installation und Konfiguration von KDE kann im Artikel [[KDE]] gefunden werden.<br />
<br />
Gratulation! Willkommen zu Deiner KDE Desktop Umgebung auf Deinem neuen Arch Linux System! Du könntest mit der Betrachtung von [http://wiki.archlinux.org/index.php/Beginners_Guide_%28Deutsch%29#Tricks_.26_abschliessende_Politur Tricks und abschliessende Politur] fortfahren, oder den Rest der folgenden Information lesen. Dich könnte auch der [[Post Installation Tips]] Wikiartikel interessiern.<br />
<br />
===Xfce===<br />
====Über Xfce====<br />
Xfce ist eine Desktop-Umgebung, genau wie GNOME oder KDE. Es enthält eine Reihe von Anwendungen wie Terminal, Window-Manager, Datei-Manager, Panele usw. XFCE wurde auf der Basis von GTK2 und bringt seine eigene Entwickler-Umgebung mit (Bibliotheken, Dämonen etc.), ähnlich wie die anderen großen DEs. Doch anders als GNOME oder KDE ist XFCE ausgesprochen schlank und orientiert sich im Design mehr an CDE als an Windows oder Mac. Es hat einen sehr viel langsameren Entwicklungs-Zyklus, ist jedoch ausgesprochen stabil und sehr, sehr schnell. Xfce eignet sich hervorragend für ältere Hardware.<br />
<br />
====Installation====<br />
Installiere xfce mit dem Befehl<br />
pacman -S xfce4 xfce4-goodies <br />
<br />
Wenn Du kdm oder gdm benutzt, sollte eine Auswahlmöglichkeit für eine Xfce-Sitzung erscheinen. Alternativ dazu kannst Du auch folgenden Befehl benutzen:<br />
startxfce4<br />
<br />
Weitere Anleitungen zur Installation und Konfiguration von Xfce enthält der Artikel [[Xfce]].<br />
<br />
===*box===<br />
====Fluxbox====<br />
Fluxbox © ist noch ein weiterer Fenstermanager für X.<br />
Es ist auf dem Code von Blackbox 0.61.1 basiert. Fluxbox schaut wie Blackbox aus und verwendet Styles, Farben, Fensterplatzierung und ähnliche Dinge genau wie Blackbox (100% Theme/Style- Kombatibilität).<br />
<br />
Installiere Fluxbox mit<br />
pacman -S fluxbox fluxconf<br />
<br />
Falls Du gdm/kdm benutzt, wird eine fluxbox-Session automatisch hinzugefügt. Ansonsten solltest Du das .xinitrc Deines Benutzers bearbeiten und dies dazufügen:<br />
exec startfluxbox <br />
<br />
Mehr Information enthält der [[Fluxbox]] Artikel.<br />
<br />
====Openbox====<br />
Openbox ist ein standartkonformer, schneller, leichtgewichtiger, erweiterbarer Fenstermanager.<br />
<br />
Openbox arbeitet mit Deinen Anwendungen und lässt Dich Deinen Desktop leichter handhaben. Dies ist so, weil der Ansatz zu seiner Entwicklung scheinbar der Gegensatz zum normalen Vorgehen bei Fenstermanagern war. Openbox wurde geschrieben um zuerst mit den Standards übereinzustimmen und richtig zu funktionieren. Erst danach hat sich das Entwicklerteam an das visuelle Interface gewandt.<br />
<br />
Openbox funktioniert vollständig als stand-alone Arbeitsumgebung, kann aber auch als drop-in Ersatz für die Standard-Fenstermanager in den GNOME oder KDE Desktopumgebungen dienen.<br />
<br />
Installiere Openbox mit<br />
pacman -S openbox obconf obmenu<br />
<br />
Wenn Openbox installiert ist, wirst Du eine Mitteilung bekommen, menu.xml & rc.xml nach ~/.config/openbox in Dein Heimverzeichnis zu verschieben:<br />
<br />
mkdir -p ~/.config/openbox/<br />
cp /etc/xdg/openbox/rc.xml ~/.config/openbox/<br />
cp /etc/xdg/openbox/menu.xml ~/.config/openbox/<br />
<br />
In der ersten Datei "rc.xml" kann man verschiedene Einstellungen für Openbox verändern (oder man verwendet OBconf). In "menu.xml" kann man Dein rechts-Klick Menü bearbeiten.<br />
<br />
Um sich in Openbox einloggen zu können, kannst Du entweder einen graphischen Login mit KDM/GDM oder startx verwenden. Wenn Du startx verwendest, musst Du zu Dein em~/.xinitrc (als Benutzer) folgendes hinzufügen:<br />
<br />
exec openbox<br />
<br />
Für KDM musst Du nichts unternehmen: openbox wird im Sessions-Menü in KDM aufgeführt.<br />
<br />
Nützliche Programme für openbox sind:<br />
* PyPanel oder LXpanel, falls Du einen Panel willst<br />
* feh für das setzen eines Hintergrundes<br />
* ROX falls Du einen einfachen Dateimanager und Desktop Icons willst<br />
<br />
Mehr Informationen findest Du im Artikel [[Openbox]].<br />
<br />
===fvwm2===<br />
FVWM ist ein extrem mächtiger ICCCM-kompatibler mehrfacher virtueller Desktop Fenstermanager für das X Window System. Die Entwicklung ist aktiv und der Support ist exzellent.<br />
<br />
Installiere fvwm2 mit<br />
pacman -S fvwm <br />
<br />
fvwm wird automatisch in kdm/gdm im Sessionsmenü aufgelistet. Sonst füge<br />
exec fvwm <br />
<br />
zum .xinitrc Deines Benutzers hinzu.<br />
<br />
Beachte, dass die stabile Version von fvwm ein paar Jahre alt ist. Falls Du eine neuere Version von fvwm willst, gibt es im Repository unstable das Paket fvwm-devel.<br />
<br />
==Tricks & abschliessende Politur==<br />
===HAL===<br />
Da du nun eine Desktop-Umgebung installiert hast (und wenn du es nicht bereits vorher getan hast), wäre dies ein guter Zeitpunkt, um auch HAL zu installieren. HAL erlaubt Plug&Play für dein Handy, deinen iPod, deine externen Festplatten usw. HAL wird diese Geräte einhängen und ein hübsches Icon auf deinen Desktop oder in die Kategorie "Mein Computer" zaubern, so dass du Zugang zu dem Gerät bekommst, ohne dass du erst die /etc/fstab-Datei oder die udev-Regeln für jedes Gerät manuell konfigurieren musst.<br />
<br />
KDE, GNOME und XFCE verwenden HAL.<br />
<br />
Die Installation wird im [[HAL]]-Artikel beschrieben. Weitere Informationen findet man bei [http://de.wikipedia.org/wiki/Hardware_Abstraction_Layer Wikipedia].<br />
<br />
===Scroll-Rad der Maus einrichten===<br />
Während deine Maus automatisch funktionieren sollte, möchtest du vielleicht auch das Scroll-Rad benutzen. Füge dies in der /etc/X11/xorg.conf zur Sektion Input Section (mouse0) hinzu:<br />
Option "ZAxisMapping" "4 5 6 7"<br />
<br />
===evdev===<br />
==== Vor- und Nachteile von evdev ====<br />
'''Vorteile:'''<br />
* Bei Mäusen werden die meisten Tasten und Scrollräder automatisch erkannt und sind sofort nutzbar.<br />
* Auch Tastaturen werden normalerweise automatisch erkannt, ebenso evtl. vorhandene Sondertasten.<br />
* Das Wechseln gerade für mobile Rechner zwischen verschiedenen Umgebungen (standalone, Docking-Station) wird erleichert, die meisten Eingabegeräte stehen ohne besondere Konfiguration sofort zur Verfügung.<br />
<br />
'''Nachteile:'''<br />
* Damit evdev funktoniert muß [[HAL]] als Daemon aktiviert sein.<br />
* Die bisherigen Einstellungen für Eingabegeräte in der xorg.conf gelten nicht mehr, für nicht englischsprachige Umgebungen (Tastaturlayout) muß der Nutzer die automatische Erkennung anpassen. Ebenso um z.B. bestimmte Touchpad-Funktionalität zu erhalten.<br />
<br />
==== Status von evdev in Arch Linux ====<br />
Bei der Aktualisierung von X.Org auf 7.4 Anfang Dezember 2008 war evdev die Hauptursache von Problemen. Dies deshalb, da für die Anwender ein abrupter Wechsel vonstatten ging der oftmals zu nicht startendem X.Org/Windowmanager, nicht oder nur teilweiser Funktionalität von Tastatur/Maus/Touchpad und zu diversen Problemen mit manchen Windowmanagern bzw. Desktopumgebungen führte. Ursache ist, dass die Verwendung von edev (als Teil des neuen X.Org) bei der Aktualisierung nicht einfach abgestellt werden konnte (Eingriff in die xorg.conf). Weiterhin das von den Anwendern diverse Konfigurationsdateien (v.a. von HAL) bearbeitet werden mussten um z.B. das deutsche Tastaturlayout nutzen zu können.<br />
<br />
Evdev ist nur ein Teil des aktuellen X.Org 7.4. Ihr könnt es nutzen, müsst es aber nicht. Eine bisher funktionierende xorg.conf kann weiter genutzt werden (inkl. der Definition der Eingabegeräte dort) wenn z.B. kein Bedarf an der automatischen Erkennung besteht oder evdev sonst keine Vorteile für Euch bringt. Beide Möglichkeiten bedürfen aber ein Anpassen von Konfigurationsdateien.<br />
<br />
==== evdev konfigurieren ====<br />
Der evdev Treiber für X.Org muß selbstverständlich installiert sein:<br />
pacman -S xf86-input-evdev<br />
Der [[HAL]] Daemon erkennt Geräte, konfiguriert diese und bindet diese in das System ein. Evdev empfängt und verarbeitet nun Ereignisse ('''Ev'''ents) dieses Gerätes('''Dev'''ice). Deshalb muß zuerst sichergestellt sein, daß hal installiert und gestartet ist.<br />
pacman -S hal<br />
Der Daemon sollte in der ''/etc/rc.conf -> DAEMONS'' möglichst zu einem sehr frühen Zeitpunkt und nicht im Hintergund gestartet werden. Beispiel:<br />
DAEMONS=(@acpid syslog-ng '''hal''' network @alsa ...)<br />
Konfigurationsdateien von Hal für die Zusammmenarbeit mit evdev haben die Endung '''.fdi''' und sind in Verzeichnissen unterhalb ''/usr/share/hal/fdi/'' zu finden. Das Format dieser Konfigs ist XML. Angepasste Dateien müssen nach ''/etc/hal/fdi/'' gestellt werden.<br />
<br />
Wenn evdev dann funktioniert kann auf die entsprechenden Sektionen in der '''xorg.conf''' verzichtet werden. Wer also noch eine /etc/X11/xorg.conf nutzt kann dort die Einträge über ''Section "InputDevice"'' entfernen.<br />
<br />
===== Deutsches Tastaturlayout einstellen =====<br />
cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/10-keymap.fdi<br />
nano /etc/hal/fdi/policy/10-keymap.fdi<br />
Diese Zeile auf das gewünschte Tastaturlayout abändern, hier für deutsches Layout:<br />
<merge key="input.xkb.layout" type="string">'''de'''</merge><br />
&lt;!-- Hinweis: Schweizer schreiben hier statt ''de'' '''ch''' --&gt;<br />
<br />
Um bestimmte Keyboard-Varianten einzustellen diese Zeile verändern, hier z.B. für die Variante ''nodeadkeys'':<br />
<merge key="input.xkb.variant" type="string">'''nodeadkeys'''</merge><br />
&lt;!-- Hinweis: Schweizer schreiben hier statt ''nodeadkeys'' '''de_nodeadkeys''' --&gt;<br />
<br />
===== Synaptics Touchpad =====<br />
Für das Touchpad gelten die gleichen Einstellungen wie früher in der xorg.conf. Diese sind nun lediglich in der entsprechenden HAL-Datei vorzunehmen.<br />
cp /usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi /etc/hal/fdi/policy/11-x11-synaptics.fdi<br />
Diese Konfigurationsdatei dann entsprechend anpassen. Hier ein Beispiel, welches die Funktion des "alten", xorg.conf basierenden, Treibers bereitstellt:<br />
<?xml version="1.0" encoding="ISO-8859-1"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="info.capabilities" contains="input.touchpad"><br />
<match key="info.product" contains="Synaptics TouchPad"><br />
<merge key="input.x11_driver" type="string">synaptics</merge><br />
<!-- Arbitrary options can be passed to the driver using <br />
the input.x11_options property since xorg-server-1.5. --><br />
<!-- EXAMPLE:<br />
<merge key="input.x11_options.LeftEdge" type="string">120</merge><br />
--><br />
<merge key="input.x11_options.SHMConfig" type="string">true</merge><br />
<merge key="input.x11_options.LeftEdge" type="string">1700</merge><br />
<merge key="input.x11_options.RightEdge" type="string">5300</merge><br />
<merge key="input.x11_options.TopEdge" type="string">1700</merge><br />
<merge key="input.x11_options.BottomEdge" type="string">4200</merge><br />
<merge key="input.x11_options.ClickFinger1" type="string">1</merge><br />
<merge key="input.x11_options.ClickFinger2" type="string">3</merge><br />
<merge key="input.x11_options.ClickFinger3" type="string">2</merge><br />
<merge key="input.x11_options.HorizEdgeScroll" type="string">1</merge><br />
<merge key="input.x11_options.VertEdgeScroll" type="string">1</merge><br />
<merge key="input.x11_options.VertTwoFingerScroll" type="string">0</merge><br />
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">0</merge><br />
<merge key="input.x11_options.HorizScrollDelta" type="string">0</merge><br />
<merge key="input.x11_options.VertScrollDelta" type="string">100</merge><br />
<merge key="input.x11_options.PressureMotionMinZ" type="string">10</merge><br />
<merge key="input.x11_options.FingerLow" type="string">25</merge><br />
<merge key="input.x11_options.FingerHigh" type="string">30</merge><br />
<merge key="input.x11_options.FingerPress" type="string">256</merge><br />
<merge key="input.x11_options.PalmDetect" type="string">0</merge><br />
<merge key="input.x11_options.PalmMinWidth" type="string">10</merge><br />
<merge key="input.x11_options.PalmMinZ" type="string">200</merge><br />
<merge key="input.x11_options.MinSpeed" type="string">0.09</merge><br />
<merge key="input.x11_options.MaxSpeed" type="string">0.18</merge><br />
<merge key="input.x11_options.AccelFactor" type="string">0.0015</merge><br />
<merge key="input.x11_options.MaxTapMove" type="string">220</merge><br />
<merge key="input.x11_options.MaxTapTime" type="string">180</merge><br />
<merge key="input.x11_options.MaxDoubleTapTime" type="string">200</merge><br />
<merge key="input.x11_options.TapButton1" type="string">1</merge><br />
<merge key="input.x11_options.TapButton2" type="string">2</merge><br />
<merge key="input.x11_options.TapButton3" type="string">3</merge><br />
<merge key="input.x11_options.RTCornerButton" type="string">0</merge><br />
<merge key="input.x11_options.RBCornerButton" type="string">0</merge><br />
<merge key="input.x11_options.LTCornerButton" type="string">0</merge><br />
<merge key="input.x11_options.LBCornerButton" type="string">0</merge><br />
<!--merge key="input.x11_options.CornerCoasting" type="string">true</merge--><br />
</match><br />
<match key="info.product" contains="AlpsPS/2 ALPS"><br />
<merge key="input.x11_driver" type="string">synaptics</merge><br />
</match><br />
<match key="info.product" contains="appletouch"><br />
<merge key="input.x11_driver" type="string">synaptics</merge><br />
</match><br />
<match key="info.product" contains="bcm5974"><br />
<merge key="input.x11_driver" type="string">synaptics</merge><br />
</match><br />
</match><br />
</device><br />
</deviceinfo><br />
<br />
===== Windowmanager anpassen =====<br />
Ohne diese Anpassungen funktioniert in bestimmten Windowmanagern die Tastatur entweder gar nicht bzw. unvollständig. V.a. die Cursortasten und diverse Sonder-/Multimedia-Tasten sind davon betroffen. Ursache ist, daß diese Windowmanager die Tastatur ziemlich selbständig verwalten und erweitern.<br><br />
Ebenfalls zumindest zeitweise und zum Testen evtl. geänderte Belegungen mittels xmodmap und anderen Hotkey-Verwaltungstools abstellen.<br />
<br />
''' KDE '''<br />
<br />
Unter ''Systemeinstellungen -> Land / Region & Sprache -> Tastaturlayout'' das Modell auf '''evdev-managed''' einstellen.<br />
<br />
''' Gnome '''<br />
<br />
Unter ''System -> Einstellungen -> Tastatur -> Belegungen'' "Auf Vorgabewerte zurücksetzen" auswählen. Oder wenn vorhanden auch das '''evdev-managed''' Modell wählen.<br />
<br />
''' xfce '''<br />
<br />
In xfce4 im Tastatureinstellungen Applet ebenfalls das '''evdev-managed''' Modell auswählen.<br />
<br />
==== evdev nicht nutzen/abstellen ====<br />
Wie schon angeführt besteht kein Zwang evdev und die Geräteerkennung zu nutzen. Um dieses Feature des X.Org abzustellen ist in die /etc/X11/xorg.conf folgendes einzutragen:<br />
Section "ServerFlags"<br />
Option "AutoAddDevices" "False"<br />
Option "AutoEnableDevices" "False"<br />
EndSection<br />
Auch sollten dann die evtl. angepaßten HAL-fdi Dateien in /etc/hal/fdi/policy/ gelöscht (bzw. weggesichert) werden. Hal ist danach neu zu starten.<br />
<br />
===Tastatulayout anpassen===<br />
Um Konfigurationsmöglichkeit über die'''/etc/xorg.conf''' zu nutzen, muss folgendes hinzugefügt werden:<br />
<br />
Section "ServerFlags"<br />
Option "AutoAddDevices" "False"<br />
Option "AutoEnableDevices" "false"<br />
EndSection<br />
<br />
Zudem müssen in der Datei die Einträge XkbLayout und XkbVariant angepasst werden.<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "keyboard"<br />
Option "XkbLayout" "de"<br />
Option "XkbVariant" "nodeadkeys"<br />
EndSection<br />
<br />
Alternativ hierzu kann die Tastatur durch die [[#evdev|Autoerkennung der Eingabegeräte]] konfiguriert werden.<br />
<br />
===Weitere Verbesserungen für Laptops===<br />
ACPI-Support wird gebraucht, falls Du einige spezielle Funktionen Deines Notebooks nutzen willst (z.B. Schlafen; Schlafen, wenn der Deckel geschlossen wird; spezielle Tasten...). Installire acpid:<br />
pacman -S acpid<br />
und füge es zu den Dämons in /etc/rc.conf (acpid) hinzu. Starte es mit<br />
/etc/rc.d/acpid start<br />
<br />
Mehr spezifische Information über Arch Linux auf verschiedenen Laptops kann hier gefunden werden: [[:Category:Laptops (English)]]<br />
<br />
===CPU Frequenz Skalierung konfigurieren===<br />
Moderne Prozessoren können ihre Frequenz und Spannung reduzieren, um Hitze und Stromverbrauch zu reduzieren. Weniger Hitze führt zu einem leiseren System; Laptopnutzer werden die sicher wollen, aber sogar ein Desktopsystem wird davon profitieren. Installiere cpufrequtils mit<br />
pacman -S cpufrequtils<br />
und füge cpufreq zu Deinen Dämonen in /etc/rc.conf hinzu. Bearbeite die Konfigurationsdatei /etc/conf.d/cpufreq und ändere<br />
governor="conservative"<br />
welcher dynamisch die CPU-Frequenz bei Bedarf erhöht (die ist auch bei Desktop-Systemen eine sichere Wahl). Ändere min_freq und max_freq damit sie den Bedingungen Deines Systems entsprechen. Falls Du die Frequenzen nicht weißt, führe ''cpufreq-info'' aus, nachdem eine der Frequenz-Skalierungs-Module geladen wurde. Du kannst auch die min_freq und max_freq-Zeilen auskommentieren oder löschen: es wird automatisch funktionieren. Füge die Frequenzskalierungsmodule zu Deiner Modul-Zeile in /etc/rc.conf hinzu. Die meisten modernen Notebooks und Desktops können einfach den ''acpi-cpufreq'' Treiber benutzen, jedoch weitere Optionen beinhalten die ''p4-clockmod, powernow-k6, powernow-k7, powernow-k8 und speedstep-centrino'' Treiber.<br />
Lade das Modul mit<br />
modprobe <modulname><br />
und starte cpufreq mit<br />
/etc/rc.d/cpufreq start<br />
Für weitere Details besuche [[Cpufrequtils]].<br />
<br />
==Nützliche Anwendungen==<br />
Diese Sektion wird niemals vollständig sein. Sie zeigt nur ein paar der Anwendungen, die man im Alltag braucht. <br />
<br />
'''Anmerkung für KDE-Nutzer''': Da KDE in /opt liegt, muß man sich vermutlich einmal aus- und erneut einloggen, bevor man diese Programme nutzen kann.<br />
<br />
===Internet===<br />
<br />
=====Firefox=====<br />
Den beliebten Firefox-Browser kann man über Pacman installieren. Installiere die deutsche Fassung mit:<br />
<br />
pacman -S firefox firefox-i18n-de<br />
Hol dir dann auch die Pakete 'flashplugin', 'mplayer', 'mplayer-plugin', und 'codecs', damit alles läuft:<br />
pacman -S flashplugin mplayer mplayer-plugin codecs<br />
(Das Paket 'codecs' enthält die Codices für Quicktime und Realplayer.)<br />
<br />
Thunderbird ist nützlich, um Deine E-Mails zu verwalten. Wenn du Gnome benutzt, wirf ein Auge auf Epiphany und Evolution. Für KDE-Nutzer wäre Kmail die erste Wahl. Wenn Du etwas völlig anderes möchtest, kannst du immer noch Opera verwenden. Wenn du rein auf der Kommandozeile arbeitest, gibt es immer noch text-basierte Browser wie ELinks, Links und Lynx, oder [[Mutt]] für Deine E-Mails. Pidgin (früher als Gaim bekannt) und Kopete sind gute Instant Messengers für GNOME bzw. KDE. PSI und Gajim reichen völlig, wenn Du nur Jabber oder Google Talk benutzt.<br />
<br />
===Office===<br />
OpenOffice ist eine komplette Office-Suite (vergleichbar mit Microsoft Office). Abiword ist ein gutes, kleines Textverarbeitungsprogramm und Gnumeric bietet eine Excelalternative für den GNOME-Desktop. KOffice ist eine komplette Office-Suite für den KDE-Desktop. GIMP (oder GIMPShop) ist ein pixelbasierts Grafikprogramm (ähnlich wie Adobe Photoshop). Inkscape dagegen ist ein vektorbasiertes Grafikprogramm (ähnlich Adobe Illustrator). Und selbstverständlich bringt Arch einen ganzen Satz voll LaTeX-Programmen: tetex ist seit vielen Jahren sehr populär und funkltioniert gut und sein Nachfolger [[Texlive]] ist im [[AUR]] verfügbar.<br />
<br />
==Multimedia ==<br />
<br />
<br />
===Video Player===<br />
====VLC====<br />
Der VLC Player ist ein Multimedia-Spieler für Linux. Um ihn zu installieren, gib einfach folgendes ein:<br />
<br />
pacman -S vlc<br />
<br />
(TODO) Instructions for VLC mozilla plug-in<br />
<br />
====Mplayer====<br />
MPlayer ist ein Multimedia-Spieler für Linux. Für die Installation einfach folgendes eingeben:<br />
<br />
pacman -S mplayer<br />
<br />
Es existiert auch ein Mozilla Plug-in für Videos uns Streams, die in Webseiten integriert sind. Installation mit<br />
<br />
pacman -S mplayer-plugin<br />
<br />
Falls Du KDE benutzt, ist KMplayer eine bessere Wahl. Dies kommt mit einem Plug-in für Videos und Streams, die in Webseiten integriert sind, und mit Konqueror funktioniert. Die Installation erfolgt mit<br />
<br />
pacman -S kmplayer<br />
<br />
(TODO) GMPlayer instructions<br />
<br />
====GNOME====<br />
=====Totem=====<br />
[http://www.gnome.org/projects/totem/ Totem] ist der offizielle Mediaplayer des GNOME-Projekts und basiert auf xine-lib oder GStreamer (gstreamer wird unter Arch standardmäßig mit dem totem-Paket installiert). Totem beherrscht den Umgang mit Playlists, einen Full-Screen-Modus, Lautstärkenregler und unterstütz die Bedienung des Player via Tastatur.<br />
Außerdem bringt er folgende Funktionalitäten mit:<br />
* Video thumbnails für den Dateimanager<br />
* Nautilus Eigenschaften-Tab<br />
* Epihpany / Mozilla (Firefox) plugin um Videos direkt im Browser wiederzugeben<br />
* Webcam Utility (in Entwicklung)<br />
<br />
Totem-xine ist immernoch die bessere Wahl wenn du DVDs schauen möchetst.<br />
<br />
Totem ist ein Teil des gnome-extra-Pakets, das Totem Webbrowser-plugin jedoch nicht.<br />
<br />
Um es seperat zu installieren:<br />
pacman -S totem<br />
<br />
Um das Totem Webrowser Plugin zu installieren:<br />
pacman -S totem-plugin<br />
<br />
====KDE====<br />
=====Kaffeine=====<br />
Kaffeine ist eine gute Wahl für KDE-Nutzer. Installiere es mit folgendem Befehl:<br />
<br />
pacman -S kaffeine<br />
<br />
===Audio Player===<br />
====Gnome/Xfce====<br />
=====Exaile=====<br />
[[Exaile]] ist ein Music Player, der in Python geschrieben ist, welches das GTK+ Toolkit benutzt.<br />
<br />
=====Rhythmbox=====<br />
[http://www.gnome.org/projects/rhythmbox/ Rhythmbox] ist eine integrierte Musikmanagement-Anwendung, die ursprünglich von Apple's iTunes inspiriert wurde. Es ist freie Software, die gemacht ist, gut unter dem GNOME Desktop zu funktionieren und auf dem mächtigen GStreamer Media Framework basiert.<br />
<br />
Rhythmbox hat eine Vielzahl Fähigkeiten, darunter:<br />
<br />
* Einfach zu benutzender Musik Browser<br />
* Suchen und Sortieren<br />
* Umfangreiche Audioformat- Unterstützung durch GStreamer<br />
* Internet Radio Unterstützung<br />
* Playlists<br />
<br />
Installation von Rhythmbox:<br />
pacman -S rhythmbox<br />
<br />
Weitere gute Audioplayer sind: Banshee, Quodlibet und Listen. Besuche [http://gnomefiles.org/ Gnomefiles] für einen Vergleich.<br />
<br />
====KDE====<br />
=====Amarok=====<br />
[http://amarok.kde.org/ Amarok] ist einer der besten Audio Player und Musik Library Systeme, die für KDE verfügbar sind. Für die Installation einfach folgendes eingeben:<br />
<br />
pacman -S amarok-base<br />
<br />
====Konsole====<br />
[http://moc.daper.net/ Moc] ist ein ncurses-basierender Audio-Player für die Konsole; eine weitere gute Wahl ist [http://musicpd.org/ mpd].<br />
<br />
Eine weitere exzellente Wahl ist [http://freshmeat.net/projects/cmus/ cmus].<br />
<br />
====Other X-based====<br />
(TODO) Xmms, audacious, bmpx.<br />
<br />
===Codecs und andere Multimedia Content Typen===<br />
====DVD====<br />
Du kannst xine-ui, totem-xine, mplayer oder kaffeine (um einfach die großen drei zu bennenen) benutzen um DVDs zu betrachten. Das einzige, was Du vermissen könntest, ist libdvdcss. Beachte, dass dessen Benutzung in einigen Ländern illegal sein könnte.<br />
<br />
====Flash====<br />
Installiere das Flash Plugin mit<br />
pacman -S flashplugin<br />
um Macromedia (nun Adobe) Flash in Deinem Browser zu aktivieren.<br />
<br />
====Quicktime====<br />
Quicktime Codecs sind im codecs Paket enthalten. Einfach mit<br />
pacman -S codecs<br />
installieren.<br />
====Realplayer====<br />
Das Codec für Realplayer 9 ist im codecs Paket enthalten Einfach mit<br />
pacman -S codecs<br />
installieren. Realplayer 10 ist als Binärpaket für Linux erhältlich. Du kannst es von AUR [http://aur.archlinux.org/packages.php?do_Details=1&ID=1590&O=0&L=0&C=0&K=realplay&SB=&SO=&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd hier] bekommen.<br />
<br />
===CD and DVD Brennen===<br />
====GNOME====<br />
=====Brasero=====<br />
[http://www.gnome.org/projects/brasero/ Brasero] ist eine Anwendung, die CDs/DVDs für den GNOME Desktop brennt. Sie ist entworfen, um möglichst einfach zu sein und hat einige besondere Eigenschaften um den Benutzern das Erstellen Ihrer Disks einfach und schnell zu ermöglichen.<br />
<br />
Für die Installation:<br />
pacman -S brasero<br />
<br />
====KDE====<br />
=====K3b=====<br />
K3b (von '''K'''DE '''B'''urn '''B'''aby '''B'''urn) ist eine freie Anwendung für GNU/Linux und andere Unix-ähnliche Betriebssysteme; sie ermöglicht die CD und DVD Erstellung und ist für KDE designed. Wie es bei den meisten KDE Anwendungen der Fall ist, ist K3b in der C++ Programmiersprache geschrieben und benutzt das QT Toolkit. K3b liefert eine graphische Oberfläche um die meisten CD/DVD Brennaufgaben, wie das Herstellen einer Audio-CD aus einem Set von Audio-Dateien oder dem Kopieren einer DC/DVD, zu lösen; aber auch fortgeschrittenere Aufgaben wie das Brennen von eMoviX CDs/DVDs beherrscht das Programm. Es kann auch Disk-zu-Disk Kopien anfertigen. Das Programm hat viele Standardeinstellungen, die von erfahreneren Benutzern angepasst werden können. Die eigentliche Diskaufnahme in K3b wird von den Kommandozeilen Programmen cdrecord oder wodim, cdrdao und growisofs gemacht. Ab Version 1.0 beinhaltet K3b einen eingebauten DVD-Ripper - der unter GPL lizensiert ist.<br />
<br />
K3b wurde als LinuxQuestions.org's Multimedia Utility of the Year (2006) von der Mehrheit (70%) der Wähler gewählt. <br />
-----<br />
Installation:<br />
pacman -S k3b<br />
<br />
<br />
<br />
<br />
=====(Todo) cdrecord, graveman...=====<br />
<br />
<br />
<br />
<br />
Die meinsten CD Brenner sind Hüllen für cdrecord:<br />
<br />
pacman -S cdrkit<br />
<br />
Wenn Du Pakete für CD/DVD Brennprogramme wie Brasero oder K3b installierst, wird gleichzeitig auch die CD/DVD Brennlibrary, wie libburn oder cdrkit, dafür installiert.<br />
<br />
Ein gutes Kommandozeilen DVD-Brennprogramm ist growisofs:<br />
<br />
pacman -S dvd+rw-tools<br />
<br />
===TV-Karten===<br />
<br />
Falls Du mit (Arch) Linux TV schauen willst, müssen mehrere Dinge getan werden. Die wichtigste Aufgabe besteht darin herauszufinden, welchen Chip Dein Tuner benutzt. Es ist jedoch eine ziemliche Anzahl unterstützt. Bitte checke bei einer Hardware Database, um sicher zu sein (z.B. [http://en.opensuse.org/HCL/TV_Cards diese Liste]). Wenn Du einmal Dein Modell kennst, sind nur ein paar Schritte zu gehen, um es zum Laufen zu bringen.<br />
<br />
In den meisten Fällen wirst Du die bttv-Treiber (andere Treiber existieren, wie [http://linux.bytesex.org/v4l2/drivers.html V4L]) zusammen mit den I2C-Modulen benutzen müssen. Die Konfiguration dieser ist die schwerste Aufgabe. Wenn Du Glück hast, wird ein<br />
modprobe bttv<br />
die Karte automatisch erkannen (checke dmesg für Details). In diesem Fall musst Du nur eine Anwendung zum TV Schauen installieren. Wir werden jedoch später daran arbeiten. Wenn die Autoerkennung nicht funktioniert hat, musst Du die Datei CARDIST anschauen, welche im Tarball von [http://dl.bytesex.org/releases/video4linux/ bttv] enthalten ist, um die richtigen Parameter für Deine Karte zu finden. Eine PV951 ohne Radiounterstützung würde diese Zeile brauchen:<br />
modprobe bttv card=42 radio=0<br />
Einige Karten brauchen folgende Zeile, um Ton zu erzeugen:<br />
modprobe tvaudio<br />
Dies unterscheidet sich jedoch bei den Karten. Probier es einfach aus. Einige andere Karten benötigen folgende Zeile:<br />
modprobe tuner<br />
Auch die ist ein Fall für Versuch und Scheitern.<br />
<br />
TODO: clarify the installation-procedure<br />
<br />
Um wirklich TV schauen zu können, installiere das xawtv-Paket mit<br />
pacman -S xawtv <br />
und lese seine Manpage.<br />
<br />
TODO: clarify some possible problems and procedures. Introduction to XAWTV on another page?<br />
<br />
===Digitale Kameras===<br />
Die meisten neueren Digitalkameras werden als USB-Massenspeichergeräte unterstützt, was bedeutet, dass Du sie einfach einstecken und die Bilder kopieren kannst. Ältere Kameras könnten das PTP (Picture Transfer Protocol) benutzen, welches einen "speziellen Treiber" benötigt. gPhoto2 liefert diesen Treiber und erlaubt einen Shell-basierenden Transfer der Bilder; digikam (für KDE) und gthumb (für GNOME, gtkam wäre eine weitere Wahl) benutzen diesen Treiber und bieten eine schöne GUI.<br />
<br />
===USB Memory Sticks / Festplatten===<br />
USB Datenspeicher und Festplatten werden Dank des USB mass storage device Treibers 'out of the box' unterstützt und werden als neue SCSI Apparat (/dev/sdX) erscheinen. Wenn Du KDE oder GNOME benutzt, solltest Du dbus und hal verwenden (und sie zu Deinen Dämons in /etc/rc.conf hinzufügen), worauf die Apparate automatisch gemountet werden. Falls Du eine andere Desktop Umgebung benutzt, könntest Du ivman anschauen.<br />
<br />
==Pflege des Systems==<br />
<br />
Ist das System einmal nach den eigenen Bedürfnissen eingerichtet, kann man es über den Paketmanger [http://wiki.archlinux.org/index.php/Pacman_%28Deutsch%29 Pacman] ständig aktuell halten.<br />
<br />
==Polieren & weitere Information==<br />
Für weitere Information und Support kannst Du zur [http://www.archlinux.org Homepage] gehen (deutsche [http://www.archlinux.de Homepage]), das Wiki durchsuchen, das [[http://bbs.archlinux.org Forum] besuchen, zum [http://wiki.archlinux.org/index.php/ArchChannel IRC Channel] gehen und die [http://www.archlinux.org/mailman/listinfo/ Mailing lists] anschauen.<br />
<br />
Wohin von hier aus? Du könntest daran interessiert sein:<br />
<br />
[[Post Installation Tips]]<br />
<br />
[http://ebalaskas.gr/gallery/Archlinux%202010.05%20net%20install/ Eine bebilderte Installationsanleitung für die Installationsmedien 2010.05]<br />
<br />
[[Get All Mouse Buttons Working]]<br />
<br />
[[Improve Pacman Performance]]<br />
<br />
[[Kernel Compilation]]<br />
<br />
[[Pm-utils]]<br />
<br />
[[Cpufrequtils]]<br />
<br />
[http://wiki.archlinux.org/index.php/Category:Eye_candy_%28English%29 Eye Candy]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9743
Benutzer:Orschiro
2010-05-23T13:30:56Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Top im nicht interaktiven Modus===<br />
<br />
top -b<br />
<br />
===Gruppenzugehörigkeit anzeigen===<br />
<br />
groups <user><br />
<br />
===mplayer DVD-Menü Support===<br />
<br />
mplayer -nocache dvdnav://<br />
<br />
===Sicherung von lokalem Rechner auf entfernten Rechner===<br />
<br />
rsync -avze ssh /home/benutzer benutzer@rechner.de:/backups <br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Firefox&diff=9702
Firefox
2010-05-11T05:49:51Z
<p>Orschiro: /* Installation */</p>
<hr />
<div>Mozilla Firefox ist ein freier Webbrowser des Mozilla-Projekts, der die sogenannte Gecko-Rendering-Engine verwendet. Die erste Veröffentlichung der Version 0.1 erfolgte am 23. September 2002, damals noch unter dem Namen Phoenix. Seit der Version 0.8 wird der Name Firefox verwendet. Der Open-Source-Webbrowser zeichnet sich besonders durch seine vielfältigen Erweiterungsmöglichkeiten aus. Für mehr Information finden sich im {{wikipedia|Mozilla_Firefox|Wikipedia Artikel}}<br />
<br />
== Installation ==<br />
Firefox befindet sich in [[Pacman#Repositorien_und_Spiegel-Server|extra]] und kann von dort mittels Pacman installiert werden.<br />
<br />
pacman -Sy firefox<br />
<br />
Für eine deutsche Lokalisation muss man das Paket „firefox-i18n“ installieren.<br />
<br />
pacman -Sy firefox-i18n<br />
<br />
Im [[AUR]] existieren zudem noch [http://aur.archlinux.org/packages.php?ID=22296 firefox-pgo] (Hinweise auf das zugehörige deutsche Sprachpaket sind [https://forum.archlinux.de/?id=20;page=Postings;thread=15970 im Forum] zu finden), eine auf Performance optimierte Firefox-Version in der unter anderem bei der 64-Bit-Version die schnellere Javascript-Engine verfügbar gemacht wurde, [http://aur.archlinux.org/packages.php?ID=22050 firefox-qt], eine Firefox-Version die Qt und nicht GTK benutzt, oder auch [http://aur.archlinux.org/packages.php?ID=18019 firefox-branded], die „normale“ Version mit „normalem“ Firefox-Logo.<br />
<br />
== E-Mail-Programm-Integration ==<br />
Standardmäßig öffnet Firefox mailto-Links nicht in Thunderbird und Thunderbird URLs nicht in Firefox. Dies kann geändert werden, indem man Firefox mitteilt, mit welchem Programm mailto-Links geöffnet werden sollen. Dazu gibt man in der Adresszeile „about:config“ ein, liest den eventuell erscheinenden Warnhinweis, bestätigt ihn, und legt dann mittels Rechtsklick einen neuen String an.<br />
<br />
network.protocol-handler.app.mailto<br />
<br />
Diesem String weist man den Wert „/usr/bin/thunderbird“ zu. Die Zuweisung ist sofort gültig. Statt Thunderbird kann natürlich auch das jeweilige bevorzugte E-Mail-Programm installiert werden, der Pfad, der als Wert angegeben wird, muss dann natürlich entsprechend angepasst werden.<br />
<br />
=== Einstellungen in Thunderbird ===<br />
Analog dazu kann man ebenfalls einstellen, dass Thunderbird entgegen den Standard-Einstellungen Links in Firefox öffnen soll. Dazu erstellt man über „Bearbeiten → Einstellungen → Erweitert → Konfiguration Bearbeiten“ drei neue Strings, und weist ihnen die nachfolgend durch „→“ abgetrennten Werte zu.<br />
<br />
network.protocol-handler.app.ftp → /usr/bin/firefox<br />
network.protocol-handler.app.http → /usr/bin/firefox<br />
network.protocol-handler.app.https → /usr/bin/firefox<br />
<br />
== IRC-Integration==<br />
Damit durch das Klicken auf einen irc-Link sich der IRC-Client (hier: xChat) öffnet muss in „about:config“ (s.o.) von Firefox folgendes gemacht werden.<br />
<br />
# Mit der rechten Maustaste auf die Einträge klicken und „Neu → Boolean“ wählen.<br />
# Einstellungsname lautet „network.protocol-handler.external.irc“, Wert: „true“ (bzw. „1“)<br />
# Dann noch einen neuen Eintrag erstellen, diesmal einen String.<br />
# *Einstellungsname: '''network.protocol-handler.app.irc''' Wert: '''xchat'''<br />
<br />
== UserAgent ändern ==<br />
[[Bild:Fx-about.png|thumb|Anzeige des Useragent-Strings im Informationsdialog von Firefox 3.6 – Hier die Original-Angabe]]<br />
<br />
Beim Surfen im Internet identifiziert der Browser sich über den User-Agent-String. Es werden unter anderem Informationen über das verwendete Betriebssystem und den verwendeten Browser beim Anfragen einer Seite oder Datei an den Server gesendet. Firefox bietet die Möglichkeit, diese Informationen zu verändern. Um dies zu tun, gibt man in der Adresszeile „about:config“ ein und erstellt mit einem Rechtsklick einen neuen String.<br />
<br />
general.useragent.override<br />
<br />
Als Wert setzt man hier ein, was man eben als UserAgent-String verwenden möchte. Sollen überhaupt keine Informationen gesendet werden einfach nichts bei Wert eintragen. Um die Änderungen rückgängig zu machen reicht es, den Eintrag zurückzusetzen: „Rechtsklick auf Eintrag → Zurücksetzen“. Außerdem gibt es noch die [http://chrispederick.com/work/useragentswitcher/ User Agent Switcher] Extension.<br />
<br />
Damit sich Firefox als zum Beispiel als Internet Explorer 6.0, der auf einem WinXP mit installiertem ServicePack 2 läuft, ausgibt kann man „Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)“ als Wert angeben.<br />
<br />
== IPv6 deaktivieren ==<br />
Es kann unter gewissen Netzwerkkonstellationen vorkommen, dass Firefox bei aktivierter IPv6-Unterstützung sehr langsam ist, oder Seiten gar nicht geladen werden können. Um die IPv6-Funktion zu deaktivieren, muss man den entsprechenden Wert über „about:config“ auf „true“ setzen.<br />
<br />
network.dns.disableIPv6<br />
<br />
Sollte der Seitenaufruf allerdings funktionieren, sollte man diese Option so belassen, wie sie ist. Durch die Deaktivierung der IPv6-Unterstützung in Firefox erhält man keine Vorteile, wenn es auch mit aktivierter Unterstützung funktioniert.<br />
<br />
== Plugins ==<br />
Einige Firefox-Plugins sind bereits in den Arch-Paketquellen verfügbar, weitere Plugins lassen sich auf der Mozilla-Seite finden. Neben Plugins gibt es in dieser Liste auch noch Erweiterungen, die den Browser mit zusätzlichen Funktionen ausstatten.<br />
<br />
* https://addons.mozilla.org/de/firefox/browse/type:7<br />
<br />
=== Flash ===<br />
Um Flash zu nutzen installiert man sich am besten das proprietäre Flashplugin von Adobe aus dem extra-Repositorium. Leider bieten die freien Alternativen noch nicht den vollen Funktionsumfang bzw. die Stabilität wie das Pendant von Adobe.<br />
<br />
pacman -Sy flashplugin<br />
<br />
=== Java ===<br />
Firefox unterstützt Java, allerdings muss das Java-Paket aus „extra“ installiert sein.<br />
<br />
pacman -Sy openjdk6<br />
<br />
=== Mplayer-Plugin ===<br />
Das Mplayer Plugin ermöglicht es, Medieninhalte eingebettet wiederzugeben, was auch weitgehend funktioniert. Hierfür müssen folgende Pakete aus [extra] installiert werden:<br />
<br />
pacman -Sy mplayer gecko-mediaplayer<br />
<br />
=== VLC-Plugin ===<br />
Um das VLC-Plugin für Firefox zu bekommen, nimmt man am besten das vorgefertigte PKGBUILD aus dem [[AUR]]. Sollte man noch kein Paket aus dem AUR gebaut haben, einfach mal die AUR-Seite hier im Wiki durchlesen.<br />
<br />
* [http://aur.archlinux.org/packages.php?do_Details=1&ID=13120 im AUR].<br />
<br />
==Tipps und Tricks==<br />
==="Downloads abgeschlossen" Popup deaktivieren===<br />
Das Popup-Fenster, das erscheint wenn alle aktiven Downloads abgeschlossen sind kann man deaktivieren indem man in der Adresszeile ''about:config'' eingibt und folgenden Eintrag auf ''false'' setzt.<br />
browser.download.manager.showAlertOnComplete<br />
<br />
===Performance steigern===<br />
Durch das auslagern der Profildaten kann man einen gewissen Performancegewinn erzielen. Wie dies vonstatten geht, erläutert der dazugehörige Wiki-Artikel [[Firefox-Profile in Ramdisk auslagern]].<br />
<br />
===Backspace-Taste aktivieren===<br />
Unter Linux erfüllt die Backspace-Taste (Zurück-Taste) in Firefox keinerlei Funktion, während sie unter Windows ein bequemes Zurückgehen auf die vorherige Seite ermöglicht. Wer diese Funktion nicht missen möchte, hat folgenden Eintrag in ''about:config'' anzupassen.<br />
<br />
browser.backspace_action # aus der 2 machen wir eine 0<br />
<br />
===URL bei einfachem Klick markieren===<br />
Wer sich an dem Markieren der URL per Doppelklick stört, der kann dies zu einem einfachen Klick abändern. Hierzu muss folgendes, wiederrum in der ''about:config'', getan werden.<br />
<br />
browser.urlbar.clickSelectsAll # aus false machen wir ein true<br />
<br />
===Autoscroll per Mittlerer Maustaste===<br />
Wer von Windows kommt, wird möglicherweise die Scrollfunktion beim Betätigen des Mausrades vermissen. Diese lässt sich jedoch auch unter Linux problemlos aktivieren. Hierzu muss folgender Schlüssel von ''false'' auf ''true'' gesetzt werden.<br />
<br />
general.autoScroll<br />
<br />
{{FDL|| Seite=http://de.wikipedia.org/ | Name=deutsche Wikipedia | Original=http://de.wikipedia.org/w/index.php?title=Mozilla_Firefox }} <br />
[[Kategorie:Browser]]<br />
[[Kategorie:GTK]]<br />
[[en:Firefox]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Firefox&diff=9699
Firefox
2010-05-08T17:44:40Z
<p>Orschiro: /* Installation */</p>
<hr />
<div>Mozilla Firefox ist ein freier Webbrowser des Mozilla-Projekts, der die sogenannte Gecko-Rendering-Engine verwendet. Die erste Veröffentlichung der Version 0.1 erfolgte am 23. September 2002, damals noch unter dem Namen Phoenix. Seit der Version 0.8 wird der Name Firefox verwendet. Der Open-Source-Webbrowser zeichnet sich besonders durch seine vielfältigen Erweiterungsmöglichkeiten aus. Für mehr Information finden sich im {{wikipedia|Mozilla_Firefox|Wikipedia Artikel}}<br />
<br />
== Installation ==<br />
Firefox befindet sich in [[Pacman#Repositorien_und_Spiegel-Server|extra]] und kann von dort mittels Pacman installiert werden.<br />
<br />
pacman -Sy firefox<br />
<br />
Für eine deutsche Lokalisation muss man das Paket „firefox-i18n“ installieren.<br />
<br />
pacman -Sy firefox-i18n<br />
<br />
Wem Firefox in der Standardversion zu inperformant ist, dem sei die optimierte Version [http://aur.archlinux.org/packages.php?ID=22296 firefox-pgo] ans Herz gelegt.<br />
<br />
== E-Mail-Programm-Integration ==<br />
Standardmäßig öffnet Firefox mailto-Links nicht in Thunderbird und Thunderbird URLs nicht in Firefox. Dies kann geändert werden, indem man Firefox mitteilt, mit welchem Programm mailto-Links geöffnet werden sollen. Dazu gibt man in der Adresszeile „about:config“ ein, liest den eventuell erscheinenden Warnhinweis, bestätigt ihn, und legt dann mittels Rechtsklick einen neuen String an.<br />
<br />
network.protocol-handler.app.mailto<br />
<br />
Diesem String weist man den Wert „/usr/bin/thunderbird“ zu. Die Zuweisung ist sofort gültig. Statt Thunderbird kann natürlich auch das jeweilige bevorzugte E-Mail-Programm installiert werden, der Pfad, der als Wert angegeben wird, muss dann natürlich entsprechend angepasst werden.<br />
<br />
=== Einstellungen in Thunderbird ===<br />
Analog dazu kann man ebenfalls einstellen, dass Thunderbird entgegen den Standard-Einstellungen Links in Firefox öffnen soll. Dazu erstellt man über „Bearbeiten → Einstellungen → Erweitert → Konfiguration Bearbeiten“ drei neue Strings, und weist ihnen die nachfolgend durch „→“ abgetrennten Werte zu.<br />
<br />
network.protocol-handler.app.ftp → /usr/bin/firefox<br />
network.protocol-handler.app.http → /usr/bin/firefox<br />
network.protocol-handler.app.https → /usr/bin/firefox<br />
<br />
== IRC-Integration==<br />
Damit durch das Klicken auf einen irc-Link sich der IRC-Client (hier: xChat) öffnet muss in „about:config“ (s.o.) von Firefox folgendes gemacht werden.<br />
<br />
# Mit der rechten Maustaste auf die Einträge klicken und „Neu → Boolean“ wählen.<br />
# Einstellungsname lautet „network.protocol-handler.external.irc“, Wert: „true“ (bzw. „1“)<br />
# Dann noch einen neuen Eintrag erstellen, diesmal einen String.<br />
# *Einstellungsname: '''network.protocol-handler.app.irc''' Wert: '''xchat'''<br />
<br />
== UserAgent ändern ==<br />
[[Bild:Fx-about.png|thumb|Anzeige des Useragent-Strings im Informationsdialog von Firefox 3.6 – Hier die Original-Angabe]]<br />
<br />
Beim Surfen im Internet identifiziert der Browser sich über den User-Agent-String. Es werden unter anderem Informationen über das verwendete Betriebssystem und den verwendeten Browser beim Anfragen einer Seite oder Datei an den Server gesendet. Firefox bietet die Möglichkeit, diese Informationen zu verändern. Um dies zu tun, gibt man in der Adresszeile „about:config“ ein und erstellt mit einem Rechtsklick einen neuen String.<br />
<br />
general.useragent.override<br />
<br />
Als Wert setzt man hier ein, was man eben als UserAgent-String verwenden möchte. Sollen überhaupt keine Informationen gesendet werden einfach nichts bei Wert eintragen. Um die Änderungen rückgängig zu machen reicht es, den Eintrag zurückzusetzen: „Rechtsklick auf Eintrag → Zurücksetzen“. Außerdem gibt es noch die [http://chrispederick.com/work/useragentswitcher/ User Agent Switcher] Extension.<br />
<br />
Damit sich Firefox als zum Beispiel als Internet Explorer 6.0, der auf einem WinXP mit installiertem ServicePack 2 läuft, ausgibt kann man „Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)“ als Wert angeben.<br />
<br />
== IPv6 deaktivieren ==<br />
Es kann unter gewissen Netzwerkkonstellationen vorkommen, dass Firefox bei aktivierter IPv6-Unterstützung sehr langsam ist, oder Seiten gar nicht geladen werden können. Um die IPv6-Funktion zu deaktivieren, muss man den entsprechenden Wert über „about:config“ auf „true“ setzen.<br />
<br />
network.dns.disableIPv6<br />
<br />
Sollte der Seitenaufruf allerdings funktionieren, sollte man diese Option so belassen, wie sie ist. Durch die Deaktivierung der IPv6-Unterstützung in Firefox erhält man keine Vorteile, wenn es auch mit aktivierter Unterstützung funktioniert.<br />
<br />
== Plugins ==<br />
Einige Firefox-Plugins sind bereits in den Arch-Paketquellen verfügbar, weitere Plugins lassen sich auf der Mozilla-Seite finden. Neben Plugins gibt es in dieser Liste auch noch Erweiterungen, die den Browser mit zusätzlichen Funktionen ausstatten.<br />
<br />
* https://addons.mozilla.org/de/firefox/browse/type:7<br />
<br />
=== Flash ===<br />
Um Flash zu nutzen installiert man sich am besten das proprietäre Flashplugin von Adobe aus dem extra-Repositorium. Leider bieten die freien Alternativen noch nicht den vollen Funktionsumfang bzw. die Stabilität wie das Pendant von Adobe.<br />
<br />
pacman -Sy flashplugin<br />
<br />
=== Java ===<br />
Firefox unterstützt Java, allerdings muss das Java-Paket aus „extra“ installiert sein.<br />
<br />
pacman -Sy openjdk6<br />
<br />
=== Mplayer-Plugin ===<br />
Das Mplayer Plugin ermöglicht es, Medieninhalte eingebettet wiederzugeben, was auch weitgehend funktioniert. Hierfür müssen folgende Pakete aus [extra] installiert werden:<br />
<br />
pacman -Sy mplayer gecko-mediaplayer<br />
<br />
=== VLC-Plugin ===<br />
Um das VLC-Plugin für Firefox zu bekommen, nimmt man am besten das vorgefertigte PKGBUILD aus dem [[AUR]]. Sollte man noch kein Paket aus dem AUR gebaut haben, einfach mal die AUR-Seite hier im Wiki durchlesen.<br />
<br />
* [http://aur.archlinux.org/packages.php?do_Details=1&ID=13120 im AUR].<br />
<br />
==Tipps und Tricks==<br />
==="Downloads abgeschlossen" Popup deaktivieren===<br />
Das Popup-Fenster, das erscheint wenn alle aktiven Downloads abgeschlossen sind kann man deaktivieren indem man in der Adresszeile ''about:config'' eingibt und folgenden Eintrag auf ''false'' setzt.<br />
browser.download.manager.showAlertOnComplete<br />
<br />
===Performance steigern===<br />
Durch das auslagern der Profildaten kann man einen gewissen Performancegewinn erzielen. Wie dies vonstatten geht, erläutert der dazugehörige Wiki-Artikel [[Firefox-Profile in Ramdisk auslagern]].<br />
<br />
===Backspace-Taste aktivieren===<br />
Unter Linux erfüllt die Backspace-Taste (Zurück-Taste) in Firefox keinerlei Funktion, während sie unter Windows ein bequemes Zurückgehen auf die vorherige Seite ermöglicht. Wer diese Funktion nicht missen möchte, hat folgenden Eintrag in ''about:config'' anzupassen.<br />
<br />
browser.backspace_action # aus der 2 machen wir eine 0<br />
<br />
===URL bei einfachem Klick markieren===<br />
Wer sich an dem Markieren der URL per Doppelklick stört, der kann dies zu einem einfachen Klick abändern. Hierzu muss folgendes, wiederrum in der ''about:config'', getan werden.<br />
<br />
browser.urlbar.clickSelectsAll # aus false machen wir ein true<br />
<br />
===Autoscroll per Mittlerer Maustaste===<br />
Wer von Windows kommt, wird möglicherweise die Scrollfunktion beim Betätigen des Mausrades vermissen. Diese lässt sich jedoch auch unter Linux problemlos aktivieren. Hierzu muss folgender Schlüssel von ''false'' auf ''true'' gesetzt werden.<br />
<br />
general.autoScroll<br />
<br />
{{FDL|| Seite=http://de.wikipedia.org/ | Name=deutsche Wikipedia | Original=http://de.wikipedia.org/w/index.php?title=Mozilla_Firefox }} <br />
[[Kategorie:Browser]]<br />
[[Kategorie:GTK]]<br />
[[en:Firefox]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Dm-crypt&diff=9696
Dm-crypt
2010-05-04T19:37:05Z
<p>Orschiro: /* Arch Linux installieren */</p>
<hr />
<div>==Übersicht==<br />
Eine komplett verschlüsselte Festplatte kann in vielen Fällen sinnvoll sein. Zum Beispiel kann es sehr schnell passieren, dass der private Laptop mit den privaten Daten irgendwo liegen gelassen oder geklaut wird. In solchen Fällen ist es immer besser, wenn niemand auf die Daten zugreifen kann. In diesen Beitrag werden zwei Varianten vorgestellt wie sich eine Festplatte bereits während der Installation von Arch Linux verschlüsseln lassen. Beide Varianten sind gleich sicher, erstere Variante verlangt nur nach weniger Konfigurationsaufwand.<br />
<br />
==Festplatte Verschlüsseln==<br />
===Verschlüsselte LVM Partition(Variante 1)===<br />
Dies ist die meist verbreitete Variante zumal viele andere Distributionen solch eine Verschlüsselung automatisch bei der Installation anbieten. Diese Anleitung geht davon aus, dass die [[Arch_Linux_installieren|Installation]] beherscht wird sowie die [[Partitionierung|Partitionierungstools]] angewendet werden können.<br />
<br />
====Partitionslayout====<br />
Das Grundlayout solch einer Festplatte sieht vor, dass bis auf eine kleine Bootpartition die gesamte Platte verschlüsselt wird. Innerhalb des verschlüsselten Bereichs wird eine [[LVM]] angelegt. In dieser können wiederum eine unbegrenzte Anzahl von Logical Volumes angelegt werden.<br />
Bevor man also beginnt, sollte das Partitionslayout so aussehen:<br />
<br />
/dev/sda1 - ca. 100MB(Bootpartition)<br />
/dev/sda2 - Rest der Festplatte<br />
<br />
====Verschlüsselung anlegen====<br />
Zuallererst sollte man die zu verschlüsselnde Partition mit zufälligen Daten überschreiben:<br />
# shred -v /dev/sda2<br />
shred überschreibt die Festplatte dreimal mit Zufallswerten. Wem einmal überschreiben reicht kann auch "shred -v -n 1 /dev/sda2" aufrufen.<br />
<br />
Dann müssen die benötigen Kernelmodule geladen werden:<br />
# modprobe dm-crypt<br />
# modprobe aes-i586 //meist nicht notwendig<br />
Danach verschlüsselt man sda2 mit folgenden Befehl:<br />
# cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2<br />
Den Befehl bestätigen und das gewünschte Passwort eingeben.(Je länger das Passwort umso sicherer ist es)<br />
Für die weiteren Schritte muss man die eben verschlüsselte Partition gleich einbinden:<br />
# cryptsetup luksOpen /dev/sda2 lvm<br />
<br />
In den Ordner /dev/mapper erscheint jetzt die neue Gerätedatei lvm<br />
<br />
====LVM einrichten====<br />
Mit<br />
# pvcreate /dev/mapper/lvm<br />
# vgcreate main /dev/mapper/lvm<br />
richtet man jetzt die LVM und eine Volume Group ein. Jetzt muss man noch die jeweiligen Logical Volumes einrichten. Logical Volumes sind so etwas wie virtuelle Partitionen die von Linux wie richtige Partitionen gemountet und verwendet werden können. Zuallererst sollte man sich über das gewünschte Layout im klaren sein.<br />
<br />
/ -> etwa 10GB<br />
/swap -> doppelte Arbeitsspeichergröße<br />
/home -> restlicher Festplattenplatz<br />
Das Layout ist nur eine Empfehlung und kann beliebig verändert werden.<br />
<br />
Um obiges Layout im LVM anzulegen muss man folgende Befehle verwenden.<br />
# lvcreate -L 10GB -n root main<br />
# lvcreate -L 2GB -n swap main<br />
# lvcreate -l 100%FREE -n home main<br />
<br />
====Arch Linux installieren====<br />
Nun startet man mit<br />
# /arch/setup<br />
wie gewohnt die Installation. Wenn man während der Installtion die Filesystem Mountpoints festlegt muss man die eben erstellen Partitionen wählen und ein Filesystem seiner Wahl anlegen lassen. (Außer swap welches natürlich das swap Filesystem bekommt). /boot muss auf /dev/sda1 angelegt werden. /dev/sda2 und /dev/mapper/lvm bleiben indes unangetastet.<br />
<br />
Im Vergleich zur normalen Installation müssen folgende Änderungen an den Konfigurationsdateien vorgenommen werden:<br />
<br />
/etc/rc.conf<br />
USELVM=”yes”<br />
<br />
/etc/mkinitcpio.conf<br />
HOOKS="base udev autodetect pata scsi sata encrypt lvm2 filesystems"<br />
Es ist besonders darauf zu achten das "encrypt" '''vor''' "lvm2" erscheint! Wünscht man bei der Abfrage der Passworts ein deutsches Tastaturlayout sollte man noch "keymap" vor "encrypt" einfügen. Benutzt man eine USB-Tastatur (oder hat man vor, dies irgendwann zu tun), so müssen zusätzlich noch "usb" und "usbinput" vor "encrypt" eingesetzt werden.<br />
Insgesamt sollte es also wie folgt aussehen:<br />
HOOKS="base udev autodetect pata scsi sata usb usbinput keymap encrypt lvm2 filesystems"<br />
<br />
/boot/grub/menu.lst<br />
<br />
Bei den beiden Booteinträgen "Arch Linux" und "Arch Linux Fallback" muss “cryptdevice=/dev/sda2:main” zwischen "root=/dev/mapper/main-root" und "ro" eingetragen werden, so dass die Kernelzeile am Ende wie folgt aussieht.<br />
<br />
kernel /vmlinuz26 cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro<br />
<br />
Sollte "keymap" in die mkinitcpio.conf eingetragen wurden sein so müssen noch "lang=de" und "locale=de_DE.UTF-8" in die Kernelzeile eingetragen werden.<br />
<br />
Grub selbst sollte auf /dev/sda installiert werden.<br />
<br />
Nachdem die Installation beendet ist startet man neu und genießt seine frisch verschlüsselte Festplatte.<br />
<br />
====LVM manuell mounten====<br />
<br />
Möchte man ein mit LVM eingerichtetes und verschlüsseltes System manuell mounten, beispielsweise beim Start von einer Live-CD, so ist wie im Folgenden zu verfahren.<br />
<br />
Verschlüsselte Partition einbinden.<br />
<br />
# cryptsetup luksOpen /dev/sda2 lvm<br />
<br />
Unter /dev/mapper erscheint nun die Gerätedatei lvm. Im nächsten Schritt ist mitunter der folgende Befehl nötig, um die Volume-Group, in diesem Fall lautet sie ''main'', zu aktivieren.<br />
<br />
# vgchange -ay<br />
<br />
Nun sollte es möglich sein, einzelne Partitionen aus dieser Volume-Group ins System einzubinden.<br />
<br />
# mount -t ext4 /dev/main/root /mnt<br />
<br />
===Partitionen einzeln verschlüsseln(Variante 2)===<br />
<br />
<br />
Für alle folgenden Schritte wird keine Haftung übernommen! Es wird empfohlen, vorher ein komplettes Backup aller wichtigen Daten zu erstellen. <br />
<br />
====Partitionslayout festlegen====<br />
Die Festplatte (in meinem Fall /dev/sda) sollte für alle folgenden Schritte folgendermaßen partitioniert sein:<br />
<br />
/dev/sda1 -> /boot (32-64MB, bis zu 100MB)<br />
/dev/sda2 -> swap (je nach Größe des Arbeitsspeichers, 1,2 x Arbeitsspeicher)<br />
/dev/sda3 -> / (10-15GB, ggf. 20?)<br />
/dev/sda4 -> /home<br />
<br />
Die Größe der einzelnen Partitionen kann variieren.<br />
<br />
====Crypto-Devices anlegen====<br />
Das Ver- und Entschlüsseln wird über das Kryptographie-Modul des Devicemappers des Kernels abgewickelt. Dieser stellt uns ein virtuelles Device zu Verfügung, über das auf die verschlüsselten Partitionen zugegriffen werden kann.<br />
Den Verschlüsselungsalgorithmus, die Größe des Schlüssels und viele weitere Dinge die die Verschlüsselung beeinflussen, können selber festgelegt werden. Nähere Informationen zu den verfügbaren Parametern gibt es hier auf der Seite von dm-crypt [http://www.saout.de/misc/dm-crypt/]<br />
Informationen über die Geschwindigkeit der einzelnen Algorithmen gibt es hier [http://web.archive.org/web/20070519171434/http://www.saout.de/tikiwiki/tiki-index.php?page=UserPageChonhulio] übersichtlich dargestellt. <br />
Für die folgenden Verschlüsselung wurde der AES-Algorithmus mit SHA-256 als Hash und mit einer Schlüssellänge von 256 Bit gewählt.<br />
<br />
Laden der benötigten Kernelmodule:<br />
<br />
modprobe dm-crypt<br />
modprobe aes-x86-64 # aes-i586 für nicht 64-bit Systeme <br />
<br />
Anlegen des Crypto-Devices:<br />
<br />
# cryptsetup luksFormat /dev/sda3 --cipher aes-cbc-essiv:sha256 --verify-passphrase --key-size 256<br />
-> Passwort zweimal eingeben. <br />
'''ACHTUNG:''' Das Passwort sollte ausreichend lang sein, also mindestens 16 stellig.<br />
<br />
'''Hinweis: '''Da das Passwort während des Bootvorgangs abgefragt wird steht noch keine deutsche Tastaturbelegung zur Verfügung. Es stehen also keine Umlaute (ä;ö;ü;ß) zur Verfügung und Sonderzeichen sowie y und z befinden sich auf anderen Tasten. Um Probleme zu vermeiden sollte das Passwort mit der amerikanischen Tastaturbelegung erstellt werden.<br />
<br />
'''Ergänzung: '''Das Tastaturlayout beim Boot kann dahingehend angepasst werden, indem man eine HOOKS-Option in der /etc/mkinitcpio.conf hinzufügt und die Boot-Optionen für den Kernel erweitert. In der /etc/mkinitcpio.conf muss die Option "keymap" vor "filesystems" hinzugefügt werden, also etwa so aussehen HOOKS="base udev autodetect keymap sata encrypt filesystems". Unter /boot/grub/menu.lst erweitert man die Kernel-Zeile um die Sprachinformationen, also etwa so "kernel /boot/vmlinuz26 lang=de locale=de_DE.UTF-8 root=/dev/sda1 ro". Damit steht die deutsch Tastaturbelegung auch während des Bootvorgangs zur Verfügung.<br />
<br />
<br />
Öffnen des eben erstellten Crypto-Devices:<br />
<br />
# mkdir /mnt/root<br />
# cryptsetup luksOpen /dev/sda3 root<br />
-> Passwort eingeben<br />
<br />
Formatieren und mounten der Partition: <br />
<br />
# mke2fs -j /dev/mapper/root (mit ext3)<br />
# mount /dev/mapper/root /mnt/root<br />
<br />
Für die home-Partition wollen wir kein extra Passwort verwenden, sondern ein Keyfile, damit wir nicht bei jedem Start des Systems zwei Passwörter eingeben müssen. Das Keyfile für die Home-Partition legen wir in /crypto/home.key ab. Allerdings ist es sehr wichtig dieses Keyfile zu sichern. Sollte die Root-Partition einmal beschädigt und nicht wiederherstellbar sein, ist die Home-Partition mit allen Daten ebenfalls verloren. Eine andere Möglichkeit wäre es auch hier eine 16-stelliges Passwort zu benutzen, dieses in der /etc/crypttab anzugeben und es an einem sehr sicheren Ort aufzubewahren. So muss das Passwort nicht auf einem physikalischen Datenträger abgelegt werden. Man kann es sich entweder merken oder z.B. in einem Bankschließfach ablegen ;)<br />
<br />
Das Keyfile erstellen wir uns zufällig, indem wir einen 2048 Byte großen Block aus /dev/urandom kopieren.<br />
<br />
# mkdir /mnt/root/crypto<br />
# dd if=/dev/urandom of=/mnt/root/crypto/home.key bs=1k count=2<br />
<br />
Anlegen des Crypto-Devices:<br />
<br />
# cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher aes-cbc-essiv:sha256 --key-size 256<br />
<br />
# cryptsetup luksOpen /dev/sda4 home --key-file /mnt/root/crypto/home.key<br />
<br />
Formatieren und mounten der Partition: <br />
<br />
# mke2fs -j /dev/mapper/home (mit ext3)<br />
# mkdir /mnt/root/home<br />
# mount /dev/mapper/home /mnt/root/home<br />
<br />
====ArchLinux installieren====<br />
Zuerst müssen wir noch unsere Boot-Partition erstellen und mounten.<br />
<br />
# mke2fs /dev/sda1<br />
# mkdir /mnt/root/boot<br />
# mount /dev/sda1 /mnt/root/boot<br />
<br />
Um eine Verbindung zum Internet aufbauen zu können, muss eine IP-adresse beim Router angefragt werden.<br />
<br />
# dhcpcd eth0<br />
<br />
Jetzt kopieren wir alle wichtigen Dateien für das System in unsere verschlüsselte root-Partition.<br />
<br />
# /arch/quickinst ftp /mnt/root ftp://ftp.archlinux.org/current/os/i686<br />
<br />
bzw.<br />
<br />
# /arch/quickinst ftp /mnt/root ftp://ftp.archlinux.org/current/os/x86_64<br />
<br />
Nun brauchen wir für das neue System auch noch einen Kernel.<br />
<br />
# /mnt/root/usr/bin/pacman.static -r /mnt/root --config /tmp/pacman.conf -S kernel26<br />
<br />
Und damit wir das System nachher auch bequem starten können einen Bootloader, in diesem Fall nehmen wir [[GRUB]].<br />
<br />
Zuerst mounten wir alle wichtigen Systemverzeichnisse,<br />
<br />
# mount -o bind /dev /mnt/root/dev<br />
# mount -o bind /proc /mnt/root/proc<br />
# mount -o bind /sys /mnt/root/sys<br />
<br />
und wechseln mit chroot das Root-Verzeichnis.<br />
<br />
# chroot /mnt/root /bin/bash<br />
<br />
Schnell GRUB installieren.<br />
<br />
# install-grub /dev/sda /dev/sda1<br />
<br />
Und /boot/grub/menu.lst anpassen:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 cryptdevice=/dev/sda3:root root=/dev/mapper/root ro<br />
initrd /kernel26.img<br />
<br />
Damit dürfte das System im Prinzip schon einsatzbereit sein. Das initrd-image erkennt automatisch die verschlüsselte Partition und fragt nach dem Passwort. Sollte das nicht der Fall sein, muss noch mit [[mkinitcpio]] ein neues initrd-image erstellt werden, welches den hook für "encrypt" enthält. Dieser hook sollte in jedem Fall vor "filesystem" stehen. Dazu die Konfigurationsdatei /etc/mkinitcpio.conf bearbeiten und mit dem Befehl mkinitcpio das neue Image erzeugen.<br />
<br />
Den hook encrypt einfügen.<br />
<br />
# nano /etc/mkinitcpio.conf<br />
<br />
und dann das Image neu schreiben.<br />
<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
'''ACHTUNG:''' Sollte der Fall eintreten, dass sich während des Installationsprozesses die Kernel-Version im Repository ändert, z.B. weil der Kernel auf dem Installationsmedium älter ist (wie 2.6.24 anstatt 2.6.25) und man sich aber online die aktuellen Packages besorgt hat, kommt es zu Problemen beim Erstellen des neuen initrd-Images, weil nicht alle entsprechenden Treiber gefunden werden (wie die für die Verschlüsselung)! Abhilfe schafft ein …<br />
<br />
# mkinitcpio '''-k 2.6.25-ARCH -p kernel26''' -g /boot/kernel26.img<br />
<br />
… in der chroot-Umgebung: ''-k'' für den neuen Kernel (hier 2.6.25) und ''-p'' damit u.a. auch ein Fallback erstellt wird; nähere Infos siehe [[manpage]].<br />
<br />
Um später zum gewohnten …<br />
<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
… zurückzukommen, muss der Kernel irgendwann im laufenden System nochmal installiert werden.<br />
<br />
====Konfiguration anpassen====<br />
Zunächst tragen wir erstmal die Boot und die Root Partition in die /etc/[[fstab]] ein.<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/sda1 /boot ext2 defaults 0 0<br />
/dev/mapper/root / ext3 defaults 0 0<br />
<br />
Damit unser System auch die Home-Partition korrekt einbindet und die Swap-Partition bei jedem Start mit einem neuen zufälligen Schlüssel verschlüsselt, müssen wir noch folgendes machen.<br />
<br />
=====Home-Partition=====<br />
Zuerst öffnen wir /etc/crypttab und tragen unsere Home-Partition samt Schlüssel, der ja auf der Root-Partition in /crypto/home.key liegt, ein.<br />
<br />
# NAME SOURCE DEVICE PASSWORD OPTIONS<br />
home /dev/sda4 /crypto/home.key<br />
....<br />
<br />
Um die Partitionen über die UUID einzubinden, benutzen wir die aus folgendem Befehl resultierende UUID<br />
$ cryptsetup luksDump /dev/sda4 | grep UUID:<br />
<br />
Damit wird bei jedem Systemstart die Home-Partition automatisch geöffnet. Jetzt können wir /dev/mapper/home ganz normal in unsere fstab-Datei eintragen, damit /home auch korrekt gemountet wird.<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/mapper/home /home ext3 defaults 0 0<br />
<br />
=====Swap Partition=====<br />
Auch die Swap Partition tragen wir in die /etc/crypttab ein.<br />
<br />
'''Achtung:''' unbedingt darauf achten, dass hier das richtige Device angegeben wird, da sonst Datenverlust droht!<br />
<br />
# NAME SOURCE DEVICE PASSWORD OPTIONS<br />
swap /dev/sda2 SWAP -c aes-cbc-essiv:sha256 -s 256<br />
<br />
Jetzt müssen wir nur noch /dev/mapper/swap in die fstab Datei eintragen.<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/mapper/swap none swap sw 0 0<br />
<br />
====Aufräumen & Neustarten====<br />
Zum Schluss müssen wir nur noch chroot mit Strg+d verlassen alle Partitionen wieder unmounten und die Crypto-Container schließen.<br />
<br />
# umount /mnt/root/boot /mnt/root/home <br />
# umount -l /mnt/root<br />
# cryptsetup luksClose root<br />
# cryptsetup luksClose home<br />
# rm -r /mnt/root<br />
<br />
Jetzt braucht es nur noch einen Restart und es sollte ein komplett verschlüsseltes ArchLinux starten ;)<br />
<br />
# shutdown -r now<br />
<br />
==System per USB-Stick entschlüsseln==<br />
Wer nicht jedesmal beim Booten das LUKS Passwort für die root Partition eingeben will kann auch ein Keyfile auf einem USB-Stick speichern.<br />
Wenn der Stick beim Booten eingesteckt ist wird das System automatisch aufgeschlossen. Es gibt zwei Möglichkeiten den Key auf dem Stick zu speichern.<br />
Als einfache (sichtbare) klartext Datei, oder zwischen dem MBR und der ersten Partition des Sticks.<br />
<br />
===Vorbereitungen===<br />
Bei beiden Methoden muss zunächst erstmal eine Udev Regel für den Stick erstellt werden. Wie das geht wird [[Einbindung_von_USB-Ger%C3%A4ten#Udev_Regel_erstellen | hier]] beschrieben. Ab jetzt wird angenommen, dass die Udev Regel den Stick ''usbstick'' nennt und die erste Partition des Sticks ''usbstick1''. <br />
<br />
Jetzt erstellt man ein Keyfile und speichert es auf dem USB-Stick. Soll das Keyfile als klartext Datei gespeichert werden, darf der Name keine Sonderzeichen, Punkte (versteckte Dateien) etc. enthalten, da der ''encrypt'' HOOK die Datei sonst beim Booten nicht findet.<br />
<br />
USB-Stick mounten<br />
<br />
mkdir /mnt/usb-stick<br />
mount /dev/usbstick1 /mnt/usb-stick<br />
<br />
Keyfile erstellen und auf dem Stick speichern.<br />
<br />
dd if=/dev/urandom of=/mnt/usb-stick/archkey bs=512 count=4<br />
<br />
Jetzt kann das Keyfile zu den Schlüsseln für die root Partition (hier ''/dev/sda3'') hinzugefügt werden. Das alte LUKS Passwort sollte man nicht löschen. Falls das Keyfile mal verloren geht, oder das Entschlüsseln per USB-Stick nicht auf Anhieb funktioniert, kommt man immer noch ins System.<br />
<br />
cryptsetup luksAddKey /dev/sda3 /mnt/usb-stick/archkey<br />
<br />
''/dev/sda3'' gegebenen Falls anpassen...<br />
<br />
Als nächstes wird die ''/etc/mkinitcpio.conf'' angepasst. Die Udev-Regel wird in die FILES="" Zeile eingetragen und zu den HOOKS ''usb'' hinzugefügt (vor encrypt).<br />
<br />
FILES="/etc/udev/rules.d/50-myusb.rules"<br />
HOOKS="... usb encrypt filesystems ..."<br />
<br />
Soll das Keyfile als klartext Datei gespeichert werden, müssen noch zwei Module zur MODULES="" Zeile hinzugefügt werden. Eins für das Dateisystem des Sticks (hier vfat) und eins für die Codepage<br />
<br />
MODULES="ata_generic ata_piix '''nls_cp437''' '''vfat'''"<br />
<br />
Die Module für das Dateisystem und die Codepage müssen durch die passenden ersetzt werden, falls der USB-Stick ein anderes Dateisystem hat (z.B. ext2). Benutzer des Arch-stock Kernels sollten die hier genannte Codepage verwenden.<br />
<br />
Jetzt kann das neue initrd-image erstellt werden. (evtl. das alte vorher sichern)<br />
<br />
mkinitcpio -p kernel26<br />
<br />
===Schlüssel als klartext Datei speichern===<br />
Da das Keyfile ja bereits auf dem Stick existiert, muss nur noch die kernel Zeile in der menu.lst (GRUB) angepasst werden.<br />
<br />
kernel /vmlinuz26 cryptdevice=/dev/sda3:root root=/dev/mapper/root ro vga=771 cryptkey=/dev/usbstick1:vfat:/archkey<br />
<br />
''/dev/usbstick1'' ist dabei die FAT Partition mit dem Keyfile.<br />
<br />
Wenn alles geklappt hat, sollte Das System beim nächsten Booten automatisch aufgeschlossen werden.<br />
Vorausgesetzt der USB-Stick ist eingesteckt. ;-)<br />
<br />
===Schlüssel zwischen MBR und erster Partition speichern===<br />
'''ACHTUNG:''' man sollte das hier nur machen wenn man weiß was man tut. Es kann zu Datenverlust kommen und die Partitionen oder der MBR des Sticks beschädigt werden.<br />
<br />
Sollte auf dem Stick ein Bootloader installiert sein müssen einige Werte angepasst werden. GRUB braucht z. B. die ersten 16 Sektoren. Man müsste also ''seek=4'' durch ''seek=16'' ersetzen. Andernfalls würden Teile von GRUB überschrieben werden. Im Zweifelsfall kann man sich die ersten 64 Sektoren anschauen und nach einem genügend großen freien Bereich suchen. <br />
<br />
dd if=/dev/usbstick of=64sectors bs=512 count=64 # kopiert die ersten 64 Sektoren<br />
hexcurse 64sectors # freien Platz suchen<br />
<br />
Den Schlüssel auf den Stick schreiben.<br />
<br />
dd if=/mnt/usb-stick/archkey of=/dev/usbstick bs=512 seek=4<br />
<br />
Wenn das geklappt hat kann das (klartext) Keyfile vom Stick gelöscht werden.<br />
<br />
shred --remove --zero /mnt/usb-stick/archkey<br />
<br />
Jetzt muss noch die kernel Zeile in der ''menu.lst'' (GRUB) Datei angepasst werden. <br />
<br />
kernel /vmlinuz26 cryptdevice=/dev/sda3:root root=/dev/mapper/root ro vga=771 cryptkey=/dev/usbstick:2048:2048<br />
<br />
Das Format für die ''cryptkey'' Option sieht so aus:<br />
<br />
cryptkey=BLOCKDEVICE:OFFSET:SIZE<br />
<br />
Die Werte für OFFSET und SIZE passen für dieses Beispiel, da das Keyfile die Länge 2048 hat (bs=512 count=4), und ab OFFSET 2048 (bs=512 seek=4) auf dem Stick gespeichert ist. Gegebenen Falls müssen die Werte angepasst werden.<br />
<br />
Das wars, wenn alles geklappt hat, sollte Das System beim nächsten Booten automatisch aufgeschlossen werden.<br />
Vorausgesetzt der USB-Stick ist eingesteckt. ;-)<br />
<br />
==Padlock Fehlermeldung==<br />
FATAL: Error inserting padlock_aes (/lib/modules/2.6.24-ARCH/kernel/drivers/crypto/padlock-aes.ko): No such device<br />
Wenn diese Fehlermeldung beim Booten erscheint, ist das nicht weiter schlimm.<br />
Die padlock-Module können nur mit speziellen Mini-ITX-Mainboards von VIA mit C7- oder Eden-CPU benutzt werden. Diese Mainboards enthalten eine Verschlüsselungseinheit namens Padlock, die unter anderem einen Hardware-Zufallsgenerator bereitstellt sowie hardwarebeschleunigte AES-Ver-/Entschlüsselung ermöglicht.<br />
<br />
Versucht zu laden werden die Module an zwei Stellen:<br />
<br />
* in der initrd<br />
* durch udev<br />
<br />
Um die Meldung weg zu bekommen kan mann folgendes machen:<br />
<br />
'''a)'''<br><br />
Der encrypt-Hook bewirkt beim Erstellen des initrd-Images das alle Module die in Verzeichnissen namens crypto liegen eingebunden und versucht zu laden werden. Das kann man steuern durch den Parameter CRYPTO_MODULES in der /etc/mkinitcpio.conf ähnlich des MODULES Parameters dort. D.h., man muss alle Crypto-Module, die zum Aufschließen der verschlüsselten Root-Partition nötig sind, dort explizit aufführen da der encrypt-Hook diese nicht mehr automatisch einfügt. Die benötigten Module kann man durch lsmod im laufenden System finden. Wer seine crypto-Module anhand des Namens nicht eindeutig identifizieren kann findet sie auf diesen Weg:<br />
<br />
cd /lib/modules/$(uname -r)<br />
source /lib/initcpio/functions <br />
m="$(all_modules "/crypto/") "<br />
echo $m<br />
<br />
Diese Module würde der encrypt-Hook automatisch einbinden (darunter auch die padlock).<br />
Zum Abgleich mit den eigenen Modulen jetzt einfach lsmod mit dieser Liste vergleichen.<br />
<br />
Der nötige Eintrag in der /etc/mkinitcpio.conf kann z.B. so aussehen:<br />
<br />
CRYPTO_MODULES="blowfish sha256_generic aes_i586 aes_generic"<br />
<br />
Jetzt noch das initrd-Image erstellen(als root): <br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
'''b)'''<br><br />
Damit das Modul durch udev nicht versucht wird zu laden. Es reicht nicht (bzw. hat keine Auswirkung) die Module in der rc.conf mit ! vom Laden ausschließen zu wollen. Erst das explizite Blacklisten bei udev führte bei mir zum Erfolg. Also Datei /etc/modprobe.d/modprobe.conf editieren<br />
<br />
blacklist padlock-aes<br />
blacklist padlock-sha<br />
<br />
'''Nachtrag:'''<br>Durch das Update auf 2.6.27 hat sich bei den notwendigen CRYPTO_MODULES wieder einiges geändert. Ich konnte meinen Laptop erstmal nicht normal starten, da in meinen vorgegebenen Modulen welche fehlten. Um das (und das padlock-Problem zu umgehen) habe ich nun die CRYPTO_MODULES Zeile wieder rausgenommen und habe einfach die Module selbst in lib/modules/2.6.27-ARCH/kernel/drivers/crypto/padlock-* gelöscht. Dann das initrd neu erstellt. Somit taucht diese Meldung ebenfalls nicht mehr auf (ich verwende nie eine Hardware für das ich dieses padlock brauchen würde).<br />
<br />
==lrw-benbi==<br />
Wer wie im [http://wiki.archlinux.org/index.php/System_Encryption_with_LUKS_for_dm-crypt#Mapping_partitions US-Arch-Wiki] mit lrw-benbi verschlüsseln will, muss ebenso die /etc/mkinitcpio.conf anpassen:<br />
<br />
CRYPTO_MODULES="blowfish '''lrw''' sha256_generic aes_i586 aes_generic"<br />
<br />
<br />
==Weblinks==<br />
* [[Verschlüsseltes Verzeichnis]]<br />
* [[Truecrypt]]<br />
* [https://wiki.koeln.ccc.de/index.php/Suspend_to_Cryptodisk "Suspend to Cryptodisk"-How-To auf wiki.koeln.ccc.de]<br />
<br />
[[Kategorie: Sicherheit]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9372
Benutzer:Orschiro
2010-03-25T22:45:59Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Gruppenzugehörigkeit anzeigen===<br />
<br />
groups <user><br />
<br />
===mplayer DVD-Menü Support===<br />
<br />
mplayer -nocache dvdnav://<br />
<br />
===Sicherung von lokalem Rechner auf entfernten Rechner===<br />
<br />
rsync -avze ssh /home/benutzer benutzer@rechner.de:/backups <br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9371
Benutzer:Orschiro
2010-03-25T19:57:37Z
<p>Orschiro: /* mplayer DVD-Menü Support */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===mplayer DVD-Menü Support===<br />
<br />
mplayer -nocache dvdnav://<br />
<br />
===Sicherung von lokalem Rechner auf entfernten Rechner===<br />
<br />
rsync -avze ssh /home/benutzer benutzer@rechner.de:/backups <br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9370
Benutzer:Orschiro
2010-03-25T19:56:12Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===mplayer DVD-Menü Support===<br />
<br />
mplayer dvdnav://<br />
<br />
===Sicherung von lokalem Rechner auf entfernten Rechner===<br />
<br />
rsync -avze ssh /home/benutzer benutzer@rechner.de:/backups <br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9367
Benutzer:Orschiro
2010-03-25T08:40:02Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Sicherung von lokalem Rechner auf entfernten Rechner===<br />
<br />
rsync -avze ssh /home/benutzer benutzer@rechner.de:/backups <br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9271
Benutzer:Orschiro
2010-02-28T23:13:25Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Alsamixer Kanäle links und rechts angleichen===<br />
<br />
Shift+B<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Nginx&diff=9268
Nginx
2010-02-28T22:21:08Z
<p>Orschiro: /* Nginx und mod_wsgi */</p>
<hr />
<div>[[Bild:Nginx.gif|thumb|Offizielles Nginx Logo]]<br />
Der ursprüngliche Entwickler Igor Sysoev beschreibt Nginx (englisch ausgesprochen ''Engine X'') als äußerst leistungsfähigen, aber dennoch schlanken Webserver, Reverse Proxy und E-Mail-Proxy. Er stellt damit eine ausgezeichnete Alternative oder Ergänzung zu Apache2 oder [[lighttpd]] dar.<br />
<br />
== Installation ==<br />
Nginx befindet sich in den Standardrepositorien und kann mittels folgenden Befehls installiert werden.<br />
<br />
pacman -Sy nginx<br />
<br />
Nach der Installation sollte Nginx noch dem Daemon-Eintrag in der rc.conf hinzugefügt werden, damit sichergestellt ist, dass der Webserver bei einem Neustart automatisch mitgestartet wird.<br />
<br />
DAEMONS=(syslog-ng network netfs crond sshd nginx)<br />
<br />
== Benutzung und Anpassung ==<br />
Standardmäßig sollte Nginx bereits funktionieren. Dies kann getestet werden, in dem die IP oder der Reverse DNS des Servers im Browser eingegeben wird. Sollten dennoch Änderungen in der Konfiguration erwünscht sein, so kann hierzu die Datei nginx.conf in /etc/nginx/conf den eigenen Wünschen nach angepasst werden. Um beispielsweise einen neuen Hosteintrag vorzunehmen, gilt es innerhalb des http-Abschnittes folgendes hinzuzufügen:<br />
<br />
http {<br />
server {<br />
listen 80;<br />
server_name domain.tld;<br />
<br />
location / {<br />
root /home/user/webseite;<br />
index index.html;<br />
}<br />
}<br />
}<br />
<br />
Bei dieser Konfiguration ist zu beachten, dass Nginx entweder unter dem User user oder root ausgeführt wird, da sonst keine Zugriffsberechtigungen auf /home/user bestehen. Hierzu gilt es denn folgenden Eintrag abzuändern:<br />
<br />
#user nobody;<br />
<br />
user users user;<br />
<br />
Weitere Konfigurationsmöglichkeiten sind bitte dem [http://wiki.nginx.org/Main offiziellen Wiki] zu entnehmen.<br />
<br />
=== Die wichtigsten Befehle ===<br />
Zweifelsohne die wichtigsten Befehle sind Stop, Neustart, Start und Reload. Diese lassen sich wie folgt bedienen:<br />
/etc/rc.d/nginx stop<br />
/etc/rc.d/nginx restart<br />
/etc/rc.d/nginx start<br />
/etc/rc.d/nginx reload<br />
<br />
Diese sind beispielsweise dann nützlich, wenn die Konfigurationsdatei verändert wurde, aber noch nicht geladen wurde. Hierfür reicht ein reload bereits aus.<br />
<br />
== Nginx und mod_wsgi ==<br />
<br />
Mit einem Patch ist es möglich, in Python geschriebene Webanwendungen (beispielsweise in Django oder Bottle) per Python Web Server Gateway Interface, kurz WSGI, über Nginx auszuliefern. Hierzu kann die bereits [http://aur.archlinux.org/packages.php?ID=35111 gepatchte Version] aus dem AUR installiert werden.<br />
Anschließend ist die Datei ''/etc/nginx/wsgi_vars'' mit folgendem Inhalt anzulegen.<br />
<br />
# /etc/nginx/wsgi_vars<br />
wsgi_var REQUEST_METHOD $request_method;<br />
#wsgi_var SCRIPT_NAME $uri; # TODO<br />
#wsgi_var PATH_INFO $uri; # TODO<br />
wsgi_var QUERY_STRING $query_string;<br />
wsgi_var CONTENT_TYPE $content_type;<br />
wsgi_var CONTENT_LENGTH $content_length;<br />
wsgi_var SERVER_NAME $server_name;<br />
wsgi_var SERVER_PORT $server_port;<br />
wsgi_var SERVER_PROTOCOL $server_protocol;<br />
#<br />
# additional variables<br />
# (they will be present in the WSGI environment only if not empty)<br />
#<br />
wsgi_var REQUEST_URI $request_uri;<br />
wsgi_var DOCUMENT_URI $document_uri;<br />
wsgi_var DOCUMENT_ROOT $document_root;<br />
wsgi_var SERVER_SOFTWARE $nginx_version;<br />
wsgi_var REMOTE_ADDR $remote_addr;<br />
wsgi_var REMOTE_PORT $remote_port;<br />
wsgi_var SERVER_ADDR $server_addr;<br />
set $auth_type '';<br />
if ($remote_user) {<br />
set $auth_type Basic;<br />
}<br />
#wsgi_var REMOTE_USER $remote_user;<br />
#wsgi_var AUTH_TYPE $auth_type;<br />
<br />
Nun sollte es ausreichen, einen entsprechenden server-Eintrag in der ''/etc/nginx/conf/nginx.conf'' vorzunehmen. <br />
<br />
server {<br />
server_name foo.bar.org<br />
listen 80;<br />
access_log off;<br />
location /admin_media/ {<br />
alias /var/lib/python-support/python2.6/django/contrib/admin/media/;<br />
}<br />
location /media/ {<br />
alias /home/foo/bar/media/;<br />
}<br />
location / {<br />
include /etc/nginx/wsgi_vars;<br />
wsgi_pass /home/foo/bar.wsgi;<br />
}<br />
}<br />
<br />
== Weblinks ==<br />
* [http://nginx.net/ Offizielle Webseite] {{sprache|en}}<br />
* [http://wiki.nginx.org/Main Offizielles Wiki] {{sprache|en}}<br />
<br />
<br />
[[Kategorie:Server]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Nginx&diff=9267
Nginx
2010-02-28T22:20:02Z
<p>Orschiro: /* Nginx und mod_wsgi */</p>
<hr />
<div>[[Bild:Nginx.gif|thumb|Offizielles Nginx Logo]]<br />
Der ursprüngliche Entwickler Igor Sysoev beschreibt Nginx (englisch ausgesprochen ''Engine X'') als äußerst leistungsfähigen, aber dennoch schlanken Webserver, Reverse Proxy und E-Mail-Proxy. Er stellt damit eine ausgezeichnete Alternative oder Ergänzung zu Apache2 oder [[lighttpd]] dar.<br />
<br />
== Installation ==<br />
Nginx befindet sich in den Standardrepositorien und kann mittels folgenden Befehls installiert werden.<br />
<br />
pacman -Sy nginx<br />
<br />
Nach der Installation sollte Nginx noch dem Daemon-Eintrag in der rc.conf hinzugefügt werden, damit sichergestellt ist, dass der Webserver bei einem Neustart automatisch mitgestartet wird.<br />
<br />
DAEMONS=(syslog-ng network netfs crond sshd nginx)<br />
<br />
== Benutzung und Anpassung ==<br />
Standardmäßig sollte Nginx bereits funktionieren. Dies kann getestet werden, in dem die IP oder der Reverse DNS des Servers im Browser eingegeben wird. Sollten dennoch Änderungen in der Konfiguration erwünscht sein, so kann hierzu die Datei nginx.conf in /etc/nginx/conf den eigenen Wünschen nach angepasst werden. Um beispielsweise einen neuen Hosteintrag vorzunehmen, gilt es innerhalb des http-Abschnittes folgendes hinzuzufügen:<br />
<br />
http {<br />
server {<br />
listen 80;<br />
server_name domain.tld;<br />
<br />
location / {<br />
root /home/user/webseite;<br />
index index.html;<br />
}<br />
}<br />
}<br />
<br />
Bei dieser Konfiguration ist zu beachten, dass Nginx entweder unter dem User user oder root ausgeführt wird, da sonst keine Zugriffsberechtigungen auf /home/user bestehen. Hierzu gilt es denn folgenden Eintrag abzuändern:<br />
<br />
#user nobody;<br />
<br />
user users user;<br />
<br />
Weitere Konfigurationsmöglichkeiten sind bitte dem [http://wiki.nginx.org/Main offiziellen Wiki] zu entnehmen.<br />
<br />
=== Die wichtigsten Befehle ===<br />
Zweifelsohne die wichtigsten Befehle sind Stop, Neustart, Start und Reload. Diese lassen sich wie folgt bedienen:<br />
/etc/rc.d/nginx stop<br />
/etc/rc.d/nginx restart<br />
/etc/rc.d/nginx start<br />
/etc/rc.d/nginx reload<br />
<br />
Diese sind beispielsweise dann nützlich, wenn die Konfigurationsdatei verändert wurde, aber noch nicht geladen wurde. Hierfür reicht ein reload bereits aus.<br />
<br />
== Nginx und mod_wsgi ==<br />
<br />
Mit einem Patch ist es möglich, in Python geschriebene Webanwendungen (beispielsweise in Django oder Bottle) per Python Web Server Gateway Interface, kurz WSGI, über Nginx auszuliefern. Hierzu kann die bereits [http://aur.archlinux.org/packages.php?ID=35111 gepatchte Version] aus dem AUR installiert werden.<br />
Anschließend ist die Datei ''/etc/nginx/wsgi_vars'' mit folgendem Inhalt anzulegen.<br />
<br />
wsgi_var REQUEST_METHOD $request_method;<br />
#wsgi_var SCRIPT_NAME $uri; # TODO<br />
#wsgi_var PATH_INFO $uri; # TODO<br />
wsgi_var QUERY_STRING $query_string;<br />
wsgi_var CONTENT_TYPE $content_type;<br />
wsgi_var CONTENT_LENGTH $content_length;<br />
wsgi_var SERVER_NAME $server_name;<br />
wsgi_var SERVER_PORT $server_port;<br />
wsgi_var SERVER_PROTOCOL $server_protocol;<br />
#<br />
# additional variables<br />
# (they will be present in the WSGI environment only if not empty)<br />
#<br />
wsgi_var REQUEST_URI $request_uri;<br />
wsgi_var DOCUMENT_URI $document_uri;<br />
wsgi_var DOCUMENT_ROOT $document_root;<br />
wsgi_var SERVER_SOFTWARE $nginx_version;<br />
wsgi_var REMOTE_ADDR $remote_addr;<br />
wsgi_var REMOTE_PORT $remote_port;<br />
wsgi_var SERVER_ADDR $server_addr;<br />
set $auth_type '';<br />
if ($remote_user) {<br />
set $auth_type Basic;<br />
}<br />
#wsgi_var REMOTE_USER $remote_user;<br />
#wsgi_var AUTH_TYPE $auth_type;<br />
<br />
Nun sollte es ausreichen, einen entsprechenden server-Eintrag in der ''/etc/nginx/conf/nginx.conf'' vorzunehmen. <br />
<br />
server {<br />
server_name foo.bar.org<br />
<br />
listen 80;<br />
access_log off;<br />
<br />
location /admin_media/ {<br />
alias /var/lib/python-support/python2.6/django/contrib/admin/media/;<br />
}<br />
location /media/ {<br />
alias /home/foo/bar/media/;<br />
}<br />
location / {<br />
include /etc/nginx/wsgi_vars;<br />
wsgi_pass /home/foo/bar.wsgi;<br />
}<br />
}<br />
<br />
== Weblinks ==<br />
* [http://nginx.net/ Offizielle Webseite] {{sprache|en}}<br />
* [http://wiki.nginx.org/Main Offizielles Wiki] {{sprache|en}}<br />
<br />
<br />
[[Kategorie:Server]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Nginx&diff=9266
Nginx
2010-02-28T22:19:23Z
<p>Orschiro: </p>
<hr />
<div>[[Bild:Nginx.gif|thumb|Offizielles Nginx Logo]]<br />
Der ursprüngliche Entwickler Igor Sysoev beschreibt Nginx (englisch ausgesprochen ''Engine X'') als äußerst leistungsfähigen, aber dennoch schlanken Webserver, Reverse Proxy und E-Mail-Proxy. Er stellt damit eine ausgezeichnete Alternative oder Ergänzung zu Apache2 oder [[lighttpd]] dar.<br />
<br />
== Installation ==<br />
Nginx befindet sich in den Standardrepositorien und kann mittels folgenden Befehls installiert werden.<br />
<br />
pacman -Sy nginx<br />
<br />
Nach der Installation sollte Nginx noch dem Daemon-Eintrag in der rc.conf hinzugefügt werden, damit sichergestellt ist, dass der Webserver bei einem Neustart automatisch mitgestartet wird.<br />
<br />
DAEMONS=(syslog-ng network netfs crond sshd nginx)<br />
<br />
== Benutzung und Anpassung ==<br />
Standardmäßig sollte Nginx bereits funktionieren. Dies kann getestet werden, in dem die IP oder der Reverse DNS des Servers im Browser eingegeben wird. Sollten dennoch Änderungen in der Konfiguration erwünscht sein, so kann hierzu die Datei nginx.conf in /etc/nginx/conf den eigenen Wünschen nach angepasst werden. Um beispielsweise einen neuen Hosteintrag vorzunehmen, gilt es innerhalb des http-Abschnittes folgendes hinzuzufügen:<br />
<br />
http {<br />
server {<br />
listen 80;<br />
server_name domain.tld;<br />
<br />
location / {<br />
root /home/user/webseite;<br />
index index.html;<br />
}<br />
}<br />
}<br />
<br />
Bei dieser Konfiguration ist zu beachten, dass Nginx entweder unter dem User user oder root ausgeführt wird, da sonst keine Zugriffsberechtigungen auf /home/user bestehen. Hierzu gilt es denn folgenden Eintrag abzuändern:<br />
<br />
#user nobody;<br />
<br />
user users user;<br />
<br />
Weitere Konfigurationsmöglichkeiten sind bitte dem [http://wiki.nginx.org/Main offiziellen Wiki] zu entnehmen.<br />
<br />
=== Die wichtigsten Befehle ===<br />
Zweifelsohne die wichtigsten Befehle sind Stop, Neustart, Start und Reload. Diese lassen sich wie folgt bedienen:<br />
/etc/rc.d/nginx stop<br />
/etc/rc.d/nginx restart<br />
/etc/rc.d/nginx start<br />
/etc/rc.d/nginx reload<br />
<br />
Diese sind beispielsweise dann nützlich, wenn die Konfigurationsdatei verändert wurde, aber noch nicht geladen wurde. Hierfür reicht ein reload bereits aus.<br />
<br />
== Nginx und mod_wsgi ==<br />
<br />
Mit einem Patch ist es möglich, in Python geschriebene Webanwendungen (beispielsweise in Django oder Bottle) per Python Web Server Gateway Interface, kurz WSGI, über Nginx auszuliefern. Hierzu kann die bereits [http://aur.archlinux.org/packages.php?ID=35111 gepatchte Version] aus dem AUR installiert werden.<br />
Anschließend ist die Datei ''/etc/nginx/wsgi_vars'' mit folgendem Inhalt anzulegen.<br />
<br />
wsgi_var REQUEST_METHOD $request_method;<br />
#wsgi_var SCRIPT_NAME $uri; # TODO<br />
#wsgi_var PATH_INFO $uri; # TODO<br />
wsgi_var QUERY_STRING $query_string;<br />
<br />
wsgi_var CONTENT_TYPE $content_type;<br />
wsgi_var CONTENT_LENGTH $content_length;<br />
<br />
wsgi_var SERVER_NAME $server_name;<br />
wsgi_var SERVER_PORT $server_port;<br />
<br />
wsgi_var SERVER_PROTOCOL $server_protocol;<br />
<br />
#<br />
# additional variables<br />
# (they will be present in the WSGI environment only if not empty)<br />
#<br />
wsgi_var REQUEST_URI $request_uri;<br />
wsgi_var DOCUMENT_URI $document_uri;<br />
wsgi_var DOCUMENT_ROOT $document_root;<br />
<br />
wsgi_var SERVER_SOFTWARE $nginx_version;<br />
<br />
wsgi_var REMOTE_ADDR $remote_addr;<br />
wsgi_var REMOTE_PORT $remote_port;<br />
wsgi_var SERVER_ADDR $server_addr;<br />
<br />
<br />
set $auth_type '';<br />
if ($remote_user) {<br />
set $auth_type Basic;<br />
}<br />
<br />
#wsgi_var REMOTE_USER $remote_user;<br />
#wsgi_var AUTH_TYPE $auth_type;<br />
<br />
Nun sollte es ausreichen, einen entsprechenden server-Eintrag in der ''/etc/nginx/conf/nginx.conf'' vorzunehmen. <br />
<br />
server {<br />
server_name foo.bar.org<br />
<br />
listen 80;<br />
access_log off;<br />
<br />
location /admin_media/ {<br />
alias /var/lib/python-support/python2.6/django/contrib/admin/media/;<br />
}<br />
location /media/ {<br />
alias /home/foo/bar/media/;<br />
}<br />
location / {<br />
include /etc/nginx/wsgi_vars;<br />
wsgi_pass /home/foo/bar.wsgi;<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
== Weblinks ==<br />
* [http://nginx.net/ Offizielle Webseite] {{sprache|en}}<br />
* [http://wiki.nginx.org/Main Offizielles Wiki] {{sprache|en}}<br />
<br />
<br />
[[Kategorie:Server]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9265
Benutzer:Orschiro
2010-02-28T22:09:29Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Tar-Archiv erstellen===<br />
<br />
tar cfvz [ARCHIVNAME].tar [Ordner]/<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9257
Benutzer:Orschiro
2010-02-21T10:36:01Z
<p>Orschiro: /* Zip Archiv erstellen */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Archiv.zip [Dateien] [Dateien]<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9256
Benutzer:Orschiro
2010-02-21T10:35:49Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Zip Archiv erstellen===<br />
<br />
zip Arhiv.zip [Dateien] [Dateien]<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9201
Benutzer:Orschiro
2010-02-10T06:52:50Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Dateien suchen===<br />
<br />
find /Verzeichnis -name string<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9183
Benutzer:Orschiro
2010-02-09T15:42:36Z
<p>Orschiro: /* Bildschirmschoner abschalten */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Bildschirmschoner regulieren===<br />
<br />
xset -dpms/+dmps<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9182
Benutzer:Orschiro
2010-02-09T15:25:12Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Bildschirmschoner abschalten===<br />
<br />
xset -dpms s off<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9179
Benutzer:Orschiro
2010-02-09T10:51:08Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Flashvideo in Fullscreen per Mplayer abspielen===<br />
<br />
mplayer /tmp/*<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Cpupower&diff=9172
Cpupower
2010-02-08T17:52:52Z
<p>Orschiro: /* cpufreq Daemon */</p>
<hr />
<div>{{righttoc}}<br />
Bei Cpufrequtils handelt es sich um eine Sammlung kleiner, nützlicher Werkzeuge welche die Skalierung von Frequenz und Spannung moderner Prozessoren möglich macht, um so eine geringere Abwärme und einen geringeren Stromverbrauch hervorzurufen. Dahinter steht ein Prinzip, welches die Frequenz des Prozessors abhängig von der momentan benötigten Leistung entweder erhöht oder absenkt. Diese Technik ist insbesondere für Notebookbesitzer interessant, um so eine längere und gleichzeitig schonendere Akkunutzung zu gewährleisten.<br />
<br />
== Installation ==<br />
Das Paket kann mittels [[pacman]] installiert werden:<br />
pacman -Sy cpufrequtils<br />
<br />
== Konfiguration ==<br />
{{Hinweis|Alle Werte sind als Beispiel anzusehen und können nicht zwangsläufig auf das eigene System übernommen werden.}}<br />
<br />
=== Kernelmodule ===<br />
Die Grundlage für ''cpufrequtils'' bilden Kernelmodule, die Informationen über die möglichen Frequenzen bereitstellen und den Prozessor bei bedarf herunter- oder hochtakten.<br />
<br />
Zuerst muss das Modul ''acpi-cpufreq'' geladen werden, dass die Informationen über den Prozessor bereitstellt. Für ältere Intel Prozessoren werden noch zusätzlich die Module ''p4-clockmod'' oder ''speedstep-centrino'', für AMD Prozessoren die Module ''powernow-k6'', ''powernow-k7'' oder ''powernow-k8'' benötigt.<br />
{{Hinweis|Das Modul ''powernow-k8'' unterstützt auch die neueren AMD Prozessoren, wie Phenom usw..}}<br />
<br />
Nun müssen die nötigen Module geladen werden:<br />
modprobe acpi-cpufreq<br />
Bei einem AMD Prozessor kommt beispielsweise noch ''powernow-k8'' hinzu:<br />
modprobe powernow-k8<br />
<br />
Damit die Module beim Systemstart automatisch geladen werden, müssen sie in das MODULES Array in der ''rc.conf'' eingetragen werden:<br />
MODULES=(... acpi-cpufreq ...)<br />
Alternativ auch wieder für einen AMD Prozessor:<br />
MODULES=(... acpi-cpufreq powernow-k8 ...)<br />
<br />
Nun lassen sich mit folgendem Befehl detailierte Informationen, darunter auch die zulässigen Frequenzen, zum eigenen Prozessor abrufen:<br />
cpufreq-info<br />
<br />
Diese sieht beispielsweise für einen Core 2 Duo T7250 derart aus:<br />
cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006<br />
Bitte melden Sie Fehler an cpufreq@lists.linux.org.uk.<br />
analysiere CPU 0:<br />
Treiber: acpi-cpufreq<br />
Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0 1<br />
Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 2.00 GHz<br />
mögliche Taktfrequenzen: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz<br />
mögliche Regler: performance<br />
momentane Taktik: die Frequenz soll innerhalb 800 MHz und 2.00 GHz.<br />
liegen. Der Regler "performance" kann frei entscheiden,<br />
welche Taktfrequenz innerhalb dieser Grenze verwendet wird.<br />
momentane Taktfrequenz ist 2.00 GHz (verifiziert durch Nachfrage bei der Hardware).<br />
analysiere CPU 1:<br />
Treiber: acpi-cpufreq<br />
Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0 1<br />
Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 2.00 GHz<br />
mögliche Taktfrequenzen: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz<br />
mögliche Regler: performance<br />
momentane Taktik: die Frequenz soll innerhalb 800 MHz und 2.00 GHz.<br />
liegen. Der Regler "performance" kann frei entscheiden,<br />
welche Taktfrequenz innerhalb dieser Grenze verwendet wird.<br />
momentane Taktfrequenz ist 2.00 GHz (verifiziert durch Nachfrage bei der Hardware).<br />
<br />
=== Prozessor '''Governors''' ===<br />
'''Governors''' können als vordefinierte Schemas angesehen werden, unter welchen Umständen der Prozessor herunter- und hochgetaktet wird. Sie sind Kernelmodule, die, wenn gewünscht, auch alle geladen werden können.<br />
<br />
Folgende '''Governors''' sind verfügbar:<br />
{|border="2"<br />
| performance (Voreinstellung) || fest in den Kernel einkompiliert und stellt den Prozessor auf die höchste Frequenz<br />
|-<br />
| cpufreq_ondemand (empfohlen) || taktet den Prozessor je nach Systemlast herauf und herunter<br />
|-<br />
| cpufreq_conservative || ähnlich wie ondemand, aber änderungen der Taktrate sind seltener<br />
|-<br />
| cpufreq_powersave || stellt den Prozessor auf die niedrigste Frequenz<br />
|}<br />
<br />
Nun müssen die gewünschten Kernelmodule geladen werden:<br />
modprobe cpufreq_ondemand<br />
<br />
Damit sie auch beim Systemstart geladen werden, müssen auch sie in das MODULES Array der ''rc.conf'' eingetragen werden:<br />
MODULES=(... acpi_cpufreq '''cpufreq_ondemand''' ...)<br />
<br />
Welcher ''Governor'' dann die Kontrolle übernimmt, kann mit<br />
cpufreq-set -g ondemand<br />
eingestellt werden. Diese Einstellung geht nach einem Neustart verloren, daher kann sie mit dem cpufreq Daemon beim Systemstart gesetzt werden.<br />
<br />
=== cpufreq Daemon ===<br />
Nun muss die /etc/conf.d/cpufreq angepasst werden. Darin können der ''Governor'' und die minimale und höchste Prozessorfrequenz eingestellt werden.<br />
{{Hinweis|Die Angaben zu den Frequenzen können auskommentiert werden, da sie automatisch erkannt werden sollten.}}<br />
<br />
#configuration for cpufreq control<br />
<br />
# valid governors:<br />
# ondemand, performance, powersave,<br />
# conservative, userspace<br />
governor="ondemand"<br />
<br />
# valid suffixes: Hz, kHz (default), MHz, GHz, THz<br />
#min_freq="1.0GHz"<br />
#max_freq="2.1GHz"<br />
<br />
Nun kann der Daemon gestartet werden:<br />
/etc/rc.d/cpufreq start<br />
<br />
Um den Daemon beim Systemstart zu laden, muss ''cpufreq'' in das DAEMONS Array der ''rc.conf'' eingetragen werden:<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Anschließend kann die Prozessorfrequenz mit<br />
cat /proc/cpuinfo<br />
oder<br />
cpufreq-info<br />
bzw. in Echtzeit mit <br />
watch grep \"cpu MHz\" /proc/cpuinfo<br />
<br />
überprüft werden.<br />
<br />
== Bekannte Probleme ==<br />
'''Eventuell hier noch bekannte Probleme mit eintragen:'''<br />
<br />
Einige AM2/AM2+ Boards:<br />
* Deaktivierung des AM2-Boost.<br />
* C&Q muss im BIOS aktiviert sein.<br />
<br />
VMWare Server 2.0:<br />
* Falsche Angabe des Taktes ( Bsp.: 500 GHz )<br />
* Träges Verhalten bei aktiven C&Q<br />
<br />
== Weblinks ==<br />
* [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html cpufrequtils Website] {{sprache|en}}<br />
<br />
[[Kategorie:Energieverwaltung]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9169
Benutzer:Orschiro
2010-02-07T11:48:45Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Ordnergröße in Shell anzeigen===<br />
<br />
du -sh /Verzeichnis<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9160
Benutzer:Orschiro
2010-02-03T08:17:49Z
<p>Orschiro: /* dwm */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9102
Benutzer:Orschiro
2010-01-27T07:16:18Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Tar-Archiv entpacken===<br />
<br />
tar xfv [ARCHIVNAME].tar<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9047
Benutzer:Orschiro
2010-01-11T19:32:46Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Anzahl Dateien in einem Ordner herausfinden===<br />
<br />
ls | wc -l<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9036
Benutzer:Orschiro
2010-01-10T11:59:25Z
<p>Orschiro: /* dwm */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
patch < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=9035
Benutzer:Orschiro
2010-01-10T09:46:23Z
<p>Orschiro: /* dwm rekompilieren */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
patch -p1 < patch.diff<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Schriftarten&diff=9034
Schriftarten
2010-01-09T21:12:43Z
<p>Orschiro: /* Empfohlene Schriften */</p>
<hr />
<div>[[Bild:Fontselect ooo.png|thumb|Schriftauswahl in [[OpenOffice.org]]]]<br />
Neben den Standard-Schriftarten, die der [[X|X-Server]] mitbringt, ist es sinnvoll, auch einige andere Schriftarten zu installieren. Durch diese Schriftarten kann das Schriftbild gegenüber der Standardschriftarten deutlich verbessert werden, da sie alle modernen Schriftverbesserungstechniken unterstützen, die der X-Server bietet.<br />
<br />
== Empfohlene Schriften ==<br />
*'''ttf-bitstream-vera''' unterstützt volles Hinting, was die Darstellung auf Computermonitoren stark verbessert.<br />
*'''ttf-dejavu''' ist eine Sammlung von freien Schriftarten, die ihren Ursprung in ''Bitstream Vera'' haben. DejaVu unterstützt allerdings einen größeren Zeichensatz.<br />
*'''ttf-ms-fonts''' sind die von Microsoft freigegebenen Kern-Schriftarten von Windows, die vor allem dann installiert werden sollten, wenn man Windows-Programme verwendet, oder die „Original-Darstellung“ einiger Websites haben möchte.<br />
*'''ttf-liberation''' wird von Red Hat als freie Alternative zu den Microsoft-Schriftarten entwickelt. <br />
*'''xorg-fonts-100dpi''' und '''xorg-fonts-75dpi''' sind X.org-Schriftarten in 100 dpi und 75 dpi. Quasi als „Fallback“, wenn man einen sehr schlanken X-Server verwenden möchte, aber dennoch einigermaßen schöne Schriftdarstellung will.<br />
*'''terminus-font''' (aus „[[ArchLinux_User-Community_Repository|community]]“) ist eine sehr schöne Monospace-Bitmapschrift, die sich gut im X-Terminal (z.B. [[xterm]]) macht.<br />
*'''ttf-inconsolata''' ist eine weitere sehr ansprechende Schriftart für die Konsole.<br />
<br />
== Schriften je Benutzer ==<br />
Neben der systemweiten Installation von Schriftarten über Pacman, oder das manuelle Kopieren in „/usr/share/fonts“ besteht auch die Möglichkeit, dass sich der User selbst Schriftarten in seinem home-Verzeichnis ablegt, und diese verwendet. Dazu sind folgende Schritte nötig …<br />
<br />
# Anlegen des Verzeichnisses „.fonts“ im home-Verzeichnis<br />
# Kopieren der Schrift-Datei in dieses Vezeichnis<br />
# Ausführen des Befehls „fc-cache -v .fonts/“<br />
<br />
Danach sind die Schriftarten sofort verfügbar.<br />
<br />
== Bessere systemweite Darstellung von TrueType Fonts ==<br />
Nachdem TrueType Fonts (wie beispielsweise die von Microsoft) installiert sind, wird man gelegentlich feststellen, daß deren Darstellung erheblich zu wünschen übrig läßt, nämlich dann, wenn Freetype nicht bereits durch Desktopumgebungen wie Gnome oder KDE hinreichend konfiguriert ist und deshalb zu viel (!) an der Schriftdarstellung herumzumanipulieren sucht. TrueType Schriftarten sehen oft bereits ohne jede Manipulation (Hinting, Antialiasing usw.) schon sehr gut aus, ansonsten hingegen eigenartig verschmiert, was nicht nur den optischen Eindruck, sondern vor allem die Lesbarkeit insbesondere bei kleinen Größen deutlich beeinträchtigt. Man muß in solchen Fällen Freetype explizit mitteilen, daß es solche Schriften hinsichtlich Hinting und Antialiasing nicht behandeln soll. Dazu sind folgende Schritte nötig:<br />
<br />
# Kopieren der Datei, auf die der symbolische link /etc/fonts/conf.d/10-autohint.conf zeigt, in eine eigene, lokale Datei, meinetwegen autohint.conf<br />
# Aufheben des symbolischen links /etc/fonts/conf.d/10-autohint.conf<br />
# Neuanlegen des symbolischen links unter gleichem Namen jedoch auf die neu angelegte, lokale Kopie zeigend. Wir können nun die lokale Kopie editieren, ohne die ursprüngliche link-Quelle zu beschädigen. Das System wird sie wie die ursprüngliche Datei verwenden.<br />
# In der neu angelegten Datei sind am besten sämtliche bisherigen Einstellungen (sofern man nicht genau weiß, was diese tun) durch folgende zu ersetzen:<br />
<br />
'''Hinting und Antialiasing zunächst generell anschalten'''<br />
<match target="pattern"><br />
<edit name="hinting"><br />
<bool>'''true'''</bool><br />
</edit><br />
<edit name="hintstyle"><br />
<const>hintfull</const><br />
</edit><br />
<edit name="antialias"><br />
<bool>'''true'''</bool><br />
</edit><br />
</match><br />
<br />
<match target="font"><br />
<edit name="autohint"><br />
<bool>'''true'''</bool><br />
</edit><br />
</match><br />
<br />
'''Hinting für PostScript Fonts ausschalten'''<br />
<match target="font"><br />
<test name="fontformat"><br />
<string>Type 1</string><br />
<string>CFF</string><br />
</test><br />
<edit name="autohint"><br />
<bool>'''false'''</bool><br />
</edit><br />
</match><br />
<br />
'''Hinting für TrueType Fonts ausschalten'''<br />
<match target="font"><br />
<test name="fontformat"><br />
<string>TrueType</string><br />
</test><br />
<edit name="autohint"><br />
<bool>'''false'''</bool><br />
</edit><br />
</match><br />
<br />
'''für namentlich bekannte TrueType Fonts Antialiasing ausschalten, sofern die Schriftgröße 16 Pixel unterschreitet''', diese 16 Pixel sind ein Erfahrungswert, bei noch größeren Schriftgrößen wird das fehlende Antialiasing dann spürbar<br />
<match target="font"><br />
<test name="family"><br />
<string>Andale Mono</string><br />
<string>Arial</string><br />
<string>Comic Sans MS</string><br />
<string>Georgia</string><br />
<string>Impact</string><br />
<string>Trebuchet MS</string><br />
<string>Verdana</string><br />
<string>Courier New</string><br />
<string>Times New Roman</string><br />
<string>Tahoma</string><br />
<string>Webdings</string><br />
<string>Albany AMT</string><br />
<string>Thorndale AMT</string><br />
<string>Cumberland AMT</string><br />
<string>Andale Sans</string><br />
<string>Andy MT</string><br />
<string>Bell MT</string><br />
<string>Monotype Sorts</string><br />
<string>Lucida Sans Typewriter</string><br />
<string>Lucida Sans</string><br />
<string>Lucida Bright</string><br />
</test><br />
<test name="pixelsize" compare="less_eq"><br />
<double>'''16'''</double><br />
</test><br />
<edit name="autohint"><br />
<bool>'''false'''</bool><br />
</edit><br />
<edit name="antialias"><br />
<bool>'''false'''</bool><br />
</edit><br />
</match><br />
<br />
Mit diesen Einstellungen sollten TrueType Fonts systemweit ein exzellentes Schriftbild in so ziemlich allen Größen erzeugen. Man muß nun nur noch den X-Server stoppen und neu starten.<br />
<br />
[[Kategorie: X11]]<br />
[[Kategorie: Büro]]<br />
[[Kategorie:Konfiguration]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8997
Benutzer:Orschiro
2010-01-03T19:21:43Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Alle Speichermedien anzeigen===<br />
<br />
fdisk -l<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8996
Benutzer:Orschiro
2010-01-03T10:31:28Z
<p>Orschiro: /* Bild und Audio verknüpfen */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4 # -t gibt an, wie lange geloopt werden soll<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8995
Benutzer:Orschiro
2010-01-03T09:52:21Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Bild und Audio verknüpfen===<br />
<br />
ffmpeg -loop_input -r 25 -t 0:0:0 -i image.jpg -i wav.wav -ab 192k output.mp4<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8962
Benutzer:Orschiro
2009-12-28T08:34:25Z
<p>Orschiro: /* Iso auf DVD brennen */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8961
Benutzer:Orschiro
2009-12-28T08:34:18Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Iso auf DVD brennen===<br />
<br />
wodim -v dev=/dev/sr0 speed=4 Image.iso <br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8959
Benutzer:Orschiro
2009-12-27T09:30:59Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===.Xdefaults neu laden===<br />
<br />
xrdb -merge ~/.Xdefaults<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8915
Benutzer:Orschiro
2009-11-30T20:18:43Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===Wav aufnehmen===<br />
<br />
arecord [Datei]<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Intel&diff=8889
Intel
2009-11-24T07:13:42Z
<p>Orschiro: /* Kernel Mode Setting (KMS) */</p>
<hr />
<div>{{righttoc}}<br />
Intel Grafik-Hardware wird unter Linux gut unterstützt, da Intel sich an der Entwicklung massiv beteiligt. Die einzige Ausnahme stellen die Chips der GMA-500 Reihe dar, die in manchen Netbooks zum Einsatz kommen. Sie stammen nicht direkt von Intel und ihr technischer Aufbau ist nicht offengelegt. Alle anderen Chips sollten ohne viel Aufwand einfach funktionieren.<br />
<br />
==Installation==<br />
<br />
Der Treiber wird mittels<br />
<br />
pacman -Sy xf86-video-intel<br />
<br />
installiert.<br />
<br />
==Konfiguration==<br />
Eine Konfiguration mit der Datei ''xorg.conf'' ist nicht mehr notwendig. Der Treiber wird automatisch geladen, erkennt im Regelfall die native Auflösung des Monitors und stellt diese ein.<br />
<br />
Um bei einem aktuellen Treiber den vollen Funktionsumfang nutzen zu können, sollte Kernel Mode Setting verwendet werden, da nur noch darüber 2D-Beschleunigung mittels UXA möglich ist. EXA und XAA wurden aus dem Treiber entfernt.<br />
{{Hinweis|Der Benutzer muss Mitglied der Gruppe '''video''' sein.}}<br />
<br />
===Kernel Mode Setting (KMS)===<br />
Intel wird in Zukunft nur noch KMS unterstützen, was bedeutet, dass das drm-Modul (i915) des Kernels das Einstellen der Auflösung und weitere Aufgaben übernimmt. Damit werden auch Treiber für den Linux Framebuffer wie ''vesafb'', ''uvesafb'' oder ''intelfb'' ersetzt. Dadurch lassen sich auch die virtuellen Konsolen wesentlich schneller wechseln, da die Auflösung nicht mehr geändert wird.<br />
<br />
Um KMS zu nuten, muss in der Datei ''/etc/modprobe.d/modprobe.conf'' die Zeile<br />
options i915 modeset=1<br />
hinzugefügt werden.<br />
<br />
Damit die Bildschirmauflösung bereits möglichst früh gesetzt werden kann, müssen dann die dazu nötigen Module und Dateien dem initramfs-Image hinzugefügt werden. Dazu muss müssen in der Datei ''/etc/mkinitcpio.conf'' die Zeilen ''MODULES'' und ''FILES'' geändert werden:<br />
MODULES="intel_agp i915"<br />
FILES="/etc/modprobe.d/modprobe.conf"<br />
<br />
Anschließend muss noch das Image neu erstellt werden.<br />
mkinitcpio -p kernel26<br />
<br />
Die ''vga'' und ''video'' Parameter des Kernel sollten ebenfalls entfernt werden.<br />
<br />
==Links==<br />
<br />
* [http://www.intellinuxgraphics.com Offizielle Seite des Treibers] {{Sprache|en}}<br />
<br />
<br />
[[Kategorie:Hardware]]<br />
[[Kategorie:Grafikkarten]]<br />
[[Kategorie:X11]]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8885
Benutzer:Orschiro
2009-11-21T08:12:29Z
<p>Orschiro: /* dwm config.h */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8884
Benutzer:Orschiro
2009-11-21T08:11:47Z
<p>Orschiro: /* dwm config.h */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8883
Benutzer:Orschiro
2009-11-21T08:11:27Z
<p>Orschiro: /* dwm config.h */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8882
Benutzer:Orschiro
2009-11-21T08:11:06Z
<p>Orschiro: /* dwm config.h */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8881
Benutzer:Orschiro
2009-11-21T08:08:15Z
<p>Orschiro: /* dwm rekompilieren */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi<br />
<br />
===dwm config.h===<br />
<br />
/* See LICENSE file for copyright and license details. */<br />
<br />
/* appearance */<br />
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";<br />
static const char normbordercolor[] = "#333333";<br />
static const char normbgcolor[] = "#051121";<br />
static const char normfgcolor[] = "#FFFFFF";<br />
static const char selbordercolor[] = "#1793D1";<br />
static const char selbgcolor[] = "#1793D1";<br />
static const char selfgcolor[] = "#FFFFFF";<br />
static const unsigned int borderpx = 1; /* border pixel of windows */<br />
static const unsigned int snap = 32; /* snap pixel */<br />
static const Bool showbar = True; /* False means no bar */<br />
static const Bool topbar = True; /* False means bottom bar */<br />
<br />
/* tagging */<br />
static const char *tags[] = { "terms", "communicate", "browser", "server", "audio", "other"$<br />
<br />
static const Rule rules[] = {<br />
/* class instance title tags mask isfloating monitor */<br />
{ "Gimp", NULL, NULL, 0, True, -1 },<br />
{ "Firefox", NULL, NULL, 1 << 2, False, -1 },<br />
{ "XTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "UXTerm", NULL, NULL, 1 << 0, False, -1 },<br />
{ "alsamixer",NULL, NULL, 1 << 4, False, -1 },<br />
{ "server", NULL, NULL, 1 << 3, False, -1 },<br />
{ "Skype", NULL, NULL, 1 << 1, False, -1 },<br />
{ "Apvlv", NULL, NULL, 1 << 5, False, -1 },<br />
};<br />
<br />
/* layout(s) */<br />
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */<br />
static const Bool resizehints = False; /* True means respect size hints in tiled resizals */<br />
<br />
static const Layout layouts[] = {<br />
/* symbol arrange function */<br />
{ "[]=", tile }, /* first entry is default */<br />
{ "><>", NULL }, /* no layout function means floating behavior */<br />
{ "[M]", monocle },<br />
};<br />
<br />
/* key definitions */<br />
#define MODKEY Mod1Mask<br />
#define TAGKEYS(KEY,TAG) \<br />
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \<br />
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },<br />
<br />
/* helper for spawning shell commands in the pre dwm-5.0 fashion */<br />
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }<br />
<br />
/* commands */<br />
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", norm$<br />
static const char *termcmd[] = { "uxterm", NULL };<br />
static const char *mutecmd[] = { "amixer", "set", "Master", "toggle", NULL };<br />
static const char *volupcmd[] = { "amixer", "set", "Master", "2-", "unmute", NULL };<br />
static const char *voldowncmd[] = { "amixer", "set", "Master", "2+", "unmute", NULL };<br />
<br />
static Key keys[] = {<br />
/* modifier key function argument */<br />
{ 0, 0x1008ff12, spawn, {.v = mutecmd } },<br />
{ 0, 0x1008ff11, spawn, {.v = volupcmd }},<br />
{ 0, 0x1008ff13, spawn, {.v = voldowncmd} },<br />
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },<br />
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },<br />
{ MODKEY, XK_b, togglebar, {0} },<br />
{ MODKEY, XK_j, focusstack, {.i = +1 } },<br />
{ MODKEY, XK_k, focusstack, {.i = -1 } },<br />
{ MODKEY, XK_h, setmfact, {.f = -0.05} },<br />
{ MODKEY, XK_l, setmfact, {.f = +0.05} },<br />
{ MODKEY, XK_Return, zoom, {0} },<br />
{ MODKEY, XK_Tab, view, {0} },<br />
{ MODKEY|ShiftMask, XK_c, killclient, {0} },<br />
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },<br />
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },<br />
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },<br />
{ MODKEY, XK_space, setlayout, {0} },<br />
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },<br />
{ MODKEY, XK_0, view, {.ui = ~0 } },<br />
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },<br />
{ MODKEY, XK_comma, focusmon, {.i = -1 } },<br />
{ MODKEY, XK_period, focusmon, {.i = +1 } },<br />
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },<br />
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },<br />
TAGKEYS( XK_1, 0)<br />
TAGKEYS( XK_2, 1)<br />
TAGKEYS( XK_3, 2)<br />
TAGKEYS( XK_4, 3)<br />
TAGKEYS( XK_5, 4)<br />
TAGKEYS( XK_6, 5)<br />
TAGKEYS( XK_7, 6)<br />
TAGKEYS( XK_8, 7)<br />
TAGKEYS( XK_9, 8)<br />
{ MODKEY|ShiftMask, XK_q, quit, {0} },<br />
};<br />
<br />
/* button definitions */<br />
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */<br />
static Button buttons[] = {<br />
/* click event mask button function argument */<br />
{ ClkLtSymbol, 0, Button1, setlayout, {0} },<br />
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layo$<br />
{ ClkWinTitle, 0, Button2, zoom, {0} },<br />
{ ClkStatusText, 0, Button2, spawn, {.v = termc$<br />
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },<br />
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },<br />
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },<br />
{ ClkTagBar, 0, Button1, view, {0} },<br />
{ ClkTagBar, 0, Button3, toggleview, {0} },<br />
{ ClkTagBar, MODKEY, Button1, tag, {0} },<br />
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },<br />
};</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8880
Benutzer:Orschiro
2009-11-21T07:34:38Z
<p>Orschiro: /* dwm rekompilieren */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -efi</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8879
Benutzer:Orschiro
2009-11-21T07:34:12Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]<br />
<br />
===dwm rekompilieren===<br />
<br />
makepkg -g >> PKGBUILD<br />
<br />
makepkg -fi</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8868
Benutzer:Orschiro
2009-11-18T21:33:17Z
<p>Orschiro: /* Label einer Partition setzen */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label /dev/sda [ new-label ]</div>
Orschiro
https://wiki.archlinux.de/index.php?title=Benutzer:Orschiro&diff=8867
Benutzer:Orschiro
2009-11-18T21:31:48Z
<p>Orschiro: /* Tipps und Tricks */</p>
<hr />
<div>== Tipps und Tricks ==<br />
<br />
===netcfg Ascii-Code als Key verwenden===<br />
[...]<br />
Key="s:hierfolgtderString"<br />
[...]<br />
<br />
===Label einer Partition setzen===<br />
<br />
e2label device [ new-label ]</div>
Orschiro