Coder Social home page Coder Social logo

wiiznokes / fan-control Goto Github PK

View Code? Open in Web Editor NEW
126.0 2.0 10.0 1.01 MB

Control your fans with different behaviors

License: GNU General Public License v3.0

Rust 86.74% C# 7.20% Fluent 4.24% Python 0.52% Just 0.72% Shell 0.58%
fan-control fancontrol iced librehardwaremonitor libsensors linux pwm rust sensors librefancontrol

fan-control's Introduction

fan-control

Download on Flathub   Download on Github release  

Features

  • Display sensors data on real time
  • Control fans based on custom behaviors
  • Save configuration
  • Multiplatform (Linux/Windows)

screenshot of fan-control

Usage

  • You can add items with the buttons on the right of the app.
  • To save a configuration, write a name in the "Configuration name" field, and click on the +.
  • To modify the value of a fan, you must select it in a Control item (the left column), select a Behavior, and activate the switch.

Installation

Windows

  1. Install fan-control from the release section

The configuration files will be in C:\Users\wiiz\AppData\Roaming\wiiznokes\fan-control\config.

Flatpak (Linux)

  1. Install the required udev rules
  2. Install fan-control from Flathub

The configuration files will be in ~/.var/app/io.github.wiiznokes.fan-control/config/fan-control/.

To ensure the application detects the maximum number of sensors, follow these steps

  1. Install lm-sensors
    For Debian-based systems, run: sudo apt install lm-sensors
    For Fedora-based systems, run: sudo dnf install lm_sensors
  2. Run sudo sensors-detect to detect available sensors

Repo structure

  • hardware: define an abstraction around the hardware.
  • data: define structures used in the app (Node, Config), and there logic. Depend on hardware
  • ui: implement the UI. Depend on data and hardware
  • the app: integrate all this crates in one executable

Build

See instructions here.

Contributing

See CONTRIBUTING.md

fan-control's People

Contributors

dawin64 avatar dengsgo avatar dependabot[bot] avatar wiiznokes avatar wseng avatar xavantex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fan-control's Issues

Graph config serialization

serialize graph like that:

  [[Graph]]
  name = "Graph"
  input = "max"
  coord = [
      { temp = 50, percent = 30 },
      { temp = 50, percent = 30 },
      { temp = 50, percent = 30 },
  ]

error: illegal hardware instruction

Problem

Just installed it on Debian 12 LXQt and trying to run it with & without sudo but a window just flashes and that's it.

$ fan-control
[1]    39111 illegal hardware instruction  fan-control
$ sudo fan-control
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
[1]    86757 illegal hardware instruction  sudo fan-control

Tried to set the XDG_RUNTIME_DIR variable but it's still the same

export XDG_RUNTIME_DIR="/tmp/xdg"
mkdir -p /tmp/xdg; chmod 0700 /tmp/xdg

Steps

No response

Possible Solution(s)

No response

Notes

No response

Version

No response

Add AIO pump/RGB control

I’ve been waiting for this since GWE stopped being maintained, I was hoping system76 would implement something so this is awesome to see.

Would be the most perfect app ever if you could integrate AIO pump control and maybe even the led/rgb control using liquidctl? Just a suggestion!

looks amazing tho. Can’t wait to use it

[Bug?] [Windows 11 x64] Transparent no-responding main window

On Windows 11 x64 Chinese Home Edition
run commands in MSYS2-MINGW64 (but rustup from cmd env previously)
rustup show:

$ rustup show
Default host: x86_64-pc-windows-gnu
rustup home:  C:\Users\<name>\.rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc (default)

active toolchain
----------------

stable-x86_64-pc-windows-msvc (default)
rustc 1.74.0 (79e9716c9 2023-11-13)

Here's a debug RUST_LOG=info log:(DEBUG f***ed my term off by too long)

warning: E:\Document\GITHUB\fan-control\Cargo.toml: unused manifest key: profile.dev.aopt-level
warning: E:\Document\GITHUB\fan-control\Cargo.toml: unused manifest key: profile.release.aopt-level
    Finished dev [unoptimized + debuginfo] target(s) in 0.55s
     Running `target\debug\fan-control.exe`
[2023-12-07T05:41:44Z ERROR i18n_embed::requester] Unable to parse your locale: ParserError(InvalidLanguage)
[2023-12-07T05:41:44Z INFO  i18n_embed::requester] Current Locale: []
[2023-12-07T05:41:44Z ERROR i18n_embed::requester] Unable to parse your locale: ParserError(InvalidLanguage)
[2023-12-07T05:41:44Z INFO  i18n_embed::requester] Current Locale: []
[LHM] Server Started on 127.0.0.1:55555
[LHM] Client accepted!
[2023-12-07T05:41:45Z INFO  hardware::windows] check passed for 127.0.0.1:55555!
[LHM] nbControl: 0
[LHM] nbFan: 0
[LHM] nbTemp: 15
[LHM] Sending hardware
[LHM] Hardware send
[2023-12-07T05:41:47Z WARN  wgpu_hal::vulkan::instance] Unable to find layer: VK_LAYER_KHRONOS_validation
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance] Instance version: 0x4020b0
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance] Enabling debug utils
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance] Enabling device properties2
[2023-12-07T05:41:47Z WARN  wgpu_hal::dx12::instance] Unable to enable D3D12 debug interface: 0x887A002D
[2023-12-07T05:41:47Z WARN  wgpu_hal::auxil::dxgi::factory] Unable to enable DXGI debug interface: 0x887A002D
[2023-12-07T05:41:47Z INFO  wgpu_hal::gles::egl] Unable to open libEGL: Library(LoadLibraryExW { source: Os { code: 126, kind: Uncategorized, message: "找不到指定的模块。" } })
[2023-12-07T05:41:47Z INFO  iced_wgpu::window::compositor] Settings {
        present_mode: AutoVsync,
        internal_backend: Backends(
            VULKAN | GL | METAL | DX12 | DX11 | BROWSER_WEBGPU,
        ),
        default_font: Font {
            family: Name(
                "Fira Sans",
            ),
            weight: Normal,
            stretch: Normal,
            monospaced: false,
        },
        default_text_size: 14.0,
        antialiasing: Some(
            MSAAx4,
        ),
    }
