GUIDA: systemd --session per gestire la propria sessione utente

Avvio e configurazione del server X, KDE, GNOME e tutti gli altri DE/WM
Rispondi
nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 7 aprile 2013, 11:53

EDIT 26/10/13:
Per ora io sono passato a xlogin-git su aur. Lo si installa e lo si abilita per il proprio user, e questo avvia X come unità di systemd. C'è però un bug in dbus che non permette di usare le unità della user session di systemd (quelle in .config/systemd/user). Perciò xlogin avvia X e poi esegue xinitrc per avviare i programmi. Di fatto quindi, serve solo ad avviare X senza passare da autologin a vt e autostart di X.
Appena ci sono altre novità (ossia appena sarà possibile riutilizzare systemd --user per gestire la propria sessione utente, aggiornerò!
Qua c'è il readme di xlogin-git : https://github.com/joukewitteveen/xlogi ... ter/README

EDIT 29/7/13:
ATTENZIONE: da systemd 206 chiunque stesse usando questo metodo, sappia che dovrà tornare al classico .xinitrc, perchè per ora pare che questa feature sia broken.
Sul forum internazionale si sta cercando di capire come continuare a utilizzare questo metodo...appena si chiarisce meglio la situazione, edito e aggiungo la soluzione!
Posto il link alla discussione: https://bbs.archlinux.org/viewtopic.php?id=167115 .

Chiunque stesse usando il metodo con "exec systemd" in .xinitrc, dopo l'upgrade a systemd 204, dovrà cambiare quella stringa in "exec /usr/lib/systemd/systemd". E' infatti stato rimosso il symlink a /usr/bin/systemd!!

WARNING: A fine guida, dovreste riscontrare che systemd-analyze vi darà un tempo notevolmente superiore. Non dovete preoccuparvi, dato che quel comando dà il tempo effettivo di caricamento delle Units. Ma non scordiamoci che prima di usare questa guida, xorg non era una unit, ossia il suo tempo di caricamento non rientrava in systemd-analyze. Dopo, invece, lo diventa, e ovviamente systemd-analyze ne risente parecchio.
Perciò se volete una misura accurata del miglioramento/peggioramento del tempo di boot, vi consiglio di usare un caro buon vecchio cronometro!


Ciao a tutti!
Mi accingo a scrivere questa - spero esaustiva - guida, sul come utilizzare systemd per gestire anche la propria sessione utente.
Innanzitutto una avvertenza:
CHI USA KERNEL CON PATCHSET CK, non può sfruttare al 100% questo metodo : la patch ck non supporta i cgroups, perciò unica cosa che non si riuscirà a fare sarà quella di utilizzare i 2 pacchetti in aur (user-session-units e xorg-launch-helper) per inizializzare xorg e una sessione dbus per il proprio utente, senza dover passare da startx e .xinitrc.
Io utilizzo il kernel-netbook perciò ho dovuto anche io fermarmi a quel punto...poco male perchè comunque si avrà un enorme vantaggio:
- scordatevi i pessimi script "sleep 5 && conky" per avviare conky dopo il gestore del desktop, perchè con le systemd units, basta un semplice "After=$desktop-manager.service" per fare in modo che conky sia avviato SEMPRE dopo il gestore del desktop (e vi posso garantire che è una figata sta cosa!)

Allora, in realtà c'è una pagina del wiki apposita: https://wiki.archlinux.org/index.php/Systemd/User . Ma io sinceramente ho avuto difficoltà a seguirla, la trovo un po' troppo confusionaria.
Perciò, cominciamo.
- Innanzitutto, creiamo la cartella .config/systemd/user/ nella propria home. Questa è la cartella in cui inseriremo i .service della nostra sessione utente (tutto ciò che avviate da .xinitrc, per intenderci)
- Ora, spostiamoci in .config/systemd/user/, e creiamo i 2 target per i nostri .service: wm.target (http://pastie.org/7349497) e mystuff.target (http://pastie.org/7349498) -> sono uguali a quelli del wiki linkato sopra.
- Sempre nella cartella .config/systemd/user, linkiamo mystuff.target a default.target:

Codice: Seleziona tutto

ln -s mystuff.target default.target
- Adesso creiamo il nostro wm.service, come da wiki: http://pastie.org/7349522 .
- Siamo pronti per creare gli altri nostri .service. Per vedere come gestire le dipendenze, vi posto i miei tint2.service, spacefm_desktop.service e compton.service (che hanno dipendenze concatenate):

Codice: Seleziona tutto

cat .config/systemd/user/tint2.service 
[Unit]
Description=Tint panel
Requires=compton.service xorg.target spacefm_desktop.service
After=compton.service xorg.target spacefm_desktop.service

[Service]
ExecStart=/usr/bin/tint2 -c /home/federico/.config/tint2/dragonauta.tint2rc

[Install]
WantedBy=mystuff.target
###################
cat .config/systemd/user/spacefm_desktop.service 
[Unit]
Description=Spacefm desktop manager
Requires=xorg.target
After=xorg.target

[Service]
ExecStart=/usr/bin/spacefm --desktop

[Install]
WantedBy=mystuff.target
###################
cat .config/systemd/user/compton.service 
[Unit]
Description=Compton compositor
Requires=xorg.target
After=xorg.target
Before=tint2.service

[Service]
Type=forking
ExecStart=/usr/bin/compton -cGCbf -m 0.9 -i 0.8 -D 5 --shadow-exclude 'g:e:Conky'

[Install]
WantedBy=mystuff.target
Create gli altri .service delle applicazioni che avviate da .xinitrc, stando bene attenti alle infradipendenze.
- Abilitate i vostri .service:

Codice: Seleziona tutto

systemctl --user enable X.service
Solo chi usa kernel con patchset CK, gli altri saltino pure più sotto.
- Commentate tutto .xinitrc e scrivete semplicemente "exec systemd", come nel mio caso:

Codice: Seleziona tutto

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

#spacefm --desktop & 
#compton -cGCf -m 0.9 -i 0.8 -D 5 --shadow-exclude 'g:e:Conky' &
#volumeicon &
#/home/federico/Script/touchpadoff_onboot.sh &
#connman-ui-gtk &
#/home/federico/Script/calised-script &
#dimdaemon &
#tint2 -c .config/tint2/dragonauta.tint2rc &
#conky -p 5 -c Script/conky.conf &

#exec openbox
exec systemd
(l'if serve per avviare una sessione dbus per il mio utente, visto che uso un wm senza sfruttare il gestore della sessione)
- Ora, prendete tutti i .service e i .target creati in precedenza, in .config/systemd/user/ e modificateli, rimuovendo tutte le righe relative a "xorg.target", e in wm.target, anche la riga relativa a "dbus.socket" (servono solo per chi usa user-session-units e xorg-launch-helper da aur, ma noi non possiamo)
Chi usa CK patchset, ha finito il lavoro. Adesso può riavviare la macchina e pregare che tutto funzioni :) (nel caso vi basta riportare .xinitrc come era prima e non avete cambiato nient'altro, quindi non c'è pericolo.)

Per chi usa kernel -ARCH o comunque non utilizza CK:
- Installate da AUR user-session-units e xorg-launch-helper.
- Copiate user-session@.service da /usr/lib/systemd/system/ a /etc/systemd/system/
- Modificate in /etc/systemd/system/user-session@.service; le 2 linee:

Codice: Seleziona tutto

Environment=XDG_RUNTIME_DIR=/run/user/%I
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket
vanno cambiate in:

Codice: Seleziona tutto

Environment=XDG_RUNTIME_DIR=/run/user/%U
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/dbus/user_bus_socket
- abbiamo praticamente finito: ora linkate questa unit al graphical.target, aggiungendo dopo la @ il vostro nome utente:

Codice: Seleziona tutto

sudo ln -s /etc/systemd/system/user-session@.service /etc/systemd/system/graphical.target.wants/user-session@federico.service
- abilitate il graphical.target, se non è già attivo:

Codice: Seleziona tutto

sudo systemctl -f enable graphical.target
- Modificate /etc/pam.d/login e /etc/pam.d/system-auth , aggiungendo

Codice: Seleziona tutto

session    required    pam_systemd.so
- Riavviate, pregate, e tutto dovrebbe funzionare :)

Spero di essere stato esaustivo...io con questo metodo ho guadagnato un secondino all'avvio, e non ho più i tempi morti dei famosi "sleep X" nei miei script. Lo trovo davvero uno strumento molto potente e interessante, anche se ancora un po' sperimentale.

IL METODO RISULTA MOLTO UTILE PER CHI NON SI AVVALE DI UN GESTORE DELLA SESSIONE, ma usa solo un window manager. Infatti il gestore della sessione avvia per i fatti suoi i nostri programmi, perciò non avrebbe senso utilizzare anche systemd per fare lo stesso lavoro (anche se comunque systemd lo fa molto meglio, visto che gestisce le dipendenze. Ma prima o poi anche i DE dovranno adattarsi a questo strumento)

EDIT (20/05/13) : guida ripulita, aggiunto un warning all'inizio!
Ultima modifica di nierro il 26 ottobre 2013, 13:03, modificato 12 volte in totale.

Avatar utente
KleinerMann
Moderatore
Messaggi: 3784
Iscritto il: 8 gennaio 2011, 20:59
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da KleinerMann » 9 aprile 2013, 22:19

bel lavoro, magari lo mettiamo in evidenza almeno per un po'? :D
Arch Linux - AwesomeWM

Avatar utente
Berseker
Amministratore
Messaggi: 4432
Iscritto il: 27 settembre 2007, 10:18
Architettura: x86_64 (64bit)
Località: Lecco (provincia)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da Berseker » 10 aprile 2013, 7:13

se sto weekend avanzo il tempo per trasferire il mio attuale setup su una nuova arch64 su SSD testo la guida di sicuro :)
Leggete il Regolamento e cercate sempre su googleforumwiki prima di chiedere.
Tag x thread risolti: [Risolto] + Spazio messo all'inizio del titolo. Grazie

