driconf-0.9.1/0000755000175000017500000000000010503400007012132 5ustar felixfelixdriconf-0.9.1/de/0000755000175000017500000000000010503400007012522 5ustar felixfelixdriconf-0.9.1/de/LC_MESSAGES/0000755000175000017500000000000010503400007014307 5ustar felixfelixdriconf-0.9.1/de/LC_MESSAGES/driconf.mo0000644000175000017500000002214110503372452016304 0ustar felixfelixEDal& 9G W co~FfC:",2O/'5 " ? K       2 ,  0( Y "w  %     # B1 8t eK\-0^\L +3CV?\1{]r+   $)<&fS"LvG( ;47p(; " AM  (:+*B Q^>;E6!B*6 a)k*   SDr6o C!L!p!i"e# v####\#8$A$&*2$93% / 8)!?-+75B6>#';ADC 0, @"1=. (< 4E:%s on screen %s(no description)A configuration applet for DRI driversAbout DRIconfAdd ApplicationAdd settingApplicationApplication NameApplication PropertiesApplication settingsApply only to this executableCan't open "%s" for writing.Configuration file "%s" contains errors: %s I will leave the file alone until you fix the problem manually or remove the file.Configuration file "%s" contains errors: %s The file was not reloaded.Could not detect any configurable direct-rendering capable devices.Couldn't open "%s" for reading. The file was not reloaded.Create a new device or applicationCreated a new DRI configuration file "%s" for you.Created new DRI configuration files %s for you.DRIconf will be started in expert mode.Describe the device that you would like to configure.Device PropertiesDirect Rendering PreferencesDriver NameEnter the name of the application below. This just serves as a description for you. Don't forget to set the executable afterwards.Executable NameExit DRIconfExpert ModeKnown optionsLeave this disabled to configure all applications. Beware that some applications or games are just a shell script that starts a real executable with a different name.Move selected item downMove selected item upNew ApplicationNew DeviceNormalization of your DRI configuration file "%s" failed. Please report a bug with the original configuration file attached. The file will be treated as read-only for now.OptionParsing the driver's configuration information: %sProperties of selected device or applicationReally delete application "%s"?Really delete device and all applications in it?Really reload "%s" from disk?Reload selected configuration fileRemoveRemove selected device or applicationRename ApplicationReset to default valueSave selected configuration fileScreenScreen %sScreen NumberThe DRI configuration file "%s" is broken or could not be created.The configuration contains invalid entries. Save anyway?The driver for this device could not be determined or does not support configuration. You can still change the settings but it cannot be verified whether they are supported and valid.The executable name is important for identifying the application. If you get it wrong, your settings will not apply. Beware that some applications are started by a shell script, that has a different name than the real executable.There are errors in a driver's configuration information: %s This should not happen. It probably means that you have to update DRIconf.There are no usable DRI configuration files and a new one could not be created. Exiting now.There are unsaved modifications. Exit anyway?There exists an application configuration for the same executable. You can't create multiple application configurations for the same executable.There exists an application configuration with the same name. Please enter a different name.This tab shows settings that are no longer supported by the 3D driver. Unless you're using the same configuration file on another computer with a different driver version, it is safe to remove these settings.Translated byUnknownUnknown optionsUnspecified deviceValueYou must enter both an application name and an executable name.Your DRI configuration file "%s" is not writable.translator-creditsProject-Id-Version: driconf Report-Msgid-Bugs-To: POT-Creation-Date: 2006-09-17 21:00-0400 PO-Revision-Date: 2006-09-17 21:19-0400 Last-Translator: Felix Kuehling Language-Team: German MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 Plural-Forms: nplurals=2; plural=(n != 1); %s auf Bildschirm %s(keine Beschreibung)Ein Konfigurationswerkzeug für DRI-TreiberÜber DRIconfAnwendung HinzufügenEinstellung hinzufügenAnwendungName der AnwendungAnwendungseigenschaftenAnwendungseinstellungenNur auf diese ausführbare Datei anwendenKann "%s" nicht zum Schreiben öffnen.Die Konfigurationsdatei "%s" ist fehlerhaft: %s Ich werde die Datei ignorieren, bis Sie das Problem von Hand behoben oder die Datei gelöscht haben.Die Konfigurationsdatei "%s" enthält Fehler: %s Die Datei wurde nicht neu geladen.Es wurden keine konfigurierbaren, direct-rendering-fähigen Geräte erkannt.Konnte "%s" nicht zum Lesen öffnen. Die Datei wurde nicht neu geladen.Neues Gerät oder neue Anwendung anlegenEine neue Konfigurationsdatei "%s" wurde für Sie angelegt.Neue Konfigurationsdateien %s wurden für Sie angelegt.DRIconf wird im Expertenmodus gestartet.Beschreiben Sie das Gerät, das Sie konfigurieren möchten.GeräteeigenschaftenDirect Rendering EinstellungenTreibernameGeben Sie unten den Namen der Anwendung ein. Dieser dient nur für Sie als Beschreibung. Denken Sie anschließend daran, das ausführbare Programm festzulegen.Name der ausführbaren DateiDRIconf beendenExpertenmodusBekannte OptionenWenn deaktiviert, werden alle Anwendungen konfiguriert. Beachten Sie, dass einige Anwendungen oder Spiele nur Shellskripte sind, die ein anderes ausführbares Programm starten.Verschiebe ausgewählten Eintrag nach untenVerschiebe ausgewählten Eintrag nach obenNeue AnwendungNeues GerätDie Normalisierung Ihrer DRI Konfigurationsdatei "%s" ist fehlgeschlagen. Bitte schicken sie einen Fehlerbericht einschließlich der originalen Konfigurationsdatei ab. Die Datei wird solange als schreibgeschützt behandelt.OptionBeim verarbeiten der Treiberkonfigurationsinformationen: %sEigenschaften des/der ausgewählten Gerätes/AnwendungAnwendung "%s" wirklich löschen?Dieses Gerät mit allen enthaltenen Anwendungen wirklich löschen?"%s" wirklich neu laden?Ausgewählte Konfigurationsdatei neu ladenEntfernenAusgewählte(s) Gerät/Anwendung löschenAnwendung umbenennenAuf Standardwert zurücksetzenAusgewählte Konfigurationsdatei speichernBildschirmBildschirm %sBildschirmnummerDie DRI Konfigurationsdatei "%s" ist beschädigt oder konnte nicht angelegt werden.Die Konfiguration enthält ungültige Einträge. Trotzdem speichern?Der Treiber für dieses Gerät konnte nicht bestimmt werden oder ist nicht konfigurierbar. Sie können die Einstellungen trotzdem bearbeiten. Es kann jedoch nicht überprüft werden, ob sie vom Treiber unterstützt werden und zulässig sind.Der Name der ausführbaren Datei ist wichtig zur Erkennung der Anwendung. Wenn Sie hier einen Fehler machen, werden Ihre Einstellungen von der Anwendung nicht berücksichtigt. Beachten Sie, dass einige Anwendungen von einem Shellskript gestartet werden, das einen anderen Namen hat, als die ausführbare Datei.Die Konfigurationsinformation eines Treibers ist fehlerhaft: %s Das dürfte nicht passieren. Wahrscheinlich müssen Sie DRIconf aktualisieren.Es existieren keine brauchbaren DRI Konfigurationsdateien und es konnte keine neue Konfigurationsdatei angelegt werden. Das Programm wird jetzt beendet.Einige Änderungen wurden noch nicht gespeichert. Trotzdem beenden?Es existiert bereits eine Anwendungskonfiguration für die selbe ausführbare Datei. Sie können nicht mehrere Konfigurationen für die selbe ausführbare Datei erstellen.Es existiert bereits eine Anwendungskonfiguration mit dem selben Namen. Bitte geben Sie einen anderen Namen ein.Dieser Reiter enthält Einstellungen, die vom 3D-Treiber nicht mehr unterstützt werden. Sie können diese ohne Bedenken entfernen, es sei denn, die selbe Konfigurationsdatei wird auf einem weiteren Computer mit einer anderen Treiberversion verwendet.Übersetzung vonUnbekanntUnbekannte OptionenBeliebiges GerätWertSie müssen sowohl einen Anwendungsnamen als auch den Namen der ausführbaren Datei angeben.Ihre DRI Konfigurationsdatei "%s" ist schreibgeschützt.Felix Kühling driconf-0.9.1/es/0000755000175000017500000000000010503400007012541 5ustar felixfelixdriconf-0.9.1/es/LC_MESSAGES/0000755000175000017500000000000010503400007014326 5ustar felixfelixdriconf-0.9.1/es/LC_MESSAGES/driconf.mo0000644000175000017500000001261710503372452016332 0ustar felixfelix-=  -K~hF:."i2/5% 7C z 2,*0J{"%   8. g  -           &- T Q ?3(s@;4Ni!24FX@`68M7_200 BNHb\6 - ;Gc%i&!),'"  %#$*( +  -%s on screen %s(no description)About DRIconfApplicationApplication NameApply only to this executableCan't open "%s" for writing.Configuration file "%s" contains errors: %s I will leave the file alone until you fix the problem manually or remove the file.Configuration file "%s" contains errors: %s The file was not reloaded.Couldn't open "%s" for reading. The file was not reloaded.Create a new device or applicationCreated a new DRI configuration file "%s" for you.Created new DRI configuration files %s for you.Describe the device that you would like to configure.Device PropertiesDriver NameEnter the name of the application below. This just serves as a description for you. Don't forget to set the executable afterwards.Exit DRIconfLeave this disabled to configure all applications. Beware that some applications or games are just a shell script that starts a real executable with a different name.Move selected item downMove selected item upNew ApplicationNew DeviceOptionParsing the driver's configuration information: %sProperties of selected device or applicationReally delete application "%s"?Really delete device and all applications in it?Really reload "%s" from disk?Reload selected configuration fileRemove selected device or applicationRename ApplicationSave selected configuration fileScreen %sScreen NumberThe configuration contains invalid entries. Save anyway?The driver for this device could not be determined or does not support configuration. You can still change the settings but it cannot be verified whether they are supported and valid.There are errors in a driver's configuration information: %s This should not happen. It probably means that you have to update DRIconf.There are unsaved modifications. Exit anyway?Translated byUnknownUnspecified deviceValuetranslator-creditsProject-Id-Version: es Report-Msgid-Bugs-To: POT-Creation-Date: 2006-09-17 21:00-0400 PO-Revision-Date: 2006-09-17 21:05-0400 Last-Translator: David Rubio Miguélez Language-Team: Spanish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.10 %s en la pantalla %s(sin descripción)Acerca de DRIconfAplicaciónNombre de la AplicaciónAplicar sólo a este ejecutableNo se puede abrir "%s" para escritura.El archivo de configuración "%s" contiene errores: %s Dejaré el archivo intacto hasta que usted lo corrija manualmente o borre el archivo.El archivo de configuración "%s" contiene errores: %s El archivo no se recargó.No se puede abrir "%s" para lectura. El archivo no se recargó.Crear un nuevo dispositivo o aplicaciónCreado un nuevo archivo de configuración de DRI "%s" por usted.Creados nuevos archivos de configuración DRI %s por usted.Describa el dispositivo que le gustaría configurar.Propiedades de DispositivoNombre del ControladorIntroduzca el nombre de la aplicación a continuación. Esto sirve únicamente como una descripción para usted. No se olvide de poner el ejecutable más tarde.Salir de DRIconfDeje esto desactivado para configurar todas las aplicaciones. Tenga en cuenta que algunas aplicaciones o juegos son simplemente un script de consola que lanzan un ejecutable real con otro nombre.Bajar el elemento seleccionadoSubir el elemento seleccionadoNueva AplicaciónNuevo DispositivoOpciónAnalizando la información de configuración del controlador: %sPropiedades del dispositivo o aplicación seleccionado¿Está seguro de que quiere borrar la aplicación "%s"?¿Está seguro de que quiere borrar el dispositivo y las aplicaciones en él?¿Está seguro de que quiere recargar "%s" desde disco?Recargar el archivo de configuración seleccionadoBorrar el dispositivo o aplicación seleccionadoRenombrar AplicaciónSalvar el archivo de configuración seleccionadoPantalla %sNúmero de PantallaLa configuración contiene entradas inválidas. ¿Salvar de todos modos?El controlador para este dispositivo no se puede determinar o no soporta configuración. Aún puede cambiar las opciones pero no puede verificarse si son soportadas y válidas.Hay errores en una información de configuración del controlador: %s Esto no debería ocurrir. Probablemente significa que tiene que actualizar DRIconf.Hay modificaciones sin salvar. ¿Salir de todos modos?Traducido porDesconocidoDispositivo sin especificarValorDavid Rubio Miguélez driconf-0.9.1/it/0000755000175000017500000000000010503400007012546 5ustar felixfelixdriconf-0.9.1/it/LC_MESSAGES/0000755000175000017500000000000010503400007014333 5ustar felixfelixdriconf-0.9.1/it/LC_MESSAGES/driconf.mo0000644000175000017500000001242210503372452016331 0ustar felixfelix+t;  ~0F:"12T/5   BZp 2,0C"a%  8! -a         $ % / R D ,e,'0 3n?" <:3-nB..3=q+ =)}  /' $ *+)!#   (% "&(no description)About DRIconfApplicationApplication NameApply only to this executableCan't open "%s" for writing.Configuration file "%s" contains errors: %s I will leave the file alone until you fix the problem manually or remove the file.Configuration file "%s" contains errors: %s The file was not reloaded.Couldn't open "%s" for reading. The file was not reloaded.Create a new device or applicationCreated a new DRI configuration file "%s" for you.Created new DRI configuration files %s for you.Describe the device that you would like to configure.Device PropertiesDriver NameEnter the name of the application below. This just serves as a description for you. Don't forget to set the executable afterwards.Exit DRIconfLeave this disabled to configure all applications. Beware that some applications or games are just a shell script that starts a real executable with a different name.Move selected item downMove selected item upNew ApplicationNew DeviceOptionParsing the driver's configuration information: %sProperties of selected device or applicationReally delete application "%s"?Really delete device and all applications in it?Really reload "%s" from disk?Reload selected configuration fileRemove selected device or applicationRename ApplicationSave selected configuration fileScreen %sThe configuration contains invalid entries. Save anyway?The driver for this device could not be determined or does not support configuration. You can still change the settings but it cannot be verified whether they are supported and valid.There are errors in a driver's configuration information: %s This should not happen. It probably means that you have to update DRIconf.There are unsaved modifications. Exit anyway?Translated byUnknownUnspecified deviceValuetranslator-creditsProject-Id-Version: it Report-Msgid-Bugs-To: POT-Creation-Date: 2006-09-17 21:00-0400 PO-Revision-Date: 2006-09-17 21:07-0400 Last-Translator: Giampaolo Bozzali Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.10 X-Poedit-Language: Italian X-Poedit-Country: ITALY (nessuna descrizione)Informazioni su DRIconfApplicazioneNome dell'applicazioneApplicabile solo a questo eseguibileImpossibile aprire "%s" in scrittura.Il file di configurazione "%s" contiene degli errori: %s Il file non verrà considerato finchè il problema non sarà risolto a mano o il file sarà rimosso.Il file di configurazione "%s" contiene errori: %s Il file non è stato ricaricatoImpossibile aprire "%s" in lettura. Il file non è stato ricaricato.Crea un nuovo dispositivo o una applicazioneCreato un nuovo file di configurazione "%s".Creati nuovi file di configurazione %s.Descrive il dispositivo che intendi configurare.Proprieta' del DispositivoNome DriverInserisci qui il nome dell'applicazione. E' solamente una descrizione. Ricorda di impostare l'eseguibile dopo.Esci da DRIconfLasciare questo disattivato per configurare tutte le applicazioni. Ricorda che alcune applicazioni o giochi sono semplicemente uno shell script che avviano l'eseguibile reale con un nome differente.Sposta giù l'elemento selezionatoSposta su l'elemento selezionatoNuova ApplicazioneNuovo DispositivoOpzioniAnalizzo le informazioni sulla configurazione del driver: %sProprietà del dispositivo selezionato o dell'applicazioneConfermi la rimozione dell'applicazione "%s"?Confermi la rimozione del dispositivo e tutte le sue applicazioni?Sei sicuro di voler ricaricare "%s" dal disco?Ricarica il file di configurazione selezionatoRimuovi il dispositivo selezionato o l'applicazioneRinomina ApplicazioneSalva il file di configurazione selezionatoScreen %sLa configurazione contiene voci non valide. Salvare comunque?Non è possibile determinare il driver di questa periferica oppure il driver non permette configurazioni. E' possibile comunque modificare le impostazioni ma non è possibile verificare se siano supportate e se siano valide.Ci sono degli errori nelle informazioni sulla configurazione di un driver: %s Questo non dovrebbe accadere. Probabilmente significa che devi aggiornare DRIconf.Ci sono delle modifiche. Uscire comunque?Tradotto daSconosciutoDispositivo non specificatoValoreGiampaolo Bozzali driconf-0.9.1/nl/0000755000175000017500000000000010503400007012543 5ustar felixfelixdriconf-0.9.1/nl/LC_MESSAGES/0000755000175000017500000000000010503400007014330 5ustar felixfelixdriconf-0.9.1/nl/LC_MESSAGES/driconf.mo0000644000175000017500000002171310503372452016331 0ustar felixfelixEDal& 9G W co~FfC:",2O/'5 " ? K       2 ,  0( Y "w  %     # B1 8t eK\-0^\L +3CV?\1lN^1r  -+YwN4H:}&:;%V|" *( @5$.ZH . "/.^s(  I8#\=N. > ]!! """"#W#1n#*#&*2$93% / 8)!?-+75B6>#';ADC 0, @"1=. (< 4E:%s on screen %s(no description)A configuration applet for DRI driversAbout DRIconfAdd ApplicationAdd settingApplicationApplication NameApplication PropertiesApplication settingsApply only to this executableCan't open "%s" for writing.Configuration file "%s" contains errors: %s I will leave the file alone until you fix the problem manually or remove the file.Configuration file "%s" contains errors: %s The file was not reloaded.Could not detect any configurable direct-rendering capable devices.Couldn't open "%s" for reading. The file was not reloaded.Create a new device or applicationCreated a new DRI configuration file "%s" for you.Created new DRI configuration files %s for you.DRIconf will be started in expert mode.Describe the device that you would like to configure.Device PropertiesDirect Rendering PreferencesDriver NameEnter the name of the application below. This just serves as a description for you. Don't forget to set the executable afterwards.Executable NameExit DRIconfExpert ModeKnown optionsLeave this disabled to configure all applications. Beware that some applications or games are just a shell script that starts a real executable with a different name.Move selected item downMove selected item upNew ApplicationNew DeviceNormalization of your DRI configuration file "%s" failed. Please report a bug with the original configuration file attached. The file will be treated as read-only for now.OptionParsing the driver's configuration information: %sProperties of selected device or applicationReally delete application "%s"?Really delete device and all applications in it?Really reload "%s" from disk?Reload selected configuration fileRemoveRemove selected device or applicationRename ApplicationReset to default valueSave selected configuration fileScreenScreen %sScreen NumberThe DRI configuration file "%s" is broken or could not be created.The configuration contains invalid entries. Save anyway?The driver for this device could not be determined or does not support configuration. You can still change the settings but it cannot be verified whether they are supported and valid.The executable name is important for identifying the application. If you get it wrong, your settings will not apply. Beware that some applications are started by a shell script, that has a different name than the real executable.There are errors in a driver's configuration information: %s This should not happen. It probably means that you have to update DRIconf.There are no usable DRI configuration files and a new one could not be created. Exiting now.There are unsaved modifications. Exit anyway?There exists an application configuration for the same executable. You can't create multiple application configurations for the same executable.There exists an application configuration with the same name. Please enter a different name.This tab shows settings that are no longer supported by the 3D driver. Unless you're using the same configuration file on another computer with a different driver version, it is safe to remove these settings.Translated byUnknownUnknown optionsUnspecified deviceValueYou must enter both an application name and an executable name.Your DRI configuration file "%s" is not writable.translator-creditsProject-Id-Version: driconfr 0.9.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2006-09-17 21:00-0400 PO-Revision-Date: 2006-09-17 21:09-0400 Last-Translator: Benno Schulenberg Language-Team: Dutch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.4 %s op scherm %s(geen omschrijving)Configuratiegereedschap voor DRI-stuurprogramma'sOver DRIconfApplicatie toevoegenInstelling toevoegenApplicatieNaam van applicatieApplicatie-eigenschappenApplicatie-instellingenAlleen op dit uitvoerbare programma toepassenKan niet naar "%s" schrijven.Het configuratiebestand "%s" bevat fouten: %s Het bestand wordt genegeerd totdat u de fouten repareert of het bestand verwijdert.Configuratiebestand "%s" bevat fouten: %s Het bestand is niet opnieuw geladen.Er zijn geen configureerbare DRI-apparaten gevonden.Kan "%s" niet lezen. Het bestand is niet opnieuw geladen.Nieuw apparaat of applicatie toevoegenEen nieuw configuratiebestand "%s" werd voor u aangemaakt.Nieuwe configuratiebestanden "%s" werden voor u aangemaakt.DRIconf wordt in expertmodus gestart.Het te configureren apparaat.ApparaateigenschappenInstellingen voor Direct RenderingStuurprogrammanaamGeef hieronder een naam voor de applicatie op. Dit dient slechts als een omschrijving voor uzelf. Vergeet niet verderop de naam van het uitvoerbare programma vast te leggen.Naam van uitvoerbare programmaDRIconf afsluitenExpertmodusBekende optiesAls dit uitstaat, gelden de instellingen voor alle applicaties. Wees erop bedacht dat sommige applicaties slechts een shellscript zijn en dat het uiteindelijk gestarte programma een andere naam heeft.Geselecteerd item naar beneden verplaatsenGeselecteerd item naar boven verplaatsenNieuwe applicatieNieuw apparaatNormalisering van DRI-configuratiebestand "%s" is mislukt. Stuur alstublieft een foutrapportage op inclusief het configuratiebestand. Dit bestand wordt zolang als alleen-lezen behandeld.OptieTijdens het ontleden van stuurprogramma-configuratiegegevens: %sEigenschappen van geselecteerd apparaat of applicatieConfiguratie voor applicatie "%s" echt wissen?Dit apparaat en alle bijbehorende configuratiegegevens echt verwijderen?Bestand "%s" echt opnieuw laden?Geselecteerd configuratiebestand opnieuw ladenVerwijderenGeselecteerd apparaat of applicatie verwijderenApplicatie hernoemenOp standaardwaarde terugzettenGeselecteerd configuratiebestand opslaanSchermScherm %sSchermnummerDRI-configuratiebestand "%s" is beschadigd of kan niet aangemaakt worden.De configuratie bevat ongeldige gegevens. Toch opslaan?Het stuurprogramma voor dit apparaat kan niet bepaald worden of is niet configureerbaar. U kunt desondanks de instellingen bewerken, maar het is niet mogelijk te controleren of het stuurprogramma ze ondersteunt en of de waardes geldig zijn.De naam van het uitvoerbare programma is belangrijk voor het herkennen van de applicatie. Als u een verkeerde naam opgeeft, worden uw applicatie-instellingen niet toegepast. Wees erop bedacht dat sommige applicaties door een script gestart worden en dat het uiteindelijk uitgevoerde programma een andere naam heeft.Er zitten fouten in de configuratiegegevens van een stuurprogramma: %s Dit zou niet mogen gebeuren. Waarschijnlijk hebt u een nieuwere versie van DRIconf nodig.Er zijn geen bruikbare DRI-configuratiebestanden gevonden, en een nieuw bestand kon niet aangemaakt worden. Het programma wordt nu afgesloten.Sommige wijzigingen zijn nog niet opgeslagen. Toch afsluiten?Er bestaat al een applicatieconfiguratie voor dat programma. U kunt niet meerdere configuraties voor hetzelfde programma aanmaken.Er bestaat al een applicatieconfiguratie met deze naam. Geef alstublieft een andere naam op.Deze tab toont instellingen die het 3D-stuurprogramma niet langer kent. U kunt deze instellingen simpelweg verwijderen, tenzij u ditzelfde configuratiebestand op een andere computer met een andere versie van het stuurprogramma gebruikt.Vertaald doorOnbekendOnbekende optiesOngespecificeerd apparaatWaardeU dient zowel een applicatienaam als de naam van het uitvoerbare programma op te geven.DRI-configuratiebestand "%s" is niet schrijfbaar.Benno Schulenberg driconf-0.9.1/ru/0000755000175000017500000000000010503400007012560 5ustar felixfelixdriconf-0.9.1/ru/LC_MESSAGES/0000755000175000017500000000000010503400007014345 5ustar felixfelixdriconf-0.9.1/ru/LC_MESSAGES/driconf.mo0000644000175000017500000002424010503372452016344 0ustar felixfelix<S()9 J X dp~F;C:"2$/W'5         2 , 1 0Q  "  %    ; E 8S D * \ -=\+  %?+k~ " <#Gk%~D6 6nl1HTX<CY3D[j*h%JA8Cz \ VfQBI%R4/=G =Kuc!^ "f#_$'u$%U)&''+'''.q(2.87/(6% 9 &1" :+-0'!45  $3;,*<#)%s on screen %s(no description)About DRIconfAdd settingApplicationApplication NameApply only to this executableCan't open "%s" for writing.Configuration file "%s" contains errors: %s I will leave the file alone until you fix the problem manually or remove the file.Configuration file "%s" contains errors: %s The file was not reloaded.Could not detect any configurable direct-rendering capable devices.Couldn't open "%s" for reading. The file was not reloaded.Create a new device or applicationCreated a new DRI configuration file "%s" for you.Created new DRI configuration files %s for you.DRIconf will be started in expert mode.Describe the device that you would like to configure.Device PropertiesDirect Rendering PreferencesDriver NameEnter the name of the application below. This just serves as a description for you. Don't forget to set the executable afterwards.Executable NameExit DRIconfExpert ModeKnown optionsLeave this disabled to configure all applications. Beware that some applications or games are just a shell script that starts a real executable with a different name.Move selected item downMove selected item upNew ApplicationNew DeviceOptionParsing the driver's configuration information: %sProperties of selected device or applicationReally delete application "%s"?Really delete device and all applications in it?Really reload "%s" from disk?Reload selected configuration fileRemoveRemove selected device or applicationRename ApplicationReset to default valueSave selected configuration fileScreen %sScreen NumberThe configuration contains invalid entries. Save anyway?The driver for this device could not be determined or does not support configuration. You can still change the settings but it cannot be verified whether they are supported and valid.The executable name is important for identifying the application. If you get it wrong, your settings will not apply. Beware that some applications are started by a shell script, that has a different name than the real executable.There are errors in a driver's configuration information: %s This should not happen. It probably means that you have to update DRIconf.There are no usable DRI configuration files and a new one could not be created. Exiting now.There are unsaved modifications. Exit anyway?There exists an application configuration for the same executable. You can't create multiple application configurations for the same executable.There exists an application configuration with the same name. Please enter a different name.This tab shows settings that are no longer supported by the 3D driver. Unless you're using the same configuration file on another computer with a different driver version, it is safe to remove these settings.Translated byUnknownUnspecified deviceValueYou must enter both an application name and an executable name.translator-creditsProject-Id-Version: driconf Report-Msgid-Bugs-To: POT-Creation-Date: 2006-09-17 21:00-0400 PO-Revision-Date: 2006-09-17 21:17-0400 Last-Translator: Konstantin A. Lepikhov Language-Team: Russian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 Plural-Forms: nplurals=2; plural=(n != 1); %s на экране %s(нет описания)О DRIconfДобавить настройкиПрограммаНазвание приложенияПрименить только для заданного файлаНе могу открыть "%s" для записи.Файл конфигурации "%s" содержит ошибки: %s Программа не будет его использовать до тех пор, пока ошибки не будут исправлены вручную, либо файл будет удален.Файл конфигурации "%s" содержит ошибки: %s Этот файл не будет перечитан заново.Невозможно определить ни одного DRI-совместимого устройства.Не могу открыть "%s" для чтения. Файл не был перечитан заново.Создать новое устройство или программуДля Вас был создан новый файл конфигурации "%s".Для Вас были созданы новые файлы конфигурации %s.DRIconf будет запущен в режиме эксперта.Опишите устройство, которое вы хотите настроить.СвойстваНастройки DRIДрайверВведите название приложения. Это название будет кратким описанием приложения. Не забудьте указать название файла для запуска приложения.Имя исполняемого файлаВыход из DRIconfРежим экспертаИзвестные параметрыОставить отключенным для конфигурации всех приложений. Внимание! Некоторые приложения или игры являются просто shell скриптами, которые запускают другое приложение с другим именем.Переместить выбранный элемент внизПереместить выбранный элемент вверхНовое приложениеНовое устройствоОпцияОбрабатываю информацию о конфигурации драйвера: %sСвойства выбранного устройства или приложенияДействительно хотите удалить приложение "%s"?Действительно хотите удалить устройство и все связанные с ним приложения?Действительно хотите перечитать "%s"?Перечитать выбранный файл конфигурацииУдалитьУдалить выбранное устройство или приложениеПереименовать приложениеПрименить настройки по-умолчаниюСохранить выбранный файл конфигурацииЭкран %sНомер ЭкранаЭта конфигурация содержит неверные данные. Все равно сохранить?Драйвер для этого устройства не может быть определен или не поддерживает возможности конфигурирования. Вы все равно сможете изменить настройки, но нет гарантии, что они будут правильными и будут поддерживаться.Имя исполняемого файла приложения идентифицирует все связанные с ним настройки конфигурации приложения. Если вы неправильно его укажете, то конфигурация не будет работать. Обратите внимание, что некоторые приложения вызываются из shell скриптов, имеющих другое имя, отличное от исполняемого файла.Возникли ошибки при чтении конфигурации драйвера: %s Это может нарушить работу программы. Возможно, Вам следует обновить DRIconf.Невозмжно создать и прочитать файлы с конфигурацией DRI. Аварийное завершение работы программы.У Вас есть несохраненные изменения. Все равно выйти?Конфигурация приложения с таким исполняемым файлом уже существует. Вы не можете создать конфигурации с разными названиями и с одним и тем же исполняемым файлом.Конфигурация приложения с таким именем уже существует. Выберите другое имя.Эта вкладка отображает настройки, которые больше не поддерживаются 3D драйвером. Лучше удалить эти настройки, если вы не пользуетесь другой версией драйвера и тем же файлом конфигурации.ПереводчикиНеизвестныеНеизвестное устройствоЗначениеВы должны указать название приложения и связанный с ним исполняемый файлKonstantin A. Lepikhov driconf-0.9.1/TODO0000644000175000017500000000203710366320731012640 0ustar felixfelixo = todo X = done ? = maybe I = in progress X Use different widgets for different option types and valid ranges X Handle invalid configuration files read from disk X Reset individual options to their default value X Handle invalid option values in configuration files read from disk X Handle xdriinfo and driver problems gracefully X Reload configuration files X Port to gtk-2 (driconf versions 0.2.x) X Make the user interface more intuitive (The new user interface in version 0.9.x is probably as intuitive as it's ever going to get.) I Internationalize the user interface (The basics are done, all that's needed now is more translations.) o Add a database of known OpenGL applications that can be picked from a menu instead of forcing all users to find out the right executable name themselves. ? Drag and drop in the configuration tree, allowing to move device and application configurations between configuration files and application configurations between devices. (As of version 0.9.x the old user interface has a low priority.) driconf-0.9.1/Makefile0000644000175000017500000000422410503367223013610 0ustar felixfelix# Convenient makefile for managing translations. # Prerequisites: # - pygettext from the python distribution # - GNU gettext # How to use this: # To start working on a new translation edit the POS=... line # below. If you want to add for example a french translation, add # fr.po. # Then run "make po" to generate fresh .po files from translatable # strings in driconf.py. Now you can edit the new .po file (fr.po in # the example above) to translate the strings. Please make sure that # your editor encodes the file in UTF-8. # Finally run "make" to generate a new binary file for gettext. It # will be stored in /LC_MESSAGES/driconf.mo. You can test the # new translation by running ./driconf in the current directory # without reinstalling DRIconf all the time. Of course you need to # have the correct locale setting in order to see your translation. # To get your new translation into the next release of DRIconf please # send me your .po file. # More information: # - info gettext # - documentation of the gettext python package # The set of supported languages. Add languages as needed. POS=de.po es.po it.po ru.po nl.po # # Don't change anything below, unless you know what you're doing. # PYS=driconf.py driconf_commonui.py driconf_complexui.py driconf_simpleui.py LANGS=$(POS:%.po=%) MOS=$(POS:%.po=%/LC_MESSAGES/driconf.mo) POT=driconf.pot .PHONY: all pot po mo # Default target. Use this to update your .mo files from the .po files. all: mo mo: @for mo in $(MOS); do \ lang=$${mo%%/*}; \ echo "Updating $$mo from $$lang.po."; \ mkdir -p $${mo%/*}; \ msgfmt -o $$mo $$lang.po; \ done # Use this target to create or update .po files with new messages in # driconf.py. po: $(POS) pot: $(POT) # Extract message catalog from driconf.py. $(POT): $(PYS) xgettext -L python --from-code utf-8 -o $(POT) $(PYS) # Create or update a .po file for a specific language. %.po: $(POT) @if [ -f $@ ]; then \ echo "Merging new strings from $(POT) into $@."; \ mv $@ $@~; \ msgmerge -o $@ $@~ $(POT); \ else \ echo "Initializing $@ from $(POT)."; \ msginit -i $(POT) -o $@~ --locale=$*; \ sed -e 's/charset=.*\\n/charset=UTF-8\\n/' $@~ > $@; \ fi driconf-0.9.1/de.po0000644000175000017500000002717210503372073013106 0ustar felixfelix# German translations for driconf package # German messages for driconf. # Copyright (C) 2005 Felix Kuehling # Felix Kuehling , 2005. # msgid "" msgstr "" "Project-Id-Version: driconf\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-17 21:00-0400\n" "PO-Revision-Date: 2006-09-17 21:19-0400\n" "Last-Translator: Felix Kuehling \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: driconf.py:62 #, python-format msgid "" "There are errors in a driver's configuration information:\n" "%s\n" "This should not happen. It probably means that you have to update DRIconf." msgstr "" "Die Konfigurationsinformation eines Treibers ist fehlerhaft:\n" "%s\n" "Das dürfte nicht passieren. Wahrscheinlich müssen Sie DRIconf aktualisieren." #: driconf.py:75 msgid "Could not detect any configurable direct-rendering capable devices." msgstr "" "Es wurden keine konfigurierbaren, direct-rendering-fähigen Geräte erkannt." #: driconf.py:76 driconf_simpleui.py:839 driconf_simpleui.py:850 #: driconf_simpleui.py:863 msgid "DRIconf will be started in expert mode." msgstr "DRIconf wird im Expertenmodus gestartet." #: driconf.py:114 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "I will leave the file alone until you fix the problem manually or remove the " "file." msgstr "" "Die Konfigurationsdatei \"%s\" ist fehlerhaft:\n" "%s\n" "Ich werde die Datei ignorieren, bis Sie das Problem von Hand behoben oder " "die Datei gelöscht haben." #: driconf.py:132 msgid "" "There are no usable DRI configuration files and a new one could not be " "created. Exiting now." msgstr "" "Es existieren keine brauchbaren DRI Konfigurationsdateien und es konnte " "keine neue Konfigurationsdatei angelegt werden. Das Programm wird jetzt " "beendet." #: driconf.py:148 #, python-format msgid "Created a new DRI configuration file \"%s\" for you." msgstr "Eine neue Konfigurationsdatei \"%s\" wurde für Sie angelegt." #: driconf.py:156 #, python-format msgid "Created new DRI configuration files %s for you." msgstr "Neue Konfigurationsdateien %s wurden für Sie angelegt." #: driconf_commonui.py:319 msgid "Remove" msgstr "Entfernen" #: driconf_commonui.py:322 msgid "Reset to default value" msgstr "Auf Standardwert zurücksetzen" #: driconf_commonui.py:587 msgid "Option" msgstr "Option" #: driconf_commonui.py:592 msgid "Value" msgstr "Wert" #: driconf_commonui.py:671 msgid "" "This tab shows settings that are no longer supported by the 3D driver. " "Unless you're using the same configuration file on another computer with a " "different driver version, it is safe to remove these settings." msgstr "" "Dieser Reiter enthält Einstellungen, die vom 3D-Treiber nicht mehr " "unterstützt werden. Sie können diese ohne Bedenken entfernen, es sei denn, " "die selbe Konfigurationsdatei wird auf einem weiteren Computer mit einer " "anderen Treiberversion verwendet." #: driconf_commonui.py:676 msgid "" "The driver for this device could not be determined or does not support " "configuration. You can still change the settings but it cannot be verified " "whether they are supported and valid." msgstr "" "Der Treiber für dieses Gerät konnte nicht bestimmt werden oder ist nicht " "konfigurierbar. Sie können die Einstellungen trotzdem bearbeiten. Es kann " "jedoch nicht überprüft werden, ob sie vom Treiber unterstützt werden und " "zulässig sind." #: driconf_commonui.py:714 driconf_commonui.py:732 driconf_commonui.py:743 msgid "translator-credits" msgstr "Felix Kühling " #: driconf_commonui.py:721 driconf_commonui.py:740 msgid "A configuration applet for DRI drivers" msgstr "Ein Konfigurationswerkzeug für DRI-Treiber" #: driconf_commonui.py:742 msgid "Translated by" msgstr "Übersetzung von" #: driconf_commonui.py:748 driconf_complexui.py:871 msgid "About DRIconf" msgstr "Über DRIconf" #: driconf_complexui.py:39 msgid "Application" msgstr "Anwendung" #: driconf_complexui.py:46 msgid "Apply only to this executable" msgstr "Nur auf diese ausführbare Datei anwenden" #: driconf_complexui.py:49 msgid "" "Leave this disabled to configure all applications.\n" "Beware that some applications or games are just a shell script that starts a " "real executable with a different name." msgstr "" "Wenn deaktiviert, werden alle Anwendungen konfiguriert.\n" "Beachten Sie, dass einige Anwendungen oder Spiele nur Shellskripte sind, die " "ein anderes ausführbares Programm starten." #: driconf_complexui.py:73 msgid "Unknown" msgstr "Unbekannt" #: driconf_complexui.py:87 driconf_simpleui.py:571 msgid "(no description)" msgstr "(keine Beschreibung)" #: driconf_complexui.py:163 msgid "" "Enter the name of the application below. This just serves as a description " "for you. Don't forget to set the executable afterwards." msgstr "" "Geben Sie unten den Namen der Anwendung ein. Dieser dient nur für Sie als " "Beschreibung. Denken Sie anschließend daran, das ausführbare Programm " "festzulegen." #: driconf_complexui.py:170 driconf_simpleui.py:282 msgid "Application Name" msgstr "Name der Anwendung" #: driconf_complexui.py:205 msgid "Describe the device that you would like to configure." msgstr "Beschreiben Sie das Gerät, das Sie konfigurieren möchten." #: driconf_complexui.py:210 msgid "Screen Number" msgstr "Bildschirmnummer" #: driconf_complexui.py:221 msgid "Driver Name" msgstr "Treibername" #: driconf_complexui.py:344 #, python-format msgid "%s on screen %s" msgstr "%s auf Bildschirm %s" #: driconf_complexui.py:348 #, python-format msgid "Screen %s" msgstr "Bildschirm %s" #: driconf_complexui.py:354 msgid "Unspecified device" msgstr "Beliebiges Gerät" #: driconf_complexui.py:578 #, python-format msgid "Parsing the driver's configuration information: %s" msgstr "Beim verarbeiten der Treiberkonfigurationsinformationen: %s" #: driconf_complexui.py:616 #, python-format msgid "Really delete application \"%s\"?" msgstr "Anwendung \"%s\" wirklich löschen?" #: driconf_complexui.py:622 msgid "Really delete device and all applications in it?" msgstr "Dieses Gerät mit allen enthaltenen Anwendungen wirklich löschen?" #: driconf_complexui.py:643 msgid "Rename Application" msgstr "Anwendung umbenennen" #: driconf_complexui.py:646 msgid "Device Properties" msgstr "Geräteeigenschaften" #: driconf_complexui.py:653 msgid "New Application" msgstr "Neue Anwendung" #: driconf_complexui.py:656 msgid "New Device" msgstr "Neues Gerät" #: driconf_complexui.py:680 msgid "The configuration contains invalid entries. Save anyway?" msgstr "Die Konfiguration enthält ungültige Einträge. Trotzdem speichern?" #: driconf_complexui.py:691 driconf_simpleui.py:820 #, python-format msgid "Can't open \"%s\" for writing." msgstr "Kann \"%s\" nicht zum Schreiben öffnen." #: driconf_complexui.py:710 #, python-format msgid "Really reload \"%s\" from disk?" msgstr "\"%s\" wirklich neu laden?" #: driconf_complexui.py:721 #, python-format msgid "Couldn't open \"%s\" for reading. The file was not reloaded." msgstr "" "Konnte \"%s\" nicht zum Lesen öffnen. Die Datei wurde nicht neu geladen." #: driconf_complexui.py:733 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "The file was not reloaded." msgstr "" "Die Konfigurationsdatei \"%s\" enthält Fehler:\n" "%s\n" "Die Datei wurde nicht neu geladen." #: driconf_complexui.py:842 msgid "Save selected configuration file" msgstr "Ausgewählte Konfigurationsdatei speichern" #: driconf_complexui.py:845 msgid "Reload selected configuration file" msgstr "Ausgewählte Konfigurationsdatei neu laden" #: driconf_complexui.py:849 msgid "Create a new device or application" msgstr "Neues Gerät oder neue Anwendung anlegen" #: driconf_complexui.py:852 msgid "Remove selected device or application" msgstr "Ausgewählte(s) Gerät/Anwendung löschen" #: driconf_complexui.py:855 msgid "Move selected item up" msgstr "Verschiebe ausgewählten Eintrag nach oben" #: driconf_complexui.py:858 msgid "Move selected item down" msgstr "Verschiebe ausgewählten Eintrag nach unten" #: driconf_complexui.py:861 msgid "Properties of selected device or application" msgstr "Eigenschaften des/der ausgewählten Gerätes/Anwendung" #: driconf_complexui.py:875 msgid "Exit DRIconf" msgstr "DRIconf beenden" #: driconf_complexui.py:989 msgid "There are unsaved modifications. Exit anyway?" msgstr "Einige Änderungen wurden noch nicht gespeichert. Trotzdem beenden?" #: driconf_simpleui.py:294 msgid "Executable Name" msgstr "Name der ausführbaren Datei" #: driconf_simpleui.py:314 msgid "" "The executable name is important for identifying the application. If you get " "it wrong, your settings will not apply. Beware that some applications are " "started by a shell script, that has a different name than the real " "executable." msgstr "" "Der Name der ausführbaren Datei ist wichtig zur Erkennung der Anwendung. " "Wenn Sie hier einen Fehler machen, werden Ihre Einstellungen von der " "Anwendung nicht berücksichtigt. Beachten Sie, dass einige Anwendungen von " "einem Shellskript gestartet werden, das einen anderen Namen hat, als die " "ausführbare Datei." #: driconf_simpleui.py:377 msgid "Add setting" msgstr "Einstellung hinzufügen" #: driconf_simpleui.py:428 msgid "Direct Rendering Preferences" msgstr "Direct Rendering Einstellungen" #: driconf_simpleui.py:441 driconf_simpleui.py:444 driconf_simpleui.py:456 msgid "Screen" msgstr "Bildschirm" #: driconf_simpleui.py:473 msgid "Expert Mode" msgstr "Expertenmodus" #: driconf_simpleui.py:493 msgid "Application settings" msgstr "Anwendungseinstellungen" #: driconf_simpleui.py:556 driconf_simpleui.py:630 msgid "Unknown options" msgstr "Unbekannte Optionen" #: driconf_simpleui.py:635 msgid "Known options" msgstr "Bekannte Optionen" #: driconf_simpleui.py:708 msgid "You must enter both an application name and an executable name." msgstr "" "Sie müssen sowohl einen Anwendungsnamen als auch den Namen der ausführbaren " "Datei angeben." #: driconf_simpleui.py:713 msgid "" "There exists an application configuration with the same name. Please enter a " "different name." msgstr "" "Es existiert bereits eine Anwendungskonfiguration mit dem selben Namen. " "Bitte geben Sie einen anderen Namen ein." #: driconf_simpleui.py:718 msgid "" "There exists an application configuration for the same executable. You can't " "create multiple application configurations for the same executable." msgstr "" "Es existiert bereits eine Anwendungskonfiguration für die selbe ausführbare " "Datei. Sie können nicht mehrere Konfigurationen für die selbe ausführbare " "Datei erstellen." #: driconf_simpleui.py:734 msgid "Add Application" msgstr "Anwendung Hinzufügen" #: driconf_simpleui.py:755 msgid "Application Properties" msgstr "Anwendungseigenschaften" #: driconf_simpleui.py:837 #, python-format msgid "The DRI configuration file \"%s\" is broken or could not be created." msgstr "" "Die DRI Konfigurationsdatei \"%s\" ist beschädigt oder konnte nicht angelegt " "werden." #: driconf_simpleui.py:848 #, python-format msgid "Your DRI configuration file \"%s\" is not writable." msgstr "Ihre DRI Konfigurationsdatei \"%s\" ist schreibgeschützt." #: driconf_simpleui.py:859 #, python-format msgid "" "Normalization of your DRI configuration file \"%s\" failed. Please report a " "bug with the original configuration file attached. The file will be treated " "as read-only for now." msgstr "" "Die Normalisierung Ihrer DRI Konfigurationsdatei \"%s\" ist fehlgeschlagen. " "Bitte schicken sie einen Fehlerbericht einschließlich der originalen " "Konfigurationsdatei ab. Die Datei wird solange als schreibgeschützt " "behandelt." driconf-0.9.1/es.po0000644000175000017500000002524610503371477013134 0ustar felixfelix# translation of es.po to Spanish # Spanish translations for driconf package. # Copyright (C) 2005 ORGANIZATION # David , 2005. # David Rubio Miguélez , 2005. # msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-17 21:00-0400\n" "PO-Revision-Date: 2006-09-17 21:05-0400\n" "Last-Translator: David Rubio Miguélez \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.10\n" #: driconf.py:62 #, python-format msgid "" "There are errors in a driver's configuration information:\n" "%s\n" "This should not happen. It probably means that you have to update DRIconf." msgstr "" "Hay errores en una información de configuración del controlador:\n" "%s\n" "Esto no debería ocurrir. Probablemente significa que tiene que actualizar " "DRIconf." #: driconf.py:75 msgid "Could not detect any configurable direct-rendering capable devices." msgstr "" #: driconf.py:76 driconf_simpleui.py:839 driconf_simpleui.py:850 #: driconf_simpleui.py:863 msgid "DRIconf will be started in expert mode." msgstr "" #: driconf.py:114 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "I will leave the file alone until you fix the problem manually or remove the " "file." msgstr "" "El archivo de configuración \"%s\" contiene errores:\n" "%s\n" "Dejaré el archivo intacto hasta que usted lo corrija manualmente o borre el " "archivo." #: driconf.py:132 msgid "" "There are no usable DRI configuration files and a new one could not be " "created. Exiting now." msgstr "" #: driconf.py:148 #, python-format msgid "Created a new DRI configuration file \"%s\" for you." msgstr "Creado un nuevo archivo de configuración de DRI \"%s\" por usted." #: driconf.py:156 #, python-format msgid "Created new DRI configuration files %s for you." msgstr "Creados nuevos archivos de configuración DRI %s por usted." #: driconf_commonui.py:319 msgid "Remove" msgstr "" #: driconf_commonui.py:322 msgid "Reset to default value" msgstr "" #: driconf_commonui.py:587 msgid "Option" msgstr "Opción" #: driconf_commonui.py:592 msgid "Value" msgstr "Valor" #: driconf_commonui.py:671 msgid "" "This tab shows settings that are no longer supported by the 3D driver. " "Unless you're using the same configuration file on another computer with a " "different driver version, it is safe to remove these settings." msgstr "" #: driconf_commonui.py:676 msgid "" "The driver for this device could not be determined or does not support " "configuration. You can still change the settings but it cannot be verified " "whether they are supported and valid." msgstr "" "El controlador para este dispositivo no se puede determinar o no soporta " "configuración. Aún puede cambiar las opciones pero no puede verificarse si " "son soportadas y válidas." #: driconf_commonui.py:714 driconf_commonui.py:732 driconf_commonui.py:743 msgid "translator-credits" msgstr "David Rubio Miguélez " #: driconf_commonui.py:721 driconf_commonui.py:740 #, fuzzy msgid "A configuration applet for DRI drivers" msgstr "Una interfaz de configuración para los controladores DRI" #: driconf_commonui.py:742 msgid "Translated by" msgstr "Traducido por" #: driconf_commonui.py:748 driconf_complexui.py:871 msgid "About DRIconf" msgstr "Acerca de DRIconf" #: driconf_complexui.py:39 msgid "Application" msgstr "Aplicación" #: driconf_complexui.py:46 msgid "Apply only to this executable" msgstr "Aplicar sólo a este ejecutable" #: driconf_complexui.py:49 msgid "" "Leave this disabled to configure all applications.\n" "Beware that some applications or games are just a shell script that starts a " "real executable with a different name." msgstr "" "Deje esto desactivado para configurar todas las aplicaciones.\n" "Tenga en cuenta que algunas aplicaciones o juegos son simplemente un script " "de consola que lanzan un ejecutable real con otro nombre." #: driconf_complexui.py:73 msgid "Unknown" msgstr "Desconocido" #: driconf_complexui.py:87 driconf_simpleui.py:571 msgid "(no description)" msgstr "(sin descripción)" #: driconf_complexui.py:163 msgid "" "Enter the name of the application below. This just serves as a description " "for you. Don't forget to set the executable afterwards." msgstr "" "Introduzca el nombre de la aplicación a continuación. Esto sirve únicamente " "como una descripción para usted. No se olvide de poner el ejecutable más " "tarde." #: driconf_complexui.py:170 driconf_simpleui.py:282 msgid "Application Name" msgstr "Nombre de la Aplicación" #: driconf_complexui.py:205 msgid "Describe the device that you would like to configure." msgstr "Describa el dispositivo que le gustaría configurar." #: driconf_complexui.py:210 msgid "Screen Number" msgstr "Número de Pantalla" #: driconf_complexui.py:221 msgid "Driver Name" msgstr "Nombre del Controlador" #: driconf_complexui.py:344 #, python-format msgid "%s on screen %s" msgstr "%s en la pantalla %s" #: driconf_complexui.py:348 #, python-format msgid "Screen %s" msgstr "Pantalla %s" #: driconf_complexui.py:354 msgid "Unspecified device" msgstr "Dispositivo sin especificar" #: driconf_complexui.py:578 #, python-format msgid "Parsing the driver's configuration information: %s" msgstr "Analizando la información de configuración del controlador: %s" #: driconf_complexui.py:616 #, python-format msgid "Really delete application \"%s\"?" msgstr "¿Está seguro de que quiere borrar la aplicación \"%s\"?" #: driconf_complexui.py:622 msgid "Really delete device and all applications in it?" msgstr "" "¿Está seguro de que quiere borrar el dispositivo y las aplicaciones en él?" #: driconf_complexui.py:643 msgid "Rename Application" msgstr "Renombrar Aplicación" #: driconf_complexui.py:646 msgid "Device Properties" msgstr "Propiedades de Dispositivo" #: driconf_complexui.py:653 msgid "New Application" msgstr "Nueva Aplicación" #: driconf_complexui.py:656 msgid "New Device" msgstr "Nuevo Dispositivo" #: driconf_complexui.py:680 msgid "The configuration contains invalid entries. Save anyway?" msgstr "La configuración contiene entradas inválidas. ¿Salvar de todos modos?" #: driconf_complexui.py:691 driconf_simpleui.py:820 #, python-format msgid "Can't open \"%s\" for writing." msgstr "No se puede abrir \"%s\" para escritura." #: driconf_complexui.py:710 #, python-format msgid "Really reload \"%s\" from disk?" msgstr "¿Está seguro de que quiere recargar \"%s\" desde disco?" #: driconf_complexui.py:721 #, python-format msgid "Couldn't open \"%s\" for reading. The file was not reloaded." msgstr "No se puede abrir \"%s\" para lectura. El archivo no se recargó." #: driconf_complexui.py:733 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "The file was not reloaded." msgstr "" "El archivo de configuración \"%s\" contiene errores:\n" "%s\n" "El archivo no se recargó." #: driconf_complexui.py:842 msgid "Save selected configuration file" msgstr "Salvar el archivo de configuración seleccionado" #: driconf_complexui.py:845 msgid "Reload selected configuration file" msgstr "Recargar el archivo de configuración seleccionado" #: driconf_complexui.py:849 msgid "Create a new device or application" msgstr "Crear un nuevo dispositivo o aplicación" #: driconf_complexui.py:852 msgid "Remove selected device or application" msgstr "Borrar el dispositivo o aplicación seleccionado" #: driconf_complexui.py:855 msgid "Move selected item up" msgstr "Subir el elemento seleccionado" #: driconf_complexui.py:858 msgid "Move selected item down" msgstr "Bajar el elemento seleccionado" #: driconf_complexui.py:861 msgid "Properties of selected device or application" msgstr "Propiedades del dispositivo o aplicación seleccionado" #: driconf_complexui.py:875 msgid "Exit DRIconf" msgstr "Salir de DRIconf" #: driconf_complexui.py:989 msgid "There are unsaved modifications. Exit anyway?" msgstr "Hay modificaciones sin salvar. ¿Salir de todos modos?" #: driconf_simpleui.py:294 msgid "Executable Name" msgstr "" #: driconf_simpleui.py:314 msgid "" "The executable name is important for identifying the application. If you get " "it wrong, your settings will not apply. Beware that some applications are " "started by a shell script, that has a different name than the real " "executable." msgstr "" #: driconf_simpleui.py:377 msgid "Add setting" msgstr "" #: driconf_simpleui.py:428 msgid "Direct Rendering Preferences" msgstr "" #: driconf_simpleui.py:441 driconf_simpleui.py:444 driconf_simpleui.py:456 #, fuzzy msgid "Screen" msgstr "Pantalla %s" #: driconf_simpleui.py:473 msgid "Expert Mode" msgstr "" #: driconf_simpleui.py:493 #, fuzzy msgid "Application settings" msgstr "Nombre de la Aplicación" #: driconf_simpleui.py:556 driconf_simpleui.py:630 #, fuzzy msgid "Unknown options" msgstr "Desconocido" #: driconf_simpleui.py:635 msgid "Known options" msgstr "" #: driconf_simpleui.py:708 msgid "You must enter both an application name and an executable name." msgstr "" #: driconf_simpleui.py:713 msgid "" "There exists an application configuration with the same name. Please enter a " "different name." msgstr "" #: driconf_simpleui.py:718 msgid "" "There exists an application configuration for the same executable. You can't " "create multiple application configurations for the same executable." msgstr "" #: driconf_simpleui.py:734 #, fuzzy msgid "Add Application" msgstr "Aplicación" #: driconf_simpleui.py:755 #, fuzzy msgid "Application Properties" msgstr "Nombre de la Aplicación" #: driconf_simpleui.py:837 #, fuzzy, python-format msgid "The DRI configuration file \"%s\" is broken or could not be created." msgstr "Creado un nuevo archivo de configuración de DRI \"%s\" por usted." #: driconf_simpleui.py:848 #, fuzzy, python-format msgid "Your DRI configuration file \"%s\" is not writable." msgstr "Creado un nuevo archivo de configuración de DRI \"%s\" por usted." #: driconf_simpleui.py:859 #, python-format msgid "" "Normalization of your DRI configuration file \"%s\" failed. Please report a " "bug with the original configuration file attached. The file will be treated " "as read-only for now." msgstr "" #~ msgid "" #~ "Some settings in this application configuration are unknown to the " #~ "driver. Maybe the driver version changed and does not support these " #~ "options any more. It is probably safe to delete these settings." #~ msgstr "" #~ "Algunas opciones en la configuración de esta aplicación son desconocidas " #~ "por el controlador. Puede que la versión del controlador haya cambiado y " #~ "no soporte estas opciones nunca más. Probablemente es seguro borrar estas " #~ "opciones." driconf-0.9.1/driconf.py0000644000175000017500000001302410366274524014154 0ustar felixfelix# DRI configuration GUI using python-gtk # Copyright (C) 2003-2006 Felix Kuehling # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Contact: http://fxk.de.vu/ import sys import os import dri import pygtk pygtk.require ("2.0") import gtk import gobject if gtk.check_version(2, 4, 0): print "Error: DRIconf requires GTK 2.4 or newer." sys.exit(1) import driconf_commonui import driconf_complexui import driconf_simpleui commonui = driconf_commonui # short cuts complexui = driconf_complexui simpleui = driconf_simpleui from driconf_commonui import _ def main(): if len(sys.argv) >= 2 and sys.argv[1] == "-e": expert = True else: expert = False # read configuration information from the drivers try: commonui.dpy = dri.DisplayInfo () except dri.DRIError, problem: dialog = gtk.MessageDialog (None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, str(problem)) dialog.run() dialog.destroy() return except dri.XMLError, problem: dialog = gtk.MessageDialog ( None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _("There are errors in a driver's configuration information:\n" "%s\n" "This should not happen. It probably means that you have to " "update DRIconf.") % str(problem)) dialog.run() dialog.destroy() return configScreens = [screen for screen in commonui.dpy.screens if screen != None] if len(configScreens) == 0: dialog = gtk.MessageDialog ( None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _("Could not detect any configurable direct-rendering capable " "devices.")+" "+_("DRIconf will be started in expert mode.")) dialog.run() dialog.destroy() expert = True # read or create configuration files fileNameList = ["/etc/drirc", os.path.join (os.environ["HOME"], ".drirc")] configList = [] newFiles = [] for fileName in fileNameList: try: cfile = open (fileName, "r") except IOError: # Make a default configuration file. config = dri.DRIConfig (None, fileName) config.writable = True for screen in configScreens: device = dri.DeviceConfig (config, str(screen.num), screen.driver.name) app = dri.AppConfig (device, "all") device.apps.append (app) config.devices.append (device) # Try to write the new file. If it fails, don't add this config. try: file = open (config.fileName, "w") except IOError: config = None else: file.write (str(config)) file.close() newFiles.append (fileName) else: # Try to parse the configuration file. try: config = dri.DRIConfig (cfile) except dri.XMLError, problem: dialog = gtk.MessageDialog ( None, 0, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, _("Configuration file \"%s\" contains errors:\n" "%s\n" "I will leave the file alone until you fix the problem " "manually or remove the file.") % (fileName, str(problem))) dialog.run() dialog.destroy() continue else: # Check if the file is writable in the end. config.writable = commonui.fileIsWritable (fileName) cfile.close() if config: configList.append (config) if len(configList) == 0: dialog = gtk.MessageDialog ( None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _("There are no usable DRI configuration files and a new one " "could not be created. Exiting now.")) dialog.run() dialog.destroy() return # open the main window if expert: complexui.start(configList) else: simpleui.start(configList) if len(newFiles) == 1: dialog = gtk.MessageDialog ( commonui.mainWindow, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _("Created a new DRI configuration file \"%s\" for you.") % newFiles[0]) dialog.run() dialog.destroy() elif len(newFiles) > 1: dialog = gtk.MessageDialog ( commonui.mainWindow, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _("Created new DRI configuration files %s for you.") % reduce(lambda a, b: str(a) + ", " + str(b), map (lambda a: "\"%s\"" % str(a), newFiles))) dialog.run() dialog.destroy() # run gtk.main() driconf-0.9.1/it.po0000644000175000017500000002474110503371500013123 0ustar felixfelix# Italian Translation for driconf package # Traduzione italiana per driconf # msgid "" msgstr "" "Project-Id-Version: it\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-17 21:00-0400\n" "PO-Revision-Date: 2006-09-17 21:07-0400\n" "Last-Translator: Giampaolo Bozzali \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.10\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" #: driconf.py:62 #, python-format msgid "" "There are errors in a driver's configuration information:\n" "%s\n" "This should not happen. It probably means that you have to update DRIconf." msgstr "" "Ci sono degli errori nelle informazioni sulla configurazione di un driver:\n" "%s\n" "Questo non dovrebbe accadere. Probabilmente significa che devi aggiornare " "DRIconf." #: driconf.py:75 msgid "Could not detect any configurable direct-rendering capable devices." msgstr "" #: driconf.py:76 driconf_simpleui.py:839 driconf_simpleui.py:850 #: driconf_simpleui.py:863 msgid "DRIconf will be started in expert mode." msgstr "" #: driconf.py:114 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "I will leave the file alone until you fix the problem manually or remove the " "file." msgstr "" "Il file di configurazione \"%s\" contiene degli errori:\n" "%s\n" "Il file non verrà considerato finchè il problema non sarà risolto a mano o " "il file sarà rimosso." #: driconf.py:132 msgid "" "There are no usable DRI configuration files and a new one could not be " "created. Exiting now." msgstr "" #: driconf.py:148 #, python-format msgid "Created a new DRI configuration file \"%s\" for you." msgstr "Creato un nuovo file di configurazione \"%s\"." #: driconf.py:156 #, python-format msgid "Created new DRI configuration files %s for you." msgstr "Creati nuovi file di configurazione %s." #: driconf_commonui.py:319 msgid "Remove" msgstr "" #: driconf_commonui.py:322 msgid "Reset to default value" msgstr "" #: driconf_commonui.py:587 msgid "Option" msgstr "Opzioni" #: driconf_commonui.py:592 msgid "Value" msgstr "Valore" #: driconf_commonui.py:671 msgid "" "This tab shows settings that are no longer supported by the 3D driver. " "Unless you're using the same configuration file on another computer with a " "different driver version, it is safe to remove these settings." msgstr "" #: driconf_commonui.py:676 msgid "" "The driver for this device could not be determined or does not support " "configuration. You can still change the settings but it cannot be verified " "whether they are supported and valid." msgstr "" "Non è possibile determinare il driver di questa periferica oppure il driver " "non permette configurazioni. E' possibile comunque modificare le " "impostazioni ma non è possibile verificare se siano supportate e se siano " "valide." #: driconf_commonui.py:714 driconf_commonui.py:732 driconf_commonui.py:743 msgid "translator-credits" msgstr "Giampaolo Bozzali " #: driconf_commonui.py:721 driconf_commonui.py:740 #, fuzzy msgid "A configuration applet for DRI drivers" msgstr "Interfaccia di configurazione per i drivers DRI" #: driconf_commonui.py:742 msgid "Translated by" msgstr "Tradotto da" #: driconf_commonui.py:748 driconf_complexui.py:871 msgid "About DRIconf" msgstr "Informazioni su DRIconf" #: driconf_complexui.py:39 msgid "Application" msgstr "Applicazione" #: driconf_complexui.py:46 msgid "Apply only to this executable" msgstr "Applicabile solo a questo eseguibile" #: driconf_complexui.py:49 msgid "" "Leave this disabled to configure all applications.\n" "Beware that some applications or games are just a shell script that starts a " "real executable with a different name." msgstr "" "Lasciare questo disattivato per configurare tutte le applicazioni.\n" "Ricorda che alcune applicazioni o giochi sono semplicemente uno shell script " "che avviano l'eseguibile reale con un nome differente." #: driconf_complexui.py:73 msgid "Unknown" msgstr "Sconosciuto" #: driconf_complexui.py:87 driconf_simpleui.py:571 msgid "(no description)" msgstr "(nessuna descrizione)" #: driconf_complexui.py:163 msgid "" "Enter the name of the application below. This just serves as a description " "for you. Don't forget to set the executable afterwards." msgstr "" "Inserisci qui il nome dell'applicazione. E' solamente una descrizione. " "Ricorda di impostare l'eseguibile dopo." #: driconf_complexui.py:170 driconf_simpleui.py:282 msgid "Application Name" msgstr "Nome dell'applicazione" #: driconf_complexui.py:205 msgid "Describe the device that you would like to configure." msgstr "Descrive il dispositivo che intendi configurare." #: driconf_complexui.py:210 #, fuzzy msgid "Screen Number" msgstr "Screen Number" #: driconf_complexui.py:221 msgid "Driver Name" msgstr "Nome Driver" #: driconf_complexui.py:344 #, fuzzy, python-format msgid "%s on screen %s" msgstr "%s sullo screen %s" #: driconf_complexui.py:348 #, python-format msgid "Screen %s" msgstr "Screen %s" #: driconf_complexui.py:354 msgid "Unspecified device" msgstr "Dispositivo non specificato" #: driconf_complexui.py:578 #, python-format msgid "Parsing the driver's configuration information: %s" msgstr "Analizzo le informazioni sulla configurazione del driver: %s" #: driconf_complexui.py:616 #, python-format msgid "Really delete application \"%s\"?" msgstr "Confermi la rimozione dell'applicazione \"%s\"?" #: driconf_complexui.py:622 msgid "Really delete device and all applications in it?" msgstr "Confermi la rimozione del dispositivo e tutte le sue applicazioni?" #: driconf_complexui.py:643 msgid "Rename Application" msgstr "Rinomina Applicazione" #: driconf_complexui.py:646 msgid "Device Properties" msgstr "Proprieta' del Dispositivo" #: driconf_complexui.py:653 msgid "New Application" msgstr "Nuova Applicazione" #: driconf_complexui.py:656 msgid "New Device" msgstr "Nuovo Dispositivo" #: driconf_complexui.py:680 msgid "The configuration contains invalid entries. Save anyway?" msgstr "La configurazione contiene voci non valide. Salvare comunque?" #: driconf_complexui.py:691 driconf_simpleui.py:820 #, python-format msgid "Can't open \"%s\" for writing." msgstr "Impossibile aprire \"%s\" in scrittura." #: driconf_complexui.py:710 #, python-format msgid "Really reload \"%s\" from disk?" msgstr "Sei sicuro di voler ricaricare \"%s\" dal disco?" #: driconf_complexui.py:721 #, python-format msgid "Couldn't open \"%s\" for reading. The file was not reloaded." msgstr "Impossibile aprire \"%s\" in lettura. Il file non è stato ricaricato." #: driconf_complexui.py:733 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "The file was not reloaded." msgstr "" "Il file di configurazione \"%s\" contiene errori:\n" "%s\n" "Il file non è stato ricaricato" #: driconf_complexui.py:842 msgid "Save selected configuration file" msgstr "Salva il file di configurazione selezionato" #: driconf_complexui.py:845 msgid "Reload selected configuration file" msgstr "Ricarica il file di configurazione selezionato" #: driconf_complexui.py:849 msgid "Create a new device or application" msgstr "Crea un nuovo dispositivo o una applicazione" #: driconf_complexui.py:852 msgid "Remove selected device or application" msgstr "Rimuovi il dispositivo selezionato o l'applicazione" #: driconf_complexui.py:855 msgid "Move selected item up" msgstr "Sposta su l'elemento selezionato" #: driconf_complexui.py:858 msgid "Move selected item down" msgstr "Sposta giù l'elemento selezionato" #: driconf_complexui.py:861 msgid "Properties of selected device or application" msgstr "Proprietà del dispositivo selezionato o dell'applicazione" #: driconf_complexui.py:875 msgid "Exit DRIconf" msgstr "Esci da DRIconf" #: driconf_complexui.py:989 msgid "There are unsaved modifications. Exit anyway?" msgstr "Ci sono delle modifiche. Uscire comunque?" #: driconf_simpleui.py:294 msgid "Executable Name" msgstr "" #: driconf_simpleui.py:314 msgid "" "The executable name is important for identifying the application. If you get " "it wrong, your settings will not apply. Beware that some applications are " "started by a shell script, that has a different name than the real " "executable." msgstr "" #: driconf_simpleui.py:377 msgid "Add setting" msgstr "" #: driconf_simpleui.py:428 msgid "Direct Rendering Preferences" msgstr "" #: driconf_simpleui.py:441 driconf_simpleui.py:444 driconf_simpleui.py:456 #, fuzzy msgid "Screen" msgstr "Screen %s" #: driconf_simpleui.py:473 msgid "Expert Mode" msgstr "" #: driconf_simpleui.py:493 #, fuzzy msgid "Application settings" msgstr "Nome dell'applicazione" #: driconf_simpleui.py:556 driconf_simpleui.py:630 #, fuzzy msgid "Unknown options" msgstr "Sconosciuto" #: driconf_simpleui.py:635 msgid "Known options" msgstr "" #: driconf_simpleui.py:708 msgid "You must enter both an application name and an executable name." msgstr "" #: driconf_simpleui.py:713 msgid "" "There exists an application configuration with the same name. Please enter a " "different name." msgstr "" #: driconf_simpleui.py:718 msgid "" "There exists an application configuration for the same executable. You can't " "create multiple application configurations for the same executable." msgstr "" #: driconf_simpleui.py:734 #, fuzzy msgid "Add Application" msgstr "Applicazione" #: driconf_simpleui.py:755 #, fuzzy msgid "Application Properties" msgstr "Nome dell'applicazione" #: driconf_simpleui.py:837 #, fuzzy, python-format msgid "The DRI configuration file \"%s\" is broken or could not be created." msgstr "Creato un nuovo file di configurazione \"%s\"." #: driconf_simpleui.py:848 #, fuzzy, python-format msgid "Your DRI configuration file \"%s\" is not writable." msgstr "Creato un nuovo file di configurazione \"%s\"." #: driconf_simpleui.py:859 #, python-format msgid "" "Normalization of your DRI configuration file \"%s\" failed. Please report a " "bug with the original configuration file attached. The file will be treated " "as read-only for now." msgstr "" #~ msgid "" #~ "Some settings in this application configuration are unknown to the " #~ "driver. Maybe the driver version changed and does not support these " #~ "options any more. It is probably safe to delete these settings." #~ msgstr "" #~ "Alcune impostazioni in questa applicazione non sono riconosciute dal " #~ "driver. Potrebbe darsi che una versione più recente del driver non " #~ "supporti più queste opzioni. E' più sicuro rimuovere queste impostazioni." driconf-0.9.1/nl.po0000644000175000017500000002663310503371500013122 0ustar felixfelix# Translation of driconf-0.9.0 to Dutch. # Benno Schulenberg , 2006. # msgid "" msgstr "" "Project-Id-Version: driconfr 0.9.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-17 21:00-0400\n" "PO-Revision-Date: 2006-09-17 21:09-0400\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: driconf.py:62 #, python-format msgid "" "There are errors in a driver's configuration information:\n" "%s\n" "This should not happen. It probably means that you have to update DRIconf." msgstr "" "Er zitten fouten in de configuratiegegevens van een stuurprogramma:\n" "%s\n" "Dit zou niet mogen gebeuren. Waarschijnlijk hebt u een nieuwere versie van " "DRIconf nodig." #: driconf.py:75 msgid "Could not detect any configurable direct-rendering capable devices." msgstr "Er zijn geen configureerbare DRI-apparaten gevonden." #: driconf.py:76 driconf_simpleui.py:839 driconf_simpleui.py:850 #: driconf_simpleui.py:863 msgid "DRIconf will be started in expert mode." msgstr "DRIconf wordt in expertmodus gestart." #: driconf.py:114 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "I will leave the file alone until you fix the problem manually or remove the " "file." msgstr "" "Het configuratiebestand \"%s\" bevat fouten:\n" "%s\n" "Het bestand wordt genegeerd totdat u de fouten repareert of het bestand " "verwijdert." #: driconf.py:132 msgid "" "There are no usable DRI configuration files and a new one could not be " "created. Exiting now." msgstr "" "Er zijn geen bruikbare DRI-configuratiebestanden gevonden, en een nieuw " "bestand kon niet aangemaakt worden. Het programma wordt nu afgesloten." #: driconf.py:148 #, python-format msgid "Created a new DRI configuration file \"%s\" for you." msgstr "Een nieuw configuratiebestand \"%s\" werd voor u aangemaakt." #: driconf.py:156 #, python-format msgid "Created new DRI configuration files %s for you." msgstr "Nieuwe configuratiebestanden \"%s\" werden voor u aangemaakt." #: driconf_commonui.py:319 msgid "Remove" msgstr "Verwijderen" #: driconf_commonui.py:322 msgid "Reset to default value" msgstr "Op standaardwaarde terugzetten" #: driconf_commonui.py:587 msgid "Option" msgstr "Optie" #: driconf_commonui.py:592 msgid "Value" msgstr "Waarde" #: driconf_commonui.py:671 msgid "" "This tab shows settings that are no longer supported by the 3D driver. " "Unless you're using the same configuration file on another computer with a " "different driver version, it is safe to remove these settings." msgstr "" "Deze tab toont instellingen die het 3D-stuurprogramma niet langer kent. U " "kunt deze instellingen simpelweg verwijderen, tenzij u ditzelfde " "configuratiebestand op een andere computer met een andere versie van het " "stuurprogramma gebruikt." #: driconf_commonui.py:676 msgid "" "The driver for this device could not be determined or does not support " "configuration. You can still change the settings but it cannot be verified " "whether they are supported and valid." msgstr "" "Het stuurprogramma voor dit apparaat kan niet bepaald worden of is niet " "configureerbaar. U kunt desondanks de instellingen bewerken, maar het is " "niet mogelijk te controleren of het stuurprogramma ze ondersteunt en of de " "waardes geldig zijn." #: driconf_commonui.py:714 driconf_commonui.py:732 driconf_commonui.py:743 msgid "translator-credits" msgstr "Benno Schulenberg " #: driconf_commonui.py:721 driconf_commonui.py:740 msgid "A configuration applet for DRI drivers" msgstr "Configuratiegereedschap voor DRI-stuurprogramma's" #: driconf_commonui.py:742 msgid "Translated by" msgstr "Vertaald door" #: driconf_commonui.py:748 driconf_complexui.py:871 msgid "About DRIconf" msgstr "Over DRIconf" #: driconf_complexui.py:39 msgid "Application" msgstr "Applicatie" #: driconf_complexui.py:46 msgid "Apply only to this executable" msgstr "Alleen op dit uitvoerbare programma toepassen" #: driconf_complexui.py:49 msgid "" "Leave this disabled to configure all applications.\n" "Beware that some applications or games are just a shell script that starts a " "real executable with a different name." msgstr "" "Als dit uitstaat, gelden de instellingen voor alle applicaties.\n" "Wees erop bedacht dat sommige applicaties slechts een shellscript zijn en " "dat het uiteindelijk gestarte programma een andere naam heeft." #: driconf_complexui.py:73 msgid "Unknown" msgstr "Onbekend" #: driconf_complexui.py:87 driconf_simpleui.py:571 msgid "(no description)" msgstr "(geen omschrijving)" #: driconf_complexui.py:163 msgid "" "Enter the name of the application below. This just serves as a description " "for you. Don't forget to set the executable afterwards." msgstr "" "Geef hieronder een naam voor de applicatie op. Dit dient slechts als een " "omschrijving voor uzelf. Vergeet niet verderop de naam van het uitvoerbare " "programma vast te leggen." #: driconf_complexui.py:170 driconf_simpleui.py:282 msgid "Application Name" msgstr "Naam van applicatie" #: driconf_complexui.py:205 msgid "Describe the device that you would like to configure." msgstr "Het te configureren apparaat." #: driconf_complexui.py:210 msgid "Screen Number" msgstr "Schermnummer" #: driconf_complexui.py:221 msgid "Driver Name" msgstr "Stuurprogrammanaam" #: driconf_complexui.py:344 #, python-format msgid "%s on screen %s" msgstr "%s op scherm %s" #: driconf_complexui.py:348 #, python-format msgid "Screen %s" msgstr "Scherm %s" #: driconf_complexui.py:354 msgid "Unspecified device" msgstr "Ongespecificeerd apparaat" #: driconf_complexui.py:578 #, python-format msgid "Parsing the driver's configuration information: %s" msgstr "Tijdens het ontleden van stuurprogramma-configuratiegegevens: %s" #: driconf_complexui.py:616 #, python-format msgid "Really delete application \"%s\"?" msgstr "Configuratie voor applicatie \"%s\" echt wissen?" #: driconf_complexui.py:622 msgid "Really delete device and all applications in it?" msgstr "" "Dit apparaat en alle bijbehorende configuratiegegevens echt verwijderen?" #: driconf_complexui.py:643 msgid "Rename Application" msgstr "Applicatie hernoemen" #: driconf_complexui.py:646 msgid "Device Properties" msgstr "Apparaateigenschappen" #: driconf_complexui.py:653 msgid "New Application" msgstr "Nieuwe applicatie" #: driconf_complexui.py:656 msgid "New Device" msgstr "Nieuw apparaat" #: driconf_complexui.py:680 msgid "The configuration contains invalid entries. Save anyway?" msgstr "De configuratie bevat ongeldige gegevens. Toch opslaan?" #: driconf_complexui.py:691 driconf_simpleui.py:820 #, python-format msgid "Can't open \"%s\" for writing." msgstr "Kan niet naar \"%s\" schrijven." #: driconf_complexui.py:710 #, python-format msgid "Really reload \"%s\" from disk?" msgstr "Bestand \"%s\" echt opnieuw laden?" #: driconf_complexui.py:721 #, python-format msgid "Couldn't open \"%s\" for reading. The file was not reloaded." msgstr "Kan \"%s\" niet lezen. Het bestand is niet opnieuw geladen." #: driconf_complexui.py:733 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "The file was not reloaded." msgstr "" "Configuratiebestand \"%s\" bevat fouten:\n" "%s\n" "Het bestand is niet opnieuw geladen." #: driconf_complexui.py:842 msgid "Save selected configuration file" msgstr "Geselecteerd configuratiebestand opslaan" #: driconf_complexui.py:845 msgid "Reload selected configuration file" msgstr "Geselecteerd configuratiebestand opnieuw laden" #: driconf_complexui.py:849 msgid "Create a new device or application" msgstr "Nieuw apparaat of applicatie toevoegen" #: driconf_complexui.py:852 msgid "Remove selected device or application" msgstr "Geselecteerd apparaat of applicatie verwijderen" #: driconf_complexui.py:855 msgid "Move selected item up" msgstr "Geselecteerd item naar boven verplaatsen" #: driconf_complexui.py:858 msgid "Move selected item down" msgstr "Geselecteerd item naar beneden verplaatsen" #: driconf_complexui.py:861 msgid "Properties of selected device or application" msgstr "Eigenschappen van geselecteerd apparaat of applicatie" #: driconf_complexui.py:875 msgid "Exit DRIconf" msgstr "DRIconf afsluiten" #: driconf_complexui.py:989 msgid "There are unsaved modifications. Exit anyway?" msgstr "Sommige wijzigingen zijn nog niet opgeslagen. Toch afsluiten?" #: driconf_simpleui.py:294 msgid "Executable Name" msgstr "Naam van uitvoerbare programma" #: driconf_simpleui.py:314 msgid "" "The executable name is important for identifying the application. If you get " "it wrong, your settings will not apply. Beware that some applications are " "started by a shell script, that has a different name than the real " "executable." msgstr "" "De naam van het uitvoerbare programma is belangrijk voor het herkennen van " "de applicatie. Als u een verkeerde naam opgeeft, worden uw applicatie-" "instellingen niet toegepast. Wees erop bedacht dat sommige applicaties door " "een script gestart worden en dat het uiteindelijk uitgevoerde programma een " "andere naam heeft." #: driconf_simpleui.py:377 msgid "Add setting" msgstr "Instelling toevoegen" #: driconf_simpleui.py:428 msgid "Direct Rendering Preferences" msgstr "Instellingen voor Direct Rendering" #: driconf_simpleui.py:441 driconf_simpleui.py:444 driconf_simpleui.py:456 msgid "Screen" msgstr "Scherm" #: driconf_simpleui.py:473 msgid "Expert Mode" msgstr "Expertmodus" #: driconf_simpleui.py:493 msgid "Application settings" msgstr "Applicatie-instellingen" #: driconf_simpleui.py:556 driconf_simpleui.py:630 msgid "Unknown options" msgstr "Onbekende opties" #: driconf_simpleui.py:635 msgid "Known options" msgstr "Bekende opties" #: driconf_simpleui.py:708 msgid "You must enter both an application name and an executable name." msgstr "" "U dient zowel een applicatienaam als de naam van het uitvoerbare programma " "op te geven." #: driconf_simpleui.py:713 msgid "" "There exists an application configuration with the same name. Please enter a " "different name." msgstr "" "Er bestaat al een applicatieconfiguratie met deze naam. Geef alstublieft " "een andere naam op." #: driconf_simpleui.py:718 msgid "" "There exists an application configuration for the same executable. You can't " "create multiple application configurations for the same executable." msgstr "" "Er bestaat al een applicatieconfiguratie voor dat programma. U kunt niet " "meerdere configuraties voor hetzelfde programma aanmaken." #: driconf_simpleui.py:734 msgid "Add Application" msgstr "Applicatie toevoegen" #: driconf_simpleui.py:755 msgid "Application Properties" msgstr "Applicatie-eigenschappen" #: driconf_simpleui.py:837 #, python-format msgid "The DRI configuration file \"%s\" is broken or could not be created." msgstr "" "DRI-configuratiebestand \"%s\" is beschadigd of kan niet aangemaakt worden." #: driconf_simpleui.py:848 #, python-format msgid "Your DRI configuration file \"%s\" is not writable." msgstr "DRI-configuratiebestand \"%s\" is niet schrijfbaar." #: driconf_simpleui.py:859 #, python-format msgid "" "Normalization of your DRI configuration file \"%s\" failed. Please report a " "bug with the original configuration file attached. The file will be treated " "as read-only for now." msgstr "" "Normalisering van DRI-configuratiebestand \"%s\" is mislukt. Stuur " "alstublieft een foutrapportage op inclusief het configuratiebestand. Dit " "bestand wordt zolang als alleen-lezen behandeld." driconf-0.9.1/ru.po0000644000175000017500000003311010503371653013134 0ustar felixfelixmsgid "" msgstr "" "Project-Id-Version: driconf\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-17 21:00-0400\n" "PO-Revision-Date: 2006-09-17 21:17-0400\n" "Last-Translator: Konstantin A. Lepikhov \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: driconf.py:62 #, python-format msgid "" "There are errors in a driver's configuration information:\n" "%s\n" "This should not happen. It probably means that you have to update DRIconf." msgstr "" "Возникли ошибки при чтении конфигурации драйвера:\n" "%s\n" "Это может нарушить работу программы. Возможно, Вам следует обновить DRIconf." #: driconf.py:75 msgid "Could not detect any configurable direct-rendering capable devices." msgstr "Невозможно определить ни одного DRI-совместимого устройства." #: driconf.py:76 driconf_simpleui.py:839 driconf_simpleui.py:850 #: driconf_simpleui.py:863 msgid "DRIconf will be started in expert mode." msgstr "DRIconf будет запущен в режиме эксперта." #: driconf.py:114 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "I will leave the file alone until you fix the problem manually or remove the " "file." msgstr "" "Файл конфигурации \"%s\" содержит ошибки:\n" "%s\n" "Программа не будет его использовать до тех пор, пока ошибки не будут " "исправлены вручную, либо файл будет удален." #: driconf.py:132 msgid "" "There are no usable DRI configuration files and a new one could not be " "created. Exiting now." msgstr "" "Невозмжно создать и прочитать файлы с конфигурацией DRI. Аварийное " "завершение работы программы." #: driconf.py:148 #, python-format msgid "Created a new DRI configuration file \"%s\" for you." msgstr "Для Вас был создан новый файл конфигурации \"%s\"." #: driconf.py:156 #, python-format msgid "Created new DRI configuration files %s for you." msgstr "Для Вас были созданы новые файлы конфигурации %s." #: driconf_commonui.py:319 msgid "Remove" msgstr "Удалить" #: driconf_commonui.py:322 msgid "Reset to default value" msgstr "Применить настройки по-умолчанию" #: driconf_commonui.py:587 msgid "Option" msgstr "Опция" #: driconf_commonui.py:592 msgid "Value" msgstr "Значение" #: driconf_commonui.py:671 msgid "" "This tab shows settings that are no longer supported by the 3D driver. " "Unless you're using the same configuration file on another computer with a " "different driver version, it is safe to remove these settings." msgstr "" "Эта вкладка отображает настройки, которые больше не поддерживаются 3D " "драйвером. Лучше удалить эти настройки, если вы не пользуетесь другой " "версией драйвера и тем же файлом конфигурации." #: driconf_commonui.py:676 msgid "" "The driver for this device could not be determined or does not support " "configuration. You can still change the settings but it cannot be verified " "whether they are supported and valid." msgstr "" "Драйвер для этого устройства не может быть определен или не поддерживает " "возможности конфигурирования. Вы все равно сможете изменить настройки, но " "нет гарантии, что они будут правильными и будут поддерживаться." #: driconf_commonui.py:714 driconf_commonui.py:732 driconf_commonui.py:743 msgid "translator-credits" msgstr "Konstantin A. Lepikhov " #: driconf_commonui.py:721 driconf_commonui.py:740 #, fuzzy msgid "A configuration applet for DRI drivers" msgstr "Графическая среда для настройки DRI драйверов" #: driconf_commonui.py:742 msgid "Translated by" msgstr "Переводчики" #: driconf_commonui.py:748 driconf_complexui.py:871 msgid "About DRIconf" msgstr "О DRIconf" #: driconf_complexui.py:39 msgid "Application" msgstr "Программа" #: driconf_complexui.py:46 msgid "Apply only to this executable" msgstr "Применить только для заданного файла" #: driconf_complexui.py:49 msgid "" "Leave this disabled to configure all applications.\n" "Beware that some applications or games are just a shell script that starts a " "real executable with a different name." msgstr "" "Оставить отключенным для конфигурации всех приложений.\n" "Внимание! Некоторые приложения или игры являются просто shell скриптами, " "которые запускают другое приложение с другим именем." #: driconf_complexui.py:73 msgid "Unknown" msgstr "Неизвестные" #: driconf_complexui.py:87 driconf_simpleui.py:571 msgid "(no description)" msgstr "(нет описания)" #: driconf_complexui.py:163 msgid "" "Enter the name of the application below. This just serves as a description " "for you. Don't forget to set the executable afterwards." msgstr "" "Введите название приложения. Это название будет кратким описанием " "приложения. Не забудьте указать название файла для запуска приложения." #: driconf_complexui.py:170 driconf_simpleui.py:282 msgid "Application Name" msgstr "Название приложения" #: driconf_complexui.py:205 msgid "Describe the device that you would like to configure." msgstr "Опишите устройство, которое вы хотите настроить." #: driconf_complexui.py:210 msgid "Screen Number" msgstr "Номер Экрана" #: driconf_complexui.py:221 msgid "Driver Name" msgstr "Драйвер" #: driconf_complexui.py:344 #, python-format msgid "%s on screen %s" msgstr "%s на экране %s" #: driconf_complexui.py:348 #, python-format msgid "Screen %s" msgstr "Экран %s" #: driconf_complexui.py:354 msgid "Unspecified device" msgstr "Неизвестное устройство" #: driconf_complexui.py:578 #, python-format msgid "Parsing the driver's configuration information: %s" msgstr "Обрабатываю информацию о конфигурации драйвера: %s" #: driconf_complexui.py:616 #, python-format msgid "Really delete application \"%s\"?" msgstr "Действительно хотите удалить приложение \"%s\"?" #: driconf_complexui.py:622 msgid "Really delete device and all applications in it?" msgstr "" "Действительно хотите удалить устройство и все связанные с ним приложения?" #: driconf_complexui.py:643 msgid "Rename Application" msgstr "Переименовать приложение" #: driconf_complexui.py:646 msgid "Device Properties" msgstr "Свойства" #: driconf_complexui.py:653 msgid "New Application" msgstr "Новое приложение" #: driconf_complexui.py:656 msgid "New Device" msgstr "Новое устройство" #: driconf_complexui.py:680 msgid "The configuration contains invalid entries. Save anyway?" msgstr "Эта конфигурация содержит неверные данные. Все равно сохранить?" #: driconf_complexui.py:691 driconf_simpleui.py:820 #, python-format msgid "Can't open \"%s\" for writing." msgstr "Не могу открыть \"%s\" для записи." #: driconf_complexui.py:710 #, python-format msgid "Really reload \"%s\" from disk?" msgstr "Действительно хотите перечитать \"%s\"?" #: driconf_complexui.py:721 #, python-format msgid "Couldn't open \"%s\" for reading. The file was not reloaded." msgstr "Не могу открыть \"%s\" для чтения. Файл не был перечитан заново." #: driconf_complexui.py:733 #, python-format msgid "" "Configuration file \"%s\" contains errors:\n" "%s\n" "The file was not reloaded." msgstr "" "Файл конфигурации \"%s\" содержит ошибки:\n" "%s\n" "Этот файл не будет перечитан заново." #: driconf_complexui.py:842 msgid "Save selected configuration file" msgstr "Сохранить выбранный файл конфигурации" #: driconf_complexui.py:845 msgid "Reload selected configuration file" msgstr "Перечитать выбранный файл конфигурации" #: driconf_complexui.py:849 msgid "Create a new device or application" msgstr "Создать новое устройство или программу" #: driconf_complexui.py:852 msgid "Remove selected device or application" msgstr "Удалить выбранное устройство или приложение" #: driconf_complexui.py:855 msgid "Move selected item up" msgstr "Переместить выбранный элемент вверх" #: driconf_complexui.py:858 msgid "Move selected item down" msgstr "Переместить выбранный элемент вниз" #: driconf_complexui.py:861 msgid "Properties of selected device or application" msgstr "Свойства выбранного устройства или приложения" #: driconf_complexui.py:875 msgid "Exit DRIconf" msgstr "Выход из DRIconf" #: driconf_complexui.py:989 msgid "There are unsaved modifications. Exit anyway?" msgstr "У Вас есть несохраненные изменения. Все равно выйти?" #: driconf_simpleui.py:294 msgid "Executable Name" msgstr "Имя исполняемого файла" #: driconf_simpleui.py:314 msgid "" "The executable name is important for identifying the application. If you get " "it wrong, your settings will not apply. Beware that some applications are " "started by a shell script, that has a different name than the real " "executable." msgstr "" "Имя исполняемого файла приложения идентифицирует все связанные с ним " "настройки конфигурации приложения. Если вы неправильно его укажете, то " "конфигурация не будет работать. Обратите внимание, что некоторые приложения " "вызываются из shell скриптов, имеющих другое имя, отличное от исполняемого " "файла." #: driconf_simpleui.py:377 msgid "Add setting" msgstr "Добавить настройки" #: driconf_simpleui.py:428 msgid "Direct Rendering Preferences" msgstr "Настройки DRI" #: driconf_simpleui.py:441 driconf_simpleui.py:444 driconf_simpleui.py:456 #, fuzzy msgid "Screen" msgstr "Экран %s" #: driconf_simpleui.py:473 msgid "Expert Mode" msgstr "Режим эксперта" #: driconf_simpleui.py:493 #, fuzzy msgid "Application settings" msgstr "Название приложения" #: driconf_simpleui.py:556 driconf_simpleui.py:630 #, fuzzy msgid "Unknown options" msgstr "Неизвестные параметры" #: driconf_simpleui.py:635 msgid "Known options" msgstr "Известные параметры" #: driconf_simpleui.py:708 msgid "You must enter both an application name and an executable name." msgstr "" "Вы должны указать название приложения и связанный с ним исполняемый файл" #: driconf_simpleui.py:713 msgid "" "There exists an application configuration with the same name. Please enter a " "different name." msgstr "" "Конфигурация приложения с таким именем уже существует. Выберите другое имя." #: driconf_simpleui.py:718 msgid "" "There exists an application configuration for the same executable. You can't " "create multiple application configurations for the same executable." msgstr "" "Конфигурация приложения с таким исполняемым файлом уже существует. Вы не " "можете создать конфигурации с разными названиями и с одним и тем же " "исполняемым файлом." #: driconf_simpleui.py:734 #, fuzzy msgid "Add Application" msgstr "Добавить Приложение" #: driconf_simpleui.py:755 #, fuzzy msgid "Application Properties" msgstr "Настройки приложения" #: driconf_simpleui.py:837 #, fuzzy, python-format msgid "The DRI configuration file \"%s\" is broken or could not be created." msgstr "Для Вас был создан новый файл конфигурации \"%s\"." #: driconf_simpleui.py:848 #, fuzzy, python-format msgid "Your DRI configuration file \"%s\" is not writable." msgstr "Для Вас был создан новый файл конфигурации \"%s\"." #: driconf_simpleui.py:859 #, python-format msgid "" "Normalization of your DRI configuration file \"%s\" failed. Please report a " "bug with the original configuration file attached. The file will be treated " "as read-only for now." msgstr "" driconf-0.9.1/README0000644000175000017500000002207710503377740013043 0ustar felixfelixDRIconf: DRI Configuration Applet Introduction ------------ DRI is the direct rendering infrastructure in XFree86 and X.org, which provides 3D hardware acceleration. Most 3D drivers have a number of options for tuning the performance and visual quality. DRIconf is a configuration applet that allows you to change these parameters. In order to use it you need at least X.org 6.8 or XFree86 4.4. 3D drivers in earlier X releases did not support configuration. Installation ------------ This tool is written in Python. Before installing make sure that a Python version (>= 2.3) and the matching packages xml.parsers.expat and python-gtk2 version 2.4 or newer are installed. The installation uses Python's distutils package. By default driconf will be installed into various sub-directories under /usr/local. You can change this behaviour in setup.cfg. In that case you may also have to adjust the driconf start-up script accordingly. To start the installation run the following command as root: python setup.py install If everything goes well you should see something like this: running install running build running build_py creating build creating build/lib copying dri.py -> build/lib copying driconf.py -> build/lib copying driconf_commonui.py -> build/lib copying driconf_complexui.py -> build/lib copying driconf_simpleui.py -> build/lib running build_scripts creating build/scripts-2.3 copying and adjusting driconf -> build/scripts-2.3 changing mode of build/scripts-2.3/driconf from 644 to 755 running install_lib creating /usr/local/lib/driconf copying build/lib/driconf.py -> /usr/local/lib/driconf copying build/lib/driconf_commonui.py -> /usr/local/lib/driconf copying build/lib/dri.py -> /usr/local/lib/driconf copying build/lib/driconf_simpleui.py -> /usr/local/lib/driconf copying build/lib/driconf_complexui.py -> /usr/local/lib/driconf byte-compiling /usr/local/lib/driconf/driconf.py to driconf.pyc byte-compiling /usr/local/lib/driconf/driconf_commonui.py to driconf_commonui.pyc byte-compiling /usr/local/lib/driconf/dri.py to dri.pyc byte-compiling /usr/local/lib/driconf/driconf_simpleui.py to driconf_simpleui.pyc byte-compiling /usr/local/lib/driconf/driconf_complexui.py to driconf_complexui.pyc running install_scripts copying build/scripts-2.3/driconf -> /usr/local/bin changing mode of /usr/local/bin/driconf to 755 running install_data creating /usr/local/share/driconf copying card.png -> /usr/local/share/driconf copying screen.png -> /usr/local/share/driconf copying screencard.png -> /usr/local/share/driconf copying drilogo.jpg -> /usr/local/share/driconf creating /usr/local/share/locale/de creating /usr/local/share/locale/de/LC_MESSAGES copying de/LC_MESSAGES/driconf.mo -> /usr/local/share/locale/de/LC_MESSAGES creating /usr/local/share/locale/es creating /usr/local/share/locale/es/LC_MESSAGES copying es/LC_MESSAGES/driconf.mo -> /usr/local/share/locale/es/LC_MESSAGES creating /usr/local/share/locale/it creating /usr/local/share/locale/it/LC_MESSAGES copying it/LC_MESSAGES/driconf.mo -> /usr/local/share/locale/it/LC_MESSAGES creating /usr/local/share/locale/ru creating /usr/local/share/locale/ru/LC_MESSAGES copying ru/LC_MESSAGES/driconf.mo -> /usr/local/share/locale/ru/LC_MESSAGES After successful installation you can run driconf from the shell. The release includes an example driconf.desktop file. You can copy that to /usr/share/applications/driconf.desktop to add driconf to your desktop's settings menu. I hope you find the user interface intuitive and instructive. Feedback is welcome on dri-users@lists.sourceforge.net. If you need help getting started read on below. Happy tuning ... Felix Kuehling Getting Started --------------- When you start DRIconf for the first time, it will automatically create a configuration file for you. It automatically detects configurable 3D accelerators, usually only one. If it doesn't find any devices then it will start in Expert Mode (see below). Let's assume that your system is set up correctly and that DRIconf starts normally. At the top of the window you see a line that describes your 3D graphics card and driver. Below that there is a notebook with one or more tabs that contains options that can be tweaked in the 3D driver. You can go ahead and experiment with them. Changes apply immediately to any 3D applications that are newly started. At the bottom of the window there is an expander labeled "Application settings". If you never created any application-specific settings, this area is hidden until you click on that line. If that is the case click on it now. You see a row of four buttons. In order to add settings for an application click on the "Add" button. Now you are asked for the name of the application and the name of the executable. The name is just a description for your convenience. The executable name is important for identifying the application. Beware that some applications and games end up running a different executable than what you type in the shell. For example q3demo is only a shell script that starts an executable called q3demo.x86 on my system. In this example you'd need to enter "q3demo.x86", otherwise your settings would not apply. After clicking OK, the left-most button shows you the name of the application you just entered. If you create settings for multiple applications you can choose the application by clicking on the button and selecting the desired application from the menu. Below the row of buttons you now see an invitation to add settings for the selected application. Click on the button on the right hand side. You will see a menu that presents all the options of the 3D driver. Pick one option. This will add the option to that area and allow you to change it. The settings you make here will override the default settings for the device in the selected application. You can add more settings in the same way. Remove settings that you don't want any more by clicking on the "Remove" button on the right hand side of an option. You can remove all settings for an application by selecting the big "Remove" button above the Application settings. If you change your mind about the name of the application or the executable, use the "Properties" button. That's really all there is to it. If that's not enough for you, read on about the expert mode. Expert Mode ----------- Usually you will not run DRIconf in expert mode. It happens automatically under some exceptional conditions which usually mean that something in your system setup is broken. In such cases it may help with the diagnosis. You can also enter expert mode from the standard mode using the "Expert Mode" button at the bottom of the window or by starting DRIconf with the "-e" option. In expert mode the configuration file structure is represented by a tree on the left hand side of the window. The tree has one node for each 3D graphics device you may have, usually only one though. Below that node there are application nodes. If none is selected, select one now. The right pane of the window shows the available options of the 3D driver. Options are organized in several tabs of a notebook. Left of each option there is a check box. Activating it will allow you to change the value of that option. Only options whose check box is active will be written to the configuration file. With the button on the right of each option you can always restore the respective default value for reference. In expert mode changes don't take effect immediately. When you're done changing options, click on the "Save" button in the button bar at the top of the DRIconf window to save and apply the settings. Adding an Application-Specific Configuration -------------------------------------------- Select a device node in the configuration tree on the left hand side. Then click on the "New" button at the top of the window. This opens a small dialog that asks for the name of the application. This is really only a descriptive string. After confirming with "OK" you will have a new application node with the name you just entered. The right pane of the window now shows the driver options with their settings for the new application. Note the entry above the tabs containing the actual options. If you activate it you can enter the name of the application's executable file. This will make the settings below apply only to that particular application. If you leave the entry disabled, the settings will apply to all applications. Beware that some applications and games end up running a different executable than what you type in the shell. For example q3demo is only a shell script that starts an executable called q3demo.x86 on my system. In this example you'd need to enter "q3demo.x86", otherwise the settings would not apply. Advanced Features ----------------- Some advanced features include adding more devices and changing the order of devices and applications. The order matters only in rare cases, when multiple application nodes apply to the same application. If they set the same options, then only the last setting takes effect. driconf-0.9.1/driconf_commonui.py0000644000175000017500000007105410503377177016072 0ustar felixfelix# DRI configuration GUI: common UI components and helpers, global vars # Copyright (C) 2003-2006 Felix Kuehling # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Contact: http://fxk.de.vu/ import os import locale import gettext import math import dri import pygtk pygtk.require ("2.0") import gtk import gobject # Install translations. Search in the current directory first (for # easy testing). Then search in the default location and in # /usr/local/share/locale. If all this fails fall back to the null # translation. try: _ = gettext.translation ("driconf", ".").ugettext except IOError: try: _ = gettext.translation ("driconf").ugettext except IOError: _ = gettext.translation ("driconf", "/usr/local/share/locale", fallback=True).ugettext # global variable: lang locale.setlocale(locale.LC_ALL, '') lang,encoding = locale.getlocale(locale.LC_MESSAGES) if lang: underscore = lang.find ('_') if underscore != -1: lang = lang[0:underscore] else: lang = "en" # encoding is only a dummy. Pango uses UTF-8 everywhere. :) del encoding # global variable: version version = "0.9.1" # global variable: dpy dpy = None # global variable: main window mainWindow = None # Helper function: # Find a file that should have been installed in .../shared/driconf # Prefixes of __file__ are tried. And the current directory as a fallback. def findInShared (name): # try all /share/driconf/name for all prefixes of __file__ head,tail = os.path.split (__file__) while head and tail: f = os.path.join (head, "share/driconf", name) if os.path.isfile (f): return f head,tail = os.path.split (head) # try name in the current directory if os.path.isfile (name): return name print "Warning: could not find %s." % name # nothing found return None def fileIsWritable(filename): """ Find out if a file is writable. Returns True for existing writable files, False otherwise. """ try: fd = os.open (filename, os.O_WRONLY) except OSError: return False if fd == -1: return False else: os.close (fd) return True # Helper function: # escape text that is going to be passed as markup to pango def escapeMarkup (text): return text.replace ("<", "<").replace (">", ">") class StockImage (gtk.Image): """ A stock image. """ def __init__ (self, stock, size): """ Constructor. """ gtk.Image.__init__ (self) self.set_from_stock (stock, size) class WrappingLabel (gtk.Label): """ Line wrapping label with a highlight method """ def __init__ (self, label, justify=gtk.JUSTIFY_LEFT, wrap=True, width=-1, height=-1): self.text = escapeMarkup (label) gtk.Label.__init__ (self, label) self.set_justify (justify) self.set_line_wrap (wrap) self.set_size_request (width, height) def highlight (self, flag): """ Highlight the label. """ if flag: self.set_markup ('' + self.text + \ '') else: self.set_markup (self.text) class WrappingDummyCheckButton (gtk.HBox): """ Dummy Check button with a line wrapping label. """ def __init__ (self, label, justify=gtk.JUSTIFY_LEFT, wrap=True, width=-1, height=-1): """ Constructor. """ gtk.HBox.__init__ (self) self.text = escapeMarkup (label) self.label = WrappingLabel (label, justify, wrap, width, height) self.label.show() self.pack_start (self.label, False, False, 0) def highlight (self, flag): """ Highlight the label. """ self.label.highlight (flag) def get_active (self): """ Hack: make it behave like a check button ... ... to some extent such that OptionLine does not need to distinguish between simple and complex mode. """ return True class WrappingCheckButton (gtk.CheckButton): """ Check button with a line wrapping label. """ def __init__ (self, label, justify=gtk.JUSTIFY_LEFT, wrap=True, width=-1, height=-1): """ Constructor. """ gtk.CheckButton.__init__ (self) checkHBox = gtk.HBox() self.text = escapeMarkup (label) self.label = WrappingLabel (label, justify, wrap, width, height) self.label.show() checkHBox.pack_start (self.label, False, False, 0) checkHBox.show() self.add (checkHBox) def highlight (self, flag): """ Highlight the label. """ self.label.highlight (flag) class WrappingOptionMenu (gtk.Button): """ Something that looks similar to a gtk.OptionMenu ... but can wrap the text and has a simpler interface. It acts as a bidirectional map from option descriptions (opt) to values (val) at the same time. """ def __init__ (self, optValList, callback, justify=gtk.JUSTIFY_LEFT, wrap=True, width=-1, height=-1): """ Constructor. """ gtk.Button.__init__ (self) self.callback = callback self.optDict = {} self.valDict = {} for opt,val in optValList: self.optDict[opt] = val self.valDict[val] = opt firstOpt,firstVal = optValList[len(optValList)-1] self.value = firstVal hbox = gtk.HBox() arrow = gtk.Arrow (gtk.ARROW_DOWN, gtk.SHADOW_OUT) arrow.show() self.label = gtk.Label(firstOpt) self.label.set_justify (justify) self.label.set_line_wrap (wrap) self.label.set_size_request (width, height) self.label.show() hbox.pack_start (self.label, True, False, 5) hbox.pack_start (arrow, False, False, 0) hbox.show() self.add (hbox) self.menu = gtk.Menu() for opt,val in optValList: item = gtk.MenuItem (opt) item.connect("activate", self.menuSelect, opt) item.show() self.menu.append (item) self.connect("event", self.buttonPress) def setOpt (self, opt): """ Select an option by the option description. """ self.label.set_text (opt) self.value = self.optDict[opt] def setValue (self, value): """ Select an option by its value. """ self.label.set_text (self.valDict[value]) self.value = value def getValue (self): """ Return the current value. """ return self.value def buttonPress (self, widget, event): """ Popup the menu. """ if event.type == gtk.gdk.BUTTON_PRESS: self.menu.popup(None, None, None, event.button, event.time) return True else: return False def menuSelect (self, widget, opt): """ React to selection of a menu item by the user. """ self.setOpt (opt) self.callback (self) class SlideSpinner (gtk.VBox): """ A spin button with a slider below. This is used for representing int and float options with a single range. The slider is only displayed on float options or on integer options with a large range (>= 20, arbitrary threshold). """ def __init__ (self, callback, lower, upper, integer): gtk.VBox.__init__ (self) diff = upper - lower self.isInteger = integer if integer: step = 1 page = (diff+4) / 5 self.digits = 0 else: self.digits = -int(math.floor(math.log10(diff) + 0.5)) + 3 step = math.pow(10, -self.digits + 1) page = step * 10 if self.digits < 0: self.digits = 0 self.callback = callback self.adjustment = gtk.Adjustment (lower, lower, upper, step, page) self.spinner = gtk.SpinButton (self.adjustment, step, self.digits) self.spinner.set_numeric (True) self.spinner.show() self.pack_start (self.spinner, False, False, 0) if not integer or diff >= 20: self.slider = gtk.HScale (self.adjustment) self.slider.set_size_request (200, -1) self.slider.set_draw_value (False) self.slider.show() self.pack_start (self.slider, False, False, 0) self.adjConn = self.adjustment.connect ("value-changed", callback) def getValue (self): self.spinner.update() if self.isInteger: return int(self.adjustment.get_value()) else: return self.adjustment.get_value() def setValue (self, value): self.adjustment.disconnect (self.adjConn) self.adjustment.set_value (value) self.adjConn = self.adjustment.connect ("value-changed", self.callback) class OptionLine: """ One line in a SectionPage. """ def __init__ (self, page, i, opt, simple, removable = False): """ Constructor. """ self.page = page self.opt = opt self.index = i typeString = opt.type if opt.valid: typeString = typeString+" ["+ \ reduce(lambda x,y: x+','+y, map(str,opt.valid))+"]" # a check button with an option description desc = opt.getDesc([lang]) if desc != None: desc = desc.text else: desc = u"(no description available)" if simple: self.label = WrappingDummyCheckButton (desc, width=200) else: self.label = WrappingCheckButton (desc, width=200) self.label.set_active (page.app.options.has_key (opt.name)) self.label.set_sensitive (page.app.device.config.writable) self.label.connect ("clicked", self.checkOpt) tooltipString = str(opt) page.tooltips.set_tip (self.label, tooltipString) self.label.show() page.table.attach (self.label, 0, 1, i, i+1, gtk.EXPAND|gtk.FILL, 0, 5, 5) # a button to reset the option to its default value sensitive = self.label.get_active() and page.app.device.config.writable self.resetButton = gtk.Button () if removable: pixmap = StockImage ("gtk-remove", gtk.ICON_SIZE_SMALL_TOOLBAR) else: pixmap = StockImage ("gtk-undo", gtk.ICON_SIZE_SMALL_TOOLBAR) pixmap.show() self.resetButton.add (pixmap) self.resetButton.set_relief (gtk.RELIEF_NONE) self.resetButton.set_sensitive (sensitive) if removable: page.tooltips.set_tip(self.resetButton, _("Remove")) self.resetButton.connect ("clicked", self.removeOpt) else: page.tooltips.set_tip(self.resetButton, _("Reset to default value")) self.resetButton.connect ("clicked", self.resetOpt) self.resetButton.show() page.table.attach (self.resetButton, 2, 3, i, i+1, 0, 0, 5, 5) # get the option value, if it's invalid leave it as a string if page.app.options.has_key (opt.name): self.isValid = opt.validate (page.app.options[opt.name]) try: value = dri.StrToValue (page.app.options[opt.name], opt.type) except dri.XMLError: self.isValid = False if not self.isValid: value = page.app.options[opt.name] else: value = opt.default self.isValid = True # the widget for editing the option value self.initWidget (opt, value) self.widget.set_sensitive (sensitive) page.table.attach (self.widget, 1, 2, i, i+1, gtk.FILL, 0, 5, 5) def initWidget (self, opt, value): """ Initialize the option widget. The widget type is selected automatically based in the option type and the set/range of valid values. """ type = opt.type if not self.isValid: type = "invalid" if type == "bool": self.widget = gtk.ToggleButton () self.widget.set_use_stock (True) if value: self.widget.set_label ("gtk-yes") else: self.widget.set_label ("gtk-no") self.widget.set_active (value) self.widget.connect ("toggled", self.activateSignal) elif type == "int" and opt.valid and len(opt.valid) == 1: self.widget = SlideSpinner (self.activateSignal, opt.valid[0].start, opt.valid[0].end, True) self.widget.setValue (value) elif type == "float" and opt.valid and len(opt.valid) == 1: self.widget = SlideSpinner (self.activateSignal, opt.valid[0].start, opt.valid[0].end, False) self.widget.setValue (value) elif type == "enum" or \ (type != "invalid" and opt.valid and reduce (lambda x,y: x and y, map(dri.Range.empty, opt.valid))): desc = opt.getDesc([lang]) optValList = [] for r in opt.valid: if type == "enum": for v in range (r.start, r.end+1): vString = dri.ValueToStr(v, type) if type == "enum" and desc and desc.enums.has_key(v): string = desc.enums[v] else: string = vString optValList.append ((string, vString)) else: vString = dri.ValueToStr(r.start, type) optValList.append ((vString, vString)) self.widget = WrappingOptionMenu (optValList, self.activateSignal, width=180) self.widget.setValue(str(value)) else: self.widget = gtk.Entry () if type == "invalid": self.widget.set_text (value) else: self.widget.set_text (dri.ValueToStr(value, type)) self.widget.connect ("changed", self.activateSignal) self.highlightInvalid() self.widget.show() def updateWidget (self, value, valid): """ Update the option widget to a new value. """ if self.widget.__class__ == gtk.ToggleButton: self.widget.set_active (value) elif self.widget.__class__ == SlideSpinner: self.widget.setValue (value) elif self.widget.__class__ == WrappingOptionMenu: self.widget.setValue(str(value)) elif self.widget.__class__ == gtk.Entry: if self.opt.type == "bool" and valid: if value: newText = "true" else: newText = "false" else: newText = str(value) # only set new text if it changed, otherwise the changed signal # is triggered without a real value change if newText != self.widget.get_text(): self.widget.set_text (newText) def getValue (self): """ Get the current value from the option widget. Returns None if the widget is not activated. """ if not self.label.get_active(): return None elif self.widget.__class__ == gtk.ToggleButton: if self.widget.get_active(): return "true" else: return "false" elif self.widget.__class__ == SlideSpinner: return str(self.widget.getValue()) elif self.widget.__class__ == WrappingOptionMenu: return self.widget.getValue() elif self.widget.__class__ == gtk.Entry: return self.widget.get_text() else: return None def checkOpt (self, widget): """ Handler for 'check button (maybe) toggled'. """ if self.label.get_active(): self.widget.set_sensitive (True) self.resetButton.set_sensitive (True) else: self.widget.set_sensitive (False) self.resetButton.set_sensitive (False) if not self.isValid: self.highlightInvalid() self.page.doValidate() self.page.optionModified (self) def activateSignal (self, widget, dummy=None): """ Handler for 'widget was activated by the user'. """ if self.widget.__class__ == gtk.ToggleButton: value = self.widget.get_active() if value: self.widget.set_label ("gtk-yes") else: self.widget.set_label ("gtk-no") self.doValidate() self.page.optionModified (self) def resetOpt (self, widget): """ Reset to default value. """ self.updateWidget (self.opt.default, True) self.page.optionModified (self) def removeOpt (self, widget): """ Reset to default value. """ self.page.removeOption (self, self.opt) def doValidate (self): """ Validate the current value from the option widget. This is only interesting if the check button is active. Only gtk.Entry widgets should ever give invalid values in practice. Invalid option widgets are highlighted. If the validity changed, reinitialize the widget and have the page check if its validity was changed, too. """ value = self.getValue() if value == None: return valid = self.opt.validate (value) if (valid and not self.isValid) or (not valid and self.isValid): self.isValid = valid self.highlightInvalid() # Re-init the widget. i = self.index self.page.table.remove(self.widget) self.widget.destroy() self.initWidget(self.opt, dri.StrToValue(value, self.opt.type)) self.widget.show() self.page.table.attach (self.widget, 1, 2, i, i+1, gtk.FILL, 0, 5, 5) # Update parent page. self.page.doValidate() def highlightInvalid (self): self.label.highlight (not self.isValid and self.label.get_active()) def validate (self): return self.isValid or not self.label.get_active() class SectionPage (gtk.ScrolledWindow): """ One page in the DriverPanel with one OptionLine per option. """ def __init__ (self, optSection, app, simple): """ Constructor. """ gtk.ScrolledWindow.__init__ (self) self.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.optSection = optSection self.app = app self.simple = simple self.tooltips = gtk.Tooltips() self.table = gtk.Table (len(optSection.optList), 3) self.optLines = [] for i in range (len(optSection.optList)): self.optLines.append (OptionLine (self, i, optSection.optList[i], simple)) self.table.show() self.add_with_viewport (self.table) self.doValidate (init=True) def optionModified (self, optLine): """ Callback that is invoked by changed option lines. """ self.app.modified(self.app) def doValidate (self, init=False): """ Validate the widget settings. The return value indicates if there are invalid option values. """ valid = True for optLine in self.optLines: if not optLine.validate(): valid = False break if not init and \ ((valid and not self.isValid) or (not valid and self.isValid)): self.isValid = valid mainWindow.validateDriverPanel() self.isValid = valid def validate (self): return self.isValid def commit (self): """ Commit the widget settings. """ for optLine in self.optLines: name = optLine.opt.name value = optLine.getValue() if value == None and self.app.options.has_key(name): del self.app.options[name] elif value != None: self.app.options[name] = value class UnknownSectionPage(gtk.VBox): """ Special section page for options unknown to the driver. """ def __init__ (self, driver, app): """ Constructor. """ gtk.VBox.__init__ (self) scrolledWindow = gtk.ScrolledWindow () scrolledWindow.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.app = app self.driver = driver self.nameEditable = app.device.config.writable and not driver self.valueEditable = app.device.config.writable # copy options (dict function does not exist in Python 2.1 :( ) opts = {} for name,val in app.options.items(): opts[name] = val # remove all options known to the driver self.driverOpts = {} if driver: for sect in driver.optSections: for opt in sect.optList: self.driverOpts[opt.name] = opt if opts.has_key (opt.name): del opts[opt.name] # short cut self.opts = [] if driver and len(opts) == 0: return # list all remaining options here self.store = gtk.ListStore (gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN) self.view = gtk.TreeView (self.store) self.view.set_rules_hint (True) optionRenderer = gtk.CellRendererText() optionRenderer.connect ("edited", self.editedSignal, 0) column = gtk.TreeViewColumn (_("Option"), optionRenderer, text=0, editable=2) self.view.append_column (column) valueRenderer = gtk.CellRendererText() valueRenderer.connect ("edited", self.editedSignal, 1) column = gtk.TreeViewColumn (_("Value"), valueRenderer, text=1, editable=3) self.view.append_column (column) self.view.get_selection().set_mode (gtk.SELECTION_MULTIPLE) for name,val in opts.items(): self.store.set (self.store.append(), 0, str(name), 1, str(val), 2, self.nameEditable, 3, self.valueEditable) self.opts.append (name) self.view.show() scrolledWindow.add (self.view) scrolledWindow.show() self.pack_start (scrolledWindow, True, True, 0) buttonBox = gtk.HButtonBox() buttonBox.set_layout (gtk.BUTTONBOX_END) if not self.driver: newButton = gtk.Button (stock="gtk-add") newButton.connect ("clicked", self.newSetting) newButton.set_sensitive(app.device.config.writable) newButton.show() buttonBox.add (newButton) deleteButton = gtk.Button (stock="gtk-remove") deleteButton.connect ("clicked", self.deleteSelection) deleteButton.set_sensitive(app.device.config.writable) deleteButton.show() buttonBox.add (deleteButton) helpButton = gtk.Button (stock="gtk-help") helpButton.connect ("clicked", self.help) helpButton.show() buttonBox.add (helpButton) buttonBox.set_child_secondary (helpButton, True) buttonBox.show() self.pack_start (buttonBox, False, False, 0) def validate (self): """ These options can't be validated. """ return True def commit (self): """ These options are never changed. """ pass def deleteSelection (self, widget): """ Delete the selected items from the list and app config. """ # Damn it! gtk.TreeSelection.get_selected_rows doesn't exist. # So we iterate over the whole list store and delete all selected # items. cur = self.store.get_iter_first() i = 0 while cur: next = self.store.iter_next (cur) if self.view.get_selection().iter_is_selected (cur): name = self.store.get_value (cur, 0) del self.app.options[name] del self.opts[i] self.store.remove (cur) self.app.modified(self.app) else: i = i + 1 cur = next def newSetting (self, widget): """ Create a new setting. Choose a unique option name, that is unknown to the driver. """ name = "option" val = "" i = 0 while self.app.options.has_key(name) or \ self.driverOpts.has_key(name): i = i + 1 name = "option%d" % i self.app.options[name] = val self.opts.append (name) self.store.set (self.store.append(), 0, str(name), 1, str(val), 2, self.nameEditable, 3, self.valueEditable) self.app.modified(self.app) def help (self, widget): if self.driver: msg = _("This tab shows settings that are no longer supported " "by the 3D driver. Unless you're using the same " "configuration file on another computer with a different " "driver version, it is safe to remove these settings.") else: msg = _("The driver for this device could not be determined or " "does not support configuration. You can still change " "the settings but it cannot be verified whether they are " "supported and valid.") dialog = gtk.MessageDialog ( mainWindow, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE, msg) dialog.connect ("response", lambda d,r: d.destroy()) dialog.show() def editedSignal (self, widget, row, newVal, value): row = int(row) name = self.opts[row] cursor = self.store.get_iter_first() for i in range(row): cursor = self.store.iter_next (cursor) if value: if self.app.options[name] == newVal: return self.app.options[name] = newVal self.store.set (cursor, 0, str(name), 1, str(newVal), 2, self.nameEditable, 3, self.valueEditable) else: if name == newVal or self.app.options.has_key(newVal) or \ self.driverOpts.has_key(newVal): return val = self.app.options.pop(name) name = newVal self.opts[row] = name self.app.options[name] = val self.store.set (cursor, 0, str(name), 1, str(val), 2, self.nameEditable, 3, self.valueEditable) self.app.modified(self.app) if gtk.__dict__.has_key("AboutDialog"): # About Dialog was added in gtk 2.6. class AboutDialog (gtk.AboutDialog): def __init__ (self): gtk.AboutDialog.__init__(self) translators = _("translator-credits") if translators == "translator-credits": translators = None self.set_name("DRIconf") self.set_version(version) self.set_copyright(u"Copyright \u00a9 2003-2006 " u"Felix K\u00fchling") self.set_comments(_("A configuration applet for DRI drivers")) self.set_website(u"http://dri.freedesktop.org/wiki/DriConf") if translators: self.set_translator_credits(translators) logoPath = findInShared("drilogo.jpg") if logoPath: logo = gtk.gdk.pixbuf_new_from_file (logoPath) self.set_logo(logo) else: class AboutDialog (gtk.MessageDialog): def __init__ (self): translators = _("translator-credits") if translators == "translator-credits": translators = None text = u"DRIconf %s\n" \ u"%s\n" \ u"Copyright \u00a9 2003-2005 Felix K\u00fchling\n" \ u"\n" \ u"http://dri.freedesktop.org/wiki/DriConf" \ % (version, _("A configuration applet for DRI drivers")) if translators: text = text + (u"\n\n%s: %s" % (_("Translated by"), _("translator-credits"))) gtk.MessageDialog.__init__( self, mainWindow, gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE, text) self.set_title(_("About DRIconf")) driconf-0.9.1/PKG-INFO0000644000175000017500000000040210503400007013223 0ustar felixfelixMetadata-Version: 1.0 Name: driconf Version: 0.9.1 Summary: A configuration applet for DRI drivers Home-page: http://dri.freedesktop.org/wiki/DriConf Author: Felix Kuehling Author-email: fxkuehl@gmx.de License: UNKNOWN Description: UNKNOWN Platform: UNKNOWN driconf-0.9.1/driconf.desktop0000644000175000017500000000036310503374531015167 0ustar felixfelix[Desktop Entry] Encoding=UTF-8 Name=3D Acceleration Comment=Change 3D Acceleration options Exec=driconf Icon=/usr/local/share/driconf/driconf-icon.png Type=Application Categories=GNOME;Application;Settings;AdvancedSettings; StartupNotify=true driconf-0.9.1/driconf0000755000175000017500000000163410276720740013530 0ustar felixfelix#!/usr/bin/python # Startup script for the DRI configuration GUI # Copyright (C) 2003-2005 Felix Kuehling # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Contact: http://fxk.de.vu/ import sys sys.path.append("/usr/local/lib/driconf") import driconf driconf.main() driconf-0.9.1/driconf-icon.png0000644000175000017500000000210610503372572015230 0ustar felixfelixPNG  IHDRw=bKGD pHYs  d_tIME#IDATHKlTeqg<:NgV-XY( I(!taX&Uo]Â(ĸ]Fc bH,P %Rtܹwap¸K9Za/; $(HLj;_zM^_:G%1Y /ZpYy E|Vqi苝7ƭg-#FyPW~DUSa&ozu:|X1!N4%kNԝMfyyZkyĖ!8S^{۲5 "Yes", "No". - Pushing "New" while an application is selected creates a new application in the same device. - Fixed: Handle options without any description. - Fixed: Entry widget always marked the configuration as modified. - Fixed: Message dialogs opened before the main window was created crashed. - Fixed: Segfault reloading a config file while an application was selected. driconf-0.0.10: Sat Oct 11 23:37:19 CEST 2003 - Added a "reload" button to reload a configuration from disk. - Added spaces to the toolbar. - Fixed: rename applications caused an exception (Michel Dänzer). - Fixed: Select gtk version 1.2 on systems that support version selection (Michel Dänzer). - Fixed: use getlocale(LC_MESSAGES) to select the language of option descriptions (Michel Dänzer) driconf-0.0.9: Fri Oct 3 14:21:23 CEST 2003 - Save button is only sensitive on modified configs. - No more annoying message box after saving successfully. - Ask before losing changes on exit. - Load configuration files before opening the main window. - Show a message box if the driver's config info has errors. - Make all dialogs transient windows for the main window, improves placement. - Fixed: workaround for a segfault in libgtk when deleting application entries. driconf-0.0.8: Sun Sep 28 12:31:48 CEST 2003 - Added a special section page for options that appear in a configuration file but are unknown to the driver (only shows up if necessary). - Improved error handling/reporting in case of invalid driver config info. - Improved handling of invalid option values. - Highlight applications with invalid options in the configuration tree. - Ask before saving a configuration with invalid entries. driconf-0.0.7: Mon Aug 25 23:43:34 CEST 2003 - If an application or device is selected the save button saves the containing configuration file. - Tries to write the default configuration for non-existing configuration files on startup showing a message dialog if successful. - Non-existent and non-creatable config files don't show up in the config tree. - Existing but non-writable config files are read-only, all the toolbar buttons and configuration widgets are unsensitive. - Fixed: Error message about failed xdriinfo generated an exception itself :-/ driconf-0.0.6: Thu Aug 21 03:40:37 CEST 2003 - Added a custom GtkOptionMenu-like widget for enums that wraps lines - Display options' XML elements as tooltip - Make widgets of disabled options unsensitive - Fixed: workaround for a strange problem with a modal dialog opened in the select_row callback of a ctree with selection mode SELECTION_BROWSE. It locked up the entire X session in a way that no more input was accepted! - Fixed: popen2.Popen3 didn't seem to work from inside gtk callbacks. driconf-0.0.5: Sat Aug 16 15:41:12 CEST 2003 - Adjust toolbar button sensitivity to selected config tree item - Reset individual options to their default value - Display translated description as option label, name and type as tooltip - Use popen2.Popen3 so that xdriinfo's stderr can be captured to produce more helpful error messages - Fixed: show an error message dialog if xdriinfo fails on program startup driconf-0.0.4: Mon Jul 28 23:20:16 CEST 2003 - Support for enum options - Fixed: top level element must be not driconf-0.0.3: Mon Jul 21 00:37:56 CEST 2003 - Appropriate widgets for specific option types and valid ranges - Changed options get activated automatically - Added a DRI logo - Installation using Python's distutils - Handles invalid configuration files gracefully driconf-0.0.2: Sun Jul 13 23:35:00 CEST 2003 - For non-existent files create one device per screen each with one empty application config - Fixed: Select a default language (en) and encoding (iso-8859-1) if not defined by the locale (e.g. "C") driconf-0.0.1: Sun Jul 13 19:29:12 CEST 2003 - Added CHANGELOG - Added TODO - Fixed: Forgot to commit changed entries before saving - Fixed: Install to $PREFIX/lib/$PYTHON/site-packages. It seems .pyo files are ignored. Install .pyc files instead. driconf-0.0.0: Sun Jul 13 17:00:00 CEST 2003 First release driconf-0.9.1/dri.py0000644000175000017500000004752310365605540013314 0ustar felixfelix# Python interface to DRI configuration # Copyright (C) 2003-2006 Felix Kuehling # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Contact: http://fxk.de.vu/ import os import string import re import xml.parsers.expat class Error (Exception): """ Base class for DRIError and XMLError """ def __init__ (self, problem): self.problem = problem def __str__ (self): return self.problem class DRIError (Error): """ Errors interfacing with xdriinfo """ pass class XMLError (Error): """ Errors in the DRI configuration data """ pass def XDriInfo (argStr, dpy = None): """ Call xdriinfo and raise DRIError on different failure conditions """ if dpy != None: dpyStr = "-display " + dpy + " " else: dpyStr = "" infopipe = os.popen ("xdriinfo " + dpyStr + argStr, "r") driInfo = infopipe.read() result = infopipe.close() if result != None: signal = result & 0xff status = result >> 8 if signal != 0: raise DRIError ("XDriInfo killed by signal " + signal + ".") elif status == 127: raise DRIError ("XDriInfo not found.") else: raise DRIError ("XDriInfo returned with non-zero exit code.") return driInfo def StrToValue (str, type): """ Helper: convert str to given type. Raises an XMLError if str is not of the correct type. """ try: if type == "int" or type == "enum": return int (str); elif type == "float": return float (str); else: if str == "true": return 1 elif str == "false": return 0 else: raise ValueError except ValueError: raise XMLError ("invalid value '" + str + "' for type '" + type + "'") def ValueToStr (value, type): """ Helper: convert value of given type to string. """ if type == "int" or type == "enum" or type == "float": return str(value) elif value: return "true" else: return "false" def GetDesc (desc, preferredLangs): """ Helper: get a description with a list of language preferences. If the specified languages are not available then try english. If that doesn't work either, return any description. If there are no descriptions at all, return None. """ for lang in preferredLangs: if desc.has_key (lang): return desc[lang] if desc.has_key ("en"): return desc["en"] if len(desc.values()) > 0: return desc.values()[0] return None class Range: """ An interval """ def __init__ (self, str, type): """ Parse str as a range. Raises an XMLError if str is not a legal range. """ assert type == "int" or type == "enum" or type == "float" list = string.split (str, ":") if len (list) == 0 or len (list) > 2: raise XMLError ("Invalid range '" + str + "'") if len (list) >= 1: self.start = StrToValue (list[0], type) if len (list) == 2: self.end = StrToValue (list[1], type) else: self.end = self.start def __str__ (self): if self.start == self.end: return str(self.start) else: return str(self.start) + ":" + str(self.end) def empty (self): return self.start == self.end class OptDesc: """ An option description in one language with enum values. """ def __init__ (self, lang, text): self.lang = lang self.text = text self.enums = {} def __str__ (self): result = '\n' for value in sort(self.enums.keys()): result = result + '\n' result = result + '' return result class OptInfo: """ All advertised information about an option. """ def __init__ (self, name, type, default, valid = None): """ Initialize option information. Raises XMLError if - type is illegal - default is not a valid value of type - valid attribute is specified for a bool option - valid is specified but illegal """ self.name = name if type != "int" and type != "enum" and type != "float" \ and type != "bool": raise XMLError ("invalid type '" + type + "'") self.type = type self.valid = None if valid: if type == "bool": raise XMLError ( "valid attribute is not allowed with bool options") else: self.valid = [Range(x, type) for x in string.split (valid, ",")] if not self.validate (default): raise XMLError ("default value is out of valid range") else: self.default = StrToValue (default, type) self.desc = {} def __str__ (self): result = '