Vraag Tweeten nieuwere GTK3-thema's


Het Numix-thema is beschikbaar door te installeren shimmer-themes van het softwarecentrum. Het wordt standaard geïnstalleerd in Xubuntu.

In 14.04 kon ik sommige aspecten van het thema aanpassen door bestanden zoals. Rechtstreeks te bewerken usr/share/themes/Numix/gtk-3.0/gtk.css of usr/share/themes/Numix/gtk-3.0/gtk-widgets.css.

Zelfs in 15.10 is de oplossing zoals beschreven in Een aangepaste tekstmarkering instellen zou gemakkelijk kunnen worden toegepast.

Maar in 16.04 lijkt dezelfde aanpak niet mogelijk. Ik keek naar de README.md bestand op de ontwikkelaarspagina hier: https://github.com/numixproject/numix-gtk-theme. Een paar citaten van daar:

Als je het thema wilt hacken, zorg dan dat je de opdracht inotifywait beschikbaar hebt, die wordt gebruikt voor het bekijken en automatisch bouwen van de bestanden.

en

Als u activa wijzigt, moet u de bestanden gtk.gresource.xml en gtk.gresource opnieuw genereren. U kunt Grrr gebruiken om het gemakkelijk te doen.

Dus hoe kan een normale, gemiddelde gebruiker elk aspect van het Numix-thema dat beschikbaar is voor 16.04 veranderen? Kan iemand bekend zijn met gtk3-thema's die gebruiken scss in plaats van alleen maar duidelijk css leg de procedure uit?


3
2018-05-01 13:47


oorsprong


dit weet je waarschijnlijk wel, maar door te kijken naar de numix github-site die ze gebruiken SASS en niet SCSS (hoewel SASS en SCSS dezelfde compiler gebruiken). dit zijn CSS-preprocessors, dus je schrijft de code in SASS en voert de compiler uit om CSS te produceren die direct kan worden gebruikt. de inotify-opdracht wordt waarschijnlijk gebruikt als een watcher om de compilatie te activeren. U hoeft zich niet druk te maken over dit alles als u slechts een paar wijzigingen aanbrengt. het is de moeite alleen echt waard als je wanhopig SASS-mogelijkheden wilt en verwacht je werk op lange termijn te behouden - the_velour_fog
Dank daarvoor. Nee, ik weet niet veel over de nieuwe manier, maar er is een tool die ik niet heb geprobeerd, die hier wordt beschreven: webupd8.org/2016/05/easily-create-your-own-numix-based-gtk.html. Deze tool biedt een GUI om verschillende aspecten aan te passen enkel en alleen van Numix-afgeleide thema's, AFAICT. - DK Bose
Sorry dat ik hier misschien heb gesproken. Mijn CSS, SASS, MINDER ervaring is van webontwikkeling. Je hoeft echter alleen naar de GTK "CSS" -bestanden te kijken om te beseffen dat ze geen rechte CSS gebruiken. van Gnome ontwikkelaar docs het lijkt erop dat ze een hybride van een oud "RC" -formaat en CSS gebruiken om het voor mensen zoals wij gemakkelijker te maken om deze wijzigingen aan te brengen. Het probleem is dat de bestanden waarnaar het thema "luistert" lijkt te veranderen van de ene release naar de volgende. - the_velour_fog
Eén ding dat ik zeker zou proberen is de numix-ontwikkelaars en de andere ontwikkelaars die de numix github-repository bekijken te vragen. om te vragen kun je gewoon naar de github repo gaan waarnaar je gelinkt bent. maak een github-account aan als je er geen hebt. open vervolgens een nieuw probleem en leg uit wat het probleem is dat u ondervindt. Eén suggestie dat ik het zou maken om iets specifieks te maken omdat het antwoord waarschijnlijk ingewikkeld en saai zal zijn! lol, b. de andere askubuntu-vraag waaraan je hebt gekoppeld, is behoorlijk specifiek, bijvoorbeeld "hoe kan ik de kleur van de numix-markering wijzigen?" - the_velour_fog
Ik heb geen specifiek probleem. Ik hoopte op een mini-tutorial hier over het aanpassen van deze moderne gtk3-thema's. De webup8-koppeling automatiseert alle stappen heel goed, maar het zou leuk zijn om te weten hoe je dergelijke dingen moet doen zonder toevlucht te nemen tot exogene software. - DK Bose


