Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29

Discussione: Startx o.... xstart???

  1. #1
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521

    Startx o.... xstart???

    Dunque, nella mia Slack, per facilitarmi la selezione dei window manager (che d'ora in avanti chiamerò "wm") con startx, ho creato un piccolo script di nome xstart.
    Questo è basato sul creare diversi file ".xinitrc" nella home con però il nome del wm, ad esempio: per KDE ".xinitrckde", per Gnome ".xinitrcgnome", ecc.

    Prima di tutto ho fatto una copia di backup di .xinitrc con un "cp .xinitr .xinitrc.save", non si sa mai , poi ho semplicemente creato questi ".xinitrc" personalizzati con "cp .xinitrc .xinitrckde" ad esempio.

    Nella sezione "# Start the wm:" di ogniuno di questi file ho lasciato solo il wm che corrisponde al nome.
    Lo script, in pratica, si occupa di leggere l'argomento datogli e, nel caso corrisponda a uno dei wm configurati all'interno, crea il link ".xinitrc" al rispettivo file, così se deve caricare KDE basta dare "xstart kde" e crea un link ".xinitrc -> .xinitrckde", se si digita "xstart gnome" crea un link ".xinitrc -> .xinitrcgnome".
    Per visualizzare quali wm può caricare basta dargli l'opzione "-q" e "--help" spiega brevemente il funzionamento.
    Se non si danno argomenti è come dare startx, carica l'ultimo wm usato.

    Così non devo rieditare .xinitrc tutte le volte che voglio cambiare wm e non devo dipendere da applicazioni grafiche come Kdm o similari.
    Magari esiste una via ancora più semplice, magari c'è già qualcosa di simile in Linux, nel caso fatemelo sapere.

    Di seguito riporto lo script "xstart":

    codice:
    #!/bin/sh
    
    #
    # Alternativa a "startx", permette di selezionare un window manager come argomento
    # o quello di default in "~/.xinitrc"
    #
    
    WM=$1
    
    if [ "$WM" = "kde" ] ; then
    	`ln -sf ~/.xinitrckde ~/.xinitrc`
    elif [ "$WM" = "gnome" ] ; then
    	`ln -sf ~/.xinitrcgnome ~/.xinitrc`
    elif [ "$WM" = "fluxbox" ] ; then
    	`ln -sf ~/.xinitrcfluxbox ~/.xinitrc`
    
    #
    # L'opzione "-q" stampa i window manager che si possono selezionare
    #
    elif [ "$1" = "-q" ] ; then
    	echo
    	echo "I window manager selezionabili sono:"
    	echo
    	echo " kde"
    	echo " gnome"
    	echo " fluxbox"
    	echo
    	echo "per selezionarli digitare uno di essi come argomento"
    	echo
    	exit 0
    
    #
    # L'opzione "--help" stampa un piccolo aiuto
    #
    elif [ "$1" = "--help" ] ; then
    	echo
    	echo "xstart è un comando che va a sostituire startx."
    	echo "Più che sostituire sarebbe meglio dire integrare" 
    	echo "in quanto alla fine viene comunque eseguito startx."
    	echo
    	echo "Le opzioni possibili sono:"
    	echo
    	echo " --help   stampa questo scritto"
    	echo
    	echo "  -q      elenca i window manager"
    	echo "          disponibili."
    	echo
    	echo "L'uso è semplice, per avviare un window manager"
    	echo "basta dare il suo nome come argomento, se"
    	echo "viene dato il comando xstart senza argomenti"
    	echo "verrà caricato l'ultimo window manager usato."
    	echo
    	exit 0
    fi
    
    
    #
    # And now... startx!!!
    #
    
    `startx`
    Lo ho poi copiato da root in /usr/bin dandogli un "chmod 755 /usr/bin/xstart".
    Come si nota i commenti sono in italiano a parte il "And now... startx!!!" su cui ho voluto fare il figo! :quipy:

    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  2. #2
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    PS: il primo commento non è corretto in quanto ".xinitrc" viene sovrascritto dal link simbolico, lo avevo scritto in quel modo e non lo ho modificato.
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    faccio così anche io per scegliere se usare XFREE con il twin view della nvidia oppure senza.
    In quel caso cambio il file XF86Config-4.

    Anche io chiedo se c'è una soluzione migliore.
    (va bene anche così, però solo perchè uso un solo utente)

    Ciao

  4. #4
    Bel lavoro wolf!

    Solo una cosa (magari può velocizzare l'operazione per qualcuno): (se non sbaglio) gli script che hai personalizzato per avviare i differenti wm esistono già in Slackware se i rispettivi wm vengono installati con i pacchetti .tgz ufficiali (grazie allo script doinst.sh presente nel pacchetto).



    #!/bin/sh

    WM=$1

    if [ "$WM" = "kde" ] ; then
    `ln -sf /etc/X11/xinit/xinitrc.kde ~/.xinitrc`
    elif [ "$WM" = "gnome" ] ; then
    `ln -sf /etc/X11/xinit/xinitrc.gnome ~/.xinitrc`
    elif [ "$WM" = "fluxbox" ] ; then
    `ln -sf /etc/X11/xinit/xinitrc.fluxbox ~/.xinitrc`


    Magari non era importante....comunque....lo script è ben fatto. Credo comunque che sia possibile avviare differenti wm passando parametri al comando startx.....che qualcuno ce li dica!!


    Ciao wolf
    Slackware 10 powered
    FreeBSD 5.1
    Libranet 2.7

    Happy Slacking...and have fun!!

  5. #5
    Utente di HTML.it L'avatar di kio002
    Registrato dal
    Nov 2002
    Messaggi
    270
    invece di andarti a incasinarti la vita con gli script puoi più semplicemente usare il comando xwmconfig specifico per la slack

  6. #6
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Originariamente inviato da velenux
    Bel lavoro wolf!

    Solo una cosa (magari può velocizzare l'operazione per qualcuno): (se non sbaglio) gli script che hai personalizzato per avviare i differenti wm esistono già in Slackware se i rispettivi wm vengono installati con i pacchetti .tgz ufficiali (grazie allo script doinst.sh presente nel pacchetto).



    #!/bin/sh

    WM=$1

    if [ "$WM" = "kde" ] ; then
    `ln -sf /etc/X11/xinit/xinitrc.kde ~/.xinitrc`
    elif [ "$WM" = "gnome" ] ; then
    `ln -sf /etc/X11/xinit/xinitrc.gnome ~/.xinitrc`
    elif [ "$WM" = "fluxbox" ] ; then
    `ln -sf /etc/X11/xinit/xinitrc.fluxbox ~/.xinitrc`


    Magari non era importante....comunque....lo script è ben fatto. Credo comunque che sia possibile avviare differenti wm passando parametri al comando startx.....che qualcuno ce li dica!!


    Ciao wolf

    Ottimo Velenux , non ci avevo pensato, questo in effetti semplifica molto le cose!
    Anzi, si può anche configurare l'installazione o un sistema di verifica dei wm esistenti con relativo aggiornamento, mi hai dato un ottimo input
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  7. #7
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Originariamente inviato da kio002
    invece di andarti a incasinarti la vita con gli script puoi più semplicemente usare il comando xwmconfig specifico per la slack
    Hai ragione anche tu Kio, però col mio script che, sulla base di quanto mi ha detto Velenux migliorerò, la cosa è più immediata, in più questo potrebbe essere riutilizzabile anche per altre distro dove un utente volesse velocizzare l'avvio del wm senza passare da interfacce grafiche.
    E poi... è comunque un piccolo esercizio di shell scripting che non va mai male! :gren:


    Ciao Gianiaz
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  8. #8
    uhmm provato mai: xwmconfig (non ricordo se si scrive cosi) serve a selezionare le interfacce grafiche

    Ops mi sono accorto dopo che era stato gia segnalto.. maledetto vizio di non leggete tutti i post!


    Aho wolf se ti vuoi divertire e non lo conosci gia, il comando dialog (o xdialog per interfaccia x) e praticamente quello su cui sono basati tutti i tools di slack pkgtool e roba varia, quelle interfaccine grafiche,

    buyebye

  9. #9
    Ho realizzato una variante dello script. Piuttosto che copiare nella ~ tanti script quanti sono i wm da avviare, è possibile mantenerne uno solo privato dell'ultima istruzione relativa al wm....e lasciare al sistema l'onere di inserire l'istruzione giusta in corrispondenza ad ogni wm sfruttando il redirezionamento su file >>.
    La prima parte dello script funziona perfettamente....ma le ultime due istruzioni relative alla sostituzione dello script .xinitrc (ora con wm indicato) con lo script .xinitrc "pulito" non vanno. Alla chiusura di X i comandi non trovano i rispettivi file....mmmmmmmmmmm....sicuramente ci saranno orrori di sintassi: fix me please!!


    #!/bin/sh

    # Dopo aver copiato lo script .xinitrc senza l'ultima istruzione
    # (quella sotto il commento Start the window manager) in una directory a scelta
    # (es ~/script/) e dopo aver cancellato l'ultima riga nell'attuale .xinitrc
    # in base alla scelta fatta viene aggiunta l'ultima istruzione ad .xinitrc


    WM=$1

    if [ "$WM" = "kde" ] ; then
    `echo "startkde" >> ~/.xinitrc`
    elif [ "$WM" = "gnome" ] ; then
    `echo "exec gnome-session" >> ~/.xinitrc`
    elif [ "$WM" = "wmaker" ] ; then
    `echo "exec /usr/bin/wmaker" >> ~/.xinitrc`

    fi


    'startx'

    # Ora bisogna rimuovere lo script .xinitrc perchè configurato su un dato wm
    # e sostituirlo con lo script in precedenza "privato" dell'ultima istruzione
    # copiato nella dir scelta (es ~/script/)

    'rm ~/.xinitrc'
    'cp ~/script/.xinitrc ~/'


    PS: Non uccidetemi per eventuali bestialità....FIX ME!

    Slackware 10 powered
    FreeBSD 5.1
    Libranet 2.7

    Happy Slacking...and have fun!!

  10. #10
    Un salutone a wolf64

    Hai ragione....un pò d'esercizio di shell scripting non fà mai male!!

    Hack your brain
    Slackware 10 powered
    FreeBSD 5.1
    Libranet 2.7

    Happy Slacking...and have fun!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.