ArchWiki / Board Internazionale / Blog

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 10 aprile 2013, 17:15

Devo essere sincero, usando le user-session-units il boot si è allungato di 5-6 secondi... non so. Io uso un lento hdd, e non un ssd. @Berserker: Se riuscissi a testare i tempi anche su un ssd giusto per capire, sarebbe interessante e d'aiuto!
Comunque sono tornato al vecchio autologin to vt e autostartx (dove in .xinitrc sfrutto la systemd --user session, come da guida). Anche perchè la patch BFS migliora notevolmente le performance generali, secondo me.

Avatar utente
jolly
Novello Arciere
Messaggi: 62
Iscritto il: 5 ottobre 2008, 18:16
Località: Torino
Contatta:

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da jolly » 11 aprile 2013, 10:19

...mi sa che ci provo oggi!

grazie!
jolly-v1.01.25.sh

Dependencies: e-cigarettes, friends, girls, computers, beer, music.

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 11 aprile 2013, 18:02

Fammi sapere! Spero vada tutto liscio :)
Se provate la guida e avete suggerimenti per migliorarla, ovviamente siamo qua apposta. Limiamola insieme affinchè risulti comprensibilie e facile da seguire!

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 16 aprile 2013, 13:44

Io sinceramente non ho capito a che serve avviare "systemd" come utente.

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 16 aprile 2013, 19:31

