openscad / openscad

OpenSCAD - The Programmers Solid 3D CAD Modeller
https://www.openscad.org
Other
7.15k stars 1.22k forks source link

dark mode not working win 10... #4693

Open jmerc77 opened 1 year ago

jmerc77 commented 1 year ago

Describe the bug recently after #4130, I realized i did not have dark mode properly enabled. so i enabled it but openSCAD fails to use it.

To Reproduce Steps to reproduce the behavior:

  1. enable dark mode in personalize settings (where the colors and theme settingss are)
  2. upon launch, the window is the default light grey.

Expected behavior window should be black-ish with light text.

Code reproducing the issue N/A

Screenshots image a side by side with win explorer. note: I have a 3rd party plugin for explorer to provide tabs. its not just a win 11 thing.

Environment and Version info (please complete the following information):

Library & Graphics card information

`OpenSCAD Version: 2021.01 System information: Windows(TM) 10.0 SP 0.0 NTW 1 MSDN 724833 8 CPUs 15.94 GB RAM User Agent: OpenSCAD/2021.01 (Windows(TM) 10.0 SP 0.0 NTW 1 MSDN 724833) Compiler: GCC "7.4.0" 64bit MinGW build: MingW64 Debug build: No Boost version: 1_60 Eigen version: 3.3.7 CGAL version, kernels: 4.11, Cartesian, Extended_cartesian, Epeck OpenCSG version: OpenCSG 1.4.2 Qt version: 5.13.0 QScintilla version: 2.11.2 InputDrivers: GLib version: 2.50.2 lodepng version: 20180910 libzip version: 1.5.2 fontconfig version: 2.13.1 freetype version: 2.10.1 harfbuzz version: 2.4.0 cairo version: 1.16.0 lib3mf version: 1.8.0 Application Path: P:/Program Files/OpenSCAD Documents Path: C:\Users\Owner\Documents User Documents Path: C:\Users\Owner\Documents Resource Path: P:/Program Files/OpenSCAD User Library Path: C:/Users/Owner/Documents/OpenSCAD/libraries User Config Path: C:\Users\Owner\AppData\Local/OpenSCAD Backup Path: C:/Users/Owner/Documents/OpenSCAD/backups OPENSCADPATH: OpenSCAD library path: C:/Users/Owner/Documents/OpenSCAD/libraries P:/Program Files/OpenSCAD\libraries

OPENSCAD_FONT_PATH: OpenSCAD font path: C:/WINDOWS/fonts C:/Users/Owner/.local/share/fonts C:/Users/Owner/.fonts GLEW version: 1.12.0 OpenGL Version: 4.6.0 NVIDIA 536.23 GL Renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2 GL Vendor: NVIDIA Corporation RGBA(8888), depth(24), stencil(8) GL_ARB_framebuffer_object: yes GL_EXT_framebuffer_object: yes GL_EXT_packed_depth_stencil: yes

Qt graphics widget: QGLWidgetGL Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXTX_framebuffer_mixed_formats GL_EXT_Cg_shader GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_import_sync_object GL_EXT_memory_object GL_EXT_memory_object_win32 GL_EXT_multi_draw_arrays GL_EXT_multiview_texture_multisample GL_EXT_multiview_timer_query GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_semaphore GL_EXT_semaphore_win32 GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_win32_keyed_mutex GL_EXT_window_rectangles GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KHR_shader_subgroup GL_KTX_buffer_region GL_NVX_blend_equation_advanced_multi_draw_buffers GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_gpu_multicast2 GL_NVX_linked_gpu_multicast GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NVX_progress_fence GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_clip_space_w_scaling GL_NV_command_list GL_NV_compute_program5 GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_conservative_raster_pre_snap GL_NV_conservative_raster_pre_snap_triangles GL_NV_conservative_raster_underestimation GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program2 GL_NV_fragment_program_option GL_NV_fragment_shader_barycentric GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_multicast GL_NV_gpu_program4 GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_internalformat_sample_query GL_NV_light_max_exponent GL_NV_memory_attachment GL_NV_memory_object_sparse GL_NV_mesh_shader GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_representative_fragment_test GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_scissor_exclusive GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_float64 GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_shader_subgroup_partitioned GL_NV_shader_texture_footprint GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_NV_shading_rate_image GL_NV_stereo_view_rendering GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_timeline_semaphore GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_std430_layout GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_OVR_multiview GL_OVR_multiview2 GL_S3_s3tc GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control`