antwoorden:


Na een beetje lezen over het onderwerp en het dan opnieuw lezen van de readme.md bij de numix-project Ik realiseerde me dat ze echt uitleggen hoe handmatig installeer en wijzig hun thema.
Het punt is dat de instructies veel voorkennis veronderstellen - eigenlijk dat je een C-ontwikkelaar bent die CSS kent.
Ik ga ervan uit dat je weet dat de broncode voor talen zoals C wordt gecompileerd in binaire uitvoerbare bestanden en / of bibliotheekbestanden, en dat SASS / SCSS een pre-compiler is (een soort "hogere" taal) die wordt gecompileerd naar CSS die broncode die wordt geïnterpreteerd - en niet is gecompileerd naar een binaire vorm. Van wat ik kan zeggen is het overzicht als volgt:

                          +--------------------------------------------------------------+
 +------+                 |  +---------------------+                                     |
 |      |   you need to   |  | CSS files           |         Numix theme                 |
 |SASS  |   "compile"     |  | ordinary text (code)|         i.e. files in               |
 |files |   SASS to CSS   |  |                     |         /usr/share/themes/Numix Daily/gtk-3.0
 |    +------------------------->             <------------------------------------------+----------+
 |      |                 |  +---------------------|                                     |          |
 |      |                 |   +------------------------+                                 |          |
 +------+                 |   | gtk.resource           |                                 |          |
 If you change this       |   | (compiled binary    <-----+                              |          |
 you need to recompile    |   | file)                  |  |                              |          |
 (update the CSS          |   +------------------------+  |                              |          |
                          +--------------------------------------------------------------+          |
 files)                      +----------------------+     |                                         |
                             | GTK library          |     |  +---------------------------+          |
+--------------------+       | (binary library)     |     |  |  GTK and C developer tools|          |
| Application        |       |                      |     |  |  used to recompile        |          |
| e.g. Gnome terminal|       | Configured to use    |     |  |  gtk.gresource            |          |
| Nautilus etc       |       | Numix Theme          |     |  |                           |          |
| that uses GTK      |       |                      |     +----+                         |          |
| library            |       |                      |        |                           |          |
| (binary            |       |                      |        |                           |          |
| executable)        |       |                      |        +---------------------------+          |
+--------------------+       |                      |                                               |
                             |Makes call to         +                                               |
                             |gtk_css_provider_load_from_file() +----------------------------------->
                             |
                             +----------------------+

Dus het Numix-thema en ik vermoed dat veel / alle GTK-3.0-thema's bestaan ​​uit binaire bronnen en CSS-code die wordt geparseerd door de functieaanroep gtk_css_provider_load_from_file() wat een nieuwe toevoeging lijkt te zijn voor GTK-3.0.
Het numix-project suggereert dat je het alleen opnieuw hoeft te compileren gtk-gresource als u activa wijzigt. Dus daar zou ik me niet mee bezighouden, tenzij je het echt nodig hebt. Als je echt nodig hebt, is hier een inleiding tot het bouwen van een binaire GTK-bron

Handige hulpmiddelen

  • GtkCssProvider - dit is verantwoordelijk voor het ontleden van de CSS - het lijkt echt de basis te zijn voor het kunnen lezen van CSS door GTK-toepassingen. vooral hoe GTK de CSS-code leest voor een thema bij het opstarten:

Een toepassing kan ervoor zorgen dat GTK + een specifiek CSS-stijlblad analyseert door gtk_css_provider_load_from_file () aan te roepen en de provider toe te voegen met gtk_style_context_add_provider () of gtk_style_context_add_provider_for_screen ().
  Bovendien worden bepaalde bestanden gelezen wanneer GTK + wordt geïnitialiseerd. Eerst wordt het bestand $ XDG_CONFIG_HOME / gtk-3.0 / gtk.css geladen als het bestaat.
  Vervolgens probeert GTK + $ HOME / .themes / theme-name / gtk-3.0 / gtk.css te laden, terug te vallen naar datadir / share / themes / theme-name / gtk-3.0 / gtk.css, waar de themanaam is de naam van het huidige thema (zie de instelling "gtk-theme-name") en datadir is het prefix dat werd geconfigureerd toen GTK + werd gecompileerd, tenzij dit werd overschreven door de omgevingsvariabele GTK_DATA_PREFIX.


3
2017-07-14 06:30