Better xrandr
This commit is contained in:
parent
86e3c95327
commit
b08325c2cf
|
@ -1,9 +1,13 @@
|
|||
# xrandr wrapper for nushell
|
||||
def xrandr [] {
|
||||
mut output = []
|
||||
mut current_screen: record<name: string, connected: bool, resolutions: list<string>> = {
|
||||
mut current_screen = {
|
||||
name: ""
|
||||
connected: false
|
||||
on: false
|
||||
primary: false
|
||||
resolution: null
|
||||
position: null
|
||||
resolutions: []
|
||||
}
|
||||
|
||||
|
@ -21,11 +25,33 @@ def xrandr [] {
|
|||
|
||||
if $current_screen.name != "" {
|
||||
$output = ($output | append $current_screen)
|
||||
$current_screen.resolutions = []
|
||||
$current_screen.on = false
|
||||
$current_screen.resolution = null
|
||||
$current_screen.position = null
|
||||
}
|
||||
|
||||
$current_screen.name = ($split | get 0)
|
||||
$current_screen.connected = (($split | get 1) != "disconnected")
|
||||
$current_screen.primary = (($split | get 2) == "primary")
|
||||
|
||||
let resolution = if $current_screen.primary {
|
||||
($split | get 3 | split column -c '+' | get column1 | get 0)
|
||||
} else {
|
||||
($split | get 2 | split column -c '+' | get column1 | get 0)
|
||||
}
|
||||
|
||||
if not ($resolution | str starts-with "(") {
|
||||
$current_screen.on = true
|
||||
$current_screen.resolution = $resolution
|
||||
|
||||
$current_screen.position = if $current_screen.primary {
|
||||
($split | get 3 | split column -c '+' | each { "+" + $in.column2 + "+" + $in.column3 } | get 0)
|
||||
} else {
|
||||
($split | get 2 | split column -c '+' | each { "+" + $in.column2 + "+" + $in.column3 } | get 0)
|
||||
}
|
||||
}
|
||||
|
||||
$current_screen.name = (echo $split | get 0)
|
||||
$current_screen.connected = ((echo $split | get 1) != "disconnected")
|
||||
$current_screen.resolutions = []
|
||||
|
||||
} else {
|
||||
$current_screen.resolutions = ($current_screen.resolutions | append ($split | get 1))
|
||||
|
|
Loading…
Reference in New Issue