Uhm, come spiego nella guida, sfrutti le potenzialità delle systemd UNITS, nella tua sessione utente. Mi pare abbastanza chiaro :) cosa ti sfugge?

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 16 aprile 2013, 23:20

Che non ho letto la tua guida forse :D anche perché non pensavo vi fosse scritto. Chiedn venia.
Ad ogni modo, saresti così gentile da spiegarmi brevemente in cosa consiste e perché sarebbe un vantaggio?

P.S.: lo so che potrei leggere su "systemd" ma non ne ho il tempo e chiedo per un riassunto. :) Perdonatemi.

Grazie mille.

Edit: ho buttato un occhio alla tua guida, per la quale comunque ti ringrazio, ma avrei ancora bisogno di qualche ulteriore esempio per quanto riguarda i vantaggi.
Io uso per lo più il Framebuffer solo e quando mi serve Firefox (praticamente l'unica app "sofisticata"), avvio Xorg con solo "dwm". Nel mio caso dove potrebbe essere il vantaggio?

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 17 aprile 2013, 11:00

Cioè, in .xinitrc non hai nulla? Essendo questo un metodo di gestire la propria sessione utente (ossia dei programmi che vengono autoavviati), se non avvii nulla, tranne il wm, ti servirebbe a ben poco. Il metodo systemd è molto potente quando hai da gestire programmi con interdipendenze, in autoavvio. Oppure ti faccio un altro esempio: potresti voler far avviare uno script SE E SOLO SE viene avviato ad esempio cups.service...capisci anche te che col vecchio metodo era un attimo complicato, adesso con le systemd units è un gioco da ragazzi...e via dicendo, questi sono i vantaggi di usare systemd(e credimi, prima o poi tutti i DE useranno un'interfaccia grafica sulla systemd --user session, invece che il vecchio .config/autostart/ ).
La seconda parte della guida, quella che spiega come avviare xorg dal proprio utente, senza passare da xinit, ad oggi è ancora molto sperimentale, ma un domani sostituirà appunto xinitrc, e ti permetterà di tenere traccia anche di xorg, come fosse un servizio.

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 17 aprile 2013, 13:42

Ora non ricordo esattamente ma ho solo quei programmini classici come "xset" e ciò che occorre a "dwm". Quindi presumo che nell'attesa che .xinitrc diventi obsoleto, non avendo particolari programmi che si avviano in automatico, interdipendenze, De e nemmeno servizi con una determinata priorità, posso tranquillamente ignorare il tutto nel mio caso di specie.
Pensandoci, l'unica cosa che potrei far avviare in automatico perché rimanga in background (oltre ad "urxvtd" che non credo rientri nel discorso però; correggimi se sbaglio) è "mpd".

Ti posto appena ne ho l'occasione come gire il mio sistema così mi dai qualche eventuale dritta?

Grazie di tutto.

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 17 aprile 2013, 14:41

Senz'altro! Aspetto tue notizie:)

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 26 aprile 2013, 12:14

Eccomi, perdona l'attesa ma il tempo è tiranno.

Ricapitolando io, cogliendo l'occasione concessa dal tuo thread, vorrei capire se mi conviene o meno avviare systemd come utente.

Detto questo ti posto, almeno per cominciare, come d'accordo, il mio .xinitrc

Codice: Seleziona tutto

#!/usr/bin/env bash

"${HOME}"/.bin/stapp
# If the wm runs first, statbar doesn't load.
"${HOME}"/.dwm/statbar

while : ; do

    dwmLog="${HOME}/.dwm/dwm.log"    
    
    dwm 2> "${dwmLog}"

done
$ cat ~/.bin/stapp

Codice: Seleziona tutto

#!/usr/bin/env bash

# Insert "xset" in an infinite loop cycle cause "max number of clients reached" issue.
for i in 1 ; do
   fc-cache -vf
   xset +fp /usr/share/fonts/local
   xset fp rehash
done &

setxkbmap -option terminate:ctrl_alt_bksp
setxkbmap -option caps:escape

# xmodmap -e "keycode 16=7 backslash"
# xmodmap -e "keycode 49=slash bar"

unclutter -noevents &

urxvtd -q -f -o

setterm -blank 0 -powerdown 0 &
xset s off &
xset -dpms &

syndaemon -k -i 1.0s -d &

xset b off &
xset m 15 10 &

xsetroot -solid "black" &

xrdb -merge "${HOME}"/.Xresources
Grazie mille.

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 26 aprile 2013, 12:31

Uhm, sinceramente, non vedendo "sleep" o interdipendenze, (tranne .dwm/statbar necesariamente prima di dwm, per quanto ho capito), non credo te ne faresti molto di avviare systemd da utente.
Diciamo che gestire tutto tramite "systemctl enable/disable" (una volta che ti sei creato i .service ovviamente) lo trovo comunque molto più facile (e avere in .xinitrc solo "exec systemd" lo trovo pulitissimo :) ) ma ovviamente questa sensazione cambia da persona a persona...diciamo che trovo affascinante il fatto che la mia sessione utente si possa amministrare in maniera simile alla gestione dei demoni di sistema, e che tutto sia unificato. Cosi come, appena xorg-launch-helper e le user-session-units miglioreranno un po', sarà ancora meglio avere anche xorg avviato come servizio da systemd.

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 26 aprile 2013, 12:44

Quindi, oltre a ringraziarti per il tuo ragguaglio, diciamo che posso tranquillamente rimanere come sto almeno finché non verrà il momento di avviare anche Xorg come service. Dico bene?

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 26 aprile 2013, 12:51

Si!
Anche se, considerando che secondo me systemd --user non sarà utilizzato ancora per almeno 1 anno, e che i grandi DE (gnome , kde e e17 per ora) stanno per mandare in pensione xorg e utilizzare wayland (o meglio, avranno il supporto per entrambi)...come tempistiche va a finire che avvieremo wayland dalla user-session e non xorg :D

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 29 aprile 2013, 12:42

Tanto di guadagnato allora.

A proposito, perdona l'ot, ma non è che ti intendi anche di Wayland? Avevo posto una domanda in un thread attinente ma non ha risposto nessuno.

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 29 aprile 2013, 15:22

Uhm, prova a linkare il thread :)

