Don't think it's that, as HDR is turned off on my own screens.
Interesting. The dark mode as well? Here Mica doesn't appear to like my HDR monitor at all.
I absolutely love this theme. I installed it the first day I started Directory Opus trial.
I set it as follows:
dopus.viewpiccontainer -> Default, Default, Default, Off, Off.
dopus.lister -> Dark, Mica, Default, On, Off.
In Windows 11 Settings -> Personalization -> Colors, option "Show accent color on title bars and windows borders" should be switched to Off.
I basically see no issues when using Optus, although I'm a newbie user, so maybe I didn't explore everything yet.
I wonder, if such a beautiful theme will be available on Opus 13? Maybe natively? Or will this one actually work? I'm thinking about buying Opus now, but I'm very sensitive when it comes to colors and themes, and once I got used to Mica, I wouldn't be able to change it to anything else
You can try the public beta for free to see how it works.
(I still wouldnât personally recommend the Mica tool due to how it works with incorrect assumptions about the unused alpha channel data in other programsâ windows.)
Wow, thank you! I didn't know I could use the trial evaluation code to get the BETA cert.
After a quick luck, it also works great on Opus 13, with some very minor bugs, such as too-dark background in certain spots on the navigation bar. After installing BETA it was needed to re-apply this Mica theme, and then it became nearly as perfect as on Opus 12.
It's understandable that developers shouldn't recommend things that might bring up problems and potentially "false-positive" bug reports. However, I personally think that this Mica works very well. Maybe they improved it with the newest Mica For Everyone versions? I'd recommend to give it another try, because I'm very impressed with how beautiful it is.
Yes the UI is not readable when HDR is enabled
This theme still works great for me.
The only issue is that one of the Dopus updates changed something related to window update on minimize / restore, so that all Mica effects are lost after you minimize the Dopus window.
I fixed it with the following script, that I posted in this thread: The background color loses effects in 13.7.3 (Beta) - #7 by Mona
It looks like MicaForEveryone has a nice option under Config File section: "Reload on change".
So I created a new script for Directory Opus that automatically updates the Mica's config file when the window becomes active, size changes or other events when the bug occurred:
function OnInit(initData) {
initData.name = "DopusListerMonitor";
initData.desc = "Monitor lister events to update Mica configuration file";
initData.default_enable = true;
initData.version = "1.0";
}
/*function OnListerUIChange(ListerUIChangeData) {
if(ListerUIChangeData.change == "minmax"){
DOpus.Output("ListerUIChangeData: " + ListerUIChangeData.change);
UpdateConfigFile();
}
}*/
function OnListerResize(ListerResizeData) {
if(ListerResizeData.action == "resize"){
DOpus.Output("MicaFix: OnListerResize: " + ListerResizeData.action);
UpdateConfigFile();
}
}
function OnActivateLister(activateListerData) {
if(activateListerData.active){
DOpus.Output("MicaFix: Lister activated");
//DOpus.Dlg.Request("Lister activated", "OK");
UpdateConfigFile();
}
}
function UpdateConfigFile() {
var mica_config_path = "D:\\FOLDERY\\SyncSettings\\MicaForEveryone.conf";
var lineToFind = "# DopusFix:";
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (!fso.FileExists(mica_config_path)) {
DOpus.Output("MicaFix: Configuration file not found: " + mica_config_path);
return;
}
var inputFile;
try {
inputFile = fso.OpenTextFile(mica_config_path, 1); // For reading
} catch (e) {
DOpus.Output("MicaFix: Error opening file for reading: " + e.message);
return;
}
var content = [];
var found = false;
var random = Math.floor(Math.random() * 99) + 1;
// Read the file content
while (!inputFile.AtEndOfStream) {
var line = inputFile.ReadLine();
if (line.indexOf(lineToFind) != -1) {
found = true;
line = lineToFind + " " + random;
}
content.push(line);
}
inputFile.Close();
if (!found) {
content.push(lineToFind + " " + random);
}
// Write the updated content back to the original file
var outputFile;
try {
outputFile = fso.OpenTextFile(mica_config_path, 2); // For writing
} catch (e) {
DOpus.Output("MicaFix: Error opening file for writing: " + e.message);
return;
}
for (var i = 0; i < content.length; i++) {
outputFile.WriteLine(content[i]);
}
outputFile.Close();
DOpus.Output("MicaFix: Configuration file updated with random number: " + random);
//DOpus.Dlg.Request("Configuration file updated with random number: " + random, "OK");
}
Please just make sure to change var mica_config_path
to read your actual MicaForEveryone.conf file.
I don't think we changed anything related to that on our side.
Something changed in exactly update 13.7.3 BETA and affects all future versions. It was easy to reproduce by simply reverting older version of Dopus. However it's irrelevant now as I found the workaround that works flawlessly. I just wanted to share it in this thread so users don't get disappointed by this awesome mica theme.
Not that I know of, but if minor changes to how we do things are enough to break it, it just backs up my earlier comments recommending you do not use this with Opus, as it relies on incorrect assumptions about other software and how other software renders its windows.
For almost 1 year I haven't experienced any issues with this theme itself (except for that transparency loss issue that I fixed with the monitoring script). All menus are visible, no Dopus freezes / crashes, so at least in my case it's very worth to use it.
As someone who used the default Windows Explorer before, moving to Dopus was some kind of degradation when it comes to visual look. Thanks to this theme using Dopus is very enjoyable and it gives a modern experience instead of the plain single-color Windows 8-a-like window.
It would be perfect if Mica (or some other modern Windows style) was added directly to Opus 13 in some update. Seems like Chrome & Firefox already added it. I think the modern look of a super-advanced software like Dopus could bring many new customers.
hey Mona!
i share a very similar mindset to you with regards to aesthetics
is this Mica For Everyone fix still working for you?
i am currently on Directory Opus version 13.13 x64
and
Mica For Everyone 2.0.1.0
i have tried to implement your script (using Settings -> Scripts... right?)... but the issue is i can't find Mica For Everyone's config file. like you said, i need to update the var mica_config_path
variable... but i can't find that for the life of me
any help would be much appreciated. thank you!
Hi. Yes, I'm still using the Mica theme with my script.
When you open "Mica For Everyone", there's a field with the config file:
You can use that config file location, or change it to use some different file.
After that it should be back to normal. Sometimes the config breaks for me, so it's good to keep a backup of the mica config to restore it.
Oh, they released some new Mica version for WinUI... You can use the old one instead: Release v1.3.1.2 ¡ MicaForEveryone/MicaForEveryone ¡ GitHub
@Mona works like a charm!
downgrading to Mica For Everyone v1.3.1.2 did it. your script works perfectly
thank you so much!!
Hi. If you still use this fix script, here's my newest version that fixed some problem where Mica's configuration was getting damaged when script was executed more times at the same time:
function OnInit(initData) {
initData.name = "DopusListerMonitor";
initData.desc = "Monitor lister events to update Mica configuration file";
initData.default_enable = true;
initData.version = "1.1";
initData.min_version = "13.0";
}
/*function OnListerUIChange(ListerUIChangeData) {
if(ListerUIChangeData.change == "minmax"){
DOpus.Output("ListerUIChangeData: " + ListerUIChangeData.change);
UpdateConfigFile();
}
}*/
function OnListerResize(ListerResizeData) {
if(ListerResizeData.action == "resize"){
DOpus.Output("MicaFix: OnListerResize: " + ListerResizeData.action);
UpdateConfigFile();
}
}
function OnActivateLister(activateListerData) {
if(activateListerData.active){
DOpus.Output("MicaFix: Lister activated");
//DOpus.Dlg.Request("Lister activated", "OK");
UpdateConfigFile();
}
}
function UpdateConfigFile() {
var mica_config_path = "D:\\FOLDERY\\SyncSettings\\MicaForEveryone.conf";
var lineToFind = "# DopusFix:";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var lockFilePath = fso.BuildPath(fso.GetParentFolderName(mica_config_path), "doups.lock");
var lockAcquired = false;
try {
// Check for existing lock file
if (fso.FileExists(lockFilePath)) {
var lockFile = fso.GetFile(lockFilePath);
var created = new Date(lockFile.DateCreated);
var now = new Date();
// Delete lock if older than 1 minute
if ((now - created) < 60000) {
DOpus.Output("MicaFix: Another instance is running. Exiting.");
return;
} else {
fso.DeleteFile(lockFilePath);
}
}
// Create new lock file
var lockStream = fso.CreateTextFile(lockFilePath, true);
lockStream.Close();
lockAcquired = true;
// Original configuration update logic
if (!fso.FileExists(mica_config_path)) {
DOpus.Output("MicaFix: Configuration file not found: " + mica_config_path);
return;
}
var inputFile = fso.OpenTextFile(mica_config_path, 1);
var content = [];
var found = false;
var random = Math.floor(Math.random() * 99) + 1;
while (!inputFile.AtEndOfStream) {
var line = inputFile.ReadLine();
if (line.indexOf(lineToFind) !== -1) {
found = true;
line = lineToFind + " " + random;
}
content.push(line);
}
inputFile.Close();
if (!found) {
content.push(lineToFind + " " + random);
}
var outputFile = fso.OpenTextFile(mica_config_path, 2);
for (var i = 0; i < content.length; i++) {
outputFile.WriteLine(content[i]);
}
outputFile.Close();
DOpus.Output("MicaFix: Configuration file updated with random number: " + random);
} catch (e) {
DOpus.Output("MicaFix: Error: " + e.message);
} finally {
// Cleanup lock file
if (lockAcquired) {
try {
fso.DeleteFile(lockFilePath);
} catch (e) {
DOpus.Output("MicaFix: Error removing lock file: " + e.message);
}
}
}
}
It now uses additional lock file to prevent double-execution.