Comment séparer la configuration `rc.lua` de Awesome ' en plusieurs fichiers?

Je viens de passer à Awesome WM depuis OpenBox. Jaime le fait quil soit très extensible, personnalisable et jai un énorme contrôle sur la disposition des fenêtres. Jaime les choses structurées et organisées et je « voudrais séparer cette énorme configuration .config/awesome/rc.lua en plusieurs fichiers.

Réponse

Vous pouvez simplement placer le code dans un fichier séparé et linclure avec

dofile("somefile.lua") 

Remarque: Le répertoire de travail est $HOME. Pour spécifier un fichier relatif à rc.lua vous pouvez utiliser

dofile(awful.util.getdir("config") .. "/" .. "somefile.lua") 

Sil sagit de plus que de du code et quil peut également être utilisé par dautres, il peut être judicieux de créer un module lua qui peut être inclus avec

somemodule = require("somemodule") 

Commentaires

  • Cela fonctionne à 50%, je dois spécifier le chemin complet au lieu du chemin relatif
  • @Miro corrigé, voir mise à jour.
  • Sur Ubuntu, la fonction Awesome ' nécessite une recherche automatique dans .config / awesome /, vous pouvez donc demander nimporte quel fichier mis là.

Réponse

Pour déplacer du code dans un autre fichier, vous créez un module et avez besoin du module dans le rc.lua.

Pour créer un module, il vous suffit dappeler module (name [, ···]) dans le script contenant le code que vous avez extrait du script dorigine. Référence Lua – module .

Pour utiliser le module que vous avez créé, il vous suffit dappeler require (modname) . Référence Lua – Requiert .

Il existe un excellent tutoriel sur le wiki Lua qui explique cela avec des exemples. Et si vous voulez voir comment module() fonctionne vraiment, il y a un article sur Play With Lua qui commence par écrire une implémentation de module ().

Commentaires

  • Notez quà partir de awesome-3.5, la version lua a été mise à jour vers 5.2, où le module() La fonction est obsolète. Par conséquent, le module doit être affecté à une variable, comme modname = require ("modname")

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *