#126 Le 12/11/2011, à 00:30
- fredr
Re : [awesome]installation et configuration (surtout config :P )
Bon, je crois que sous Ubuntu il y a par défaut un menu qui permet d'éteindre, redémarrer, mettre en veille ou hiberner la machine. Je me trompe? Bref, si ce n'est pas le cas ou que ça vous intéresse, j'ai fait un petit article qui explique comment faire un menu de ce genre.
http://blog.rolinh.ch/wp-content/upload … m-menu.png
Pas mal du tout....
Fana du distro hopping, actuellement sur Ubuntu 24.04 ...
L'optimiste pense que nous vivons dans le meilleur des mondes. Et le pessimiste craint que ce ne soit exact.
Hors ligne
#127 Le 14/11/2011, à 22:20
- wlourf
Re : [awesome]installation et configuration (surtout config :P )
merci rolinh, dans le même genre, il y a un script "openbox-logout.py" modifié qui va pas mal :
#!/usr/bin/env python
# coding=utf-8
import pygtk
pygtk.require('2.0')
import gtk
import os
class DoTheLogOut:
def keypress(self, widget, event) :
if event.keyval == gtk.keysyms.Escape :
gtk.main_quit()
def confirmation_dlg(self):
dialog = gtk.Dialog("T'es sur?",self.window,gtk.DIALOG_MODAL,
(gtk.STOCK_YES, gtk.RESPONSE_YES,gtk.STOCK_NO, gtk.RESPONSE_NO))
dialog.vbox.add(gtk.Label("T'es sûr ?"))
dialog.set_has_separator(False)
dialog.vbox.show_all()
rep=dialog.run()
dialog.destroy()
return rep
# Cancel/exit
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
# Logout
def logout(self, widget):
rep = self.confirmation_dlg()
if rep == gtk.RESPONSE_YES:
os.system("echo 'awesome.quit()' | awesome-client")
# Reboot
def reboot(self, widget):
rep = self.confirmation_dlg()
if rep == gtk.RESPONSE_YES:
#os.system("gdm-control --reboot && echo 'awesome.quit()' | awesome-client")
os.system('sudo dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart')
# Shutdown
def shutdown(self, widget):
rep = self.confirmation_dlg()
if rep == gtk.RESPONSE_YES:
#os.system("sudo shutdown -h now && echo 'awesome.quit()' | awesome-client")
os.system('sudo dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop')
#hibernate
def hibernate(self, widget):
rep = self.confirmation_dlg()
if rep == gtk.RESPONSE_YES:
os.system('sudo dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate')
#suspend
def suspend(self, widget):
rep = self.confirmation_dlg()
if rep == gtk.RESPONSE_YES:
os.system('sudo dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend')
def add_button(self, label, proc, stock):
self.btn = gtk.Button(label)
self.btn.set_relief(gtk.RELIEF_NONE)
image = gtk.Image()
image.set_from_stock(stock,gtk.ICON_SIZE_LARGE_TOOLBAR)
self.btn.set_image(image)
self.btn.connect("clicked", self.click_button, proc)
self.box1.add(self.btn)
def __init__(self):
size_icon = gtk.ICON_SIZE_SMALL_TOOLBAR
# Create a new window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Exit? Choose an option:")
self.window.set_resizable(False)
self.window.set_position(1)
self.window.connect("delete_event", self.delete_event)
self.window.set_border_width(10)
self.window.connect("key-press-event", self.keypress)
# Create a box to pack widgets into
self.box1 = gtk.VBox(True, 0)
self.window.add(self.box1)
# Create cancel button
self.button1 = gtk.Button("Ann_uler")
self.button1.set_border_width(10)
self.button1.connect("clicked", self.delete_event, "Changed me mind :)")
self.box1.pack_start(self.button1, True, True, 0)
self.image1 = gtk.Image()
self.image1.set_from_stock(gtk.STOCK_CANCEL, size_icon)
self.button1.set_image(self.image1)
self.image1.show()
# Create logout button
self.button2 = gtk.Button("Déc_onnexion")
self.button2.set_border_width(10)
self.button2.connect("clicked", self.logout)
self.box1.pack_start(self.button2, True, True, 0)
self.image2 = gtk.Image()
self.image2.set_from_stock(gtk.STOCK_DISCONNECT, size_icon)
self.button2.set_image(self.image2)
self.image2.show()
# Create reboot button
self.button3 = gtk.Button("Redém_arrer")
self.button3.set_border_width(10)
self.button3.connect("clicked", self.reboot)
self.box1.pack_start(self.button3, True, True, 0)
self.image3 = gtk.Image()
self.image3.set_from_stock(gtk.STOCK_REFRESH, size_icon)
self.button3.set_image(self.image3)
self.image3.show()
# Create shutdown button
self.button4 = gtk.Button("On _ferme")
self.button4.set_border_width(10)
self.button4.connect("clicked", self.shutdown)
self.box1.pack_start(self.button4, True, True, 0)
self.button4.show()
self.image4 = gtk.Image()
self.image4.set_from_stock(gtk.STOCK_QUIT, size_icon)
self.button4.set_image(self.image4)
self.image4.show()
self.button4.grab_focus()
# Create hibernate button
self.button5 = gtk.Button("Hibernation")
self.button5.set_border_width(10)
self.button5.connect("clicked", self.hibernate)
self.box1.pack_start(self.button5, True, True, 0)
self.button5.show()
self.image5 = gtk.Image()
self.image5.set_from_stock(gtk.STOCK_GO_DOWN, size_icon)
self.button5.set_image(self.image5)
self.image5.show()
# Create suspend button
self.button6 = gtk.Button("Suspend")
self.button6.set_border_width(10)
self.button6.connect("clicked", self.suspend)
self.box1.pack_start(self.button6, True, True, 0)
self.button6.show()
self.image6 = gtk.Image()
self.image6.set_from_stock(gtk.STOCK_MEDIA_PAUSE, size_icon)
self.button6.set_image(self.image6)
self.image6.show()
self.box1.show()
self.window.show_all()
def main():
gtk.main()
if __name__ == "__main__":
gogogo = DoTheLogOut()
main()
A appeler par un raccourci clavier bien sûr
Dernière modification par wlourf (Le 14/11/2011, à 22:21)
Hors ligne
#128 Le 07/12/2011, à 12:32
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Salut !
Ca fait quelques mois que j'utilise awesome, et j'ai évolué de façon "autonome" en regardant les wiki à droite/à gauche avant de tomber sur topic.
J'ai déjà pas mal avancé tout seul, mais c'est plus sympa de partager ses découvertes/trucs/astuces.
Je viens poster un ptit message pour deux raisons principalement :
Tout d'abord, Merci à tous ceux qui animent ce topic, car il est richissime en informations pertinentes.
Merci aussi à ceux qui ont rédigé la page de documentation "ubuntu" sur awesome qui est vraiment très complète et bien agencée.
Ensuite, je viens vous exposer mes projets et problèmes concernant awesome
Pour être bref j'ai un ptit soucis sur lequel je bute :
La configuration du thème des applications GTK sous awesome :
Globalement j'ai suivi ce tutoriel, qui m'a aidé à résoudre pas mal de problèmes. Mais il en reste un : j'ai quelques applications qui ne prennent pas en compte le thème défini dans mes fichiers gtkrc*, comme par exemple nautilus et certaines fenêtres GTK générées pour la saisie de mots de passe.
Ma todo list :
Configurer un conky très complet à mettre sur un tag dédié
Ajouter deux trois widgets de rolinh
Configurer et utiliser des raccourcis du genre "keychain" (peut être creuser le travail de wlourf ?)
Nettoyer mes rc.lua (j'ai une conf éclatées en plusieurs fichiers) et les partager ici (non pas que je pense apporter grand chose à la communauté, mais bon sur le principe faut partager !)
Améliorer l'interface avec awesome d'un petit modèle de démon python que j'ai codé, notamment pour faire un widget de récupération des notifications de mails qui est assez proche de celui qui est présenté dans la doc Ubuntu
Essayer de faire un scratchpad à espaces multiples, par exemple pour épingler une discussion Pidgin en cours, un conky, un shell, et pouvoir les appeler séparément.
Voilà pour le moment, c'est déjà pas mal...
Je suis près à écouter toutes vos suggestions, questions, commentaires, constructifs ou destructifs.
PS: j'ai une certaine latence pour répondre ou modifier les confs/scripts mais je suis très régulier dans ma progression donc faut pas s'inquiéter si je ne passe pas tous les jours sur le forum.
Dernière modification par babubuntu (Le 07/12/2011, à 12:34)
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#129 Le 07/12/2011, à 18:56
- compte supprimé
Re : [awesome]installation et configuration (surtout config :P )
@Vlam , lxappearance pour les themes Gtk,icones ect.. t'aime pas ? .Pour mettre ton conky sur un tag dédié y a des exemples içi
Je viens de tomber sur WebSearch Prompt j'ai pas encore essayer mais ça va me plaire
#130 Le 07/12/2011, à 21:47
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
@Vlam , lxappearance pour les themes Gtk,icones ect.. t'aime pas ?
Si mais cela ne marche pas pour toutes les applis. Sur une ancienne machine j'avais utilisé cette méthode et ça fonctionnait très bien, là je ne sais pas pourquoi seules certaines applis ne prennent pas le thème gtk. J'ai pourtant fait trois rc : gtkrc-2.0, gtkrc-1.2. En écrivant j'y pense, j'ai essayé gnome3, peut être que je devrais tenter un gtkrc-3.0? Je vais creuser tout ça, j'y arriverai bien un jour
Pour mettre ton conky sur un tag dédié y a des exemples içi
Merci pour le lien ! En fait je veux même aller plus loin, à savoir mettre un scratchpad dédié pour mon conky (si c'est viable), ça me permettra de dégainer conky rapidement quand je fais des tests.
Je viens de tomber sur WebSearch Prompt j'ai pas encore essayer mais ça va me plaire
Ça à l'air super ! Je ne connaissais pas YubNub, je pense l'utiliser également. Merci pour le lien !
Dernière modification par Vlam (Le 07/12/2011, à 21:51)
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#131 Le 09/12/2011, à 10:11
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Salut, je continu à mettre à jour le topic avec mes dernières trouvailles
Pour le problème des applications gtk3 sous awesome (à priori valable pour d'autres WM), la solution qui marche chez moi :
Fixer la valeur de la variable "XDG_CONFIG_HOME"
Faire un lien symbolique d'un thème gt3 comme suit :
ln -s /usr/share/themes/Mon_theme_gtk3/gtk-3.0 $XDG_CONFIG_HOME/gtk3.0
Sans le lien symbolique, cela ne marche pas, je n'ai pas compris pourquoi...
Autre nouvelle, concernant les widgets de rolinh (encore merci pour les widget) : Le cpuinfo ne fonctionne pas bien chez moi, j'arrive à monter jusqu'à 250% d'utilisation et les résultats semblent assez différents de ceux donnés par conky (qui constitue pour moi une référence assez fiable). Je pense avoir identifié le problème : j'ai 8 coeurs sur ma machine et le widget ne semble pas adapté à ce genre d'architecture. Je suis sur une correction que je posterai ici, mais n'étant pas encore bien familiarisé avec lua, je prend mon temps
A+,
V.
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#132 Le 09/12/2011, à 18:12
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
Ça peut étre normal 100% pour l'utilisation d'un cœur à pleine capacité donc avec 8 cœurs tu peux monter à 800%
Hors ligne
#133 Le 09/12/2011, à 18:37
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Ça peut étre normal 100% pour l'utilisation d'un cœur à pleine capacité donc avec 8 cœurs tu peux monter à 800%
Oui j'ai l'impression que c'est ça en fait (le seul problème étant les couleurs, qui ne correspondaient plus à l'activité CPU)
J'ai regardé dans le détail un peu comment marche "/proc/stat" et finalement je me suis rabattu sur le widget cpu de vicious
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#134 Le 09/12/2011, à 19:58
- wlourf
Re : [awesome]installation et configuration (surtout config :P )
J'avais eu le même problème, tu peux récupérer le nombre de cpu dans /proc/cpuinfo, cf mon post 87 plus haut dans ce topic. Suffit alors de diviser la valeur calculée par le nombre de cpu...
Hors ligne
#135 Le 10/12/2011, à 15:04
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Salut Vlam et merci pour ton astuce sur les thèmes gtk3.
A propos de ceci:
[*]Ajouter deux trois widgets de rolinh [/*]
Ça me fait penser que j'ai modifié quelque peu mes widgets depuis le temps où j'avais complété/réécrit la doc sur Awesome d'ubuntu-fr.
J'ai un dépôt git de ma configuration et de mes widgets awesome mais je n'en ai encore pas fait un dépôt public ni via accès web. Je vais voir si j'arrive à faire ça dans la journée et je vous tiens au courant.
Hors ligne
#136 Le 11/12/2011, à 14:08
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Bon, voilà l'accès est public à mon dépôt git de mes configurations, qui comprennent évidemment celles d'awesome
git clone git://rolinh.ch/conf.git
Hors ligne
#137 Le 11/12/2011, à 17:43
- compte supprimé
Re : [awesome]installation et configuration (surtout config :P )
Merçi Rolinh
#139 Le 12/12/2011, à 10:07
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Merci Rolinh !
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#140 Le 12/12/2011, à 10:55
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Pas de quoi
D'ailleurs, je pense qu'il serait temps de remanier un petit peu la documentation. Peut-être supprimer les bouts de code concernant les widgets et mettre directement les liens vers mon dépôt. De cette manière, on est sûr de toujours avoir la version à jour.
De même, je pense que la partie concernant la configuration de la version 2 n'est plus d'actualité et pourrait être supprimée.
On pourrait également compléter avec quelques astuces que nous avons évoqué sur ce topic et parler des librairies de widgets vicious et obvious.
Qu'en pensez-vous?
Hors ligne
#141 Le 12/12/2011, à 11:05
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Pas de quoi
On pourrait également compléter avec quelques astuces que nous avons évoqué sur ce topic et parler des librairies de widgets vicious et obvious.
Qu'en pensez-vous?
Super idée, j'aurais cité au moins "delightful" aussi pour les widgets (j'utilise pas mais c'est beau )
J'ai pas mal de taff là, mais je suis motivé pour participer aussi à la documentation (si ça vous va). D'ailleurs je suis en pleine config de widgets vicious, je pourrais mettre quelques lignes sur la façon dont ils se configurent (paramètres...etc) au besoin.
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#142 Le 12/12/2011, à 11:10
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
J'ai pas mal de taff là, mais je suis motivé pour participer aussi à la documentation (si ça vous va). D'ailleurs je suis en pleine config de widgets vicious, je pourrais mettre quelques lignes sur la façon dont ils se configurent (paramètres...etc) au besoin.
Je suis également chargé puisque j'ai 3 semaines de cours universitaires à rattraper mais bon, ça fait une pause de temps en temps pis c'est utile à d'autres.
Volontiers pour ta proposition pour les widgets vicous. Je commence déjà par corriger les liens morts et mettre des liens pour les widgets plutôt que le code directement dans la doc.
Hors ligne
#143 Le 12/12/2011, à 11:42
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Je suis également chargé puisque j'ai 3 semaines de cours universitaires à rattraper mais bon, ça fait une pause de temps en temps pis c'est utile à d'autres.
Un étudiant qui passe son temps libre à faire de la doc Ubuntu, je rêves !
Si je pouvais avoir des étudiants capables de pondre tes fichiers de conf. je serais content.
En France, on en est (très) loin
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#144 Le 12/12/2011, à 15:58
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Dû a un potentiel bug sur amixer, j'ai modifié un peu le widget du volume de rolinh comme suit :
Ligne à remplacer :
io.popen("amixer -c " .. cardid .. " sset " .. channel .. " toggle"):read("*all")
par
io.popen("amixer -c " .. cardid .. " sset " .. channel .. " 0"):read("*all")
Ça met le volume de la sortie "Master" à 0 (ce qui n'est pas tout à fait équivalent à un "mute"), mais ça permet d'enlever le mutisme sans passer par alsamixer, ce qui est plutôt commode
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#145 Le 14/12/2011, à 10:59
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Salut, j'ai créer un ptit widget qui affiche le nombre de mises à jours à faire d'après apt-get.
J'ai modifié le widget pacman de Rolinh pour ça, je vous donne le code ici, et après quelques jours de tests je le mettrai dans la doc Ubuntu (avec les widgets vicious ) :
-- apt-get update widget (assumes any apt cron does the update on the system)
function aptupdate()
local f, avupdate
f = io.popen("apt-get --simulate dist-upgrade | grep Conf | wc -l")
avupdate = tonumber(f:read("*all"))
f:close()
if avupdate == 0 then
avupdate = '<span color="green">' .. avupdate..'</span>'
elseif avupdate < 6 then
avupdate = '<span color="yellow">' .. avupdate..'</span>'
elseif avupdate < 16 then
avupdate = '<span color="orange">' .. avupdate..'</span>'
else
avupdate = '<span color="red">' .. avupdate..'</span>'
end
return avupdate
end
aptinfo = widget({ type = "textbox" , name = "pacinfo" })
-- Assign a hook to update info
aptinfo__timer = timer({timeout = 10})
aptinfo__timer:add_signal("timeout", function() aptinfo.text = aptupdate() end)
aptinfo__timer:start()
Juste un commentaire : j'ai changé le timeout à 10s, idéalement il devrait être plus long. Mon awesome ramait avec un timeout de 1 seconde. Le seul problème : le widget mets 1à secondes à apparaître au démarrage d'awesome.
Dernière modification par Vlam (Le 14/12/2011, à 11:07)
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#146 Le 14/12/2011, à 20:15
- wlourf
Re : [awesome]installation et configuration (surtout config :P )
Merci Vlam, même 10 secondes, c'est un peu court comme temps pour vérifier les updates, une fois par heure devrait être suffisant
Pour lancer le script au démarrage d'awesome, ajoute
aptinfo.text = aptupdate()
juste après avoir défini le widget : aptinfo = widget({ ...
Hors ligne
#147 Le 14/12/2011, à 20:43
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Merci Vlam, même 10 secondes, c'est un peu court comme temps pour vérifier les updates, une fois par heure devrait être suffisant
Il ne faut pas confondre l'affichage des mises-à-jour disponibles via le widget et le cron qui s'occupe de voir s'il y a des mises-à.jour disponibles.
En fait, dans mon cas, pacman -Qu ne regarde que la base de données locale des paquets et compare en fonction de la dernière synchronisation avec les dépôts de mises-à-jour.
Le cron qui synchronise la base de données locale à celle des dépôts de mises-à-jour ne se fait que toute les deux heures (ce qui est déjà amplement suffisant).
Sinon, à propos de ta remarque sur aptinfo.text = aptupdate(): regarde ces trois lignes:
-- Assign a hook to update info
aptinfo__timer = timer({timeout = 10})
aptinfo__timer:add_signal("timeout", function() aptinfo.text = aptupdate() end)
aptinfo__timer:start()
Et oui, c'est déjà fait à l'aide du timer.
Ce que j'aurais changé en revanche se trouve ici:
aptinfo = widget({ type = "textbox" , name = "pacinfo" })
le pacinfo -> aptinfo
N'étant plus sous ubuntu ni même un Debian ou dérivé, je ne suis pas sûr de ce qui se passe avec ceci et ne peut pas le vérifier:
apt-get --simulate dist-upgrade
Est-ce qu'il contacte le serveur de mises-à-jour avec cette commande? Si oui, cela expliquerait pourquoi ça ramait avec un timeout de 1 seconde.
Avec ma commande pacman, ça ne dérange pas car:
[robin@thor ~] % time pacman -Qu | wc -l
10
pacman -Qu 0.11s user 0.01s system 98% cpu 0.125 total
wc -l 0.00s user 0.00s system 0% cpu 0.125 total
0.11s < 1s => pas de problèmes
En revanche, il serait intéressant de savoir combien de temps prend la variante Ubuntu afin d'adapter le timeout. Si quelqu'un pouvait lancer ceci:
time apt-get --simulate dist-upgrade | grep Conf | wc -l
Hors ligne
#148 Le 14/12/2011, à 20:52
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
32
apt-get --simulate dist-upgrade 1,04s user 0,04s system 28% cpu 3,722 total
grep --color=auto Conf 0,00s user 0,00s system 0% cpu 3,722 total
wc -l 0,00s user 0,00s system 0% cpu 3,721 total
Hors ligne
#149 Le 14/12/2011, à 21:11
- Vlam
Re : [awesome]installation et configuration (surtout config :P )
Bien vu Rolinh, le problème doit sûrement venir du fait que la commande contact le serveur et prend donc plus d'une seconde.
J'ai fais ça vite fait à l'arrache ce matin, car j'en avais marre de na pas avoir de notification pour les updates
En fait,le fait que la commande contacte le serveur ne me dérange pas car l'idée serait d'exécuter le widget une fois par heure comme le suggère wlourf.
Mais j'avoue que si en creusant sur le apt-cron on trouve une commande pour passer par un cache, comme sur archlinux avec pacman, ça serait infiniment plus propre. Je vais creuser la piste "aptcron", ...etc
Et merci pour les corrections. Je vous tiens au courant si je trouve une meilleure commande.
A+
Dernière modification par Vlam (Le 14/12/2011, à 21:13)
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#150 Le 15/12/2011, à 07:56
- compte supprimé
Re : [awesome]installation et configuration (surtout config :P )
car j'en avais marre de na pas avoir de notification pour les updates
J'ai vu Tiling Windows Manager Notification alias twmn, j'ai pas encore essayer
Vous savez comment afficher la tasklist dans le pipe menu d'awesome ?
J'ai enfin diviser mon rc.lua ça fait du bien
Dernière modification par Loulouze (Le 13/07/2012, à 18:32)