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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
local function run(cmd)
local f = io.popen(cmd)
local out = f:read("*a")
f:close()
return out:gsub("%s+$", "")
end
local use_color = true
local function c(fn, text)
if use_color then
return fn(text)
end
return text
end
column_padding = 2
local config_dir = os.getenv("HOME") .. "/.config/fetchit"
local function load_logo(path)
local lines = {}
for line in io.lines(path) do
table.insert(lines, line)
end
return lines
end
local function colored_logo(path)
local lines = load_logo(path)
local out = {}
for i, line in ipairs(lines) do
out[i] = c(color.blue, line)
end
return out
end
function fetch()
local ip = run("ip -4 -o addr show scope global | awk '{print $4}' | cut -d/ -f1 | head -1")
local title = user.name .. "@" .. host.name
local sep = string.rep("-", #title)
local title_out
if use_color then
title_out = color.green(user.name) .. color.bold(color.green("@")) .. color.green(host.name)
else
title_out = user.name .. color.bold(color.blue("@")) .. host.name
end
return {
columns = {
colored_logo(config_dir .. "/logos/nix.txt"),
{
title_out,
sep,
c(color.cyan, "os: ") .. string.lower(os.name .. " @ " .. kernel.sysname .. " " .. kernel.release),
c(color.cyan, "wm: ") .. "niri wm (v26.04)",
c(color.cyan, "res: ") .. "(<)/1920x1080, (>)/1920x1080",
c(color.red, "cpu: ") .. "ryzen 7 5700g",
c(color.red, "gpu: ") .. "radeon rx 6800xt",
c(color.magenta, "ram: ") ..
string.format("%.1fgb/%.1fgb (%.1f%%)", memory.used_gb, memory.total_gb, memory.percent),
c(color.yellow, "disk: ") .. string.format("%.1fgb/%.1fgb", disk.used_gb, disk.total_gb),
c(color.blue, "shell: ") .. string.lower(shell.name),
c(color.bright_cyan, "term: ") .. string.lower(terminal.name),
c(color.red, "ip: ") .. string.lower(ip),
}
}
}
end
|