Better xrandr
This commit is contained in:
parent
86e3c95327
commit
b08325c2cf
|
@ -1,9 +1,13 @@
|
||||||
# xrandr wrapper for nushell
|
# xrandr wrapper for nushell
|
||||||
def xrandr [] {
|
def xrandr [] {
|
||||||
mut output = []
|
mut output = []
|
||||||
mut current_screen: record<name: string, connected: bool, resolutions: list<string>> = {
|
mut current_screen = {
|
||||||
name: ""
|
name: ""
|
||||||
connected: false
|
connected: false
|
||||||
|
on: false
|
||||||
|
primary: false
|
||||||
|
resolution: null
|
||||||
|
position: null
|
||||||
resolutions: []
|
resolutions: []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,11 +25,33 @@ def xrandr [] {
|
||||||
|
|
||||||
if $current_screen.name != "" {
|
if $current_screen.name != "" {
|
||||||
$output = ($output | append $current_screen)
|
$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 {
|
} else {
|
||||||
$current_screen.resolutions = ($current_screen.resolutions | append ($split | get 1))
|
$current_screen.resolutions = ($current_screen.resolutions | append ($split | get 1))
|
||||||
|
|
Loading…
Reference in New Issue