<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Konfiguration on CoderOnline</title>
    <link>https://coderonline.de/de/configuration/</link>
    <description>Recent content in Konfiguration on CoderOnline</description>
    <generator>Hugo</generator>
    <language>de</language>
    <lastBuildDate>Thu, 28 Dec 2023 11:01:03 +0100</lastBuildDate>
    <atom:link href="https://coderonline.de/de/configuration/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Pulseaudio</title>
      <link>https://coderonline.de/de/configuration/server/pulseaudio/</link>
      <pubDate>Sun, 05 Dec 2021 22:05:05 +0000</pubDate>
      <guid>https://coderonline.de/de/configuration/server/pulseaudio/</guid>
      <description>&lt;h2 id=&#34;network-server&#34;&gt;&#xA;  Network Server&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#network-server&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Ein Pulseaudio Netzwerkserver ist leicht einzurichten und praktisch,&#xA;wenn man mehrere Computer oder virtuelle Maschinen, aber nur ein paar&#xA;Lautsprecher hat. Zudem unterstützen nicht alle remote desktop lösungen&#xA;sound.&lt;/p&gt;&#xA;&lt;h3 id=&#34;firewall&#34;&gt;&#xA;  Firewall&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#firewall&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Der Server wartet auf eingehende Verbindungen an Port &lt;code&gt;4731&lt;/code&gt;, weshalb&#xA;dieser in der Firewall aktiviert werden muss.&lt;/p&gt;&#xA;&lt;h2 id=&#34;umleitung-zu-jack-audio-server&#34;&gt;&#xA;  Umleitung zu Jack Audio Server&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#umleitung-zu-jack-audio-server&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;pacmd load-module module-jack-sink channels=2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;connecting-a-client-to-a-running-server&#34;&gt;&#xA;  Connecting a client to a running Server&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#connecting-a-client-to-a-running-server&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;pactl load-module module-tunnel-sink-new sink_name=server_name channels=2 rate=48000 server=127.0.0.1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;where 127.0.0.1 is the IP-Address or host name of the pulseaudio server&#xA;and all other parameters are optional.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nginx webserver einrichten, owncloud und DAVdroid</title>
      <link>https://coderonline.de/de/configuration/server/webserver/nginx/</link>
      <pubDate>Wed, 11 Feb 2015 17:37:02 +0100</pubDate>
      <guid>https://coderonline.de/de/configuration/server/webserver/nginx/</guid>
      <description>&lt;h3 id=&#34;zertifikat-erstellen-mit-openssl&#34;&gt;&#xA;  Zertifikat erstellen mit openssl&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#zertifikat-erstellen-mit-openssl&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Ein Zertifikat zu erstellen gilt in vielen Anleitungen als schwierig,&#xA;lässt sich aber auch mit einem Einzeiler erledigen:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd /usr/local/etc/ssl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl genrsa -rand -genkey -out cert.key &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl req -new -x509 -days &lt;span style=&#34;color:#ae81ff&#34;&gt;365&lt;/span&gt; -key cert.key -out cert.crt -sha256&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat cert.key cert.crt &amp;gt; cert.pem&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# or use a csr file (optional)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl req -new -sha256 -key cert.key -out cert.csr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://www.freebsd.org/doc/en/articles/ldap-auth/ssl-ca.html&#34;&gt;freebsd-doku&lt;/a&gt;\&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;-nodes&lt;/dt&gt;&#xA;&lt;dd&gt;verhindert, dass die .key-datei, also der private schlüssel selber&#xA;mit einem Passwort verschlüsselt wird (denn dann müsste man das bei&#xA;jedem Start des Webservers eintippen)&lt;/dd&gt;&#xA;&lt;dt&gt;-x509&lt;/dt&gt;&#xA;&lt;dd&gt;zeichnet das Zertifikat explizit als selbstsigniert aus (kann dann&#xA;ggf. nicht als Systemzertifikat verwendet werden, siehe nächster&#xA;Abschnitt)&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;Der Server sollte noch so konfiguriert werden, dass er nicht alle&#xA;Verschlüsselungen akzeptiert, denn einige sind veraltet und gelten als&#xA;unsicher. Am Beispiel von lighttpd:&lt;/p&gt;</description>
    </item>
    <item>
      <title>asterisk</title>
      <link>https://coderonline.de/de/configuration/server/asterisk/</link>
      <pubDate>Sat, 31 Jan 2015 21:31:06 +0100</pubDate>
      <guid>https://coderonline.de/de/configuration/server/asterisk/</guid>
      <description>&lt;p&gt;The following command can be used to convert all wave-files in a folder into&#xA;a format, which asterisk understands:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;/bin/bash&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;find -name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;*.wav&amp;#39;&lt;/span&gt; -exec basename &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; .wav ; | xargs -iQ /usr/bin/sox &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Q&amp;#34;&lt;/span&gt;.wav -t raw -b &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; -r &lt;span style=&#34;color:#ae81ff&#34;&gt;32000&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Q&amp;#34;&lt;/span&gt;.sln32&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;or&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;find -name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;*.wav&amp;#39;&lt;/span&gt; -exec bash -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;FILE=&amp;#34;{}&amp;#34; &amp;amp;&amp;amp; echo $FILE &amp;#34;=&amp;gt;&amp;#34; ${FILE/wav/alaw}  &amp;amp;&amp;amp; ffmpeg -i &amp;#34;$FILE&amp;#34; -ar 8000 -ac 1 -ab 64k -f alaw ${FILE/wav/alaw} &amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;folders&#34;&gt;&#xA;  Folders&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#folders&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;folder&lt;/th&gt;&#xA;          &lt;th&gt;description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;/var/spool/asterisk/voicemail/default&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;where voicemail stores files&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;/usr/local/etc/asterisk/&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;main configuration files&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>ffmpeg</title>
      <link>https://coderonline.de/de/configuration/other_software/ffmpeg/</link>
      <pubDate>Mon, 09 Dec 2013 03:00:05 +0100</pubDate>
      <guid>https://coderonline.de/de/configuration/other_software/ffmpeg/</guid>
      <description>&lt;h3 id=&#34;allgemeines-zu-ffmpeg&#34;&gt;&#xA;  Allgemeines zu ffmpeg&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#allgemeines-zu-ffmpeg&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Die Entwicklung von ffmpeg geht sehr schnell und leider haben sich&#xA;in der Vergangenheit (Version 1.x auf 2.x) viele&#xA;Kommandozeilenparameter geändert. Deshalb nicht zu lange mit Tipps&#xA;aus Foren aufhalten, die irgendwie nicht funktionieren!&lt;/li&gt;&#xA;&lt;li&gt;Eine aktuelle Version sollte von der&#xA;&lt;a href=&#34;http://www.ffmpeg.org/&#34;&gt;Webseite&lt;/a&gt; heruntergeladen werden.&#xA;Wenigstens Fedora und Ubuntu haben derzeit keine aktuellen Packages!&lt;/li&gt;&#xA;&lt;li&gt;Es gibt eine statisch gelinkte Version, die man auch auf seinem&#xA;Webserver laufen lassen kann&lt;/li&gt;&#xA;&lt;li&gt;das ffprobe, das im Paket enthalten ist, kann Videoformate erkennen&#xA;und daraus csv, xml oder JSON generieren&lt;/li&gt;&#xA;&lt;li&gt;Es gibt eine GUI für ffmpeg, die winff heißt&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;kommandozeile-von-ffmpeg&#34;&gt;&#xA;  Kommandozeile von ffmpeg&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#kommandozeile-von-ffmpeg&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;-threads 7&lt;/dt&gt;&#xA;&lt;dd&gt;regelt effektiv wieviele Prozessoren in einem Mehrprozessorsystem&#xA;zum Umwandeln genutzt werden und von daher wie lange das Umwandeln&#xA;dauert. Leider wird das nicht von allen Videocodecs unterstützt. Als&#xA;Faustregel: Anzahl der CPU-Kerne -1 als Wert einstellen und 0, wenn&#xA;man nicht weiß, wieviele Kerne man hat (das ist die Automatik)&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h3 id=&#34;allgemeines-zu-kodierung-für-verschiedene-geräte&#34;&gt;&#xA;  Allgemeines zu Kodierung für verschiedene Geräte&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#allgemeines-zu-kodierung-f%c3%bcr-verschiedene-ger%c3%a4te&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Der VLC Mediaplayer ist kein guter Player zum testen! Unter bislang&#xA;ungeklärten Umständen verwaschen die Bilder oder Farben mit der&#xA;Zeit, um beim nächsten Keyframe wieder auf &amp;quot;richtig&amp;quot; zu springen.&#xA;Ergebnis wirkt optisch ruckelig, aber eben nur im VLC!&lt;/li&gt;&#xA;&lt;li&gt;viele Geräte untersützen für x264 nur Farbtiefen bis 12bit. Das&#xA;Pixelformat dazu ist bei ffmpeg yuv420p und sollte immer mit&#xA;angegeben werden, weil die automatik manchmal quatsch macht.&lt;/li&gt;&#xA;&lt;li&gt;die Konvertierung nach webm funktioniert mit Standardeinstellungen&#xA;gar nicht gut: Die Qualität ist mies. Das liegt an den -qmin und&#xA;-qmax werten, die angeblich optional anzugeben sind, aber wenn man&#xA;sie nicht angibt, funktionierts nicht wie erwartet.&lt;/li&gt;&#xA;&lt;li&gt;Handymonitore sind oft Dunkler eingestellt, als Bildschirme auf dem&#xA;Schreibtisch. Das spart Akku. Aber auch, wenn man mit dem Telefon&#xA;draußen ist, wirkt der Bildschirm dunkler gegen das Tageslicht.&#xA;Deshalb sollten Videos für mobile Geräte etwas aufgehellt werden.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;erstellen-eines-webm-videos-für-html5&#34;&gt;&#xA;  Erstellen eines webm-videos für html5&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#erstellen-eines-webm-videos-f%c3%bcr-html5&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Erstellen einer webm-datei für ein html5-video-source-tag...&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ffmpeg -i %04d.png -c:v libvpx -quality good -cpu-used 0 -crf 10 -qmin 4 -qmax 20 -g 25 -threads 7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;dl&gt;&#xA;&lt;dt&gt;-g 25&lt;/dt&gt;&#xA;&lt;dd&gt;regelt nach wievielen frames ein keyframe erzwungen werden soll&lt;/dd&gt;&#xA;&lt;dt&gt;-crf 10&lt;/dt&gt;&#xA;&lt;dd&gt;regelt die angepeilte Durchschnittsqualität. Sollte deshalb zwischen&#xA;qmin und qmax liegen.&lt;/dd&gt;&#xA;&lt;dt&gt;-qmin und -qmax&lt;/dt&gt;&#xA;&lt;dd&gt;minimale und maximale Kompressionsqualität pro frame (zwischen 4 und&#xA;60 | 60=schlecht)&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h3 id=&#34;android&#34;&gt;&#xA;  Android&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#android&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Es gibt eine &lt;a href=&#34;http://developer.android.com/guide/appendix/media-formats.html&#34;&gt;Liste der auf Android-Telefonen unterstützten&#xA;Videoformate&lt;/a&gt;.&#xA;Diese sollte benutzt werden, weil es Hardwarebeschleuniger für&#xA;Videoformate gibt ohne die es beim Handy meistens auch nicht geht.&#xA;&lt;strong&gt;Wichtig&lt;/strong&gt; ffmpeg in der Version 2.0 wird benötigt, um den Videofilter&#xA;curves nutzen zu können! Auf die Weise wird das Video so beschnitten,&#xA;dass es den Bildschirm möglichst gut ausfüllt:&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://coderonline.de/de/configuration/server/openldap/openldap/</link>
      <pubDate>Fri, 04 Oct 2013 04:57:13 +0200</pubDate>
      <guid>https://coderonline.de/de/configuration/server/openldap/openldap/</guid>
      <description>&lt;p&gt;Nach einer Schnellinstallationsanleitung für OpenLDAP muss man leider&#xA;länger suchen. Das will ich nicht nochmal und ich will mich auch nicht&#xA;darauf verlassen, dass die Quellen noch im Netz erreichbar sind, wenn&#xA;ich das nachschlagen will. Deshalb hier nochmal in besonders kurz: Ziel&#xA;des Spiels: Ein LDAP-Server, den man erstmal als Addressbuch nutzen&#xA;kann.&lt;/p&gt;&#xA;&lt;h3 id=&#34;einrichten-des-ldap-servers&#34;&gt;&#xA;  Einrichten des LDAP-Servers&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#einrichten-des-ldap-servers&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Die Pakete heissen unter Fedora vermutlich etwas anders, als bei anderen&#xA;Linuxdistributionen. yum ist das, was unter debian apt-get ist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenBox</title>
      <link>https://coderonline.de/de/configuration/server/xorg-server/openbox/</link>
      <pubDate>Tue, 26 Mar 2013 20:11:16 +0100</pubDate>
      <guid>https://coderonline.de/de/configuration/server/xorg-server/openbox/</guid>
      <description>&lt;p&gt;OpenBox hat kein eigenst dafür entwickeltes Panel. Der Windowmanager&#xA;wird gerne zusammen mit dem lxpanel genutzt, aber natürlich&#xA;funktionieren auch andere Panels.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tastenkombination-zum-fenster-maximieren&#34;&gt;&#xA;  Tastenkombination zum Fenster maximieren&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#tastenkombination-zum-fenster-maximieren&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Um &lt;code&gt;Super+X&lt;/code&gt; zum horizontalen und &lt;code&gt;Super+C&lt;/code&gt; zum vertikalen Maximieren&#xA;von Fenstern nutzen zu können:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- ~/.config/openbox/rc.conf&amp;#34; --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;keybind&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;key=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;W-X&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;action&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ToggleMaximize&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;direction&amp;gt;&lt;/span&gt;horizontal&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/direction&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/keybind&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;keybind&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;key=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;W-C&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;action&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ToggleMaximize&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;direction&amp;gt;&lt;/span&gt;vertical&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/direction&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/keybind&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;siehe-auch&#34;&gt;&#xA;  siehe auch&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#siehe-auch&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://openbox.org/wiki/Help:Bindings&#34;&gt;http://openbox.org/wiki/Help:Bindings&lt;/a&gt;&#xA;&lt;a href=&#34;http://openbox.org/wiki/Help:Actions&#34;&gt;http://openbox.org/wiki/Help:Actions&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>xorg x11: slow/sticky keys deaktivieren</title>
      <link>https://coderonline.de/de/configuration/server/xorg-server/xorg-x11/</link>
      <pubDate>Mon, 25 Feb 2013 15:20:22 +0100</pubDate>
      <guid>https://coderonline.de/de/configuration/server/xorg-server/xorg-x11/</guid>
      <description>&lt;p&gt;Was einige Windowmanager sowieso schon konnten, kann anscheinend jetzt&#xA;auch der X-Server auch selber: Hält man eine Taste für mehr als 15&#xA;Sekunden gedrückt, rasten alle Tasten ein und reagieren nur noch, wenn&#xA;man sie länger als eine Sekunde gedrückt hält. Das heißt &amp;quot;sticky keys&amp;quot;&#xA;und nervt besonders, wenn man mit Grafikprogrammen arbeitet, in denen&#xA;gedrückt halten der Großschreibtaste sogar Sinn machen kann.&#xA;Deaktivieren konnte ich dieses Problemfeature in der&#xA;Standardinstallation nicht. Aber schließlich habe ich &lt;code&gt;xkbset&lt;/code&gt;&#xA;nachinstalliert und damit hatte ich dann schließlich Erfolg:&lt;/p&gt;</description>
    </item>
    <item>
      <title>pidgin</title>
      <link>https://coderonline.de/de/configuration/other_software/pidgin-fernsteuern/</link>
      <pubDate>Sat, 02 Feb 2013 22:58:46 +0100</pubDate>
      <guid>https://coderonline.de/de/configuration/other_software/pidgin-fernsteuern/</guid>
      <description>&lt;p&gt;Über &lt;a href=&#34;http://www.freedesktop.org/wiki/Software/dbus&#34;&gt;D-Bus&lt;/a&gt; lassen sich&#xA;Befehle an &lt;a href=&#34;http://www.pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; schicken. Das ganze ist&#xA;bislang nicht sonderlich gut dokumentiert, weshalb ich meine&#xA;Erkenntnisse teilen möchte. Mit dem D-Bus-Debugger&#xA;&lt;a href=&#34;http://live.gnome.org/DFeet/&#34;&gt;D-Feet&lt;/a&gt; konnte ich etwas&#xA;reverse-engineering betreiben und mir Konzepte der D-Bus-Kommunikation&#xA;von Pidgin erschließen. Dabei herausgekommen sind zwei Pythonscripts&lt;/p&gt;&#xA;&lt;h3 id=&#34;von-der-kommandozeile-aus-nachricht-schreiben&#34;&gt;&#xA;  Von der Kommandozeile aus Nachricht schreiben&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#von-der-kommandozeile-aus-nachricht-schreiben&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;purple-remote jabber:goim?screenname&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;hackerspace-bielefeld@conference.jabber.ccc.de&amp;amp;message&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;test22&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;history-eines-chatraums-ausgeben&#34;&gt;&#xA;  History eines Chatraums ausgeben&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#history-eines-chatraums-ausgeben&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# getChatHistory.py&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; dbus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bus &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dbus&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;SessionBus()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;obj &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bus&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_object(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;im.pidgin.purple.PurpleService&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/im/pidgin/purple/PurpleObject&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;purple &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dbus&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Interface(obj, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;im.pidgin.purple.PurpleInterface&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; conv &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleGetConversations():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; msg &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; reversed(purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleConversationGetMessageHistory(conv)):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleConversationMessageGetSender(msg) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;gt;&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleConversationMessageGetMessage(msg) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;n&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;liste-der-benutzer-im-chat-ausgeben&#34;&gt;&#xA;  Liste der Benutzer im Chat ausgeben&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#liste-der-benutzer-im-chat-ausgeben&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# getUsers.py&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/usr/bin/env python&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; dbus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bus &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dbus&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;SessionBus()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;obj &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bus&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_object(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;im.pidgin.purple.PurpleService&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/im/pidgin/purple/PurpleObject&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;purple &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dbus&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Interface(obj, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;im.pidgin.purple.PurpleInterface&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; chat &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleGetChats():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  chat &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleConvChat(chat)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  userlist &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; usr &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleConvChatGetUsers(chat):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    userlist&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append( (usr, purple&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;PurpleConvChatCbGetName(usr)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; usr &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; sorted(userlist, key&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; s: s[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;lower()):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print usr[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
