Compare commits

...

204 commits

Author SHA1 Message Date
Matt McCormick 640eac3069
Merge pull request #120 from thewtex/dependabot/github_actions/actions/stale-11
Some checks failed
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-armv7l-musl, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-armv7l-musl, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-mips, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-mips, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-ppc64le, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv32, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv32, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-s390x, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-s390x, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64-clang, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64-clang, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-ppc64le, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x86, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x86, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x86, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x86, Release) (push) Has been cancelled
Bump actions/stale from 10 to 11
2026-08-04 15:24:07 -04:00
dependabot[bot] 0b4c5e9894
Bump actions/stale from 10 to 11
Bumps [actions/stale](https://github.com/actions/stale) from 10 to 11.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '11'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 04:22:14 +00:00
Matt McCormick 96405e16ea
Merge pull request #118 from arrowd/patch-1
Some checks failed
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-armv7l-musl, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-armv7l-musl, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-mips, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-mips, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-ppc64le, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-ppc64le, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv32, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv32, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-riscv64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-s390x, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-s390x, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64-clang, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x64-clang, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (linux-x86, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux1-x86, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2010-x86, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x64, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x64, Release) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x86, Debug) (push) Has been cancelled
tmux-mem-cpu-load / build ${{ matrix.arch_name }} ${{ matrix.build_type }} (manylinux2014-x86, Release) (push) Has been cancelled
README.rst: Add FreeBSD installation instructions
2026-06-25 15:34:32 -04:00
Gleb Popov ec3448c5c9
README.rst: Add FreeBSD installation instructions 2026-06-25 22:12:39 +03:00
Matt McCormick 606622eb38 Bump version to 3.8.3 2026-06-25 14:37:41 -04:00
Matt McCormick 006b834b9c
Merge pull request #117 from iztanos/codex/fix-load-averages-array
Avoid variable length load average array
2026-06-25 14:36:44 -04:00
Matt McCormick 1922b61f3d
Merge pull request #116 from iztanos/codex/handle-powerline-none
Handle empty powerline direction
2026-06-25 14:36:02 -04:00
Matt McCormick ec284cc78f
Merge pull request #115 from iztanos/codex/major-scout
Use unique release artifact names
2026-06-25 14:35:39 -04:00
Matt McCormick 041d53d7d0
Merge pull request #114 from iztanos/codex/fix-invalid-graph-lines-test
Fix invalid graph-lines test option
2026-06-22 20:27:34 -04:00
itzTanos29 5aa51ed196 Use unique release artifact names 2026-06-22 13:09:35 -04:00
itzTanos29 6b0f365a86 Avoid variable length load average array 2026-06-22 13:06:40 -04:00
itzTanos29 11b856c72d Handle empty powerline direction 2026-06-22 12:46:37 -04:00
itzTanos29 fdcde82be0 Fix graph-lines validation test 2026-06-22 12:26:37 -04:00
Matt McCormick ab991091be
Merge pull request #113 from thewtex/dependabot/github_actions/actions/checkout-7
Bump actions/checkout from 6 to 7
2026-06-19 13:44:51 -04:00
dependabot[bot] b5772c1bfb
Bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-19 04:22:14 +00:00
Matt McCormick df30c399fc
Merge pull request #112 from thewtex/dependabot/github_actions/actions/checkout-6
Bump actions/checkout from 4 to 6
2026-05-13 16:07:41 -04:00
Matt McCormick 90f1845d51
Merge pull request #111 from thewtex/dependabot/github_actions/actions/download-artifact-8
Bump actions/download-artifact from 4 to 8
2026-05-13 16:07:16 -04:00
Matt McCormick 451107b7eb
Merge pull request #110 from thewtex/dependabot/github_actions/actions/stale-10
Bump actions/stale from 9 to 10
2026-05-13 16:07:02 -04:00
Matt McCormick a5662eaca0
Merge pull request #109 from thewtex/dependabot/github_actions/actions/upload-artifact-7
Bump actions/upload-artifact from 4 to 7
2026-05-13 16:06:48 -04:00
dependabot[bot] ef67d00820
Bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-30 04:36:36 +00:00
dependabot[bot] 4ecb3f52d8
Bump actions/download-artifact from 4 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-30 04:36:33 +00:00
dependabot[bot] 40d42459f5
Bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-30 04:36:30 +00:00
dependabot[bot] 036e627089
Bump actions/upload-artifact from 4 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-30 04:36:27 +00:00
Matt McCormick 6549a6cf2f
Merge pull request #108 from jpomykala/patch-1
Update README.rst
2025-05-22 14:46:41 -04:00
Jakub 359a595d73
Update README.rst
Using single quotes breaks the script and it shows just for a one second and disappears.
2025-05-19 22:55:39 +02:00
Matt McCormick 9adf9470c7
Bump version to 3.8.2 2025-04-16 12:13:12 -04:00
Matt McCormick 192e31a62c
Merge pull request #107 from slybart77/memory_report_macos
Fix to report memory usage as Activity Monitor on macOS.
2025-04-16 12:12:18 -04:00
Nicolas Duflot abe531fffb Fix to report memory usage as Activity Monitor on macOS. 2025-04-16 17:05:51 +02:00
Matt McCormick 8d062a7e36
Merge pull request #105 from lljbash/patch-1
fix: build with `cmake --build .` instead of `make`
2025-03-13 14:08:06 -04:00
Lingjie 83820d97a0
fix: build with cmake --build . instead of make 2025-03-13 19:47:41 +08:00
Matt McCormick df71d2123a
Remove TravisCI badge 2024-06-07 15:09:55 -04:00
Matt McCormick 42bf188155 Bump version to 3.8.1 2024-05-22 12:04:44 -04:00
Matt McCormick 93525a5517
Merge pull request #104 from jameshanlon/fix-103
Use stol() for determining Linux memory use
2024-05-22 12:04:07 -04:00
James Hanlon 13160c7e80 Use stol() for determining Linux memory use
To acommodate large memory machines.
2024-05-22 09:23:58 +01:00
Matt McCormick bf0b2721df
Merge pull request #102 from thewtex/dependabot/github_actions/actions/download-artifact-4
Bump actions/download-artifact from 3 to 4
2024-01-06 23:17:20 -05:00
Matt McCormick 06fe4850db
Merge pull request #101 from thewtex/dependabot/github_actions/actions/upload-artifact-4
Bump actions/upload-artifact from 3 to 4
2024-01-06 23:17:13 -05:00
Matt McCormick 9c273230a8
Merge pull request #100 from thewtex/dependabot/github_actions/actions/stale-9
Bump actions/stale from 8 to 9
2024-01-06 23:17:05 -05:00
dependabot[bot] 8d7911abe1
Bump actions/download-artifact from 3 to 4
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 04:52:12 +00:00
dependabot[bot] 79804bc3e1
Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 04:52:07 +00:00
dependabot[bot] 9c83be94d4
Bump actions/stale from 8 to 9
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-08 04:40:46 +00:00
Matt McCormick 9a9abc5d13
Merge pull request #99 from thewtex/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-10-19 21:59:45 -04:00
dependabot[bot] 4aa31eb80c
Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 04:13:28 +00:00
Matt McCormick 1dcf3f92fb
Merge pull request #97 from rnagy/master
OpenBSD fixes
2023-05-25 21:50:07 -04:00
Robert Nagy 525c6a28b2 cast the return value of get_cpu_count() and fix cpu usage calculation 2023-05-12 17:08:52 +02:00
Robert Nagy 4cf0dad920 use the correct CP_* definitions and number of CPUSTATES on OpenBSD 2023-05-12 17:08:39 +02:00
Matt McCormick 451300eda2 Bump version to 3.8.0 2023-05-12 06:29:08 -04:00
Matt McCormick 8f7027f1fd
Merge pull request #96 from milesfrain/patch-1
Use single quotes for TPM example
2023-05-08 10:29:36 -04:00
Matt McCormick b06c049d0f
Merge pull request #94 from henrypotgieter/improved_segment_adjacency
Improved segment adjacency
2023-05-08 10:29:04 -04:00
milesfrain d1676552dc
Use single quotes for TPM example
This was not working on startup with double quotes.

Issue and fix originally reported here:
https://github.com/thewtex/tmux-mem-cpu-load/issues/53#issuecomment-393083641
2023-05-05 15:44:27 -07:00
henry.potgieter aa8fe65529 Fixed spacing/tabing indent 2023-05-03 23:50:11 -04:00
henry.potgieter ba8489917d Updated usage output from main executable and one other minor change to README.rst 2023-05-03 23:48:20 -04:00
Matt McCormick a991497b9f
Merge pull request #95 from thesamesam/gcc13
Fix build with GCC 13
2023-04-27 14:39:01 -04:00
Sam James 59cca005e4
Fix build with GCC 13
GCC 13 (as usual for new compiler releases) shuffles around some internal includes so some
are no longer transitively included.

See https://gnu.org/software/gcc/gcc-13/porting_to.html.

