Convert Figma logo to code with AI

brndnmtthws logoconky

Light-weight system monitor for X, Wayland (sort of), and other things, too

7,135
614
7,135
74

Top Related Projects

19,111

A monitor of resources

21,911

🖼️ A command-line system information tool written in bash 3.2+

4,113

Wow such top. So stats. More better than regular top.

26,263

Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

9,693

System monitoring dashboard for terminal

Very resourcefriendly and feature-rich replacement for i3status, written in pure Rust

Quick Overview

Conky is a highly configurable system monitor for X11-based systems. It displays various system information such as CPU usage, memory usage, network statistics, and more directly on the desktop. Conky is lightweight, customizable, and can be extended with Lua scripting.

Pros

  • Highly customizable with a wide range of built-in objects and Lua scripting support
  • Low resource usage, making it suitable for both modern and older systems
  • Large and active community with numerous pre-made configurations available
  • Supports a variety of data sources and can display information from external commands

Cons

  • Configuration can be complex for beginners due to its extensive options
  • Documentation can be overwhelming and sometimes outdated
  • May require some tweaking to work properly with certain desktop environments or window managers
  • Limited support for non-X11 systems (e.g., Wayland)

Code Examples

Here are a few examples of Conky configuration snippets:

  1. Basic system information display:
conky.config = {
    alignment = 'top_right',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    double_buffer = true,
    font = 'Dejavu Sans Mono:size=12',
    gap_x = 25,
    gap_y = 13,
    minimum_width = 200,
    no_buffers = true,
    own_window = true,
    own_window_type = 'desktop',
    update_interval = 1.0,
    use_xft = true,
}

conky.text = [[
${color grey}Info:$color ${scroll 32 Conky $conky_version - $sysname $nodename $kernel $machine}
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
]]
  1. Network information display:
conky.text = [[
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
]]
  1. Disk usage information:
conky.text = [[
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
 /home $color${fs_used /home}/${fs_size /home} ${fs_bar 6 /home}
]]

Getting Started

To get started with Conky:

  1. Install Conky using your distribution's package manager (e.g., sudo apt install conky for Ubuntu).
  2. Create a configuration file at ~/.config/conky/conky.conf.
  3. Copy and paste a basic configuration (like the first example above) into the file.
  4. Run Conky by executing conky in the terminal.
  5. Customize the configuration file to suit your needs and preferences.

For more advanced usage, refer to the Conky documentation and explore community-created configurations.

Competitor Comparisons

19,111

A monitor of resources

Pros of btop

  • More modern and visually appealing interface with graphs and charts
  • Cross-platform support (Linux, macOS, FreeBSD, OpenBSD)
  • Easy to install and use out of the box

Cons of btop

  • Less customizable than Conky
  • Requires more system resources to run
  • Limited to terminal/CLI environments

Code Comparison

Conky configuration example:

conky.config = {
    alignment = 'top_right',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    double_buffer = true,
}

btop configuration example:

{
    "color_theme": "Default",
    "theme_background": false,
    "truecolor": true,
    "shown_boxes": ["cpu", "mem", "net", "proc"],
    "update_ms": 2000
}

Both projects allow for customization, but Conky offers more flexibility through its Lua-based configuration. btop uses a simpler JSON configuration format, which may be easier for some users but less powerful overall.

Conky is highly customizable and can display a wide range of system information on the desktop, while btop focuses on providing a comprehensive system monitor in the terminal with a more polished, modern look. The choice between the two depends on user preferences for desktop vs. terminal monitoring and the level of customization required.

21,911

🖼️ A command-line system information tool written in bash 3.2+

Pros of Neofetch

  • Lightweight and fast system information tool
  • Cross-platform support (Linux, macOS, Windows)
  • Highly customizable output with ASCII art logos

Cons of Neofetch

  • Limited real-time monitoring capabilities
  • Less extensive system information compared to Conky
  • Primarily designed for static system information display

Code Comparison

Neofetch (bash):

#!/usr/bin/env bash
# Neofetch main script
get_distro() {
    [[ -f /etc/os-release ]] && . /etc/os-release
    distro="$NAME $VERSION_ID"
}

