Added scripts to collect/deploy configs. Updated i3 and nixos configs.

This commit is contained in:
Pavel Kachalouski
2019-04-21 10:26:05 +02:00
parent 5f1c5903c3
commit d6f93257b7
10 changed files with 345 additions and 10 deletions

View File

@@ -0,0 +1,49 @@
import scala.sys.process._
val eDP1 = List("--output", "eDP1", "--primary", "--auto", "--pos", "0x0", "--rotate", "normal")
val interfaceMapOn = Map[String, Seq[String]](
"DP1" -> List("--output", "DP1", "--auto", "--right-of", "eDP1", "--rotate", "normal"),
"DP2" -> List("--output", "DP2", "--auto", "--right-of", "eDP2", "--rotate", "normal"),
"HDMI1" -> List("--output", "HDMI1", "--auto", "--right-of", "eDP1", "--rotate", "normal"),
"HDMI2" -> List("--output", "HDMI2", "--auto", "--right-of", "eDP1", "--rotate", "normal")
)
val interfaceMapOff = Map[String, Seq[String]](
"DP1" -> List("--output", "DP1", "--off"),
"DP2" -> List("--output", "DP2", "--off"),
"HDMI1" -> List("--output", "HDMI1", "--off"),
"HDMI2" -> List("--output", "HDMI2", "--off")
)
Thread.sleep(100)
val interfacesOn = ("/usr/bin/xrandr" #| Seq("grep", "-w", "connected") #| Seq("tr", "-s", "' '") #| Seq("cut", "-d", " ", "-f", "1")).!!.trim.split("\n")
val interfacesOff = ("/usr/bin/xrandr" #| Seq("grep", "-w", "disconnected") #| Seq("tr", "-s", "' '") #| Seq("cut", "-d", " ", "-f", "1")).!!.trim.split("\n")
var execCmd = "/usr/bin/xrandr" :: eDP1 ++
interfacesOn.flatMap(i => interfaceMapOn.getOrElse(i.toUpperCase, List.empty)) ++
interfacesOff.flatMap(i => interfaceMapOff.getOrElse(i.toUpperCase, List.empty))
println(s"Enabled interfaces: ${interfacesOn.mkString(" ")}")
println(s"Disabled interfaces: ${interfacesOff.mkString(" ")}")
println(s"Executing command line: $execCmd")
execCmd.!
Thread.sleep(100)
if (interfacesOn.length > 1) {
val moveWorkspace = (workspace: Int, workspaceInterface: String) => {
val exec = Seq("i3-msg", s"workspace number $workspace, move workspace to output $workspaceInterface")
println(exec)
exec.!
}
val workspaceInterface = interfacesOn.filterNot(_.equalsIgnoreCase("eDP1")).headOption.getOrElse("eDP1")
println(s"Moving workspace 10 to eDP1")
moveWorkspace(10, "eDP1")
println(s"Moving workspaces 1-9 to $workspaceInterface")
(1 to 9).foreach(moveWorkspace(_, workspaceInterface))
Seq("i3-msg", "workspace number 1").!
}