kicka
Novello Arciere
Messaggi: 58
Iscritto il: 13 gennaio 2012, 9:55
Località: Palermo

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da kicka » 30 aprile 2013, 8:39

Nierro innanzitutto grazie per la guida molto interessante i principi che illustra (che disconoscevo...). Essendo un utilizzatore di Openbox come puoi ben immaginare sono molto interessato all'argomento. Comincio con l'elencare le mie configurazioni attuali:

.xinitrc

Codice: Seleziona tutto

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

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

# exec gnome-session
# exec startkde
# exec startxfce4
# ...or the Window Manager of your choice
compton --vsync opengl --config ~/compton.conf &
/usr/bin/xscreensaver -no-splash &
exec dbus-launch openbox-session
.config/openbox/autostart

Codice: Seleziona tutto

# Wallpaper
nitrogen --restore &

# Sound Applet
pnmixer &

# Tyling
pytyle3 &

#System Tray
tint2 &

# Covergloobus
covergloobus &

# Conky
/home/OpenBox/Ac-Bat.sh &

# Caffeine
caffeine &

# Yakuake
yakuake &
Come gestore di sessioni uso la semplice shell, dove se loggo come utente mi lancia startx, se loggo come root mi lascia la shell Il tutto realizzato con questa riga di codice in cima al .bashrc