[2023-12-07T05:41:47Z INFO  wgpu_core::instance] Adapter Vulkan AdapterInfo { name: "Intel(R) UHD Graphics 730", vendor: 32902, device: 18066, device_type: IntegratedGpu, driver: "Intel Corporation", driver_info: "Intel driver", backend: Vulkan }
[2023-12-07T05:41:47Z INFO  wgpu_core::instance] Adapter Vulkan AdapterInfo { name: "Intel(R) UHD Graphics 730", vendor: 32902, device: 18066, device_type: IntegratedGpu, driver: "Intel Corporation", driver_info: "Intel driver", backend: Vulkan }
[2023-12-07T05:41:47Z INFO  wgpu_core::instance] Adapter Dx12 AdapterInfo { name: "Intel(R) UHD Graphics 730", vendor: 32902, device: 18066, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Dx12 }
[2023-12-07T05:41:47Z INFO  wgpu_core::instance] Adapter Dx12 AdapterInfo { name: "Microsoft Basic Render Driver", vendor: 5140, device: 140, device_type: Cpu, driver: "", driver_info: "", backend: Dx12 }
[2023-12-07T05:41:47Z INFO  wgpu_core::instance] Adapter Dx12 AdapterInfo { name: "Intel(R) UHD Graphics 730", vendor: 32902, device: 18066, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Dx12 }
[2023-12-07T05:41:47Z INFO  iced_wgpu::window::compositor] Available adapters: [
        AdapterInfo {
            name: "Intel(R) UHD Graphics 730",
            vendor: 32902,
            device: 18066,
            device_type: IntegratedGpu,
            driver: "Intel Corporation",
            driver_info: "Intel driver",
            backend: Vulkan,
        },
        AdapterInfo {
            name: "Intel(R) UHD Graphics 730",
            vendor: 32902,
            device: 18066,
            device_type: IntegratedGpu,
            driver: "Intel Corporation",
            driver_info: "Intel driver",
            backend: Vulkan,
        },
        AdapterInfo {
            name: "Intel(R) UHD Graphics 730",
            vendor: 32902,
            device: 18066,
            device_type: IntegratedGpu,
            driver: "",
            driver_info: "",
            backend: Dx12,
        },
        AdapterInfo {
            name: "Microsoft Basic Render Driver",
            vendor: 5140,
            device: 140,
            device_type: Cpu,
            driver: "",
            driver_info: "",
            backend: Dx12,
        },
        AdapterInfo {
            name: "Intel(R) UHD Graphics 730",
            vendor: 32902,
            device: 18066,
            device_type: IntegratedGpu,
            driver: "",
            driver_info: "",
            backend: Dx12,
        },
    ]
[2023-12-07T05:41:47Z INFO  wgpu_core::instance] Adapter Vulkan AdapterInfo { name: "Intel(R) UHD Graphics 730", vendor: 32902, device: 18066, device_type: IntegratedGpu, driver: "Intel Corporation", driver_info: "Intel driver", backend: Vulkan }
[2023-12-07T05:41:47Z INFO  iced_wgpu::window::compositor] Selected: AdapterInfo {
        name: "Intel(R) UHD Graphics 730",
        vendor: 32902,
        device: 18066,
        device_type: IntegratedGpu,
        driver: "Intel Corporation",
        driver_info: "Intel driver",
        backend: Vulkan,
    }
[2023-12-07T05:41:47Z INFO  iced_wgpu::window::compositor] Selected format: Bgra8UnormSrgb
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance] GENERAL [Loader Message (0x0)]
        Inserted device layer VK_LAYER_RTSS (G:\software\RivaTuner_StatisticsServer\Vulkan\.\RTSSVkLayer64.dll)
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance]         objects: (type: INSTANCE, hndl: 0x1df95bd0080, name: ?)
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance] GENERAL [Loader Message (0x0)]
        Inserted device layer VK_LAYER_OBS_HOOK (C:\ProgramData\obs-studio-hook\.\graphics-hook64.dll)
