Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f54801b
reorganize project folders
Danil0v3s Sep 9, 2025
a36d24b
put back compilation of modules
Danil0v3s Sep 9, 2025
189165d
rm hwinfo afterburner files
Danil0v3s Sep 9, 2025
70adec4
migrate core native to kmp style
Danil0v3s Sep 9, 2025
b719f4a
fix keyboard hook
Danil0v3s Sep 9, 2025
6a22009
update compose. fix alpha composing while moving window
Danil0v3s Sep 9, 2025
0a05c82
remove check for .net runtime
Danil0v3s Sep 9, 2025
8afcbbe
reset cache
Danil0v3s Sep 9, 2025
595bba6
changes to hw monitor process manager
Danil0v3s Sep 10, 2025
5dbe136
use hw monitor as service
Danil0v3s Sep 11, 2025
1cacf08
newline
Danil0v3s Sep 11, 2025
4e12687
fix around dev mode
Danil0v3s Sep 11, 2025
dba24c8
start with windows
Danil0v3s Sep 11, 2025
8d27638
reset cache
Danil0v3s Sep 11, 2025
cbf6a18
ignore
Danil0v3s Sep 11, 2025
ac4706b
remove .exe
Danil0v3s Sep 11, 2025
e6717af
implement bi-directional pipe
Danil0v3s Sep 12, 2025
32d7c2b
send current focused process to hw monitor
Danil0v3s Sep 12, 2025
092cb25
remove size limit for fps pill
Danil0v3s Sep 12, 2025
264dd8b
fix path
Danil0v3s Sep 12, 2025
123a76a
enable animate size on parent
Danil0v3s Sep 12, 2025
2084218
fix actions
Danil0v3s Sep 12, 2025
cc16864
acl to pipes
Danil0v3s Sep 12, 2025
82042dd
track auto application on settings window
Danil0v3s Sep 13, 2025
cd65978
ai slop to try reading the current foreground app
Danil0v3s Sep 13, 2025
5082806
change to flow initializer
Danil0v3s Sep 14, 2025
0ed3ebd
change preferences to a json stored alongside the hexed
Danil0v3s Sep 14, 2025
e2d24b5
add borders to the main window
Danil0v3s Sep 14, 2025
ca29b18
remove use effect
Danil0v3s Sep 14, 2025
50aaedb
add release action
Danil0v3s Sep 14, 2025
99955d2
fix csproj after build
Danil0v3s Sep 14, 2025
c42879a
nightly
Danil0v3s Sep 21, 2025
50138e3
toggle consumption
Danil0v3s Sep 22, 2025
7ee1ca3
animated visibility
Danil0v3s Sep 22, 2025
617a0a1
check if service is created
Danil0v3s Sep 22, 2025
c3f8811
wip scale
Danil0v3s Sep 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 5 additions & 31 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle
name: Edge builds

on:
workflow_dispatch:
Expand All @@ -23,44 +23,18 @@ jobs:

steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.200'
- name: Set up JDK 21

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '22'
distribution: 'corretto'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0

- name: Build with Gradle Wrapper
run: ./gradlew :target:desktop:createDistributable
run: cd app; ./gradlew :target:desktop:createDistributable

- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: cleanmeter
path: target\desktop\build\compose\binaries\main\app

dependency-submission:

runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
- name: Set up JDK 22
uses: actions/setup-java@v4
with:
java-version: '22'
distribution: 'corretto'

# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
path: app\target\desktop\build\compose\binaries\main\app
110 changes: 110 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Nightly Release

on:
schedule:
# Run every night at 2 AM UTC
- cron: '0 2 * * *'
workflow_dispatch:

jobs:
check-changes:
name: Check for changes since last release
runs-on: ubuntu-latest
outputs:
has-changes: ${{ steps.check.outputs.has-changes }}
new-tag: ${{ steps.tag.outputs.new-tag }}

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Get latest release tag
id: latest-release
run: |
latest_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
echo "latest-tag=$latest_tag" >> $GITHUB_OUTPUT
echo "Latest release tag: $latest_tag"

- name: Check for changes since last release
id: check
run: |
latest_tag="${{ steps.latest-release.outputs.latest-tag }}"
if [ -z "$latest_tag" ]; then
echo "No previous releases found, will create first release"
echo "has-changes=true" >> $GITHUB_OUTPUT
else
# Check if there are commits since the last release
commits_since=$(git rev-list --count $latest_tag..HEAD 2>/dev/null || echo "1")
echo "Commits since last release: $commits_since"
if [ "$commits_since" -gt "0" ]; then
echo "has-changes=true" >> $GITHUB_OUTPUT
else
echo "has-changes=false" >> $GITHUB_OUTPUT
fi
fi

- name: Generate new tag
id: tag
if: steps.check.outputs.has-changes == 'true'
run: |
# Generate nightly tag with date
new_tag="nightly-$(date +%Y%m%d)"
echo "new-tag=$new_tag" >> $GITHUB_OUTPUT
echo "New tag will be: $new_tag"

build-and-release:
name: Build and create nightly release
runs-on: windows-latest
needs: check-changes
if: needs.check-changes.outputs.has-changes == 'true'
permissions:
contents: write