.bashrc (solo l'inizio per comodità...)

Codice: Seleziona tutto

#
# ~/.bashrc
#

# Autostart X Graphic Shell
if [[ -z $DISPLAY ]] && ! [[ -e /tmp/.X11-unix/X0 ]] && (( EUID )); then
	startx
fi
ecco lo script di conky Ac-Bat.sh:

Codice: Seleziona tutto

#!/bin/bash
conky -c /home/OpenBox/.conky/Orologio-1920 &
conky -c /home/OpenBox/.conky/Network-Desktop &
conky -c /home/OpenBox/.conky/CpuTemp &
conky -c /home/OpenBox/.conky/HDD-Desktop &
Utilizzo il normale kernel di archlinux. Il mio problema e' che sono negato nella creazione di service per systemd... Mi piacerebbe poter lanciare tint2, conky, pnmixer, nitrogen, pytyle3, cooverglobus, caffeine e yakuake tramite systemd... e lasciarmi l'autostart di openbox vuoto dove posizionero' eventuali script/programmi da lanciare all'avvio ma non basilari. Mi potresti dare una mano nella creazione di questi servizi?
DESKTOP: Asus Sabertooth x58 | RAM: 6 GB 1600 MHz | Intel i7 930 2800 GHz | VGA: 2 NVIDIA GTX 460 1 GB SLI | HD: 4000 GB
LAPTOP: Asus N56V

Happy Linux User since 2006...
The Road so Far...: Ubuntu, Mint, Debian Squeeze, OpenSuse, ArchLinux

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da nierro » 30 aprile 2013, 11:09

Allora, io avvierei anche compton e xscreensaver tramite systemd.
Per compton, il service è:

Codice: Seleziona tutto

[Unit]
Description=Compton compositor
Before=tint2.service

[Service]
Type=forking
ExecStart=/usr/bin/compton --vsync opengl --config ~/compton.conf

[Install]
WantedBy=mystuff.target
Non so se in compton.conf lo forki in background, se non lo fai, aggiungi la "-b" alla linea execstart.
TINT2:

Codice: Seleziona tutto

[Unit]
Description=Tint panel
Requires=compton.service 
After=compton.service 

[Service]
ExecStart=/usr/bin/tint2 -c /home/federico/.config/tint2/dragonauta.tint2rc

[Install]
WantedBy=mystuff.target
CONKY: (tra l'altro mi sono appena accorto che nel mio file .conf di conky ho settato background=no, quindi settalo anche te. Avviando tutto in parallelo, systemd forka già per i fatti suoi)

Codice: Seleziona tutto

[Unit]
Description=Conky
Requires=nitrogen.service
After=nitrogen.service

[Service]
Type=oneshot #col "oneshot" come type puoi lanciare più ExecStart
ExecStart=conky -c /home/OpenBox/.conky/Orologio-1920
ExecStart=conky -c /home/OpenBox/.conky/Network-Desktop 
ExecStart=conky -c /home/OpenBox/.conky/CpuTemp 
ExecStart=conky -c /home/OpenBox/.conky/HDD-Desktop

[Install]
WantedBy=mystuff.target
PNMIXER:

Codice: Seleziona tutto

[Unit]
Description=pnmixer

[Service]
ExecStart=/usr/bin/pnmixer

[Install]
WantedBy=mystuff.target
NITROGEN:

Codice: Seleziona tutto

[Unit]
Description=nitrogen

[Service]
ExecStart=/usr/bin/nitrogen --restore

[Install]
WantedBy=mystuff.target
Poi le rimanenti...tutte simili, starei attento a caffeine che presumo richieda tint2, yakuake richiede forse il desktop manager(quindi nitrogen), cooverglobus non credo abbia dei requisiti, e pytyle non lo conosco...
EDIT: mi son scordato xscreensaver:

Codice: Seleziona tutto

[Unit]
Description=xscreensaver

[Service]
Type=forking
ExecStart=/usr/bin/xscreensaver

[Install]
WantedBy=mystuff.target
Spero vadano bene tutti, in teoria dovrebbero :)
Ultima modifica di nierro il 1 maggio 2013, 9:59, modificato 1 volta in totale.

erre
Arciere
Messaggi: 267
Iscritto il: 23 gennaio 2013, 23:12

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da erre » 30 aprile 2013, 22:18

@ kicka: se usi qualcosa come pytyle3 perché non provare direttamente con un Tiling Wm? Inoltre con systemd non occorre più lanciare dbus manualmente.

kicka
Novello Arciere
Messaggi: 58
Iscritto il: 13 gennaio 2012, 9:55
Località: Palermo

Re: GUIDA: systemd --session per gestire la propria sessione utente

Messaggio da kicka » 1 maggio 2013, 7:28

@ nierro
Grazie mille per la risposta, oggi procedo al passaggio e ti faccio sapere...

@ erre
Avevo gia' provato a togliere dbus-launch da .xinitrc ai tempi in cui abbiamo abbandonato ck-launch-system ma ebbi problemi nel montaggio degli altri HD... magari ancora non era completamente compatibile... da riprovare...
Per quanto riguarda pytyle... Non lo uso in continuazione ma solo quando ho bisogno di lavorare su 2 o 3 finestre contemporaneamente, capita..., ma non spessissimo. In quei casi ALT-A e attivo pytyle e poi ALT-U per chiuderlo.
DESKTOP: Asus Sabertooth x58 | RAM: 6 GB 1600 MHz | Intel i7 930 2800 GHz | VGA: 2 NVIDIA GTX 460 1 GB SLI | HD: 4000 GB
LAPTOP: Asus N56V

Happy Linux User since 2006...
The Road so Far...: Ubuntu, Mint, Debian Squeeze, OpenSuse, ArchLinux

Rispondi