Can I use a dark theme for everything?

General discussion related to "Everything".
Post Reply
geek
Posts: 3
Joined: Wed Nov 23, 2016 4:18 am

Can I use a dark theme for everything?

Post by geek »

I used to use it in the night, so its original ui is too light for me, can I use a dark theme for it?
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Can I use a dark theme for everything?

Post by NotNull »

There are no themes, but you can change individual colors and styles of different types of items in the result list:
Menu:Tools > Options > Fonts and Colours

Change the "Normal" setting and most related settings change with it.

FWIW, my non-default Everything.ini colour settings are:

Code: Select all

normal_background_color=#c0c59c
normal_foreground_color=#0044aa
normal_bold=1
highlighted_foreground_color=#000000
selected_foreground_color=#ffffff
And that makes a huge difference (I dont like staring at a black on white window either; your eyes /brains get tired of that)

EDIT: If you created your 'dark theme', please post it on these forums. Others might benefit from that (I certainly will try it)
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Can I use a dark theme for everything?

Post by NotNull »

BTW: a quick way to get your non-default colour settings, is by issuing next command in a CMD / Powershell console:
(when you are in the folder where your Everything.ini is located)

Code: Select all

findstr  "_bold= _color= _font= _font_size="  .\Everything.ini | findstr /v /e "="
For most people this command will do too:
(without going to the folder where your Everything.ini is located)

Code: Select all

findstr  "_bold= _color= _font= _font_size="  "%APPDATA%\Everything\Everything.ini" | findstr /v /e "="
Stamimail
Posts: 1122
Joined: Sat Aug 31, 2013 9:05 pm

Re: Can I use a dark theme for everything?

Post by Stamimail »

