dotfiles

personal dotfiles
git clone anongit@rnpnr.xyz:dotfiles.git
Log | Files | Refs | Feed | Submodules

displaycon (1321B)


      1 #!/usr/alt/bin/rc
      2 
      3 disp=(DisplayPort-0 HDMI-A-0)
      4 
      5 nl='
      6 '
      7 
      8 oldifs=$ifs
      9 ifs=$nl
     10 connected=`{xrandr | grep '\sconnected'}
     11 ifs=$oldifs
     12 
     13 fn display_location_orientation {
     14 	xrandr --output $disp(1) --auto --scale 1.0x1.0 --primary
     15 	xrandr --output $disp(2) --$1 $disp(1) --rotate $2 --auto
     16 }
     17 
     18 fn display_one {
     19 	ifs=$nl
     20 	# NOTE: covers disconnected too
     21 	all_screens=`{xrandr | grep 'connected'}
     22 	ifs=$oldifs
     23 	extra_args=`{printf '%s' $all_screens ^ $nl | grep -v $1 | awk '{print "--output", $1, "--off"}'}
     24 	xrandr --output $1 --primary --auto --scale 1.0x1.0 $extra_args
     25 }
     26 
     27 dmenu_args=(                                \
     28 'DLL: Display Left of with Left Rotation'   \
     29 'DLN: Display Left of with Normal Rotation' \
     30 'DBN: Display Below with Normal Rotation'   \
     31 'ONE: Primary Display Only'                 \
     32 )
     33 
     34 switch ($#connected) {
     35 case 1
     36 	ifs=' '
     37 	connected_display=`{printf '%s' $connected ^ $nl}
     38 	display_one $connected_display(1)
     39 case *
     40 	ifs=':'
     41 	func=`{printf '%s' $dmenu_args ^ $nl | dmenu -i -l $#dmenu_args -p 'Display Profile?'}
     42 	ifs=$oldifs
     43 	switch ($func(1)) {
     44 	case DLL
     45 		display_location_orientation 'left-of'  'left'
     46 	case DLN
     47 		display_location_orientation 'left-of'  'normal'
     48 	case DBN
     49 		display_location_orientation 'below'    'normal'
     50 	case ONE
     51 		display_one $disp(1)
     52 	}
     53 }
     54 
     55 bgs -z $home/.config/h_wallpaper.jpg