3 unstable releases

0.2.0 Jun 28, 2024
0.1.1 Jun 17, 2024
0.1.0 Jun 17, 2024

#2477 in Command line utilities

MIT license

34KB
757 lines

dshw

A dead simple CLI program to query information about system and hardware. Basically a CLI wrapper over the sysinfo crate.

Initially it was written to configure a Wayland bar (yes, reinventing the wheel), but playing with the sysinfo crate has gone too far...

Written just for fun.

Features

  • Query about:
    • CPU
    • Sensors
    • Memory
    • Swap memory
    • Drives
    • OS
    • Network
  • Multiple queries can be issued (dshw memory total usage available free)
  • Custom delimiter is supported (dshw -d ', ' drive /dev/sda3 total available usage fs mount-point)
  • Command-specific string formatting (dshw -f 'I use %release-id% btw, my total cpu usage is %total-cpu-usage% %%' os may yield I use arch btw, my total cpu usage is 2.15 %)
  • Specify how many times to run and set interval between commands (dshw -I 1s -n 5 os total-cpu-usage).
  • Specify the unit of information for memory, swap, drive, and network commands (dshw -u gib memory total)

Usage

To print total and available memory:

~ $ dshw memory total available
16689270784
10336894976

Some commands like cpu, sensor or drive take a name/id as the first required argument:

~ $ dshw drive /dev/sda3 fs usage total
ext4
259652198400
474853687296

Some commands take zero arguments:

~ $ dshw list-sensors
acpitz temp1
acpitz temp2
coretemp Core 1
coretemp Core 5
coretemp Package id 0
coretemp Core 2
coretemp Core 4
coretemp Core 7
coretemp Core 0
coretemp Core 6
coretemp Core 3
amdgpu edge

You can also specify a desired delimiter:

~ $ dshw -d ', ' list-cpus
cpu0, cpu1, cpu2, cpu3, cpu4, cpu5, cpu6, cpu7, cpu8, cpu9, cpu10, cpu11, cpu12, cpu13, cpu14, cpu15

You can also format a string with desired parameters:

~ $ dshw -f '%usage%/%total% bytes' memory
8163627008/16689266688 bytes

Formatting is supported even by commands, that require a name/id argument:

~ % dshw -f '%frequency%, %vendor-id%' cpu cpu7
2719, GenuineIntel

Format specifiers can be entered in any case (%FReQUEnCy% = %frequency%).

Type dshw help to see all commands. Type, for example, dshw help os to see all OS related subcommands.

Installation

You'll need the Rust toolchain (rustup or from system package repo) and make sure it's up to date.

When the toolchain will be prepared, type cargo install dshw.

If you have installed successfully dshw, you can now run the it simply by typing dshw. If the shell says that the command does not exists, make sure that $HOME/.cargo/bin (or whatever the default cargo dir will be) is in the PATH environment variable.

To see all available options, pass -h, --help or help.

Contribution

If you have found a problem or have a suggestion, feel free to open an issue or send a pull request. I'd appreciate it.

License

dshw is licensed under the MIT license.

Dependencies

~4–29MB
~423K SLoC