Conky (Lua):

conky.config = {
    update_interval = 1,
    double_buffer = true,
    alignment = 'top_right',
}

conky.text = [[
${color grey}CPU Usage:$color $cpu%
${color grey}RAM Usage:$color $memperc%
]]

Neofetch is a lightweight system information tool that provides a quick snapshot of system details with customizable ASCII art logos. It's cross-platform and easy to use but lacks real-time monitoring capabilities. Conky, on the other hand, offers more extensive system monitoring and customization options, making it better suited for continuous display of system information and resource usage. Neofetch is written in bash, while Conky uses Lua for configuration and scripting, allowing for more complex and dynamic displays.

4,113

Wow such top. So stats. More better than regular top.

Pros of vtop

  • Lightweight and easy to install via npm
  • Interactive interface with mouse support
  • Cross-platform compatibility (Windows, macOS, Linux)

Cons of vtop

  • Limited customization options compared to Conky
  • Fewer data sources and less detailed system information
  • Requires Node.js runtime

Code Comparison

vtop (JavaScript):

var drawChart = function() {
  var chart = contrib.line({
    style: {
      line: "yellow",
      text: "green",
      baseline: "black"
    },
    xLabelPadding: 3,
    xPadding: 5,
    showLegend: true,
    wholeNumbersOnly: false
  });
  screen.append(chart);
};

Conky (Lua):

conky.config = {
    alignment = 'top_right',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    double_buffer = true,
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 5,
    gap_y = 60,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_ncurses = false,
    out_to_stderr = false,
    out_to_x = true,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false
}
26,263

Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

Pros of Glances

  • Cross-platform support (Linux, macOS, Windows)
  • Web-based interface for remote monitoring
  • Extensive plugin system for customization

Cons of Glances

  • Higher resource usage due to Python implementation
  • Less flexible in terms of visual customization
  • Requires Python installation and dependencies

Code Comparison

Glances (Python):

from glances_plugins import GlancesPlugin

class Plugin(GlancesPlugin):
    def update(self):
        self.stats = self.get_stats()

Conky (Lua):

conky.config = {
    alignment = 'top_right',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
}

Summary

Glances offers a more modern, cross-platform approach with a web interface and extensive plugin system. It's easier to set up for remote monitoring but consumes more resources. Conky provides greater visual customization and lower resource usage but is primarily designed for Unix-like systems. Glances uses Python for its implementation, while Conky relies on Lua for configuration and scripting. Choose Glances for cross-platform compatibility and web-based monitoring, or Conky for a lightweight, highly customizable desktop widget on Unix-like systems.

9,693

System monitoring dashboard for terminal

Pros of gtop

  • Simpler setup and usage, requiring no configuration files
  • Modern, interactive terminal-based interface with real-time updates
  • Cross-platform compatibility (Linux, macOS, Windows)

Cons of gtop

  • Less customizable compared to Conky's extensive configuration options
  • Limited to terminal display, lacking Conky's desktop integration capabilities
  • Fewer system metrics and data points available for monitoring

Code Comparison

gtop (JavaScript):

const si = require('systeminformation');
const blessed = require('blessed');
const contrib = require('blessed-contrib');

// Main application logic

Conky (C++):

#include <conky.h>
#include <config.h>
#include <lua.h>

// Main application logic

gtop uses Node.js and relies on external libraries for system information and terminal UI rendering. Conky is written in C++ and has a more low-level approach, integrating directly with system APIs and supporting Lua for scripting.

Both projects aim to provide system monitoring capabilities, but gtop focuses on a user-friendly terminal interface, while Conky offers extensive customization and desktop integration. gtop is easier to set up and use out of the box, whereas Conky provides more flexibility and depth in monitoring capabilities at the cost of a steeper learning curve.

Very resourcefriendly and feature-rich replacement for i3status, written in pure Rust

Pros of i3status-rust

  • Written in Rust, offering better performance and memory safety
  • Specifically designed for i3 and sway window managers
  • More modern codebase with active development

