-
Notifications
You must be signed in to change notification settings - Fork 0
/
displayImg.nim
49 lines (41 loc) · 1.32 KB
/
displayImg.nim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import
osproc, os, strutils, random
var mode : seq[string] = @["--bg-scale ", "--bg-tile "]
type filePath = tuple[kind:PathComponent, path:string]
proc listSrc(wallpapers:seq[filePath]):void =
var counter : int
for i in wallpapers:
counter += 1
echo intToStr(counter) & ": " & i.path
proc singleImg(i: string, wallpapers: seq[filePath]):void =
if i == "":
listSrc(wallpapers)
while true:
echo "Select an image (1-" & intToStr(high(wallpapers) + 1) & "): "
var select = readLine(stdin)
if parseInt(select) - 1 < high(wallpapers) :
discard execProcess("feh " & mode[0] & wallpapers[parseInt(select) - 1].path)
break
else:
echo "Please a Valid Entry"
else:
if parseInt(i) - 1 < high(wallpapers) :
discard execProcess("feh " & mode[0] & wallpapers[parseInt(i) - 1].path)
else:
echo "selection invalid"
proc randomImg(timer: int, wallpapers: seq[filePath]):void =
if wallpapers.len <= 0:
echo "no images in directory"
return
while true:
randomize()
var r = rand(high(wallpapers))
var index =
if r < 0:
0
elif r > (wallpapers.len() - 1):
(wallpapers.len() - 1)
else: r
var selection = wallpapers[index]
discard execProcess("feh " & mode[0] & selection.path)
sleep(timer * 60000)