Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-04-13 13:09:41

  jacekz - Użytkownik

jacekz
Użytkownik
Skąd: Lubuskie
Zarejestrowany: 2013-01-20

[bash] skrypt .xinitrc uruchamianie jednego z wielu środowisk

W Artykułach jest tekst: http://dug.net.pl/tekst/224/zastapienie_ekranu_logo … utologowanie/
@mati75 opisuje w nim jak plik .xinitrc może uruchamiać kilka środowisk:

Kod:

#!/bin/sh
if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

if [[ $1 == "fluxbox" ]]
then
  exec startfluxbox
elif [[ $1 == "spectrwm" ]]
then
  exec spectrwm
else
  echo "Choose a window manager"
fi

Mam więc 2 pytania:

1) Jak przekazuje się mu zmienną? Czyżby tak: $startx fluxbox

2) Jak dostosować go do powłoki bash i debiana sid w mojej sytuacji, bo to co poniżej nie działa:

Kod:

if [ -d /etc/X11/xinit/xinitrc ]; then
for f in /etc/X11/xinit/xinitrc/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
if [[ $1 == "openbox" ]]
then
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session
elif [[ $1 == "i3" ]]
then
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session i3 -c ~/.config/i3/config
elif [[ $1 == "awesome" ]]
then
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session awesome
else
echo "Choose a window manager"
fi

Edit -------------------------------------------------
bash wskazywał na błędy z [[ i == sprawdzałem więc rózne wersje skryptu...

Ostatnio edytowany przez jacekz (2014-04-13 13:16:42)

Offline

 

#2  2014-04-13 14:16:38

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [bash] skrypt .xinitrc uruchamianie jednego z wielu środowisk

Rzuć okiem (tylko celnie, żebyś oka bez potrzeby nie marnował) :D
http://forums.gentoo.org/viewtopic-t-950196.html
Może się przyda. ;)

Ostatnio edytowany przez Jacekalex (2014-04-13 14:18:35)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2014-04-13 15:01:48

  jacekz - Użytkownik

jacekz
Użytkownik
Skąd: Lubuskie
Zarejestrowany: 2013-01-20

Re: [bash] skrypt .xinitrc uruchamianie jednego z wielu środowisk

Spasiba, przydało się :)

Skrypt w .xinitrc:

Kod:

session=${1:-openbox}

case $session in
        openbox) exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session;;
        i3) exec ck-launch-session dbus-launch --sh-syntax --exit-with-session i3 -c ~/.config/i3/config;;
        awesome) exec ck-launch-session dbus-launch --sh-syntax --exit-with-session awesome;;
        # No known session, try to run it as command
        *) exec $1;;                
esac

Wyboru dokonuje się np. tak: startx ~/.xinitrc i3

W celu "pełnej automatyki" w .profile umieściłem:

Kod:

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
TMOUT=3    # Prompt times out at three seconds.
read -p " StartX (3 sec):      (o)penbox     (i)3      (a)wesome    (n)oX  " -n 1 s
case "$s" in
  "o") exec startx ~/.xinitrc openbox &> /tmp/.xsession-errors ;;
  "i") exec startx ~/.xinitrc i3 &> /tmp/.xsession-errors ;;
  "a") exec startx ~/.xinitrc awesome &> /tmp/.xsession-errors ;;
  "n") echo "no X!" ;;  
  *) exec startx ~/.xinitrc openbox &> /tmp/.xsession-errors
esac
fi

Ostatnio edytowany przez jacekz (2014-04-13 15:04:03)

Offline

 

#4  2014-04-13 15:47:50

  mati75 - Psuj

mati75
Psuj
Skąd: masz ten towar?
Zarejestrowany: 2010-03-14

Re: [bash] skrypt .xinitrc uruchamianie jednego z wielu środowisk

U mnie w skrypcie się wykonywało ./skrypt fluxbox. Ja mam na stałe w wrzucone do .xinitrc:

Kod:

export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
exec dbus-launch --sh-syntax --exit-with-session openbox-session

i dziala.


https://l0calh0st.pl/obrazki/userbar.png

Offline

 

#5  2014-04-13 18:41:30

  jacekz - Użytkownik

jacekz
Użytkownik
Skąd: Lubuskie
Zarejestrowany: 2013-01-20

Re: [bash] skrypt .xinitrc uruchamianie jednego z wielu środowisk

@mati75
podobnie wygladało to u mnie, gdy nie chciałem uruchamiać niczego poza openboxem.

Testując skrypty okazało się że mam problem z "zaborczymi" X-ami:
przy starcie wybierając "n" skrypt z .profile powinien jedynie wyswietlić "no X!" i pozostać w konsoli tty1. Jednak nadal stara sie uruchomić X-sy (i jesli nic nie zrobie to uruchamia openbox)

Dlaczego? Jak to zmienić?


Autologowanie mam wykonane tak:
/etc/inittab:

Kod:

1:2345:respawn:/bin/login -f jacek tty1 </dev/tty1 >/dev/tty1 2>&1

Ostatnio edytowany przez jacekz (2014-04-13 18:45:55)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)