Signal drop!
Relay (operand.online) is unreachable.
Usually, a dropped signal means an upgrade is happening. Hold on!
Sorry, no connección.
Hang in there while we get back on track
gram:build
> ./config/nushell/screen.nu
Lenses
(coming soon!)
# manage screens
def screen --wrapped [...call: string] { Hyprland ...($call) }
let shines = [ 0 1 4 16 32 64 100 ]
def "screen shine" [shine:int] { light -S ($shines | get $shine) }
def "screen color" [degree?: int] {
try { nix-shell -p killall --command "killall wlsunset" } # &> /dev/null
if ($degree != null) { wlsunset -t $degree -T ($degree + 1) } }
def sc [degree: int] { screen color $degree }
def screens [] {
hyprctl monitors | ag '^Monitor ' | lines | each {|l|
$l | split column ' ' | get 0 | get column2 }
}
def "screen on" [display?:string] {
let display = if ($display == null) { screen choose } else { $display }
if ($display == "all") { screens | par-each {|s|
hyprctl dispatch dpms on $s; }
} else { hyprctl dispatch dpms on $display; }
}
def "screen off" [display?:string] {
let display = if ($display == null) { screen choose } else { $display }
if ($display == "all") { screens | par-each {|s|
hyprctl dispatch dpms off $s; }
} else { hyprctl dispatch dpms off $display; }
}
def "screen blink" [dura:duration, display?:string] {
let display = if ($display == null) { screen choose } else { $display }
if ($display == "all") { screens | par-each {|s| screen blink $dura $s }
} else { screen off $display; sleep $dura; screen on $display; }
}
def "screen res" [scale?:number] {
let scale = if ($scale | is-empty) { 1 } else { $scale }
hyprctl monitors | split row "\n\n" | each {|d|
let display = $d | lines | split column ":"
let name = $display | get 0 | get column1
let res = $display | where {|param| $param.column1 =~ 'availableModes' } |
get column2 | split column " " | transpose | get column1 |
where {|d| not ($d | is-empty) } | split column --regex '[x@]' |
rename x y freq | sort-by --natural --reverse x | get 0
$res | upsert name $name
| upsert x (($res | get x | into int) / $scale)
| upsert y (($res | get y | into int) / $scale)
}
}
def "screen send" [num?:number] {
let num = if $num == null {
hyprctl activeworkspace | ag '^workspace ID' |
split column ' ' | get column3 | get 0
} else { $num }
let screen = screen choose;
hyprctl dispatch moveworkspacetomonitor $num $screen;
hyprctl dispatch focusmonitor $screen;
hyprctl dispatch forcerendererreload; };
def "screen choose" [] {
let s = (screens)
if ($s | length) == 1 { $s | get 0 } else { $s | str join "\n" | fzf }
}
def "screen change" [] {
hyprctl dispatch swapactiveworkspaces (screen choose) (screen choose)
}
# def "screen rec" [] {
# bind disk nvme0n1p5
# let node = [ ($env.HOME), "disk", "nvme0n1p5", "rec",
# $"(clock | str trim).screen.wf-recorder.mkv" ] | path expand | last
# # echo ([
# nsh wf-recorder ([
# "wf-recorder"
# "-d DP-2" # (screen choose)
# "--audio='USB Composite Device Pro'"
# "-c libx264"
# $"--file=($node)"
# ] | str join ' ')
# }
# possible: [ auto, avc, hevc, vp8, vp9, av1]
def "screen record" [
--codec (-c): string = "hevc"
] { [ signal-desktop whatsapp-for-linux webcord ] | each {|gram| ps | where name =~ $gram | each {|p| kill $p} }
let screen = (screen choose)
let c = clock | str trim | split row 'T'
let node = [ ~ rec $"($c | get 0).rec",
$"($c | get 1).($screen).wl-screenrec.mkv" ] | path join | path expand
mkdir (dirname $node); nsh wl-screenrec wl-screenrec -o $screen --filename $node; $node } # --codec $codec
# "--audio --audio-device 'USB Composite Device Pro'"