Commit Graph

698 Commits

Author SHA1 Message Date
Anton Melnikov
bdddfc46a2 Enable vim movement in help menu (#1242)
Signed-off-by: botantony <antonsm21@gmail.com>
2025-09-10 15:49:55 +00:00
Denis Mikhaylik
e51f5c202f Remove reduntant symbols in tree view (#948) 2025-09-10 15:20:16 +00:00
CountBleck
666dffc6f2 Use /sys/dev/block/MAJOR:MINOR instead of /sys/block/NAME for disk I/O
The device name used for a given mount doesn't always correspond to the
entry in /sys/block. For example, my rootfs uses /dev/mapper/root since
it's on LUKS, but its stats are found in /sys/block/dm-0. By using
/sys/dev/block with the major/minor device numbers in
/proc/self/mountinfo, we can get a correct path reliably. This also
works for disk partitions, without requiring any string manipulation!

This should fix #140.
2025-09-07 18:52:10 +00:00
Steffen Winter
db34cb55a4 Don't terminate on GPU access failure
Closes: https://github.com/aristocratos/btop/issues/899
2025-09-02 07:10:44 +00:00
Jakob P. Liljenberg
a99f8ba1f0 Merge pull request #1227 from Tom94/cpu-power-usage 2025-08-17 10:14:34 +02:00
Thomas Müller
db0514fa32 feat: display CPU power draw & fix GPU+load avg overwriting core info
This change was based on YuriiShkrobut's initial PR from here:
https://github.com/aristocratos/btop/pull/595

Co-authored-by: Yurii Shkrobut <yurii.shkrobut@gmail.com>
2025-08-17 10:01:25 +02:00
Steffen Winter
b864dcdf68 refactor: remove reduntant casts and avoid conversions 2025-08-17 07:44:56 +00:00
aristocratos
4f5abbb3eb Revert unnecessary locale changes and remove debug line. 2025-08-11 14:45:26 +02:00
Steffen Winter
a05192fc4a fix: disable locale when writing config file
Closes: https://github.com/aristocratos/btop/issues/1212
2025-08-05 12:21:32 +00:00
Sam Kirby
185d61d1aa match formatting for units 2025-07-28 14:46:57 +02:00
Sam Kirby
d1b391b2fb fix layout issue when enc/dec meters are unavailable 2025-07-28 14:46:57 +02:00
Sam Kirby
6f85037cb0 disable encode/decode monitoring on AMD and Intel GPUs 2025-07-28 14:46:57 +02:00
Sam Kirby
b79e487804 impl encode/decode monitoring for Nvidia 2025-07-28 14:46:57 +02:00
Sam Kirby
18cb61b7d6 Add utilisation meters for GPU hardware video encoder and decoder 2025-07-28 14:46:57 +02:00
RadsammyT
011861fe96 linux-batt: Battery Time-to-full
Adds a Time-to-full timer for the battery info header.

Theres also a fix where the battery timer now accounts for
negative current, i.e. '-15.00W', to indicate discharging current.

This essentially just uses `std::abs()` on `b.current_now`.
2025-07-28 14:43:01 +02:00
Steffen Winter
26dd6e1beb Convert ascii escape codes in mountpoint names before reading statvfs.
Closes: https://github.com/aristocratos/btop/issues/1202
2025-07-28 14:40:34 +02:00
ReversedGravity
17127e2ee6 Fix presets erroring with gpu* usage. 2025-07-28 14:39:16 +02:00
aristocratos
86ec5fd062 Changed decimal points to always be dots regardless of locale, issue #1183 2025-07-18 00:20:18 +02:00
Steffen Winter
b3356354a4 Fix --tty/--no-tty flag having no effect
Some checks failed
FreeBSD CMake / freebsd-14.3-aarch64 (push) Has been cancelled
FreeBSD CMake / freebsd-15.0-aarch64 (push) Has been cancelled
FreeBSD CMake / freebsd-14.3-x86_64 (push) Has been cancelled
FreeBSD CMake / freebsd-15.0-x86_64 (push) Has been cancelled
Linux CMake / clang-18 (push) Has been cancelled
Linux CMake / clang-19 (push) Has been cancelled
Linux CMake / clang-20 (push) Has been cancelled
Linux CMake / gcc-12 (push) Has been cancelled
Linux CMake / gcc-13 (push) Has been cancelled
Linux CMake / gcc-14 (push) Has been cancelled
macOS CMake / cmake_build_on_macos (push) Has been cancelled
NetBSD CMake / netbsd-10.1-aarch64 (push) Has been cancelled
NetBSD CMake / netbsd-10.1-amd64 (push) Has been cancelled
Continuous Build FreeBSD / build-freebsd (clang++) (push) Has been cancelled
Continuous Build FreeBSD / build-freebsd (g++) (push) Has been cancelled
Continuous Build Gpu / gpu_build_linux (push) Has been cancelled
Continuous Build Linux / static-build (aarch64-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (aarch64_be-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (arm-linux-musleabi) (push) Has been cancelled
Continuous Build Linux / static-build (arm-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (armeb-linux-musleabi) (push) Has been cancelled
Continuous Build Linux / static-build (armeb-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (armel-linux-musleabi) (push) Has been cancelled
Continuous Build Linux / static-build (armel-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (armv5l-linux-musleabi) (push) Has been cancelled
Continuous Build Linux / static-build (armv5l-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (armv6-linux-musleabi) (push) Has been cancelled
Continuous Build Linux / static-build (armv6-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (armv7l-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (armv7m-linux-musleabi) (push) Has been cancelled
Continuous Build Linux / static-build (armv7r-linux-musleabihf) (push) Has been cancelled
Continuous Build Linux / static-build (i486-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (i686-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (m68k-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (mips-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (mips-linux-musln32sf) (push) Has been cancelled
Continuous Build Linux / static-build (mips-linux-muslsf) (push) Has been cancelled
Continuous Build Linux / static-build (mips64-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (mips64-linux-musln32) (push) Has been cancelled
Continuous Build Linux / static-build (mips64-linux-musln32sf) (push) Has been cancelled
Continuous Build Linux / static-build (mips64el-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (mips64el-linux-musln32) (push) Has been cancelled
Continuous Build Linux / static-build (mips64el-linux-musln32sf) (push) Has been cancelled
Continuous Build Linux / static-build (mipsel-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (mipsel-linux-musln32) (push) Has been cancelled
Continuous Build Linux / static-build (mipsel-linux-musln32sf) (push) Has been cancelled
Continuous Build Linux / static-build (mipsel-linux-muslsf) (push) Has been cancelled
Continuous Build Linux / static-build (powerpc-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (powerpc-linux-muslsf) (push) Has been cancelled
Continuous Build Linux / static-build (powerpc64-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (powerpc64le-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (powerpcle-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (powerpcle-linux-muslsf) (push) Has been cancelled
Continuous Build Linux / static-build (riscv32-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (riscv64-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (s390x-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (x86_64-linux-musl) (push) Has been cancelled
Continuous Build Linux / static-build (x86_64-linux-muslx32) (push) Has been cancelled
Continuous Build MacOS / build-macos (map[runner:macos-13 version:Ventura]) (push) Has been cancelled
Continuous Build MacOS / build-macos (map[runner:macos-14 version:Sonoma]) (push) Has been cancelled
Continuous Build MacOS / build-macos (map[runner:macos-15 version:Sequoia]) (push) Has been cancelled
Continuous Build NetBSD / build-netbsd (push) Has been cancelled
Continuous Build OpenBSD / build-openbsd (push) Has been cancelled
🧪 Test snap can be built on x86_64 / build (20.x) (push) Has been cancelled
Use the right config key for the tty setting, which is `tty_mode` and not
`force_tty`.

Rewrite the code to evaluate whether to force tty mode or not, which
wasn't respecting the command line flags correctly.

Closes: https://github.com/aristocratos/btop/issues/1190
2025-07-16 16:42:04 +00:00
aristocratos
0f398abd64 v1.4.4 Bug fixes 2025-07-03 22:53:42 +02:00
Rebecca Cran
dec33b445a Fix auto-detection of CPU temp on Ampere boards (#1185)
Ampere boards use the APM X-Gene Hardware Monitoring driver. The label
the driver returns is "Soc Temperature" which the current code doesn't
detect. Fix that by adding a special case for it. This prevents it from
using the "CPU Power" sensor and reporting the CPU tempature as over
8000C (which is the power reported in mW).

Co-authored-by: Rebecca Cran <rebecca@os.amperecomputing.com>
2025-07-02 09:48:28 +00:00
aristocratos
1c2ab3f5b5 Merge branch 'main' of github.com:aristocratos/btop 2025-06-14 18:36:43 +02:00
aristocratos
589c133fb3 Fixed floating_humanizer() to work correctly when numeric delimiter isn't a dot. 2025-06-14 18:36:39 +02:00
Steffen Winter
1b0b89212e Add command line option to set an inital filter
This will spawn btop with a filter already set, which can be edited and
also deleted as usual.

Beware that the filter will ALWAYS also match btop itself, since the
--filter argument on the command line will match.

Closes: https://github.com/aristocratos/btop/issues/883
2025-06-07 13:02:15 +00:00
Steffen Winter
27f11e4bc6 CMake: Create a library target for intel_gpu_top code
This allows the suppression of warnings specifically for the C code,
which throws lots of warnings with current compilers.
2025-06-03 08:57:17 +00:00
Steffen Winter
d429bcfe82 Exit gracefully if integer conversion in CLI parser fails 2025-06-01 22:35:38 +00:00
Steffen Winter
6d4bcacfee Make 100ms the minimal refresh rate
Closes: https://github.com/aristocratos/btop/issues/1171
2025-06-01 22:35:38 +00:00
MrCocoNuat
42fac76af9 Fix wrong use of too in terminal size error message (#1166) 2025-05-27 08:03:10 +00:00
Tim Strijdhorst
cfe075e649 Make the disk filter description more clear (#1077) 2025-05-23 21:57:56 +00:00
Jacek Wieczorek
a6ab8f6f97 Lock/unlock config to avoid infinite recursion (#1031)
Closes: #996
2025-05-23 12:34:04 +00:00
xDMPx
d758fc8dc6 Fix incorrect positioning and start symbol of second title introduced in 2538d89ed9 2025-05-12 22:33:32 +00:00
aristocratos
ffcd064a36 Fix dangling reference warnings for GCC 13 and later 2025-05-11 01:07:52 +02:00
aristocratos
3f1ccd9f6c v1.4.3 Bug fixes 2025-05-10 13:02:34 +02:00
Steffen Winter
d000384a41 Ignore incomplete filter regex
When a user enters a special regex character that expects a closing
character, btop will crash before the user has a chance to enter the
closing character. This will now just be ignored and no process will
match the filter until the regex is valid again.

Closes: https://github.com/aristocratos/btop/issues/1133
2025-05-03 12:59:36 +00:00
aristocratos
c3b225f536 Revert e266ccd which broke str_to_upper() and str_to_lower() 2025-05-03 13:25:46 +02:00
aristocratos
274d0c78e5 v1.4.2 Bug fixes 2025-05-01 22:24:11 +02:00
aristocratos
f1482fe87e Fix process arguments appearing outside proc box by replacing ASCII control codes with blankspace, issue #1080 2025-05-01 21:59:49 +02:00
Steffen Winter
2538d89ed9 perf: use string view everywhere
This has the potential to avoid allocations when something non allocated
is implicitly converted.
2025-05-01 20:36:27 +02:00
Steffen Winter
c52b2c4c93 perf: avoid copies by moving string into struct 2025-05-01 20:36:27 +02:00
Steffen Winter
99713316e8 perf: avoid copies with capture-by-reference 2025-05-01 20:36:27 +02:00
Steffen Winter
eb7970ad89 refactor: use algorithm from <ranges> 2025-05-01 20:36:27 +02:00
Steffen Winter
e266ccdc99 refactor: remove unnecessary lamda 2025-05-01 20:36:27 +02:00
Steffen Winter
c7e76900ff perf: use smaller enum base type 2025-05-01 20:36:27 +02:00
Tom Webber
fd35ac1b61 Update flags in help message and README
Co-authored-by: Steffen Winter <steffen.winter@proton.me>
2025-05-01 17:47:30 +00:00
Tom Webber
a5b01c1ac3 Fix wrong naming in documentation and error messages for force-utf argument 2025-05-01 17:47:30 +00:00
Steffen Winter
d3e16cb8e3 Respect the cli flags debug and force utf
This was missed in de0d295f6f.
2025-05-01 17:47:30 +00:00
Steffen Winter
70223c8c1c Remove unused variable 2025-05-01 17:47:30 +00:00
bad code
684fbeb583 Fix devide by 0
src/linux/btop_collect.cpp:950:106: runtime error: division by zero
    #0 0x61b286115a41 in Cpu::collect(bool) src/linux/btop_collect.cpp:950:106
    #1 0x61b285e55cb7 in Runner::_runner(void*) src/btop.cpp:533:18
    #2 0x61b285e085ca in asan_thread_start(void*) asan_interceptors.cpp.o
    #3 0x7629b7719b7a in start_thread nptl/pthread_create.c:448:8
    #4 0x7629b77977b7 in __GI___clone3 misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/linux/btop_collect.cpp:950:106
2025-05-01 11:21:51 +00:00
bad code
7906886e76 Avoid potential uninitialzed variables
Reported-by clang:

    src/linux/btop_collect.cpp:489:10: error: variable 'high' may be uninitialized when used here [-Werror,-Wconditional-uninitialized]
      489 |                                         if (high < 1) high = 80;
          |                                             ^~~~
    src/linux/btop_collect.cpp:482:18: note: initialize the variable 'high' to silence this warning
      482 |                                         int64_t high, crit;
          |                                                     ^
          |                                                      = 0
    src/linux/btop_collect.cpp:490:10: error: variable 'crit' may be uninitialized when used here [-Werror,-Wconditional-uninitialized]
      490 |                                         if (crit < 1) crit = 95;
          |                                             ^~~~
    src/linux/btop_collect.cpp:482:24: note: initialize the variable 'crit' to silence this warning
      482 |                                         int64_t high, crit;
          |                                                           ^
          |                                                            = 0
    src/linux/btop_collect.cpp:1648:29: error: variable 'totalMem' may be uninitialized when used here [-Werror,-Wconditional-uninitialized]
     1648 |                 if (not meminfo.good() or totalMem == 0)
          |                                           ^~~~~~~~
    src/linux/btop_collect.cpp:1642:19: note: initialize the variable 'totalMem' to silence this warning
     1642 |                 int64_t totalMem;
          |                                 ^
          |                                  = 0
2025-05-01 11:21:51 +00:00
bad code
9ecc10b66b Avoid stack-use-after-return
The variable free_priv is a constant bool; pass by value.
Reported by Address Sanitizer:

    SUMMARY: AddressSanitizer: stack-use-after-return src/linux/btop_collect.cpp:1931:17 in Mem::collect(bool)::$_0::operator()() const
2025-05-01 11:21:51 +00:00