105 lines
5 KiB
Text
105 lines
5 KiB
Text
|
|
-- Определяем функцию для получения фактора масштабирования окна
|
||
|
|
function get_window_scaling_factor()
|
||
|
|
-- Определяем текущего пользователя
|
||
|
|
local user_handle = io.popen("whoami")
|
||
|
|
local current_user = user_handle:read("*a"):gsub("%s+", "") -- Удаляем пробелы и символы новой строки
|
||
|
|
user_handle:close()
|
||
|
|
|
||
|
|
local scale_factor
|
||
|
|
|
||
|
|
if current_user == "root" then
|
||
|
|
-- Если текущий пользователь root, определяем пользователя, который запустил X-сессию
|
||
|
|
local session_user_handle = io.popen("who | grep '(:0)' | awk '{print $1}'")
|
||
|
|
local session_user = session_user_handle:read("*a"):gsub("%s+", "") -- Удаляем пробелы и символы новой строки
|
||
|
|
session_user_handle:close()
|
||
|
|
|
||
|
|
-- Если не удалось определить пользователя, возвращаем масштаб по умолчанию
|
||
|
|
if not session_user or session_user == "" then return 1 end
|
||
|
|
|
||
|
|
-- Выполняем команду от имени этого пользователя
|
||
|
|
local command = string.format("sudo -u %s xfconf-query -c xsettings -p /Gdk/WindowScalingFactor", session_user)
|
||
|
|
local handle = io.popen(command)
|
||
|
|
scale_factor = tonumber(handle:read("*a"))
|
||
|
|
handle:close()
|
||
|
|
else
|
||
|
|
-- Если текущий пользователь не root, просто получаем масштабирование
|
||
|
|
local handle = io.popen("xfconf-query -c xsettings -p /Gdk/WindowScalingFactor")
|
||
|
|
scale_factor = tonumber(handle:read("*a"))
|
||
|
|
handle:close()
|
||
|
|
end
|
||
|
|
|
||
|
|
return scale_factor or 1
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Получаем текущий фактор масштаба окон
|
||
|
|
local scale_factor = get_window_scaling_factor()
|
||
|
|
|
||
|
|
-- Применяем масштаб к шрифту и элементам интерфейса
|
||
|
|
conky.config = {
|
||
|
|
update_interval = 1,
|
||
|
|
cpu_avg_samples = 2,
|
||
|
|
net_avg_samples = 2,
|
||
|
|
out_to_console = false,
|
||
|
|
override_utf8_locale = true,
|
||
|
|
double_buffer = true,
|
||
|
|
no_buffers = true,
|
||
|
|
text_buffer_size = 32768,
|
||
|
|
imlib_cache_size = 0,
|
||
|
|
own_window = true,
|
||
|
|
own_window_type = 'desktop',
|
||
|
|
own_window_argb_value = 200,
|
||
|
|
own_window_argb_visual = true,
|
||
|
|
own_window_transparent = false,
|
||
|
|
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', -- Новая строка для предотвращения скрытия
|
||
|
|
border_inner_margin = 15 * scale_factor,
|
||
|
|
border_outer_margin = 0 * scale_factor,
|
||
|
|
xinerama_head = 1,
|
||
|
|
alignment = 'bottom_right',
|
||
|
|
gap_x = 80 * scale_factor,
|
||
|
|
gap_y = 80 * scale_factor,
|
||
|
|
draw_shades = false,
|
||
|
|
draw_outline = false,
|
||
|
|
draw_borders = false,
|
||
|
|
draw_graph_borders = false,
|
||
|
|
use_xft = true,
|
||
|
|
font = string.format('Comfortaa:size=%d', 12 * scale_factor),
|
||
|
|
xftalpha = 0.8,
|
||
|
|
uppercase = false,
|
||
|
|
default_color = 'white',
|
||
|
|
own_window_colour = '003333',
|
||
|
|
minimum_width = 300 * scale_factor, minimum_height = 0,
|
||
|
|
alignment = 'top_right',
|
||
|
|
color1 = '000000',
|
||
|
|
stippled_border = 100 * scale_factor,
|
||
|
|
};
|
||
|
|
|
||
|
|
-- Variables: https://conky.cc/variables
|
||
|
|
conky.text = string.format([[
|
||
|
|
|
||
|
|
${voffset -10}
|
||
|
|
${font Comfortaa:bold:size=%d}Система ${hr 2}
|
||
|
|
${font Comfortaa:normal:size=%d}Пользователь:${alignr}${USER}
|
||
|
|
Система:${alignr}${font Comfortaa:normal:size=%d}$sysname $kernel
|
||
|
|
Хост:$alignr$nodename
|
||
|
|
Время работы:$alignr$uptime
|
||
|
|
Процессы: $alignr ${execi 1000 ps aux | wc -l}
|
||
|
|
|
||
|
|
${font Comfortaa:bold:size=%d}Процессор ${hr 2}
|
||
|
|
${font Comfortaa:normal:size=%d}${execi 1000 grep model /proc/cpuinfo | cut -d : -f2 | tail -1 | sed 's/\\s//'}${voffset 5}
|
||
|
|
Нагрузка: ${cpu cpu1}%% ${cpubar cpu1}${voffset 5}
|
||
|
|
Температура: ${acpitemp}°С
|
||
|
|
|
||
|
|
${font Comfortaa:bold:size=%d}Память ${hr 2}
|
||
|
|
${font Comfortaa:normal:size=%d}Оперативная память $alignc $mem / $memmax $alignr $memperc%%${voffset 5}
|
||
|
|
Файлы подкачки $alignc ${swap} / ${swapmax} $alignr ${swapperc}%%
|
||
|
|
|
||
|
|
${font Comfortaa:bold:size=%d}Диск ${hr 2}
|
||
|
|
${font Comfortaa:normal:size=%d}/ $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_used_perc /}%%
|
||
|
|
${fs_bar /}
|
||
|
|
|
||
|
|
${font Ubuntu:bold:size=%d}Сеть ${hr 2}
|
||
|
|
${font Comfortaa:normal:size=%d}Локальный IP:${alignr}Внешний IP:
|
||
|
|
${execi 1000 ip a | grep inet | grep -vw lo | grep -v inet6 | cut -d \\/ -f1 | sed 's/[^0-9\\.]*//g'} ${alignr}${execi 1000 wget -q -O- http://ipecho.net/plain; echo}
|
||
|
|
${font Comfortaa:normal:size=%d}Down: ${downspeed enp0s3} ${alignr}Up: ${upspeed enp0s3}
|
||
|
|
]], 10 * scale_factor, 8 * scale_factor, 8 * scale_factor, 10 * scale_factor, 8 * scale_factor, 10 * scale_factor, 8 * scale_factor, 10 * scale_factor, 8 * scale_factor, 10 * scale_factor, 8 * scale_factor, 10 * scale_factor, 8 * scale_factor, 10 * scale_factor, 8 * scale_factor, 10 * scale_factor)
|