Bug: https://bugs.gentoo.org/895304
2023-04-18 04:25:00 +01:00
henry.potgieter 35f9618d1f Add additional usage instructions 2023-03-30 23:44:55 -04:00
henry.potgieter 0c9a8d4612 Correct usage output for -r option 2023-03-30 23:31:09 -04:00
henry.potgieter c058ed6f21 Update README.rst 2023-03-30 23:30:45 -04:00
henry.potgieter 6eec6350be Condense lines 2023-03-30 23:24:11 -04:00
henry.potgieter d900b3a546 Merge branch 'nerdfont_graph' into improved_segment_adjacency
Merge vertical graph branch with improved_segment_adjacency branch
2023-03-29 22:39:48 -04:00
Matt McCormick 6d96a8a490 Bump version to 3.7.0 2023-03-27 21:37:42 -04:00
Matt McCormick f08fce0f83
Merge pull request #93 from henrypotgieter/nerdfont_graph
Add option to display CPU graph as vertical bar chart
2023-03-27 21:36:46 -04:00
Matt McCormick 73b7f6c29f
Merge pull request #92 from thewtex/dependabot/github_actions/actions/stale-8
Bump actions/stale from 7 to 8
2023-03-27 21:30:12 -04:00
henry.potgieter 94aed0352c Corrected a character in usage output and updated README.rst 2023-03-27 12:21:36 -04:00
henry.potgieter e232eef156 Change naming from --nerd-graph to --vertical-graph 2023-03-27 11:57:01 -04:00
henry.potgieter f9663c8f2f Add options to allow embedding tmux-mem-cpu-load segments within/beside other segments 2023-03-27 11:11:55 -04:00
henry.potgieter dc298e162a Prepend nerd_graph boolean with use_ so it doesn't look odd 2023-03-26 08:52:59 -04:00
henry.potgieter 6178ba9aa3 Add option to display CPU graph as vertical bar chart 2023-03-25 11:07:55 -04:00
dependabot[bot] 88a219a36d
Bump actions/stale from 7 to 8
Bumps [actions/stale](https://github.com/actions/stale) from 7 to 8.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 05:01:16 +00:00
Matt McCormick 2c3484286e Bump version to 3.6.2 2023-03-20 17:12:07 -04:00
Matt McCormick 5420cf8696
Merge pull request #91 from assistcontrol/master
Increase CPU percent width by 1 (fixes #81)
2023-03-16 20:59:59 -04:00
Adam Weinberger 2b19ca8a0a Increase CPU percent width by 1 (fixes #81)
CPU percent width is 5, which accommodates the maximum possible width
(100.0). When it's at full width, though, the percent string runs right
up against the item before it.

When the graph is enabled, running up against the graph just looks
strange, but still readable ([   |||]100.0%). With the graph disabled
(-g 0) though, it runs into the memory widget, which makes both of them
very difficult to read (11/32GB100%).

This commit adds one space to the CPU percent width. It offsets
a non-pegged load by one, but it ensures there's always at least one
space to separate the widgets.
2023-03-06 15:56:05 -05:00
Matt McCormick b2c6cd43e0 Bump version to 3.6.1 2023-03-05 22:50:52 -05:00
Matt McCormick a5d66aac16
Merge pull request #89 from perfectra1n/master
Fix log messages when attempting to rebuild the plugin, and detect if the binary already exists to trigger rebuild.
2023-03-05 22:50:05 -05:00
Matt McCormick bc279dd2cb
Merge pull request #88 from 0-wiz-0/netbsd
Adapt NetBSD code to signature change.
2023-03-05 21:56:39 -05:00
Matt McCormick 018c03b131
Merge pull request #87 from ngocphamm/patch-1
Update version number to match latest release
2023-03-05 21:56:14 -05:00
perfectra1n b0644d7372 Test to see if the binary already exists. 2023-02-19 21:57:12 -08:00
perfectra1n 626253d791
Fix log messages when attempting to rebuild the plugin.
Fix log messages when attempting to rebuild the plugin, as the previous messages were showing the incorrect output if `cmake` failed, or if `make` failed to execute.
2023-02-19 18:38:46 -08:00
Thomas Klausner 66dfb979b8 Adapt NetBSD code to signature change. 2023-01-19 14:59:30 +01:00
Ngoc Pham adfed692ad
Update version number to match latest release
I guess it wasn't updated for the release of version `3.6.0` back in March.
2022-12-29 23:41:00 -05:00
Matt McCormick 5dccd1801f
Merge pull request #86 from thewtex/dependabot/github_actions/actions/stale-7
Bump actions/stale from 6 to 7
2022-12-22 14:41:51 -05:00
dependabot[bot] 721cb67a80
Bump actions/stale from 6 to 7
Bumps [actions/stale](https://github.com/actions/stale) from 6 to 7.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-21 04:05:50 +00:00
Matt McCormick c158cdd71e
Merge pull request #82 from thewtex/dependabot/github_actions/actions/stale-6
Bump actions/stale from 5 to 6
2022-09-30 16:39:13 -04:00
dependabot[bot] 37220619a2
Bump actions/stale from 5 to 6
Bumps [actions/stale](https://github.com/actions/stale) from 5 to 6.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-22 04:23:31 +00:00
Matt McCormick 171917715d
Merge pull request #76 from thewtex/dependabot/github_actions/actions/upload-artifact-3
Bump actions/upload-artifact from 2 to 3
2022-05-06 22:42:10 -04:00
Matt McCormick 56b71ea699
Merge pull request #77 from thewtex/dependabot/github_actions/actions/download-artifact-3
Bump actions/download-artifact from 2 to 3
2022-05-06 22:42:00 -04:00
Matt McCormick 651b134b09
Merge pull request #78 from thewtex/dependabot/github_actions/actions/stale-5
Bump actions/stale from 4 to 5
2022-05-06 22:41:50 -04:00
dependabot[bot] a449ed042c
Bump actions/stale from 4 to 5
Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 04:21:40 +00:00
dependabot[bot] bc4c0ddbad
Bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 04:21:36 +00:00
dependabot[bot] 961351433c
Bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 04:21:33 +00:00
Matt McCormick 0b6cd002b3 Update required CMake version in the README 2022-03-07 16:48:05 -05:00
Matt McCormick d87de550f4
Merge pull request #74 from thewtex/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-03-03 11:23:14 -05:00
Matt McCormick 4de9c077f5
Merge pull request #75 from thewtex/aarch-string
Aarch string
2022-03-03 11:22:19 -05:00
Matt McCormick 974e40bcb5 Disable manylinux2014-aarch64 builds
Odd linker errors:

: && /usr/xcc/aarch64-unknown-linux-gnueabi/bin/aarch64-unknown-linux-gnueabi-g++ --sysroot=/usr/xcc/aarch64-unknown-linux-gnueabi/aarch64-unknown-linux-gnueabi/sysroot -I /usr/xcc/aarch64-unknown-linux-gnueabi/include/ -std=c++11 -g  CMakeFiles/tmux-mem-cpu-load.dir/common/main.cc.o CMakeFiles/tmux-mem-cpu-load.dir/common/memory.cc.o CMakeFiles/tmux-mem-cpu-load.dir/common/graph.cc.o CMakeFiles/tmux-mem-cpu-load.dir/common/powerline.cc.o CMakeFiles/tmux-mem-cpu-load.dir/linux/memory.cc.o CMakeFiles/tmux-mem-cpu-load.dir/linux/cpu.cc.o CMakeFiles/tmux-mem-cpu-load.dir/common/load.cc.o -o tmux-mem-cpu-load   && :
CMakeFiles/tmux-mem-cpu-load.dir/common/main.cc.o: In function `cpu_string[abi:cxx11](CPU_MODE, unsigned int, unsigned int, bool, bool, bool)':
/work/build-manylinux2014-aarch64/../common/main.cc:47: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()'
/work/build-manylinux2014-aarch64/../common/main.cc:86: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/work/build-manylinux2014-aarch64/../common/main.cc:86: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
/work/build-manylinux2014-aarch64/../common/main.cc:107: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str() const'
/work/build-manylinux2014-aarch64/../common/main.cc:47: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()'
/work/build-manylinux2014-aarch64/../common/main.cc:86: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
/work/build-manylinux2014-aarch64/../common/main.cc:47: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()'
CMakeFiles/tmux-mem-cpu-load.dir/common/main.cc.o: In function `main':
2022-03-03 09:25:18 -05:00
dependabot[bot] 486e618f41
Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 04:26:30 +00:00
Matt McCormick f29c4ff5c5 Use standard CMake C++11 enablement 2022-02-17 15:19:02 -05:00
Matt McCormick 8052318680 Undefined references to std::string in aarch64 build 2022-02-17 12:32:51 -05:00
Matt McCormick 0077534b96
Merge pull request #72 from blackheaven/master
More consistent CPU load colors and lower memory usage threshold
2022-02-16 17:16:52 -05:00
Gautier DI FOLCO 1ac6729ef1 Less sensitive memory default thresholds 2021-12-07 23:19:49 +01:00
Gautier DI FOLCO 04419c8cdf Progressive colors for CPU usage 2021-12-07 23:19:09 +01:00
Matt McCormick b6afa5c5e9
Merge pull request #71 from thewtex/freebsd-sig
Consistent get_cpu_count for FreeBSD
2021-08-04 17:43:16 -04:00
Matt McCormick 96ea7dc050 Consistent get_cpu_count for FreeBSD 2021-08-04 15:05:19 -04:00
Matt McCormick 0ca29c4ecd
Merge pull request #69 from thewtex/consistent-precision
consistent precision
2021-08-03 18:43:21 -04:00
Matt McCormick 4be44f35f7 Specify precision in CPU percent output
More consistent formatting.
2021-08-03 18:38:28 -04:00
Matt McCormick 8c2f0e2cfd Use consistent precision for load output
Reduce variations in output.
2021-08-03 18:29:09 -04:00
Matt McCormick 37b08090f1
Merge pull request #68 from thewtex/dependabot/github_actions/actions/stale-4
Bump actions/stale from 3 to 4
2021-08-03 17:36:10 -04:00
Matt McCormick c83d7ee712
DOC: Add GitHub Actions badge to README 2021-08-03 17:35:37 -04:00
dependabot[bot] 8b6e394dd3
Bump actions/stale from 3 to 4
Bumps [actions/stale](https://github.com/actions/stale) from 3 to 4.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-03 21:28:38 +00:00
Matt McCormick 31768a203b
Merge pull request #67 from bensuperpc/multi-arch-ci
Add Github CI and Multi-arch builder
2021-08-03 17:28:14 -04:00
Bensuperpc 9113cefccc Merge branch 'master' into multi-arch-ci 2021-07-07 02:59:23 +02:00
Bensuperpc 39348840c1 Merge branch 'improve_release' 2021-07-07 02:58:35 +02:00
Bensuperpc 3ec357c63c Improve release trigger
Improve release trigger

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:57:38 +02:00
Bensuperpc acea452957 Fix workflow
Fix Release workflow

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:53:42 +02:00
Bensuperpc 705830d1df
Merge pull request #1 from bensuperpc/multi-arch-ci
Multi arch ci
2021-07-07 02:51:17 +02:00
Bensuperpc 8c9c31798c Add Release workflow
Add Release workflow

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:46:40 +02:00
Bensuperpc bf41ae4393 Remove Emscripten
Remove Emscripten

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:38:25 +02:00
Bensuperpc e652a93b72 Add contributor in README
Add contributor in README

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:36:25 +02:00
Bensuperpc db4edaeecc Remove unsupported system
Remove unsupported system

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:30:01 +02:00
Bensuperpc 39c6c57bf3 Add github CI and builder scripts (dockcross)
Add github CI and builder scripts (dockcross)

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-07 02:15:22 +02:00
Matt McCormick d5007d4694
Merge pull request #62 from littlewu2508/master
uint32_t get_cpu_count() : support >255 threads
2020-03-05 18:00:15 -05:00
WuYiyang 10ad0b29fd delete the accidentally added header 2020-03-01 09:53:37 +00:00
WuYiyang fc78a0bdad display mem in GB when >100000MB in default mode 2020-03-01 09:44:31 +00:00
WuYiyang d34821cb95 uint32_t get_cpu_count() : support >255 threads 2020-02-23 02:40:10 +00:00
Matt McCormick f96ae7a76a
Merge pull request #61 from fluffykhv/fbsd-mem
Fix calculate memory usage on FreeBSD
2019-12-20 17:25:15 -05:00
Dima Panov e24890652e Fix calculate memory usage on FreeBSD 2019-12-20 02:47:32 +10:00
Matt McCormick 12417dc358
Merge pull request #60 from jasperla/openbsd/ncpuonline
openbsd: use actual number of cpus being used
2019-12-02 16:18:38 -05:00
Jasper Lievisse Adriaanse 2107ea84f1 openbsd: use actual number of cpus being used 2019-12-02 14:06:38 +01:00
Matt McCormick 67657e6312
Merge pull request #58 from tony/patch-1
🙈 Ignore ninja generated files
2019-06-18 18:22:45 -04:00
Tony Narlock 15da3e0a59
🙈 Ignore ninja generated files
Generated when using `cmake -GNinja .`
2019-04-22 13:12:21 -05:00
Matt McCormick 2fdcf93296
Merge pull request #54 from thewtex/windows
Windows
2018-04-23 21:59:20 -04:00
Matt McCormick 7cf58a8367 windows: Initial addition 2018-04-23 21:52:17 -04:00
Matt McCormick 3fad77c3ac Use target_include_directories 2018-04-14 09:47:35 -04:00
Matt McCormick abe7290511
Merge pull request #52 from jmmweismiller/master
Updated used memory calculation.
2018-04-13 23:35:56 -04:00
John Weismiller 22f4db4b0e Updated used memory calculation.
Changed used memory calculation to account for shared memory in accordance with this:
https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716
2018-01-18 13:25:54 -06:00
Matt McCormick 75b9ea756e Merge pull request #49 from qqshfox/patch-1
fix tmux init
2017-04-22 09:37:52 -04:00
Hanfei Shen 26b53ea94b fix tmux init 2017-04-22 20:38:09 +08:00
Matt McCormick 0e227c1e88 Merge pull request #47 from NHDaly/tmux-error-messages
Added error message printing to the tmux plugin.
2016-09-27 21:28:45 -04:00
Nathan Daly 5c37494d11 Added error message printing to the tmux plugin:
Added output error messsages to the tmux plugin file so that if either
cmake or make fail, you can find out why.

For example, if cmake is missing, the output looks like this:

```
'cmake /usr/local/google/home/nhdaly/.tmux/plugins/tmux-mem-cpu-load' failed.
/usr/local/google/home/nhdaly/.tmux/plugins//tmux-mem-cpu-load/tmux-mem-cpu-load.plugin.tmux: line 23: cmake: command not found
```

If there is some error during make, the output looks like this:

```
tmux-mem-cpu-load failed to build.
make: <make output error message>
```
2016-09-27 18:24:13 -05:00
Matt McCormick 35fea56625 Merge pull request #46 from NHDaly/master
Reordered install instructions: moved `tpm` higher && adds nhdaly to Contributions
2016-09-08 22:12:04 -04:00
Nathan Daly 8018a0c761 Reordered install instructions: moved tpm higher.
Since it's the most tmux-native install option, I've moved it higher in
the list of installation options.

Also adds @nhdaly to the Contributions section per @thewtex's suggestion
in
[#43](https://github.com/thewtex/tmux-mem-cpu-load/issues/43#issuecomment-244767735).
2016-09-08 19:36:19 -05:00
Matt McCormick d1f95acada Improve package manager command markup 2016-09-04 15:44:16 -04:00
Matt McCormick 8b1f07ccca Document how to install with package managers 2016-09-04 15:38:49 -04:00
Matt McCormick d7db6d8c8b Merge pull request #44 from NHDaly/master
Added .tmux script so the plugin works with tpm.
2016-09-04 15:22:41 -04:00
Nathan Daly 58564ae6b7 Added .tmux script so the plugin works with tpm.
Now the plugin can be installed via tmux-plugins/tpm in addition to
being installed through zsh's antigen package manager.

It now only calls `make install` when installed through antigen; the
tmux plugin automatically compiles the binary, but leaves it in the
plugin directory.

This also allows skipping the "if exists" check, which means plugin
updates can also automatically rebuild any changes to the compiled part
of the plugin.

Updated the README to reflect this new install option.

This is part of Issue #43.
2016-08-24 11:13:23 -05:00
Matt McCormick 54fdf3c68c Version bump to 3.4.0 2016-08-02 18:51:47 -04:00
Matt McCormick e5595e21f4 Fix memory background color with --powerline-right 2016-08-02 18:48:43 -04:00
Matt McCormick 13c3205ec0 Remove extra spaces with --powerline-right 2016-08-02 18:41:13 -04:00
Matt McCormick 1b11c308ac Remove extra space with --powerline-left 2016-08-01 12:46:31 -04:00
Matt McCormick dcadec63a2 Remove implementation details from --powerline- docs 2016-07-31 22:06:56 -04:00
Matt McCormick 0941898c02 Document --powerline-left 2016-07-31 22:03:18 -04:00
Matt McCormick 1456c16cf8 Test --powerline-left 2016-07-31 21:59:52 -04:00
Matt McCormick 6960e27dc4 Implement --powerline-left 2016-07-31 21:57:56 -04:00
Matt McCormick a26f0ae59d Recognize the documented -p flag 2016-07-28 21:25:58 -04:00
Matt McCormick 18b4ed638a Merge pull request #40 from jodavies/cpu-mode
Cpu mode
2016-06-30 13:11:12 -04:00
jodavies 8af6dc22b8 Update README.rst 2016-06-30 07:56:55 +01:00
Josh Davies b7d2d2a73e Print CPU usage without decimal point if >= 100
Also:
add --colours shortopt to help/readme,
Conform to coding style.
2016-06-27 08:00:09 +01:00
Josh Davies 4a2c4efb9a Added tests for "cpu-mode", short opt --colour
Also fixed (properly) ad83d9b
2016-06-26 14:47:02 +01:00
Josh Davies ad83d9b3a9 Fix: allow -c short option for --color 2016-06-26 14:33:05 +01:00
Josh Davies c623ca889d Added cpu-mode option
Default as before, full load = 100%.
Option 1, full load = 100% * number of cpu threads.
2016-06-26 14:31:34 +01:00
Matt McCormick 3e12a64309 Merge pull request #36 from jasperla/openbsd_mem
Simplify memory calculations on OpenBSD by using uvmexp.pageshift
2016-05-15 07:52:33 -04:00
Matt McCormick 0bc57a9ac8 Tweak description to avoid redundancy.
RAM memory -> RAM.
2016-05-06 09:25:33 -04:00
Matt McCormick ce9de3f9aa Merge pull request #35 from compilenix/master
added averages-count option
2016-05-06 09:24:10 -04:00
Compilenix 710be9e355 Added tests for "averages-count" 2016-05-06 09:03:18 +02:00
Jasper Lievisse Adriaanse 3f647a9b2b Simplify memory calculations on OpenBSD by using uvmexp.pageshift 2016-05-03 20:33:43 +02:00
Compilenix 97a655c856 cleanup 2016-04-28 22:27:19 +02:00
Compilenix cbe3074c6b Update README.rst and AUTHORS 2016-04-28 22:13:05 +02:00
Compilenix 1d1a516eda added averages-count option 2016-04-28 22:05:43 +02:00
Matt McCormick 34b9d39b57 Merge pull request #34 from golinski/master
Adding powerline support
2016-04-14 07:01:33 -04:00
Michał Goliński bac831cd69 Code refactoring for merging
- license header in new files
- changed "powerline" into "powerline-right"
- added braces around one-liners
- small fixes concerning whitespace
2016-04-14 12:30:20 +02:00
golinski e9a3726de7 Change CMakeLists.txt, so it builds on all systems, not only on Linux 2016-03-07 15:14:32 +01:00
Matt McCormick 6e1dbc6b1f Version bump to 3.3.0. 2016-03-06 20:33:34 -05:00
Matt McCormick b8594ecb82 Correct total memory output for the default mode. 2016-03-06 10:57:38 -05:00
Michał Goliński 159051079b Changes in README.rst 2016-03-05 19:34:37 +01:00
Michał Goliński cc59b4952f Powerline support 2016-03-05 11:19:31 +01:00
Matt McCormick 68fd497108 Update README with mem-mode instructions. 2016-02-15 00:02:58 -05:00
Matt McCormick be0b914c49 Merge pull request #32 from thewtex/mem-mode-all-platforms
Mem mode all platforms
2016-02-15 00:00:11 -05:00
Matt McCormick 6938941b99 Add help for memory display mode. 2016-02-14 23:52:56 -05:00
Matt McCormick 42275e094d Memory mode output for platforms other than osx.
Refactor status string generation into a common function.
2016-02-14 23:47:02 -05:00
Matt McCormick fb8e3c6ad0 Add .gitattributes to check whitespace errors. 2016-02-10 16:59:39 -05:00
Matt McCormick e50d34873f Add header guard to conversions.h 2016-02-10 16:54:09 -05:00
Matt McCormick 7eef3670e0 Fix whitespace in osx/memory.cc. 2016-02-10 16:48:37 -05:00
Matt McCormick 4fd854ce16 Give the MEMORY_MODE enum a name.
This improves readability. Also, set the default value in one place in the
declaration.
2016-02-10 16:47:29 -05:00
Matt McCormick c5f369ae00 Fix trailing whitespace in linux/memory.cc. 2016-02-10 16:41:36 -05:00
Matt McCormick 81fea73e79 Move MEMORY_MODE enum inside include guard. 2016-02-10 16:38:50 -05:00
Matt McCormick a6f57340d8 Merge pull request #31 from cousine/master
Added memory modes to show different memory calculations
2016-02-10 16:03:03 -05:00
cousine 635334b141 Adhere to the styling guide, added enum for memory modes, refractored memory mode if block to use switch instead and added test cases for free memory and user percentage memory modes 2016-02-10 22:49:49 +02:00
cousine 0e89998ee4 Add new mode to other platforms and indicate mac only support in README 2016-02-10 17:38:11 +02:00
cousine 1b8fa1ec3a Add new option to the readme 2016-02-10 17:35:15 +02:00
cousine 451aed4530 added memory mode to calculate %, and free memory 2016-02-10 17:32:01 +02:00
Matt McCormick 859c60976a Version bump to 3.2.3. 2016-01-09 17:01:28 -05:00
Matt McCormick cc85854323 Add new contributors to the README. 2016-01-09 17:00:56 -05:00
Matt McCormick 9ad57c906b Merge pull request #30 from tony/freebsd-memory
Fix FreeBSD memory usage
2016-01-09 16:56:53 -05:00
Tony Narlock c036017db3 Fix FreeBSD memory usage
Total memory would go out of bounds for machines ~ > 3.5gB of
memory due to the limit of what u_int can hold.

Use ``getpagesize()`` and bitshift pagesize so it fits.

See also: https://github.com/thewtex/tmux-mem-cpu-load/issues/29
2016-01-09 10:41:28 -06:00
Matt McCormick f80a026c45 Merge pull request #28 from allcatsarebeautiful/master
Allow Easy Installation Via Antigen
2015-09-30 22:27:01 -04:00
Travis Heller 7ca3efacad Merge branch 'master' of https://github.com/allcatsarebeautiful/tmux-mem-cpu-load 2015-09-30 13:03:05 -07:00
Travis Heller e9af4ea2c0 Added License Information 2015-09-30 13:02:36 -07:00
Travis Heller cd0ad5c8ff Why is the markdown formatting not propagating? 2015-09-30 13:00:36 -07:00
Travis Heller ff36892e29 Fixed formatting. 2015-09-30 12:27:29 -07:00
Travis Heller d273cbaf60 RST files don't use Markdown formatting; fixed the link. 2015-09-30 12:25:04 -07:00
Travis Heller e1908ebd13 Why is the markdown formatting not propagating? 2015-09-30 12:16:00 -07:00
Travis Heller 8e6d013c66 Formatting links in .md 2015-09-30 12:11:21 -07:00
Travis Heller ad0a88d1f2 Fixed readme linking error 2015-09-30 12:03:57 -07:00
Travis Heller 7cc6ff35cc Added a check to see if the file has already been installed. 2015-09-30 11:51:53 -07:00
Travis Heller 79e16ec38b Supports Antigen via plugin that builds and installs 2015-09-30 10:57:06 -07:00
Matt McCormick 62c18a0778 Merge pull request #27 from thewtex/circle-ci
Add circle-ci status badge.
2015-07-30 16:08:27 -04:00
Matt McCormick b61503e76a Add circle-ci status badge. 2015-07-30 16:03:52 -04:00
44 changed files with 1289 additions and 289 deletions

4
.gitattributes vendored Normal file
View file

@ -0,0 +1,4 @@
*.cc whitespace=tab-in-indent,no-lf-at-eof,trailing-whitespace
*.h whitespace=tab-in-indent,no-lf-at-eof,trailing-whitespace
*.rst whitespace=tab-in-indent,no-lf-at-eof,trailing-whitespace
*.txt whitespace=tab-in-indent,no-lf-at-eof,trailing-whitespace

9
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,9 @@
# Set update schedule for GitHub Actions
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"

22
.github/workflows/expired.yml vendored Normal file
View file

@ -0,0 +1,22 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '0 */8 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v11
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-milestones: 'future,alpha,beta,release'
exempt-pr-milestones: 'bugfix,improvement'
exempt-all-pr-assignees: true
stale-issue-message: 'This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 15 days.'
stale-pr-message: 'This PR is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 15 days.'
close-issue-message: 'This issue was closed because it has been stalled for 30 days with no activity.'
close-pr-message: 'This PR was closed because it has been stalled for 30 days with no activity.'
days-before-issue-stale: 120
days-before-pr-stale: 120
days-before-issue-close: 30
days-before-pr-close: 30

34
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: tmux-mem-cpu-load
on:
push:
branches:
- '*'
paths-ignore:
- '**/README.md'
- '**/README.rst'
pull_request:
branches:
- '*'
workflow_dispatch:
jobs:
image:
name: build ${{ matrix.arch_name }} ${{ matrix.build_type }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Disable: unsupported system: android-arm, android-arm64, android-x86, android-x86_64, web-wasm,
# Disable: missing header in linux(GCC): windows-static-x64, windows-static-x64-posix, windows-static-x86, windows-shared-x64, windows-shared-x64-posix, windows-shared-x86,
# Disable: string-related vtable linker error: manylinux2014-aarch64
arch_name: [linux-arm64, linux-arm64-musl, linux-armv5, linux-armv5-musl, linux-armv6, linux-armv6-musl, linux-armv7, linux-armv7a, linux-armv7l-musl, linux-x64-clang, linux-s390x, linux-x64, linux-x86, linux-mips, linux-ppc64le, manylinux1-x64, manylinux1-x86, manylinux2010-x64, manylinux2010-x86, manylinux2014-x64, manylinux2014-x86, linux-riscv64, linux-riscv32]
build_type: [Release, Debug]
steps:
- name: "📥 Checkout Code"
uses: actions/checkout@v7
with:
submodules: 'recursive'
fetch-depth: 0
- name: "🛠️ build"
run: ./builder/cmake.sh ${{ matrix.arch_name }}:latest -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}

63
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,63 @@
name: "tagged-release"
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
workflow_dispatch:
jobs:
build:
name: build ${{ matrix.arch_name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Disable: unsupported system: android-arm, android-arm64, android-x86, android-x86_64, web-wasm,
# Disable: missing header in linux(GCC): windows-static-x64, windows-static-x64-posix, windows-static-x86, windows-shared-x64, windows-shared-x64-posix, windows-shared-x86,
arch_name: [linux-arm64, linux-arm64-musl, linux-armv5, linux-armv5-musl, linux-armv6, linux-armv6-musl, linux-armv7, linux-armv7a, linux-armv7l-musl, linux-x64-clang, linux-s390x, linux-x64, linux-x86, linux-mips, linux-ppc64le, manylinux1-x64, manylinux1-x86, manylinux2010-x64, manylinux2010-x86, manylinux2014-x64, manylinux2014-x86, manylinux2014-aarch64, linux-riscv64, linux-riscv32]
steps:
- name: "📥 Checkout Code"
uses: actions/checkout@v7
with:
submodules: 'recursive'
fetch-depth: 0
- name: "🛠️ cmake"
run: ./builder/cmake.sh ${{ matrix.arch_name }}:latest -DCMAKE_BUILD_TYPE=Release
- name: "✅ checksum"
run: cd build-${{ matrix.arch_name }} && find . -maxdepth 1 -name "tmux-mem-cpu-load*" | xargs sha256sum > checksum.sha256
- name: "🗜️ compress"
run: cd build-${{ matrix.arch_name }} && find . -maxdepth 1 -name "tmux-mem-cpu-load*" -o -name "*.sha256" | XZ_OPT=-e9 tar -cJf tmux-mem-cpu-load-${{ matrix.arch_name }}.tar.xz -T - && mv tmux-mem-cpu-load-${{ matrix.arch_name }}.tar.xz ..
- name: "💾 save binaries"
uses: actions/upload-artifact@v7
with:
name: bin-artifact-${{ matrix.arch_name }}
path: tmux-mem-cpu-load-${{ matrix.arch_name }}.tar.xz
retention-days: 1
release:
name: release
runs-on: ubuntu-latest
needs: build
steps:
- name: "📥 Checkout Code"
uses: actions/checkout@v7
with:
submodules: 'recursive'
fetch-depth: 0
- name: get artifact
uses: actions/download-artifact@v8
with:
pattern: bin-artifact-*
merge-multiple: true
path: .
- name: "✅ checksum"
run: find . -maxdepth 1 -name "*.tar.xz" | xargs sha256sum > checksum_all.sha256
- uses: "marvinpinto/action-automatic-releases@latest"
name: "📤 upload to github"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false
files: |
LICENSE
*.tar.xz
*.sha256

8
.gitignore vendored
View file

@ -21,6 +21,12 @@ config.h
CTestTestfile.cmake
DartConfiguration.tcl
# Ninja generated #
###################
.ninja_deps
.ninja_log
*.ninja
# Packages #
############
# it's better to unpack this files and commit raw source
@ -51,3 +57,5 @@ Thumbs.db
*.swp
*.swo
*~
dockcross-*
build-*

View file

@ -9,3 +9,4 @@ Contributors (in alphabetical order):
krieiter <krieiter@gmail.com>
Mark Palmeri <mlp6@duke.edu>
Pawel 'l0ner' Soltys <pwslts@gmail.com>
Compilenix <Compilenix@compilenix.org>

View file

@ -16,33 +16,20 @@
# limitations under the License.
#
cmake_minimum_required(VERSION 2.6)
if(COMMAND cmake_policy)
cmake_policy(VERSION 2.6)
endif(COMMAND cmake_policy)
cmake_minimum_required(VERSION 3.5)
### General Package stuff
project(tmux-mem-cpu-load)
set(tmux-mem-cpu-load_VERSION_MAJOR 3)
set(tmux-mem-cpu-load_VERSION_MINOR 2)
set(tmux-mem-cpu-load_VERSION_PATCH 1)
set(tmux-mem-cpu-load_VERSION_MINOR 8)
set(tmux-mem-cpu-load_VERSION_PATCH 3)
#Compute full version string
set(tmux-mem-cpu-load_VERSION
${tmux-mem-cpu-load_VERSION_MAJOR}.${tmux-mem-cpu-load_VERSION_MINOR}.${tmux-mem-cpu-load_VERSION_PATCH})
# Check whether we have support for c++11 in compiler and fail if we don't
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(FATAL_ERROR
"Compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} has no C++11 support.")
endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# generate header file to handle version
configure_file(
@ -67,26 +54,32 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
message(STATUS "FreeBSD detected")
set(METER_SOURCES "freebsd/memory.cc" "freebsd/cpu.cc" "common/load.cc")
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
# OpenBSD Stuff Here
message(STATUS "OpenBSD detected")
set(METER_SOURCES "openbsd/memory.cc" "openbsd/cpu.cc" "common/load.cc")
if(CMAKE_SYSTEM_VERSION VERSION_LESS 5.7)
add_definitions(-DOPENBSD_WORKAROUND=1)
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
message(STATUS "NetBSD detected")
set(METER_SOURCES "netbsd/memory.cc" "netbsd/cpu.cc" "common/load.cc")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
message(STATUS "Windows detected")
set(METER_SOURCES "windows/memory.cc" "windows/cpu.cc" "windows/load.cc")
else()
message(FATAL_ERROR "${CMAKE_SYSTEM_NAME} Cannot be compiled on this system")
message(FATAL_ERROR "Cannot be compiled on this system")
endif()
# set common source files
set(COMMON_SOURCES "common/main.cc" "common/graph.cc")
# add binary tree so we find version.h
include_directories("${PROJECT_BINARY_DIR}")
include_directories("${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/common")
set(COMMON_SOURCES "common/main.cc" "common/memory.cc" "common/graph.cc" "common/powerline.cc")
add_executable(tmux-mem-cpu-load ${COMMON_SOURCES} ${METER_SOURCES})
# add binary tree so we find version.h
target_include_directories(tmux-mem-cpu-load PUBLIC "${PROJECT_BINARY_DIR}")
target_include_directories(tmux-mem-cpu-load PUBLIC "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/common")
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
target_link_libraries(tmux-mem-cpu-load Pdh)
endif()
install(TARGETS tmux-mem-cpu-load RUNTIME DESTINATION bin)
include(CTest)
@ -111,18 +104,70 @@ if(BUILD_TESTING)
COMMAND tmux-mem-cpu-load --colors
)
add_test(NAME colors_short
COMMAND tmux-mem-cpu-load -c
)
add_test(NAME powerline-right
COMMAND tmux-mem-cpu-load --powerline-right
)
add_test(NAME powerline-left
COMMAND tmux-mem-cpu-load --powerline-left
)
add_test(NAME invalid_status_interval
COMMAND tmux-mem-cpu-load -i -1
)
add_test(NAME invalid_graph_lines
COMMAND tmux-mem-cpu-load --graph_lines -2
COMMAND tmux-mem-cpu-load --graph-lines -2
)
add_test(NAME old_option_specification
COMMAND tmux-mem-cpu-load 2 8
)
add_test(NAME memory_mode_free_memory
COMMAND tmux-mem-cpu-load -m 1
)
add_test(NAME memory_mode_used_percentage
COMMAND tmux-mem-cpu-load -m 2
)
add_test(NAME averages_count_0
COMMAND tmux-mem-cpu-load -a 0
)
add_test(NAME averages_count_1
COMMAND tmux-mem-cpu-load -a 1
)
add_test(NAME averages_count_2
COMMAND tmux-mem-cpu-load -a 2
)
add_test(NAME averages_count_3
COMMAND tmux-mem-cpu-load -a 3
)
add_test(NAME cpu_mode_0
COMMAND tmux-mem-cpu-load --cpu-mode 0
)
add_test(NAME cpu_mode_1
COMMAND tmux-mem-cpu-load --cpu-mode 1
)
add_test(NAME cpu_mode_short_0
COMMAND tmux-mem-cpu-load -t 0
)
add_test(NAME cpu_mode_short_1
COMMAND tmux-mem-cpu-load -t 1
)
set_tests_properties(usage
invalid_status_interval
invalid_graph_lines

View file

@ -1,12 +1,15 @@
====================================================
tmux-mem-cpu-load
====================================================
----------------------------------------------------
CPU, RAM memory, and load monitor for use with tmux_
----------------------------------------------------
=============================================
tmux-mem-cpu-load
=============================================
---------------------------------------------
CPU, RAM, and load monitor for use with tmux_
---------------------------------------------
.. image:: https://travis-ci.org/thewtex/tmux-mem-cpu-load.svg
:target: https://travis-ci.org/thewtex/tmux-mem-cpu-load
.. image:: https://circleci.com/gh/thewtex/tmux-mem-cpu-load.svg?style=svg
:target: https://circleci.com/gh/thewtex/tmux-mem-cpu-load
.. image:: https://github.com/thewtex/tmux-mem-cpu-load/actions/workflows/main.yml/badge.svg
:target: https://github.com/thewtex/tmux-mem-cpu-load/actions/workflows/main.yml
Description
===========
@ -52,7 +55,7 @@ Currently, Linux, Mac OSX, FreeBSD, OpenBSD, and NetBSD are supported.
Building
~~~~~~~~
* >= CMake_ -2.6
* >= CMake_ -3.5
* C++ compiler with C++11 support (e.g. gcc/g++ >= 4.6)
Download
@ -78,6 +81,31 @@ Install
make install
logout
Build and Install Using tpm_
-----------------------------
Include the plugin in your ``.tmux.conf``, the same file you'll set the
configuration in, below.
::
set -g @plugin 'thewtex/tmux-mem-cpu-load'
Install with Package Managers
-----------------------------
* Gentoo: ``emerge tmux-mem-cpu-load``
* Homebrew: ``brew install tmux-mem-cpu-load``
* FreeBSD: ``pkg install tmux-mem-cpu-load``
Build and Install Using Antigen_
--------------------------------
Include the bundle in your ``.zshrc``
::
antigen bundle thewtex/tmux-mem-cpu-load
Configuring tmux_
=================
@ -89,6 +117,11 @@ Edit ``$HOME/.tmux.conf`` to display the program's output in *status-left* or
set -g status-left "#S #[fg=green,bg=black]#(tmux-mem-cpu-load --colors --interval 2)#[default]"
set -g status-left-length 60
If you installed using tpm, you must specify the full path to the
``tmux-mem-cpu-load`` script, like below::
set -g status-right "#[fg=green]#($TMUX_PLUGIN_MANAGER_PATH/tmux-mem-cpu-load/tmux-mem-cpu-load --colors --powerline-right --interval 2)#[default]"
Note that the *interval* argument to `tmux-mem-cpu-load` should be the same number
of seconds that *status-interval* is set at.
@ -105,13 +138,64 @@ The full usage::
Available options:
-h, --help
Prints this help message
--colors
-c, --colors
Use tmux colors in output
-p, --powerline-left
Use powerline left symbols throughout the output, enables --colors
-q, --powerline-right
Use powerline right symbols throughout the output, enables --colors
-v, --vertical-graph
Use vertical bar chart for CPU graph
-l <value>, --segments-left <value>
Enable blending bg/fg color (depending on -p or -q use) with segment to left
Provide color to be used depending on -p or -q option for seamless segment blending
Color is an integer value which uses the standard tmux color palette values
-r <value>, --segments-right <value>
Enable blending bg/fg color (depending on -p or -q use) with segment to right
Provide color to be used depending on -p or -q option for seamless segment blending
Color is an integer value which uses the standard tmux color palette values
-i <value>, --interval <value>
Set tmux status refresh interval in seconds. Default: 1 second
-g <value>, --graph-lines <value>
Set how many lines should be drawn in a graph. Default: 10
-m <value>, --mem-mode <value>
Set memory display mode. 0: Default, 1: Free memory, 2: Usage percent.
-t <value>, --cpu-mode <value>
Set cpu % display mode. 0: Default max 100%, 1: Max 100% * number of threads.
-a <value>, --averages-count <value>
Set how many load-averages should be drawn. Default: 3
Blending Dynamic Colors Tmux Powerline Segments
===============================================
The -l and -r options when used in conjunction with a recent version of Tmux Powerline
that has the ability to selectively disable spacing and separators between segments allow
for seamless blending of tmux-mem-cpu-load output with other adjacent segments. The end
result is dynamic changing of appropriate foreground and background colors as the start
and end of the tmux-mem-cpu-load output string that is aggregated with other Tmux
Powerline output to produce a more polished status line in Tmux.
Segment Adjaceny before this feature:
.. image:: seg-adj1.png
Segment Adjaceny after this feature:
.. image:: seg-adj2.png
Note that the values for the -l and -r options will be the standard Tmux integer color
values. They set the appropriate background and foreground colors used for the separator
character when used with the poweline-left or powerline-right options so it is easy to
match coloring to adjacent segments. An example from the segment script that calls
tmux-mem-cpu-load is as follows::
tmux-mem-cpu-load -q -v -l 52 -r 33
This combines with theme options available to tmux-powerline, such as the following::
"disk_usage_cust 52 123 ${TMUX_POWERLINE_SEPARATOR_LEFT_BOLD} 52 123 right_disable" \
"tmux_mem_cpu_load_cust 52 234 ${TMUX_POWERLINE_SEPARATOR_LEFT_BOLD} 52 234 both_disable separator_disable" \
"batt_cust 33 154 ${TMUX_POWERLINE_SEPARATOR_LEFT_BOLD} 16 33 N separator_disable" \
Authors
=======
@ -120,15 +204,24 @@ Matt McCormick (thewtex) <matt@mmmccormick.com>
Contributions from:
* cousine <iam@cousine.me>
* Jasper Lievisse Adriaanse <jasper@humppa.nl>
* Justin Crawford <justinc@pci-online.net>
* krieiter <krieiter@gmail.com>
* Mark Palmeri <mlp6@duke.edu>
* `Pawel 'l0ner' Soltys`_ <pwslts@gmail.com>
* Travil Heller <trav.heller@gmail.com>
* Tony Narlock <tony@git-pull.com>
* Compilenix <Compilenix@compilenix.org>
* jodavies <jodavies1010@gmail.com>
* `@nhdaly`_ (Nathan Daly) <nhdaly@gmail.com>
* bensuperpc <bensuperpc@gmail.com>
.. _tmux: http://tmux.sourceforge.net/
.. _CMake: http://www.cmake.org
.. _`project homepage`: http://github.com/thewtex/tmux-mem-cpu-load
.. _`tpm`: http://github.com/tmux-plugins/tpm
.. _`Antigen`: https://github.com/zsh-users/antigen
.. _`terminals with 256 color support`: http://misc.flogisoft.com/bash/tip_colors_and_formatting#terminals_compatibility
.. _`Pawel 'l0ner' Soltys` : http://l0ner.github.io/
.. _`@nhdaly` : http://github.com/nhdaly

6
builder/cmake.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
set -euo pipefail
source $(dirname "$0")/functions/cmake_fn.sh
cmake_build $@

11
builder/cmake_all.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile
make -f dockcross-Makefile display_images
source $(dirname "$0")/functions/cmake_fn.sh
for image in $(make -f dockcross-Makefile display_images); do
cmake_build $image $@
done

19
builder/functions/cmake_fn.sh Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash
set -euo pipefail
cmake_build () {
local image=$1
local build_file=build-${image%:*}
shift 1
local cmake_arg=$@
echo "cmake arg: $cmake_arg"
echo "Pulling dockcross/$image"
docker pull dockcross/$image
echo "Make script dockcross-$image"
docker run --rm dockcross/$image > ./dockcross-$image
chmod +x ./dockcross-$image
echo "Build $build_file"
./dockcross-$image cmake -B$build_file -H. -GNinja $cmake_arg
./dockcross-$image ninja -C$build_file
}

View file

@ -0,0 +1,15 @@
#!/bin/bash
set -euo pipefail
makefile_build () {
local image=$1
shift 1
echo "Pulling dockcross/$image"
docker pull dockcross/$image
echo "Make script dockcross-$image"
docker run --rm dockcross/$image > ./dockcross-$image
chmod +x ./dockcross-$image
echo "Build..."
./dockcross-$image bash -c 'make CXX=$CXX CC=$CC AR=$AR AS=$AS CPP=$CPP FC=$FC'
}

6
builder/makefile.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
set -euo pipefail
source $(dirname "$0")/functions/makefile_fn.sh
makefile_build $@

11
builder/makefile_all.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile
make -f dockcross-Makefile display_images
source $(dirname "$0")/functions/makefile_fn.sh
for image in $(make -f dockcross-Makefile display_images); do
makefile_build $image $@
done

View file

@ -16,7 +16,10 @@
* limitations under the License.
*/
enum
#ifndef CONVERSIONS_H_
#define CONVERSIONS_H_
enum BYTE_UNITS
{
BYTES = 0,
KILOBYTES = 1,
@ -33,3 +36,5 @@ inline T convert_unit( T num, int to, int from = BYTES)
}
return num;
}
#endif

View file

@ -19,6 +19,7 @@
#ifndef CPU_H_
#define CPU_H_
#include <cstdint>
#include <sys/types.h>
#if defined(__APPLE__) && defined(__MACH__)
@ -27,12 +28,15 @@
#define CP_IDLE 2
#define CP_NICE 3
#define CP_STATES 4
#elif defined(__OpenBSD__)
#include <sys/sched.h>
#define CP_STATES CPUSTATES
#else
#define CP_USER 0
#define CP_NICE 1
#define CP_SYS 2
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
#if defined(__FreeBSD__) || defined(__NetBSD__)
// *BSD or OSX
#define CP_INTR 3
#define CP_IDLE 4
@ -45,6 +49,19 @@
#endif
float cpu_percentage( unsigned );
uint8_t get_cpu_count();
uint32_t get_cpu_count();
/** CPU percentage output mode.
*
* Examples:
*
* CPU_MODE_DEFAULT: 100%
* CPU_MODE_THREADS: 800% (8 cores, fully loaded)
*/
enum CPU_MODE
{
CPU_MODE_DEFAULT,
CPU_MODE_THREADS
};
#endif

View file

@ -18,10 +18,11 @@
#include <string>
#include <cstring>
#include <map>
#include "graph.h"
std::string get_graph_by_percentage( unsigned value, unsigned len )
std::string get_graph_by_percentage( unsigned value, unsigned len )
{
unsigned step = 0;
std::string bars;
@ -60,3 +61,20 @@ std::string get_graph_by_value( unsigned value, unsigned max, unsigned len )
return bars;
}
std::string get_graph_vert( unsigned value )
{
static const std::map<unsigned, std::string> graph_chars = {
{ 0, " " }, { 10, "" }, { 20, "" }, { 30, "" }, { 40, "" },
{ 50, "" }, { 60, "" }, { 70, "" }, { 80, "" }, { 90, "" }
};
for( auto it = graph_chars.rbegin(); it != graph_chars.rend(); ++it )
{
if( value >= it->first )
{
return it->second;
}
}
return " "; // default return in case value doesn't match map options
}

View file

@ -23,5 +23,6 @@
std::string get_graph_by_percentage( unsigned, unsigned len = 10 );
std::string get_graph_by_value( unsigned, unsigned, unsigned len = 10 );
std::string get_graph_vert( unsigned );
#endif

View file

@ -3,6 +3,7 @@
* Copyright 2012 Matthew McCormick
* Copyright 2013 Justin Crawford <Justasic@gmail.com>
* Copyright 2015 Pawel 'l0ner' Soltys
* Copyright 2016 Compilenix
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -25,45 +26,68 @@
#include <stdlib.h> // getloadavg()
#include <cmath> // floorf()
#include <sys/types.h>
#include <stdio.h>
#include "cpu.h"
#include "load.h"
#include "luts.h"
#include "powerline.h"
// Load Averages
std::string load_string( bool use_colors = false )
std::string load_string( bool use_colors,
bool use_powerline_left, bool use_powerline_right, short num_averages,
bool segments_to_right, short right_color )
{
std::stringstream ss;
// Get only 3 load averages
const int nelem = 3;
double averages[nelem];
std::ostringstream ss;
ss.setf( std::ios::fixed, std::ios::floatfield );
ss.precision( 2 );
if( num_averages <= 0 || num_averages > 3)
{
ss << (char) 0;
return ss.str();
}
double averages[3];
// based on: opensource.apple.com/source/Libc/Libc-262/gen/getloadavg.c
if( getloadavg( averages, nelem ) < 0 )
if( getloadavg( averages, num_averages ) < 0 )
{
ss << " 0.00 0.00 0.00"; // couldn't get averages.
}
else
{
unsigned load_percent = static_cast<unsigned int>( averages[0] /
get_cpu_count() * 0.5f * 100.0f );
if( load_percent > 100 )
{
load_percent = 100;
}
if( use_colors )
{
unsigned load_percent = static_cast<unsigned int>( averages[0] /
get_cpu_count() * 0.5f * 100.0f );
if( load_percent > 100 )
if( use_powerline_right )
{
load_percent = 100;
powerline( ss, load_lut[load_percent], POWERLINE_RIGHT );
}
else if( use_powerline_left )
{
powerline( ss, load_lut[load_percent], POWERLINE_LEFT );
}
else
{
powerline( ss, load_lut[load_percent], NONE );
}
ss << load_lut[load_percent];
}
ss << ' ';
for( int i = 0; i < nelem; ++i )
for( int i = 0; i < num_averages; ++i )
{
// Round to nearest, make sure this is only a 0.00 value not a 0.0000
float avg = floorf( static_cast<float>( averages[i] ) * 100 + 0.5 ) / 100;
// Don't print trailing whitespace for last element
if ( i == nelem-1 )
if ( i == num_averages-1 )
{
ss << avg;
}
@ -75,7 +99,24 @@ std::string load_string( bool use_colors = false )
if( use_colors )
{
ss << "#[fg=default,bg=default]";
if( use_powerline_left && segments_to_right )
{
powerline( ss, load_lut[load_percent], POWERLINE_LEFT, true );
powerline_char( ss, load_lut[load_percent], right_color, POWERLINE_LEFT, true );
}
else if( use_powerline_left && !segments_to_right )
{
powerline( ss, load_lut[load_percent], POWERLINE_LEFT, true );
powerline( ss, "#[fg=default,bg=default]", POWERLINE_LEFT );
}
else if( !use_powerline_right )
{
ss << "#[fg=default,bg=default]";
}
else if ( segments_to_right && use_powerline_right )
{
powerline_char( ss, load_lut[load_percent], right_color, POWERLINE_RIGHT, true );
}
}
}

View file

@ -2,6 +2,7 @@
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
* Copyright 2016 Compilenix
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -21,6 +22,9 @@
#include <string>
std::string load_string( bool );
std::string load_string( bool use_colors = false,
bool use_powerline_left = false, bool use_powerline_right = false,
short num_averages = 3, bool segments_to_right = false,
short right_color = 0 );
#endif

View file

@ -5,8 +5,74 @@ static const char cpu_percentage_lut[][32] = {
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour52]",
"#[fg=brightwhite,bg=colour52]",
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour16]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour17]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour18]",
"#[fg=brightwhite,bg=colour19]",
"#[fg=brightwhite,bg=colour19]",
"#[fg=brightwhite,bg=colour19]",
"#[fg=brightwhite,bg=colour19]",
"#[fg=brightwhite,bg=colour19]",
"#[fg=brightwhite,bg=colour19]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour20]",
"#[fg=brightwhite,bg=colour21]",
"#[fg=brightwhite,bg=colour21]",
"#[fg=brightwhite,bg=colour21]",
"#[fg=brightwhite,bg=colour21]",
"#[fg=brightwhite,bg=colour21]",
"#[fg=brightwhite,bg=colour21]",
"#[fg=brightwhite,bg=colour57]",
"#[fg=brightwhite,bg=colour57]",
"#[fg=brightwhite,bg=colour57]",
"#[fg=brightwhite,bg=colour57]",
"#[fg=brightwhite,bg=colour57]",
"#[fg=brightwhite,bg=colour57]",
"#[fg=brightwhite,bg=colour56]",
"#[fg=brightwhite,bg=colour56]",
"#[fg=brightwhite,bg=colour56]",
"#[fg=brightwhite,bg=colour56]",
"#[fg=brightwhite,bg=colour56]",
"#[fg=brightwhite,bg=colour56]",
"#[fg=brightwhite,bg=colour55]",
"#[fg=brightwhite,bg=colour55]",
"#[fg=brightwhite,bg=colour55]",
"#[fg=brightwhite,bg=colour55]",
"#[fg=brightwhite,bg=colour55]",
"#[fg=brightwhite,bg=colour55]",
"#[fg=brightwhite,bg=colour54]",
"#[fg=brightwhite,bg=colour54]",
"#[fg=brightwhite,bg=colour54]",
"#[fg=brightwhite,bg=colour54]",
"#[fg=brightwhite,bg=colour54]",
"#[fg=brightwhite,bg=colour54]",
"#[fg=brightwhite,bg=colour53]",
"#[fg=brightwhite,bg=colour53]",
"#[fg=brightwhite,bg=colour53]",
"#[fg=brightwhite,bg=colour53]",
"#[fg=brightwhite,bg=colour53]",
"#[fg=brightwhite,bg=colour53]",
"#[fg=brightwhite,bg=colour52]",
"#[fg=brightwhite,bg=colour52]",
"#[fg=brightwhite,bg=colour52]",
@ -19,16 +85,12 @@ static const char cpu_percentage_lut[][32] = {
"#[fg=brightwhite,bg=colour88]",
"#[fg=brightwhite,bg=colour88]",
"#[fg=brightwhite,bg=colour88]",
"#[fg=brightwhite,bg=colour88]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour124]",
"#[fg=brightwhite,bg=colour160]",
"#[fg=brightwhite,bg=colour160]",
"#[fg=brightwhite,bg=colour160]",
"#[fg=brightwhite,bg=colour160]",
"#[fg=brightwhite,bg=colour160]",
@ -40,69 +102,7 @@ static const char cpu_percentage_lut[][32] = {
"#[fg=brightwhite,bg=colour196]",
"#[fg=brightwhite,bg=colour196]",
"#[fg=brightwhite,bg=colour196]",
"#[fg=brightwhite,bg=colour196]",
"#[fg=brightwhite,bg=colour196]",
"#[fg=brightwhite,bg=colour196]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour202]",
"#[fg=brightwhite,bg=colour208]",
"#[fg=black,bg=colour208]",
"#[fg=black,bg=colour208]",
"#[fg=black,bg=colour208]",
"#[fg=black,bg=colour208]",
"#[fg=black,bg=colour208]",
"#[fg=black,bg=colour208]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour214]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour220]",
"#[fg=black,bg=colour226]",
"#[fg=black,bg=colour226]",
"#[fg=black,bg=colour226]",
"#[fg=black,bg=colour226]",
"#[fg=black,bg=colour226]",
"#[fg=black,bg=colour226]",
"#[fg=black,bg=colour227]",
"#[fg=black,bg=colour227]",
"#[fg=black,bg=colour227]",
"#[fg=black,bg=colour227]",
"#[fg=black,bg=colour227]",
"#[fg=black,bg=colour227]",
"#[fg=black,bg=colour228]",
"#[fg=black,bg=colour228]",
"#[fg=black,bg=colour228]",
"#[fg=black,bg=colour228]",
"#[fg=black,bg=colour228]",
"#[fg=black,bg=colour229]",
"#[fg=black,bg=colour229]",
"#[fg=black,bg=colour229]",
"#[fg=black,bg=colour229]",
"#[fg=black,bg=colour229]",
"#[fg=black,bg=colour230]",
"#[fg=black,bg=colour230]",
"#[fg=black,bg=colour230]",
"#[fg=black,bg=colour230]",
"#[fg=black,bg=colour230]",
"#[fg=black,bg=colour231]",
"#[fg=black,bg=colour231]",
"#[fg=black,bg=colour231]"
"#[fg=brightwhite,bg=colour196]"
}; // end cpu_percentage_lut
static const char mem_lut[][32] = {

View file

@ -33,11 +33,15 @@
#include "memory.h"
#include "load.h"
std::string cpu_string( unsigned int cpu_usage_delay, unsigned int graph_lines,
bool use_colors = false )
#include "powerline.h"
std::string cpu_string( CPU_MODE cpu_mode, unsigned int cpu_usage_delay, unsigned int graph_lines,
bool use_colors = false,
bool use_powerline_left = false, bool use_powerline_right = false, bool use_vert_graph = false)
{
float percentage;
float multiplier = 1.0f;
//output stuff
std::ostringstream oss;
@ -47,23 +51,63 @@ std::string cpu_string( unsigned int cpu_usage_delay, unsigned int graph_lines,
// get %
percentage = cpu_percentage( cpu_usage_delay );
if( use_colors )
// set multiplier to number of threads ?
if ( cpu_mode == CPU_MODE_THREADS )
{
oss << cpu_percentage_lut[static_cast<unsigned int>( percentage )];
multiplier = get_cpu_count();
}
if( graph_lines > 0)
// if percentage*multiplier >= 100, remove decimal point to keep number short
if ( percentage*multiplier >= 100.0f )
{
oss.precision( 0 );
}
unsigned int percent = static_cast<unsigned int>( percentage );
if( use_colors )
{
if( use_powerline_right )
{
powerline( oss, cpu_percentage_lut[percent], POWERLINE_RIGHT );
}
else if( use_powerline_left )
{
powerline( oss, cpu_percentage_lut[percent], POWERLINE_LEFT );
}
else
{
powerline( oss, cpu_percentage_lut[percent], NONE );
}
}
if( use_vert_graph )
{
oss << "";
oss << get_graph_vert( unsigned( percentage ) );
oss << "";
}
else if( graph_lines > 0)
{
oss << " [";
oss << get_graph_by_percentage( unsigned( percentage ), graph_lines );
oss << "]";
}
oss.width( 5 );
oss << percentage;
oss.width( 6 );
oss.setf( std::ios::fixed, std::ios::floatfield );
oss.precision( 1 );
oss.fill( ' ' );
oss << std::right << percentage * multiplier;
oss << "%";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
if( use_powerline_left )
{
powerline( oss, cpu_percentage_lut[percent], POWERLINE_LEFT, true );
}
else if( !use_powerline_right )
{
oss << "#[fg=default,bg=default]";
}
}
return oss.str();
@ -79,20 +123,50 @@ void print_help()
<< "Available options:\n"
<< "-h, --help\n"
<< "\t Prints this help message\n"
<< "--colors\n"
<< "-c, --colors\n"
<< "\tUse tmux colors in output\n"
<< "-p, --powerline-left\n"
<< "\tUse powerline left symbols throughout the output, enables --colors\n"
<< "-q, --powerline-right\n"
<< "\tUse powerline right symbols throughout the output, enables --colors\n"
<< "-v, --vertical-graph\n"
<< "\tUse vertical bar chart for CPU graph\n"
<< "-l <value>, --segments-left <value>\n"
<< "\tEnable blending bg/fg color (depending on -p or -q use) with segment to left\n"
<< "\tProvide color to be used depending on -p or -q option for seamless segment blending\n"
<< "\tColor is an integer value which uses the standard tmux color palette values\n"
<< "-r <value>, --segments-right <value>\n"
<< "\tEnable blending bg/fg color (depending on -p or -q use) with segment to right\n"
<< "\tProvide color to be used depending on -p or -q option for seamless segment blending\n"
<< "\tColor is an integer value which uses the standard tmux color palette values\n"
<< "-i <value>, --interval <value>\n"
<< "\tSet tmux status refresh interval in seconds. Default: 1 second\n"
<< "-g <value>, --graph-lines <value>\n"
<< "\tSet how many lines should be drawn in a graph. Default: 10\n"
<< "-m <value>, --mem-mode <value>\n"
<< "\tSet memory display mode. 0: Default, 1: Free memory, 2: Usage percent.\n"
<< "-t <value>, --cpu-mode <value>\n"
<< "\tSet cpu % display mode. 0: Default max 100%, 1: Max 100% * number of threads. \n"
<< "-a <value>, --averages-count <value>\n"
<< "\tSet how many load-averages should be drawn. Default: 3\n"
<< endl;
}
int main( int argc, char** argv )
{
unsigned cpu_usage_delay = 990000;
short averages_count = 3;
short graph_lines = 10; // max 32767 should be enough
short left_color = 0;
short right_color = 0;
bool use_colors = false;
bool use_powerline_left = false;
bool use_powerline_right = false;
bool use_vert_graph = false;
bool segments_to_left = false;
bool segments_to_right= false;
MEMORY_MODE mem_mode = MEMORY_MODE_DEFAULT;
CPU_MODE cpu_mode = CPU_MODE_DEFAULT;
static struct option long_options[] =
{
@ -102,14 +176,22 @@ int main( int argc, char** argv )
// otherwise it's a value to set the variable *flag points to
{ "help", no_argument, NULL, 'h' },
{ "colors", no_argument, NULL, 'c' },
{ "powerline-left", no_argument, NULL, 'p' },
{ "powerline-right", no_argument, NULL, 'q' },
{ "vertical-graph", no_argument, NULL, 'v' },
{ "interval", required_argument, NULL, 'i' },
{ "graph-lines", required_argument, NULL, 'g' },
{ "mem-mode", required_argument, NULL, 'm' },
{ "cpu-mode", required_argument, NULL, 't' },
{ "averages-count", required_argument, NULL, 'a' },
{ "segments-left", required_argument, NULL, 'l' },
{ "segments-right", required_argument, NULL, 'r' },
{ 0, 0, 0, 0 } // used to handle unknown long options
};
int c;
// while c != -1
while( (c = getopt_long( argc, argv, "hi:g:", long_options, NULL) ) != -1 )
while( (c = getopt_long( argc, argv, "hi:cpqvl:r:g:m:a:t:", long_options, NULL) ) != -1 )
{
switch( c )
{
@ -120,6 +202,35 @@ int main( int argc, char** argv )
case 'c': // --colors
use_colors = true;
break;
case 'p': // --powerline-left
use_colors = true;
use_powerline_left = true;
break;
case 'q': // --powerline-right
use_colors = true;
use_powerline_right = true;
break;
case 'v': // --vertical-graph
use_vert_graph = true;
break;
case 'l': // --segments-left
segments_to_left = true;
if( atoi( optarg ) < 0 || atoi( optarg ) > 255 )
{
std::cerr << "Valid color vaues are from 0 to 255.\n";
return EXIT_FAILURE;
}
left_color = atoi( optarg ) ;
break;
case 'r': // --segments-right
segments_to_right= true;
if( atoi( optarg ) < 0 || atoi( optarg ) > 255 )
{
std::cerr << "Valid color vaues are from 0 to 255.\n";
return EXIT_FAILURE;
}
right_color = atoi( optarg ) ;
break;
case 'i': // --interval, -i
if( atoi( optarg ) < 1 )
{
@ -136,6 +247,30 @@ int main( int argc, char** argv )
}
graph_lines = atoi( optarg );
break;
case 'm': // --mem-mode, -m
if( atoi( optarg ) < 0 )
{
std::cerr << "Memory mode argument must be zero or greater.\n";
return EXIT_FAILURE;
}
mem_mode = static_cast< MEMORY_MODE >( atoi( optarg ) );
break;
case 't': // --cpu-mode, -t
if( atoi( optarg ) < 0 )
{
std::cerr << "CPU mode argument must be zero or greater.\n";
return EXIT_FAILURE;
}
cpu_mode = static_cast< CPU_MODE >( atoi( optarg ) );
break;
case 'a': // --averages-count, -a
if( atoi( optarg ) < 0 || atoi( optarg ) > 3 )
{
std::cerr << "Valid averages-count arguments are: 0, 1, 2, 3\n";
return EXIT_FAILURE;
}
averages_count = atoi( optarg );
break;
case '?':
// getopt_long prints error message automatically
return EXIT_FAILURE;
@ -154,9 +289,13 @@ int main( int argc, char** argv )
return EXIT_FAILURE;
}
std::cout << mem_string( use_colors )
<< cpu_string( cpu_usage_delay, graph_lines, use_colors )
<< load_string( use_colors );
MemoryStatus memory_status;
mem_status( memory_status );
std::cout << mem_string( memory_status, mem_mode, use_colors, use_powerline_left, use_powerline_right, segments_to_left, left_color )
<< cpu_string( cpu_mode, cpu_usage_delay, graph_lines, use_colors, use_powerline_left, use_powerline_right, use_vert_graph )
<< load_string( use_colors, use_powerline_left, use_powerline_right, averages_count, segments_to_right, right_color );
std::cout << std::endl;
return EXIT_SUCCESS;
}

122
common/memory.cc Normal file
View file

@ -0,0 +1,122 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <sstream>
#include <string>
#include "memory.h"
#include "luts.h"
#include "conversions.h"
#include "powerline.h"
std::string mem_string( const MemoryStatus & mem_status,
MEMORY_MODE mode,
bool use_colors,
bool use_powerline_left,
bool use_powerline_right,
bool segments_to_left,
short left_color )
{
std::ostringstream oss;
// Change the percision for floats, for a pretty output
oss.precision( 2 );
oss.setf( std::ios::fixed | std::ios::right );
unsigned int color = static_cast< unsigned int >((100 * mem_status.used_mem) / mem_status.total_mem);
if( use_colors )
{
if( use_powerline_right && segments_to_left )
{
powerline_char( oss, mem_lut[color], left_color, POWERLINE_RIGHT, false);
oss << ' ';
}
else if( use_powerline_right && !segments_to_left )
{
oss << "#[bg=default]";
powerline( oss, mem_lut[color], POWERLINE_RIGHT );
oss << ' ';
}
else if( use_powerline_left && segments_to_left )
{
powerline_char( oss, mem_lut[color], left_color, POWERLINE_LEFT, false);
oss << ' ';
}
else if( use_powerline_left )
{
//powerline( oss, mem_lut[color], POWERLINE_LEFT );
// We do not know how to invert the default background color
powerline( oss, mem_lut[color], NONE );
oss << ' ';
}
else
{
powerline( oss, mem_lut[color], NONE );
}
}
switch( mode )
{
case MEMORY_MODE_FREE_MEMORY: // Show free memory in MB or GB
{
const float free_mem = mem_status.total_mem - mem_status.used_mem;
const float free_mem_in_gigabytes = convert_unit( free_mem, GIGABYTES, MEGABYTES );
// if free memory is less than 1 GB, use MB instead
if( free_mem_in_gigabytes < 1.0f )
{
oss << free_mem << "MB";
}
else
{
oss << free_mem_in_gigabytes << "GB";
}
break;
}
case MEMORY_MODE_USAGE_PERCENTAGE:
{
// Calculate the percentage of used memory
const float percentage_mem = mem_status.used_mem /
static_cast<float>( mem_status.total_mem ) * 100.0;
oss << percentage_mem << '%';
break;
}
default: // Default mode, just show the used/total memory in MB
if(mem_status.used_mem>10000 && mem_status.total_mem>10000)
oss<<static_cast<unsigned int>(mem_status.used_mem/1024)<<"/"<<static_cast<unsigned int>(mem_status.total_mem/1024)<<"GB";
else if(mem_status.used_mem<10000 && mem_status.total_mem>10000)
oss<<static_cast<unsigned int>(mem_status.used_mem)<<"MB/"<<static_cast<unsigned int>(mem_status.total_mem/1024)<<"GB";
else
oss<<static_cast<unsigned int>(mem_status.used_mem)<<"/"<<static_cast<unsigned int>(mem_status.total_mem)<<"MB";
}
if( use_colors )
{
if( use_powerline_left )
{
powerline( oss, mem_lut[color], POWERLINE_LEFT, true );
}
else if( !use_powerline_right )
{
oss << "#[fg=default,bg=default]";
}
}
return oss.str();
}

View file

@ -21,6 +21,38 @@
#include <string>
std::string mem_string( bool );
/** Memory status in megabytes */
struct MemoryStatus
{
float used_mem;
float total_mem;
};
/** Get the current memory status */
void mem_status( MemoryStatus & status );
/** Memory status string output mode.
*
* Examples:
*
* MEMORY_MODE_DEFAULT: 11156/16003MB
* MEMORY_MODE_FREE_MEMORY:
* MEMORY_MODE_USAGE_PERCENTAGE:
*/
enum MEMORY_MODE
{
MEMORY_MODE_DEFAULT,
MEMORY_MODE_FREE_MEMORY,
MEMORY_MODE_USAGE_PERCENTAGE
};
std::string mem_string( const MemoryStatus & mem_status,
MEMORY_MODE mode = MEMORY_MODE_DEFAULT,
bool use_colors = false,
bool use_powerline_left = false,
bool use_powerline_right = false,
bool segments_to_left = false,
short left_color = 0 );
#endif

102
common/powerline.cc Normal file
View file

@ -0,0 +1,102 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2016 Michał Goliński
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "powerline.h"
#include <string>
#include <cstring>
#include <sstream>
#define PWL_LEFT_FILLED ""
#define PWL_RIGHT_FILLED ""
const char * bg2fg( const char s[] )
{
static char buf[40] = {0};
const char *substr = strchr(s, ',');
buf[0] = '#';
buf[1] = '[';
buf[2] = 'f';
strcpy(buf+3, substr+2);
return buf;
}
void powerline( std::ostringstream & oss, const char color[],
POWERLINE_DIRECTION direction, bool background_only )
{
switch( direction )
{
case NONE:
oss << color;
break;
case POWERLINE_LEFT:
if( background_only )
{
oss << ' ' << bg2fg( color );
}
else
{
std::string colorstr( color );
oss << "#[" << colorstr.substr( colorstr.find( "," ) + 1 )
<< PWL_LEFT_FILLED
<< color;
}
break;
case POWERLINE_RIGHT:
oss << ' '
<< bg2fg( color )
<< PWL_RIGHT_FILLED
<< color;
break;
};
}
void powerline_char( std::ostringstream & oss, const char dynamic_color[],
short static_color, POWERLINE_DIRECTION direction, bool eol )
{
char write_color[7];
sprintf(write_color, "%d", static_color);
switch( direction )
{
case NONE:
break;
case POWERLINE_LEFT:
if ( eol )
{
oss << bg2fg( dynamic_color ) << "#[bg=colour" << write_color << "]";
}
else
{
oss << dynamic_color << "#[fg=colour" << write_color << "]";
}
oss << PWL_LEFT_FILLED << dynamic_color;
break;
case POWERLINE_RIGHT:
if ( eol )
{
oss << dynamic_color << "#[fg=colour" << write_color << "] ";
}
else
{
oss << bg2fg(dynamic_color) << " #[bg=colour" << write_color << "]";
}
oss << PWL_RIGHT_FILLED << dynamic_color;
break;
}
}

40
common/powerline.h Normal file
View file

@ -0,0 +1,40 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2016 Michał Goliński
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef POWERLINE_H
#define POWERLINE_H
#include <sstream>
enum POWERLINE_DIRECTION
{
NONE,
POWERLINE_LEFT,
POWERLINE_RIGHT
};
/** Print out a powerline left character inverted version of the given
* color. In the case of of using powerline left, the background color needs
* to be inverted to the foreground before the powerline character is printed
* in the next entr. */
void powerline( std::ostringstream & oss, const char color[],
POWERLINE_DIRECTION direction, bool background_only = false );
void powerline_char( std::ostringstream & oss, const char dynamic_color[],
short static_color, POWERLINE_DIRECTION direction, bool eol = false );
#endif // POWERLINE_H

View file

@ -26,12 +26,12 @@
#include "getsysctl.h"
#include "cpu.h"
uint8_t get_cpu_count()
uint32_t get_cpu_count()
{
int32_t cpu_count = 0;
GETSYSCTL( "hw.ncpu", cpu_count );
return static_cast<uint8_t>( cpu_count );
return static_cast<uint32_t>( cpu_count );
}
float cpu_percentage( unsigned int cpu_usage_delay )

View file

@ -22,13 +22,13 @@
#include <sstream>
#include <string>
#include <sys/types.h>
#include <unistd.h>
#include "getsysctl.h"
#include "memory.h"
#include "luts.h"
#include "conversions.h"
std::string mem_string( bool use_colors = false )
void mem_status( MemoryStatus & status )
{
// These values are in bytes
//u_int total;
@ -39,13 +39,12 @@ std::string mem_string( bool use_colors = false )
u_int active;
u_int page_size;
u_int page_count;
std::ostringstream oss;
// Get total physical memory, page size, and some other needed info
// instead of using realmem which reports quantity of ram installed on
// platform, use physmem which reports ram available to system.
//GETSYSCTL( "hw.physmem", total );
GETSYSCTL( "hw.pagesize", page_size );
page_size = getpagesize();
// page count reflects actual size of memory we have available for
// applications. it will be less than realmem or physmem, since it doesn't
// include what's been allocated for kernel, but it will be equal to
@ -64,20 +63,8 @@ std::string mem_string( bool use_colors = false )
//u_int unused = ( cache + inactive + free ) * page_size;
// Used memory on FreeBSD is active + wired.
u_int used = ( active + wired ) * page_size;
u_int used = ( active + wired );
if( use_colors )
{
oss << mem_lut[ ( 100 * used ) / ( page_count * page_size ) ];
}
oss << convert_unit( used, MEGABYTES ) << '/'
<< convert_unit( page_count * page_size, MEGABYTES ) << "MB";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
}
return oss.str();
status.used_mem = convert_unit( static_cast< float >( used * (page_size >> 10) ), MEGABYTES, KILOBYTES );
status.total_mem = convert_unit( static_cast< float >( page_count * (page_size >> 10) ), MEGABYTES, KILOBYTES);
}

View file

@ -23,7 +23,7 @@
#include "cpu.h"
#include "luts.h"
uint8_t get_cpu_count()
uint32_t get_cpu_count()
{
return sysconf( _SC_NPROCESSORS_ONLN );
}

View file

@ -21,31 +21,26 @@
#include <sys/sysinfo.h>
#include "memory.h"
#include "luts.h"
#include "conversions.h"
std::string mem_string( bool use_colors = false )
void mem_status( MemoryStatus & status )
{
using std::string;
using std::ifstream;
using std::stoi;
std::ostringstream oss;
string line, substr;
std::string line;
std::string substr;
size_t substr_start;
size_t substr_len;
unsigned int total_mem, used_mem;
unsigned int total_mem;
unsigned int used_mem;
/* Since linux uses some RAM for disk caching, the actuall used ram is lower
* than what sysinfo(), top or free reports. htop reports the usage in a
/* Since linux uses some RAM for disk caching, the actuall used ram is lower
* than what sysinfo(), top or free reports. htop reports the usage in a
* correct way. The memory used for caching doesn't count as used, since it
* can be freed in any moment. Usually it hapens automatically, when an
* application requests memory.
* In order to calculate the ram that's actually used we need to use the
* In order to calculate the ram that's actually used we need to use the
* following formula:
* total_ram - free_ram - buffered_ram - cached_ram
* total_ram + shmem - free_ram - buffered_ram - cached_ram - srclaimable
*
* example data, junk removed, with comments added:
*
@ -59,9 +54,9 @@ std::string mem_string( bool use_colors = false )
* SwapFree: 60352 kB old
*/
ifstream memory_info("/proc/meminfo");
std::ifstream memory_info("/proc/meminfo");
while( getline( memory_info, line ) )
while( std::getline( memory_info, line ) )
{
substr_start = 0;
substr_len = line.find_first_of( ':' );
@ -71,35 +66,28 @@ std::string mem_string( bool use_colors = false )
if( substr.compare( "MemTotal" ) == 0 )
{
// get total memory
total_mem = stoi( line.substr( substr_start, substr_len ) );
total_mem = stol( line.substr( substr_start, substr_len ) );
}
else if( substr.compare( "MemFree" ) == 0 )
{
used_mem = total_mem - stoi( line.substr( substr_start, substr_len ) );
used_mem = total_mem - stol( line.substr( substr_start, substr_len ) );
}
else if( substr.compare( "Shmem" ) == 0 )
{
used_mem += stol( line.substr( substr_start, substr_len ) );
}
else if( substr.compare( "Buffers" ) == 0 ||
substr.compare( "Cached" ) == 0 )
substr.compare( "Cached" ) == 0 ||
substr.compare( "SReclaimable" ) == 0 )
{
used_mem -= stoi( line.substr( substr_start, substr_len ) );
used_mem -= stol( line.substr( substr_start, substr_len ) );
}
}
if( use_colors )
{
oss << mem_lut[(100 * used_mem) / total_mem];
}
// we want megabytes on output, but since the values already come as
// we want megabytes on output, but since the values already come as
// kilobytes we need to divide them by 1024 only once, thus we use
// KILOBYTES
oss << convert_unit(used_mem, MEGABYTES, KILOBYTES) << '/'
<< convert_unit(total_mem, MEGABYTES, KILOBYTES) << "MB";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
}
return oss.str();
status.used_mem = convert_unit(static_cast< float >( used_mem ), MEGABYTES, KILOBYTES);
status.total_mem = convert_unit(static_cast< float >( total_mem ), MEGABYTES, KILOBYTES);
}

View file

@ -26,12 +26,12 @@
#include "getsysctl.h"
#include "cpu.h"
uint8_t get_cpu_count()
uint32_t get_cpu_count()
{
int cpu_count = 0;
GETSYSCTL( "hw.ncpu", cpu_count );
return static_cast<uint8_t>( cpu_count );
return static_cast<uint32_t>( cpu_count );
}
float cpu_percentage( unsigned int cpu_usage_delay )

View file

@ -24,14 +24,11 @@
#include <uvm/uvm_extern.h> // uvmexp struct
#include "error.h"
#include "luts.h"
#include "conversions.h"
#include "memory.h"
std::string mem_string( bool use_colors = false )
void mem_status( MemoryStatus & status )
{
std::ostringstream oss;
// get vm memory stats
static int vm_totalmem[] = { CTL_VM, VM_UVMEXP2 };
struct uvmexp_sysctl mem;
@ -42,23 +39,10 @@ std::string mem_string( bool use_colors = false )
}
int64_t total_mem = ( mem.npages << mem.pageshift );
int64_t used_mem =
int64_t used_mem =
( mem.active + mem.wired - mem.filepages ) << mem.pageshift;
if( use_colors )
{
oss << mem_lut[( 100 * used_mem ) / total_mem];
}
// add 1 to used which gets lost somewhere along conversions
oss << convert_unit( used_mem, MEGABYTES )
<< '/' << convert_unit( total_mem, MEGABYTES ) << "MB";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
}
return oss.str();
status.used_mem = convert_unit(static_cast< float >( used_mem ), MEGABYTES );
status.total_mem = convert_unit(static_cast< float >( total_mem ), MEGABYTES );
}

View file

@ -24,10 +24,10 @@
#include "error.h"
#include "cpu.h"
uint8_t get_cpu_count()
uint32_t get_cpu_count()
{
int cpu_count = 1; // default to 1
int mib[2] = { CTL_HW, HW_NCPU };
int mib[2] = { CTL_HW, HW_NCPUONLINE };
size_t len = sizeof( cpu_count );
if( sysctl( mib, 2, &cpu_count, &len, NULL, 0 ) < 0 )
@ -35,7 +35,7 @@ uint8_t get_cpu_count()
error( "sysctl: error getting cpu count" );
}
return cpu_count;
return static_cast<uint32_t>( cpu_count );
}
float cpu_percentage( unsigned int cpu_usage_delay )
@ -55,6 +55,8 @@ float cpu_percentage( unsigned int cpu_usage_delay )
usleep( cpu_usage_delay );
size = sizeof( load2 );
// update cpu times
if( sysctl( cpu_ctl, 2, &load2, &size, NULL, 0 ) < 0 )
{

View file

@ -37,20 +37,10 @@
#include "error.h"
#include "memory.h"
#include "luts.h"
#include "conversions.h"
static int pageshift;
#ifndef LOG1024
#define LOG1024 10
#endif
#define pagesh(size) ((size) << pageshift)
std::string mem_string( bool use_colors = false )
void mem_status( MemoryStatus & status )
{
std::ostringstream oss;
// These values are in bytes
int64_t total_mem = 0;
int64_t used_mem = 0;
@ -66,16 +56,6 @@ std::string mem_string( bool use_colors = false )
error( "memory: error getting page size" );
}
// calculate how far we must shift the variables
pageshift = 0;
while( page_size > 1 )
{
pageshift++;
page_size >>= 1;
}
pageshift -= LOG1024;
// get vm memory stats
static int uvmexp_mib[] = { CTL_VM, VM_UVMEXP };
struct uvmexp uvmexp;
@ -95,29 +75,16 @@ std::string mem_string( bool use_colors = false )
}
// calculations based on libgtop
used_mem = (uint64_t) pagesh (uvmexp.npages - uvmexp.free) << LOG1024;
free_mem = (uint64_t) pagesh( uvmexp.free ) << LOG1024;
used_mem = ( (uint64_t) uvmexp.npages - uvmexp.free ) << uvmexp.pageshift;
free_mem = ( (uint64_t) uvmexp.free ) << uvmexp.pageshift;
// from nagios-memory plugin
used_mem -= pagesh( bcstats.numbufpages );
free_mem += pagesh( bcstats.numbufpages );
used_mem -= ( (uint64_t) bcstats.numbufpages ) << uvmexp.pageshift;
free_mem += ( (uint64_t) bcstats.numbufpages ) << uvmexp.pageshift;
// calculate total memory
total_mem = (uint64_t) pagesh( uvmexp.npages ) << LOG1024;
total_mem = ( (uint64_t) uvmexp.npages ) << uvmexp.pageshift;
if( use_colors )
{
oss << mem_lut[( 100 * used_mem ) / total_mem];
}
oss << convert_unit( used_mem, MEGABYTES )
<< '/' << convert_unit( total_mem, MEGABYTES ) << "MB";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
}
return oss.str();
status.used_mem = convert_unit(static_cast< float >( used_mem ), MEGABYTES );
status.total_mem = convert_unit(static_cast< float >( total_mem ), MEGABYTES );
}

View file

@ -21,7 +21,7 @@
#include "cpu.h"
uint8_t get_cpu_count()
uint32_t get_cpu_count()
{
return sysconf( _SC_NPROCESSORS_ONLN );
}

View file

@ -22,20 +22,22 @@
#include <sys/sysctl.h> // for sysctl
#include "memory.h"
#include "luts.h"
#include "conversions.h"
std::string mem_string( bool use_colors )
void mem_status( MemoryStatus & status )
{
std::ostringstream oss;
// These values are in bytes
u_int64_t total_mem;
u_int64_t used_mem;
// float app_mem = 0.0f;
// float cached_file_mem = 0.0f;
float available_mem = 0.0f;
float percentage_mem;
float free_mem;
float free_mem_in_gigabytes; // used to check if free mem < 1 GB
//u_int64_t unused_mem;
vm_size_t page_size;
vm_statistics_data_t vm_stats;
vm_statistics64_data_t vm_stats; // Use 64-bit VM statistics
// Get total physical memory
int mib[] = { CTL_HW, HW_MEMSIZE };
@ -43,30 +45,21 @@ std::string mem_string( bool use_colors )
sysctl( mib, 2, &total_mem, &length, NULL, 0 );
mach_port_t mach_port = mach_host_self();
mach_msg_type_number_t count = sizeof( vm_stats ) / sizeof( natural_t );
// Use HOST_VM_INFO64_COUNT as the count for vm_statistics64_data_t
mach_msg_type_number_t count = HOST_VM_INFO64_COUNT;
if( KERN_SUCCESS == host_page_size( mach_port, &page_size ) &&
KERN_SUCCESS == host_statistics( mach_port, HOST_VM_INFO,
( host_info_t )&vm_stats, &count )
KERN_SUCCESS == host_statistics64( mach_port, HOST_VM_INFO64,
( host_info_t )&vm_stats, &count )
)
{
//unused_mem = static_cast<u_int64_t>( vm_stats.free_count * page_size );
used_mem = static_cast<u_int64_t>(
( vm_stats.active_count + vm_stats.wire_count ) * page_size);
// app_mem = static_cast<float>(( vm_stats.internal_page_count - vm_stats.purgeable_count ) * page_size );
// cached_file_mem = static_cast<float>(( vm_stats.purgeable_count + vm_stats.external_page_count ) * page_size );
available_mem = static_cast<float>(( vm_stats.free_count + vm_stats.external_page_count - vm_stats.speculative_count ) * page_size );
}
if( use_colors )
{
oss << mem_lut[( 100 * used_mem ) / total_mem];
}
oss << convert_unit( used_mem, MEGABYTES ) << '/'
<< convert_unit( total_mem, MEGABYTES ) << "MB";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
}
return oss.str();
status.used_mem = convert_unit(static_cast< float >(total_mem - available_mem ), MEGABYTES );
status.total_mem = convert_unit(static_cast< float >( total_mem ), MEGABYTES );
}

BIN
seg-adj1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
seg-adj2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

49
tmux-mem-cpu-load.plugin.tmux Executable file
View file

@ -0,0 +1,49 @@
# vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
#
# Copyright 2012 Matthew McCormick
# Copyright 2015 Pawel 'l0ner' Soltys
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# The directory where this plugin is located.
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ ! -f $CURRENT_DIR/tmux-mem-cpu-load ] && ! $(builtin type -P "tmux-mem-cpu-load" &> /dev/null) ; then
tmux run-shell "echo \"tmux-mem-cpu-load not found. Attempting to build.
\""
pushd $CURRENT_DIR #Pushd to the directory where this plugin is located.
# Attempt to rebuild the plugin and log any errors in the tmux display window.
if output=$(cmake . 2>&1); then
tmux run-shell "echo \"'cmake $CURRENT_DIR' completed successfully.
\""
else
tmux run-shell "echo \"'cmake $CURRENT_DIR' failed. Error logged below.
$output
\""
exit 1
fi
if output=$(cmake --build . 2>&1); then
tmux run-shell "echo \"tmux-mem-cpu-load built successfully.
\""
else
tmux run-shell "echo \"tmux-mem-cpu-load failed to build. Error logged below.
$output
\""
exit 1
fi
popd
fi

View file

@ -0,0 +1,25 @@
# vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
#
# Copyright 2012 Matthew McCormick
# Copyright 2015 Pawel 'l0ner' Soltys
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if [ ! -s /usr/local/bin/tmux-mem-cpu-load ];
then
pushd ${0:a:h} #Pushd to the directory where this plugin is located.
cmake .
make
sudo make install
popd
fi

53
windows/cpu.cc Normal file
View file

@ -0,0 +1,53 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <string>
#include <fstream>
#include <unistd.h> // usleep
#include <thread>
#include "TCHAR.h"
#include "pdh.h"
static PDH_HQUERY cpuQuery;
static PDH_HCOUNTER cpuTotal;
#include "cpu.h"
#include "luts.h"
uint32_t get_cpu_count()
{
return static_cast< uint32_t >( std::thread::hardware_concurrency() );
}
float cpu_percentage( unsigned cpu_usage_delay )
{
PdhOpenQuery(NULL, 0, &cpuQuery);
PdhAddCounter(cpuQuery, "\\Processor(_Total)\\% Processor Time", 0, &cpuTotal);
PdhCollectQueryData(cpuQuery);
usleep( cpu_usage_delay );
PDH_FMT_COUNTERVALUE counterVal;
PdhCollectQueryData(cpuQuery);
PdhGetFormattedCounterValue(cpuTotal, PDH_FMT_DOUBLE, NULL, &counterVal);
return static_cast< float >( counterVal.doubleValue );
}

44
windows/load.cc Normal file
View file

@ -0,0 +1,44 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2013 Justin Crawford <Justasic@gmail.com>
* Copyright 2015 Pawel 'l0ner' Soltys
* Copyright 2016 Compilenix
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Based on: github.com/freebsd/freebsd/blob/master/usr.bin/top/machine.c
// Based on: Apple.cpp for load_string/mem_string and apple's documentation
#include <sstream>
#include <string>
#include <cmath> // floorf()
#include <sys/types.h>
#include "cpu.h"
#include "load.h"
#include "luts.h"
#include "powerline.h"
// Load Averages
std::string load_string( bool use_colors,
bool use_powerline_left, bool use_powerline_right,
short num_averages )
{
// Not implemented
std::ostringstream ss;
ss << (char) 0;
return ss.str();
}

40
windows/memory.cc Normal file
View file

@ -0,0 +1,40 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <sstream>
#include <fstream>
#include "windows.h"
#include "memory.h"
#include "conversions.h"
void mem_status( MemoryStatus & status )
{
MEMORYSTATUSEX memory_status;
memory_status.dwLength = sizeof(memory_status);
GlobalMemoryStatusEx(&memory_status);
// we want megabytes on output, but since the values already come as
// kilobytes we need to divide them by 1024 only once, thus we use
// KILOBYTES
status.used_mem = convert_unit(static_cast< float >( memory_status.ullAvailPhys ), MEGABYTES, BYTES);
status.total_mem = convert_unit(static_cast< float >( memory_status.ullTotalPhys ), MEGABYTES, BYTES);
}