steps:
- uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '22'
distribution: 'corretto'

- name: Build with Gradle Wrapper
run: cd app; ./gradlew :target:desktop:createDistributable

- name: Zip distributable
run: |
cd app
Compress-Archive -Path "target/desktop/build/compose/binaries/main/app" -DestinationPath "../cleanmeter-nightly.zip"

- name: Create Release
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.check-changes.outputs.new-tag }}
release_name: Nightly Release ${{ needs.check-changes.outputs.new-tag }}
body: |
🌙 **Nightly Release** - Automatically generated from latest changes on main branch

This is an automated nightly build containing the latest changes from the main branch.

**⚠️ Note:** This is a development build and may contain unstable features.

**Installation:** Download and extract the cleanmeter-nightly.zip file.

Built from commit: ${{ github.sha }}
draft: false
prerelease: true

- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ./cleanmeter-nightly.zip
asset_name: cleanmeter-nightly.zip
asset_content_type: application/zip
37 changes: 37 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Publish

on:
workflow_dispatch:
push:
tags:
- '*'

jobs:
build:
name: Publish binaries
runs-on: windows-latest

steps:
- uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '22'
distribution: 'corretto'

- name: Build with Gradle Wrapper
run: cd app; ./gradlew :target:desktop:createDistributable

- name: Zip distributable
run: zip -r cleanmeter.zip target/desktop/build/compose/binaries/main/app

- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: cleanmeter.zip
asset_name: cleanmeter
tag: ${{ github.ref }}
overwrite: false
draft: true
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,7 @@ bin/
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
/dataSources.local.xml

!app/bin/*.bat
preferences.json
9 changes: 1 addition & 8 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions HardwareMonitor/HardwareMonitor.sln
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HardwareMonitor", "HardwareMonitor\HardwareMonitor.csproj", "{FE819E03-339E-44E6-B7A3-1C6D997126D0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HardwareMonitorTester", "HardwareMonitorTester\HardwareMonitorTester.csproj", "{574A6483-C331-496D-9F25-1350914859C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Updater", "Updater\Updater.csproj", "{A5991FC1-069F-43D7-8E8D-158D1EE8DE02}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down
41 changes: 32 additions & 9 deletions HardwareMonitor/HardwareMonitor/HardwareMonitor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,56 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ApplicationIcon>..\..\target\desktop\src\main\resources\imgs\favicon.ico</ApplicationIcon>
<ApplicationIcon>..\..\app\target\desktop\src\main\resources\imgs\favicon.ico</ApplicationIcon>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugType>none</DebugType>
<UseAppHost>true</UseAppHost>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>None</DebugType>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="LibreHardwareMonitorLib" Version="0.9.5-pre392" />
<PackageReference Include="LibreHardwareMonitorLib" Version="0.9.5-pre449"/>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0"/>
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.0"/>
<PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="9.0.0"/>
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0"/>
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0"/>
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0"/>
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0"/>
</ItemGroup>

<Target AfterTargets="AfterBuild" Name="CopyPresentMon">
<Target AfterTargets="AfterBuild" Name="CopyPresentMon" Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'True'">
<ItemGroup>
<RootFiles Include="$(ProjectDir)..\..\presentmon\*"/>
</ItemGroup>

<Copy SourceFiles="@(RootFiles)" DestinationFolder="$(TargetDir)\native"/>
<PropertyGroup>
<PresentMonDestDir Condition="'$(PublishDir)' != ''">$(PublishDir)</PresentMonDestDir>
<PresentMonDestDir Condition="'$(PresentMonDestDir)' == ''">$(TargetDir)\publish</PresentMonDestDir>
</PropertyGroup>

<Copy SourceFiles="@(RootFiles)" DestinationFolder="$(PresentMonDestDir)"/>
</Target>

<Target AfterTargets="Publish" Name="CopyNativeToBin">
<ItemGroup>
<RootFiles Include="$(TargetDir)publish\*"/>
</ItemGroup>

<PropertyGroup>
<ArchFolder Condition="'$(RuntimeIdentifier)' == 'win-x64'">win-x64</ArchFolder>
<ArchFolder Condition="'$(RuntimeIdentifier)' == 'osx-arm64'">osx-arm64</ArchFolder>
<ArchFolder Condition="'$(RuntimeIdentifier)' == 'linux-x64'">linux-x64</ArchFolder>
<ArchFolder Condition="'$(ArchFolder)' == ''">$(RuntimeIdentifier)</ArchFolder>
</PropertyGroup>

<MakeDir Directories="$(ProjectDir)..\..\app\bin\$(ArchFolder)"/>
<Copy SourceFiles="@(RootFiles)" DestinationFolder="$(ProjectDir)..\..\app\bin\$(ArchFolder)"/>
</Target>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ public enum MonitorPacketCommand : short
RefreshPresentMonApps = 1,
SelectPresentMonApp = 2,
PresentMonApps = 3,
SelectPollingRate = 4
SelectPollingRate = 4,
SetForegroundApplication = 5
}
Loading
Loading