Cons of i3status-rust

  • Limited to i3 and sway, less versatile than Conky
  • Fewer customization options and widgets compared to Conky
  • Steeper learning curve for users not familiar with Rust

Code Comparison

i3status-rust configuration (TOML):

[[block]]
block = "cpu"
interval = 1
format = "{utilization}% {frequency}GHz"

[[block]]
block = "memory"
format_mem = "{mem_used_percents}"
format_swap = "{swap_used_percents}"

Conky configuration (Lua):

conky.config = {
    cpu_avg_samples = 2,
    net_avg_samples = 2,
    update_interval = 1.0,
}

conky.text = [[
CPU: ${cpu}% ${freq_g}GHz
RAM: ${memperc}%
]]

Both projects offer system monitoring capabilities, but they cater to different use cases. i3status-rust is tailored for i3 and sway users, providing a modern, performant solution with a focus on these specific window managers. Conky, on the other hand, offers greater flexibility and customization options, making it suitable for a wider range of desktop environments and window managers. The choice between the two depends on the user's specific needs, preferred window manager, and desired level of customization.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Linux build macOS build Docker build AppImage build

📕 Documentaton

💬 Join the Matrix chat

Conky is a free, light-weight system monitor for X, that displays any kind of information on your desktop. It can also run on Wayland (with caveats), macOS, output to your console, a file, or even HTTP (oh my!).

👉 Grab the latest release from GitHub.

📹 An introduction to Conky (YouTube).

Features

Conky can display more than 300 built-in objects, including support for:

  • A plethora of OS stats (uname, uptime, CPU usage, mem usage, disk usage, "top" like process stats, and network monitoring, just to name a few).
  • Built-in IMAP and POP3 support.
  • Built-in support for many popular music players (MPD, XMMS2, Audacious).
  • Can be extended using built-in Lua support, or any of your own scripts and programs (more).
  • Built-in Imlib2 and Cairo bindings for arbitrary drawing with Lua (more).
  • Runs on Linux, FreeBSD, OpenBSD, DragonFlyBSD, NetBSD, Solaris, Haiku, and macOS!
  • Docker image available for amd64, armv7, and aarch64 (aka armv8)

... and much much more.

Conky can display information either as text, or using simple progress bars and graph widgets, with different fonts and colours, as well as handle mouse events.

Screenshots

screenshot screenshot screenshot

See the User Configs below for more screenshots and associated config files.

Installing Conky

Many package managers already include Conky. However, if you'd like to try the latest version of Conky, you can use the AppImage or the Nix flake.

AppImage

To try the AppImage, head to https://github.com/brndnmtthws/conky/releases/latest and fetch the latest AppImage. You'll need to set the executable bit, then you can create a conkyrc, and run it as follows:

chmod +x ./conky-*.AppImage        # make it executable
./conky-*.AppImage -C > ~/.conkyrc # create a default config
./conky-*.AppImage                 # run

And that's it! Check out the Wiki for more details on configuring Conky.

NOTE: To use the AppImage, you may need to install additional runtime libraries.

Nix flake

As of Conky v1.17.0, there's a Nix flake available in addition to the upstream Nix package. You can include it as an input as follows:

{
  inputs = {
    conky.url = "github:brndnmtthws/conky";
  };
}

And use inputs.conky.packages.${system}.default (or inputs.conky.packages.${system}.conky for versions <=v1.19.8) to include the package. To use a specific version, add the git tag to the URL, such as github:brndnmtthws/conky?ref=refs/tags/v1.19.8.

Note that a Nix package exists in nixpkgs, and although it's not always up-to-date with the bleeding edge, it does offer more configuration options.

Documentation

Reference documentation

The Conky Wiki also serves as a central hub for Conky. Some resources from the Wiki include:

License

Conky is licensed under the terms of the GPLv3 license.

Contributing

Contributions are welcome from anyone.

Please read Contributing page on wiki for guidelines on contributing to Conky.

Supporting this project

Conky exists only through the hard work of a collection of volunteers. Please consider sponsoring the project's developers if you get value out of Conky.

Stargazers over time

Stargazers over time