volurrme now working
This commit is contained in:
parent
deb43144aa
commit
ae35c221fe
2 changed files with 0 additions and 139 deletions
|
@ -1,126 +0,0 @@
|
|||
import ../../globurrl
|
||||
import std/[os,strutils,sequtils,osproc]
|
||||
|
||||
const audio_tools = @["ncpamixer", "pavucontrol"]
|
||||
const vol_cmd = "pamixer"
|
||||
const vol_up = vol_cmd & " -i %v" # where %v is amount by
|
||||
const vol_down = vol_cmd & " -d %v" # where %v is amount by
|
||||
const vol_set = vol_cmd & " --set-volume %v" # where %v is amount by
|
||||
const vol_mute = vol_cmd & " -t"
|
||||
const vol_default_by = "5"
|
||||
const vol_get = vol_cmd & " --get-volume"
|
||||
const vol_get_mute = vol_cmd & " --get-mute"
|
||||
const default_bg = green
|
||||
const default_fg = black
|
||||
|
||||
|
||||
proc getCurrentVolume(): string {.gcsafe.}
|
||||
|
||||
proc checkVolume(volume: string): string =
|
||||
var vol = volume
|
||||
if strip(vol) == "Connection error":
|
||||
sleep(1000)
|
||||
vol = getCurrentVolume()
|
||||
vol = checkVolume(vol)
|
||||
return vol
|
||||
|
||||
proc getDesign(volume: string): (string,string) =
|
||||
let vol = checkVolume(volume)
|
||||
var icon = " "
|
||||
if vol == "muted":
|
||||
return (icon & "muted", icon & "muted")
|
||||
let pcnt = parseInt(strip(vol))
|
||||
case pcnt:
|
||||
of 85..100:
|
||||
icon = " "
|
||||
of 55..84:
|
||||
icon = " "
|
||||
of 35..54:
|
||||
icon = " "
|
||||
of 10..34:
|
||||
icon = " "
|
||||
else:
|
||||
icon = " "
|
||||
let main_text = icon & $pcnt & "%"
|
||||
let text = "<span size=\"x-large\">" & icon & "</span>" & $pcnt & "%"
|
||||
return (text, main_text)
|
||||
|
||||
proc getCurrentVolume(): string =
|
||||
let mute = execCmdEx(vol_get_mute)
|
||||
if strip(mute.output) == "true":
|
||||
return "muted"
|
||||
let vol = execCmdEx(vol_get)
|
||||
return vol.output
|
||||
|
||||
proc volumeUp() =
|
||||
let cmd = replace(vol_up, "%v", vol_default_by)
|
||||
discard execCmd(cmd)
|
||||
|
||||
proc volumeDown() =
|
||||
let cmd = replace(vol_down, "%v", vol_default_by)
|
||||
discard execCmd(cmd)
|
||||
|
||||
proc volumeMute() =
|
||||
discard execCmd(vol_mute)
|
||||
|
||||
proc getVolume*(run_once: bool = false) =
|
||||
let vol = getCurrentVolume()
|
||||
let (text, main_text) = getDesign(vol)
|
||||
var data = newInfo("Volurrme")
|
||||
data.full_text = main_text
|
||||
data.selected_bg = default_bg
|
||||
data.selected_fg = default_fg
|
||||
# i3bar stuff
|
||||
data.html_text = text
|
||||
data.color = foreground
|
||||
data.border = green
|
||||
data.background = black
|
||||
let args = concat(@["up", "down", "mute", "---", "exit", "---"],audio_tools)
|
||||
let option = outputData(data,args)
|
||||
if option == "":
|
||||
return
|
||||
elif option in args:
|
||||
if option in audio_tools:
|
||||
discard(execCmd(option))
|
||||
return
|
||||
case option:
|
||||
of "up":
|
||||
volumeUp()
|
||||
getVolume()
|
||||
of "down":
|
||||
volumeDown()
|
||||
getVolume()
|
||||
of "mute":
|
||||
volumeMute()
|
||||
getVolume()
|
||||
of "---":
|
||||
getVolume()
|
||||
of "exit":
|
||||
return
|
||||
else:
|
||||
try:
|
||||
let vol = parseInt(option)
|
||||
let cmd = replace(vol_set, "%v", $vol)
|
||||
let x = execCmd(cmd)
|
||||
getVolume()
|
||||
except:
|
||||
echo getCurrentExceptionMsg()
|
||||
getVolume()
|
||||
|
||||
proc main() =
|
||||
getVolume()
|
||||
|
||||
if isMainModule:
|
||||
block start:
|
||||
for arg in args:
|
||||
case arg:
|
||||
of "up":
|
||||
volumeUp()
|
||||
break start
|
||||
of "down":
|
||||
volumeDown()
|
||||
break start
|
||||
of "mute":
|
||||
volumeMute()
|
||||
break start
|
||||
main()
|
|
@ -1,13 +0,0 @@
|
|||
# Package
|
||||
|
||||
version = "0.1.0"
|
||||
author = "Paul Wilde"
|
||||
description = "Display and control volume with dmenu"
|
||||
license = "GPL-3.0-or-later"
|
||||
srcDir = "src"
|
||||
bin = @["volurrme"]
|
||||
|
||||
|
||||
# Dependencies
|
||||
|
||||
requires "nim >= 1.6.6"
|
Loading…
Reference in a new issue