Skip to content

BayouGuru67/conkystuff

Repository files navigation

BayouGuru's conky repo!

This repository contains all of the currently active conkys on BayouGuru's main computer system. These conkys are the result of an evolution over quite some time now as my system has grown/evolved and my conky, AI and lua coding skills have improved. Screenshots are availble for each conky and the desktop as a whole in the images directory.

These conkys are designed to be readable from 10'-12' away from a 55" 1080p display. Using them in any other setting will likely require significant editing of the configurations in order to maintain a neat appearance. I'll admit to a little bit of curiosity to see what happens when I finally get to upgrade to a higher resolution display that will do more than 30Hz @ 4k.

Conkys are configured by editing the associated .conf configuration files (and in this case the associated .lua as well) that provides an almost infinite number of ways to configure conky(s) to your liking! Conky is by far the most flexible and powerful system monitoring application there is! This power does come with a little bit of a learning curve, but it is very easy to learn, well-documented and so worth it in order to be able to monitor your computing assets EXACTLY as YOU would like! I found it very easy to learn what I needed to know to get started configuring conky by comparing screenshots to the text of the configs I found on reddit in r/Conky and r/ConkyPorn. All of the major AI bots can also be quite helpful. I have had some very good luck using GitHub CoPilot, Gemini and ChatGPT for Lua coding as well as using them for some configuration optimizations and getting some explanations of things I didn't understand previously. The conky documentation at conky.cc is an excellent resource!

Lua support in conky is required in order to use my conky configs! You must be using the "conky-all" package or a locally-compiled version of conky with all of the Lua bindings enabled when compiling. They are not enabled by default in the compiler. Conky is also a great piece of software to use to learn how to compile your own software locally! The compilation tutorial found at the official conky developer's site/conky wiki is quite good!

There is an application called Conky Manager that is used to manage conky themes and make editing easier. This set of conky configurations was not created in (or for) Conky Manager software, so I have no idea if it will work with it or not. If you use it and also use my configs, I would welcome your feedback so that I could pass it along and help others who also wish to do the same.

It is certain that you WILL need to edit both the .conf and the associated .lua file for each conky in order to make them work on your system. I have added comments at the top of the conky .conf files that lists how my specific hardware setup correlates to the output of "sensors" and the contents of the /sys/class/hwmon/hwmon0-5 directories, which should serve to make reconfiguring my conkys to work properly with your system easier. I would recommend starting by looking at the screenshot of the conky you're editing, comparing that to the text of the .conf and .lua files in your favorite code editor. Cross reference that with the output of "sensors" (install "lm-sensors" if you do not have it already) and the changes you will need to make should become pretty obvious. To make editing easier, there are syntax highlighting files for conky configs available for VS Code, Kate, nano and vim.

There are 3 conkys and 3 lua scripts here, grouped and listed as follows:

CPU/GPU Usage Conky and Lua: "l-conky-cpu.conf" - The CPU conky displays the CPU Core and Average usage, GPU Usage, the GPU Core and GPU Memory frequencies. This conky is aligned to the top-left corner of the screen and updates every half-second, but still uses less than 1.4% CPU. ...AND... "conkycpubars.lua" - The Lua script which is responsible for rendering the cool 3-D-looking segmented LED bars and round glowy LED's in the CPU/GPU conky. You will need to edit this file as-needed for the particulars of your hardware setup. These bars use a linear scale.

System Information Conky and Lua: "l-conky-sysinfo.conf" - The big System Informaton conky which is aligned to the left side of the screen, just under the cpu conky. It gives a ton of system information, including: Uptime, Toggleable keys status, pending Updates, Connected devices, RAM, SSD and Swap information as well as the top 7 RAM- and CPU-eating processes. This conky updates once per second. ...AND... "sysbars.lua" - The Lua script which is responsible for rendering the cool 3-D-looking segmented LED bars in the conky. This also draws the round "LED indictors", and the threshold data is located in the table at the end of the lua. You will need to edit this file as-needed for the particulars of your hardware setup. These bars use a linear scale.

Right/Network Conky and Lua: "rightconky.conf" - This conky monitors all network activity and provides network connectivity and system file versioning information. This conky lists the current versions of my Kubuntu system's major software, such as the KDE Plasma DE, Mesa, conky, pipewire, X11, Linux Kernel... and very importantly, it lists the IP, port and hostname of up to 25 outgoing and 6 incoming network connections in a list that prioritizes the incoming connections at the top, followed by up to 25 outgoing connections (minus the number of incoming connections listed, so you would see 19 outbound connections if there were 6 or more incoming connections active). To put it another way, the connections list is trimmed automatically to fit a maximum of 25 connections on-screen, which is what fits on my 1080p display, leaving just enough room for the system's menu bar, which I have at the bottom of my screen. This conky is programmed to be 300 pixels wide and take up the entire vertical space on the right side of my 1080p60 HTPC display. Nothing connects to my system via the network without me knowing all about it with this conky! ...AND... "updownbars.lua" - The Lua script which is responsible for rendering the cool looking segmented LED bars in the Network (right) conky. You will need to edit this file as-needed for the particulars of your networking hardware setup. This lua uses a logarithmic scale for the bar so as to make it more reactive at the slower upload/download speeds that most data transfers happen. This mimics the scaling of audio equipment V/U meters, which also use this scaling method for the same reasons I am using it here, which is to make it more reactive overall than a simple linear-scaled bar, which is what is used in all of the other luas. A good comparison of using a logarithmic scale versus a linear scale is to think of the meters on most old stereo equipment. Most old stereos used logarithmic meters so they would be more "reactive" when you were playing your music, whereas the linear scale is less "reactive" and is much better-suited to things like showing usages/percentages, as 50% would be halfway along the bar on a linear scale, and make more logical sense in that context than it would to use a logarithmic scale where 50% might be 75% of the way or more along the bar. Since the upload and download bars are more for indication purposes and not necessarily for showing the percent of bandwidth usage since the specific speed is shown in the text just to the left of the bars, using logarithmically-scaled bars here makes the most sense.

"conky-startup.sh" is a bash script I created to load my conkys at system startup via Kubuntu's Autostart. to use this script, edit the paths to be correct for your system, make the script executable, then just add the "application" to your Autostart applications in the System Settings. It should load the conkys one at a time when you reboot/start your system.

These conky configurations are posted here for you to modify and use as you please. I make no warranty as to their functionality on any system other than my own, as it is a certainty that you WILL need to edit these configurations in order to tailor them to the particulars of your system. This is especially true of the temerature data, which can change locations simply by connecting another device to your system. These conkys are the result of months of very intense work refining and tweaking the configurations to fit my use-case. If you find it useful, then I am glad. If you have questions, please feel free to ask me! I do like to help!

Credit for the original Lua scripts goes to Reddit user u/DareBoy58 who shared his version of the lua script which I have now very-heavily-edited to suit my system and purposes. Bear in mind that you MUST be running a conky-all or conky-lua build with all 4 of the Lua extensions enabled in the compiler in order to use these conkys! Credit for the editing and refinement of the lua scripts goes out to ChatGPT initially, and lately I have migrated to the better-performing GitHub Copilot AI and Google's Gemini, all of which have been heavily relied-upon to make this code as simple and efficient as I can make it. As an example, the CPU usage of the system info conky has dropped from ~2.5% down to <1% over the last couple of months with no change in frequency or appearance. Just coding optimizations. I have done much the same with all of the conkys so now none of them use more than 1.5% CPU.