Additional context unsure on win 11 yet. but i am able to test that on my laptop (my other pc). my desktop w/ win 10 is 7-ish yrs old but in good shape. however, i am unable to run win 11 by upgrade due to old cpu and no tpm on desktop.

jmerc77 commented 1 year ago

ok. 2023... version isnt in stable release yet? will try that when it is.

jmerc77 commented 1 year ago

well this is weird. I'm having the same issue with Prusaslicer as well. at least it has a manual option that half way works (top bar briefly stays light grey). makes me wonder if its a system bug. what's interesting is that, both are open source c++ based apps.

edit: Prusaslicer has auto-detect. that's what failed there.

jmerc77 commented 1 year ago

incase its helpful: win build version 19045.3155

UBaer21 commented 1 year ago

openSCAD uses its own color schemes You have two different color scheme options in »preferences«

you also can alter the json or create your own schemes ( folder color-schemes )

however this is only within the window - the frame still stay light grey even in OS dark mode ( bug? )

jmerc77 commented 1 year ago

knew those but not the issue i was refering to. i was referring to the rest of the window. for example, the top bar would be dark as well as the status and menus. the win explorer on the left is a good example. chrome also works like that. i see the edit as i type. and agree it could be a missing feature maybe.

t-paul commented 1 year ago

See https://www.qt.io/blog/dark-mode-on-windows-11-with-qt-6.5 which has some notes for qt5 too.

natescherer commented 1 year ago

Confirmed that even on the latest dev snapshot colors behave the same way on Win 11 as the latest stable version. (Re: your question in the other linked issue thread, @t-paul)

natescherer commented 1 year ago

Running the executable as

openscad.exe -platform windows:darkmode=2

does somewhat fix this, although the theme is more high-contrast than dark mode.

image

Nikorasu commented 11 months ago

This is also a HUGE issue for me in Linux. No matter what I do, I cannot get the window-background to use Dark Mode. The last version that had a functional dark mode for me was 2019.05, worked perfectly but it's so old now, and even the newer development versions I can't seem to find a way. This is what it looks like now: Screenshot from 2023-06-27 12-32-52 I'm starting to wish it didn't rely on the OS, and just gave us an option to manually configure it somewhere. :/

jmerc77 commented 11 months ago

Running the executable as

openscad.exe -platform windows:darkmode=2

does somewhat fix this, although the theme is more high-contrast than dark mode.

image

not working on my windows 11 laptop. i was having the problem on both windows 11 and windows 10. my laptop has an i7 and same ram amount but the cpu is a newer gen.

FormulaCarbon commented 11 months ago

Running the executable as openscad.exe -platform windows:darkmode=2 does somewhat fix this, although the theme is more high-contrast than dark mode.

does not work on my win11 laptop either, on latest stable build (2021.01)

system info: Intel Core i7-12650H CPU NVIDIA RTX 4060 Laptop GPU 32gb 5600mhz RAM Windows 11 Version 22H2

when i run the command in Command Prompt in C:/Program Files/OpenScad this happens

C:\Program Files\OpenSCAD>Unknown option "darkmode=2"

QString::arg: Argument missing: , C:/Program Files/OpenSCAD/windows:darkmode=2

and then launches normally without dark mode.

BertrandSahel commented 9 months ago

For me on Linux Ubuntu 23.10, the last AppImage working fine for the dark mode in editor is the 2023-09-25 version. Since then, the dark editor mode can be normally set, but is not remaining after closing the program.

BertrandSahel commented 9 months ago

Today in the Linux OpenSCAD-2024.03.03.ai18729-x86_64.AppImage , the remaining editor darkmode is fixed !!!!

TheElbinho commented 1 month ago

Still broken in current nightly (2024.10.17) on Windows 11

Launching with a system-wide dark setting, OpenSCAD isn't dark. Launching with "-platform windows:darkmode=1" gives only a dark title bar, launching with darkmode=2 remains a possible workaround with a high-contrast look