UFFICIALE L'OT di Linux e altri OS

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
per curiosità, mi posti l' output di xrandr perché a me non lo da la doppia (normal, right etcetc).
xrandr con schermo orientato 'normal':
Codice:
xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 260mm x 140mm
   1920x1080     60.00*+
   1400x1050     59.98  
   1600x900      60.00  
   1280x1024     60.02  
   1280x960      60.00  
   1368x768      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
xrandr con schermo ruotato a sinistra:
Codice:
xrandr
Screen 0: minimum 8 x 8, current 1080 x 1920, maximum 32767 x 32767
eDP1 connected primary 1080x1920+0+0 left (normal left inverted right x axis y axis) 260mm x 140mm
   1920x1080     60.00*+
   1400x1050     59.98  
   1600x900      60.00  
   1280x1024     60.02  
   1280x960      60.00  
   1368x768      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
 

« MoMy »

Utente Èlite
1,526
765
Capito.
Quindi ti da la modalità nel momento in cui non è normal. La riga di riferimento è la seconda, il monitor è eDP1 e se non è left inverted oppure right, è normal.
Ma se ci colleghi anche uno schermo HDMI1, lo script salta?
 

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
Capito.
Quindi ti da la modalità nel momento in cui non è normal. La riga di riferimento è la seconda, il monitor è eDP1 e se non è left inverted oppure right, è normal.
Ma se ci colleghi anche uno schermo HDMI1, lo script salta?
eh sì, perchè nella prima riga
Codice:
echo $(xrandr |grep "eDP1") > rotate_cache.txt
devi sostituire il monitor che usi (nel tuo caso HDMI1); infatti è uno script non molto 'smart' dato che chi l'ha scritto non è molto 'smart' in bash..:P

a proposito lo script funziona alla grande
Codice:
#!/bin/bash

echo $(xrandr |grep "eDP1") > rotate_cache.txt
if [ $(grep -c left rotate_cache.txt) = "2" ]
then
 xrandr -o inverted && xinput set-prop "SYNA2B23:00 06CB:2714" --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 notify-send --icon computer 'Rotazione schermo' "Orientamento = INVERTITO"
else
 if [ $(grep -c right rotate_cache.txt) = "2" ]
 then
  xrandr -o normal && xinput set-prop "SYNA2B23:00 06CB:2714" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0
  notify-send --icon computer 'Rotazione schermo' "Orientamento = NORMALE"
 else
  if [ $(grep -c inverted rotate_cache.txt) = "2" ]
  then
   xrandr -o right && xinput set-prop "SYNA2B23:00 06CB:2714" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
   notify-send --icon computer 'Rotazione schermo' "Orientamento = DESTRO"
   echo "rotazione-inverted"
  else
   xrandr -o left && xinput set-prop "SYNA2B23:00 06CB:2714" --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1
   notify-send --icon computer 'Rotazione schermo' "Orientamento = SINISTRO"
   echo "rotazione-normal"
  fi
 fi
fi
rm ~/rotate_cache.txt
il problema è che il comando
Codice:
grep -c left rotate_cache.txt
non mi restituisce '2' quando in rotate_cache.txt c'è effettivamente 2 volte la parola left. ho provato anche a mettere la parola da conteggiare tra doppi apici ma mi restituisce sempre '1': suggerimenti?

Edit: il comando 'grep -c parola file.txt' conta correttamente il numero di volte che il file.txt contiene la parola solo se la parola da cercare è su righe diverse: sulla stessa riga viene conteggiata 1 sola volta.
 
Ultima modifica:

« MoMy »

Utente Èlite
1,526
765
Perché giustamente grep riporta le linee che contiene l' occorrenza e wc conta le linee dall' output di grep.
Una riceca veloce mi ha dato questo risultato che secondo me lo potresti prendere come esempio:
Codice:
##INVOCAZIONE: ./script.sh nomefile parola da cercare

VAR="0"
for i in `cat nome-file/$1`
do
        if [[ "$i" = "$2" ]]
         then
                VAR=$(($VAR+1))
        fi
done

echo $VAR
Cosa fa? lanciando lo script script.sh + nomefile + parola, cerca nel file le occorrenze e le pubblica nell' echo finale. Per fare una cosa pulita dovresti, isolare il monitor da controllare nel caso di un collegamento a monitor esterno (hdmi) non venga preso in considerazione, isolare la seconda riga dell' output di xrandr in modo da analizzare solo quella e cercare di non usare un file di testo, ma variabili visto che a esecuzione terminata dello script, verrebbero ''eliminate''.

Personalmente ragionerei in questi termini.
 

centoventicinque