geek wrote:I used to use it in the night, so its original ui is too light for me, can I use a dark theme for it?
I think that the better solution for such a case, is using a dimmer program.
There are many dimmer programs out there, letting you to dim the screen.
From my experience those programs that trying to dim the screen by using "transparent black screen" (like PangoBright), give only a partial solution (they don't manage to dim Alt+Tab screen).
Programs that change color values of a screen (Gamma), are better in this respect.
Now I'm using a program called "Twilight Screen Dimmer". It's an old program so I'm not sure you can find it on internet.
I contacted its developer, Brian, trying to improve a little this app, but it was appear that the source files lost.
... at the bottom line, that's what I got:

Code: Select all

21.9.2015
	
Hi

I would have used the Gamma Ramp API.  This is an extract found with Google:

Some video cards allows you to programmatically modify the Gamma Ramp values. You can use this feature to change the brightness of the entire screen.

The SetDeviceGammaRamp API function receive an array of 256 RGB values. Increasing the values in this array will make your screen brighter, and decreasing these values will make your screen darker. You can also increase or decrease the intensity of the red/green/blue components.

Something like this example, if it is of use:

VAR
  GammaArray: ARRAY[0..2, 0..255] OF Word;

FUNCTION GetBrightNess: integer;
VAR
  Value: integer;
BEGIN
  GammaDC := GetDC(0);

  IF NOT GetDeviceGammaRamp(GammaDC, GammaArray) THEN BEGIN
    RESULT := 0;
    EXIT;
  END;

  ReleaseDC(0, GammaDC);
  Value := GammaArray[0, 127] + GammaArray[1, 127] + GammaArray[2, 127];

  RESULT := (Value DIV 381) - 128;
END;

FUNCTION SetDisplayBrightness(Brightness: Byte): Boolean;
VAR
  I, Value: Integer;
BEGIN
  Result := False;
  GammaDC := GetDC(0);

  IF GammaDC <> 0 THEN BEGIN
    FOR I := 0 TO 255 DO BEGIN
      Value := I * (Brightness + 128);
      IF Value > 65535 THEN
        Value := 65535;
      GammaArray[0, I] := Value; // R value of I is mapped to brightness of Value
      GammaArray[1, I] := Value; // G value of I is mapped to brightness of Value
      GammaArray[2, I] := Value; // B value of I is mapped to brightness of Value
    END;

    Result := SetDeviceGammaRamp(GammaDC, GammaArray);

    ReleaseDC(0, GammaDC);
  END;
END;

I would have reduced/increased Brightness in SetDisplayBrightness with the slider.

Hope that helps

Brian
I'm not a developer, so i can't go on. :(

Anyway, my main suggestions for improvement were:

Code: Select all

My suggetsions:
1. Make it Portable, Settings will be in INI fille.
2. You should make it a way, that when the app exit or crashed, the default values are restored.
3. You may add a Parameter for the EXE, so that we can make a .lnk file with this Paramete, to Start/Exit the program by this .lnk file.
Cleoss
Posts: 27
Joined: Wed Mar 07, 2018 7:10 am

Re: Can I use a dark theme for everything?

Post by Cleoss »

NotNull wrote:BTW: a quick way to get your non-default colour settings, is by issuing next command in a CMD / Powershell console:

Code: Select all

findstr  "_bold= _color= _font= _font_size="  .\Everything.ini | findstr /v /e "="
Thx for idea for the script! Now we have a script that changes all params we want AT ONCE.
NotNull wrote:FWIW, my non-default Everything.ini colour settings are:

Code: Select all

normal_background_color=#c0c59c
normal_foreground_color=#0044aa
normal_bold=1
highlighted_foreground_color=#000000
selected_foreground_color=#ffffff
EDIT: If you created your 'dark theme', please post it on these forums. Others might benefit from that (I certainly will try it)
With my script you can put some strings with Everything's parameters (and set for them all values as u like it) to the file "Evytn.ini" (which must lay in the same folder with the script), and this script will copy all parameters to the main Everything's ssettings' file "Everything.ini", once u run that script from the Clickermann it will apply selected sets and reload the Everything with these new settings. With this script u can share ur fav settings with forum members and apply them fast. You need to show only those settings that u need (it could be a single parameters). Sure, parameters shouldn't be blank. And everybody can rapidly create color schemes, test them and then post to this topic!

Disclaimer: please, backup your setting file "Everything.ini" before you run the script!

Here's the script:

Code: Select all

// 08-Mar-2018
#name "iniCy"
$input="Evytn.ini"
//%APPDATA%\Everything\Everything.ini
$output="E:\port\PortableApps\~~etc\Everything-1.4.1.877.x64\Everything.ini" //err wit iniwr
//$output="Everything.ini"
$output2="Everything.ini"
//$tmp="E:\port\PortableApps\~~clickermann_last\Clickermann4.13b3\projects\tmp\"
$tmp="E:\port\PortableApps\~~clickermann_last\Clickermann4.13b3\projects\"
$output3=strconcat($tmp,$output2)
$defaultDiv="Everything"
$app="E:\port\PortableApps\~~etc\Everything-1.4.1.877.x64\Everything.exe"
logclear
$amt=600
$bat="cy.bat"

execute($app,"-exit")
print("Reopening the app!")
wait(5)
print("Press NO in Error/EXECUTE dialogue twice!!!")
$quot=tfread("quot.txt",1)
copy /Y "C:\Clickermann\projects\1.txt" "C:\Clickermann\projects\1_copy.txt"
$bat1=strconcat("copy /Y ",$quot,$output,$quot," ",$quot,$output3,$quot)
strwriteln($bat,$bat1,1)
waitms($amt)
execute($bat)
wait(5)

$lnz=tfCount($input)

$parsed=0
$inln=0
while($parsed=0)
   inc($inln)
   if($inln>$lnz)
      $parsed=1
   end_if
   //$curln=strReadLn($input,$inln)//err
   $curln=tfRead($input,$inln)
   if(strcut($curln,1,1)="[")
      arrpush($divs,$inln)
      $curdiv=strcut2($curln,2,strlen($curln)-1)
      arrpush($divs,$curdiv)
      //print("Line ",$inln,": Div ",$curdiv)
   end_if
end_cyc
arrpush($divs,$lnz+1)
$divamt=int(arrsize($divs)/2)
print("Totally ",$divamt," div(s). ")
if($divamt=0)
   arrpush($divs,1)
   arrpush($divs,$defaultDiv)
   $divamt=1
end_if
for($i=0,$i<$divamt)//+1
   $curdiv=$divs[$i*2+1]
   print($curdiv,": ")
   $params=0
   $blank=0
   for($j=$divs[$i*2]+1,$j<$divs[$i*2+2])
      $curline=strReadLn($input,$j)
      $eq=strpos($curline,"=")
      if($eq=0)
         //print("No params in the line! ")
      else
         $curpar=strcut2($curline,1,$eq-1)
         $curval=strcut2($curline,$eq,strlen($curline))
         inc($params)
         //print($curval)
         //print($curpar, " iZ ",$curval," (",strlen($curval),") ")
         if(strlen($curval)>1)// err with ="=#"
            //print("!")
            $val=strcut2($curval,2,strlen($curval))
            //print($curpar, " iZ ",$val)
            INIWRITE($output2,$curpar,$val,$curdiv)//err wi $output3
            inc($blank)
            waitms(900)
            
         else
            //print($curpar, " iZ ",strcut2($curval,2,strlen($curval)))
            //print($curpar, " iZ ",$curval)
         end_if
      end_if
   end_cyc
   print($params," param(s) in the div, ",$blank," of them are NOT blank!")
end_cyc
print("Launching the app!")
$bat2=strconcat("copy /Y ",$quot,$output3,$quot," ",$quot,$output,$quot)
strwriteln($bat,$bat2,1)
waitms($amt)
execute($bat)
wait(3)
execute($app)
halt
One problem we got during the script execution is that u should close the error messages twice per cycle, but u can switch off one of them in Settings > Interpretation > Ignore run-time errors > Apply. Both errors looks so:
Image and Image
So each run plz press "No" buttons (two times per run). Unfortunatelly, I can't correct these errors in the script. Before using the script, u should set it up with the path to both ur ini-files.

The copy of script is enclosured to the post, too (in 7Zip archieve, 1kb).

Stamimail wrote:I think that the better solution for such a case, is using a dimmer program.
From my experience those programs that trying to dim the screen by using "transparent black screen" (like PangoBright), give only a partial solution (they don't manage to dim Alt+Tab screen).
Programs that change color values of a screen (Gamma), are better in this respect.
Now I'm using a program called "Twilight Screen Dimmer". It's an old program so I'm not sure you can find it on internet.
I contacted its developer, Brian, trying to improve a little this app, but it was appear that the source files lost.
... at the bottom line, that's what I got:

Code: Select all

VAR
  GammaArray: ARRAY[0..2, 0..255] OF Word;

FUNCTION GetBrightNess: integer;
VAR
  Value: integer;
BEGIN
  GammaDC := GetDC(0);
I'm not a developer, so i can't go on. :(

Anyway, my main suggestions for improvement were:

Code: Select all

My suggetsions:
1. Make it Portable, Settings will be in INI fille.
2. You should make it a way, that when the app exit or crashed, the default values are restored.
3. You may add a Parameter for the EXE, so that we can make a .lnk file with this Paramete, to Start/Exit the program by this .lnk file.
I use dimmers, too. In the Windows I use dimmer of year 2007th by Nelson Pires, simple app with slider, but it has no development. It has the same lags as the app u mentioned (PangoBright, I tested it) are:
  • It blocks the popuping of Windows' task panel with its transparent layer which is over all windows.
  • As u wrote, it dims not all windows. But I know how to correct partially this behaviour. First, you need to elevate the app upto admin, the second is that it's dimming only that windows that was opened during its launch, so it can't recognize new windows, but u can reopen the dimmer. But however it won't dim the Alt-Tab windows coz it's "new" each time, it's created from the scratch.
But anyway this dimmer by N. Pires has some profits u noticed above:
  1. it's tiny et portable
  2. It has transparency setting in xml file, it seems to store it on change, so it can restore em after crash, or otherwise u can automatically write there a value u need, coz it's just a text in xml format, it's not binary
  3. has a wide range of opacity (5--95 percent), more than in Pango, and steps are percents, not 10s of percents
The code u supplied above is like Pascal for me, but I'm not sure. I used one well-known dimmer that changes gamma, but I didn't like it: it's uncontrolable and has just a bit of settings.

On my Android with amOLED I use the dimmer Image "Display Brightness", it can adjust phone screen brightness upto 0% (from ver. 5.1?), very nice on OLED in the darkness. Also it has useful invisible overlay button which is accessible all the time, and a lot of other features.
Attachments
196_iniCy_080318+.7z
Utility2copyIniParametres2mainSettings.IniFile
(1.15 KiB) Downloaded 836 times
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Can I use a dark theme for everything?

Post by NotNull »

Cleoss wrote: With my script you can put some strings with Everything's parameters (and set for them all values as u like it) to the file "Evytn.ini" (which must lay in the same folder with the script), and this script will copy all parameters to the main Everything's ssettings' file "Everything.ini", once u run that script from the Clickermann it will apply selected sets and reload the Everything with these new settings. With this script u can share ur fav settings with forum members and apply them fast. You need to show only those settings that u need (it could be a single parameters). Sure, parameters shouldn't be blank. And everybody can rapidly create color schemes, test them and then post to this topic!

Disclaimer: please, backup your setting file "Everything.ini" before you run the script!
I use a CMD script for that same purpose:
  • Create a textfile with settings to change. Format can be

    Code: Select all

    [Everything]
    maximized=1
    alternate_row_color=1
    
    or

    Code: Select all

    maximized=1
    alternate_row_color=1
  • Drag this file to INJECT.cmd
  • Done
The script will stop a running Everything, inject the settings and start Everything.

Don't forget to change the settings (INI= ; EXE=) in the script to your situation


INJECT.cmd

Code: Select all

@echo off
setlocal
::______________________________________
::
::	SETTINGS
::______________________________________
::

::	Location of Everything.exe
	set EXE=c:\tools\everything\everything.exe
::	Location of Everything.ini
	set INI=c:\tools\everything\everything.ini

	
::______________________________________
::
::	INIT
::______________________________________
::

::	Check parms
	If not exist %1 (
		echo File does not exist!
		pause
		goto :EOF
	)

::	Create backup
	copy /y "%INI%" "%INI%.InjectBackup"

::______________________________________
::
::	ACTION!
::______________________________________
::

::	Stop running Everything
	start /wait "" "%EXE%" -quit

::	Inject settings	
	copy "%INI%" + %1 "%INI%"

::	Start Everything
	start "" "%EXE%"

Stamimail wrote:I think that the better solution for such a case, is using a dimmer program.
Try f.lux
You can unzip the installer (it's a SFX) and run flux.exe. If you're asked for elevation: ignore it; it's not needed.
Cleoss
Posts: 27
Joined: Wed Mar 07, 2018 7:10 am

Re: Can I use a dark theme for everything?

Post by Cleoss »

NotNull wrote: I use a CMD script for that same purpose:
  • Drag the file to INJECT.cmd
  • Done
The script will stop a running Everything, inject the settings and start Everything.
Don't forget to change the settings (INI= ; EXE=) in the script to your situation


INJECT.cmd

Code: Select all

@echo off
setlocal
::______________________________________
::
::	SETTINGS
::______________________________________
::

::	Location of Everything.exe
	set EXE=c:\tools\everything\everything.exe
::	Location of Everything.ini
	set INI=c:\tools\everything\everything.ini

	
::______________________________________
::
::	INIT
::______________________________________
::

::	Check parms
	If not exist %1 (
		echo File does not exist!
		pause
		goto :EOF
	)

::	Create backup
	copy /y "%INI%" "%INI%.InjectBackup"

::______________________________________
::
::	ACTION!
::______________________________________
::

::	Stop running Everything
	start /wait "" "%EXE%" -quit

::	Inject settings	
	copy "%INI%" + %1 

::	Start Everything
	start "" "%EXE%"

It's nice solution, it's even faster than mine :D Good that you can master that PowerSheel script quick! I've saved it to my scripts))
Stamimail wrote:I think that the better solution for such a case, is using a dimmer program.
NotNull wrote:Try f.lux
You can unzip the installer (it's a SFX) and run flux.exe. If you're asked for elevation: ignore it; it's not needed.
I tried FLux, and I was writing exactly about it, but I didn't like the way the app changes gamma, that orange tint.
buza
Posts: 1
Joined: Mon Mar 16, 2020 10:53 am

Re: Can I use a dark theme for everything?

Post by buza »

Here's a nice batch script, I took this theme from https://www.reddit.com/r/Windows10/comm ... ark_theme/

and just turned it to a batch script (because I need to do this every format).

```
echo normal_background_color=#1a1c1e >> "%APPDATA%\Everything\Everything.ini"
echo normal_foreground_color=#ffffff >> "%APPDATA%\Everything\Everything.ini"
echo highlighted_background_color=#1a1c1e >> "%APPDATA%\Everything\Everything.ini"
echo highlighted_foreground_color=#8ac5ff >> "%APPDATA%\Everything\Everything.ini"
echo current_sort_background_color=#21262b >> "%APPDATA%\Everything\Everything.ini"
echo current_sort_highlighted_background_color=#21262b >> "%APPDATA%\Everything\Everything.ini"
echo current_sort_highlighted_foreground_color=#8ac5ff >> "%APPDATA%\Everything\Everything.ini"
echo selected_background_color=#575e64 >> "%APPDATA%\Everything\Everything.ini"
echo selected_foreground_color=#ffffff >> "%APPDATA%\Everything\Everything.ini"
echo selected_highlighted_background_color=#575e64 >> "%APPDATA%\Everything\Everything.ini"
echo selected_highlighted_foreground_color=#8ac5ff >> "%APPDATA%\Everything\Everything.ini"
echo selected_inactive_background_color=#303435 >> "%APPDATA%\Everything\Everything.ini"
echo selected_inactive_foreground_color=#ffffff >> "%APPDATA%\Everything\Everything.ini"
echo selected_inactive_highlighted_background_color=#303435 >> "%APPDATA%\Everything\Everything.ini"
echo selected_inactive_highlighted_foreground_color=#8ac5ff >> "%APPDATA%\Everything\Everything.ini"
echo mouseover_background_color=#3a3f43 >> "%APPDATA%\Everything\Everything.ini"
echo mouseover_highlighted_background_color=#3a3f43 >> "%APPDATA%\Everything\Everything.ini"
echo mouseover_highlighted_foreground_color=#8ac5ff >> "%APPDATA%\Everything\Everything.ini"
echo mouseover_current_sort_highlighted_background_color=#3a3f43 >> "%APPDATA%\Everything\Everything.ini"
echo mouseover_current_sort_highlighted_foreground_color=#8ac5ff >> "%APPDATA%\Everything\Everything.ini"
```
O I'm_not_a_Robot
Posts: 1
Joined: Sun Nov 22, 2020 9:49 pm

Re: Can I use a dark theme for everything?

Post by O I'm_not_a_Robot »

Why don't you just get a dark windows 10 themepack? Much better than any "dimmer" tool and works with most desktop apps automatically.

This is not the official "dark-mode" by the way, that one changes just the explorer window.
Check out deviantart.com -> category 'Customization'. There's some great dark themes that integrate perfectly with Windows 10s dark-mode so that most applications use a dark design by default without having to modify anything. Some are made to match the default windows UI as much as possible.

Don't forget to enable system-restore and create a restore point before messing with your system. This stuff can render your system unbootable if you miss certain critical things to do. So do yourself the favor and make a restore point. You can delete it after your theme is up and running obviously.

Its really not complicated to get a custom theme to work, and there are great guides over at deviantart.
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Can I use a dark theme for everything?

Post by NotNull »

I did try that a couple of years ago. It worked for about half of the controls in Everything, so it looked like Everything had the measles :)
Skinerrrr!
Posts: 6
Joined: Tue May 05, 2020 5:56 pm

Re: Can I use a dark theme for everything?

Post by Skinerrrr! »

Hi,

While working through the thread at Executing CMD.exe with current path from context menu, I encountered an issue where INJECT.cmd didn't seem to work -- it wasn't applying any of the changes to Everything.ini at all.

I eventually figured out that it was due to a small problem in INJECT.cmd:

Code: Select all

....
::	Inject settings	
	copy "%INI%" + %1
....	
By specifying the "+", the intent is to have COPY replace the original "%INI%" by combining (appending) it with %1.

The problem is that the COPY above uses an implied destination (the current default directory), not an explicit one. When you "Drag this file to INJECT.cmd," Windows sets the current default directory to be the one where INJECT.cmd is located.

The solution is to change the COPY to use an explicit destination:

Code: Select all

....
::	Inject settings	
	copy "%INI%" + %1 "%INI%"
....	
Glennas

Re: Can I use a dark theme for everything?

Post by Glennas »

Thanks for all the answer, this is just what I am looking for.
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Can I use a dark theme for everything?

Post by NotNull »

Skinerrrr! wrote: Fri Apr 23, 2021 5:06 am I eventually figured out that it was due to a small problem in INJECT.cmd:
Huh, missed this post completely somehow. Thanks for fixing (and posting :thumbsup:), @Skinerrrr!
Fixed the original scrip too.


Glennas wrote: Tue Jun 15, 2021 7:42 pm Thanks for all the answer, this is just what I am looking for.
For a ready to run solution - including a couple of themes - take a look at the Download Color themes for Everything thread.
(where it uses copy "%INI%" + %1 "%INI%", btw ;))


And .. Everything 1.5 -the alpha version is available for testing - has a *real* dark mode, so including menu, search bar, etcetera!
Post Reply