Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
<html><h2>
Alias erstellen<br>
</h2>
<p>
In der Shell haben Sie die Möglichkeit, komplizierte Shell-Befehle und sogar ganze Befehlsketten mit einem Alias-Namen zu versehen und darüber aufzurufen. Die Alias-Befehle werden in der Datei /root/.bashrc gespeichert. Gehen Sie wie folgt vor, um einen Alias-Befehl einzugeben:
</p>
<p>
Starten Sie "Menu|Filesystem|Rox-Filer Filemanager".
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c033.jpg" class="image-ia image-_original" height="240" width="508">
</p>
<p>
Klicken Sie auf das Auge-Symbol, um auch die versteckten Dateien zu sehen.
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c033a.jpg" class="image-ia image-_original" height="240" width="508">
</p>
<p>
Klicken Sie dann mit der rechten Maustaste auf die Datei .bashrc
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c034a.jpg" class="image-ia image-_original">
</p>
<p>
und wählen Sie im Kontextmenü "File .bashrc|Open As Text".
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c035a.jpg" class="image-ia image-_original">
</p>
<p>
Es öffnet sich der Texteditor.
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c036.jpg" class="image-ia image-_original">
</p>
<p>
Ergänzen Sie z.B. folgenden Alias-Befehl:
</p>
<p>
alias meinBefehl="ls -F1lh"
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c037a.jpg" class="image-ia image-_original" height="465" width="626">
</p>
<p>
Speichern Sie die Datei und schließen Sie den Texteditor.
</p>
<p>
Starten Sie "Menu|Utility|Rxvt terminal emulator" und geben Sie ". /root/.bashrc" ein.
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c038.jpg" class="image-ia image-_original" height="138" width="339">
</p>
<p>
Jetzt stehen die Alias-Befehle zur Verfügung. Wenn Sie in der Konsole "meinBefehl" eingeben, bekommen Sie den Inhalt des aktuellen Verzeichnisses angezeigt.
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c040.jpg" class="image-ia image-_original" height="168" width="488">
</p>
<p>
Wenn Sie "alias" eingeben, bekommen Sie alle Alias-Befehle angezeigt.
</p>
<p>
<img src="http://www.puppylinux.org/files/images/c039a.jpg" class="image-ia image-_original" height="112" width="300"></p></html>
Source: [[Alias erstellen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/tipps-und-tricks/alias-erstellen]]
<html><h2>Backup mit rsync erstellen und wieder einspielen </h2>
<p>
Wenn Sie Ihre Daten nicht in der Datei pup_save.2fs speichern, sondern auf einer Partition mit ext2/ext3-Dateisystem, können Sie die Daten mit dem Befehl rsync sichern. Ich empfehle Ihnen eine zweite (externe) Festplatte als Backup-Medium. Die Backup-Festplatte muß ebenfalls ein ext2/ext3-Dateisystem haben.
</p>
<p>
Rsync synchronisiert das Backup mit Ihren aktuellen Daten und kopiert nur die neuen bzw. geänderten Dateien auf das Backup-Medium. Zugleich löscht (wenn man dies will) rsync auf dem Backup-Medium alle Dateien, die Sie aktuell nicht mehr haben.
</p>
<p>
Bevor Sie ein Backup erstellen, überprüfen Sie, dass Ihre Dateien nicht kompromittiert wurden (siehe Kapitel "Sicherheit/Intrusion Detection").
</p>
<p>
Das nachstehende Beispiel geht davon aus, dass Sie Ihre Daten in dem Ordner /meineDaten gespeichert haben und das Backup in den Ordner /backup erfolgen soll.
</p>
<p>
Öffnen Sie eine Konsole und geben Sie folgende Kommandos ein:
</p>
<p>
mount /dev/hda4 /mnt/hda4
</p>
<p>
Bindet die Partition ein, auf der Ihre Daten gespeichert sind. Es muß sich um eine Partition mit einem Linux-Dateisystem, z. B. ext2/ext3 handeln
</p>
<p>
mount /dev/sda1 /mnt/sda1
</p>
<p>
Bindet die Partition ein, auf der Sie das Backup speichern wollen, z. B. eine externe Festplatte.
</p>
<p>
rsync -av --delete /mnt/hda4/meineDaten/ /mnt/sda1/backup
</p>
<p>
Erstellt das Backup. Falls der Ordner backup noch nicht vorhanden ist, erstellen Sie den Ordner mit dem Befehl mkdir /mnt/sda1/backup
</p>
<p>
Hinweis: Wichtig ist der Schrägstrich hinter /mnt/hda4/meineDaten/ bei der Quellenangabe. Dadurch werden nur die Dateien innerhalb des Verzeichnisses /mnt/hda4/meineDaten kopiert, nicht aber der Ordner meineDaten selbst.
</p>
<p>
Die an rsync übergebenen Optionen haben folgende Bedeutung:
</p>
<p>
a: alle Ordner und Dateien inkl. aller Unterordner und -dateien werden kopiert v: der Fortschritt von rsync wird auf den Bildschirm ausgegeben delete: Ordner und Dateien, die im Quellverzeichnis nicht mehr existieren, werden aus dem Backup gelöscht. Wer dies nicht möchte, läßt die Option --delete weg.
</p>
<p>
umount /dev/hda4
</p>
<p>
Beendet die Einbindung der Partition mit Ihren Daten
</p>
<p>
umount /dev/sda1
</p>
<p>
Beendet die Einbindung der Partition mit dem Backup
</p>
<p>
Sie können die Befehle auch mit einem Semikolon getrennt hintereinander hängen und dann einen Alias-Namen zuweisen (siehe Kapitel "Tipps und Tricks")
</p>
<p>
Mit folgenden Befehlen spielen Sie Ihr Backup wieder ein:
</p>
<p>
mount /dev/hda4 /mnt/hda4
</p>
<p>
mount /dev/sda1 /mnt/sda1
</p>
<p>
rsync -av --delete /mnt/sda1/backup/ /mnt/hda4/meineDaten
</p>
<p>
umount /dev/hda4
</p>
<p>
umount /dev/sda1
</p>
<p>
Für Puppy Linux empfehle ich Ihnen folgende Alias-Befehle:
</p>
<p align="left">
alias backup1="mkdir /mnt/sda7 2>/dev/null; mount /dev/sda7 /mnt/sda7 ; mkdir /mnt/sdb1 2>/dev/null; mount /dev/sdb1 /mnt/sdb1; rsync -nav --delete /mnt/sda7/ /mnt/sdb1/backup > /root/my-documents/backup.txt; umount /dev/sda7; umount /dev/sdb1; /usr/local/bin/geany /root/my-documents/backup.txt"
</p>
<p align="left">
alias backup2="mkdir /mnt/sda7 2>/dev/null; mount /dev/sda7 /mnt/sda7 ; mkdir /mnt/sdb1 2>/dev/null; mount /dev/sdb1 /mnt/sdb1; rsync -av --delete /mnt/sda7/ /mnt/sdb1/backup > /root/my-documents/backup.txt; umount /dev/sdb1; umount /dev/sda7; /usr/local/bin/geany /root/my-documents/backup.txt"
</p>
<p>
Der Befehl backup1 simuliert das Backup, der Befehl backup2 führt das Backup durch. Das Protokoll wird in der Datei /root/my-documents/backup.txt gespeichert und automatisch mit dem Texteditor Geany angezeigt. Zum besseren Verständnis noch folgende Erläuterung: der Befehl sichert die gesamte Partition sda7 auf der Partition sdb1 (externe Festplatte).</p></html>
Source: [[Backup mit rsync erstellen und wieder einspielen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/backup-sicherungskopie-erstellen/backup-mit-rsync-erstellen-und-wieder-eins]]
/***
|Name:|CloseOnCancelPlugin|
|Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.commands.cancelTiddler,{
handler_mptw_orig_closeUnsaved: config.commands.cancelTiddler.handler,
handler: function(event,src,title) {
this.handler_mptw_orig_closeUnsaved(event,src,title);
if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))
story.closeTiddler(title,true);
return false;
}
});
//}}}
<html><h2>
DSL<br>
</h2>
<p>
Zuerst sollten Sie prüfen, ob die Ethernet-Karte erkannt wurde. Hierzu starten Sie über "Menu | Utility | Rxvt terminal emulator" eine Konsole und geben folgenden Befehl ein:<br>
ifconfig
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0790.jpg">
</p>
<p>
Prüfen Sie, ob es einen Eintrag "eth0" gibt.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0801.jpg">
</p>
<p>
Falls der Eintrag fehlt, geben Sie folgenden Befehl ein:<br>
ifconfig eth0 up
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0810.jpg">
</p>
<p>
Prüfen Sie noch einmal, ob es jetzt einen Eintrag "eth0" gibt. Geben Sie hierfür folgendes ein:<br>
ifconfig
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0790.jpg">
</p>
<p>
Jetzt sollte die Ethernet-Karte zur Verfügung stehen. Schließen Sie die Konsole.<br>
Starten Sie das Programm "Menu | Network | Roaring Penguin PPPoE".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c006.jpg" class="image-ia image-_original" height="156" width="196"></span>
</p>
<p>
Klicken Sie auf den Button "SETUP".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c007.jpg" class="image-ia image-_original" height="156" width="196"></span>
</p>
<p>
Geben Sie nun den Usernamen ein, den Sie von Ihrem Internet-Provider erhalten haben. Drücken Sie dann die Return-Taste.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c008.jpg" class="image-ia image-_original" height="179" width="585"></span>
</p>
<p>
Geben Sie dann das ethernet interface an. Die Vorgabe eth0 ist normalerweise richtig, so dass Sie nur die Return-Taste drücken müssen.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c009.jpg" class="image-ia image-_original" height="267" width="583"></span>
</p>
<p>
Bei der nächsten Frage, bestätigen Sie die Vorbelegung "no" erneut mit der Return-Taste.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c010.jpg" class="image-ia image-_original" height="515" width="581"></span>
</p>
<p>
Anschließend werden Sie nach der IP-Adresse Ihres Internet-Providers gefragt. Wenn Sie von Ihrem Provider eine dynamische IP-Adresse bekommen (dies ist bei DSL in Deutschland der Normalfall), drücken Sie nur die Return-Taste.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c011.jpg" class="image-ia image-_original" height="515" width="582"></span>
</p>
<p>
Nun geben Sie Ihr Passwort ein, das Sie von Ihrem Internet-Provider bekommen haben.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c012.jpg" class="image-ia image-_original" height="514" width="581"></span>
</p>
<p>
Danach geben Sie das Passwort ein zweites Mal ein.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c013.jpg" class="image-ia image-_original" height="518" width="582"></span>
</p>
<p>
Jetzt müssen Sie noch die Art der Firewall auswählen. Geben Sie "1" für "Standalone" ein.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c014.jpg" class="image-ia image-_original" height="361" width="582"></span>
</p>
<p>
Jetzt bekommen Sie Ihre Eingaben noch einmal angezeigt. Wenn alle Eingaben korrekt sind, drücken Sie die Taste "y".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c015.jpg" class="image-ia image-_original" height="360" width="579"></span>
</p>
<p>
Um die Internet-Verbindung zu starten, klicken Sie auf den Start-Button.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c016.jpg" class="image-ia image-_original" height="156" width="196"></span>
</p>
<p>
Danach öffnet sich ein Konsole-Fenster und die Internetverbindung wird hergestellt. Drücken Sie nun die Return-Taste.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c017.jpg" class="image-ia image-_original" height="90" width="265"></span>
</p>
<p>
Öffnen Sie dann das Programm "Menu | Internet | SeaMonkey Webbrowser". Geben Sie eine Internetseite ein. Wenn die Internetseite geladen wird, funktioniert Ihre DSL-Verbindung.
</p>
<p>
Wenn Sie die Internet-Verbindung beenden möchten, klicken Sie auf den Stop-Button.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c018.jpg" class="image-ia image-_original" height="156" width="196"></span>
</p>
<p>
Danach öffnet sich ein Konsole-Fenster und die Internetverbindung wird beendet. Drücken Sie dann die Return-Taste.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c019.jpg" class="image-ia image-_original" height="112" width="582"></span></p></html>
Source: [[DSL : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/internetzugang-einrichten/dsl]]
<html><h2>
Dateien aus der pup_save.2fs-Datei retten<br>
</h2>
<p>
Standardmäßig können Sie den Inhalt der Datei pup_safe.2fs nur sehen, wenn die Datei beim Starten von Puppy geladen wird. Falls die Datei nicht geladen werden kann, gibt es dennoch eine Möglichkeit, Einblick in die Datei zu bekommen und die Inhalte zu retten. Dazu gehen Sie wie folgt vor:
</p>
<p>
Starten Sie Puppy mit der Boot-Option "puppy pfix=ram".
</p>
<p>
Anschließend öffnen Sie eine Konsole und geben folgenden Befehl ein:
</p>
<p>
mount -o loop /mnt/hdax/pup_save.2fs /mnt/data
</p>
<p>
/mnt/hdax bezeichnet die Partition und das Verzeichnis, wo die pup_save.2fs-Datei gespeichert ist (z.B. mount -o loop /mnt/hda2/pup_save.2fs /mnt/data).
</p>
<p>
Sie können dann im Verzeichnis /mnt/data den Inhalt der Datei pup_save.2fs sehen und in ein anderes Verzeichnis kopieren (retten).</p></html>
Source: [[Dateien aus der pup_save.2fs-Datei retten : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/backup-sicherungskopie-erstellen/dateien-aus-der-pupsave2fs-datei-retten]]
<html><h2>Datum und Zeit einstellen </h2>
<p>
Datum und Zeit können über das Programm "Menu | Desktop | Set date and time" eingestellt werden.
</p>
<p>
Um die Uhrzeit von der 12-Stunden-Anzeige auf die 24-Stunden-Anzeige umzustellen, müssen Sie die Datei /root/.jwmrc-tray editieren. Gehen Sie wie folgt vor:
</p>
<p>
Starten Sie das Programm "Menu | Filesystem | ROX-Filer file filemanager"
</p>
<p>
Wechseln Sie in das Verzeichnis /root
</p>
<p>
Klicken Sie das Symbol "Alle Dateien anzeigen" an
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c041a.jpg" class="image-ia image-_original" height="237" width="508"></span>
</p>
<p>
Rechtsklick auf die Datei .jwmrc-tray und wählen Sie im Kontextmenü "Open As Text" aus. Die Dateim.jwmrc-tray wird nun im Texteditor Geany geöffnet.
</p>
<p>
Am Dateiende finden Sie den Eintrag "clock". Ändern Sie die Zeile wie folgt:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0700.jpg">
</p>
<p>
Speichern Sie die Datei und schließen Sie den Texteditor Geany.
</p>
<p>
Starten Sie JWM neu: "Menu | Shut Down | Restart JWM"</p></html>
Source: [[Datum und Uhrzeit einstellen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-individuell-konfigurieren/datum-und-uhrzeit-einstellen]]
<html><h2>
Desktop-Verknüpfungen erstellen und entfernen<br>
</h2>
<p>
Um eine Desktop-Verknüpfung zu einem Programm, Verzeichnis oder einer Datei zu erzeugen, ziehen Sie mit gedrückter linker Maustaste die Datei aus dem Dateimanager ROX auf den Desktop.
</p>
<p>
Zum Entfernen einer Desktop-Verknüpfung klicken Sie mit der rechten Maustaste auf das Symbol und wählen im Kontextmenü "Remove Item".</p></html>
Source: [[Desktop-Verknüpfungen erstellen und entfernen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-individuell-konfigurieren/desktop-verknuepfungen-erstellen-und-entfer]]
/***
|Name|DisableWikiLinksPlugin|
|Source|http://www.TiddlyTools.com/#DisableWikiLinksPlugin|
|Version|1.5.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Tiddler.prototype.autoLinkWikiWords, 'wikiLink' formatter|
|Description|selectively disable TiddlyWiki's automatic ~WikiWord linking behavior|
This plugin allows you to disable TiddlyWiki's automatic ~WikiWord linking behavior, so that WikiWords embedded in tiddler content will be rendered as regular text, instead of being automatically converted to tiddler links. To create a tiddler link when automatic linking is disabled, you must enclose the link text within {{{[[...]]}}}.
You can block automatic WikiWord linking behavior for any specific tiddler by ''tagging it with<<tag excludeWikiWords>>'' (//note: the actual tag value is configureable using the built-in control panel below//) or, check a plugin option to disable automatic WikiWord links to non-existing tiddler titles, while still linking WikiWords that correspond to existing tiddlers titles or shadow tiddler titles. You can also block specific selected WikiWords from being automatically linked by listing them in [[DisableWikiLinksList]], separated by whitespace. This tiddler is optional and, when present, causes the listed words to always be excluded, even if automatic linking of other WikiWords is being permitted.
Note: WikiWords contained in default ''shadow'' tiddlers will be automatically linked unless you select an additional checkbox option lets you disable these automatic links as well, though this is not recommended, since it can make it more difficult to access some TiddlyWiki standard default content (such as AdvancedOptions or SideBarTabs)
!!!!!Configuration
<<<
Self-contained control panel:
<<option chkDisableNonExistingWikiLinks>> Disable automatic WikiWord links for non-existing tiddlers
<<option chkDisableWikiLinks>> Disable ALL automatic WikiWord tiddler links
<<option chkAllowLinksFromShadowTiddlers>> ... except for WikiWords contained in shadow tiddlers
Disable automatic WikiWord links for tiddler tagged with: <<option txtDisableWikiLinksTag>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''DisableWikiLinksPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2006.06.09 [1.5.0]'' added configurable txtDisableWikiLinksTag (default value: "excludeWikiWords") to allows selective disabling of automatic WikiWord links for any tiddler tagged with that value.
''2006.12.31 [1.4.0]'' in formatter, test for chkDisableNonExistingWikiLinks
''2006.12.09 [1.3.0]'' in formatter, test for excluded wiki words specified in DisableWikiLinksList
''2006.12.09 [1.2.2]'' fix logic in autoLinkWikiWords() (was allowing links TO shadow tiddlers, even when chkDisableWikiLinks is TRUE).
''2006.12.09 [1.2.1]'' revised logic for handling links in shadow content
''2006.12.08 [1.2.0]'' added hijack of Tiddler.prototype.autoLinkWikiWords so regular (non-bracketed) WikiWords won't be added to the missing list
''2006.05.24 [1.1.0]'' added option to NOT bypass automatic wikiword links when displaying default shadow content (default is to auto-link shadow content)
''2006.02.05 [1.0.1]'' wrapped wikifier hijack in init function to eliminate globals and avoid FireFox 1.5.0.1 crash bug when referencing globals
''2005.12.09 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.disableWikiLinks= {major: 1, minor: 5, revision: 0, date: new Date(2007,6,9)};
if (config.options.chkDisableNonExistingWikiLinks==undefined) config.options.chkDisableNonExistingWikiLinks= false;
if (config.options.chkDisableWikiLinks==undefined) config.options.chkDisableWikiLinks= false;
if (config.options.chkAllowLinksFromShadowTiddlers==undefined) config.options.chkAllowLinksFromShadowTiddlers=true;
if (config.options.txtDisableWikiLinksTag==undefined) config.options.txtDisableWikiLinksTag="excludeWikiWords";
// find the formatter for wikiLink and replace handler with 'pass-thru' rendering
initDisableWikiLinksFormatter();
function initDisableWikiLinksFormatter() {
for (var i=0; i<config.formatters.length && config.formatters[i].name!="wikiLink"; i++);
config.formatters[i].coreHandler=config.formatters[i].handler;
config.formatters[i].handler=function(w) {
// supress any leading "~" (if present)
var skip=(w.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
var title=w.matchText.substr(skip);
var exists=store.tiddlerExists(title);
var inShadow=w.tiddler && store.isShadowTiddler(w.tiddler.title);
// check for excluded Tiddler
if (w.tiddler && w.tiddler.isTagged(config.options.txtDisableWikiLinksTag))
{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
// check for specific excluded wiki words
var t=store.getTiddlerText("DisableWikiLinksList")
if (t && t.length && t.indexOf(w.matchText)!=-1)
{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
// if not disabling links from shadows (default setting)
if (config.options.chkAllowLinksFromShadowTiddlers && inShadow)
return this.coreHandler(w);
// check for non-existing non-shadow tiddler
if (config.options.chkDisableNonExistingWikiLinks && !exists)
{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
// if not enabled, just do standard WikiWord link formatting
if (!config.options.chkDisableWikiLinks)
return this.coreHandler(w);
// just return text without linking
w.outputText(w.output,w.matchStart+skip,w.nextMatch)
}
}
Tiddler.prototype.coreAutoLinkWikiWords = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function()
{
// DEBUG alert("processing: "+this.title);
// if all automatic links are not disabled, just return results from core function
if (!config.options.chkDisableWikiLinks)
return this.coreAutoLinkWikiWords.apply(this,arguments);
return false;
}
//}}}
<html><h2>
Drucker<br>
</h2>
<p>
Starten Sie "Menu | Setup | Cups Printer Wizard" und drücken Sie auf den Button "Yes".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c055a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es erscheint ein neuer Dialog. Klicken Sie "Manage Printers" an.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c056a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Im nächsten Dialog klicken Sie "Add Printer" an.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c057a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Geben Sie jetzt in das Feld "Name" einen Name für den Drucker ein. Die Felder "Location" und "Description" können Sie leer lassen.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c058a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es erscheint ein Warnhinweis. Entfernen Sie das Häkchen und klicken Sie auf den Button "Continue".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c059a.jpg" class="image-ia image-_original" height="257" width="514"></span>
</p>
<p>
Wählen Sie im nächsten Dialog das Gerät aus.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c060a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Im nächsten Dialog wählen Sie die Marke aus.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c061a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Anschließend wählen Sie das Modell aus.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c062.jpg" class="image-ia image-_original"></span>
</p>
<p>
Der Drucker wurde nun eingerichtet. Klicken Sie jetzt auf "Printers".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c063a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Klicken Sie auf "Configure Printer" und setzen Sie "Media Size" (Papiergröße) auf A4.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c064b.jpg" class="image-ia image-_original"></span>
</p>
<p>
Klicken Sie nun auf "Print Test Page".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c064a.jpg" class="image-ia image-_original"></span></p></html>
Source: [[Drucker : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/hardware-einrichten/drucker]]
<html><h2>Einführung </h2>
<p>Dieses Handbuch wendet sich sowohl an Linux-Neulinge als auch an Linux-Anwender, die Puppy kennenlernen möchten. Dieses Handbuch faßt die wichtigsten Informationen für Puppy-Neulinge zusammen und nimmt Sie bei Ihren ersten Schritten mit Puppy an die Hand. </p>
<h3>Hinweise zur Benutzung des Handbuchs: </h3>
<p>
Menüeinträge und Buttons sind in "" - Zeichen gesetzt, Untermenüs durch einen senkrechten Strich getrennt. Beispiel: "Menu | Shut Down | JWM restart" bedeutet, daß Sie zuerst auf den Button "Menu" klicken, dann in der dann erscheinenden Menüleiste auf den Eintrag "Shut Down" und schließlich in dem dann erscheinenden Untermenü auf "JWM restart".
</p>
<p>
Im Handbuch wird der Buchstabe x als Platzhalter für eine Zahl verwendet. So bedeutet z.B. /dev/hdax, daß Sie in Abhängigkeit von Ihrer PC-Konfiguration /dev/hda1, /dev/hda2 oder /dev/hda3 etc. eingeben müssen.
</p>
<p>
Im Handbuch werden die Begriffe "Konsole", "Shell" und "Terminal" synonym verwendet. Es ist immer das Programm "Menu | Run | Rxvt terminal emulator" gemeint.</p></html>
Source: [[Einführung : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch]]
<html><h2>Email konfigurieren </h2>
<p>
Starten Sie das Programm "Menu | Internet | SeaMonkey mail and news". Die Konfiguration hängt von Ihrem Mail-Provider ab. Im folgenden finden Sie ein Beispiel für GMX.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0190.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0201.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0211.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0221.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0230.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0240.jpg">
</p>
<p>
Nachdem Sie den Button "Finish" gedrückt haben, lädt das Programm automatisch Ihre Emails von Ihrem Email-Account herunter. Falls Sie nicht online sind, erscheint folgende Fehlermeldung:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0250.jpg">
</p>
<p>
Starten Sie die Internet-Verbindung und klicken Sie im Seamonkey-Mail-Programm auf den Button zum Abrufen Ihrer Mails.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0255.jpg"></p></html>
Source: [[Email-Programm konfigurieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/internetzugang-einrichten/email-programm-konfigurieren]]
/***
|Name:|ExtentTagButtonPlugin|
|Description:|Adds a New tiddler button in the tag drop down|
|Version:|3.2 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
window.onClickTag_mptw_orig = window.onClickTag;
window.onClickTag = function(e) {
window.onClickTag_mptw_orig.apply(this,arguments);
var tag = this.getAttribute("tag");
var title = this.getAttribute("tiddler");
// Thanks Saq, you're a genius :)
var popup = Popup.stack[Popup.stack.length-1].popup;
createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
wikify("<<newTiddler label:'New tiddler' tag:'"+tag+"'>>",createTiddlyElement(popup,"li"));
return false;
}
//}}}
<html><h2>Festplatte defragmentieren </h2>
<p>
Bevor Sie neue Partitionen auf der Festplatte erstellen, sollten Sie die Festplatte defragmentieren, damit alle Daten am Beginn der bisherigen Festplatten-Partition gespeichert sind. Gehen Sie wie folgt vor:
</p>
<p>
Starten Sie Windows.
</p>
<p>
Sichern Sie zunächst Ihre Dateien auf CD-ROM, DVD oder einer externen Festplatte. Denken Sie auch daran, Ihre Internet-Linksammlung (Favoriten) zu sichern sowie Ihre Emails. Falls Sie verschlüsselte Dateien haben, empfiehlt es sich, diese erst zu entschlüsseln und dann zu sichern. Dadurch schützen Sie sich vor Datenverlust, denn das Verändern der Festplatten-Partition(en) birgt grundsätzlich das Risiko eines Datenverlusts.
</p>
<p>
Als nächstes rufen Sie unter Windows das Programm Defragmentierung auf. Sie finden das Programm unter "Start | Alle Programme | Zubehör | Systemprogramme | Defragmentierung".
</p>
<p>
Wählen Sie die Festplatte c:/ aus und klicken Sie auf den Button "Überprüfen".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1211.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1220.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1231.jpg">
</p>
<p>
Drücken Sie auf den Button "Defragmentieren".
</p>
<p>
Je nach Größe der Partition und der gespeicherten Datenmenge kann dieser Vorgang sehr lange (über eine Stunde) dauern. Falls Sie sehr große Datenmengen habe, können Sie den Vorgang drastisch beschleunigen, indem Sie nach der Sicherung Ihrer Daten die Daten löschen.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1240.jpg">
</p>
<p>
Klicken Sie auf den Button "Schließen".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1250.jpg">
</p>
<p>
Sie haben jetzt am Ende der c-Partition Platz für weitere, neue Partitionen.
</p>
<p>
Beenden Sie Windows.</p></html>
Source: [[Festplatte defragmentieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren/festplatte-defragmentieren]]
<html><h2>Firewall und Dämonen </h2>
<p>
Die Firewall sollte immer aktiviert sein. Damit steuern Sie, über welche Ports Ihr PC mit dem Internet kommuniziert. Im Idealfall sind alle Ports geschlossen.
</p>
<p>
Starten Sie "Menu | Setup | Linux-Firewall Wizard".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2210.jpg">
</p>
<p>
Wechseln Sie mit der Cursor-Runter-Taste auf den Eintrag "default" (die Option "default" schließt alle Ports) und drücken Sie die Return-Taste.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2220.jpg">
</p>
<p>
Nun können Sie die Firewall-Regeln überprüfen. Bestätigen Sie die Voreinstellung "Yes" mit der Return-Taste.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2230.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2240.jpg">
</p>
<p>
Hinter der Zeile "Performing sanity checks ..." sollte "PASSED" stehen. Drücken Sie nun eine beliebige Taste.
</p>
<p>
Jetzt erscheint der nächste Dialog, mit dem Sie die Firewall-Regeln aktivieren können.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2250.jpg">
</p>
<p>
Bestätigen Sie die Voreinstellung "Yes" mit der Return-Taste.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2260.jpg">
</p>
<p>
Jetzt ist die Firewall aktiv. Drücken Sie zum Abschluß die Return-Taste.
</p>
<p>
Bei der oben eingestellten "default"-Option werden alle Ports geschlossen. Über den Firewall-Wizard können Sie auch bestimmte Ports öffnen ("custom"-Option). Sie sollten aber nur solche Ports öffnen, die Sie benötigen. Falls Sie bestimmte Ports nur gelegentlich benutzen, sollten Sie diese Ports nur bei Bedarf öffnen. Ein offener Port ist für sich genommen normalerweise noch nicht riskant. Erst wenn auf Ihrem PC ein Dienstprogramm (Dämon) läuft und an diesem Port auf eingehende Anfragen wartet, kann es für Sie gefährlich werden. Deshalb sollten auf Ihrem PC auch keine Dienste (Dämonen) laufen, die Sie nicht brauchen.
</p>
<p>
Und so prüfen Sie, welche Ports offen sind und welche Dienste laufen:
</p>
<p>
Installieren Sie das Programm nmap. Nmap ist als PETget-Programm verfügbar.
</p>
<p>
Öffnen Sie eine Konsole und geben Sie folgenden Befehl ein:
</p>
<p>
nmap localhost
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2270.jpg">
</p>
<p>
Sie bekommen nun angezeigt, welche Ports offen sind. Bei einem Heimanwender ohne eigenes Heim-Netzwerk sollten alle Ports geschlossen sein. Der Service X11 ist für die grafische Darstellung des Desktops zuständig und deshalb offen.
</p>
<p>
Mit dem folgendem Befehl sehen Sie, welche Dienste an den Ports lauschen:
</p>
<p>
netstat -anp --ip
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b2280.jpg">
</p>
<p>
Auch hier gilt für einen Heimanwender, der keinen Webserver oder Heimnetzwerk betreibt, dass die Liste (bis auf den Port von X11) leer sein sollte, also keine Dienste (Dämons) laufen.
</p>
<p>
Bei <a target="_blank" href="https://www.grc.com/x/ne.dll?bh0bkyd2">Shields up!</a> (<a href="https://www.grc.com/x/ne.dll?bh0bkyd2" title="https://www.grc.com/x/ne.dll?bh0bkyd2">https://www.grc.com/x/ne.dll?bh0bkyd2</a>) können Sie Ihre Firewall testen. Laden Sie die Seite und klicken Sie auf den Proceed-Button.</p></html>
Source: [[Firewall und Dämonen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/firewall-und-daemonen]]
{{{
!Überschrift Ebene 1
!!Überschrift Ebene 2
!!!Überschrift Ebene 3
!!!!Überschrift Ebene 4
!!!!!Überschrift Ebene 5
}}}
!Überschrift Ebene 1
!!Überschrift Ebene 2
!!!Überschrift Ebene 3
!!!!Überschrift Ebene 4
!!!!!Überschrift Ebene 5
Bilder/Grafiken können mit
{{{
[img[Benennung|pfad/zur/Bilddatei.jpg]]
}}}
eingefügt werden. Es sind relative und absolute Pfadangaben oder Links ins Web möglich.
''Im Dateinamen dürfen keine Leerzeichen oder Sonderzeichen enthalten sein''
Ordnerstruktuen oder andere Hierarchien können mit dem Größer -Zeichen (>) dargestellt werden.
{{{
>Ebene 1, Punkt 1
>>Ebene 2, Punkt 1
>>Ebene 2, Punkt 2
>>Ebene 2, Punkt 3
>>>Ebene 3, Punkt 1
>>>Ebene 3, Punkt 2
>>Ebene 2, Punkt 4
>>Ebene 2, Punkt 5
>Ebene 1, Punkt 2
}}}
>Ebene 1, Punkt 1
>>Ebene 2, Punkt 1
>>Ebene 2, Punkt 2
>>Ebene 2, Punkt 3
>>>Ebene 3, Punkt 1
>>>Ebene 3, Punkt 2
>>Ebene 2, Punkt 4
>>Ebene 2, Punkt 5
>Ebene 1, Punkt 2
Eine HtmlTabelle kann durch das Einschliessen des Texts mit dem senkrechten Stich (||, AltGr + <) erzeugt werden:
Eine einfache Tabelle:
{{{
|!Spalte 1|!Spalte 2|!Spalte 3|
|Zelle 1/1|Zelle 1/2|Zelle 1/3|
|Zelle 2/1|Zelle 2/2|Zelle 2/3|
}}}
|!Spalte 1|!Spalte 2|!Spalte 3|
|Zelle 1/1|Zelle 1/2|Zelle 1/3|
|Zelle 2/1|Zelle 2/2|Zelle 2/3|
Eine komplexere Tabelle:
{{{
|!Überschriften: Ein Ausrufungszeichen (!) direkt nach dem senkr. Stich.|!Überschrift 2|!Überschrift 3|
|Zeile 1, Spalte 1|Zeile 1, Spalte 2|Zeile 1, Spalte 3|
|>|>|Zellen innerhalb einer Zeile verbinden mit >|
|Zellen verbinden innerhalb einer Spalte mit ~|>| Ein Leerzeichen vor dem Text in einer Zelle ergibt rechtsbündigen Text|
|~|>| Je ein Leerzeichen vor und nach dem Text ergibt zentrierten Text |
|>|>|bgcolor(green):Hintergrundfarbe: bgcolor(Farbe(z.B. red, green)):|
|Tabelle 1: Eine Tabellenbeschriftung entsteht, wenn man die Tabelle mit einer Zelle abschliesst, auf die ein c folgt|c
}}}
|!Überschriften: Ein Ausrufungszeichen (!) direkt nach dem senkr. Stich.|!Überschrift 2|!Überschrift 3|
|Zeile 1, Spalte 1|Zeile 1, Spalte 2|Zeile 1, Spalte 3|
|>|>|Zellen innerhalb einer Zeile verbinden mit >|
|Zellen verbinden innerhalb einer Spalte mit ~|>| Ein Leerzeichen vor dem Text in einer Zelle ergibt rechtsbündigen Text|
|~|>| Je ein Leerzeichen vor und nach dem Text ergibt zentrierten Text |
|>|>|bgcolor(green):Hintergrundfarbe: bgcolor(Farbe(z.B. red, green)):|
|Tabelle 1: Eine Tabellenbeschriftung entsteht, wenn man die Tabelle mit einer Zelle abschliesst, auf die ein c folgt|c
''Vorsicht!'' Die Backslashs müssen durch Slashs ersetzt werden! (veraltet?)
{{{
[[bel. Text|pfad/zur/Datei.pdf]]
}}}
{{{
* erster Punkt der Liste
* zweiter Punkt der Liste
** Ein Punkt in zweiter Listenebene
* Ein letzter Punkt in der Beispielliste
}}}
* erster Punkt der Liste
* zweiter Punkt der Liste
** Ein Punkt in zweiter Listenebene
* Ein letzter Punkt in der Beispielliste
{{{
#Punkt 1
#Punkt 2
##Punkt 2.1
##Punkt 2.2
##Punkt 2.3
#Punkt 3
##Punkt 3.1
###Punkt 3.1.1
###Punkt 3.1.2
}}}
#Punkt 1
#Punkt 2
##Punkt 2.1
##Punkt 2.2
##Punkt 2.3
#Punkt 3
##Punkt 3.1
###Punkt 3.1.1
###Punkt 3.1.2
Eine WaagerechteTrennlinie entsteht, wenn am Zeilenanfang vier Minuszeichen (-) eingegeben werden:
{{{
----
}}}
----
<html><h2>
Frugal Installation mit dem Puppy Universal Installer<br>
</h2>
<p>
Bei der Frugal Installation wird das Image von der Puppy-CD auf die Festplatte kopiert. Beim Starten wird Puppy in den Arbeitsspeicher (RAM) des Computers geladen (genauso als hätten Sie Puppy von CD-ROM gestartet), allerdings geht dies von Festplatte schneller als von CD. Somit kombinieren Sie bei der Frugal Installation die Vorteile aus CD-ROM (Schutz vor Schadprogrammen) und Festplatte (Schnelligkeit). Außerdem können Sie sehr einfach auf eine neue Puppy-Version umsteigen, da Sie nur einige wenige Dateien austauschen müssen.
</p>
<p>
Starten Sie "Menu | Setup | Puppy universal installer". Markieren Sie, auf welchem Medium Puppy installiert werden soll. Für das Beispiel wähle ich die interne Festplatte.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002.jpg" class="image-ia image-_original" height="374" width="470"></span>
</p>
<p>
Wenn Sie mehrere Festplatten haben, wählen Sie die Festplatte aus.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1420.jpg"></p>
<p>Klicken Sie dann auf den Button hinter der Partition, in die Puppy installiert werden soll, im Beispiel /hda2.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1430.jpg">
</p>
<p>
Im nächsten Dialog klicken Sie auf den Button "OK".
</p>
<p><img src="http://www.puppylinux.org/files/pic/b1440.jpg"></p>
<p>
Sie müssen nun entscheiden, ob Sie eine "Frugal" Installation oder eine "Full" Installation möchten. In unserem Beispiel klicken Sie auf den Button"FRUGAL".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1461.jpg">
</p>
<p>
Jetzt können Sie das Installationsverzeichnis eingeben. Belassen Sie die Voreinstellung und klicken Sie auf den OK-Button.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-1.jpg" class="image-ia image-_original" height="321" width="510"></span></p>
<p>
Jetzt werden die Dateien von CD auf die Festplatte kopiert.
</p>
<p>
Die Installation ist jetzt beendet. Klicken Sie in den beiden folgenden Dialogen auf die OK-Button.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-2.jpg" class="image-ia image-_original" height="331" width="495"></span>
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1474.jpg">
</p>
<p>
Da Sie nun zwei Betriebssysteme auf Ihrem Computer haben (Windows und Puppy Linux), brauchen Sie einen Bootloader. Der Bootloader ist das erste Programm, das nach dem Start des Computers ausgeführt wird. Es gibt Ihnen die Möglichkeit zu wählen, welches Betriebssystem gestartet werden soll. Wenn Sie bislang nur Windows auf dem Computer installiert hatten, verfügen Sie noch nicht über einen Bootloader. Starten Sie die Installation des Bootloaders über "Menu | System | Grub bootloader config".
</p>
<p>
Wählen Sie die "simple" Installation und klicken Sie auf den Button "OK".
</p>
<p><img src="http://www.puppylinux.org/files/pic/b1490.jpg"></p>
<p>
Im nächsten Dialog markieren Sie "standard" und klicken dann auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1500.jpg">
</p>
<p>
Nun müssen Sie eingeben, wo die Dateien des Bootloaders GRUB abgelegt werden soll. Die GRUB-Dateien können nur auf einer Partition mit Linux-Dateisystem gespeichert werden. Deshalb geben Sie "/dev/hda2" ein, also die gleiche Partition, in die Puppy installiert wurde.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1510.jpg"></p>
<p>Jetzt müssen Sie eingeben, wo der Bootloader GRUB installiert werden soll. Markieren Sie den Master Boot Record "MBR" und klicken Sie auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1520.jpg">
</p>
<p>
Den nächsten Dialog bestätigen Sie mit dem Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1530.jpg"></p>
<p>Die Installation ist abgeschlossen. Nun müssen Sie noch den Bootloader GRUB konfigurieren, damit Puppy Linux gestartet werden kann. Gehen Sie wie folgt vor:
</p>
<p>
Öffnen Sie die Datei menu.lst mit einem Texteditor. Die Datei finden Sie in der zweiten Partition (/dev/hda2) im Verzeichnis /boot/grub. Für Linux-Neulinge habe ich nachstehend detailliert abgebildet, wie Sie diese Datei finden und öffnen. Erfahrene Benutzer können die nächsten Abbildungen überspringen.
</p>
<p>
Starten Sie "Menu | Filesystem | Pmount mount/unmount drives" und klicken Sie auf den Button "MOUNT" hinter "/dev/hda2".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-5a.jpg" class="image-ia image-_original" height="366" width="297"></span>
</p>
<p>
Die Beschriftung des Buttons ändert sich in "UNMNT".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-6.jpg" class="image-ia image-_original" height="365" width="299"></span>
</p>
<p>
Starten Sie "Menu | Filesystem | ROX-Filer file filemanager".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1570.jpg">
</p>
<p>
Klicken Sie mit der rechten Maustaste und wählen Sie aus dem Kontext-Menü "Window | Enter Path".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1720.jpg">
</p>
<p>Geben Sie in dem Feld "Goto" folgendes ein (vergessen Sie nicht den Schrägstrich am Ende der Pfadangabe): /mnt/hda2/boot/grub/
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1739.jpg">
</p>
<p>
Sie sind jetzt in dem Ordner /mnt/hda2/boot/grub/
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1620.jpg">
</p>
<p><
</p><p>
Klicken Sie mit der rechten Maustaste auf die Datei "menu.lst".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1625.jpg">
</p>
<p>
Wählen Sie im Kontextmenu "File menu.lst | Open As Text".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1630.jpg"></p>
<p>
Sie sehen jetzt den Inhalt der Datei menu.lst.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1640.jpg">
</p>
<p>
Ändern Sie die Datei an folgender Stelle ab:<br>
<br>
<img src="http://www.puppylinux.org/files/pic/b1641.jpg"><br>
<br>
title Puppy Linux 4.00 frugal (on /dev/hda2)<br>
<br>
rootnoverify (hd0,1)<br>
<br>
kernel /puppy400/vmlinuz pmedia=idehd psubdir=puppy400<br>
<br>
initrd /puppy400/initrd.gz
</p>
<p>
(Hinweis: je nach Boot-Medium müssen Sie als pmedia-Parameter usbflash usbhd usbcd ideflash idehd idecd idezip satahd scsihd scsicd setzen.)
</p>
<p>
Die in der Datei geänderte Stelle sollte dann wie folgt aussehen:
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-3a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Setzen Sie Kommentarzeichen (#) vor folgende Zeilen:
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-3b.jpg" class="image-ia image-_original"></span>
</p>
<p>
Die geänderte Stelle sollte dann wie folgt aussehen:
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-4a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Die fertige Datei sollte jetzt wie folgt aussehen:
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-4.jpg" class="image-ia image-_original"></span>
</p>
<p>
Speichern Sie die Datei über das Programm-Menu "File | Save". Beenden Sie den Texteditor.
</p>
<p>
Schließen Sie den Dateimanager ROX.
</p>
<p>Klicken Sie auf den Button "UNMNT" hinter /dev/hda2.</p>
<p><span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-6a.jpg" class="image-ia image-_original" height="365" width="299"></span></p>
<p>
Die Beschriftung des Buttons ändert sich in "MOUNT".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-5.jpg" class="image-ia image-_original" height="366" width="297"></span>
</p>
<p>
Klicken Sie auf den Button "QUIT".
</p>
<p>
Beenden Sie Puppy und starten Sie den Computer neu: "Menu | Shutdown | Reboot computer".
</p>
<p>
Sie werden beim Herunterfahren des Computers gefragt, ob Sie die die Computer-Einstellungen (Session) speichern möchten. Bestätigen Sie den bereits markierten Eintrag "SAVE TO FILE" mit der Return-Taste.
</p>
<p>
Den nächsten Dialog (Warning) bestätigen Sie ebenfalls mit der Return-Taste.
</p>
<p>
Im nächsten Dialog wählen Sie mit den Cursor-Tasten die Partition "hda2" aus und drücken wieder die Return-Taste.
</p>
<p>
Nun werden Sie gefragt, ob Sie der Datei mit Ihren Einstellungen einen besonderen Namen geben wollen. Es reicht aus, nur die Return-Taste zu drücken.
</p>
<p>
Danach werden Sie gefragt, ob die Datei normal (=unverschlüsselt) oder verschlüsselt sein soll. Wählen Sie mit den Cursor-Tasten "NORMAL" und drücken Sie die Return-Taste.
</p>
<p>
Im nächsten Dialog müssen Sie die Dateigröße auswählen. In aller Regel ist eine Dateigröße von 512 Megabyte ausreichend. Die Dateigröße können Sie bei Bedarf jederzeit erhöhen. Wählen Sie mit den Cursor-Tasten die gewünschte Dateigröße und drücken Sie die Return-Taste.
</p>
<p>
Im nächsten Dialog sehen Sie noch einmal Ihre Eingaben. Wählen Sie mit den Cursor-Tasten "Change Folder" und drücken Sie die Return-Taste.
</p>
<p>
Im nächsten Dialog geben Sie "/puppy400" ein und drücken dann die Return-Taste.
</p>
<p>
Jetzt bekommen Sie erneut Ihren Eingaben angezeigt. Wählen Sie nun mit den Cursor-Tasten "Yes, save" und drücken Sie die Return-Taste.
</p>
<p>
Jetzt wird die Datei erstellt. Dies kann einige Minuten dauern, haben Sie Geduld.
</p>
<p>
Danach werden Sie gefragt, ob beim Starten von Puppy Linux auf eine seriell angeschlossene Maus oder ein seriell angeschlossenes Modem geprüft werden soll. Wählen Sie mit den Cursor-Tasten "No" und drücken Sie die Return-Taste.
</p>
<p>
Anschließend werden Sie gefragt, ob die Datei pup400.sfs ebenfalls auf die Festplatte kopiert werden soll. Wählen Sie mit den Cursor-Tasten "Yes" und drücken Sie die Return-Taste.
</p>
<p> Anschließend fährt Ihr Computer vollständig herunter und startet neu. Entnehmen Sie dabei die CD. Es meldet sich dann der Bootloader. Wählen Sie mit den Cursor-Tasten "Puppy Linux 4.00 frugal (on /dev/hda2)" und drücken Sie die Return-Taste. Nun startet Puppy.</p></html>
Source: [[Frugal Installation mit dem Puppy Universal Installer : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren/frugal-installation-mit-dem-puppy-universal-installer]]
<html><h2>
Full Installation (Volle Installation)<br>
</h2>
<p>
Bei der Full Installation wird Puppy wie ein "normales" Linux auf der Festplatte installiert. Diese Installation ist besonders dann ratsam, wenn Sie weniger als 256 MB Arbeitsspeicher haben.
</p>
<p>
Starten Sie "Menu | Setup | Puppy universal installer". Markieren Sie, auf welchem Medium Puppy installiert werden soll. Für das Beispiel wähle ich die interne Festplatte.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002.jpg" class="image-ia image-_original" height="374" width="470"></span>
</p>
<p>
Wenn Sie mehrere Festplatten haben, wählen Sie die Festplatte aus.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1420.jpg">
</p>
<p>
Klicken Sie dann auf den Button hinter der Partition, in die Puppy installiert werden soll, im Beispiel /hda2.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1430.jpg">
</p>
<p>
Im nächsten Dialog klicken Sie auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1440.jpg">
</p>
<p>
Sie müssen nun entscheiden, ob Sie eine "Frugal" Installation oder eine "Full" Installation möchten. In unserem Beispiel klicken Sie auf den Button "FULL".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1461.jpg">
</p>
<p>
Jetzt werden die Dateien von CD auf die Festplatte kopiert.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1685.jpg">
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-7.jpg" class="image-ia image-_original" height="53" width="279"></span>
</p>
<p>
Da Sie nun zwei Betriebssysteme auf Ihrem Computer haben (Windows und Puppy Linux), brauchen Sie einen Bootloader. Der Bootloader ist das erste Programm, das nach dem Start des Computers ausgeführt wird. Es gibt Ihnen die Möglichkeit zu wählen, welches Betriebssystem gestartet werden soll. Wenn Sie bislang nur Windows auf dem Computer installiert hatten, verfügen Sie noch nicht über einen Bootloader. Der Puppy-Installer bietet Ihnen jetzt die Möglichkeit, GRUB als Bootloader zu installieren. Bestätigen Sie dies mit einem Klick auf den Button "INSTALL GRUB".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1690.jpg">
</p>
<p>
Im folgenden Dialog klicken Sie auf den Button "Install"
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-8.jpg" class="image-ia image-_original" height="123" width="436"></span>
</p>
<p>
Im folgenden Dialog klicken Sie auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1700.jpg">
</p>
<p>
Wählen Sie die "simple" Installation und klicken Sie auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1490.jpg">
</p>
<p>
Im nächsten Dialog markieren Sie "standard" und klicken dann auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1500.jpg">
</p>
<p>
Nun müssen Sie eingeben, wo die Dateien des Bootloaders GRUB abgelegt werden soll. Die GRUB-Dateien können nur auf einer Partition mit Linux-Dateisystem gespeichert werden. Deshalb geben Sie "/dev/hda2" ein, also die gleiche Partition, in die Puppy installiert wurde.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1510.jpg">
</p>
<p>
Jetzt müssen Sie eingeben, wo der Bootloader GRUB installiert werden soll. Markieren Sie den Master Boot Record "MBR" und klicken Sie auf den Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1520.jpg">
</p>
<p>
Den nächsten Dialog bestätigen Sie mit dem Button "OK".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1530.jpg">
</p>
<p>
Im nächsten Dialog klicken Sie auf den Button "No".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1710.jpg">
</p>
<p>
Die Installation ist abgeschlossen. Nun müssen Sie noch den Bootloader GRUB konfigurieren, damit Puppy Linux gestartet werden kann. Gehen Sie wie folgt vor:
</p>
<p>
Öffnen Sie die Datei menu.lst mit einem Texteditor. Die Datei finden Sie in der zweiten Partition (/dev/hda2) im Verzeichnis /boot/grub. Für Linux-Neulinge habe ich nachstehend detailliert abgebildet, wie Sie diese Datei finden und öffnen. Erfahrene Benutzer können die nächsten Abbildungen überspringen.
</p>
<p>
Starten Sie "Menu | Filesystem | Pmount mount/unmount drives" und klicken Sie auf den Button "MOUNT" hinter "/dev/hda2".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-5a.jpg" class="image-ia image-_original" height="366" width="297"></span>
</p>
<p>
Die Beschriftung des Buttons ändert sich in "UNMNT".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-6.jpg" class="image-ia image-_original" height="365" width="299"></span>
</p>
<p>
Starten Sie "Menu | Filesystem | ROX-Filer file filemanager".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1570.jpg">
</p>
<p>
Klicken Sie mit der rechten Maustaste und wählen Sie aus dem Kontext-Menü "Window | Enter Path".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1720.jpg">
</p>
<p>
Geben Sie in dem Feld "Goto" folgendes ein (vergessen Sie nicht den Schrägstrich am Ende der Pfadangabe): /mnt/hda2/boot/grub/
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1735.jpg">
</p>
<p>
Sie sind jetzt in dem Ordner /mnt/hda2/boot/grub/
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1740.jpg">
</p>
<p>
Klicken Sie mit der rechten Maustaste auf die Datei "menu.lst".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1745.jpg">
</p>
<p>
Wählen Sie im Kontextmenu "File menu.lst | Open As Text".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1750.jpg">
</p>
<p>
Sie sehen jetzt den Inhalt der Datei menu.lst.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1760.jpg">
</p>
<p>
Setzen Sie Kommentarzeichen (#) vor folgende Zeilen:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1761.jpg">
</p>
<p>
Die fertige Datei sollte jetzt wie folgt aussehen:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1771.jpg">
</p>
<p>
Speichern Sie die Datei über das Programm-Menu "File | Save". Beenden Sie den Texteditor.
</p>
<p>
Schließen Sie den Dateimanager ROX.
</p>
<p>
Klicken Sie auf den Button "UNMNT" hinter /dev/hda2.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-6a.jpg" class="image-ia image-_original" height="365" width="299"></span>
</p>
<p>
Die Beschriftung des Buttons ändert sich in "MOUNT".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c002-5.jpg" class="image-ia image-_original" height="366" width="297"></span>
</p>
<p>
Beenden Sie Puppy und starten Sie den Computer neu: "Menu | Shutdown | Reboot computer".
</p>
<p>
Sie werden beim Herunterfahren des Computers gefragt, ob Sie die die Computer-Einstellungen (Session) speichern möchten. Wechseln Sie mit den Cursor-Tasten auf den Eintrag "DO NOT SAVE" und bestätigen Sie mit der Return-Taste.
</p>
<p>
Jetzt fährt Ihr Computer vollständig herunter und startet anschließend neu. Es meldet sich zuerst der Bootloader. Wählen Sie mit den Cursor-Tasten "Linux (on /dev/hda2)" und drücken Sie die Return-Taste. Nun startet Puppy. Beim ersten Start müssen Sie noch einmal das Land und die Bildschirmauflösung eingeben. Diese Angaben werden nun gespeichert, so daß Sie diese Eingaben nicht mehr wiederholen müssen.</p></html>
Source: [[Full Installation (Volle Installation) : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren/full-installation-volle-installation]]
{{{
//--
//-- TiddlyWiki German Translation - r4755
//-- Maintainer: Besim Karadeniz <besim(at)karadeniz.de>
//-- Web: www.karadeniz.de/tiddlywiki/
//--
if (config.options.txtUserName == "YourName")
merge(config.options,{txtUserName: "IhrName"});
merge(config.tasks,{
save: {text: "speichern", tooltip: "Änderungen in dieses TiddlyWiki speichern", action: saveChanges},
sync: {text: "synchronisieren", tooltip: "Änderungen mit anderen TiddlyWiki-Dateien und Servern synchronisieren", content: '<<sync>>'},
importTask: {text: "importieren", tooltip: "Tiddler und Plugins aus anderen TiddlyWiki-Dateien und Servern importieren", content: '<<importTiddlers>>'},
tweak: {text: "optimieren", tooltip: "Erscheinungsbild und Reaktion des TiddlyWiki optimieren", content: '<<options>>'},
upgrade: {text: "upgraden", tooltip: "Upgraden des Kerncodes von TiddlyWiki", content: '<<upgrade>>'},
plugins: {text: "Plugins", tooltip: "Installierte Plugins verwalten", content: '<<plugins>>'}
});
// Optionen, die im Options-Panel oder/in Cookies eingestellt werden koennen
merge(config.optionsDesc,{
txtUserName: "Ihr Benutzername zum Unterzeichnen Ihrer Einträge",
chkRegExpSearch: "Reguläre Ausdrücke in der Suche aktivieren",
chkCaseSensitiveSearch: "Groß-/Kleinschreibung in der Suche aktivieren",
chkIncrementalSearch: "Inkrementelle Zeichen-für-Zeichen-Suche",
chkAnimate: "Animationen aktivieren",
chkSaveBackups: "Beim Speichern ein Backup erstellen",
chkAutoSave: "Automatisch speichern",
chkGenerateAnRssFeed: "RSS-Feed beim Speichern generieren",
chkSaveEmptyTemplate: "Leere Vorlage beim Speichern generieren",
chkOpenInNewWindow: "Externe Links in einem neuen Fenster öffnen",
chkToggleLinks: "Klick auf geöffnete Tiddler lässt diese schließen",
chkHttpReadOnly: "Bearbeitungsfunktionen ausblenden, wenn Zugriff via HTTP",
chkForceMinorUpdate: "Bearbeitungen als kleine Änderungen mit Beibehaltung von Datum und Zeit behandeln",
chkConfirmDelete: "Löschbestätigung vor dem Löschen von Tiddlern",
chkInsertTabs: "Benutzen Sie die Tabulatortaste um Tabulatorzeichen einzufügen anstelle jeweils zum nächsten Feld zu springen",
txtBackupFolder: "Verzeichnisname für Backup Dateien:",
txtMaxEditRows: "Maximale Zahl von Zeilen in einer Textbox eines Tiddlers:",
txtFileSystemCharSet: "Standard-Zeichensatz beim Speichern von Änderungen (nur Firefox/Mozilla)"});
merge(config.messages,{
customConfigError: "Beim Laden von Plugins sind Fehler aufgetreten. Siehe PluginManager für Details",
pluginError: "Fehler: %0",
pluginDisabled: "Nicht ausgeführt, da durch 'systemConfigDisable'-Tag deaktiviert",
pluginForced: "Ausgeführt, da durch 'systemConfigForce'-Tag erzwungen",
pluginVersionError: "Nicht ausgeführt, da dieses Plugin eine neuere Version von TiddlyWiki erfordert",
nothingSelected: "Nichts ausgewählt. Sie müssen zuerst ein oder mehrere Elemente auswählen",
savedSnapshotError: "Es scheint, dass dieses TiddlyWiki inkorrekt gespeichert wurde. Bitte besuchen Sie http://www.tiddlywiki.com/#DownloadSoftware für Details",
subtitleUnknown: "(unbekannt)",
undefinedTiddlerToolTip: "Der Tiddler '%0' existiert noch nicht",
shadowedTiddlerToolTip: "Der Tiddler '%0' existiert noch nicht, hat aber einen vordefinierten Schatteneintrag",
tiddlerLinkTooltip: "%0 - %1, %2",
externalLinkTooltip: "Externer Link zu %0",
noTags: "Es gibt keine getaggten Tiddler",
notFileUrlError: "Sie müssen zunächst dieses TiddlyWiki in eine Datei speichern, bevor Änderungen gespeichert werden können",
cantSaveError: "Änderungen können nicht gespeichert werden. Mögliche Gründe:\n- Ihr Browser unterstützt das Abspeichern nicht (Firefox, Internet Explorer, Safari und Opera können dies mit richtiger Konfiguration)\n- Der Pfadname zu Ihrem TiddlyWiki enthält ungültige Zeichen\n- Die TiddlyWiki-HTML-Datei wurde verschoben oder umbenannt",
invalidFileError: "Die originale Datei '%0' scheint kein gültiges TiddlyWiki zu sein",
backupSaved: "Backup gespeichert",
backupFailed: "Fehler beim Speichern des Backup",
rssSaved: "RSS-Feed gespeichert",
rssFailed: "Fehler beim Speichern des RSS-Feed",
emptySaved: "Leere Vorlage gespeichert",
emptyFailed: "Fehler beim Speichern der leeren Vorlage",
mainSaved: "Haupt-TiddlyWiki-Datei gespeichert",
mainFailed: "Fehler beim Speichern der Haupt-TiddlyWiki-Datei. Ihre Änderungen wurden nicht gespeichert",
macroError: "Fehler im Makro <<\%0>>",
macroErrorDetails: "Fehler beim Ausführen von Makro <<\%0>>:\n%1",
missingMacro: "Kein entsprechendes Makro vorhanden",
overwriteWarning: "Ein Tiddler namens '%0' existiert bereits. Wählen Sie OK zum Überschreiben",
unsavedChangesWarning: "WARNUNG! Ungespeicherte Änderungen im TiddlyWiki vorhanden\n\nWählen Sie OK zum Speichern\nWählen Sie ABBRECHEN/CANCEL zum Verwerfen",
confirmExit: "--------------------------------\n\nUngespeicherte Änderungen im TiddlyWiki vorhanden. Wenn Sie fortfahren, werden Sie diese Änderungen verlieren\n\n--------------------------------",
saveInstructions: "SaveChanges",
unsupportedTWFormat: "Nicht unterstütztes TiddlyWiki-Format '%0'",
tiddlerSaveError: "Fehler beim Speichern von Tiddler '%0'",
tiddlerLoadError: "Fehler beim Laden von Tiddler '%0'",
wrongSaveFormat: "Speichern im Speicherformat '%0' nicht möglich. Standardformat zum Speichern wird verwendet.",
invalidFieldName: "Ungültiger Dateiname %0",
fieldCannotBeChanged: "Feld '%0' kann nicht geändert werden",
loadingMissingTiddler: "Es wird versucht, den Tiddler '%0' vom Server '%1' bei\n\n'%2' im Workspace '%3' abzurufen",
upgradeDone: "Das Upgrade auf Version %0 ist komplett\n\nKlicken Sie auf 'OK' zum Neuladen des aktualisierten TiddlyWiki"});
merge(config.messages.messageClose,{
text: "schließen",
tooltip: "diesen Textbereich schließen"});
config.messages.backstage = {
open: {text: "Backstage", tooltip: "Öffnen Sie den Backstage-Bereich für Arbeiten an Entwicklungs- und Bearbeitungsaufgaben"},
close: {text: "schließen", tooltip: "Backstage-Bereich schließen"},
prompt: "Backstage: ",
decal: {
edit: {text: "bearbeiten", tooltip: "Den Tiddler '%0' bearbeiten"}
}
};
config.messages.listView = {
tiddlerTooltip: "Klick für den vollen Text dieses Tiddlers",
previewUnavailable: "(Vorschau nicht vorhanden)"
};
config.messages.dates.months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November","Dezember"];
config.messages.dates.days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
config.messages.dates.shortMonths = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"];
config.messages.dates.shortDays = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
// Suffixe für Datum (englischsprachig), z.B. "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["st","nd","rd","th","th","th","th","th","th","th",
"th","th","th","th","th","th","th","th","th","th",
"st","nd","rd","th","th","th","th","th","th","th",
"st"];
config.messages.dates.am = "am";
config.messages.dates.pm = "pm";
merge(config.messages.tiddlerPopup,{
});
merge(config.views.wikified.tag,{
labelNoTags: "keine Tags",
labelTags: "Tags: ",
openTag: "Öffne Tag '%0'",
tooltip: "Zeige Tiddlers mit Tags '%0'",
openAllText: "Öffne alle",
openAllTooltip: "Alle diese Tiddler öffnen",
popupNone: "Keine anderen Tiddler mit '%0' getaggt"});
merge(config.views.wikified,{
defaultText: "Der Tiddler '%0' existiert noch nicht. Doppelklicken zum Erstellen",
defaultModifier: "(fehlt)",
shadowModifier: "(vordefinierter Schatten-Tiddler)",
dateFormat: "DD. MMM YYYY",
createdPrompt: "erstellt"});
merge(config.views.editor,{
tagPrompt: "Geben Sie die Tags durch Leerstellen getrennt ein, [[benutzen Sie doppelte eckige Klammern]] falls nötig, oder wählen Sie vorhandene",
defaultText: "Geben Sie den Text für '%0' ein"});
merge(config.views.editor.tagChooser,{
text: "Tags",
tooltip: "Wählen Sie vorhandene Tags zum Hinzufügen zu diesem Tiddler aus",
popupNone: "Es sind keine Tags definiert",
tagTooltip: "Tag '%0' hinzufügen"});
merge(config.messages,{
sizeTemplates:
[
{unit: 1024*1024*1024, template: "%0\u00a0GB"},
{unit: 1024*1024, template: "%0\u00a0MB"},
{unit: 1024, template: "%0\u00a0KB"},
{unit: 1, template: "%0\u00a0B"}
]});
merge(config.macros.search,{
label: "suchen",
prompt: "Dieses TiddlyWiki durchsuchen",
accessKey: "F",
successMsg: "%0 Tiddler gefunden, die %1 enthalten",
failureMsg: "Keine Tiddler gefunden, die %0 enthalten"});
merge(config.macros.tagging,{
label: "Tagging: ",
labelNotTag: "kein Tagging",
tooltip: "Liste der Tiddler, die mit '%0' getaggt sind"});
merge(config.macros.timeline,{
dateFormat: "DD. MMM YYYY"});
merge(config.macros.allTags,{
tooltip: "Tiddler, die mit '%0' getagged sind, anzeigen",
noTags: "Keine getaggten Tiddler vorhanden"});
config.macros.list.all.prompt = "Alle Tiddler in alphabetischer Reihenfolge";
config.macros.list.missing.prompt = "Tiddler, auf die verwiesen wird, die aber nicht existieren";
config.macros.list.orphans.prompt = "Tiddler, auf die nicht von anderen Tiddlern verwiesen wird";
config.macros.list.shadowed.prompt = "Tiddler, für die Standardeinträge existieren";
config.macros.list.touched.prompt = "Tiddlers, die lokal verändert wurden";
merge(config.macros.closeAll,{
label: "alle schließen",
prompt: "Alle angezeigten Tiddler schließen (außer denen, die gerade bearbeitet werden)"});
merge(config.macros.permaview,{
label: "Permaview",
prompt: "Erzeugt einen URL, mit dem auf alle gerade geöffneten Tiddler verwiesen werden kann"});
merge(config.macros.saveChanges,{
label: "Änderungen speichern",
prompt: "Alle Änderungen speichern",
accessKey: "S"});
merge(config.macros.newTiddler,{
label: "Neuer Tiddler",
prompt: "Neuen Tiddler erstellen",
title: "Neuer Tiddler",
accessKey: "N"});
merge(config.macros.newJournal,{
label: "Neues Journal",
prompt: "Neuen Tiddler mit aktuellem Datum und aktueller Zeit erstellen",
accessKey: "J"});
merge(config.macros.options,{
wizardTitle: "Erweiterte Optionen verändern",
step1Title: "Diese Optionen werden mit Cookies in Ihrem Browser gespeichert",
step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Unbekannte Optionen anzeigen</input>",
unknownDescription: "//(unbekannt)//",
listViewTemplate: {
columns: [
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Description', field: 'description', title: "Beschreibung", type: 'WikiText'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
});
merge(config.macros.plugins,{
wizardTitle: "Plugins verwalten",
step1Title: "Aktuell geladene Plugins",
step1Html: "<input type='hidden' name='markList'></input>",
skippedText: "(Dieses Plugin wurde nicht ausgeführt, da es nach dem Start hinzugefügt wurde)",
noPluginText: "Es sind keine Plugins installiert",
confirmDeleteText: "Wollen Sie wirklich folgende Plugins löschen:\n\n%0",
removeLabel: "systemConfig-Tag entfernen",
removePrompt: "systemConfig-Tag entfernen",
deleteLabel: "löschen",
deletePrompt: "Diese Tiddler endgültig löschen",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Grösse", type: 'Size'},
{name: 'Forced', field: 'forced', title: "Erzwungen", tag: 'systemConfigForce', type: 'TagCheckbox'},
{name: 'Disabled', field: 'disabled', title: "Deaktiviert", tag: 'systemConfigDisable', type: 'TagCheckbox'},
{name: 'Executed', field: 'executed', title: "Geladen", type: 'Boolean', trueText: "Ja", falseText: "Nein"},
{name: 'Startup Time', field: 'startupTime', title: "Startzeit", type: 'String'},
{name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Fehler", falseText: "OK"},
{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
],
rowClasses: [
{className: 'error', field: 'error'},
{className: 'warning', field: 'warning'}
]}
});
merge(config.macros.toolbar,{
moreLabel: "mehr",
morePrompt: "Weitere Funktionen anzeigen"
});
merge(config.macros.refreshDisplay,{
label: "aktualisieren",
prompt: "Gesamte TiddlyWiki-Ansicht aktualisieren"
});
merge(config.macros.importTiddlers,{
readOnlyWarning: "Sie können nicht in eine schreibgeschützte TiddlyWiki-Datei importieren. Versuchen Sie diese über eine file:// URL zu öffnen",
wizardTitle: "Tiddler aus anderer Datei oder anderem Server importieren",
step1Title: "Schritt 1: Server oder TiddlyWiki-Datei ausfindig machen",
step1Html: "Typ des Servers auswählen: <select name='selTypes'><option value=''>Wählen...</option></select><br>URL oder Pfadnamen eingeben: <input type='text' size=50 name='txtPath'><br>...oder nach einer Datei browsen: <input type='file' size=50 name='txtBrowse'><br><hr>...oder einen vordefinierten Feed auswählen: <select name='selFeeds'><option value=''>Wählen...</option></select>",
openLabel: "öffnen",
openPrompt: "Verbindung zu dieser Datei oder Server starten",
openError: "Beim Versuch, die TiddlyWiki-Datei zu öffnen, gab es Probleme",
statusOpenHost: "Verbindung zum Host starten",
statusGetWorkspaceList: "Liste von vorhandenen Workspaces abrufen",
step2Title: "Schritt 2: Workspace auswählen",
step2Html: "Einen Workspace-Namen eingeben: <input type='text' size=50 name='txtWorkspace'><br>...oder ein Workspace auswählen: <select name='selWorkspace'><option value=''>Wählen...</option></select>",
cancelLabel: "abbrechen",
cancelPrompt: "Diesen Import abbrechen",
statusOpenWorkspace: "Workspace wird geöffnet",
statusGetTiddlerList: "Abrufen der Liste von vorhandenen Workspaces",
errorGettingTiddlerList: "Fehler beim Abrufen der Liste der Tiddler, klicken Sie auf ABBRECHEN/CANCEL, um es nochmal zu probieren",
step3Title: "Schritt 3: Zu importierende Tiddler auswählen",
step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Links dieser Tiddler zum Server erhalten, um nachfolgende Änderungen synchronisieren zu können</input><br><input type='checkbox' checked='false' name='chkSave'>Speichern der Details dieses Servers in einem 'systemServer'Tiddler namens:</input> <input type='text' size=25 name='txtSaveTiddler'>",
importLabel: "importieren",
importPrompt: "Diese Tiddler importieren",
confirmOverwriteText: "Wollen Sie wirklich folgende Tiddler überschreiben:\n\n%0",
step4Title: "Schritt 4: Importieren von %0 Tiddler",
step4Html: "<input type='hidden' name='markReport'></input>",
doneLabel: "Erledigt",
donePrompt: "Diesen Assistenten schliessen",
statusDoingImport: "Tiddler werden importiert",
statusDoneImport: "Alle Tiddler importiert",
systemServerNamePattern: "%2 auf %1",
systemServerNamePatternNoWorkspace: "%1",
confirmOverwriteSaveTiddler: "Der Tiddler '%0' existiert bereits. Klicken Sie auf 'OK' um ihn mit den Details dieses Servers zu überschreiben, oder 'Abbrechen', um ihn unverändert zu lassen",
serverSaveTemplate: "|''Eingabe:''|%0|\n|''URL:''|%1|\n|''Workspace:''|%2|\n\nDieser Tiddler wurde automatisch erstellt, um Details dieses Servers aufzuzeichnen",
serverSaveModifier: "(System)",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Grösse", type: 'Size'},
{name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
],
rowClasses: [
]}
});
merge(config.macros.upgrade,{
wizardTitle: "Upgraden des Kerncodes von TiddlyWiki",
step1Title: "Update oder Reparatur dieses TiddlyWiki auf die aktuellste Version",
step1Html: "Sie sind dabei, auf die aktuellste Version des TiddlyWiki-Kerncodes upzugraden (von <a href='%0' class='externalLink' target='_blank'>%1</a>). Ihre Inhalte werden während dem Upgrade erhalten bleiben.<br><br>Bitte beachten Sie, dass Kerncode-Updates mit älteren Plugins kollidieren können. Wenn Sie Probleme mit der aktualisierten Datei beobachten, besuchen Sie bitte <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
errorCantUpgrade: "Upgrade dieses TiddlyWiki nicht möglich. Sie können nur lokal abgespeicherte TiddlyWiki-Dateien upgraden",
errorNotSaved: "Sie müssen zunächst Änderungen speichern, bevor Sie ein Upgrade starten können",
step2Title: "Upgrade-Details bestätigen",
step2Html_downgrade: "Sie sind dabei, von der TiddlyWiki-Version %0 auf die Version %1 downzugraden.<br><br>Der Downgrade auf eine frühere Version von TiddlyWiki wird nicht empfohlen",
step2Html_restore: "Dieses TiddlyWiki scheint bereits die aktuellste Version des Kerncodes (%0) einzusetzen.<br><br>Sie können mit dem Upgrade fortsetzen, um sicherzustellen, dass der Kerncode nicht korrumpiert oder beschädigt wurde",
step2Html_upgrade: "Sie sind dabei, von der TiddlyWiki-Version %0 auf die Version %1 upzugraden",
upgradeLabel: "upgraden",
upgradePrompt: "Vorbereiten des Upgrade-Prozesses",
statusPreparingBackup: "Backup vorbereiten",
statusSavingBackup: "Backup-Datei speichern",
errorSavingBackup: "Ein Problem mit dem Speichern der Backup-Datei ist aufgetreten",
statusLoadingCore: "Kerncode laden",
errorLoadingCore: "Fehler beim Laden des Kerncodes",
errorCoreFormat: "Fehler im neuen Kerncode",
statusSavingCore: "Neuen Kerncode speichern",
statusReloadingCore: "Neuen Kerncode neu laden",
startLabel: "starten",
startPrompt: "Upgrade-Prozess starten",
cancelLabel: "abbrechen",
cancelPrompt: "Upgrade-Prozess abbrechen",
step3Title: "Upgrade abgebrochen",
step3Html: "Sie haben den Upgrade-Prozess abgebrochen"
});
merge(config.macros.sync,{
listViewTemplate: {
columns: [
{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Server Type', field: 'serverType', title: "Server-Typ", type: 'String'},
{name: 'Server Host', field: 'serverHost', title: "Server-Host", type: 'String'},
{name: 'Server Workspace', field: 'serverWorkspace', title: "Server-Workspace", type: 'String'},
{name: 'Status', field: 'status', title: "Status der Synchronisation", type: 'String'},
{name: 'Server URL', field: 'serverUrl', title: "Server-URL", text: "View", type: 'Link'}
],
rowClasses: [
],
buttons: [
{caption: "Diese Tiddler synchronisieren", name: 'sync'}
]},
wizardTitle: "Mit externen Servern oder Dateien synchronisieren",
step1Title: "Wählen Sie die Tiddler aus, die Sie synchronisieren möchten",
step1Html: '<input type="hidden" name="markList"></input>',
syncLabel: "synchronisieren",
syncPrompt: "Diese Tiddler synchronisieren",
hasChanged: "Verändert während Trennung",
hasNotChanged: "Unverändert während Trennung",
syncStatusList: {
none: {text: "...", color: "transparent"},
changedServer: {text: "Auf dem Server geändert", color: '#80ff80'},
changedLocally: {text: "Im ausgesteckten Zustand geändert", color: '#80ff80'},
changedBoth: {text: "Im ausgesteckten Zustand und auf dem Server geändert", color: '#ff8080'},
notFound: {text: "Auf dem Server nicht gefunden", color: '#ffff80'},
putToServer: {text: "Aktualisierung auf dem Server gespeichert", color: '#ff80ff'},
gotFromServer: {text: "Aktualisierung vom Server abgerufen", color: '#80ffff'}
}
});
merge(config.macros.annotations,{
});
merge(config.commands.closeTiddler,{
text: "schließen",
tooltip: "Diesen Tiddler schließen"});
merge(config.commands.closeOthers,{
text: "andere schließen",
tooltip: "Alle anderen Tiddler schließen"});
merge(config.commands.editTiddler,{
text: "bearbeiten",
tooltip: "Diesen Tiddler bearbeiten",
readOnlyText: "betrachten",
readOnlyTooltip: "Quellcode dieses Tiddlers betrachten"});
merge(config.commands.saveTiddler,{
text: "fertig",
tooltip: "Änderungen an diesem Tiddler speichern"});
merge(config.commands.cancelTiddler,{
text: "abbrechen",
tooltip: "Änderungen an diesem Tiddler verwerfen",
warning: "Wollen Sie wirklich Änderungen in '%0' verwerfen?",
readOnlyText: "fertig",
readOnlyTooltip: "Diesen Tiddler normal anzeigen"});
merge(config.commands.deleteTiddler,{
text: "löschen",
tooltip: "Diesen Tiddler löschen",
warning: "Wollen Sie '%0' wirklich löschen?"});
merge(config.commands.permalink,{
text: "Permalink",
tooltip: "Permalink für diesen Tiddler"});
merge(config.commands.references,{
text: "Referenzen",
tooltip: "Alle Tiddler zeigen, die auf diesen verweisen",
popupNone: "Keine Referenzen"});
merge(config.commands.jump,{
text: "springen",
tooltip: "Zu anderem, geöffneten Tiddler springen"});
merge(config.commands.syncing,{
text: "Synchronisierung läuft",
tooltip: "Synchronisation dieses Tiddlers mit einem Server oder einer externen Datei kontrollieren",
currentlySyncing: "<div>Aktuell am Synchronisieren mit <span class='popupHighlight'>'%0'</span> zu:</"+"div><div>Host: <span class='popupHighlight'>%1</span></"+"div><div>Workspace: <span class='popupHighlight'>%2</span></"+"div>", // Hinweis - Das Schliessen des <div>-Tag verlassen
notCurrentlySyncing: "Derzeit keine Synchronisierung",
captionUnSync: "Synchronisierung dieses Tiddlers stoppen",
chooseServer: "Diesen Tiddler mit anderem Server synchronisieren:",
currServerMarker: "\u25cf ",
notCurrServerMarker: " "});
merge(config.commands.fields,{
text: "Felder",
tooltip: "Erweiterte Felder dieses Tiddlers anzeigen",
emptyText: "Keine erweiterten Felder für diesen Tiddler vorhanden",
listViewTemplate: {
columns: [
{name: 'Field', field: 'field', title: "Feld", type: 'String'},
{name: 'Value', field: 'value', title: "Wert", type: 'String'}
],
rowClasses: [
],
buttons: [
]}});
merge(config.shadowTiddlers,{
DefaultTiddlers: "GettingStarted",
MainMenu: "GettingStarted",
SiteTitle: "Mein TiddlyWiki",
SiteSubtitle: "ein wiederverwendbares nichtlineares, persönliches ~Web-Notizbuch",
SiteUrl: "http://www.tiddlywiki.com/",
SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD. MMM YYYY" "Journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "Optionen \u00bb" "Optionen von TiddlyWiki ändern">>',
SideBarTabs: '<<tabs txtMainTab "Zeitachse" "Zeitachse" TabTimeline "Alles" "Alle Tiddler" TabAll "Tags" "Alle Tags" TabTags "Mehr" "Weitere Listen" TabMore>>',
TabMore: '<<tabs txtMoreTab "Fehlend" "Fehlende Tiddler" TabMoreMissing "Waisen" "Verwaiste Tiddler" TabMoreOrphans "Schatten" "Tiddler mit Schatteneinträgen" TabMoreShadowed>>',
ToolbarCommands: "|~ViewToolbar|closeTiddler closeOthers +editTiddler > fields syncing permalink references jump|\n|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|"});
merge(config.annotations,{
AdvancedOptions: "Dieser Schatten-Tiddler bietet Zugang zu diversen erweiterten Optionen",
ColorPalette: "Diese Werte in diesem Schatten-Tiddler legen das Farbschema der Benutzerschnittstelle des TiddlyWiki fest",
DefaultTiddlers: "Die in diesem Schatten-Tiddler aufgelisteten Tiddler werden automatisch beim Start des TiddlyWiki angezeigt",
EditTemplate: "Die HTML-Vorlage in diesem Schatten-Tiddler legt das Aussehen von Tiddler während ihrer Bearbeitung fest",
GettingStarted: "Dieser Schatten-Tiddler bietet eine einfache Bedienungsanleitung",
ImportTiddlers: "Dieser Schatten-Tiddler bietet Zugang zum Import von Tiddler",
MainMenu: "Dieser Schatten-Tiddler dient als Container für das Hauptmenü in der linksseitigen Spalte des Bildschirms",
MarkupPreHead: "Dieser Tiddler wird an der Spitze der <head>-Sektion der HTML-Datei des TiddlyWiki eingefügt",
MarkupPostHead: "Dieser Tiddler wird am Ende der <head>-Sektion der HTML-Datei des TiddlyWiki eingefügt",
MarkupPreBody: "Dieser Tiddler wird an der Spitze der <body>-Sektion der HTML-Datei des TiddlyWiki eingefügt",
MarkupPostBody: "Dieser Tiddler wird am Ende der <body>-Sektion der HTML-Datei des TiddlyWiki unmittelbar nach dem Scriptblock eingefügt",
OptionsPanel: "Dieser Schatten-Tiddler dient als Container für das einblendbare Optionsfeld in der rechtsseitigen Seitenleiste",
PageTemplate: "Die HTML-Vorlage in diesem Schatten-Tiddler legt das allgemeine Aussehen des TiddlyWiki fest",
PluginManager: "Dieser Schatten-Tiddler bietet Zugang zum Plugin-Manager",
SideBarOptions: "Dieser Schatten-Tiddler dient als Container für das Optionsfeld in der rechtsseitigen Seitenleiste",
SideBarTabs: "Dieser Schatten-Tiddler dient als Container für das Tab-Panel in der rechtsseitigen Seitenleiste",
SiteSubtitle: "Dieser Schatten-Tiddler enthält den zweiten Teil der Seitenüberschrift",
SiteTitle: "Dieser Schatten-Tiddler enthält den ersten Teil der Seitenüberschrift",
SiteUrl: "Dieser Schatten-Tiddler sollte den vollständigen Ziel-URL der Veröffentlichung enthalten",
StyleSheetColors: "Dieser Schatten-Tiddler enthält CSS-Definitionen bezüglich der Farbe von Seitenelementen. ''DIESEN TIDDLER NICHT BEARBEITEN'', fügen Sie Ihre Änderungen stattdessen in den StyleSheet-Schatten-Tiddler ein",
StyleSheet: "Dieser Tiddler kann benutzerspezifische CSS-Definitionen enthalten",
StyleSheetLayout: "Dieser Schatten-Tiddler enthält CSS-Definitionen bezüglich dem Aussehen von Seitenelementen. ''DIESEN TIDDLER NICHT BEARBEITEN'', fügen Sie Ihre Änderungen stattdessen in den StyleSheet-Schatten-Tiddler ein",
StyleSheetLocale: "Dieser Schatten-Tiddler enthält CSS-Definitionen bezüglich lokale Übersetzungen",
StyleSheetPrint: "Dieser Schatten-Tiddler enthält CSS-Definitionen zum Drucken",
TabAll: "Dieser Schatten-Tiddler enthält den Inhalt des 'Alles'-Tab in der rechtsseitigen Seitenleiste",
TabMore: "Dieser Schatten-Tiddler enthält den Inhalt des 'Mehr'-Tab in der rechtsseitigen Seitenleiste",
TabMoreMissing: "Dieser Schatten-Tiddler enthält den Inhalt des 'Fehlend'-Tab in der rechtsseitigen Seitenleiste",
TabMoreOrphans: "Dieser Schatten-Tiddler enthält den Inhalt des 'Waisen'-Tab in der rechtsseitigen Seitenleiste",
TabMoreShadowed: "Dieser Schatten-Tiddler enthält den Inhalt des 'Schatten'-Tab in der rechtsseitigen Seitenleiste",
TabTags: "Dieser Schatten-Tiddler enthält den Inhalt des 'Tags'-Tab in der rechtsseitigen Seitenleiste",
TabTimeline: "Dieser Schatten-Tiddler enthält den Inhalt des 'Zeitachse'-Tab in der rechtsseitigen Seitenleiste",
ToolbarCommands: "Dieser Schatten-Tiddler legt fest, welche Befehle in Tiddler-Toolbars angezeigt werden",
ViewTemplate: "Die HTML-Vorlage in diesem Schatten-Tiddler legt das Aussehen der Tiddler fest"
});
// Weitere Uebersetzungen des Interface
merge(config.shadowTiddlers,{
OptionsPanel: "Diese [[Interface-Einstellungen|InterfaceOptions]] zur Anpassung von TiddlyWiki werden in Ihrem Browser gespeichert\n\nIhr Benutzername zum Unterzeichnen Ihrer Einträge. Bitte als WikiWord (z.B. KlausBrandmüller) schreiben\n\n<<option txtUserName>>\n<<option chkSaveBackups>> [[Backups speichern|SaveBackups]]\n<<option chkAutoSave>> [[Automatisch speichern|AutoSave]]\n<<option chkRegExpSearch>> [[RegExp Suche|RegExpSearch]]\n<<option chkCaseSensitiveSearch>> [[Groß-/Kleinschreibung in Suche|CaseSensitiveSearch]]\n<<option chkAnimate>> [[Animationen aktivieren|EnableAnimations]]\n\n----\[[Erweiterte Optionen|AdvancedOptions]]\nPluginManager\nImportTiddlers",
GettingStarted: "Um mit diesem TiddlyWiki zu starten, sollten Sie folgende Tiddler modifizieren:\n* SiteTitle & SiteSubtitle: Den [[Titel|SiteTitle]] und [[Untertitel|SiteSubtitle]] der Site, wie oben angezeigt (nach dem Speichern werden diese auch in der Titelzeile des Browsers angezeigt)\n* MainMenu: Ihr Inhaltsverzeichnis (für gewöhnlich Links)\n* DefaultTiddlers: Beinhaltet die Namen der Tiddler, die Sie angezeigt haben möchten, wenn das TiddlyWiki geöffnet wird.\nSie sollten zudem Ihren Benutzernamen zum Unterzeichnen Ihrer Bearbeitungen eingeben: <<option txtUserName>>",
ViewTemplate: "<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (erstellt am <span macro='view created date'></span>)</div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='tagClear'></div>",
InterfaceOptions: "Die [[Interface-Einstellungen|InterfaceOptions]] werden angezeigt, wenn Sie rechts auf 'Optionen' klicken. Sie werden mit einem Cookie in Ihrem Browser gespeichert, um sie zwischen den Aufrufen zu sichern. Nähere Informationen zu den einzelnen Funktionen finden Sie, wenn Sie die Funktion selbst anklicken.",
WikiWord: "Ein WikiWord ist ein Wort, das aus mehreren einzelnen Wörtern zusammengesetzt ist, in dem jedes Wort mit einem Grossbuchstaben beginnt und eine individuelle Seite bezeichnet.",
SaveBackups: "[[Backups speichern|SaveBackups]] ist eine Funktion, mit der automatisch bei jedem Abspeichern ein Backup erstellt wird.",
AutoSave: "[[Automatisches Speichern|AutoSave]] speichert automatisch Änderungen jedes Mal, wenn Sie einen Tiddler bearbeiten. Damit sinken die Chancen, dass Sie Daten verlieren. Beachten Sie jedoch, dass bei aktivierter [[Backup-Funktion|SaveBackups]] natürlich auch eine Menge Backup-Dateien erstellt werden. Entscheiden Sie sich deshalb für die eine oder andere Funktion.",
RegExpSearch: "Mit der [[RegExp Suche|RegExpSearch]] können Sie mit regulären Suchausdrücken flexible Suchanfragen vornehmen.",
CaseSensitiveSearch: "Die Unterscheidung der [[Groß-/Kleinschreibung in Suche|CaseSensitiveSearch]] tut genau dies.",
EnableAnimations: "Diese Funktion aktiviert Animationen, wenn Sie einen Tiddler öffnen oder schliessen.",
GenerateAnRssFeed: "Wenn Sie [[RSS-Feed generieren|GenerateAnRssFeed]] aktivieren, speichert TiddlyWiki automatisch einen RSS-2.0-gültigen Feed, so bald Ihr TiddlyWiki gespeichert wird. Der Feed hat den gleichen Dateinamen wie das TiddlyWiki, lediglich jedoch mit der Endung '.xml'.",
OpenLinksInNewWindow: "Diese Funktion öffnet externe Links in einem neuen ~Browser-Fenster.",
SaveEmptyTemplate: "Diese Funktion erwirkt, dass beim Abspeichern von Änderungen eine leere Vorlage von TiddlyWiki erzeugt wird. Dies ist als Hilfe gedacht für Entwickler, die Adaptionen von TiddlyWiki bereitstellen. Die Funktion ist nicht erforderlich, wenn Sie ein normaler Benutzer sind.",
HideEditingFeatures: "Ist diese Funktion aktiviert, werden die Bearbeitungsfunktionen ausgeblendet, wenn das TiddlyWiki über HTTP aufgerufen wird. Der Benutzer hat dann die Möglichkeit, den Tiddler zwar betrachten zu können, aber nicht zu bearbeiten.",
MinorChanged: "Manchmal ist es sinnvoll, dass bei kleinen Änderungen der Tiddler in der Zeitachse nicht automatisch an den Anfang gesetzt wird. Mit Aktivierung dieser Funktion werden alle Bearbeitungen von Tiddlern als kleine Änderungen betrachtet und das Änderungsdatum nicht geändert.",
ConfirmBeforeDeleting: "Bei Aktivierung dieser Funktion fordert TiddlyWiki eine Bestätigung des Benutzers an, wenn ein Tiddler gelöscht werden soll."});
}}}
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{
window.hideWhenLastTest = false;
window.removeElementWhen = function(test,place) {
window.hideWhenLastTest = test;
if (test) {
removeChildren(place);
place.parentNode.removeChild(place);
}
};
merge(config.macros,{
hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( eval(paramString), place);
}},
showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !eval(paramString), place);
}},
hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.tags.containsAll(params), place);
}},
showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !tiddler.tags.containsAll(params), place);
}},
hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.tags.containsAny(params), place);
}},
showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !tiddler.tags.containsAny(params), place);
}},
hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.tags.containsAll(params), place);
}},
showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !tiddler.tags.containsAll(params), place);
}},
hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
}},
showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
}},
hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.title == params[0], place);
}},
showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.title != params[0], place);
}},
'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !window.hideWhenLastTest, place);
}}
});
//}}}
<html><h2>Hintergrundbild ändern </h2>
<p>
Die Hintergrundbilder sind im Ordner /usr/share/backgrounds abgelegt. Wenn Sie ein eigenes Hintergrundbild einstellen wollen, kopieren Sie zuerst das Bild in diesen Ordner. Anschließend starten Sie das Programm "Menu | Desktop | Wallpaper setter". Wählen Sie ein Bild aus und bestimmen Sie den "Mode" (Centre, Tile, Scale, Stretch). Dann klicken Sie auf den Button "Apply".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c028a.jpg" class="image-ia image-_original" height="430" width="618"></span></p></html>
Source: [[Hintergrundbild ändern : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-individuell-konfigurieren/hintergrundbild-aendern]]
<html><h2>Einführung </h2>
<p>Dieses Handbuch wendet sich sowohl an Linux-Neulinge als auch an Linux-Anwender, die Puppy kennenlernen möchten. Dieses Handbuch faßt die wichtigsten Informationen für Puppy-Neulinge zusammen und nimmt Sie bei Ihren ersten Schritten mit Puppy an die Hand. </p>
<h3>Hinweise zur Benutzung des Handbuchs: </h3>
<p>
Menüeinträge und Buttons sind in "" - Zeichen gesetzt, Untermenüs durch einen senkrechten Strich getrennt. Beispiel: "Menu | Shut Down | JWM restart" bedeutet, daß Sie zuerst auf den Button "Menu" klicken, dann in der dann erscheinenden Menüleiste auf den Eintrag "Shut Down" und schließlich in dem dann erscheinenden Untermenü auf "JWM restart".
</p>
<p>
Im Handbuch wird der Buchstabe x als Platzhalter für eine Zahl verwendet. So bedeutet z.B. /dev/hdax, daß Sie in Abhängigkeit von Ihrer PC-Konfiguration /dev/hda1, /dev/hda2 oder /dev/hda3 etc. eingeben müssen.
</p>
<p>
Im Handbuch werden die Begriffe "Konsole", "Shell" und "Terminal" synonym verwendet. Es ist immer das Programm "Menu | Run | Rxvt terminal emulator" gemeint.</p></html>
Source: [[Einführung : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch]]
!!Handbuch
[[Puppy bekommen herunterladen]]
[[Puppy starten]]
[[Puppyinstallation]]
[[Internetzugang]]
[[Hardwarekonfiguration]]
[[Programminstallation]]
[[Puppykonfiguration]]
[[Backup]]
[[Multiuser]]
[[Sicherheit]]
[[Puppy remastern]]
[[Windows-Programme und das Puppy-Linux-Gegenstück]]
[[Tipps]]
[[Links]]
<html><h2>
Installation<br>
</h2>
<p>
Es gibt verschiedene Möglichkeiten, Puppy zu installieren, zum Beispiel:
</p>
<p>
Frugal Installation (Image der Puppy-CD auf Festplatte)
</p>
<p>
Full Installation (Volle Installation)
</p>
<p>
Installation auf einem USB-Stick
</p>
<p>
Installation auf einer CF-Card
</p>
<p>
Eine Frugal Installation ist empfehlenswert, wenn Sie 256 MB oder mehr Arbeitsspeicher haben. Wenn Sie weniger als 256 MB Arbeitsspeicher haben, sollten Sie die Full Installation wählen.</p></html>
Source: [[Installation : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren/installation]]
/***
|Name:|InstantTimestampPlugin|
|Description:|A handy way to insert timestamps in your tiddler content|
|Version:|1.0.10 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#InstantTimestampPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
If you enter {ts} in your tiddler content (without the spaces) it will be replaced with a timestamp when you save the tiddler. Full list of formats:
* {ts} or {t} -> timestamp
* {ds} or {d} -> datestamp
* !ts or !t at start of line -> !!timestamp
* !ds or !d at start of line -> !!datestamp
(I added the extra ! since that's how I like it. Remove it from translations below if required)
!!Notes
* Change the timeFormat and dateFormat below to suit your preference.
* See also http://mptw2.tiddlyspot.com/#AutoCorrectPlugin
* You could invent other translations and add them to the translations array below.
***/
//{{{
config.InstantTimestamp = {
// adjust to suit
timeFormat: 'DD/0MM/YY 0hh:0mm',
dateFormat: 'DD/0MM/YY',
translations: [
[/^!ts?$/img, "'!!{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
[/^!ds?$/img, "'!!{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"],
// thanks Adapted Cat
[/\{ts?\}(?!\}\})/ig,"'{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
[/\{ds?\}(?!\}\})/ig,"'{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"]
],
excludeTags: [
"noAutoCorrect",
"noTimestamp",
"html",
"CSS",
"css",
"systemConfig",
"systemConfigDisabled",
"zsystemConfig",
"Plugins",
"Plugin",
"plugins",
"plugin",
"javascript",
"code",
"systemTheme",
"systemPalette"
],
excludeTiddlers: [
"StyleSheet",
"StyleSheetLayout",
"StyleSheetColors",
"StyleSheetPrint"
// more?
]
};
TiddlyWiki.prototype.saveTiddler_mptw_instanttimestamp = TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {
tags = tags ? tags : []; // just in case tags is null
tags = (typeof(tags) == "string") ? tags.readBracketedList() : tags;
var conf = config.InstantTimestamp;
if ( !tags.containsAny(conf.excludeTags) && !conf.excludeTiddlers.contains(newTitle) ) {
var now = new Date();
var trans = conf.translations;
for (var i=0;i<trans.length;i++) {
newBody = newBody.replace(trans[i][0], eval(trans[i][1]));
}
}
// TODO: use apply() instead of naming all args?
return this.saveTiddler_mptw_instanttimestamp(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);
}
// you can override these in StyleSheet
setStylesheet(".ts,.ds { font-style:italic; }","instantTimestampStyles");
//}}}
<html><h2>Intrusion detection </h2>
<p>
Zur weiteren Verbesserung der Systemsicherheit sollten Sie für alle (wichtigen) Dateien eine Checksumme (quasi ein Fingerabdruck der Datei) berechnen und sichern. In regelmäßigen Abständen, aber auf jeden Fall vor einem Backup, überprüfen Sie die Checksummen Ihrer Dateien. Stimmen die Checksummen nicht mehr überein, wurde die Datei verändert oder gelöscht.
</p>
<p>
Um die Checksummen zu berechnen und zu speichern, starten Sie eine Konsole und geben dann folgende Befehle ein:
</p>
<p>
md5sum /usr/bin/md5sum
</p>
<p>
Damit ermitteln Sie die Checksumme für das Programm md5sum, um später Manipulationen an dem Programm entdecken zu können. Schreiben Sie sich die Checksumme auf.
</p>
<p>
Jetzt binden Sie die Festplatte mit Ihren Daten ein.
</p>
<p>
mount /dev/hda4 /mnt/hda4
</p>
<p>
Der nachfolgende Befehl erstellt die Datei check1.dat mit den Checksummen jeder Datei und speichert diese im Verzeichnis /root
</p>
<p>
find /mnt/hda4 -type f -exec ls -ail {} \; \-exec md5sum {} \; > /root/check1.dat
</p>
<p>
Jetzt ermitteln Sie die Checksumme der Datei check1.dat. Schreiben Sie sich die Checksumme auf. Sie können dann später prüfen, ob die Datei manipuliert wurde.
</p>
<p>
md5sum /root/check1.dat
</p>
<p>
Damit ist der erste Teil abgeschlossen. Nach einiger Zeit (z.B. nach einer Woche oder vor dem nächsten Backup) wollen Sie nun prüfen, ob Dateien geändert oder gelöscht wurden. Starten Sie mit folgendem Befehl:
</p>
<p>
md5sum /usr/bin/md5sum
</p>
<p>
Vergleichen Sie die Checksumme mit Ihrer Notiz. Wenn die Checksumme nicht übereinstimmt, wurde das Programm md5sum manipuliert.
</p>
<p>
Anschließend prüfen Sie, ob die Datei check1.dat manipuliert wurde. Vergleichen Sie die Checksumme erneut mit Ihrer Notiz.
</p>
<p>
md5sum /root/check1.dat
</p>
<p>
Binden Sie jetzt die Festplatte mit Ihren Daten ein.
</p>
<p>
mount /dev/hda4 /mnt/hda4
</p>
<p>
Mit dem folgenden Befehl wird die Datei check2.dat mit den aktuellen Checksummen jeder Datei erstellt und im Verzeichnis /root gespeichert.
</p>
<p>
find /mnt/hda4 -type f -exec ls -ail {} \; \-exec md5sum {} \; > /root/check2.dat
</p>
<p>
Der folgende Befehl vergleicht die beiden Dateien check1.dat und check2.dat und gibt die geänderten, gelöschten und neu erstellten Dateien in die Datei diff.txt aus.
</p>
<p>
diff /root/check1.dat /root/check2.dat > /root/diff.txt
</p>
<p>
Öffnen Sie die Datei diff.txt und prüfen Sie, ob es richtig ist, dass diese Dateien verändert, gelöscht oder neu erstellt wurden. Falls eine Datei ohne Ihr Wissen geändert oder gelöscht wurde, verwenden Sie die Datei aus Ihrem Backup. Überlegen Sie, wie es zu der Manipulation kommen konnte.
</p>
<p>
Löschen Sie jetzt die Datei /root/check1.dat. Die alte Datei wird nicht mehr benötigt
</p>
<p>
Benennen Sie die Datei /root/check2.dat in /root/check1.dat um.
</p>
<p>
Erstellen Sie die Checksumme für die Datei und notieren Sie sich die Checksumme.
</p>
<p>
md5sum /root/check1.dat
</p>
<p>
Damit hat sich der Kreis geschlossen.
</p>
<p>
Sie können die Befehle zum Erstellen der Datei check2.dat auch durch Semikolon getrennt hintereinander hängen und einen Alias-Namen zuweisen (siehe Kapitel "Tipps und Tricks"). Für Puppy-Linux empfehle ich Ihnen folgenden Alias:
</p>
<p align="left">
alias ids="find /bin /lib /sbin /usr/bin /usr/lib /usr/sbin /usr/local -type f -exec ls -al {} \; \-exec md5sum {} \; > /root/my-documents/ids_neu.txt; diff /root/my-documents/ids_alt.txt /root/my-documents/ids_neu.txt > /root/my-documents/ids_diff.txt; /usr/local/bin/geany /root/my-documents/ids_diff.txt"
</p>
<p>
Führen Sie den Alias-Befehl ids einmal in der Shell aus. Anschließend benennen Sie die Datei /root/my-documents/ids_neu.txt in /root/my-documents/ids_alt.txt um. Nun haben Sie die Ausgangsdatei erstellt. Wenn Sie den Befehl zu einem späteren Zeitpunkt erneut ausführen, wird die Datei ids_neu.txt erstellt und mit der Datei ids_alt.txt verglichen. Das Ergebnis wird automatisch im Texteditor Geany angezeigt. Wenn alles in Ordnung ist, schließen Sie den Texteditor, löschen die Datei ids_alt.txt und benennen die Datei ids_neu.txt in ids_alt.txt um. Selbstverständlich können Sie den Befehl um weitere Verzeichnisse erweitern.</p></html>
Source: [[Intrusion detection : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/intrusion-detection]]
/***
|Name:|LessBackupsPlugin|
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($Rev: 2320 $)|
|Date:|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
|Author:|Simon Baird|
|Email:|simon.baird@gmail.com|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second. So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array
!!Notes
Works in IE and Firefox only. Algorithm by Daniel Baird. IE specific code by by Saq Imtiaz.
***/
//{{{
var MINS = 60 * 1000;
var HOURS = 60 * MINS;
var DAYS = 24 * HOURS;
if (!config.lessBackups) {
config.lessBackups = {
// comment out the ones you don't want or set config.lessBackups.modes in your 'tweaks' plugin
modes: [
["YYYY", 365*DAYS], // one per year for ever
["MMM", 31*DAYS], // one per month
["ddd", 7*DAYS], // one per weekday
//["d0DD", 1*DAYS], // one per day of month
["h0hh", 24*HOURS], // one per hour
["m0mm", 1*HOURS], // one per minute
["s0ss", 1*MINS], // one per second
["latest",0] // always keep last version. (leave this).
]
};
}
window.getSpecialBackupPath = function(backupPath) {
var now = new Date();
var modes = config.lessBackups.modes;
for (var i=0;i<modes.length;i++) {
// the filename we will try
var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,
'$1'+now.formatString(modes[i][0]).toLowerCase()+'$3')
// open the file
try {
if (config.browser.isIE) {
var fsobject = new ActiveXObject("Scripting.FileSystemObject")
var fileExists = fsobject.FileExists(specialBackupPath);
if (fileExists) {
var fileObject = fsobject.GetFile(specialBackupPath);
var modDate = new Date(fileObject.DateLastModified).valueOf();
}
}
else {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(specialBackupPath);
var fileExists = file.exists();
if (fileExists) {
var modDate = file.lastModifiedTime;
}
}
}
catch(e) {
// give up
return backupPath;
}
// expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
// June file on disk that's more than an month old then it must be stale so overwrite
// note that "latest" should be always written because the expiration period is zero (see above)
var expiry = new Date(modDate + modes[i][1]);
if (!fileExists || now > expiry)
return specialBackupPath;
}
}
// hijack the core function
window.getBackupPath_mptw_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
return getSpecialBackupPath(getBackupPath_mptw_orig(localPath));
}
//}}}
<html><h2>
Links<br>
</h2>
<p>
JWM Windowsmanager Info: <a href="http://www.linux-user.de/ausgabe/2005/06/063-desktopia/index.html" target="_blank">http://www.linux-user.de/ausgabe/2005/06/063-desktopia/index.html</a>
</p>
<p>
JWM Windowsmanager Homepage: <a href="http://www.joewing.net/programs/jwm" target="_blank">http://www.joewing.net/programs/jwm</a>
</p>
<p>
JWM Windowsmanager Konfiguration: <a href="http://www.joewing.net/programs/jwm/config.shtml" target="_blank">http://www.joewing.net/programs/jwm/config.shtml</a>
</p>
<p>
ROX Filemanager Handbuch: <a href="http://rox.sourceforge.net/desktop/manual" target="_blank">http://rox.sourceforge.net/desktop/manual</a>
</p>
<p>
ROX Filemanager Info: <a href="http://puppylinux.org/wikka/rox" target="_blank">http://puppylinux.org/wikka/rox</a>
</p>
<p>
Shell rxvt Infos: <a href="http://gd.tuwien.ac.at/linuxcommand.org/man_pages/rxvt1.html" target="_blank">http://gd.tuwien.ac.at/linuxcommand.org/man_pages/rxvt1.html</a>
</p>
<p>
Man-Pages: <a href="http://www.linuxinfor.com/man-pages-1.htm" target="_blank">http://www.linuxinfor.com/man-pages-1.htm</a>
</p>
<p>
Shell Kommandos: <a href="http://www.oreillynet.com/linux/cmd/" target="_blank">http://www.oreillynet.com/linux/cmd</a>
</p>
<p>
Shell Kommandos: <a href="http://www.tldp.org/LDP/abs/abs-guide.pdf" target="_blank">http://www.tldp.org/LDP/abs/abs-guide.pdf</a>
</p>
<p>
Linux Online Anleitung: <a href="http://www.linuxtopia.org/" target="_blank">http://www.linuxtopia.org</a>
</p>
<p>
Easylinux: <a href="http://www.easylinux.de/Artikel/ausgabe/2008/" target="_blank">http://www.easylinux.de/Artikel/ausgabe/2008</a></p></html>
Source: [[Links : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/links]]
<html><h2>
Live-CD<br>
</h2>
<p>
Wenn Sie Puppy von CD-ROM starten, können sich keine Schadprogramme in Ihr Betriebssystem dauerhaft einnisten. Mit jedem Neutstart sind alle Schadprogramme wieder weg. Fast genauso sicher ist es, wenn Sie ein CD-Image von Festplatte in den RAM laden. Da auf der Festplatte nur ein Image der CD-ROM liegt und Puppy nach dem Booten vollständig im RAM läuft, können sich Schadprogramm ebenfalls nicht dauerhaft installieren.
</p>
<p>
Allerdings sind Sie nicht davor geschützt, dass ein Schadprogramm - während Sie mit Puppy arbeiten - eindringt und bis zum nächsten Reboot aktiv ist. Damit dies möglichst nicht passiert, sollten Sie die Firewall aktivieren. Falls sich doch ein Eindringling Ihres Rechners bemächtigt und Dateien manipuliert, können Sie das über Checksummen erkennen.</p></html>
Source: [[Live-CD : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/live-cd]]
MPTW is a distribution or edition of TiddlyWiki that includes a standard TiddlyWiki core packaged with some plugins designed to improve usability and provide a better way to organise your information. For more information see http://mptw.tiddlyspot.com/.
[[Inhalt]]
[[Index]]
<<toggleSideBar "Sidebar">>
<html><h2>
Manuelle Installation<br>
</h2>
<p>
Damit Sie diese Möglichkeit nutzen können, muß ein Bootloader auf Ihrem PC installiert sein. Sollte noch kein Bootloader installiert sein, empfehle ich Ihnen, die Installation mit dem Puppy Universal Installer durchzuführen.
</p>
<p>
Starten Sie Puppy mit der Boot-Option "puppy pfix=ram" von CD.
</p>
<p>
Erstellen Sie in einer Partition mit einem Linux-Dateisystem (ext2/ext3) oder einem FAT32-Dateisystem einen Ordner "puppy400".
</p>
<p>
Kopieren Sie die Dateien
</p>
<p>
pup_400.SFS<br>
zdrv_400.SFS<br>
initrd.gz<br>
vmlinuz
</p>
<p>
in diesen Ordner. Falls Sie ein Update einspielen, überschreiben Sie die alten Dateien. Nun müssen Sie noch den Bootmanager GRUB konfigurieren. Editieren Sie die Datei menu.lst, die auf einer Linux-Partition im Ordner /boot/grub liegt.
</p>
<p>
Ergänzen Sie am Ende der menu.lst-Datei folgende Zeilen:
</p>
<p>
title Puppy Linux 4.00 frugal (on /dev/hda2)<br>
rootnoverify (hd0,1)<br>
kernel /puppy400/vmlinuz pmedia=idehd psubdir=puppy400<br>
initrd /puppy400/initrd.gz
</p>
<p>
Hinweis: (hd0,1) bezeichnet die Festplatte und Partition, in der GRUB gespeichert ist. Je nach Boot-Medium müssen Sie als pmedia-Parameter usbflash usbhd usbcd ideflash idehd idecd idezip satahd scsihd scsicd setzen.
</p>
<p>
Speichern Sie die Datei menu.lst
</p>
<p>
Schließen Sie den Texteditor. Nehmen Sie die Puppy CD aus dem CD-Laufwerk heraus und beenden Sie Puppy ohne zu speichern. Starten Sie den PC neu. Puppy sollte jetzt starten, ohne dass die Puppy-CD eingelegt ist.</p></html>
Source: [[Manuelle Installation : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren/manuelle-installation]]
<html><h2>
Mehrere pup_save.2fs-Dateien<br>
</h2>
<p>
Wenn mehrere Personen mit Puppy arbeiten, kann jede Person eine eigene pup_save.2fs-Datei verwenden. Dadurch können die Personen Puppy individuell konfigurieren und unabhängig von einander ihre persönlichen Daten speichern.
</p>
<p>
Die pup_save.2fs-Dateien müssen sich alle in demselben Verzeichnis befinden und mit pup_save beginnen. Möchten Sie beispielsweise für die beiden User Julia und Alexander persönliche pup_save.2fs-Dateien einrichten, erstellen Sie eine Kopie der ursprünglichen pup_save.2fs-Datei. Die Originaldatei benennen Sie in pup_save_Julia.2fs um und die Kopie in pup_save_Alexander.2fs. Beim Starten erkennt Puppy, dass es zwei pup_save.2fs-Dateien gibt und fragt, welche Datei verwendet werden soll.</p></html>
Source: [[Mehrere pup_save.2fs-Dateien : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/multiuser/mehrere-pupsave2fs-dateien]]
<html><h2>
Modem<br>
</h2>
<p>
Starten Sie das Programm "Menu | Network | PupDial modem dialup".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c005.jpg" class="image-ia image-_original" height="599" width="634"></span>
</p>
<p>
Geben Sie jetzt die Daten Ihres Internet-Providers ein.</p></html>
Source: [[Modem : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/internetzugang-einrichten/modem]]
Name: MptwBlack
Background: #000
Foreground: #fff
PrimaryPale: #333
PrimaryLight: #555
PrimaryMid: #888
PrimaryDark: #aaa
SecondaryPale: #111
SecondaryLight: #222
SecondaryMid: #555
SecondaryDark: #888
TertiaryPale: #222
TertiaryLight: #666
TertiaryMid: #888
TertiaryDark: #aaa
Error: #300
This is in progress. Help appreciated.
Name: MptwBlue
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/***
|Name:|MptwConfigPlugin|
|Description:|Miscellaneous tweaks used by MPTW|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
!!Note: instead of editing this you should put overrides in MptwUserConfigPlugin
***/
//{{{
var originalReadOnly = readOnly;
var originalShowBackstage = showBackstage;
config.options.chkHttpReadOnly = false; // means web visitors can experiment with your site by clicking edit
readOnly = false; // needed because the above doesn't work any more post 2.1 (??)
showBackstage = true; // show backstage for same reason
config.options.chkInsertTabs = true; // tab inserts a tab when editing a tiddler
config.views.wikified.defaultText = ""; // don't need message when a tiddler doesn't exist
config.views.editor.defaultText = ""; // don't need message when creating a new tiddler
config.options.chkSaveBackups = true; // do save backups
config.options.txtBackupFolder = 'twbackup'; // put backups in a backups folder
config.options.chkAutoSave = (window.location.protocol == "file:"); // do autosave if we're in local file
config.mptwVersion = "2.4.5";
config.macros.mptwVersion={handler:function(place){wikify(config.mptwVersion,place);}};
if (config.options.txtTheme == '')
config.options.txtTheme = 'MptwTheme';
// add to default GettingStarted
config.shadowTiddlers.GettingStarted += "\n\nSee also [[MPTW]].";
// add select theme and palette controls in default OptionsPanel
config.shadowTiddlers.OptionsPanel = config.shadowTiddlers.OptionsPanel.replace(/(\n\-\-\-\-\nAlso see AdvancedOptions)/, "{{select{<<selectTheme>>\n<<selectPalette>>}}}$1");
// these are used by ViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';
//}}}
Name: MptwGreen
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Name: MptwRed
Background: #fff
Foreground: #000
PrimaryPale: #eaa
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Name|MptwRounded|
|Description|Mptw Theme with some rounded corners (Firefox only)|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|PageTemplate|MptwTheme##PageTemplate|
|StyleSheet|##StyleSheet|
!StyleSheet
/*{{{*/
[[MptwTheme##StyleSheet]]
.tiddler,
.sliderPanel,
.button,
.tiddlyLink,
.tabContents
{ -moz-border-radius: 1em; }
.tab {
-moz-border-radius-topleft: 0.5em;
-moz-border-radius-topright: 0.5em;
}
#topMenu {
-moz-border-radius-bottomleft: 2em;
-moz-border-radius-bottomright: 2em;
}
/*}}}*/
Name: MptwSmoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Name|MptwStandard|
|Description|Mptw Theme with the default TiddlyWiki PageLayout and Styles|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
Name: MptwTeal
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
|Name|MptwTheme|
|Description|Mptw Theme including custom PageLayout|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|StyleSheet|##StyleSheet|
http://mptw.tiddlyspot.com/#MptwTheme ($Rev: 1829 $)
!PageTemplate
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<!-- horizontal MainMenu -->
<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
<!-- original MainMenu menu -->
<!-- <div id='mainMenu' refresh='content' tiddler='MainMenu'></div> -->
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
[[MptwTheme##ViewTemplateToolbar]]
<div class="tagglyTagged" macro="tags"></div>
<div class='titleContainer'>
<span class='title' macro='view title'></span>
<span macro="miniTag"></span>
</div>
<div class='subtitle'>
(updated <span macro='view modified date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>
by <span macro='view modifier link'></span>)
<!--
(<span macro='message views.wikified.createdPrompt'></span>
<span macro='view created date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>)
-->
</div>
<div macro="showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')">
<div class='viewer'><pre macro='view text'></pre></div>
</div>
<div macro="else">
<div class='viewer' macro='view text wikified'></div>
</div>
<div class="tagglyTagging" macro="tagglyTagging"></div>
<!--}}}-->
!ViewTemplateToolbar
<!--{{{-->
<div class='toolbar'>
<span macro="showWhenTagged systemConfig">
<span macro="toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'"></span>
</span>
<span macro="showWhenTagged systemTheme"><span macro="applyTheme"></span></span>
<span macro="showWhenTagged systemPalette"><span macro="applyPalette"></span></span>
<span macro="showWhen tiddler.tags.contains('css') || tiddler.title == 'StyleSheet'"><span macro="refreshAll"></span></span>
<span style="padding:1em;"></span>
<span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler > fields syncing permalink references jump'></span> <span macro='newHere label:"new here"'></span>
<span macro='newJournalHere {{config.mptwJournalFormat?config.mptwJournalFormat:"MM/0DD/YY"}}'></span>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class="toolbar" macro="toolbar +saveTiddler saveCloseTiddler closeOthers -cancelTiddler cancelCloseTiddler deleteTiddler"></div>
<div class="title" macro="view title"></div>
<div class="editLabel">Title</div><div class="editor" macro="edit title"></div>
<div macro='annotations'></div>
<div class="editLabel">Content</div><div class="editor" macro="edit text"></div>
<div class="editLabel">Tags</div><div class="editor" macro="edit tags"></div>
<div class="editorFooter"><span macro="message views.editor.tagPrompt"></span><span macro="tagChooser"></span></div>
<!--}}}-->
!StyleSheet
/*{{{*/
/* a contrasting background so I can see where one tiddler ends and the other begins */
body {
background: [[ColorPalette::TertiaryLight]];
}
/* sexy colours and font for the header */
.headerForeground {
color: [[ColorPalette::PrimaryPale]];
}
.headerShadow, .headerShadow a {
color: [[ColorPalette::PrimaryMid]];
}
/* separate the top menu parts */
.headerForeground, .headerShadow {
padding: 1em 1em 0;
}
.headerForeground, .headerShadow {
font-family: 'Trebuchet MS' sans-serif;
font-weight:bold;
}
.headerForeground .siteSubtitle {
color: [[ColorPalette::PrimaryLight]];
}
.headerShadow .siteSubtitle {
color: [[ColorPalette::PrimaryMid]];
}
/* make shadow go and down right instead of up and left */
.headerShadow {
left: 1px;
top: 1px;
}
/* prefer monospace for editing */
.editor textarea, .editor input {
font-family: 'Consolas' monospace;
background-color:[[ColorPalette::TertiaryPale]];
}
/* sexy tiddler titles */
.title {
font-size: 250%;
color: [[ColorPalette::PrimaryLight]];
font-family: 'Trebuchet MS' sans-serif;
}
/* more subtle tiddler subtitle */
.subtitle {
padding:0px;
margin:0px;
padding-left:1em;
font-size: 90%;
color: [[ColorPalette::TertiaryMid]];
}
.subtitle .tiddlyLink {
color: [[ColorPalette::TertiaryMid]];
}
/* a little bit of extra whitespace */
.viewer {
padding-bottom:3px;
}
/* don't want any background color for headings */
h1,h2,h3,h4,h5,h6 {
background-color: transparent;
color: [[ColorPalette::Foreground]];
}
/* give tiddlers 3d style border and explicit background */
.tiddler {
background: [[ColorPalette::Background]];
border-right: 2px [[ColorPalette::TertiaryMid]] solid;
border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;
margin-bottom: 1em;
padding:1em 2em 2em 1.5em;
}
/* make options slider look nicer */
#sidebarOptions .sliderPanel {
border:solid 1px [[ColorPalette::PrimaryLight]];
}
/* the borders look wrong with the body background */
#sidebar .button {
border-style: none;
}
/* this means you can put line breaks in SidebarOptions for readability */
#sidebarOptions br {
display:none;
}
/* undo the above in OptionsPanel */
#sidebarOptions .sliderPanel br {
display:inline;
}
/* horizontal main menu stuff */
#displayArea {
margin: 1em 15.7em 0em 1em; /* use the freed up space */
}
#topMenu br {
display: none;
}
#topMenu {
background: [[ColorPalette::PrimaryMid]];
color:[[ColorPalette::PrimaryPale]];
}
#topMenu {
padding:2px;
}
#topMenu .button, #topMenu .tiddlyLink, #topMenu a {
margin-left: 0.5em;
margin-right: 0.5em;
padding-left: 3px;
padding-right: 3px;
color: [[ColorPalette::PrimaryPale]];
font-size: 115%;
}
#topMenu .button:hover, #topMenu .tiddlyLink:hover {
background: [[ColorPalette::PrimaryDark]];
}
/* make 2.2 act like 2.1 with the invisible buttons */
.toolbar {
visibility:hidden;
}
.selected .toolbar {
visibility:visible;
}
/* experimental. this is a little borked in IE7 with the button
* borders but worth it I think for the extra screen realestate */
.toolbar { float:right; }
/* fix for TaggerPlugin. from sb56637. improved by FND */
.popup li .tagger a {
display:inline;
}
/* makes theme selector look a little better */
#sidebarOptions .sliderPanel .select .button {
padding:0.5em;
display:block;
}
#sidebarOptions .sliderPanel .select br {
display:none;
}
/* make it print a little cleaner */
@media print {
#topMenu {
display: none ! important;
}
/* not sure if we need all the importants */
.tiddler {
border-style: none ! important;
margin:0px ! important;
padding:0px ! important;
padding-bottom:2em ! important;
}
.tagglyTagging .button, .tagglyTagging .hidebutton {
display: none ! important;
}
.headerShadow {
visibility: hidden ! important;
}
.tagglyTagged .quickopentag, .tagged .quickopentag {
border-style: none ! important;
}
.quickopentag a.button, .miniTag {
display: none ! important;
}
}
/* get user styles specified in StyleSheet */
[[StyleSheet]]
/*}}}*/
|Name|MptwTrim|
|Description|Mptw Theme with a reduced header to increase useful space|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|StyleSheet|MptwTheme##StyleSheet|
|PageTemplate|##PageTemplate|
!PageTemplate
<!--{{{-->
<!-- horizontal MainMenu -->
<div id='topMenu' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<span refresh='content' tiddler='SiteTitle' style="padding-left:1em;font-weight:bold;"></span>:
<span refresh='content' tiddler='MainMenu'></span>
</div>
<div id='sidebar'>
<div id='sidebarOptions'>
<div refresh='content' tiddler='SideBarOptions'></div>
<div style="margin-left:0.1em;"
macro='slider chkTabSliderPanel SideBarTabs {{"tabs \u00bb"}} "Show Timeline, All, Tags, etc"'></div>
</div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
For upgrading. See [[ImportTiddlers]].
URL: http://mptw.tiddlyspot.com/upgrade.html
/***
|Description:|A place to put your config tweaks so they aren't overwritten when you upgrade MPTW|
See http://www.tiddlywiki.org/wiki/Configuration_Options for other options you can set. In some cases where there are clashes with other plugins it might help to rename this to zzMptwUserConfigPlugin so it gets executed last.
***/
//{{{
// example: set your preferred date format
//config.mptwDateFormat = 'MM/0DD/YY';
//config.mptwJournalFormat = 'Journal MM/0DD/YY';
// example: set the theme you want to start with
//config.options.txtTheme = 'MptwRoundTheme';
// example: switch off autosave, switch on backups and set a backup folder
//config.options.chkSaveBackups = true;
//config.options.chkAutoSave = false;
//config.options.txtBackupFolder = 'backups';
//}}}
/***
|''Name:''|MultiTagEditorPlugin|
|''Version:''|0.2.0 (Dec 29, 2006)|
|''Source:''|http://ido-xp.tiddlyspot.com/#MultiTagEditorPlugin|
|''Author:''|Ido Magal (idoXatXidomagalXdotXcom)|
|''Licence:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
|''Browser:''|??|
!Description
This plugin enables the addition and deletion of tags from sets of tiddlers.
!Installation instructions
*Create a new tiddler in your wiki and copy the contents of this tiddler into it. Name it the same and tag it with "systemConfig".
*Save and reload your wiki.
*Use it here [[MultiTagEditor]].
!Revision history
* v0.2.0 (Dec 29, 2006)
** Added Selection column that allows excluding tiddlers.
* v0.1.0 (Dec 27, 2006)
** First draft.
!To Do
* Clean up text strings.
* Figure out how to store selection so it isn't reset after every action.
* Prettify layout.
!Code
***/
//{{{
merge(config.shadowTiddlers,
{
MultiTagEditor:[
"<<MTE>>",
""
].join("\n")
});
config.macros.MTE =
{
AddToListLabel : "Add to List",
AddToListPrompt : "Add Tiddlers to the List",
listViewTemplate :
{
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Title', field: 'title', tiddlerLink: 'title', title: "Title", type: 'TiddlerLink'},
{name: 'Snippet', field: 'text', title: "Snippet", type: 'String'},
{name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
],
rowClasses: [
],
actions: [
//{caption: "More actions...", name: ''},
//{caption: "Remove selected tiddlers from list", name: 'delete'}
]
},
tiddlers : [],
HomeSection : [],
ListViewSection : [],
AddToListSection : [],
handler : function( place, macroName, params, wikifier, paramString, tiddler )
{
this.HomeSection = place;
var newsection = createTiddlyElement( null, "div", null, "MTE_AddTag" );
createTiddlyText(newsection, "Tiddler Tags to edit: ");
var input = createTiddlyElement( null, "input", null, "txtOptionInput" );
input.type = "text";
input.size = 50;
newsection.appendChild( input );
newsection.inputBox = input;
createTiddlyButton( newsection, this.AddToListLabel, this.AddToListPrompt, this.onAddToList, null, null, null );
createTiddlyButton( newsection, "Clear List", this.addtoListPrompt, this.onClear, null, null, null );
createTiddlyElement( newsection, "br" );
createTiddlyElement( newsection, "br" );
this.AddToListSection = newsection;
this.HomeSection.appendChild( newsection );
newsection = createTiddlyElement( null, "div", null, "MTE_addtag" );
createTiddlyButton( newsection, "Add Tag", "Add tag to all listed tiddlers", this.onAddTag, null, null, null );
var input = createTiddlyElement( null, "input", null, "txtOptionInput" );
input.type = "text";
input.size = 50;
newsection.appendChild( input );
newsection.inputBox = input;
createTiddlyElement( newsection, "br" );
this.AddTagSection = newsection;
this.HomeSection.appendChild( newsection );
newsection = createTiddlyElement( null, "div", null, "MTE_removetag" );
createTiddlyButton( newsection, "Remove Tag", "Remove tag from all listed tiddlers", this.onRemoveTag, null, null, null );
var input = createTiddlyElement( null, "input", null, "txtOptionInput" );
input.type = "text";
input.size = 50;
newsection.appendChild( input );
newsection.inputBox = input;
createTiddlyElement( newsection, "br" );
this.RemoveTagSection = newsection;
this.HomeSection.appendChild( newsection );
this.ListViewSection = createTiddlyElement( null, "div", null, "MTE_listview" );
this.HomeSection.appendChild( this.ListViewSection );
ListView.create( this.ListViewSection, this.tiddlers, this.listViewTemplate, null );
},
ResetListView : function()
{
ListView.forEachSelector( config.macros.MTE.ListViewSection, function( e, rowName )
{
if( e.checked )
{
var title = e.getAttribute( "rowName" );
var tiddler = config.macros.MTE.tiddlers.findByField( "title", title );
tiddler.Selected = 1;
}
});
config.macros.MTE.HomeSection.removeChild( config.macros.MTE.ListViewSection );
config.macros.MTE.ListViewSection = createTiddlyElement( null, "div", null, "MTE_listview" );
config.macros.MTE.HomeSection.appendChild( config.macros.MTE.ListViewSection );
ListView.create( config.macros.MTE.ListViewSection, config.macros.MTE.tiddlers, config.macros.MTE.listViewTemplate, config.macros.MTE.onSelectCommand);
},
onAddToList : function()
{
store.forEachTiddler( function ( title, tiddler )
{
var tags = config.macros.MTE.AddToListSection.inputBox.value.readBracketedList();
if (( tiddler.tags.containsAll( tags )) && ( config.macros.MTE.tiddlers.findByField( "title", title ) == null ))
{
var t = store.getTiddlerSlices( title, ["Name", "Description", "Version", "CoreVersion", "Date", "Source", "Author", "License", "Browsers"] );
t.title = title;
t.tiddler = tiddler;
t.text = tiddler.text.substr(0,50);
t.tags = tiddler.tags;
config.macros.MTE.tiddlers.push(t);
}
});
config.macros.MTE.ResetListView();
},
onClear : function()
{
config.macros.MTE.tiddlers = [];
config.macros.MTE.ResetListView();
},
onAddTag : function( e )
{
var selectedRows = [];
ListView.forEachSelector(config.macros.MTE.ListViewSection, function( e, rowName )
{
if( e.checked )
selectedRows.push( e.getAttribute( "rowName" ));
});
var tag = config.macros.MTE.AddTagSection.inputBox.value;
for(t=0; t < config.macros.MTE.tiddlers.length; t++)
{
if ( selectedRows.indexOf( config.macros.MTE.tiddlers[t].title ) != -1 )
store.setTiddlerTag( config.macros.MTE.tiddlers[t].title, true, tag);
}
config.macros.MTE.ResetListView();
},
onRemoveTag : function( e )
{
var selectedRows = [];
ListView.forEachSelector(config.macros.MTE.ListViewSection, function( e, rowName )
{
if( e.checked )
selectedRows.push( e.getAttribute( "rowName" ));
});
var tag = config.macros.MTE.RemoveTagSection.inputBox.value;
for(t=0; t < config.macros.MTE.tiddlers.length; t++)
{
if ( selectedRows.indexOf( config.macros.MTE.tiddlers[t].title ) != -1 )
store.setTiddlerTag( config.macros.MTE.tiddlers[t].title, false, tag);
}
config.macros.MTE.ResetListView();
}
};
//}}}
<html><h2>
Multisession<br>
</h2>
<p>
Jeder User kann seine eigene Puppy-CD / DVD mit seinen Programmen und seinen persönlichen Daten verwenden. Hierzu dient die Boot-Option Multisession. Auch wenn es sich bei der Multisession-Option um eine interessante Möglichkeit handelt, bin ich gegenüber dem fortlaufenden Speichern auf dem gleichen CD-/DVD-Datenträger wegen der Gefahr eines Datenverlusts eher skeptisch eingestellt.</p></html>
Source: [[Multisession : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/multiuser/multisession]]
<html><h2>
Multiuser<br>
</h2>
<p>
Puppy ist vom Grundsatz her nicht als Multiuser-Distribution entwickelt. Im Unterschied zu anderen Distributionen hat jeder Benutzer umfassenden Zugriff auf die Systemdateien, Programme und persönlichen Daten, auch die der anderen Benutzer. Dennoch gibt es Möglichkeiten für einen Multiuser-Betrieb.</p></html>
Source: [[Multiuser : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/multiuser]]
/***
|Name:|NewHerePlugin|
|Description:|Creates the new here and new journal macros|
|Version:|3.0 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.macros, {
newHere: {
handler: function(place,macroName,params,wikifier,paramString,tiddler) {
wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
}
},
newJournalHere: {
handler: function(place,macroName,params,wikifier,paramString,tiddler) {
wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
}
}
});
//}}}
/***
|Name:|NewMeansNewPlugin|
|Description:|If 'New Tiddler' already exists then create 'New Tiddler (1)' and so on|
|Version:|1.1 ($Rev: 2263 $)|
|Date:|$Date: 2007-06-13 04:22:32 +1000 (Wed, 13 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Note: I think this should be in the core
***/
//{{{
String.prototype.getNextFreeName = function() {
var numberRegExp = / \(([0-9]+)\)$/;
var match = numberRegExp.exec(this);
if (match) {
var num = parseInt(match[1]) + 1;
return this.replace(numberRegExp," ("+num+")");
}
else {
return this + " (1)";
}
}
config.macros.newTiddler.checkForUnsaved = function(newName) {
var r = false;
story.forEachTiddler(function(title,element) {
if (title == newName)
r = true;
});
return r;
}
config.macros.newTiddler.getName = function(newName) {
while (store.getTiddler(newName) || config.macros.newTiddler.checkForUnsaved(newName))
newName = newName.getNextFreeName();
return newName;
}
config.macros.newTiddler.onClickNewTiddler = function()
{
var title = this.getAttribute("newTitle");
if(this.getAttribute("isJournal") == "true") {
var now = new Date();
title = now.formatString(title.trim());
}
title = config.macros.newTiddler.getName(title); // <--- only changed bit
var params = this.getAttribute("params");
var tags = params ? params.split("|") : [];
var focus = this.getAttribute("newFocus");
var template = this.getAttribute("newTemplate");
var customFields = this.getAttribute("customFields");
story.displayTiddler(null,title,template,false,null,null);
var tiddlerElem = document.getElementById(story.idPrefix + title);
if(customFields)
story.addCustomFields(tiddlerElem,customFields);
var text = this.getAttribute("newText");
if(typeof text == "string")
story.getTiddlerField(title,"text").value = text.format([title]);
for(var t=0;t<tags.length;t++)
story.setTiddlerTag(title,tags[t],+1);
story.focusTiddler(title,focus);
return false;
};
//}}}
<html><h2>Partitionen erstellen </h2>
<p>
Jetzt sollten Sie Ihre neuen Festplatten-Partitionen hinsichtlich Dateisystem und Größe planen. Ich empfehle Ihnen zu der bisherigen Partition mit Windows drei bis vier weitere Partitionen anzulegen. Das folgende Beispiel geht davon aus, dass Sie unter Windows genau eine Partition (Laufwerksbuchstabe C) haben. Ihre Festplatte sieht dann zukünftig wie folgt aus:
</p>
<p>
Erste Partition: NTFS oder FAT32 (Windows)
</p>
<p>
Zweite Partition: ext2 oder ext3 (hier wird Puppy installiert)
</p>
<p>
Dritte Partition: Linux-swap (für Auslagerungsdateien)
</p>
<p>
Vierte Partition: FAT32 (für den Datenaustausch zwischen Windows und Linux)
</p>
<p>
optional eine fünfte Partition: ext2 oder ext3 (Linux)
</p>
<p>
Die erste Partition enthält weiterhin Ihr Windows mit allen Programmen und Daten. Die zweite Partition (empfohlene Größe ca. 1 bis 2 GB) hat ein Linux-Dateisystem (ext2 oder ext3). In diese Partition wird Puppy Linux installiert. Die dritte Partition (genause groß wie der Arbeitsspeicher Ihres Computers) wird als Linux-Swap-Partition angelegt, in der Linux Dateien auslagern kann. Die vierte Partition hat ein FAT32-Dateisystem, das sowohl von Windows als auch Linux erkannt wird. Diese Partition (empfohlene Größe ca. 5 GB) dient dem Datei-Austausch zwischen Windows und Puppy. Falls Sie größere Datenmengen unter Puppy Linux verwalten wollen (z.B. Musiksammlung, Bildersammlung) sollten Sie eine fünfte Partition mit einem Linux-Dateisystem (ext2/ext3) anlegen. Dieses Dateisystem kann von Windows nicht gelesen werden und ist nur für Linux bestimmt.
</p>
<p>
Zum Erzeugen der genannten Partionen gehen Sie wie folgt vor:
</p>
<p>
Starten Sie Puppy-Linux mit der Boot-Option "pfix=ram" von CD.
</p>
<p>
Starten Sie das Programm "Menu | System | Gparted partition manager".
</p>
<p>
Zuerst verkleinern Sie die Windows-Partition (NTFS-Dateisystem). Markieren Sie dazu die Windows-Partition /dev/hda1.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1260.jpg">
</p>
<p>
Drücken Sie auf den Button "Resize/Move".
</p>
<p>
<img src="/http://www.puppylinux.org/files/pic/b1270.jpg">
</p>
<p>
Reduzieren Sie im Feld "New Size" den Wert solange, bis im Feld "Free Space Following" ausreichen Platz für die neuen Partitionen entsteht. Die Festplatte meines Test-Computers hat nur 3 Gigabyte, davon verwende ich ungefähr die Hälfte für die neuen Partionen. Vermutlich haben Sie eine deutlich größere Festplatte, so daß Sie die Partitionen entsprechend größer machen können.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1280.jpg">
</p>
<p>
Drücken Sie dann auf den Button "Resize/Move".
</p>
<p>
Anschließend wählen Sie im Menü "Edit | Apply All Operations".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1290.jpg">
</p>
<p>
Im folgenden Dialog klicken Sie auf den Button "Apply".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1300.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1310.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1320.jpg">
</p>
<p>
Klicken Sie auf den Button "Close". Sie haben jetzt einen "unallocated" Bereich auf der Festplatte.
</p>
<p>
Markieren Sie die Zeile "unallocated" und klicken Sie auf den Button "New".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1330.jpg">
</p>
<p>
Geben Sie im Feld "New Size" die Größe der zweiten Partition ein. In diese Partition soll später Puppy Linux installiert werden. Ich empfehle Ihnen eine Größe von 1 bis 2 Gigabyte (dies entspricht 1024 bis 2048 MiB). Wählen Sie im Feld "Filesystem" ext2 und klicken Sie dann auf den Button "Add".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1340.jpg">
</p>
<p>
Markieren Sie wieder die Zeile "unallocated" und klicken Sie auf den Button "New".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1350.jpg">
</p>
<p>
Geben Sie im Feld "New Size" die Größe der dritten Partition ein. Diese Partition soll als Linux-Swap-Partition die Auslagerungsdateien von Linux aufnehmen. Sie sollten diese Partition genause groß machen wie Ihr Computer RAM (Arbeitsspeicher) hat. Bei meinem Test-Computer sind das 128 Megabyte (MiB). Wählen Sie im Feld "Filesystem" Linux-Swap und klicken Sie dann auf den Button "Add".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1360.jpg">
</p>
<p>
Markieren Sie wieder die Zeile "unallocated" und klicken Sie auf den Button "New".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1370.jpg">
</p>
<p>
Geben Sie im Feld "New Size" die Größe der vierten Partition ein. Diese Partition soll für den Dateiaustausch zwischen Windows und Linux dienen. Ich empfehle Ihnen eine Größe von ca. 5 Gigabyte (5120 MiB). Da mein Test-Computer keine ausreichend große Festplatte hat, setze ich den Wert beispielhaft auf 396 Megabyte (MiB). Wählen Sie im Feld "Filesystem" FAT32 und klicken Sie dann auf den Button "Add".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1380.jpg">
</p>
<p>
Hinweis: Wenn Sie weitere Partitionen anlegen möchten (z.B. für umfangreiche Daten unter Linux) wiederholen Sie die eben durchgeführten Schritte. Gegebenenfalls müssen Sie dann auch logische Partitionen anlegen. Hierzu sollten Sie weiterführende Literatur lesen.
</p>
<p>
Zum Abschluß klicken Sie dann im Menu auf "Edit | Apply All Operations".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1390.jpg">
</p>
<p>
Im folgenden Dialog klicken Sie auf den Button "Apply".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1300.jpg">
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1320.jpg">
</p>
<p>
Klicken Sie auf den Button "Close".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1400.jpg">
</p>
<p>
Beenden Sie GParted.</p></html>
Source: [[Partitionen erstellen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren/partitionen-erstellen]]
/***
|Name:|PrettyDatesPlugin|
|Description:|Provides a new date format ('pppp') that displays times such as '2 days ago'|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#PrettyDatesPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Notes
* If you want to you can rename this plugin. :) Some suggestions: LastUpdatedPlugin, RelativeDatesPlugin, SmartDatesPlugin, SexyDatesPlugin.
* Inspired by http://ejohn.org/files/pretty.js
***/
//{{{
Date.prototype.prettyDate = function() {
var diff = (((new Date()).getTime() - this.getTime()) / 1000);
var day_diff = Math.floor(diff / 86400);
if (isNaN(day_diff)) return "";
else if (diff < 0) return "in the future";
else if (diff < 60) return "just now";
else if (diff < 120) return "1 minute ago";
else if (diff < 3600) return Math.floor(diff/60) + " minutes ago";
else if (diff < 7200) return "1 hour ago";
else if (diff < 86400) return Math.floor(diff/3600) + " hours ago";
else if (day_diff == 1) return "Yesterday";
else if (day_diff < 7) return day_diff + " days ago";
else if (day_diff < 14) return "a week ago";
else if (day_diff < 31) return Math.ceil(day_diff/7) + " weeks ago";
else if (day_diff < 62) return "a month ago";
else if (day_diff < 365) return "about " + Math.ceil(day_diff/31) + " months ago";
else if (day_diff < 730) return "a year ago";
else return Math.ceil(day_diff/365) + " years ago";
}
Date.prototype.formatString_orig_mptw = Date.prototype.formatString;
Date.prototype.formatString = function(template) {
return this.formatString_orig_mptw(template).replace(/pppp/,this.prettyDate());
}
// for MPTW. otherwise edit your ViewTemplate as required.
// config.mptwDateFormat = 'pppp (DD/MM/YY)';
config.mptwDateFormat = 'pppp';
//}}}
<html><h2>Programm-Menü anpassen </h2>
<p>
Puppy verwendet standardmäßig JWM (Joes Windows Manager) als Windowsmanager. JWM können Sie vielfältig an Ihre Bedürfnisse anpassen. Um beispielsweise eigene Einträge im Menü anzuzeigen oder die bestehenden Einträge anders zu gruppieren, brauchen Sie nur die Datei .jwmrc zu editieren. Gehen Sie wie folgt vor:
</p>
<p>
Starten Sie das Programm "Menu | Filesystem | ROX-Filer file filemanager"
</p>
<p>
Wechseln Sie in das Verzeichnis /root
</p>
<p>
Klicken Sie das Symbol "Alle Dateien anzeigen" an
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c041a.jpg" class="image-ia image-_original" height="237" width="508"></span>
</p>
<p>
Rechtsklick auf die Datei .jwmrc und wählen Sie im Kontextmenü "Open As Text" aus. Die Dateim.jwmrc wird nun im Texteditor Geany geöffnet.
</p>
<p>
Editieren Sie nun die Datei. Die Datei .jwmrc hat folgenden Aufbau:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0535.jpg">
</p>
<p>
Speichern Sie die Datei und schließen Sie den Texteditor Geany.
</p>
<p>
Starten Sie JWM neu: "Menu | Shut Down | Restart JWM"
</p>
<p>
Hinweis: Bei der Installation eines PetGet-Programms wird das Programm-Menü automatisch neu aufgebaut. Ihre individuellen Anpassungen gehen dabei verloren. Sichern Sie deshalb vor der Installation eines PetGet-Programms die Datei /root/.jwmrc, damit Sie anschließend ihr Menü wieder herstellen können.
</p>
<p>
Weitere Informationen zu JWM finden Sie unter
</p>
<p>
<a href="http://www.linux-user.de/ausgabe/2005/06/063-desktopia/index.html" target="_blank">Beschreibung JWM</a> <br>
<a href="http://www.joewing.net/programs/jwm" target="_blank">JWM-Homepage</a> <br>
<a href="http://www.joewing.net/programs/jwm/config.shtml" target="_blank">JWM-Konfiguration</a></p></html>
Source: [[Programm-Menü anpassen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-individuell-konfigurieren/programm-menue-anpassen]]
<html><h2>Programme deinstallieren </h2>
<p>
Die Deinstallation von Programmen ist sehr einfach. Starten Sie das Programm "Menu | Setup | Puppy package manager".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c020a.jpg" class="image-ia image-_original" height="444" width="429"></span>
</p>
<p>
Klicken Sie auf der zweiten Button von oben. Es öffnet sich ein neues Fenster.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c025.jpg" class="image-ia image-_original"></span>
</p>
<p>
Klicken Sie auf das Programm, das entfernt werden soll (z.B. gqview).
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c025a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es öffnet sich ein neuer Dialog. Klicken Sie auf den Button "Remove them".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c026.jpg" class="image-ia image-_original" height="174" width="382"></span>
</p>
<p>
Das Programm wurde entfernt.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c027.jpg" class="image-ia image-_original" height="224" width="373"></span>
</p>
<p>
Schließen Sie den Dialog durch einen Klick auf den Button "Okay".
</p>
<p>
Programme, die beim Starten von der CD-ROM geladen werden, können nicht deinstalliert werden. Aber Sie können diese Programme aus dem Menü löschen.</p></html>
Source: [[Programme deinstallieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/programme-installieren-und-deinstallieren/programme-deinstallieren]]
<html><h2>Programme installieren </h2>
<p>
Starten Sie zuerst über "Menu | Network | Roaring Penguin PPPoE" eine Internetverbindung.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c016.jpg" class="image-ia image-_original" height="156" width="196"></span>
</p>
<p>
Anschließend starten Sie das Programm "Menu | Setup | Puppy package manager". In dem dann erscheinenden Fenster klicken Sie auf den zweiten Button von oben.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c020a.jpg" class="image-ia image-_original" height="444" width="429"></span>
</p>
<p>
Es öffnet sich ein neues Fenster.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c021.jpg" class="image-ia image-_original"></span>
</p>
<p>
Wenn Sie beispielsweise das Bildbetrachtungsprogramm gqview installieren wollen, klicken Sie auf die Rubrik "Graphic" und anschließend auf das Programm.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c022.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es öffnet sich ein neuer Dialog.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c023.jpg" class="image-ia image-_original" height="258" width="394"></span>
</p>
<p>
Nun wählen Sie die Download-Quelle aus. Klicken Sie auf "nluug.nl".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c023a.jpg" class="image-ia image-_original" height="258" width="394"></span>
</p>
<p>
Das Programm wurde installiert.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c024.jpg" class="image-ia image-_original" height="330" width="409"></span>
</p>
<p>
Schließen Sie den Dialog durch einen Klick auf den Button "Okay".
</p>
<p>
Weitere, nicht offizielle Programme finden Sie im Puppy-Forum in der Kategorie "Additional Software". Diese Programme werden von anderen Puppy-Usern bereitgestellt. Beachten Sie, dass grundsätzlich die Gefahr besteht, dass Sie sich über nicht offizielle Puppy-Programme Schadsoftware installieren. Auch wenn die Software aus dem Puppy-Forum stammt, ist dies keine Sicherheit.</p></html>
Source: [[Programme installieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/programme-installieren-und-deinstallieren/programme-installieren]]
<html><h2>
Programme installieren und deinstallieren<br>
</h2>
<p>
Vor einer Installation ist es auf jeden Fall ratsam, die pup_save.2fs-Datei zu sichern. So können Sie den Zustand vor der Installation wieder herstellen, falls etwas bei der Installation schief läuft. Beachten Sie, dass grundsätzlich die Gefahr besteht, dass Sie sich über nicht offizielle Puppy-Programme Schadsoftware installieren. Auch wenn die Software aus dem Puppy-Forum stammt, ist dies<br>
keine Sicherheit.</p></html>
Source: [[Programme installieren und deinstallieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/programme-installieren-und-deinstallieren]]
<html><h2>Programmleiste anpassen </h2>
<p>
Häufig gebrauchte Programme können auch über die Programmleiste aufgerufen werden. Hierzu müssen Sie die Datei /root/.jwmrc-tray editieren. Gehen Sie wie folgt vor:
</p>
<p>
Starten Sie das Programm "Menu | Filesystem | ROX-Filer file filemanager"
</p>
<p>
Wechseln Sie in das Verzeichnis /root
</p>
<p>
Klicken Sie das Symbol "Alle Dateien anzeigen" an
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c041a.jpg" class="image-ia image-_original" height="237" width="508"></span>
</p>
<p>
Rechtsklick auf die Datei .jwmrc-tray und wählen Sie im Kontextmenü "Open As Text" aus. Die Dateim.jwmrc-tray wird nun im Texteditor Geany geöffnet.
</p>
<p>
Um beispielsweise das Programm "Abiword" in die Programmleiste aufzunehmen, geben Sie in der Datei folgende Zeile ein:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0690.jpg">
</p>
<p>
Speichern Sie die Datei und schließen Sie den Texteditor Geany.
</p>
<p>
Starten Sie JWM neu: "Menu | Shut Down | Restart JWM"</p></html>
Source: [[Programmleiste anpassen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-individuell-konfigurieren/programmleiste-anpassen]]
<html><h2>Puppy bekommen / herunterladen </h2>
<p>
Puppy Linux kann man bei <a target="_blank" href="http://distro.ibiblio.org/pub/linux/distributions/puppylinux">ibiblio.org</a> herunterladen. Speichern Sie das aktuelle Release puppy-4.xx-seamonkey.iso (z.B. puppy-4.00-seamonkey.iso) auf Ihrer Festplatte. Die Datei ist ca. 100 MB groß.
</p>
<p>
Um sicher zu gehen, dass Sie eine unverfälschte Original-Datei heruntergeladen haben, können Sie die Checksumme der iso-Datei mit der zugehörigen Datei puppy-4.xx-seamonkey.iso.md5.txt (z.B. puppy-4.00-seamonkey.iso.md5.txt) vergleichen. Laden Sie diese Datei ebenfalls herunter.
</p>
<h3>Unter Linux: </h3>
<p>
Öffnen Sie eine Shell und wechseln Sie in das Verzeichnis, in das Sie die beiden Dateien gespeichert haben. Geben Sie folgenden Befehl ein:
</p>
<p>
md5sum puppy-4.00-seamonkey.iso
</p>
<p>
Als Ergbnis sehen Sie die Checksumme. Öffnen Sie nun mit einem Textprogramm (z.B. abiword) die Datei puppy-4.00-seamonkey.iso.md5.txt. Die beiden Checksummen sollten identisch sein.
</p>
<h3>Unter Windows: </h3>
<p>
Laden Sie das DOS-Programm <a target="_blank" href="http://www.puppyos.com/download/md5sum.exe">md5sum.exe</a>. Öffnen Sie eine DOS-Box. Dazu klicken Sie auf "Start | Ausführen". Es öffnet sich dann ein Eingabefenster, in das Sie folgenden Befehl eingeben:
</p>
<p>
cmd
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0020.jpg">
</p>
<p>
Es öffnet sich jetzt eine DOS-Box.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0030.jpg">
</p>
<p>
Wechseln Sie in das Verzeichnis, in das Sie die beiden Dateien gespeichert haben, z.B. in C:/Puppy. Dazu geben Sie folgende Befehle ein:
</p>
<p>
c: cd \ cd puppy dir *.*
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0040.jpg">
</p>
<p>
Jetzt sollten Sie die beiden Puppy-Dateien sehen. Geben Sie jetzt folgendes ein:
</p>
<p>
md5sum -c puppy-4.00-seamonkey.iso.md5.txt
</p>
<p>
Als Ergebnis sollten Sie ein "OK" erhalten.
</p>
<p>
Anschließend brennen Sie die iso-Datei (in unserem Beispiel puppy-4.00-seamonkey.iso) auf eine CD. Falls Sie noch nie eine iso-Datei auf CD gebrannt haben, sollten Sie das Handbuch zu Ihrer Brennsoftware zu Rate ziehen. Anfänger machen oft den Fehler, die iso-Datei einfach als Datei auf eine CD zu kopieren - doch das funktioniert nicht. Überlicherweise hat Ihre Brennsoftware einen speziellen Menüpunkt, um eine iso-Datei auf CD zu brennen. Sie können selbst prüfen, ob Sie die CD richtig gebrannt haben, indem Sie mit Ihrem Dateimanager (z.B. Windows Explorer) die CD anschauen. Wenn Sie Dateien wie "image.gz", "vmlinuz.gz" usw. sehen, hat alles geklappt. Wenn Sie die Datei "puppy-4.00-seamonkey.iso" sehen, haben Sie die CD falsch erstellt.
</p>
<h3>Tipp: </h3>
<p>
Erstellen Sie eine zweite, identische Puppy-CD als Sicherungskopie, falls die Original-CD eines Tages defekt ist.</p></html>
Source: [[Puppy bekommen / herunterladen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-bekommen-/-herunterladen]]
<html><h2>Puppy bekommen / herunterladen </h2>
<p>
Puppy Linux kann man bei <a target="_blank" href="http://distro.ibiblio.org/pub/linux/distributions/puppylinux">ibiblio.org</a> herunterladen. Speichern Sie das aktuelle Release puppy-4.xx-seamonkey.iso (z.B. puppy-4.00-seamonkey.iso) auf Ihrer Festplatte. Die Datei ist ca. 100 MB groß.
</p>
<p>
Um sicher zu gehen, dass Sie eine unverfälschte Original-Datei heruntergeladen haben, können Sie die Checksumme der iso-Datei mit der zugehörigen Datei puppy-4.xx-seamonkey.iso.md5.txt (z.B. puppy-4.00-seamonkey.iso.md5.txt) vergleichen. Laden Sie diese Datei ebenfalls herunter.
</p>
<h3>Unter Linux: </h3>
<p>
Öffnen Sie eine Shell und wechseln Sie in das Verzeichnis, in das Sie die beiden Dateien gespeichert haben. Geben Sie folgenden Befehl ein:
</p>
<p>
md5sum puppy-4.00-seamonkey.iso
</p>
<p>
Als Ergbnis sehen Sie die Checksumme. Öffnen Sie nun mit einem Textprogramm (z.B. abiword) die Datei puppy-4.00-seamonkey.iso.md5.txt. Die beiden Checksummen sollten identisch sein.
</p>
<h3>Unter Windows: </h3>
<p>
Laden Sie das DOS-Programm <a target="_blank" href="http://www.puppyos.com/download/md5sum.exe">md5sum.exe</a>. Öffnen Sie eine DOS-Box. Dazu klicken Sie auf "Start | Ausführen". Es öffnet sich dann ein Eingabefenster, in das Sie folgenden Befehl eingeben:
</p>
<p>
cmd
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0020.jpg">
</p>
<p>
Es öffnet sich jetzt eine DOS-Box.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0030.jpg">
</p>
<p>
Wechseln Sie in das Verzeichnis, in das Sie die beiden Dateien gespeichert haben, z.B. in C:/Puppy. Dazu geben Sie folgende Befehle ein:
</p>
<p>
c: cd \ cd puppy dir *.*
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0040.jpg">
</p>
<p>
Jetzt sollten Sie die beiden Puppy-Dateien sehen. Geben Sie jetzt folgendes ein:
</p>
<p>
md5sum -c puppy-4.00-seamonkey.iso.md5.txt
</p>
<p>
Als Ergebnis sollten Sie ein "OK" erhalten.
</p>
<p>
Anschließend brennen Sie die iso-Datei (in unserem Beispiel puppy-4.00-seamonkey.iso) auf eine CD. Falls Sie noch nie eine iso-Datei auf CD gebrannt haben, sollten Sie das Handbuch zu Ihrer Brennsoftware zu Rate ziehen. Anfänger machen oft den Fehler, die iso-Datei einfach als Datei auf eine CD zu kopieren - doch das funktioniert nicht. Überlicherweise hat Ihre Brennsoftware einen speziellen Menüpunkt, um eine iso-Datei auf CD zu brennen. Sie können selbst prüfen, ob Sie die CD richtig gebrannt haben, indem Sie mit Ihrem Dateimanager (z.B. Windows Explorer) die CD anschauen. Wenn Sie Dateien wie "image.gz", "vmlinuz.gz" usw. sehen, hat alles geklappt. Wenn Sie die Datei "puppy-4.00-seamonkey.iso" sehen, haben Sie die CD falsch erstellt.
</p>
<h3>Tipp: </h3>
<p>
Erstellen Sie eine zweite, identische Puppy-CD als Sicherungskopie, falls die Original-CD eines Tages defekt ist.</p></html>
Source: [[Puppy bekommen / herunterladen : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-bekommen-/-herunterladen]]
<html><h2>Puppy installieren </h2>
<p>
Wenn Sie Puppy nicht immer von CD-ROM starten möchten, können Sie Puppy auch auf einer Festplatte installieren. Hierzu sind zunächst einige Vorbereitungen zu treffen.
</p>
<h2>Festplatten, Partitionen und Dateisysteme </h2>
<p>
Eine Festplatte kann in eine oder mehrere Partitionen aufgeteilt werden. Wenn Sie mehrere Partitionen auf einer Festplatte angelegt haben, erscheint im Betriebssystem jede Partition wie eine eigenständige Festplatte. Mit anderen Worten: obwohl Sie real nur eine Festplatte im PC eingebaut haben, können Sie unter Windows oder Linux mit mehreren (virtuellen) Festplatten arbeiten. Windows bezeichnet die Festplatten (sowie die Disketten- und CD/DVD-Laufwerke) mit Buchstaben. In der Regel bezeichnet A das Diskettenlaufwerk, C die Festplatte (erste Partition), D das CD-ROM, E die Festplatte (zweite Partition), F die Festplatte (dritte Partition), usw. Sie erkennen an den Laufwerksbuchstaben nicht, ob die Partitionen physikalisch auf einer oder auf zwei Festplatten verteilt sind. Jede Partition hat ein eigenes Dateisystem, unter Windows normalerweise NTFS (Windows XP) oder FAT32 (Win98, Win95).
</p>
<p>
Unter Linux wird die erste Festplatte mit /dev/hda bzw. /dev/sda angesprochen. Falls der PC eine zweite Festplatte hat, wird diese mit /dev/hdb bzw. /dev/sdb bezeichnet. Die Partitionen auf der Festplatte sind fortlaufend durchnummeriert, beginnend mit eins. Die Partitionen auf der ersten Festplatte heißen also /dev/hda1 (entspricht der C-Partition unter Windows), /dev/hda2 (entspricht der E-Partition unter Windows), /dev/hda3 usw. Auch Linux kennt verschiedene Dateisysteme wie ext2, ext3 oder ReiserFS. Diese Dateisysteme sind von Windows nicht lesbar. Zusätzlich kann Linux aber auch die Windows-Dateisysteme lesen und auch beschreiben. Auf Grund dieser Möglichkeit eignet sich eine FAT32-Partition ideal, um Dateien zwischen Windows und Linux auszutauschen.</p></html>
Source: [[Puppy installieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-installieren]]
<html><h2>
Puppy remastern<br>
</h2>
<p>
Es gibt auch eine Möglichkeit, ein eigenes Puppy-Linux zu erstellen.Installieren Sie alle Programme, die in Ihrem Puppy-Linux enthalten sein sollen. Anschließend erstellen Sie - wie nachstehend beschrieben - Ihre eigene Puppy-CD.
</p>
<p>
Starten Sie das Programm "Menu | Setup | Remaster Puppy live-CD".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0960.jpg">
</p>
<p>
Drücken Sie den OK-Button. Es erscheint ein neues Fenster.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0570.jpg">
</p>
<p>
Wählen Sie mit den Cursortasten die Partition aus, in der das temporäre Arbeitsverzeichnis zum Erstellen Ihrer Puppy-CD angelegt werden soll. Anschließend drücken Sie den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0580.jpg">
</p>
<p>
Wählen Sie jetzt mit den Cursortasten den CD-Brenner aus. Drücken Sie dann den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0590.jpg">
</p>
<p>
Legen Sie dann die Original-Puppy-Live-CD in den CD-Brenner ein und drücken Sie den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0970.jpg">
</p>
<p>
Klicken Sie auf den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0980.jpg">
</p>
<p>
Klicken Sie auf den Button "No".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0990.jpg">
</p>
<p>
Klicken Sie auf den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0640.jpg">
</p>
<p>
Klicken Sie auf den Button "No".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0650.jpg">
</p>
<p>
Klicken Sie auf den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0660.jpg">
</p>
<p>
Nehmen Sie die Live-CD aus dem CD-Brenner heraus und legen Sie eine leere CD-ROM oder DVD ein. Wählen Sie mit den Tabulatortasten, ob Sie eine CD oder DVD erstellen wollen. Klicken Sie dann auf den OK-Button.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0670.jpg">
</p>
<p>
Ihre Puppy-CD wird nun gebrannt. Wenn der Brennvorgang beendet ist, drücken Sie die Return-Taste.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0680.jpg">
</p>
<p>
Klicken Sie auf den OK-Button. Ihre Live-CD ist fertig erstellt.</p></html>
Source: [[Puppy remastern : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-remastern]]
<html><h2>
Puppy starten<br>
</h2>
<p>Ein großer Vorteil von Puppy-Linux ist, dass Puppy nicht installiert werden muß. Sie können Puppy direkt von der CD starten, ohne dass Ihr bisheriges Betriebssystem beeinflußt wird. Alternativ können Sie Puppy auch auf eine Festplatte oder einen USB-Stick installieren.<br>
<!--**********************New_Chapter***********************--></p>
<h2>
Puppy das erste Mal von CD starten<br>
</h2>
<p>
Als erstes müssen Sie die Boot-Reihenfolge (=Start-Reihenfolge) im BIOS einstellen. Falls Sie nicht wissen, wie Sie in das BIOS gelangen, sehen Sie in dem Handbuch zu Ihrem Computer nach. In der Regel drückt man unmittelbar nach dem Einschalten des PC eine der folgenden Tasten: ESC, eine der Funktionstasten F1 bis F12, Entfernen-Taste, Rückwärtslöschen-Taste. Im BIOS stellen Sie die Boot-Reihenfolge so ein, dass das CD-ROM-Laufwerk an erster Stelle steht und die Festplatte an zweiter. Beenden Sie das BIOS und speichern Sie die neue Einstellung.
</p>
<p>
Üblicherweise startet der PC jetzt erneut. Legen Sie sogleich die Puppy-CD in das CD-ROM-Laufwerk ein. Falls Sie zu langsam sind, startet Ihr bisheriges Betriebssystem. Lassen Sie in diesem Fall die CD im CD-Laufwerk und starten Sie den PC neu.
</p>
<p>
Jetzt sollte Puppy starten. Während des Startvorgangs werden Sie als erstes aufgefordert, Ihr Land auszuwählen. Navigieren Sie mit den Cursor-Tasten nach unten bis zu Ihrem Land. Drücken Sie dann die Return-Taste. Es erscheint danach ein weiteres Fenster (Puppy Video Wizard), in dem bereits "Xorg" markiert ist. Drücken Sie die Return-Taste. Warten Sie einige Sekunden bis das nächste Fenster (Puppy Video Wizard) erscheint. Dort navigieren Sie mit den Cursor-Tasten zu Ihrer Bildschirmauflösung (LCD Panel = Flachbildschirm, CRT = klassischer Röhrenmonitor). Drücken Sie dann die Return-Taste. Nach einigen Sekunden erscheint der Puppy-Desktop.
</p>
<p>
Wenn bei Ihrem Computer Xorg nicht funktioniert, wählen Sie Xvesa. Nach kurzer Zeit erscheint der Puppy-Desktop in der Bildschirmauflösung 640x480 Bildpunkte. Bei den meisten Computern können Sie eine höhere Bildschirmauflösung verwenden. Klicken Sie deshalb mit der linken Maustaste auf eine der Auflösungen (z.B. 1280x1024x24) und anschließend auf den Button "Change".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c001a.jpg" class="image-ia image-_original" height="382" width="557"></span>
</p>
<p>
Nach kurzer Zeit erscheint der Puppy-Desktop in der von Ihnen gewählten Bildschirmauflösung. Klicken Sie nun zur Bestätigung den OK-Button.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c001b.jpg" class="image-ia image-_original" height="382" width="557"></span>
</p>
<p>
Leider hat Xvesa den Nachteil, daß Sie das Tastaturlayout anpassen müssen, wenn Sie keine US-Tastatur verwenden.
</p>
<p>
Puppy wurde vollständig in den Arbeitsspeicher (RAM) geladen. Ihr bisheriges Betriebssystem wird nicht angetastet, so dass Sie gefahrlos Puppy-Linux anschauen können. Jetzt können Sie die CD aus dem CD-Laufwerk herausnehmen.
</p>
<p>
Wenn Sie Puppy beenden, werden Sie gefragt, ob Sie die Einstellungen in einer Datei namens pup_save.2fs auf Festplatte "SAVE TO FILE" oder CD "SAVE TO CD" speichern wollen (mit der Tabulator-Taste können Sie zwischen den Möglichkeiten wechseln). Wenn Sie die Einstellungen nicht speichern wollen, wählen Sie "DO NOT SAVE" aus und drücken die Return-Taste.<br>
Falls Sie die Einstellungen speichern möchten, werden Sie gefragt, auf welcher Festplatte dies erfolgen soll.<br>
<!--**********************New_Chapter***********************-->
</p>
<h2>
Die Bootoptionen<br>
</h2>
<p>
Beim Booten bietet Puppy verschiedene Optionen an. Falls Sie nichts eingeben, wird Puppy nach einigen Sekunden in den Arbeitsspeicher (RAM) geladen. Beim Starten sucht Puppy automatisch nach einer zuvor gespeicherten pup_save.3fs-Datei. Falls es diese Datei noch nicht gibt, werden Sie nach der Länderkennzeichnung für die Tastatur und der Bildschirmauflösung gefragt.
</p>
<p>
Über die Boot -Option
</p>
<p>
puppy pfix=ram
</p>
<p>
haben Sie die Möglichkeit, auch bei bereits bestehender pup_save.2fs-Datei Puppy ohne Voreinstellungen und ohne Ihre persönlichen Dateien in den Arbeitsspeicher (RAM) zu laden. Diese Boot-Option ist sehr nützlich und wird auch in diesem Handbuch immer wieder genutzt.
</p>
<p>
Beachten Sie, dass während des Starts das deutsche Tastatur-Layout noch nicht aktiv ist. Somit liegt das Y auf dem Z der Tastatur und das = Zeichen findet man rechts neben dem ß. Somit tippt man auf einer deutschen Tastatur die Boot-Option wie folgt ein:
</p>
<p>
puppz pfix´ram
</p>
<p>
Die anderen Boot-Optionen sind für spezielle Situationen vorgesehen und werden von Ihnen normalerweise nicht benötigt.<br>
<!--**********************New_Chapter***********************-->
</p>
<h2>
Puppy-Konfiguration speichern<br>
</h2>
<p>
Damit Puppy alle Einstellungen und Ihre Daten speichern kann, wird eine Datei names pup_save.2fs angelegt. Als Größe empfehle ich Ihnen 512 MB. Dies ist ausreichend groß für weitere Programme und kann problemlos auf CD-ROM gesichert werden (Anmerkung: falls Sie die Datei auf einem USB-Stick sichern wollen, muß dieser 1 GB groß sein). Puppy kann die pup_save.2fs-Datei standardmäßig nur auf einer Festplattenpartition mit FAT32-Dateisystem oder einem Linux-Dateisystem speichern (Anmerkung: USB-Sticks und externe Festplatten sind in der Regel herstellerseitig bereits als FAT32-Dateisystem formatiert, so dass diese problemlos genutzt werden können). Bei Windows XP-Nutzern ist die Festplatte in der Regel mit einem NTFS-Dateisystem formatiert. Es bieten sich zwei Möglichkeiten an:
</p>
<p>(1) Sie speichern die Datei auf einer externen Festplatte oder einem USB-Stick.</p>
<p>
(2) Sie verkleinern die NTFS-Partition und legen eine oder mehrere weitere Partitionen mit FAT32-Dateisystem und evtl. ext2/ext3-Dateisystem an.
</p>
<p>
Falls Sie beabsichtigen Puppy dauerhaft zu nutzen, sollten Sie die zweite Alternative wählen. Sie werden deutliche Vorteile haben, wenn Sie mehrere Partitionen zur Verfügung haben.</p></html>
Source: [[Puppy starten : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-starten]]
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {
dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?
createTagButton: function(place,tag,excludeTiddler) {
// little hack so we can do this: <<tag PrettyTagName|RealTagName>>
var splitTag = tag.split("|");
var pretty = tag;
if (splitTag.length == 2) {
tag = splitTag[1];
pretty = splitTag[0];
}
var sp = createTiddlyElement(place,"span",null,"quickopentag");
createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
config.views.wikified.tag.tooltip.format([tag]),onClickTag);
theTag.setAttribute("tag",tag);
if (excludeTiddler)
theTag.setAttribute("tiddler",excludeTiddler);
return(theTag);
},
miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
var tagged = store.getTaggedTiddlers(tiddler.title);
if (tagged.length > 0) {
var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
theTag.setAttribute("tag",tiddler.title);
theTag.className = "miniTag";
}
},
allTagsHandler: function(place,macroName,params) {
var tags = store.getTags(params[0]);
var filter = params[1]; // new feature
var ul = createTiddlyElement(place,"ul");
if(tags.length == 0)
createTiddlyElement(ul,"li",null,"listTitle",this.noTags);
for(var t=0; t<tags.length; t++) {
var title = tags[t][0];
if (!filter || (title.match(new RegExp('^'+filter)))) {
var info = getTiddlyLinkInfo(title);
var theListItem =createTiddlyElement(ul,"li");
var theLink = createTiddlyLink(theListItem,tags[t][0],true);
var theCount = " (" + tags[t][1] + ")";
theLink.appendChild(document.createTextNode(theCount));
var theDropDownBtn = createTiddlyButton(theListItem," " +
config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
theDropDownBtn.setAttribute("tag",tags[t][0]);
}
}
},
// todo fix these up a bit
styles: [
"/*{{{*/",
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
" { margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
" { border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
" { margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
" { margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
" /* looks better in right justified main menus */",
" { margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }",
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",
"/*}}}*/",
""].join("\n"),
init: function() {
// we fully replace these builtins. can't hijack them easily
window.createTagButton = this.createTagButton;
config.macros.allTags.handler = this.allTagsHandler;
config.macros.miniTag = { handler: this.miniTagHandler };
config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
store.addNotification("QuickOpenTagStyles",refreshStyles);
}
}
config.quickOpenTag.init();
//}}}
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0 ($Rev: 5501 $)|
|Date:|$Date: 2008-06-10 23:11:55 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {
prompts: {
rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
remove: "Remove the tag '%0' from %1 tidder%2?"
},
removeTag: function(tag,tiddlers) {
store.suspendNotifications();
for (var i=0;i<tiddlers.length;i++) {
store.setTiddlerTag(tiddlers[i].title,false,tag);
}
store.resumeNotifications();
store.notifyAll();
},
renameTag: function(oldTag,newTag,tiddlers) {
store.suspendNotifications();
for (var i=0;i<tiddlers.length;i++) {
store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
store.setTiddlerTag(tiddlers[i].title,true,newTag); // add new
}
store.resumeNotifications();
store.notifyAll();
},
storeMethods: {
saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,
saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {
if (title != newTitle) {
var tagged = this.getTaggedTiddlers(title);
if (tagged.length > 0) {
// then we are renaming a tag
if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
config.renameTags.renameTag(title,newTitle,tagged);
if (!this.tiddlerExists(title) && newBody == "")
// dont create unwanted tiddler
return null;
}
}
return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);
},
removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,
removeTiddler: function(title) {
var tagged = this.getTaggedTiddlers(title);
if (tagged.length > 0)
if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
config.renameTags.removeTag(title,tagged);
return this.removeTiddler_orig_renameTags(title);
}
},
init: function() {
merge(TiddlyWiki.prototype,this.storeMethods);
}
}
config.renameTags.init();
//}}}
<html><h2>
Root-Rechte<br>
</h2>
<p>
Im Unterschied zu den meisten anderen Linux-Distributionen unterscheidet Puppy nicht in normale User und den Administrator Root. Vielmehr arbeitet man immer als Root, was viele Arbeitsabläufe deutlich vereinfacht. Aus dieser Tatsache heraus stellt sich die Frage, ob es ein Sicherheitsrisiko darstellt immer als Root zu arbeiten und damit vollen Schreib- und Löschzugriff auf alle Dateien zu haben.
</p>
<p>
Für den normalen Heimanwender ergeben sich daraus keine besonderen Risiken gegenüber anderen Linux-Distributionen. Im Gegenteil, Puppy ist vermutlich sogar ein Stück sicherer als viele andere Distributionen.
</p>
<p>
Betrachten wir zunächst das Risiko bei einer Distribution, die in User und Root unterscheidet. Der Anwender arbeitet standardäßig als normaler User, der keine Schreib-/Löschrechte auf Programm- und Systemdateien hat. Ein Eindringling kann somit nur die persönlichen Dateien des Users kompromittieren. Allerdings hat der Eindringling jetzt einen Zugang zum System und kann versuchen, von dort aus Root-Rechte zu erlangen (Ausspähen der Passwort-Datei, Ausnutzen von Programmfehlern zum Einschleusen von Schadcode und so weiter), um dann auch die Programm- und Systemdateien anzugreifen.
</p>
<p>
Solange Puppy nicht auf die Festplatte installiert wird, sondern von CD-ROM startet bzw. aus einem CD-ROM-Image auf der Festplatte in den RAM bootet, sind die Programm- und Systemdateien quasi unangreifbar. Mit jedem Reboot sind alle Schadprogramme, die ein Eindringling hinterlassen haben könnte, verschwunden. Die eigenen Dateien können von dem Eindringling weiterhin kompromittiert werden, aber dies kann dem normalen User ebenso passieren. Hier hilft nur, Checksummen für die Dateien zu bilden und regelmäßige Sicherungskopien anzulegen.</p></html>
Source: [[Root-Rechte : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/root-rechte]]
/***
|Name:|SaveCloseTiddlerPlugin|
|Description:|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
|Version:|3.0 ($Rev: 5502 $)|
|Date:|$Date: 2008-06-10 23:31:39 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
To use these you must add them to the tool bar in your EditTemplate
***/
//{{{
merge(config.commands,{
saveCloseTiddler: {
text: 'done/close',
tooltip: 'Save changes to this tiddler and close it',
handler: function(ev,src,title) {
var closeTitle = title;
var newTitle = story.saveTiddler(title,ev.shiftKey);
if (newTitle)
closeTitle = newTitle;
return config.commands.closeTiddler.handler(ev,src,closeTitle);
}
},
cancelCloseTiddler: {
text: 'cancel/close',
tooltip: 'Undo changes to this tiddler and close it',
handler: function(ev,src,title) {
// the same as closeTiddler now actually
return config.commands.closeTiddler.handler(ev,src,title);
}
}
});
//}}}
<html><h2>
Scanner<br>
</h2>
<p>
Hier fehlt noch die Beschreibung.</p></html>
Source: [[Scanner : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/hardware-einrichten/scanner]]
<html><h2>Schriften installieren </h2>
<p>
Sie können weitere Schriften z.B. für Abiword installieren. Laden Sie sich aus dem Internet TrueTypeFonts (TTF) und speichern Sie die Dateien im Verzeichnis /usr/X11R7/lib/X11/fonts/TTF. Gehen Sie wie folgt vor:
</p>
<p>
Laden Sie von der Seite <a href="http://thelinuxbox.org/?page_id=3" target="_blank">http://thelinuxbox.org</a> z.B. die FunFonts und die Microsoftfonts herunter. Eine andere interessante Seite ist <a href="http://wiki.scribus.net/index.php/Where_can_I_get_good_fonts%3F" target="_blank">http://wiki.scribus.net</a> .
</p>
<p>
Klicken Sie mit der linken Maustaste auf die heruntergeladene Datei. Es öffnet sich das Programm XArchive.
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1160.jpg">
</p>
<p>
Klicken Sie auf den Button "Select All" und anschließend auf den Button "Extract".
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b1161.jpg">
</p>
<p>
Ein neues Fenster erscheint. Klicken Sie auf den Button "Choose".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c029a.jpg" class="image-ia image-_original" height="119" width="228"></span>
</p>
<p>
Ein neues Fenster erscheint.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c030.jpg" class="image-ia image-_original"></span>
</p>
<p>
Navigieren Sie zu dem Verzeichnis /usr/X11R7/lib/X11/fonts/TTF. Klicken Sie dann auf den Button "Open".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c030b.jpg" class="image-ia image-_original"></span>
</p>
<p>
Im nächsten Dialog klicken Sie auf den Button "OK".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c031.jpg" class="image-ia image-_original" height="118" width="230"></span>
</p>
<p>
Jetzt wird die Datei entpackt und die Schriften werden in das Verzeichnis kopiert. Verfahren Sie ebenso mit allen anderen TTF-Dateien. Wenn Sie danach Abiword starten, stehen Ihnen die Schriften zur Verfügung.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c032.jpg" class="image-ia image-_original" height="155" width="270"></span>
</p>
<p>
Schließen Sie den Dialog durch einen Klick auf den Button "OK".</p></html>
Source: [[Schriften installieren : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/puppy-individuell-konfigurieren/schriften-installieren]]
/***
|Name:|SelectThemePlugin|
|Description:|Lets you easily switch theme and palette|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware.
!Usage
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette
***/
//{{{
config.macros.selectTheme = {
label: {
selectTheme:"select theme",
selectPalette:"select palette"
},
prompt: {
selectTheme:"Select the current theme",
selectPalette:"Select the current palette"
},
tags: {
selectTheme:'systemTheme',
selectPalette:'systemPalette'
}
};
config.macros.selectTheme.handler = function(place,macroName)
{
var btn = createTiddlyButton(place,this.label[macroName],this.prompt[macroName],this.onClick);
// want to handle palettes and themes with same code. use mode attribute to distinguish
btn.setAttribute('mode',macroName);
};
config.macros.selectTheme.onClick = function(ev)
{
var e = ev ? ev : window.event;
var popup = Popup.create(this);
var mode = this.getAttribute('mode');
var tiddlers = store.getTaggedTiddlers(config.macros.selectTheme.tags[mode]);
// for default
if (mode == "selectPalette") {
var btn = createTiddlyButton(createTiddlyElement(popup,'li'),"(default)","default color palette",config.macros.selectTheme.onClickTheme);
btn.setAttribute('theme',"(default)");
btn.setAttribute('mode',mode);
}
for(var i=0; i<tiddlers.length; i++) {
var t = tiddlers[i].title;
var name = store.getTiddlerSlice(t,'Name');
var desc = store.getTiddlerSlice(t,'Description');
var btn = createTiddlyButton(createTiddlyElement(popup,'li'),name ? name : title,desc ? desc : config.macros.selectTheme.label['mode'],config.macros.selectTheme.onClickTheme);
btn.setAttribute('theme',t);
btn.setAttribute('mode',mode);
}
Popup.show();
return stopEvent(e);
};
config.macros.selectTheme.onClickTheme = function(ev)
{
var mode = this.getAttribute('mode');
var theme = this.getAttribute('theme');
if (mode == 'selectTheme')
story.switchTheme(theme);
else // selectPalette
config.macros.selectTheme.updatePalette(theme);
return false;
};
config.macros.selectTheme.updatePalette = function(title)
{
if (title != "") {
store.deleteTiddler("ColorPalette");
if (title != "(default)")
store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
config.options.txtUserName,undefined,"");
refreshAll();
if(config.options.chkAutoSave)
saveChanges(true);
}
};
config.macros.applyTheme = {
label: "apply",
prompt: "apply this theme or palette" // i'm lazy
};
config.macros.applyTheme.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
var useTiddler = params[0] ? params[0] : tiddler.title;
var btn = createTiddlyButton(place,this.label,this.prompt,config.macros.selectTheme.onClickTheme);
btn.setAttribute('theme',useTiddler);
btn.setAttribute('mode',macroName=="applyTheme"?"selectTheme":"selectPalette"); // a bit untidy here
}
config.macros.selectPalette = config.macros.selectTheme;
config.macros.applyPalette = config.macros.applyTheme;
config.macros.refreshAll = { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
createTiddlyButton(place,"refresh","refresh layout and styles",function() { refreshAll(); });
}};
//}}}
.tiddler .subtitle {
display: none;
}
.HideSideBarButton {float:right;}
.toolbar {
visibility:hidden;
}
.selected .toolbar {
visibility:visible;
}
<<tabs txtMoreTab "Tags" "All Tags" TabAllTags "Miss" "Missing tiddlers" TabMoreMissing "Orph" "Orphaned tiddlers" TabMoreOrphans "Shad" "Shadowed tiddlers" TabMoreShadowed>>
<<allTags excludeLists [a-z]>>
/***
|Name:|TagglyTaggingPlugin|
|Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version:|3.1 ($Rev: 5655 $)|
|Date:|$Date: 2008-06-18 23:50:30 +1000 (Wed, 18 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{
config.taggly = {
// for translations
lingo: {
labels: {
asc: "\u2191", // down arrow
desc: "\u2193", // up arrow
title: "title",
modified: "modified",
created: "created",
show: "+",
hide: "-",
normal: "normal",
group: "group",
commas: "commas",
sitemap: "sitemap",
numCols: "cols\u00b1", // plus minus sign
label: "Tagged as '%0':",
excerpts: "excerpts",
descr: "descr",
slices: "slices",
contents: "contents",
sliders: "sliders",
noexcerpts: "title only"
},
tooltips: {
title: "Click to sort by title",
modified: "Click to sort by modified date",
created: "Click to sort by created date",
show: "Click to show tagging list",
hide: "Click to hide tagging list",
normal: "Click to show a normal ungrouped list",
group: "Click to show list grouped by tag",
sitemap: "Click to show a sitemap style list",
commas: "Click to show a comma separated list",
numCols: "Click to change number of columns",
excerpts: "Click to show excerpts",
descr: "Click to show the description slice",
slices: "Click to show all slices",
contents: "Click to show entire tiddler contents",
sliders: "Click to show tiddler contents in sliders",
noexcerpts: "Click to show entire title only"
},
tooDeepMessage: "* //sitemap too deep...//"
},
config: {
showTaggingCounts: true,
listOpts: {
// the first one will be the default
sortBy: ["title","modified","created"],
sortOrder: ["asc","desc"],
hideState: ["show","hide"],
listMode: ["normal","group","sitemap","commas"],
numCols: ["1","2","3","4","5","6"],
excerpts: ["noexcerpts","excerpts","descr","slices","contents","sliders"]
},
valuePrefix: "taggly.",
excludeTags: ["excludeLists","excludeTagging"],
excerptSize: 50,
excerptMarker: "/%"+"%/",
siteMapDepthLimit: 25
},
getTagglyOpt: function(title,opt) {
var val = store.getValue(title,this.config.valuePrefix+opt);
return val ? val : this.config.listOpts[opt][0];
},
setTagglyOpt: function(title,opt,value) {
if (!store.tiddlerExists(title))
// create it silently
store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");
// if value is default then remove it to save space
return store.setValue(title,
this.config.valuePrefix+opt,
value == this.config.listOpts[opt][0] ? null : value);
},
getNextValue: function(title,opt) {
var current = this.getTagglyOpt(title,opt);
var pos = this.config.listOpts[opt].indexOf(current);
// a little usability enhancement. actually it doesn't work right for grouped or sitemap
var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);
var newPos = (pos + 1) % limit;
return this.config.listOpts[opt][newPos];
},
toggleTagglyOpt: function(title,opt) {
var newVal = this.getNextValue(title,opt);
this.setTagglyOpt(title,opt,newVal);
},
createListControl: function(place,title,type) {
var lingo = config.taggly.lingo;
var label;
var tooltip;
var onclick;
if ((type == "title" || type == "modified" || type == "created")) {
// "special" controls. a little tricky. derived from sortOrder and sortBy
label = lingo.labels[type];
tooltip = lingo.tooltips[type];
if (this.getTagglyOpt(title,"sortBy") == type) {
label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
onclick = function() {
config.taggly.toggleTagglyOpt(title,"sortOrder");
return false;
}
}
else {
onclick = function() {
config.taggly.setTagglyOpt(title,"sortBy",type);
config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
return false;
}
}
}
else {
// "regular" controls, nice and simple
label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
onclick = function() {
config.taggly.toggleTagglyOpt(title,type);
return false;
}
}
// hide button because commas don't have columns
if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
},
makeColumns: function(orig,numCols) {
var listSize = orig.length;
var colSize = listSize/numCols;
var remainder = listSize % numCols;
var upperColsize = colSize;
var lowerColsize = colSize;
if (colSize != Math.floor(colSize)) {
// it's not an exact fit so..
upperColsize = Math.floor(colSize) + 1;
lowerColsize = Math.floor(colSize);
}
var output = [];
var c = 0;
for (var j=0;j<numCols;j++) {
var singleCol = [];
var thisSize = j < remainder ? upperColsize : lowerColsize;
for (var i=0;i<thisSize;i++)
singleCol.push(orig[c++]);
output.push(singleCol);
}
return output;
},
drawTable: function(place,columns,theClass) {
var newTable = createTiddlyElement(place,"table",null,theClass);
var newTbody = createTiddlyElement(newTable,"tbody");
var newTr = createTiddlyElement(newTbody,"tr");
for (var j=0;j<columns.length;j++) {
var colOutput = "";
for (var i=0;i<columns[j].length;i++)
colOutput += columns[j][i];
var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
wikify(colOutput,newTd);
}
return newTable;
},
createTagglyList: function(place,title) {
switch(this.getTagglyOpt(title,"listMode")) {
case "group": return this.createTagglyListGrouped(place,title); break;
case "normal": return this.createTagglyListNormal(place,title,false); break;
case "commas": return this.createTagglyListNormal(place,title,true); break;
case "sitemap":return this.createTagglyListSiteMap(place,title); break;
}
},
getTaggingCount: function(title) {
// thanks to Doug Edmunds
if (this.config.showTaggingCounts) {
var tagCount = store.getTaggedTiddlers(title).length;
if (tagCount > 0)
return " ("+tagCount+")";
}
return "";
},
getExcerpt: function(inTiddlerTitle,title,indent) {
if (!indent)
indent = 1;
var displayMode = this.getTagglyOpt(inTiddlerTitle,"excerpts");
var t = store.getTiddler(title);
if (t && displayMode == "excerpts") {
var text = t.text.replace(/\n/," ");
var marker = text.indexOf(this.config.excerptMarker);
if (marker != -1) {
return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
}
else if (text.length < this.config.excerptSize) {
return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
}
else {
return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
}
}
else if (t && displayMode == "contents") {
return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
}
else if (t && displayMode == "sliders") {
return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
}
else if (t && displayMode == "descr") {
var descr = store.getTiddlerSlice(title,'Description');
return descr ? " {{excerpt{" + descr + "}}}" : "";
}
else if (t && displayMode == "slices") {
var result = "";
var slices = store.calcAllSlices(title);
for (var s in slices)
result += "|%0|<nowiki>%1</nowiki>|\n".format([s,slices[s]]);
return result ? "\n{{excerpt excerptIndent{\n" + result + "}}}" : "";
}
return "";
},
notHidden: function(t,inTiddler) {
if (typeof t == "string")
t = store.getTiddler(t);
return (!t || !t.tags.containsAny(this.config.excludeTags) ||
(inTiddler && this.config.excludeTags.contains(inTiddler)));
},
// this is for normal and commas mode
createTagglyListNormal: function(place,title,useCommas) {
var list = store.getTaggedTiddlers(title,this.getTagglyOpt(title,"sortBy"));
if (this.getTagglyOpt(title,"sortOrder") == "desc")
list = list.reverse();
var output = [];
var first = true;
for (var i=0;i<list.length;i++) {
if (this.notHidden(list[i],title)) {
var countString = this.getTaggingCount(list[i].title);
var excerpt = this.getExcerpt(title,list[i].title);
if (useCommas)
output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
else
output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");
first = false;
}
}
return this.drawTable(place,
this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
useCommas ? "commas" : "normal");
},
// this is for the "grouped" mode
createTagglyListGrouped: function(place,title) {
var sortBy = this.getTagglyOpt(title,"sortBy");
var sortOrder = this.getTagglyOpt(title,"sortOrder");
var list = store.getTaggedTiddlers(title,sortBy);
if (sortOrder == "desc")
list = list.reverse();
var leftOvers = []
for (var i=0;i<list.length;i++)
leftOvers.push(list[i].title);
var allTagsHolder = {};
for (var i=0;i<list.length;i++) {
for (var j=0;j<list[i].tags.length;j++) {
if (list[i].tags[j] != title) { // not this tiddler
if (this.notHidden(list[i].tags[j],title)) {
if (!allTagsHolder[list[i].tags[j]])
allTagsHolder[list[i].tags[j]] = "";
if (this.notHidden(list[i],title)) {
allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";
leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers
}
}
}
}
}
var allTags = [];
for (var t in allTagsHolder)
allTags.push(t);
var sortHelper = function(a,b) {
if (a == b) return 0;
if (a < b) return -1;
return 1;
};
allTags.sort(function(a,b) {
var tidA = store.getTiddler(a);
var tidB = store.getTiddler(b);
if (sortBy == "title") return sortHelper(a,b);
else if (!tidA && !tidB) return 0;
else if (!tidA) return -1;
else if (!tidB) return +1;
else return sortHelper(tidA[sortBy],tidB[sortBy]);
});
var leftOverOutput = "";
for (var i=0;i<leftOvers.length;i++)
if (this.notHidden(leftOvers[i],title))
leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";
var output = [];
if (sortOrder == "desc")
allTags.reverse();
else if (leftOverOutput != "")
// leftovers first...
output.push(leftOverOutput);
for (var i=0;i<allTags.length;i++)
if (allTagsHolder[allTags[i]] != "")
output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);
if (sortOrder == "desc" && leftOverOutput != "")
// leftovers last...
output.push(leftOverOutput);
return this.drawTable(place,
this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
"grouped");
},
// used to build site map
treeTraverse: function(title,depth,sortBy,sortOrder) {
var list = store.getTaggedTiddlers(title,sortBy);
if (sortOrder == "desc")
list.reverse();
var indent = "";
for (var j=0;j<depth;j++)
indent += "*"
var childOutput = "";
if (depth > this.config.siteMapDepthLimit)
childOutput += indent + this.lingo.tooDeepMessage;
else
for (var i=0;i<list.length;i++)
if (list[i].title != title)
if (this.notHidden(list[i].title,this.config.inTiddler))
childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder);
if (depth == 0)
return childOutput;
else
return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
},
// this if for the site map mode
createTagglyListSiteMap: function(place,title) {
this.config.inTiddler = title; // nasty. should pass it in to traverse probably
var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"));
return this.drawTable(place,
this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
"sitemap"
);
},
macros: {
tagglyTagging: {
handler: function (place,macroName,params,wikifier,paramString,tiddler) {
var refreshContainer = createTiddlyElement(place,"div");
// do some refresh magic to make it keep the list fresh - thanks Saq
refreshContainer.setAttribute("refresh","macro");
refreshContainer.setAttribute("macroName",macroName);
if (params[0])
refreshContainer.setAttribute("title",params[0]);
else {
refreshContainer.setAttribute("title",tiddler.title);
}
this.refresh(refreshContainer);
},
refresh: function(place) {
var title = place.getAttribute("title");
removeChildren(place);
addClass(place,"tagglyTagging");
if (store.getTaggedTiddlers(title).length > 0) {
var lingo = config.taggly.lingo;
config.taggly.createListControl(place,title,"hideState");
if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
createTiddlyElement(place,"span",null,"tagglyLabel",lingo.labels.label.format([title]));
config.taggly.createListControl(place,title,"title");
config.taggly.createListControl(place,title,"modified");
config.taggly.createListControl(place,title,"created");
config.taggly.createListControl(place,title,"listMode");
config.taggly.createListControl(place,title,"excerpts");
config.taggly.createListControl(place,title,"numCols");
config.taggly.createTagglyList(place,title);
}
}
}
}
},
// todo fix these up a bit
styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
" margin-top:0px; padding-top:0.5em; padding-left:2em;",
" margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
" color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
" border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active {",
" border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
".excerptIndent { margin-left:4em; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
" margin-bottom:0.5em; }",
".tagglyTagging .indent1 { margin-left:3em; }",
".tagglyTagging .indent2 { margin-left:4em; }",
".tagglyTagging .indent3 { margin-left:5em; }",
".tagglyTagging .indent4 { margin-left:6em; }",
".tagglyTagging .indent5 { margin-left:7em; }",
".tagglyTagging .indent6 { margin-left:8em; }",
".tagglyTagging .indent7 { margin-left:9em; }",
".tagglyTagging .indent8 { margin-left:10em; }",
".tagglyTagging .indent9 { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
"/*}}}*/",
""].join("\n"),
init: function() {
merge(config.macros,this.macros);
config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
store.addNotification("TagglyTaggingStyles",refreshStyles);
}
};
config.taggly.init();
//}}}
/***
InlineSlidersPlugin
By Saq Imtiaz
http://tw.lewcid.org/sandbox/#InlineSlidersPlugin
// syntax adjusted to not clash with NestedSlidersPlugin
// added + syntax to start open instead of closed
***/
//{{{
config.formatters.unshift( {
name: "inlinesliders",
// match: "\\+\\+\\+\\+|\\<slider",
match: "\\<slider",
// lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
lookaheadRegExp: /(?:<slider)(\+?) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
handler: function(w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
var btn = createTiddlyButton(w.output,lookaheadMatch[2] + " "+"\u00BB",lookaheadMatch[2],this.onClickSlider,"button sliderButton");
var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
panel.style.display = (lookaheadMatch[1] == '+' ? "block" : "none");
wikify(lookaheadMatch[3],panel);
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
},
onClickSlider : function(e) {
if(!e) var e = window.event;
var n = this.nextSibling;
n.style.display = (n.style.display=="none") ? "block" : "none";
return false;
}
});
//}}}
<html><h2>
Tastaturlayout<br>
</h2>
<p>
Wenn Sie als Videoserver Xvesa verwenden und keine US-Tastatur haben, müssen Sie das Tastaturlayout anpassen. Starten Sie "Menu | Document | Geany text editor" und kopieren Sie die nachstehenden Zeilen für ein deutsches Tastaturlayout hinein.
</p>
<p>
clear shift<br>
clear lock<br>
clear control<br>
clear mod1<br>
clear mod2<br>
clear mod3<br>
!clear mod4<br>
!clear mod5<br>
!de-latin1.map: German keymap<br>
keycode 9 = Escape Escape<br>
keycode10 = 1 exclam<br>
keycode11 = 2 quotedbl twosuperior<br>
keycode12 = 3 section threesuperior<br>
keycode13 = 4 dollar dollar<br>
keycode14 = 5 percent<br>
keycode15 = 6 ampersand<br>
keycode16 = 7 slash braceleft<br>
keycode17 = 8 parenleft bracketleft<br>
keycode18 = 9 parenright bracketright<br>
keycode19 = 0 equal braceright<br>
keycode20 = ssharp question backslash<br>
keycode21 = dead_acute dead_grave<br>
keycode22 = BackSpace Delete<br>
keycode23 = Tab Tab<br>
keycode24 = q Q at<br>
keycode25 = w<br>
keycode26 = e E currency EuroSign<br>
keycode27 = r<br>
keycode28 = t<br>
keycode29 = z<br>
keycode30 = u<br>
keycode31 = i<br>
keycode32 = o<br>
keycode33 = p<br>
keycode34 = udiaeresis Udiaeresis<br>
keycode35 = plus asterisk dead_tilde<br>
keycode36 = Return<br>
keycode37 = Control_L<br>
keycode38 = a<br>
keycode39 = s<br>
keycode40 = d<br>
keycode41 = f<br>
keycode42 = g<br>
keycode43 = h<br>
keycode44 = j<br>
keycode45 = k<br>
keycode46 = l<br>
keycode47 = odiaeresis Odiaeresis<br>
keycode48 = adiaeresis Adiaeresis<br>
keycode49 = dead_circumflex degree<br>
keycode50 = Shift_L<br>
keycode51 = numbersign apostrophe<br>
keycode52 = y<br>
keycode53 = x<br>
keycode54 = c<br>
keycode55 = v<br>
keycode56 = b<br>
keycode57 = n<br>
keycode58 = m M mu<br>
keycode59 = comma semicolon<br>
keycode60 = period colon Multi_key<br>
keycode61 = minus underscore<br>
keycode62 = Shift_R<br>
keycode63 = KP_Multiply<br>
keycode64 = Alt_L Meta_L<br>
keycode65 = space space<br>
keycode66 = Caps_Lock<br>
keycode67 = F1 F11<br>
keycode68 = F2 F12<br>
keycode69 = F3 F13<br>
keycode70 = F4 F14<br>
keycode71 = at F15<br>
keycode72 = bar F16<br>
keycode73 = dead_tilde F17<br>
keycode74 = currency EuroSign F18<br>
keycode75 = braceleft F19<br>
keycode76 = braceright F20<br>
keycode77 = Num_Lock<br>
keycode78 = Scroll_Lock<br>
keycode79 = KP_7<br>
keycode80 = KP_8<br>
keycode81 = KP_9<br>
keycode82 = KP_Subtract<br>
keycode83 = KP_4<br>
keycode84 = KP_5<br>
keycode85 = KP_6<br>
keycode86 = KP_Add<br>
keycode87 = KP_1<br>
keycode88 = KP_2<br>
keycode89 = KP_3<br>
keycode90 = KP_0<br>
keycode91 = KP_Decimal<br>
keycode94 = less greater bar<br>
keycode95 = bracketleft F11<br>
keycode96 = bracketright F12<br>
keycode98 = Up<br>
!keycode99 = Prior<br>
keycode 100 = Left<br>
keycode 102 = Right<br>
!keycode 104 = Down<br>
keycode 105 = Control_R<br>
keycode 106 = KP_Divide<br>
keycode 108 = Alt_R<br>
keycode 110 = Home<br>
keycode 112 = Prior<br>
keycode 113 = Left<br>
keycode 114 = Right<br>
keycode 115 = End<br>
keycode 116 = Down<br>
keycode 117 = Next<br>
keycode 133 = Alt_L<br>
keycode 134 = Alt_R<br>
add shift = Shift_L Shift_R<br>
add lock = Caps_Lock<br>
add control = Control_L Control_R<br>
add mod1 = Alt_L Alt_R<br>
add mod2 = Mode_switch<br>
add mod3 = Num_Lock<br>
!add mod4 =<br>
!add mod5 =
</p>
<p>
Speichern Sie die Datei als .Xmodmap in das Verzeichnis /root (beachten Sie, dass das erste Zeichen des Dateinamens ein Punkt ist). Anschließend starten Sie über über "Menu | Shutdown | Restart X Server" den X Server neu (alternativ können Sie auch eine Konsole öffnen und den Befehl "xmodmap /root/.Xmodmap" eingeben). Damit stehen die Umlaute äöüÄÖÜ zur Verfügung. Die Sonderzeichen @|~ befinden sich auf den Funktionstasten F5, F6 und F7 (diese muß zweimal gedrückt werden bis das Zeichen erscheint). Die Klammern {}[] befinden sich auf den Funktionstasten F9 bis F12.
</p>
<p>
Andere landesspezifische Tastaturlayouts können Sie durch editieren der Datei selbst erstellen. Um die Tastaturcodes zu ermitteln, starten Sie eine Konsole und geben den Befehl "xev" ein. Wenn Sie dann eine Taste drücken, erhalten Sie den Tastaturcode sowie das mit der Taste verknüpfte Zeichen.</p></html>
Source: [[Tastaturlayout : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/hardware-einrichten/tastaturlayout]]
<html><h2>
Tipps und Tricks<br>
</h2>
<h3>
Groß-Kleinschreibung<br>
</h3>
<p>
Linux unterscheidet immer zwischen Groß- und Kleinschreibung. Bei den beiden Dateien MeineDatei.txt und meinedatei.txt handelt es sich unter Linux um zwei verschiedene Dateien.
</p>
<h3>
Sonderzeichen<br>
</h3>
<p>
Verwenden Sie in Verzeichnis- oder Dateinamen keine Sonderzeichen mit Ausnahme des Bindestrichs und des Unterstrichs. Auch die Umlaute ä, ö, ü oder ß sollten Sie nicht verwenden, auch keine Leerzeichen. Mit anderen Worten: verwenden Sie nur die Buchstaben A-Z, a-z, Ziffern 0-9 sowie Minuszeichen und Unterstrich.
</p>
<h3>
Kontextmenü im Dateimanager ROX<br>
</h3>
<p>
Arbeiten Sie im Dateimanager ROX möglichst immer mit dem Kontextmenü. Das Kontextmenü erscheint nach einem Klick mit der rechten Maustaste.
</p>
<h3>
Kopieren/Einfügen in der Shell rxvt<br>
</h3>
<p>
Zum Kopieren markieren Sie mit der linken Maustaste das gewünschte Textstück. Mit der mittleren Maustaste fügen Sie das Textstück wieder ein.
</p>
<h3>
Automatische Ergänzung in der Shell rxvt<br>
</h3>
<p>
Sie müssen in der Shell den Verzeichnisnamen und Dateinamen nicht komplett eingeben. Es reicht aus, wenn Sie den Anfang eintippen und dann die Tabulatortaste drücken. Die Shell ergänzt automatisch den restlichen Verzeichnis- oder Dateinamen.
</p>
<h3>
Autostart von Programmen<br>
</h3>
<p>
Text fehlt noch</p></html>
Source: [[Tipps und Tricks : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/tipps-und-tricks]]
/***
|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.
!Demo
<<toggleSideBar "Toggle Sidebar">>
!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)
You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}
!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour.
*20-07-06: version 0.11
*27-04-06: version 0.1: working.
!Code
***/
//{{{
config.macros.toggleSideBar={};
config.macros.toggleSideBar.settings={
styleHide : "#sidebar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 1em;}\n"+"",
styleShow : " ",
arrow1: "«",
arrow2: "»"
};
config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
var tooltip= params[1]||'toggle sidebar';
var mode = (params[2] && params[2]=="hide")? "hide":"show";
var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
var label= (params[0]&¶ms[0]!='.')?params[0]+" "+arrow:arrow;
var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
if (mode == "hide")
{
(document.getElementById("sidebar")).setAttribute("toggle","hide");
setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
}
};
config.macros.toggleSideBar.onToggleSideBar = function(){
var sidebar = document.getElementById("sidebar");
var settings = config.macros.toggleSideBar.settings;
if (sidebar.getAttribute("toggle")=='hide')
{
setStylesheet(settings.styleShow,"ToggleSideBarStyles");
sidebar.setAttribute("toggle","show");
this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
}
else
{
setStylesheet(settings.styleHide,"ToggleSideBarStyles");
sidebar.setAttribute("toggle","hide");
this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
}
return false;
}
setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");
//}}}
/***
|Name:|ToggleTagPlugin|
|Description:|Makes a checkbox which toggles a tag in a tiddler|
|Version:|3.1.0 ($Rev: 4907 $)|
|Date:|$Date: 2008-05-13 03:15:46 +1000 (Tue, 13 May 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ToggleTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)
* TouchMod flag - if non empty then touch the tiddlers mod date. Note, can set config.toggleTagAlwaysTouchModDate to always touch mod date
!!Examples
|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
!!Notes
* If TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2
!!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing
* Should convert to use named params
***/
//{{{
if (config.toggleTagAlwaysTouchModDate == undefined) config.toggleTagAlwaysTouchModDate = false;
merge(config.macros,{
toggleTag: {
createIfRequired: true,
shortLabel: "[[%0]]",
longLabel: "[[%0]] [[%1]]",
handler: function(place,macroName,params,wikifier,paramString,tiddler) {
var tiddlerTitle = tiddler ? tiddler.title : '';
var tag = (params[0] && params[0] != '.') ? params[0] : "checked";
var title = (params[1] && params[1] != '.') ? params[1] : tiddlerTitle;
var defaultLabel = (title == tiddlerTitle ? this.shortLabel : this.longLabel);
var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
var touchMod = (params[3] && params[3] != '.') ? params[3] : "";
label = (label == '-' ? '' : label); // dash means no label
var theTiddler = (title == tiddlerTitle ? tiddler : store.getTiddler(title));
var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {
if (!store.tiddlerExists(title)) {
if (config.macros.toggleTag.createIfRequired) {
var content = store.getTiddlerText(title); // just in case it's a shadow
store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);
}
else
return false;
}
if ((touchMod != "" || config.toggleTagAlwaysTouchModDate) && theTiddler)
theTiddler.modified = new Date();
store.setTiddlerTag(title,this.checked,tag);
return true;
});
}
}
});
//}}}
/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{
// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'puppylinux';
// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
// disable autosave in d3
if (window.location.protocol != "file:")
config.options.chkGTDLazyAutoSave = false;
// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}
// create some shadow tiddler content
merge(config.shadowTiddlers,{
'WelcomeToTiddlyspot':[
"This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
"<<tiddler TspotControls>>",
"See also GettingStarted.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),
'TspotControls':[
"| tiddlyspot password:|<<option pasUploadPassword>>|",
"| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
"| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),
'TspotSidebar':[
"<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),
'TspotOptions':[
"tiddlyspot password:",
"<<option pasUploadPassword>>",
""
].join("\n")
});
//}}}
<html><h2>
USB-Sticks / externe Festplatten<br>
</h2>
<p>
USB-Sticks und externe Festplatten lassen sich sehr einfach einbinden (mounten). Starten Sie das Programm "Menu | Filesystem | Pmount mount/unmount drives" und klicken Sie auf den Button "Refresh". Dann klicken Sie auf das USB-Stick-Symbol und automatisch öffnet sich der Dateimanager ROX und zeigt das Wurzelverzeichnis des USB-Sticks an. Auch externe Festplatten können - solange sie ein FAT32-Dateisystem haben - auf diese Art eingebunden werden. Falls Sie das Dateisystem der externen Festplatte z.B. in ein ext3-Dateisystem geändert haben, funktioniert das automatische Einbinden über Pmount nicht mehr. Starten Sie eine Konsole und geben Sie folgenden Befehl ein:
</p>
<p>
mount /dev/sdax /mnt/sdax (für die erste Partition bspw.: mount /dev/sda1 /mnt/sda1)</p></html>
Source: [[USB-Sticks / externe Festplatten : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/hardware-einrichten/usb-sticks-/-externe-festplatten]]
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 01/07/2008 19:37:20 | puppylinux | [[puppylinuxhandbuch.html|file:///mnt/home/vorlagen/puppylinuxhandbuch.html]] | [[store.cgi|http://puppylinux.tiddlyspot.com/store.cgi]] | . | [[index.html | http://puppylinux.tiddlyspot.com/index.html]] | . | ok |
| 02/07/2008 02:02:38 | puppylinux | [[puppylinuxhandbuch.html|file:///mnt/home/vorlagen/puppylinuxhandbuch.html]] | [[store.cgi|http://puppylinux.tiddlyspot.com/store.cgi]] | . | [[index.html | http://puppylinux.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
major: 1, minor: 0, revision: 2,
date: new Date("Apr 19, 2007"),
source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
coreVersion: '2.2.0 (Beta 5)'
};
config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");
merge(config.macros.option.types, {
'pas': {
elementType: "input",
valueField: "value",
eventName: "onkeyup",
className: "pasOptionInput",
typeValue: config.macros.option.passwordInputType,
create: function(place,type,opt,className,desc) {
// password field
config.macros.option.genericCreate(place,'pas',opt,className,desc);
// checkbox linked with this password "save this password on this computer"
config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);
// text savePasswordCheckboxLabel
place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
},
onChange: config.macros.option.genericOnChange
}
});
merge(config.optionHandlers['chk'], {
get: function(name) {
// is there an option linked with this chk ?
var opt = name.substr(3);
if (config.options[opt])
saveOptionCookie(opt);
return config.options[name] ? "true" : "false";
}
});
merge(config.optionHandlers, {
'pas': {
get: function(name) {
if (config.options["chk"+name]) {
return encodeCookie(config.options[name].toString());
} else {
return "";
}
},
set: function(name,value) {config.options[name] = decodeCookie(value);}
}
});
// need to reload options to load passwordOptions
loadOptionsCookie();
/*
if (!config.options['pasPassword'])
config.options['pasPassword'] = '';
merge(config.optionsDesc,{
pasPassword: "Test password"
});
*/
//}}}
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
major: 4, minor: 1, revision: 0,
date: new Date("May 5, 2007"),
source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
coreVersion: '2.2.0 (#3125)'
};
//
// Environment
//
if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false; // true to activate both in Plugin and UploadService
//
// Upload Macro
//
config.macros.upload = {
// default values
defaultBackupDir: '', //no backup
defaultStoreScript: "store.php",
defaultToFilename: "index.html",
defaultUploadDir: ".",
authenticateUser: true // UploadService Authenticate User
};
config.macros.upload.label = {
promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
promptParamMacro: "Save and Upload this TiddlyWiki in %0",
saveLabel: "save to web",
saveToDisk: "save to disk",
uploadLabel: "upload"
};
config.macros.upload.messages = {
noStoreUrl: "No store URL in parmeters or options",
usernameOrPasswordMissing: "Username or password missing"
};
config.macros.upload.handler = function(place,macroName,params) {
if (readOnly)
return;
var label;
if (document.location.toString().substr(0,4) == "http")
label = this.label.saveLabel;
else
label = this.label.uploadLabel;
var prompt;
if (params[0]) {
prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0],
(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
} else {
prompt = this.label.promptOption;
}
createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};
config.macros.upload.action = function(params)
{
// for missing macro parameter set value from options
var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
var username = params[4] ? params[4] : config.options.txtUploadUserName;
var password = config.options.pasUploadPassword; // for security reason no password as macro parameter
// for still missing parameter set default value
if ((!storeUrl) && (document.location.toString().substr(0,4) == "http"))
storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
if (storeUrl.substr(0,4) != "http")
storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
if (!toFilename)
toFilename = bidix.basename(window.location.toString());
if (!toFilename)
toFilename = config.macros.upload.defaultToFilename;
if (!uploadDir)
uploadDir = config.macros.upload.defaultUploadDir;
if (!backupDir)
backupDir = config.macros.upload.defaultBackupDir;
// report error if still missing
if (!storeUrl) {
alert(config.macros.upload.messages.noStoreUrl);
clearMessage();
return false;
}
if (config.macros.upload.authenticateUser && (!username || !password)) {
alert(config.macros.upload.messages.usernameOrPasswordMissing);
clearMessage();
return false;
}
bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password);
return false;
};
config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir)
{
if (!storeUrl)
return null;
var dest = bidix.dirname(storeUrl);
if (uploadDir && uploadDir != '.')
dest = dest + '/' + uploadDir;
dest = dest + '/' + toFilename;
return dest;
};
//
// uploadOptions Macro
//
config.macros.uploadOptions = {
handler: function(place,macroName,params) {
var wizard = new Wizard();
wizard.createWizard(place,this.wizardTitle);
wizard.addStep(this.step1Title,this.step1Html);
var markList = wizard.getElement("markList");
var listWrapper = document.createElement("div");
markList.parentNode.insertBefore(listWrapper,markList);
wizard.setValue("listWrapper",listWrapper);
this.refreshOptions(listWrapper,false);
var uploadCaption;
if (document.location.toString().substr(0,4) == "http")
uploadCaption = config.macros.upload.label.saveLabel;
else
uploadCaption = config.macros.upload.label.uploadLabel;
wizard.setButtons([
{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption,
onClick: config.macros.upload.action},
{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
]);
},
refreshOptions: function(listWrapper) {
var uploadOpts = [
"txtUploadUserName",
"pasUploadPassword",
"txtUploadStoreUrl",
"txtUploadDir",
"txtUploadFilename",
"txtUploadBackupDir",
"chkUploadLog",
"txtUploadLogMaxLine",
]
var opts = [];
for(i=0; i<uploadOpts.length; i++) {
var opt = {};
opts.push()
opt.option = "";
n = uploadOpts[i];
opt.name = n;
opt.lowlight = !config.optionsDesc[n];
opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
opts.push(opt);
}
var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
for(n=0; n<opts.length; n++) {
var type = opts[n].name.substr(0,3);
var h = config.macros.option.types[type];
if (h && h.create) {
h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
}
}
},
onCancel: function(e)
{
backstage.switchTab(null);
return false;
},
wizardTitle: "Upload with options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br>",
cancelButton: "Cancel",
cancelButtonPrompt: "Cancel prompt",
listViewTemplate: {
columns: [
{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
}
//
// upload functions
//
if (!bidix.upload) bidix.upload = {};
if (!bidix.upload.messages) bidix.upload.messages = {
//from saving
invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
backupSaved: "Backup saved",
backupFailed: "Failed to upload backup file",
rssSaved: "RSS feed uploaded",
rssFailed: "Failed to upload RSS feed file",
emptySaved: "Empty template uploaded",
emptyFailed: "Failed to upload empty template file",
mainSaved: "Main TiddlyWiki file uploaded",
mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
//specific upload
loadOriginalHttpPostError: "Can't get original file",
aboutToSaveOnHttpPost: 'About to upload on %0 ...',
storePhpNotFound: "The store script '%0' was not found."
};
bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
var callback = function(status,uploadParams,original,url,xhr) {
if (!status) {
displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
return;
}
if (bidix.debugMode)
alert(original.substr(0,500)+"\n...");
// Locate the storeArea div's
var posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
bidix.upload.uploadRss(uploadParams,original,posDiv);
};
if(onlyIfDirty && !store.isDirty())
return;
clearMessage();
// save on localdisk ?
if (document.location.toString().substr(0,4) == "file") {
var path = document.location.toString();
var localPath = getLocalPath(path);
saveChanges();
}
// get original
var uploadParams = Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
var originalPath = document.location.toString();
// If url is a directory : add index.html
if (originalPath.charAt(originalPath.length-1) == "/")
originalPath = originalPath + "index.html";
var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
var log = new bidix.UploadLog();
log.startUpload(storeUrl, dest, uploadDir, backupDir);
displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
if (bidix.debugMode)
alert("about to execute Http - GET on "+originalPath);
var r = doHttp("GET",originalPath,null,null,null,null,callback,uploadParams,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
bidix.upload.uploadRss = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
if(status) {
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
bidix.upload.uploadMain(params[0],params[1],params[2]);
} else {
displayMessage(bidix.upload.messages.rssFailed);
}
};
// do uploadRss
if(config.options.chkGenerateAnRssFeed) {
var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
var rssUploadParams = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
bidix.upload.httpUpload(rssUploadParams,convertUnicodeToUTF8(generateRss()),callback,Array(uploadParams,original,posDiv));
} else {
bidix.upload.uploadMain(uploadParams,original,posDiv);
}
};
bidix.upload.uploadMain = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
var log = new bidix.UploadLog();
if(status) {
// if backupDir specified
if ((params[3]) && (responseText.indexOf("backupfile:") > -1)) {
var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
}
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
store.setDirty(false);
log.endUpload("ok");
} else {
alert(bidix.upload.messages.mainFailed);
displayMessage(bidix.upload.messages.mainFailed);
log.endUpload("failed");
}
};
// do uploadMain
var revised = bidix.upload.updateOriginal(original,posDiv);
bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};
bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
var localCallback = function(status,params,responseText,url,xhr) {
url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
if (xhr.status == httpStatus.NotFound)
alert(bidix.upload.messages.storePhpNotFound.format([url]));
if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
alert(responseText);
if (responseText.indexOf("Debug mode") >= 0 )
responseText = responseText.substring(responseText.indexOf("\n\n")+2);
} else if (responseText.charAt(0) != '0')
alert(responseText);
if (responseText.charAt(0) != '0')
status = null;
callback(status,params,responseText,url,xhr);
};
// do httpUpload
var boundary = "---------------------------"+"AaB03x";
var uploadFormName = "UploadPlugin";
// compose headers data
var sheader = "";
sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
sheader += uploadFormName +"\"\r\n\r\n";
sheader += "backupDir="+uploadParams[3] +
";user=" + uploadParams[4] +
";password=" + uploadParams[5] +
";uploaddir=" + uploadParams[2];
if (bidix.debugMode)
sheader += ";debug=1";
sheader += ";;\r\n";
sheader += "\r\n" + "--" + boundary + "\r\n";
sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
sheader += "Content-Length: " + data.length + "\r\n\r\n";
// compose trailer data
var strailer = new String();
strailer = "\r\n--" + boundary + "--\r\n";
data = sheader + data + strailer;
if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
if (!posDiv)
posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
store.allTiddlersAsHtml() + "\n" +
original.substr(posDiv[1]);
var newSiteTitle = getPageTitle().htmlEncode();
revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
return revised;
};
//
// UploadLog
//
// config.options.chkUploadLog :
// false : no logging
// true : logging
// config.options.txtUploadLogMaxLine :
// -1 : no limit
// 0 : no Log lines but UploadLog is still in place
// n : the last n lines are only kept
// NaN : no limit (-1)
bidix.UploadLog = function() {
if (!config.options.chkUploadLog)
return; // this.tiddler = null
this.tiddler = store.getTiddler("UploadLog");
if (!this.tiddler) {
this.tiddler = new Tiddler();
this.tiddler.title = "UploadLog";
this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
this.tiddler.created = new Date();
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
}
return this;
};
bidix.UploadLog.prototype.addText = function(text) {
if (!this.tiddler)
return;
// retrieve maxLine when we need it
var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
if (isNaN(maxLine))
maxLine = -1;
// add text
if (maxLine != 0)
this.tiddler.text = this.tiddler.text + text;
// Trunck to maxLine
if (maxLine >= 0) {
var textArray = this.tiddler.text.split('\n');
if (textArray.length > maxLine + 1)
textArray.splice(1,textArray.length-1-maxLine);
this.tiddler.text = textArray.join('\n');
}
// update tiddler fields
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
// refresh and notifiy for immediate update
story.refreshTiddler(this.tiddler.title);
store.notify(this.tiddler.title, true);
};
bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {
if (!this.tiddler)
return;
var now = new Date();
var text = "\n| ";
var filename = bidix.basename(document.location.toString());
if (!filename) filename = '/';
text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
text += config.options.txtUserName + " | ";
text += "[["+filename+"|"+location + "]] |";
text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
text += uploadDir + " | ";
text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
text += backupDir + " |";
this.addText(text);
};
bidix.UploadLog.prototype.endUpload = function(status) {
if (!this.tiddler)
return;
this.addText(" "+status+" |");
};
//
// Utilities
//
bidix.checkPlugin = function(plugin, major, minor, revision) {
var ext = version.extensions[plugin];
if (!
(ext &&
((ext.major > major) ||
((ext.major == major) && (ext.minor > minor)) ||
((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
// write error in PluginManager
if (pluginInfo)
pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
}
};
bidix.dirname = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(0, lastpos);
} else {
return filePath.substring(0, filePath.lastIndexOf("\\"));
}
};
bidix.basename = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("#")) != -1)
filePath = filePath.substring(0, lastpos);
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(lastpos + 1);
} else
return filePath.substring(filePath.lastIndexOf("\\")+1);
};
bidix.initOption = function(name,value) {
if (!config.options[name])
config.options[name] = value;
};
//
// Initializations
//
// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);
// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");
//optionsDesc
merge(config.optionsDesc,{
txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
txtUploadUserName: "Upload Username",
pasUploadPassword: "Upload Password",
chkUploadLog: "do Logging in UploadLog (default: true)",
txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});
// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');
/* don't want this for tiddlyspot sites
// Backstage
merge(config.tasks,{
uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");
*/
//}}}
<html><h2>
Verschlüsseln mit bcrypt<br>
</h2>
<p>
Besonders sensible Daten, die Sie dennoch auf Ihrer Festplatte in schnellem Zugriff brauchen, sollten Sie mit bcrypt verschlüsseln (bcrypt ist seit Puppy 4.0 nicht mehr als Programm enthalten. Suchen Sie am besten im Forum <a href="http://www.murga-linux.com/puppy/" title="http://www.murga-linux.com/puppy/">http://www.murga-linux.com/puppy/</a> nach dem Programm). Bcrypt verwendet den Blowfish-Algorythmus und ist bislang nicht entschlüsselbar.
</p>
<p>
Öffnen Sie eine Konsole und geben Sie folgenden Befehl ein:
</p>
<p>
bcrypt /MeinPfad/MeineDatei
</p>
<p>
Das Programm verlangt dann die Eingabe eines mindestens 8-stelligen Passworts (Sie können bcrypt an dieser Stelle mit der Tastenkombination "Strg" + "C" abbrechen). Bcrypt verschlüsselt Ihre Datei, hängt die Dateiendung bfe an und löscht die Originaldatei.
</p>
<p>
Wenn Sie mehrere Dateien oder Ordner verschlüsseln möchten, erzeugen Sie zunächst eine Archiv-Datei. Starten Sie hierfür das Programm "Menu | Utilities | Xarchive archiver". Anschließend verschlüsseln Sie die Archiv-Datei.
</p>
<p>
Beachten Sie, dass Bcrypt die Originaldatei automatisch löscht und den Speicherbereich dreimal überschreibt. Ein Wiederherstellen der Originaldatei ist dadurch so gut wie ausgeschlossen. Falls Sie nicht wollen, dass die Originaldatei gelöscht wird, rufen Sie bcrypt mit der Option -r auf:
</p>
<p>
bcrypt -r /MeinPfad/MeineDatei
</p>
<p>
Um eine verschlüsselte Datei wieder zu entschlüsseln, geben Sie erneut den Befehl ein:
</p>
<p>
bcrypt /MeinPfad/MeineVerschlüsselteDatei
</p>
<p>
Anschließend werden Sie nach dem Passwort gefragt.
</p>
<p>
Weitere Informationen zu bcrypt:
</p>
<p>
<a href="http://bcrypt.sourceforge.net" target="_blank">Homepage bcrypt</a></p></html>
Source: [[Verschlüsseln mit bcrypt : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/verschluesseln-mit-bcrypt]]
<html><h2>
Virenscanner<br>
</h2>
<p>
Normalerweise ist ein Virenscanner unter Linux überflüssig, da die Virenscanner nach Windows-Viren suchen. Aber es kann interessant sein, Dateien, die man mit Windows-PCs austauscht, zu überprüfen oder ein Windows-System nach Viren zu durchsuchen. Zu diesem Zweck können Sie den Virenscanner F-Prot installieren (suchen Sie im Forum nach <a href="http://www.murga-linux.com/puppy/viewtopic.php?search_id=1279878360&t=10059" target="_blank">F-Prot 4.6.6</a>). Laden Sie das Programm herunter und installieren Sie es. Trennen Sie nicht die Internetverbindung. Öffnen Sie eine Konsole und starten Sie F-Prot mit dem Befehl
</p>
<p>
/usr/local/bin/xfprot-gtk
</p>
<p>
Aktualisieren Sie die Virenliste. Anschließend können Sie die Internetverbindung trennen. Mounten Sie Ihre Windows-Partition (mount /dev/hdax /mnt/hdax) und stellen Sie F-Prot wie folgt ein:
</p>
<p>
<img src="http://www.puppylinux.org/files/pic/b0770.jpg">
</p>
<p>
Path to scan: /mnt/hdax
</p>
<p>
Scan mode: Interactive
</p>
<p>
Report file: /root/xfprot.log
</p>
<p>
Nach Beendigung des Virenscans finden Sie das Protokoll unter /root/xfprot.log.
</p>
<p>
Falls Sie auch andere Windows-PCs überprüfen wollen, können Sie eine neue Puppy-CD erstellen. Mit der neuen CD booten Sie den Windows-PC (Boot-Option puppy pfix=ram) und scannen den PC wie oben beschrieben.</p></html>
Source: [[Virenscanner : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/virenscanner]]
<html><h2>WLAN </h2>
<p>
Um ein WLAN einzurichten, gehen Sie wie folgt vor:
</p>
<p>
Starten Sie "Menu | Setup | Network Wizard"
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c042.jpg" class="image-ia image-_original"></span>
</p>
<p>
Wenn Ihr Interface automatisch erkannt wird, erscheint es im oberen Teil des Dialogs. Sie brauchen dann nur auf den Button "ethx" klicken.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c042a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Wenn Ihr Interface nicht automatisch erkannt wird, müssen Sie das jeweilige Modul erst laden. Klicken Sie dafür auf den Button "Load module".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c042b.jpg" class="image-ia image-_original"></span>
</p>
<p>
Wählen Sie mit einem Mausklick das korrekte Modul aus und drücken Sie auf den Button "Load".
</p>
<p>
<Bild fehlt noch>
</p>
<p>
Jetzt erscheint Ihr Interface im oberen Teil des Dialogs. Klicken Sie dann auf den Button "ethx".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c042a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Ein neuer Dialog erscheint. Jetzt müssen Sie das Interface konfigurieren. Drücken Sie auf den Button "Wireless".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c044a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Im nächsten Dialog drücken Sie auf den Button "Scan".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c045a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es erscheint eine Liste der Netzwerke. Wählen Sie Ihr Netzwerk aus und drücken Sie auf den Button "OK".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c046a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Drücken Sie auf einen der WEP/WPA-Button.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c047a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Geben Sie nun den WEP/WPA-Schlüssel in das Feld "Key" ein. Danach drücken Sie auf den Button "Use This Profile".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c048a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es erscheint ein Zwischendialog.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c049.jpg" class="image-ia image-_original" height="131" width="279"></span>
</p>
<p>
Drücken Sie nun auf den Button "Test ethx".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c050a.jpg" class="image-ia image-_original"></span>
</p>
<p>
Drücken Sie auf den Button "Auto DHCP", wenn ein DHCP-Server im Netzwerk eingebunden ist.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c050b.jpg" class="image-ia image-_original"></span>
</p>
<p>
Es erscheint ein Zwischendialog.
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c051.jpg" class="image-ia image-_original" height="71" width="461"></span>
</p>
<p>
Anschließend werden Sie gefragt, ob die Einstellungen gespeichert werden sollen. Wählen Sie "Yes".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c052a.jpg" class="image-ia image-_original" height="177" width="449"></span>
</p>
<p>
Zum Schluß drücken Sie auf den Button "Done".
</p>
<p>
<span class="inline inline-left"><img src="http://www.puppylinux.org/files/images/c050c.jpg" class="image-ia image-_original"></span></p></html>
Source: [[WLAN : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/internetzugang-einrichten/wlan]]
<html><h2>
Windows-Programme und das Puppy-Linux-Gegenstück<br>
</h2>
<table border="1">
<tbody><tr><th>Windows</th>
<th>Puppy-Linux</th>
</tr><tr>
<td>Windows Explorer</td>
<td>ROX</td>
</tr>
<tr>
<td>Word</td>
<td>Abiword, OpenOffice Write</td>
</tr>
<tr>
<td>Excel</td>
<td>Gnumeric, OpenOffice Calc</td>
</tr>
<tr>
<td>PowerPoint</td>
<td>OpenOffice Impress</td>
</tr>
<tr>
<td>Notepad</td>
<td>Editor Geany</td>
</tr>
<tr>
<td>Internet Explorer</td>
<td>SeaMonkey Browser</td>
</tr>
<tr>
<td>Frontpage</td>
<td>Bluefish</td>
</tr>
<tr>
<td>Outlook</td>
<td>SeaMonkey Mail</td>
</tr>
<tr>
<td>Photoshop, Paintshop</td>
<td>Gimp</td>
</tr>
<tr>
<td>mp3-Player</td>
<td>Xmms</td>
</tr>
<tr>
<td>DVD-Player</td>
<td>Gxine</td></tr></tbody></table></html>
Source: [[Windows-Programme und das Puppy-Linux-Gegenstück : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/windows-programme-und-das-puppy-linux-gegenstueck]]
<html><h2>Zweckgebundene pup_save.2fs-Dateien </h2>
<p>
Sie können die Sicherheit weiter erhöhen, wenn Sie für unterschiedliche Einsatzzwecke (z.B. für Online-Banking, zum Testen neuer Software) verschiedene pup_save.2fs-Dateien verwenden.
</p>
<p>
Hierzu booten Sie von der Puppy Linux-CD mit der Boot-Option "puppy pfix=ram". Mounten Sie die Partition, die die pup_save.2fs-Datei enthält. Benennen Sie die pup_save.2fs-Datei in z.B. pup_save-Normal.2fs um. Beenden Sie nun Puppy Linux und erstellen Sie beim Herunterfahren eine neue pup_save.2fs-Datei.
</p>
<p>
Booten Sie erneut von der Puppy Linux-CD mit der Boot-Option "puppy pfix=ram". Mounten Sie wiederum die Partition, die die beiden pup_save.2fs-Dateien enthält. Benennen Sie die (zuvor erstellte) pup_save.2fs-Datei in z.B. pup_save-Bank.2fs um. Beenden Sie nun Puppy Linux ohne eine weitere pup_save.2fs-Datei zu erstellen.
</p>
<p>
Entnehmen Sie die CD. Nun starten Sie Puppy Linux neu. Beim Starten werden Sie gefragt, welche pup_save-Datei benutzt werden soll. Wählen Sie für ihre normale Arbeit pup_save-Normal.2fs aus, für Ihr Online-Banking pup_save-Bank.2fs (Hinweis: sie müssen noch die Internetverbindung konfigurieren).
</p>
<p>
Anmerkung: Am sichersten ist es natürlich, für das Online-Banking Puppy Linux ohne pup_save.2fs-Datei zu starten. Aber dann muß man jedes Mal die Internetverbindung konfigurieren und die Internetadresse der Bank manuell eingeben.</p></html>
Source: [[Zweckgebundene pup_save.2fs-Dateien : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/sicherheit/zweckgebundene-pupsave2fs-dateien]]
<html><h2>
pup_safe.2fs sichern<br>
</h2>
<p>
Die Datei pup_safe.2fs enthält die persönlichen Einstellungen und Ihre Daten, sofern letztere nicht auf einer anderen Partition (z.B. Festplatte, USB-Stick) gespeichert sind. Sie sollten deshalb regelmäßig eine Sicherungskopie der Datei erstellen.
</p>
<p>
Das Backup ist sehr einfach. Entweder starten Sie Puppy mit der Boot-Option "puppy pfix=ram" oder Sie starten Ihr bisheriges Betriebssystem (Windows). Kopieren Sie dann die Datei auf das Sicherungsmedium (z.B. andere Festplatte, USB-Stick, CD-ROM).</p></html>
Source: [[pup_safe.2fs sichern : Puppy Linux|http://www.puppylinux.org/manuals/puppy-40/deutsch/backup-sicherungskopie-erstellen/pupsafe2fs-sichern]]