Moderatore
Staff Forum
Utente Èlite
7,439
3,199
CPU
Intel core I5 4950/ i5 3550
Dissipatore
coolermaster Mod Anonima sequestri
Scheda Madre
anonima sequestri/ p8z77le
HDD
crucial bx500 480GB+raid0 wd blue 500GB / 8Xwd red 2TB[9420I+4X seagate 2TB [intel] 2x850 pro 256GB
RAM
16GB ddr3 1600 / 16 GB ddr3 hyperx
GPU
gtx660TI 3GB / gtx 1080 TI
Audio
Azila
Monitor
40" 4k LG / asus 27"
PSU
cm masterwatt 650 / microstar 750W
Case
anonimo itek/rack 2U
OS
archlinux X68_66
vi piace il mio nuovo giocattolino ?

in pratica un quasi ssd da 6 TB

p.s: poterò questo come esempio quando mi diranno " per linux non ci sono i driver".

perchè windows 10 non lo caga
 

Allegati

  • Schermata da 2017-03-20 18-17-07.png
    Schermata da 2017-03-20 18-17-07.png
    1.2 MB · Visualizzazioni: 36

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
vi piace il mio nuovo giocattolino ?

in pratica un quasi ssd da 6 TB

p.s: poterò questo come esempio quando mi diranno " per linux non ci sono i driver".

perchè windows 10 non lo caga
cioè in scrittura è più veloce che in lettura?!
 

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
Perché giustamente grep riporta le linee che contiene l' occorrenza e wc conta le linee dall' output di grep.
Una riceca veloce mi ha dato questo risultato che secondo me lo potresti prendere come esempio:
Codice:
##INVOCAZIONE: ./script.sh nomefile parola da cercare

VAR="0"
for i in `cat nome-file/$1`
do
        if [[ "$i" = "$2" ]]
         then
                VAR=$(($VAR+1))
        fi
done

echo $VAR
lo script lo conoscevo come una delle mie peregrinazioni sul web in cerca della soluzione..vorrei poter risolvere con una miscela di grep sed awk etc etc. ci sarà la possibilità di contare una stringa in un file maneggiando le stringhe!:boh:
 

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
vorrei poter risolvere con una miscela di grep sed awk etc etc. ci sarà la possibilità di contare una stringa in un file maneggiando le stringhe!:boh:
la soluzione è questa:
Codice:
grep -o "left" rotate_cache.txt | wc -l
nel caso di left.
 

« MoMy »

Utente Èlite
1,526
765
Certo tranquillamente anche, se ci aggiungi una regex meglio ancora. Son cose che al tempo della tua conky abbiam visto.
 

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
  • Mi piace
Reazioni: e_ale92

« MoMy »

Utente Èlite
1,526
765
Per esempio una cosa un po' grezza. Visto che dall' output di xrandr sappiamo che la riga utile è la seconda, che il quinto campo può essere left, right oppure inverted, noi possiavo visualizzare il quinto campo con awk e lavorare su quello:
Codice:
xrandr | sed -n '2p'| awk '{print $5}'
Se il risultato è uguale a .... left oppure right oppure inverted, fai questo
altrimenti fai quello.
''E con altrimenti fai quello'' significa tutto quello che non è uguale a left oppure right oppure inverted. Capisciuto?
Certo si può pulire ancora in modo da avere un risultato pulito.
Ti ricordo che una variabile può contenere un comando. :P

EDIT: Ieri ti chiesi l' output del comando perché la modalità impostata su normal non la vedevo.
Qui è impostata su left e se conti i campi $5 è left.
Codice:
eDP1 connected primary 1080x1920+0+0 left (normal left inverted right x axis y axis) 260mm x 140mm
Mentre qui è impostata su normal e il quinto campo non è questo e manco quello.
Codice:
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 260mm x 140mm
Anzi, puoi sfruttare il fatto che quando è impostato a normal, $5 è uguale/case-sensitive a (normal (con parentesi aperta). :P
 
Ultima modifica:
  • Mi piace
Reazioni: rebellion

centoventicinque

Moderatore
Staff Forum
Utente Èlite
7,439
3,199
CPU
Intel core I5 4950/ i5 3550
Dissipatore
coolermaster Mod Anonima sequestri
Scheda Madre
anonima sequestri/ p8z77le
HDD
crucial bx500 480GB+raid0 wd blue 500GB / 8Xwd red 2TB[9420I+4X seagate 2TB [intel] 2x850 pro 256GB
RAM
16GB ddr3 1600 / 16 GB ddr3 hyperx
GPU
gtx660TI 3GB / gtx 1080 TI
Audio
Azila
Monitor
40" 4k LG / asus 27"
PSU
cm masterwatt 650 / microstar 750W
Case
anonimo itek/rack 2U
OS
archlinux X68_66

davethecipo

Utente Èlite
3,331
1,163
CPU
i5 4660
Scheda Madre
H97 PC Mate
HDD
qualcuno
RAM
8 GB
GPU
R9 280
Monitor
Samsung SyncMaster 940BW 19'
PSU
Enermax Liberty 620W
Case
Enermax Pandora Midi Tower Black
OS
Arch Linux con KDE...Windows 10
Quoto da altro thread

Sì, ma se vuoi collegartici in "rescue mode", qualsiasi cosa intendano, hai bisogno di una console.
Pessima scelta: omprare "l'informatica" dai francesi è come comprare il vino thailandese. Per quanto ci si impegnino, non verrà mai fuori niente di buono

Oggi ti vedo cattivo :asd:
 
  • Mi piace
Reazioni: e_ale92

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili