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_logowania___autostart_x_i_autologowanie/
@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/urandom
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: default city
Zarejestrowany: 2010-03-14
Serwis

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.


[img]https://l0calh0st.pl/obrazki/userbar.png[/img]

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
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.009 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00175 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.59.165' WHERE u.id=1
0.00118 UPDATE punbb_online SET logged=1716062025 WHERE ident='3.145.59.165'
0.00065 SELECT * FROM punbb_online WHERE logged<1716061725
0.00088 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=25607 AND t.moved_to IS NULL
0.00007 SELECT search_for, replace_with FROM punbb_censoring
0.00119 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=25607 ORDER BY p.id LIMIT 0,25
0.00097 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=25607
Total query time: 0.00686 s