[2023-12-07T05:41:47Z INFO  wgpu_hal::vulkan::instance]         objects: (type: INSTANCE, hndl: 0x1df95bd0080, name: ?)
[2023-12-07T05:41:47Z WARN  fontdb] Failed to load a font face 0 from 'C:\Windows\Fonts\mstmc.ttf' cause malformed font.
[2023-12-07T05:41:47Z INFO  cosmic_text::font::system::std] Parsed 566 font faces in 81ms.
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created buffer Valid((0, 1, Vulkan)) with BufferDescriptor { label: Some("glyphon params"), size: 16, usage: BufferUsages(COPY_DST | UNIFORM), mapped_at_creation: false }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created texture Valid((0, 1, Vulkan)) with TextureDescriptor { label: Some("glyphon atlas"), size: Extent3d { width: 256, height: 256, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: TextureUsages(COPY_DST | TEXTURE_BINDING), view_formats: [] }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created texture Valid((1, 1, Vulkan)) with TextureDescriptor { label: Some("glyphon atlas"), size: Extent3d { width: 256, height: 256, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: R8Unorm, usage: TextureUsages(COPY_DST | TEXTURE_BINDING), view_formats: [] }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created buffer Valid((1, 1, Vulkan)) with BufferDescriptor { label: Some("iced_wgpu::quad vertex buffer"), size: 32, usage: BufferUsages(VERTEX), mapped_at_creation: true }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created buffer Valid((2, 1, Vulkan)) with BufferDescriptor { label: Some("iced_wgpu::quad index buffer"), size: 12, usage: BufferUsages(INDEX), mapped_at_creation: true }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created render pipeline Valid((0, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("iced_wgpu.quad.solid.pipeline"), layout: Some((1, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "solid_vs_main" }, buffers: [VertexBufferLayout { array_stride: 8, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 0 }] }, VertexBufferLayout { array_stride: 68, step_mode: Instance, attributes: [VertexAttribute { format: Float32x4, offset: 0, shader_location: 1 }, VertexAttribute { format: Float32x2, offset: 16, shader_location: 2 }, VertexAttribute { format: Float32x2, offset: 24, shader_location: 3 }, VertexAttribute { format: Float32x4, offset: 32, shader_location: 4 }, VertexAttribute { format: Float32x4, offset: 48, shader_location: 5 }, VertexAttribute { format: Float32, offset: 64, shader_location: 6 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Cw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "solid_fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created render pipeline Valid((1, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("iced_wgpu.quad.gradient.pipeline"), layout: Some((2, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (1, 2, Vulkan), entry_point: "gradient_vs_main" }, buffers: [VertexBufferLayout { array_stride: 8, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 0 }] }, VertexBufferLayout { array_stride: 148, step_mode: Instance, attributes: [VertexAttribute { format: Uint32x4, offset: 0, shader_location: 1 }, VertexAttribute { format: Uint32x4, offset: 16, shader_location: 2 }, VertexAttribute { format: Uint32x4, offset: 32, shader_location: 3 }, VertexAttribute { format: Uint32x4, offset: 48, shader_location: 4 }, VertexAttribute { format: Uint32x4, offset: 64, shader_location: 5 }, VertexAttribute { format: Float32x4, offset: 80, shader_location: 6 }, VertexAttribute { format: Float32x4, offset: 96, shader_location: 7 }, VertexAttribute { format: Float32x4, offset: 112, shader_location: 8 }, VertexAttribute { format: Float32x4, offset: 128, shader_location: 9 }, VertexAttribute { format: Float32, offset: 144, shader_location: 10 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Cw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 2, Vulkan), entry_point: "gradient_fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created render pipeline Valid((2, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("iced_wgpu::triangle::msaa pipeline"), layout: Some((3, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (1, 3, Vulkan), entry_point: "vs_main" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Cw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 3, Vulkan), entry_point: "fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created render pipeline Valid((3, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("iced_wgpu::triangle::solid pipeline"), layout: Some((4, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (1, 4, Vulkan), entry_point: "solid_vs_main" }, buffers: [VertexBufferLayout { array_stride: 24, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 0 }, VertexAttribute { format: Float32x4, offset: 8, shader_location: 1 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Cw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 4, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 4, Vulkan), entry_point: "solid_fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created render pipeline Valid((4, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("iced_wgpu.triangle.gradient.pipeline"), layout: Some((5, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (1, 5, Vulkan), entry_point: "gradient_vs_main" }, buffers: [VertexBufferLayout { array_stride: 104, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 0 }, VertexAttribute { format: Uint32x4, offset: 8, shader_location: 1 }, VertexAttribute { format: Uint32x4, offset: 24, shader_location: 2 }, VertexAttribute { format: Uint32x4, offset: 40, shader_location: 3 }, VertexAttribute { format: Uint32x4, offset: 56, shader_location: 4 }, VertexAttribute { format: Uint32x4, offset: 72, shader_location: 5 }, VertexAttribute { format: Float32x4, offset: 88, shader_location: 6 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Cw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 4, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 5, Vulkan), entry_point: "gradient_fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created render pipeline Valid((5, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("iced_wgpu::image pipeline"), layout: Some((6, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (1, 6, Vulkan), entry_point: "vs_main" }, buffers: [VertexBufferLayout { array_stride: 8, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 0 }] }, VertexBufferLayout { array_stride: 36, step_mode: Instance, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 1 }, VertexAttribute { format: Float32x2, offset: 8, shader_location: 2 }, VertexAttribute { format: Float32x2, offset: 16, shader_location: 3 }, VertexAttribute { format: Float32x2, offset: 24, shader_location: 4 }, VertexAttribute { format: Sint32, offset: 32, shader_location: 5 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Cw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 6, Vulkan), entry_point: "fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created buffer Valid((3, 1, Vulkan)) with BufferDescriptor { label: Some("iced_wgpu::image vertex buffer"), size: 32, usage: BufferUsages(VERTEX), mapped_at_creation: true }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created buffer Valid((4, 1, Vulkan)) with BufferDescriptor { label: Some("iced_wgpu::image index buffer"), size: 12, usage: BufferUsages(INDEX), mapped_at_creation: true }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Created texture Valid((2, 1, Vulkan)) with TextureDescriptor { label: Some("iced_wgpu::image texture atlas"), size: Extent3d { width: 2048, height: 2048, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: TextureUsages(COPY_SRC | COPY_DST | TEXTURE_BINDING), view_formats: [] }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] configuring surface with SurfaceConfiguration { usage: TextureUsages(RENDER_ATTACHMENT), format: Bgra8UnormSrgb, width: 1024, height: 768, present_mode: AutoVsync, alpha_mode: Auto, view_formats: [] }
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Automatically choosing presentation mode by rule AutoVsync. Chose Fifo
[2023-12-07T05:41:47Z INFO  wgpu_core::device] Automatically choosing alpha mode by rule Auto. Chose Opaque

When I cargo runed, it seems completely detect the sensors and sent to frontend(15 sensors send), but the window is transparent(even no border), When placing mouse on it, the cursor is 'No response' icon, can be close on the task bar.
curios: When you were coding in the libcosmic, I complied main then and can see main window.
But in libcosmic br and now, the window is like this.

OH what?
Now it has a rect white block(~1/4 size of my 1920x1080) on my left screen, but the no-response zone is bigger than it expanding below.
屏幕截图 2023-12-07 13521dsa2

To much log when using --debug

Problem

Maybe try to only show app specific log when using args to print them

Steps

No response

Possible Solution(s)

No response

Notes

No response

Operative System

None

Version

No response

Todo before new release

  • clean graph code
  • remove or upgrade time to update
  • pass compilation on windows
  • dialog to save on exit
  • dialog explanation on Flatpak
  • closing the main window should exit the graph one
  • use yy:mm format for version #124

Blank screen on Ubuntu 24

Bug Description

  • simply running the app after a fresh install - doesn't work

Expected Result

  • the app works

Steps to Reproduce

  • install the app according to the instruction from a readme

Operating system

Linux oleg-pc 6.8.0-38-generic #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun  7 15:25:01 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Intel(R) Core(TM) i7-14700K
GeForce GTX 1660 Ti Driver Version: 535.183.01

fan-control version

  • latest

Logs

oleg@oleg-pc:~$ RUST_BACKTRACE=full flatpak run io.github.wiiznokes.fan-control 
[ERROR winit::platform_impl::platform] X11 error: XError {
        description: "BadMatch (invalid parameter attributes)",
        error_code: 8,
        request_code: 149,
        minor_code: 4,
    }
[ERROR winit::platform_impl::platform] X11 error: XError {
        description: "BadMatch (invalid parameter attributes)",
        error_code: 8,
        request_code: 149,
        minor_code: 4,
    }
[ERROR winit::platform_impl::platform] X11 error: XError {
        description: "BadMatch (invalid parameter attributes)",
        error_code: 8,
        request_code: 149,
        minor_code: 4,
    }
[ERROR winit::platform_impl::platform] X11 error: XError {
        description: "BadMatch (invalid parameter attributes)",
        error_code: 8,
        request_code: 149,
        minor_code: 4,
    }
[ERROR winit::platform_impl::platform] X11 error: XError {
        description: "BadMatch (invalid parameter attributes)",
        error_code: 8,
        request_code: 149,
        minor_code: 4,
    }
[ERROR winit::platform_impl::platform] X11 error: XError {
        description: "BadMatch (invalid parameter attributes)",
        error_code: 8,
        request_code: 149,
        minor_code: 4,
    }
[ERROR iced_winit::multi_window] Error Timeout when presenting surface.
thread 'main' panicked at /run/build/fan-control/cargo/vendor/winit/src/platform_impl/linux/x11/event_processor.rs:1042:30:
Failed to unfocus input context: XError { description: "BadMatch (invalid parameter attributes)", error_code: 8, request_code: 149, minor_code: 4 }
stack backtrace:
   0:          0x14ea6f5 - <unknown>
   1:          0x15187eb - <unknown>
   2:          0x14e64ef - <unknown>
   3:          0x14ea4ce - <unknown>
   4:          0x14eb939 - <unknown>
   5:          0x14eb67d - <unknown>
   6:          0x14ebdd3 - <unknown>
   7:          0x14ebcb4 - <unknown>
   8:          0x14eabb9 - <unknown>
   9:          0x14eb9e7 - <unknown>
  10:           0x47a8b3 - <unknown>
  11:           0x47ad66 - <unknown>
  12:           0x4862f6 - <unknown>
  13:           0x48c126 - <unknown>
  14:           0x5e13de - <unknown>
  15:           0x56dcc0 - <unknown>
  16:           0x49b545 - <unknown>
  17:           0x49d3a3 - <unknown>
  18:           0x55fc19 - <unknown>
  19:          0x14dc9f0 - <unknown>
  20:           0x49b7d5 - <unknown>
  21:     0x731192a3e08a - <unknown>
  22:     0x731192a3e14b - __libc_start_main
  23:           0x47b3d5 - <unknown>
  24:                0x0 - <unknown>
^C

Possible Additional Information (optional)

  • maybe unrelated, but I do have a psensor running ok, showing the temps and the GPU fans rpm

Code signing cert for releases

It would be really good to pick up a code signing cert and sign your releases. It would help move users over from closed-source alternatives and help increase trust and reduce friction for installs.

If you need more funding to acquire a code cert and assistance in deploying it, let me know.

Program running but not opening window or shown in tray icon

Note: Feel free to fill only the sections that feels relevant to you

Bug Description

Updated to current version, Fan control doesn't show in tray like usual. Shows in task manager as running.

Expected Result

Steps to Reproduce

Possible Solutions (optional)

Possible Additional Information (optional)

Troubleshooting:
Reinstalled Application
Updated Windows 10
Downgraded and successfully works without issue
Ran in Compatibility with Windows 8
Run with Admin Permissions

Operating system

Windows 10 x64

fan-control version

2024.7.30

Logs

On linux, run flatpak run io.github.wiiznokes.fan-control in a terminal.

graph windows weird behavior

  • closing the main window should exit the graph one
  • main window should not be crackable when graph window exist

failed build on arch linux

for some reason, it didn't work...
I ran the following commands:

sudo pacman -S lm-sensors
sudo sensors-detect

and saved the output, then installed rust using the official website instructions (which means using the following command): curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
then I ran:

cargo install just
sudo pacman -S make bison flex clang --confirm

but when I ran just libsensors, it just said error: No justfile found
same thing happened after I tried uninstalling just and rust, and then reinstalling them, but from arch repositories. Honestly not sure what's wrong...

Padding off - top bar buttons

Bug Description

the padding of icons in the top bar is a little bit off. Minor, but still a bug.

Expected Result

padding of icon placement corrected

Steps to Reproduce

check the top bar, please see attachment
Fan C

Operating system

Linux Mint, Virginia

fan-control version

2024.6

error on windows

PS C:\Users\wiiz\Documents\fan-control> cargo run --release
   Compiling data v0.1.0 (C:\Users\wiiz\Documents\fan-control\data)
   Compiling ui v0.1.0 (C:\Users\wiiz\Documents\fan-control\ui)
   Compiling fan-control v0.1.0 (C:\Users\wiiz\Documents\fan-control)
    Finished release [optimized] target(s) in 9.09s
     Running `target\release\fan-control.exe`
[LHM] Server Started on 127.0.0.1:55555
[LHM] Client accepted!
[LHM] nbControl: 9
[LHM] nbFan: 9
[LHM] nbTemp: 4
[LHM] Sending hardware
Unhandled exception. System.IO.IOException: Unable to write data to the transport connection: Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte..
 ---> System.Net.Sockets.SocketException (10053): Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte.
   at System.Net.Sockets.NetworkStream.Write(ReadOnlySpan`1 buffer)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Write(ReadOnlySpan`1 buffer)
   at LibreHardwareMonitorWrapper.Server.SendHardware(String jsonText) in C:\Users\wiiz\Documents\fan-control\hardware\LibreHardwareMonitorWrapper\Server.cs:line 40
   at Program.<Main>$(String[] args) in C:\Users\wiiz\Documents\fan-control\hardware\LibreHardwareMonitorWrapper\Program.cs:line 8
   at Program.<Main>(String[] args)

PID control

I just want to preface this issue that I love that this project, from what I gather after some superficial investigation, does not actually need the lm-sensors package with the necessary libraries embedded into the binary, and that its rust so its a generally small footprint.

Use Case

PID control would adapt fan speed to a desired temperature point.
This would stop temperature spikes to create fan spikes, and make fans try to reach a desired temperature if possible.
It would also spin down fans if temperature is already at desired temperature.

Proposed Change

New PID behavior for control.

Who Benefits From The Change(s) ?

Those who wish to maintain constant temperature or avoid fans spinning up and down too quickly.

UI feature compilation

Use Case

I noticed as it is now the compiled binary needs x11 library. Myself I want to run it on a headless server to monitor my hdd devices primarily, so I don't need x11 libraries.

Is this something that would be wanted as either maybe a branch or in main repo.
I implemented a "quickfix" configuring out the UI if specified at compile time.

I tried to seperate the localization as it also seems unecessary witout a gui.
But it seems a bit too integrated to fix without major changes at the moment.
I could look into it if wider seperation is something that is wanted.

Who Benefits From The Change(s) ?

Those who don't have/want x11 common libraries, and don't need the UI.

Input box missing - description string doesn't wrap

Bug Description

the max width of widgets is way too narrow, please see the linear widget (2nd column) in my attachment

German uses pretty long composite names, so I can't even set a value for minimum speed in "linear" curves, because the input box is on the outside of the widget. Also the other input boxes in the same "linear" curves widget are too narrow, barely readable.

FAN-c

Expected Result

To be able to insert all possible values

Steps to Reproduce

Add a linear curve and check the min speed value (German env)

Possible Solutions

I suggest to enlarge the width of widgets and wrap long strings so they break and continue on the next line.

Operating system

Linux Mint Virginia

fan-control version

2024.6

server exeption on windows

Problem

Finished dev [unoptimized + debuginfo] target(s) in 2.83s
     Running `target\debug\fan-control.exe`
[INFO  hardware::windows] Command to launch Windows server: "C:\\Users\\wiiz\\Documents\\fan-control\\resource\\windows/build/LibreHardwareMonitorWrapper" "--log=info".
[INFO  LHM 22:52:12] Server Started on 127.0.0.1:55555.
[INFO  LHM 22:52:13] Client accepted..
[INFO  hardware::windows] Check passed for 127.0.0.1:55555.
[INFO  LHM 22:52:14] Control: 9, Fans: 9, Temps: 4.
[INFO  hardware::windows] Hardware was succefully received.
[INFO  data::config::control] Mode Manual succefuly set for Fan #4.
[INFO  data::config::control] Mode Manual succefuly set for Fan #3.
[INFO  data::config::control] Mode Manual succefuly set for GPU Fan 1.
[INFO  data::config::control] Mode Manual succefuly set for CPU.
[INFO  data::config::control] Mode Manual succefuly set for GPU Fan 2.
[INFO  LHM 22:53:01] On canceled process.
error: process didn't exit successfully: `target\debug\fan-control.exe` (exit code: 0xc000013a, STATUS_CONTROL_C_EXIT)
PS C:\Users\wiiz\Documents\fan-control> System.Net.Sockets.SocketException (10053): Une connexion �tablie a �t� abandonn�e par un logiciel de votre ordinateur h�te.
   at LibreHardwareMonitorWrapper.Server.block_read() in C:\Users\wiiz\Documents\fan-control\hardware\LibreHardwareMonitorWrapper\Server.cs:line 117
[INFO  LHM 22:53:01] Shutdown server..
[INFO  LHM 22:53:01] Shutdown server..
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at LibreHardwareMonitor.Hardware.KernelDriver.Close()
   at LibreHardwareMonitor.Hardware.Ring0.Close()
   at LibreHardwareMonitor.Hardware.Computer.Close()
   at LibreHardwareMonitorWrapper.Lhm.HardwareResearcher.Stop() in C:\Users\wiiz\Documents\fan-control\hardware\LibreHardwareMonitorWrapper\Lhm\HardwareResearcher.cs:line 56
   at LibreHardwareMonitorWrapper.HardwareManager.Stop() in C:\Users\wiiz\Documents\fan-control\hardware\LibreHardwareMonitorWrapper\HardwareManager.cs:line 53
   at Program.<>c__DisplayClass0_0.<<Main>$>b__1(Object sender, ConsoleCancelEventArgs e) in C:\Users\wiiz\Documents\fan-control\hardware\LibreHardwareMonitorWrapper\Program.cs:line 45
   at System.Console.HandlePosixSignal(PosixSignalContext ctx)
   at System.Runtime.InteropServices.PosixSignalRegistration.HandlerRoutine(Int32 dwCtrlType)

Steps

quit windows with a ctrl + c from terminal.

Possible Solution(s)

No response

Notes

No response

Version

No response

Thread main panicked

Bug Description:

When I try to run the fan-control command, the following error shows, and the app is never launched:
thread 'main' panicked at /run/build/fan-control/cargo/vendor/iced_tiny_skia/src/window/compositor.rs:56:10: Create softbuffer surface for window: PlatformError(Some("Visual 0x77 does not use softbuffer's pixel format and is unsupported"), None)

Expected Result:

Applications should run

Steps to Reproduce:

flatpak install --user https://flathub.org/repo/appstream/io.github.wiiznokes.fan-control.flatpakref
cat /etc/udev/rules.d/60-fan-control.rules

KERNEL=="hwmon7", SUBSYSTEM=="hwmon", TAG+="uaccess"

/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=fan-control io.github.wiiznokes.fan-control
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
thread 'main' panicked at /run/build/fan-control/cargo/vendor/iced_tiny_skia/src/window/compositor.rs:56:10:
Create softbuffer surface for window: PlatformError(Some("Visual 0x77 does not use softbuffer's pixel format and is unsupported"), None)

Possible Solutions:

Possible Additional Information:

I've run the command on a terminal, with sudo -i first, to make sure that it has access to write anywhere

Operating system

Linux 6.6.26-1-MANJARO x86_64

fan-control version

0.1.3

Logs, Panic Messages, Stack Traces:

error: XDG_RUNTIME_DIR is invalid or not set in the environment.
thread 'main' panicked at /run/build/fan-control/cargo/vendor/iced_tiny_skia/src/window/compositor.rs:56:10:
Create softbuffer surface for window: PlatformError(Some("Visual 0x77 does not use softbuffer's pixel format and is unsupported"), None)
stack backtrace:
0: 0xde3ba6 -
1: 0xe12460 -
2: 0xddfd8f -
3: 0xde3984 -
4: 0xde5207 -
5: 0xde4f69 -
6: 0xde5698 -
7: 0xde5572 -
8: 0xde40a6 -
9: 0xde52c4 -
10: 0x44b455 -
11: 0x44b9a3 -
12: 0x4c99f8 -
13: 0x4a7806 -
14: 0x4a8a3d -
15: 0x4621e9 -
16: 0x52ebe3 -
17: 0x51dee9 -
18: 0xdd5e31 -
19: 0x462b25 -
20: 0x7ffa09ec808a -
21: 0x7ffa09ec814b - __libc_start_main
22: 0x44c0b5 -
23: 0x0 -

Icons are difficult to see in dark mode

When using Fan Control in dark mode, the icons of top panel like saving configurations, new, even fan-control logo, settings, and also the right panel elements have low visibility due to their dark color scheme. Basically all icons in Application. This makes it difficult to quickly identify and interact.

image

Fan Control logo in the Ubuntu app menu also has low visibility.
Icon in App menu:
image

System:

  • OS: Ubuntu
  • Dark mode enabled

Add wiki

it will be useful to document

  • the format for writing a config
  • how to use the cli feature (use --write-hardware and --cli, pointing directly to a config file, ...)

Different hwmon required

I'm running fancontrol-gui via the snap package manager and thus need udev rules. The default udev rules from this github assume hwmon7 to be the correct one for PWM control:

SUBSYSTEM=="hwmon", KERNEL=="hwmon7", RUN+="/bin/sh -c '/bin/chmod a+w /sys%p/pwm*'"

My system doesn't even have a folder for hwmon7:

❯ ls /sys/class/hwmon
hwmon0	hwmon1	hwmon2	hwmon3	hwmon4

So I looked into the directories and hwmon1 had 1 PWM controllers and hwmon4 had 7 PWM controllers. These are the controllers from my graphics card (nvidia, so noveau driver) and my motherboard:

❯ /usr/bin/cat /sys/class/hwmon/hwmon1/name
nouveau

❯ /usr/bin/cat /sys/class/hwmon/hwmon4/name
nct6798

Only after adding a line for hwmon1 and hwmon4 in the udev file was I able to control my fans.

I propose two solutions:

  • Add all possible hwmon devices to the udev file

or

  • Run a script to detect which hwmon has PWM controllers and only add those to the udev file

Please note that hwmon numbers will also change upon changing hardware configuration. So after swapping out a graphics card or the motherboard all numbers will be mixed up again (which will also mess with the fancontrol config file...)

just in github action

Problem

can be replace by: sudo snap install --edge --classic just

Steps

No response

Possible Solution(s)

No response

Notes

No response

Operative System

None

Version

No response

Flatpak support

I think this is possible.
Probably need some udev rules like openRGB
https://openrgb.org/udev

flatpak repo: https://github.com/flathub/org.openrgb.OpenRGB

the pull request to flathub of openRGB: flathub/flathub#2677

tauri discussion about flatpak (the file could be generated by cargo packager eventually)

Process to add flatpak support (doc: https://docs.flatpak.org/en/latest/introduction.html)

  • having a manifest file
  • find out the runtime we need (i think all app need a runtime (maybe the xdgdesktop one)).
  • compile using flatpak-builder (more a packaging apparently), we will need the corresponding sdk of the runtime to do this step)
  • pull request to flathub

Windows: When the PC go to sleep mode, controls are inactive after going back somehow

Problem

When going back to the app after the pc goes to sleep, controls don't show to real value they have. Temp sensors seems to still works because they get updated.
After changing something in the graph, controls get updated.

Steps

  • activate some controls
  • pc go to sleep
  • pc wake up
  • controls are inactive untils somethings change in the config

Possible Solution(s)

Maybe detect when the PC wakes up, or understand this at a deeper level

Notes

No response

Version

No response

Just installed this with flatpak via Software Manager and it refuses to run in Linux Mint.

Bug Description: Will not run

Expected Result: That the program runs when I click on it.

Steps to Reproduce: What is there to reproduce? It simply does nothing.

Possible Solutions: Make it so it works.

Possible Additional Information: I have no idea, it just never starts.

Operating system: Linux Mint 21.3

fan-control version:Latest 0.1.3

Logs, Panic Messages, Stack Traces: I really don't think there's a log. There's no error, nothing.

[Panic] Create softbuffer surface for window: PlatformError(Some("Visual 0xb3 does not use softbuffer's pixel format and is unsupported"), None)

Hi!
I have installed the application according to the instructions.

  1. sudo apt install lm-sensors

wget https://raw.githubusercontent.com/wiiznokes/fan-control/master/resource/linux/60-fan-control.rules
sudo mv 60-fan-control.rules /usr/lib/udev/rules.d
sudo udevadm control --reload-rules && sudo udevadm trigger
  1. Install over Application management
  2. Start fan-control >> Nothing :(

Running all in a terminal:

/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=fan-control io.github.wiiznokes.fan-control
thread 'main' panicked at /run/build/fan-control/cargo/vendor/iced_tiny_skia/src/window/compositor.rs:56:10:
Create softbuffer surface for window: PlatformError(Some("Visual 0xb3 does not use softbuffer's pixel format and is unsupported"), None)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error

System:
CPU: AMD Ryzen R9 3900X
RAM: 32GB DDR4
GPU: AMD Radeon RX 5700XT
Board: ASUS Strix X570

CI improvement

  • automate flatpak release. Should generate cargo-source.json and change the source commit.
  • reuse the metainfo.xml file to generate release note for Github release

Fan not set to inactive when disconnecting on Windows

Problem

When disconnecting, fan should be set to inactive.
Also, when relaunching the app after disconnecting, my CPU fan can not be set to inactive anymore, but his percentage can be changed.

Steps

  • set fans to active
  • disconnect whitout closing the app
  • reconnect
  • launch the app

Possible Solution(s)

maybe try to catch the kill signal on the windows C# server.
The code should be non blocking if we do that.

Notes

No response

Version

No response

Fixed value does nothing

I installed from flathub (Manjaro), when I add a fixed value item and pair it with a component, it doesn't affect fan speeds. Am I doing something wrong, or this could be a permission issue or something?

rename configig

currently, we can save a config with a name already taken

Can't start on linux

chris@ChrisMint:~$ flatpak run io.github.wiiznokes.fan-control
thread 'main' panicked at /run/build/fan-control/cargo/vendor/iced_tiny_skia/src/window/compositor.rs:56:10:
Create softbuffer surface for window: PlatformError(Some("Visual 0x80 does not use softbuffer's pixel format and is unsupported"), None)
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error

Flatpak

Flatpak is already building on the flatpak branch, and this repo will be used to PR to flathub.

However, the remaining big thing to do is use lm_sensors in a flatpak environment.

This is the error i get:

failed to init libsensor: sensors_init() failed: [4] Kernel interface error

See issue: lm-sensors/lm-sensors#490

Previous issue: #80

I don't know nothing about udev rules so i will probably need help for this

Build From Source install error

I was using the build instructions provided

git clone https://github.com/wiiznokes/fan-control.git
cd fan-control
sudo apt install make bison flex clang -y
just libsensors
cargo run --release

Things were perfect till the last step
cargo run --release

The error I got is

❯ cargo run --release
   Compiling sensors-sys v0.2.12
   Compiling fluent-langneg v0.13.0
   Compiling intl_pluralrules v7.0.2
   Compiling ouroboros_macro v0.17.2
   Compiling dirs v5.0.1
   Compiling darling_core v0.20.8
   Compiling iced_style v0.12.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling self_cell v0.10.3
   Compiling wayland-protocols-plasma v0.2.0
   Compiling tempfile v3.10.1
   Compiling xkbcommon-dl v0.4.2
   Compiling fluent-syntax v0.11.0
   Compiling crossbeam-channel v0.5.12
   Compiling filetime v0.2.23
   Compiling xdg v2.5.2
   Compiling equivalent v1.0.1
   Compiling utf8parse v0.2.1
   Compiling unicode-xid v0.2.4
   Compiling cargo-packager-resource-resolver v0.1.0
   Compiling derive_more-impl v1.0.0-beta.6
   Compiling notify v6.1.1
   Compiling anstyle-parse v0.2.3
   Compiling indexmap v2.2.6
   Compiling fluent-bundle v0.15.2
   Compiling atomicwrites v0.4.2 (https://github.com/jackpot51/rust-atomicwrites#043ab485)
   Compiling ordered-multimap v0.7.1
   Compiling num-rational v0.4.1
   Compiling cached_proc_macro v0.20.0
   Compiling fluent v0.16.0
   Compiling num_enum v0.7.2
   Compiling iced_renderer v0.12.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling parking_lot v0.12.1
   Compiling rust-embed-utils v8.3.0
   Compiling ouroboros_macro v0.18.3
   Compiling num-iter v0.1.44
   Compiling ouroboros v0.17.2
   Compiling winit v0.29.10 (https://github.com/pop-os/winit.git?branch=winit-0.29#bdc66109)
   Compiling rust-embed v8.3.0
   Compiling ron v0.8.1
   Compiling cargo-packager-utils v0.1.0
   Compiling unicode-normalization v0.1.23
   Compiling cosmic-config-derive v0.1.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling serde_spanned v0.6.5
   Compiling toml_datetime v0.6.5
   Compiling num-complex v0.4.5
   Compiling instant v0.1.12
   Compiling cached_proc_macro_types v0.1.1
   Compiling arc-swap v1.7.1
   Compiling serde_json v1.0.115
   Compiling anstyle-query v1.0.2
   Compiling darling_macro v0.20.8
   Compiling signal-hook v0.3.17
   Compiling winnow v0.6.5
   Compiling anstyle v1.0.6
   Compiling colorchoice v1.0.0
   Compiling heck v0.4.1
   Compiling utils v0.1.0 (/home/kaito/Documents/GitHub/fan-control/utils)
   Compiling cosmic-config v0.1.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling anstream v0.6.13
   Compiling ouroboros v0.18.3
   Compiling num v0.4.1
   Compiling i18n-embed v0.14.1
   Compiling idna v0.5.0
   Compiling cached v0.49.3
   Compiling derive_more v1.0.0-beta.6
   Compiling darling v0.20.8
   Compiling iced_widget v0.12.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling lm-sensors v0.2.0 (https://github.com/wiiznokes/lm-sensors.git?branch=pwm#bc9f27df)
   Compiling rust-ini v0.20.0
   Compiling locale_config v0.3.0
   Compiling dashmap v5.5.3
   Compiling form_urlencoded v1.2.1
   Compiling csscolorparser v0.6.2
   Compiling any_ascii v0.1.7
   Compiling iced_winit v0.12.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling toml_edit v0.22.9
   Compiling grid v0.11.0
   Compiling itoa v1.0.11
   Compiling almost v0.2.0
   Compiling iana-time-zone v0.1.60
   Compiling ryu v1.0.17
   Compiling chrono v0.4.37
   Compiling taffy v0.3.11 (https://github.com/DioxusLabs/taffy?rev=7781c70#7781c702)
   Compiling cosmic-theme v0.1.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling lexical-sort v0.3.1
   Compiling iced v0.12.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling toml v0.8.12
   Compiling i18n-embed-fl v0.8.0
   Compiling url v2.5.0
   Compiling hardware v0.1.0 (/home/kaito/Documents/GitHub/fan-control/hardware)
   Compiling freedesktop-icons v0.2.6
   Compiling derive_setters v0.1.6
   Compiling fraction v0.14.0
   Compiling directories v5.0.1
   Compiling winres v0.1.12
   Compiling light_enum v0.2.2
   Compiling heck v0.5.0
   Compiling clap_lex v0.7.0
   Compiling css-color v0.2.8
   Compiling strsim v0.11.0
   Compiling apply v0.3.0
   Compiling libcosmic v0.1.0 (https://github.com/pop-os/libcosmic?branch=master#61a14a95)
   Compiling clap_builder v4.5.2
   Compiling data v0.1.0 (/home/kaito/Documents/GitHub/fan-control/data)
   Compiling clap_derive v4.5.4
   Compiling fan-control v0.1.3 (/home/kaito/Documents/GitHub/fan-control)
   Compiling signal-hook-mio v0.2.3
   Compiling env_filter v0.1.0
   Compiling humantime v2.1.0
   Compiling crossterm v0.27.0
   Compiling env_logger v0.11.3
   Compiling clap v4.5.4
   Compiling ui v0.1.0 (/home/kaito/Documents/GitHub/fan-control/ui)
    Finished release [optimized] target(s) in 21.15s
     Running `target/release/fan-control`
thread 'main' panicked at /home/kaito/.cargo/git/checkouts/libcosmic-b367e32ffc370f4f/61a14a9/iced/tiny_skia/src/window/compositor.rs:56:10:
Create softbuffer surface for window: PlatformError(Some("Visual 0x23 does not use softbuffer's pixel format and is unsupported"), None)
stack backtrace:
   0:           0xdda61c - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:           0xdda61c - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:           0xdda61c - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
   3:           0xdda61c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
   4:           0xe09bb0 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
   5:           0xe09bb0 - core::fmt::write::h3a39390d8560d9c9
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
   6:           0xdd6acf - std::io::Write::write_fmt::h5fc9997dfe05f882
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
   7:           0xdda404 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
   8:           0xdda404 - std::sys_common::backtrace::print::h23a2d212c6fff936
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
   9:           0xddbbb7 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
  10:           0xddb91f - std::panicking::default_hook::h6038f2eba384e475
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:292:9
  11:           0xddc038 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:779:13
  12:           0xddbf1e - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
  13:           0xddaae6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
  14:           0xddbc82 - rust_begin_unwind
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
  15:           0x44c7c5 - core::panicking::panic_fmt::hbf0e066aabfa482c
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
  16:           0x44cd03 - core::result::unwrap_failed::hddb4fea594200c52
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/result.rs:1653:5
  17:           0x4a5807 - <iced_renderer::compositor::Compositor as iced_graphics::compositor::Compositor>::create_surface::h4ddb07ea1ff2a7de
  18:           0x46abf6 - iced_winit::multi_window::window_manager::WindowManager<A,C>::insert::hf2dffbdaf985aa7b
  19:           0x46bcbc - iced_winit::multi_window::run::h8ed211e9c274ec9a
  20:           0x4d57fe - fan_control::main::habec4908fa0ca0f9
  21:           0x52c9d3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h870f6cd08cd5517e
  22:           0x5676d9 - std::rt::lang_start::{{closure}}::h9fcbd6db6c295ab4
  23:           0xdcd507 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hd95060ecd5e1ca24
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:284:13
  24:           0xdcd507 - std::panicking::try::do_call::h6e8cf51db32a6e4b
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
  25:           0xdcd507 - std::panicking::try::h3a52eefe24fe3c29
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
  26:           0xdcd507 - std::panic::catch_unwind::h24c28c23c02c3841
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
  27:           0xdcd507 - std::rt::lang_start_internal::{{closure}}::h705d3c9cbc06ef47
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:48
  28:           0xdcd507 - std::panicking::try::do_call::ha21f52ba13158470
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
  29:           0xdcd507 - std::panicking::try::h5581346bf6aeb1f8
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
  30:           0xdcd507 - std::panic::catch_unwind::h7919645a6b72e25b
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
  31:           0xdcd507 - std::rt::lang_start_internal::h12de51168669836e
                               at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:20
  32:           0x5676ce - std::rt::lang_start::h236675407cae54ea
  33:     0x7b74a3229d90 - <unknown>
  34:     0x7b74a3229e40 - __libc_start_main
  35:           0x44d435 - _start
  36:                0x0 - <unknown>
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error
[ERROR hardware::linux] can't set auto to a pwm sensor when quitting: sensors_set_value() failed: [4] Kernel interface error

I'm not familiar with Rust...a little help plz

doesnt open

Bug Description: I installed the requirements, installed the flatpak, open via the start menu, doesnt open.

Expected Result: open so I can configure it.

Steps to Reproduce: follow instructions on main page

Possible Solutions:

Possible Additional Information:

Operating system

fan-control version

Logs, Panic Messages, Stack Traces:

All sensors show "0"

I've built the project, had to add export CFLAGS=-fPIC or it would not link with libsensors. The result is:

fan-control

The system is Fedora 39, running on an ASUS Rampage IV Formula motherboard.

sensors returns:

nct6776-isa-0290
Adapter: ISA adapter
Vcore:           1.04 V  (min =  +0.00 V, max =  +1.74 V)
in1:             1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
AVCC:            3.33 V  (min =  +2.98 V, max =  +3.63 V)
+3.3V:           3.31 V  (min =  +2.98 V, max =  +3.63 V)
in4:           1000.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in5:             2.04 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in6:           776.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
3VSB:            3.41 V  (min =  +2.98 V, max =  +3.63 V)
Vbat:            3.36 V  (min =  +2.70 V, max =  +3.63 V)
fan1:           694 RPM  (min =    0 RPM)
fan2:           400 RPM  (min =    0 RPM)
fan3:           448 RPM  (min =    0 RPM)
SYSTIN:         +34.0°C  (high =  +0.0°C, hyst =  +0.0°C)  ALARM  sensor = thermistor
CPUTIN:         +24.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermal diode
AUXTIN:         +38.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
PECI Agent 0:   +30.0°C  (high = +80.0°C, hyst = +75.0°C)
                         (crit = +92.0°C)
PCH_CHIP_TEMP:   +0.0°C
PCH_CPU_TEMP:    +0.0°C
PCH_MCH_TEMP:    +0.0°C
intrusion0:    ALARM
intrusion1:    ALARM
beep_enable:   disabled

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +39.0°C  (high = +82.0°C, crit = +100.0°C)
Core 0:        +35.0°C  (high = +82.0°C, crit = +100.0°C)
Core 1:        +37.0°C  (high = +82.0°C, crit = +100.0°C)
Core 2:        +39.0°C  (high = +82.0°C, crit = +100.0°C)
Core 3:        +36.0°C  (high = +82.0°C, crit = +100.0°C)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.