[fvwm] thumbnails en guise de taskbar permanente
-
- Daikyu
- Messages : 50
- Inscription : lun. 25 juin 2007, 16:53
- Localisation : Rive-sud de Montréal
[fvwm] thumbnails en guise de taskbar permanente
Bonjour, comme j'en avais déjà parlé à Warnaud au bas de cette page:
http://forums.archlinux.fr/topic63-75.html,
je voulais réserver une zone à gauche de mon écran large LCD pour que chaque application minimisée se retrouve dans un ptit thumbnail (mini screenshot de l'appli ouverte) MAIS qui serait toujours visible... comme une "taskbar" mais utilisant des thumbnails au lieu du texte.
Maintenant j'ai partiellement réussi: cette zone est actuellement réservée, mes applis maximisés ne prennent plus tout l'écran et donc n'écrasent plus ou ne cachent plus cette zone à thumbnails à gauche.
Par contre quand je clique sur un thumbnail il disparait aussitot car l'appli est alors désiconifiée, autrement dit sélectionnée. Donc si j'ai 2-3 applis ouvertes, impossible de passer de une vers l'autre sauf si je les abaissent toutes, ce qui fait apparaitre leurs thumbnails.
Comment faire pour que les thumbnails soit toujours là aussitot l'appli ouverte jusqu'à sa fermeture ?? (comme dans une task bar)
J'utilse fvwm-patched derniere version ainsi que le theme et config de stonecrest
http://www.theskyiscrape.com/scott/fvwm_green.tar.gz
http://forums.archlinux.fr/topic63-75.html,
je voulais réserver une zone à gauche de mon écran large LCD pour que chaque application minimisée se retrouve dans un ptit thumbnail (mini screenshot de l'appli ouverte) MAIS qui serait toujours visible... comme une "taskbar" mais utilisant des thumbnails au lieu du texte.
Maintenant j'ai partiellement réussi: cette zone est actuellement réservée, mes applis maximisés ne prennent plus tout l'écran et donc n'écrasent plus ou ne cachent plus cette zone à thumbnails à gauche.
Par contre quand je clique sur un thumbnail il disparait aussitot car l'appli est alors désiconifiée, autrement dit sélectionnée. Donc si j'ai 2-3 applis ouvertes, impossible de passer de une vers l'autre sauf si je les abaissent toutes, ce qui fait apparaitre leurs thumbnails.
Comment faire pour que les thumbnails soit toujours là aussitot l'appli ouverte jusqu'à sa fermeture ?? (comme dans une task bar)
J'utilse fvwm-patched derniere version ainsi que le theme et config de stonecrest
http://www.theskyiscrape.com/scott/fvwm_green.tar.gz
Dernière modification par tandycorp le dim. 12 août 2007, 03:06, modifié 1 fois.
- Skunnyk
- Maître du Kyudo
- Messages : 1137
- Inscription : mer. 06 sept. 2006, 21:31
- Localisation : IRC
- Contact :
Plop =)
Ca tombe bien, c'est le genre de chose que je voulais dans fvwm mais que je savais pas faire :p Et d'apres Maitre Warnaud, dans une prochaine version de fvwm, cela srais possible (enfin, d'apres mes souvenirs :p), mais cest clair que ca pourrais etre vachement utile !
Ca tombe bien, c'est le genre de chose que je voulais dans fvwm mais que je savais pas faire :p Et d'apres Maitre Warnaud, dans une prochaine version de fvwm, cela srais possible (enfin, d'apres mes souvenirs :p), mais cest clair que ca pourrais etre vachement utile !
https://blog.alteroot.org
@archlinuxfr sur Twitter : https://twitter.com/archlinuxfr
@archlinuxfr sur Mastodon: https://mamot.fr/@archlinuxfr
@archlinuxfr sur Twitter : https://twitter.com/archlinuxfr
@archlinuxfr sur Mastodon: https://mamot.fr/@archlinuxfr
-
- Daikyu
- Messages : 50
- Inscription : lun. 25 juin 2007, 16:53
- Localisation : Rive-sud de Montréal
ok dans la config que j'ai je me rends compte que l'auteur a recourt à un ptit prog écrit en C qui génère les thumbnails plus rapidement ..
donc merde, c'est plus complexe que je croyais...
est-ce que quelqu'un comprends ça ? :
donc merde, c'est plus complexe que je croyais...
est-ce que quelqu'un comprends ça ? :
Code : Tout sélectionner
#include <X11/Xlib.h>
#include <Imlib2.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
Display *display;
XWindowAttributes windowattr;
Imlib_Image image;
Imlib_Image icon;
int windowid, thumbwidth, thumbheight;
char *imageformat, *imagepath;
char *iconformat, *iconpath;
int w, h;
if ( argc != 5 ) {
puts("Usage: thumb WindowId ThumbWidth ThumbFile IconFile");
return 1;
}
sscanf(argv[1], "%x", &windowid);
sscanf(argv[2], "%d", &thumbwidth);
imagepath = argv[3];
imageformat = strrchr(argv[3], '.');
iconpath = argv[4];
iconformat = strrchr(argv[4], '.');
if ( (display = XOpenDisplay(NULL)) == NULL ) return 1;
XGetWindowAttributes(display, windowid, &windowattr);
thumbheight = thumbwidth*3/4;
imlib_context_set_anti_alias(1);
imlib_context_set_display(display);
imlib_context_set_visual(DefaultVisual(display, DefaultScreen(display)));
imlib_context_set_colormap(DefaultColormap(display, DefaultScreen(display)));
imlib_context_set_drawable(windowid);
if ( 4*thumbwidth >= windowattr.width || 4*thumbheight >= windowattr.height ) {
image = imlib_create_image_from_drawable((Pixmap)0, 0, 0,
windowattr.width, windowattr.height, 1);
imlib_context_set_image(image);
image = imlib_create_cropped_scaled_image(0, 0, windowattr.width, windowattr.height,
thumbwidth, thumbheight);
} else {
image = imlib_create_scaled_image_from_drawable((Pixmap)0, 0, 0,
windowattr.width, windowattr.height, 4*thumbwidth, 4*thumbheight, 1, 1);
imlib_context_set_image(image);
image = imlib_create_cropped_scaled_image(0, 0, 4*thumbwidth, 4*thumbheight,
thumbwidth, thumbheight);
}
icon = imlib_load_image(argv[4]);
imlib_context_set_image(icon);
w = imlib_image_get_width();
h = imlib_image_get_height();
imlib_context_set_image(image);
imlib_blend_image_onto_image( icon, 0,
0, 0, w, h,
0, 0, w, h);
imlib_image_set_format(imageformat + 1);
imlib_save_image(argv[3]);
fprintf(stdout, "WindowStyle IconOverride, Icon %s\n", argv[3]);
return 0;
}
Pour l'utiliser il faut installer imlib2 et appeler le binaire dans la fonction:
Humm j'ai pas trop compris se que tu voulais faire au final.
Moi je travail à mettre les thumbnail dans une iconbox rétractable. L'idéal serait de la faire apparaître au passage de la souris dans le coin supérieur droit. Un peu comme béryl
Code : Tout sélectionner
DestroyFunc Thumbnail
AddToFunc Thumbnail
+ I PipeRead "echo $[w.id] >> /dev/shm/.icons"
+ I Raise
+ I ThisWindow (!Shaded, Iconifiable, !Iconic) \
PipeRead "$[fvwm_bin]/thumb $[w.id] $[fvwm_icon_size] \
/dev/shm/icon.tmp.$[w.id].png $[w.miniiconfile]"
+ I Iconify
Moi je travail à mettre les thumbnail dans une iconbox rétractable. L'idéal serait de la faire apparaître au passage de la souris dans le coin supérieur droit. Un peu comme béryl
-
- Daikyu
- Messages : 50
- Inscription : lun. 25 juin 2007, 16:53
- Localisation : Rive-sud de Montréal
C'est que les thumnails disparaissent quand on clique dessus (C'est toujours comme ça, c'est normal, ça s'appelle l'icônification). Mais moi je voudrais que les thumbnails restent sauf quand on ferme leurs applis. C'est tout.Tebo a écrit : Humm j'ai pas trop compris se que tu voulais faire au final.
Moi je travail à mettre les thumbnail dans une iconbox rétractable. L'idéal serait de la faire apparaître au passage de la souris dans le coin supérieur droit. Un peu comme béryl
Car une application a beau être ouverte, si elle n'est pas en tout premier plan je ne la vois pas! Et sans taskbar, je dois alors minimiser ce que je suis en train de faire pour la retrouver, autrement dit les thumbnails ne font rien d'utile dans ma vie actuellement.
-
- Daikyu
- Messages : 50
- Inscription : lun. 25 juin 2007, 16:53
- Localisation : Rive-sud de Montréal
euh, c'est pour utiliser des raccourcis clavier ça? Peut-etre plus tard, mais s.v.p. j'aimerais bien gérer mes fenetres avec ces petits screenshots...Tebo a écrit :Ok pourquoi ne pas utiliser ? :
Key Tab A M WindowList Root c c NoCurrentDeskTitle NoGeometry SortByClass NoHotkeys
Peut-être qu'une simple ligne serait à modifier dans la config fvwm? Celle que j'ai prise sur Internet est divisée en plusieurs fichiers. Alors je crois que ce qui suit contient tout ce qui gère les thumnails:
~/.fvwm/fvwm2rc.thumbnails
Code : Tout sélectionner
SetEnv fvwm_icon_size 100
DestroyFunc Thumbnail
AddToFunc Thumbnail
+ I PipeRead "echo $[w.id] >> $[FVWM_USERDIR]/.icons"
+ I Raise
+ I ThisWindow (!Shaded, Iconifiable, !Iconic) PipeRead "$[FVWM_USERDIR]/scripts/thumb $[w.id] $[fvwm_icon_size] /dev/shm/icon.tmp.$[w.id].png $[w.miniiconfile]"
+ I Iconify
DestroyFunc DeThumbnail
AddToFunc DeThumbnail
+ I PipeRead "echo WindowStyle Icon \\$\\[Icon-$[w.id]\\]"
+ I Exec exec rm -f /dev/shm/icon.tmp.$[w.id].png
+ I PipeRead "sed -ie '/$[w.id]/d' $[FVWM_USERDIR]/.icons"
*FvwmEvent: deiconify DeThumbnail
# This will remove gaps when de-iconifying an application
AddToFunc DeiconifyAndRearrange
+ C Iconify off
+ C All (CurrentPage, Iconic) PlaceAgain Icon
AddToFunc IconFunc
+ C DeiconifyAndRearrange
+ M Raise
+ M Move
+ D DeiconifyAndRearrange
# This will remove gaps when de-iconifying an application from the keybinding
DestroyFunc DeiconifyAndRearrange2
AddToFunc DeiconifyAndRearrange2
+ I Iconify off
+ I All (CurrentPage, Iconic) PlaceAgain Icon
- warnaud
- Maître du Kyudo
- Messages : 1640
- Inscription : ven. 11 août 2006, 17:05
- Localisation : Rolle (CH)
En fait les thumbnails, générés ou non par un programme en C (sur des proc récent la différence est pas visible, niveau vitesse) c'est que ça fait "juste" un screenshot réduit de la fenêtre pour le coller en tant qu'icone de l'appli que tu minimise.
Perso je verrais plus comme tebo une WindowsList toujours visible avec les icones des applis qui sont des "thumbnails" (sans le Root c c qui centre la WindowList)
Problème il faut créer ces thumbnails ... mais quand ? à l'ouverture de l'appli ? toute les 5s ?
Si on utilise la solution de Tebo, en faisant Alt+Tab il faudrait lancer une appli qui fasse un screenshot de toutes les applis du bureau (ou de la page) avant d'afficher une WindowList. C'est à mon avis ce qui va se rapprocher le plus d'une solution correcte. Sinon les screenshots seront pas à jour, ou alors faudrai les rafraichir avec FvwmEvent à chaque entrée / sortie d'une fenêtre.
Dernière soluce, avec la "barre des tâches" de fvwm en gérant la taille des entrées et en affichant que le thumbnails de l'application (la barre peut-être transparente et dans une zone non recouvrable de base) il restera le délire de mettre à jour le thumbnails.
Perso je verrais plus comme tebo une WindowsList toujours visible avec les icones des applis qui sont des "thumbnails" (sans le Root c c qui centre la WindowList)
Problème il faut créer ces thumbnails ... mais quand ? à l'ouverture de l'appli ? toute les 5s ?
Si on utilise la solution de Tebo, en faisant Alt+Tab il faudrait lancer une appli qui fasse un screenshot de toutes les applis du bureau (ou de la page) avant d'afficher une WindowList. C'est à mon avis ce qui va se rapprocher le plus d'une solution correcte. Sinon les screenshots seront pas à jour, ou alors faudrai les rafraichir avec FvwmEvent à chaque entrée / sortie d'une fenêtre.
Dernière soluce, avec la "barre des tâches" de fvwm en gérant la taille des entrées et en affichant que le thumbnails de l'application (la barre peut-être transparente et dans une zone non recouvrable de base) il restera le délire de mettre à jour le thumbnails.
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
-
- Daikyu
- Messages : 50
- Inscription : lun. 25 juin 2007, 16:53
- Localisation : Rive-sud de Montréal
merci warnaud et tebo, je comprends mieux la difficulté... mais au fond une actualisation toute les 5 dec ne serait pas une si mauvaise idée : ce serait moins compliqué à programmer et surtout la demande au processeur ne se ferait pas à chaque fois qu'une modification est faite à la fenetre, donc on évite d'augmenter la charge processeur au meme moment qu'on fait justement une requête qui va exiger des ressources..
aussi on peut faire l'actualisation un thumnail à la fois, en basse priorité..
le seul hic est que ces changements soudains dans notre écran, en décalage avec la réalité, attire l'oeil et cela peut devenir agaçant pour l'utilisateur mais bah..
ou alors on pourrait cacher cette taskbar et la faire apparaitre seulement à la demande: c'est moins agaçant à l'oeil, et il est possible de créer les thumbnails à ce moment précis sauf que si plusieurs fenetres sont ouvertes il risque d'y avoir un délai.. alors je vois deux options: faire apparaitre les thumnails dans un certain ordre, une sorte d'animation quoi le temps de les créer, ou alors actualiser les thumnails toutes les 5 secondes meme en background lorsque la taskbar est cachée..
aussi on peut faire l'actualisation un thumnail à la fois, en basse priorité..
le seul hic est que ces changements soudains dans notre écran, en décalage avec la réalité, attire l'oeil et cela peut devenir agaçant pour l'utilisateur mais bah..
ou alors on pourrait cacher cette taskbar et la faire apparaitre seulement à la demande: c'est moins agaçant à l'oeil, et il est possible de créer les thumbnails à ce moment précis sauf que si plusieurs fenetres sont ouvertes il risque d'y avoir un délai.. alors je vois deux options: faire apparaitre les thumnails dans un certain ordre, une sorte d'animation quoi le temps de les créer, ou alors actualiser les thumnails toutes les 5 secondes meme en background lorsque la taskbar est cachée..