├── .gitattributes
├── dlgbmp.bmp
├── icon.ico
├── bannrbmp.bmp
├── screenshot.png
├── docs
├── screenshot.png
└── index.html
├── update-docs.cmd
├── .gitignore
├── test.cmd
├── toggle.wixproj
├── .vscode
├── c_cpp_properties.json
├── launch.json
├── tasks.json
└── settings.json
├── Makefile
├── LICENSE.txt
├── toggle.exe.manifest
├── CMakeLists.txt
├── vc.bat
├── toggle.rc
├── LICENSE.rtf
├── README.md
├── toggle.wxs
└── toggle.c
/.gitattributes:
--------------------------------------------------------------------------------
1 | Makefile eol=lf
--------------------------------------------------------------------------------
/dlgbmp.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/danielgjackson/toggle-dark-light/HEAD/dlgbmp.bmp
--------------------------------------------------------------------------------
/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/danielgjackson/toggle-dark-light/HEAD/icon.ico
--------------------------------------------------------------------------------
/bannrbmp.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/danielgjackson/toggle-dark-light/HEAD/bannrbmp.bmp
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/danielgjackson/toggle-dark-light/HEAD/screenshot.png
--------------------------------------------------------------------------------
/docs/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/danielgjackson/toggle-dark-light/HEAD/docs/screenshot.png
--------------------------------------------------------------------------------
/update-docs.cmd:
--------------------------------------------------------------------------------
1 | @pushd %~dp0
2 | pandoc --shift-heading-level-by=-1 -s README.md -o docs/index.html
3 | copy /y screenshot.png docs
4 | @popd
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /*.exe
2 | /*.obj
3 | /*.res
4 | /*.o
5 | /*.pdb
6 | /*.ilk
7 | _local
8 | /*.wixobj
9 | /*.wixpdb
10 | /*.msi
11 | /build
12 | /obj
13 | /bin
14 |
--------------------------------------------------------------------------------
/test.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 | call .\build.cmd
3 | if errorlevel 1 (
4 | echo ERROR: Not running, build failed.
5 | goto :eof
6 | )
7 | .\toggle.exe /CONSOLE:ATTACH /TOGGLE /EXIT
8 |
--------------------------------------------------------------------------------
/toggle.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.vscode/c_cpp_properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations": [
3 | {
4 | "name": "Win32",
5 | "includePath": [
6 | "${workspaceFolder}/**"
7 | ],
8 | "defines": [
9 | "_DEBUG",
10 | "UNICODE",
11 | "_UNICODE"
12 | ],
13 | "windowsSdkVersion": "10.0.18362.0",
14 | "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/cl.exe",
15 | "cStandard": "c11",
16 | "cppStandard": "c++17",
17 | "intelliSenseMode": "msvc-x64"
18 | }
19 | ],
20 | "version": 4
21 | }
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # To build with native Windows toolchain use: build.cmd
2 | #
3 | # To cross-compile from WSL:
4 | #
5 | # wsl sudo apt install build-essential gcc-mingw-w64 && wsl make
6 |
7 | BIN_NAME = toggle.exe
8 | CC = x86_64-w64-mingw32-gcc
9 | CFLAGS = -m64 -O3 -Wall -municode -DUNICODE -D_UNICODE
10 | LIBS = -luser32 -lgdi32 -lcomctl32 -lshell32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -lwbemuuid -ldxva2 -lversion
11 |
12 | RES = $(wildcard *.rc)
13 | SRC = $(wildcard *.c)
14 | INC = $(wildcard *.h)
15 |
16 | all: $(BIN_NAME)
17 |
18 | $(BIN_NAME): Makefile $(SRC) $(INC) $(RES)
19 | x86_64-w64-mingw32-windres -i $(RES) -o $(RES:.rc=_res.o)
20 | $(CC) -std=c99 -o $(BIN_NAME) $(CFLAGS) $(SRC) $(RES:.rc=_res.o) -I/usr/x86_64-w64-mingw32/include -I/usr/local/include -L/usr/x86_64-w64-mingw32/lib -L/usr/local/lib $(LIBS)
21 |
22 | clean:
23 | rm -f *.o $(BIN_NAME)
24 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "(Windows) Launch",
9 | "type": "cppvsdbg",
10 | "request": "launch",
11 | "program": "${workspaceFolder}/toggle.exe",
12 | "args": [
13 | //"/CONSOLE:DEBUG",
14 | "/CONSOLE:CREATE",
15 | //"/EXIT",
16 | ],
17 | "stopAtEntry": false,
18 | "cwd": "${workspaceFolder}",
19 | "environment": [],
20 | "externalConsole": false,
21 | "preLaunchTask": "Build Project",
22 | }
23 | ]
24 | }
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2021-2024 Daniel Jackson
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
--------------------------------------------------------------------------------
/toggle.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | true
18 | PerMonitorV2
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [
4 | {
5 | "label": "Build Project",
6 | "dependsOn": ["Build Resource", "Build Code"],
7 | "group": {
8 | "kind": "build",
9 | "isDefault": true
10 | }
11 | },
12 | {
13 | "type": "shell",
14 | "label": "Build Resource",
15 | "command": "./vc.bat",
16 | "args": [
17 | "rc.exe",
18 | "/nologo",
19 | "${workspaceFolder}\\toggle.rc",
20 | ],
21 | "options": {
22 | "cwd": "${workspaceFolder}"
23 | },
24 | "problemMatcher": [
25 | "$msCompile"
26 | ]
27 | },
28 | {
29 | "type": "shell",
30 | "label": "Build Code",
31 | "command": "./vc.bat",
32 | "args": [
33 | "cl.exe",
34 | "/nologo",
35 | "/Zi",
36 | "/EHsc",
37 | "/DUNICODE",
38 | "/D_UNICODE",
39 | "${workspaceFolder}\\*.c",
40 | "/link",
41 | "/out:${workspaceFolder}\\toggle.exe",
42 | "${workspaceFolder}\\toggle.res",
43 | "/subsystem:windows"
44 | ],
45 | "options": {
46 | "cwd": "${workspaceFolder}"
47 | },
48 | "problemMatcher": [
49 | "$msCompile"
50 | ]
51 | }
52 | ]
53 | }
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.4)
2 |
3 | set(CMAKE_SYSTEM_NAME Windows)
4 | IF(WIN32)
5 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
6 | ELSE()
7 | set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
8 | set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
9 | set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
10 | set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) # https://gitlab.kitware.com/cmake/cmake/-/issues/20500
11 | set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
12 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
13 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
14 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
15 | set(MINGW TRUE)
16 | ENDIF()
17 |
18 | project(toggle)
19 |
20 | add_executable(toggle WIN32 toggle.c)
21 | add_definitions(-DUNICODE -D_UNICODE)
22 | target_link_libraries(toggle user32 gdi32 comctl32 shell32 advapi32 comdlg32 ole32 oleaut32 wbemuuid dxva2 version)
23 | IF(MINGW)
24 | target_link_libraries(toggle "-municode")
25 | ENDIF()
26 | target_sources(toggle PRIVATE toggle.rc)
27 | #target_sources(toggle PRIVATE toggle.exe.manifest)
28 | # Release binary output at top level
29 | set_target_properties(toggle PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "..")
30 |
31 | # cmake -S . -B build && cmake --build build --config Release
32 |
--------------------------------------------------------------------------------
/vc.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 | IF NOT DEFINED VCPARAMS SET VCPARAMS=x86
3 | SETLOCAL EnableDelayedExpansion
4 |
5 | SET FIND_CL=
6 | FOR %%p IN (cl.exe) DO SET "FIND_CL=%%~$PATH:p"
7 | IF DEFINED FIND_CL (
8 | ENDLOCAL
9 | GOTO RUN
10 | )
11 |
12 | SET VCVARSALL=
13 | FOR %%f IN (70 71 80 90 100 110 120 130 140) DO IF EXIST "!VS%%fCOMNTOOLS!\..\..\VC\vcvarsall.bat" SET VCVARSALL=!VS%%fCOMNTOOLS!\..\..\VC\vcvarsall.bat
14 | FOR /F "usebackq tokens=*" %%f IN (`DIR /B /ON "%ProgramFiles(x86)%\Microsoft Visual Studio\????"`) DO FOR %%g IN (Community Professional Enterprise) DO IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\%%f\%%g\VC\Auxiliary\Build\vcvarsall.bat" SET "VCVARSALL=%ProgramFiles(x86)%\Microsoft Visual Studio\%%f\%%g\VC\Auxiliary\Build\vcvarsall.bat"
15 | FOR /F "usebackq tokens=*" %%f IN (`DIR /B /ON "%ProgramFiles%\Microsoft Visual Studio\????"`) DO FOR %%g IN (Community Professional Enterprise) DO IF EXIST "%ProgramFiles%\Microsoft Visual Studio\%%f\%%g\VC\Auxiliary\Build\vcvarsall.bat" SET "VCVARSALL=%ProgramFiles%\Microsoft Visual Studio\%%f\%%g\VC\Auxiliary\Build\vcvarsall.bat"
16 | IF DEFINED VCVARSALL (
17 | ENDLOCAL
18 | SET "VCVARSALL=%VCVARSALL%"
19 | GOTO VCVARS
20 | )
21 | ECHO Error: Cannot locate C compiler environment 'vcvarsall.bat'.
22 | EXIT /B 1
23 | GOTO :EOF
24 |
25 | :VCVARS
26 | @ECHO ON
27 | CALL "%VCVARSALL%" %VCPARAMS%
28 | @ECHO OFF
29 |
30 | :RUN
31 | @ECHO ON
32 | %*
--------------------------------------------------------------------------------
/toggle.rc:
--------------------------------------------------------------------------------
1 | #include
2 | //#include
3 | CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "toggle.exe.manifest"
4 | MAINICON ICON "icon.ico"
5 |
6 | // File and product versions will be identical
7 | #define STRINGIZE_HELPER(x) #x
8 | #define STRINGIZE(x) STRINGIZE_HELPER(x)
9 | #define VER_MAJOR 1
10 | #define VER_MINOR 0
11 | #define VER_BUILD 14 // Patch ('build' in MS version order)
12 | #define VER_REVISION 0 // Build ('revision' in MS version order)
13 | #define VER_STRING STRINGIZE(VER_MAJOR) "." STRINGIZE(VER_MINOR) "." STRINGIZE(VER_BUILD) "." STRINGIZE(VER_REVISION)
14 |
15 | VS_VERSION_INFO VERSIONINFO
16 | FILEVERSION VER_MAJOR,VER_MINOR,VER_BUILD,VER_REVISION
17 | PRODUCTVERSION VER_MAJOR,VER_MINOR,VER_BUILD,VER_REVISION
18 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
19 | FILEFLAGS 0
20 | FILEOS VOS_NT
21 | FILETYPE VFT_APP
22 | BEGIN
23 | BLOCK "StringFileInfo"
24 | BEGIN
25 | BLOCK "040904E4"
26 | BEGIN
27 | VALUE "Comments", "Toggle between Windows dark mode and light mode."
28 | VALUE "CompanyName", "danielgjackson"
29 | VALUE "FileDescription", "Toggle Dark-Light Mode"
30 | VALUE "FileVersion", VER_STRING
31 | VALUE "InternalName", "toggle"
32 | VALUE "LegalCopyright", "(C)2021-2024 Daniel Jackson (MIT License)"
33 | VALUE "OriginalFilename", "toggle.exe"
34 | VALUE "ProductName", "Toggle Dark-Light Mode"
35 | VALUE "ProductVersion", VER_STRING
36 | END
37 | END
38 | BLOCK "VarFileInfo"
39 | BEGIN
40 | VALUE "Translation", 0x0809,1200
41 | END
42 | END
43 |
--------------------------------------------------------------------------------
/LICENSE.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang2057{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}{\f1\fnil\fcharset0 Calibri;}}
2 | {\colortbl ;\red0\green0\blue255;}
3 | {\*\generator Riched20 10.0.19041}\viewkind4\uc1
4 | \pard\nowidctlpar\sa200\sl276\slmult1\f0\fs22\lang9 Toggle Dark-Light is Open Source under the MIT License: {{\field{\*\fldinst{HYPERLINK https://github.com/danielgjackson/toggle-dark-light }}{\fldrslt{https://github.com/danielgjackson/toggle-dark-light\ul0\cf0}}}}\f0\fs22\par
5 | Copyright 2021-2024 Daniel Jackson\par
6 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
9 |
10 | \pard\sa200\sl276\slmult1\f1\par
11 | }
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Toggle Dark/Light Mode
2 |
3 | Single click toggle between dark mode and light mode using an icon in the Windows taskbar notification area (system tray). This may be useful for anyone working under significantly changing background or reflected light levels.
4 |
5 | 
6 |
7 | This is an open source ([MIT License](https://github.com/danielgjackson/toggle-dark-light/blob/master/LICENSE.txt)) application, and the project repository is at:
8 |
9 | * [github.com/danielgjackson/toggle-dark-light](https://github.com/danielgjackson/toggle-dark-light)
10 |
11 |
12 | ## Installation
13 |
14 | 1. Download the installer `toggle.msi` from:
15 |
16 | * [Releases](https://github.com/danielgjackson/toggle-dark-light/releases/latest)
17 |
18 | 2. Double-click to run the downloaded installer. As Windows will not recognize the program, you may need to select *More info* / *Run anyway*. Follow the prompts to install the application.
19 |
20 | 3. The application will run after installation (by default), and an icon for *Toggle Dark/Light Mode* will appear in the taskbar notification area (system tray). It might be in the *Taskbar overflow* menu behind the **ᐱ** symbol (this can be changed in the *Taskbar Settings*).
21 |
22 |
23 | ## Use
24 |
25 | 1. Left-click the icon to immediately toggle dark/light mode.
26 |
27 | 2. Use the shortcut key combination Win+Shift+D to toggle between dark and light mode.
28 |
29 | 3. Right-click the icon for a menu:
30 |
31 | * *Toggle Dark/Light Mode* - Toggles between dark and light modes (same as left-clicking the icon).
32 | * *Auto-Start* - Toggles whether the executable will be automatically run when you log in.
33 | * *Save Debug Info* - This will prompt to save a text (`.txt`) file with debugging information.
34 | * *About* - Information about the program.
35 | * *Exit* - Stops the program and removes the icon. (If *Auto-Start* is enabled, it will start when you log-in again)
36 |
37 |
38 | ## Advanced Use
39 |
40 | You do not need to install the application, but instead just download and run the `toggle.exe` executable directly (i.e. as a *portable app*).
41 |
42 | The executable takes command-line options and can be used to directly set the mode and optionally exit without remaining as an icon in the taskbar notification area, for example:
43 |
44 | * `toggle /TOGGLE /EXIT`
45 | * `toggle /LIGHT /EXIT`
46 | * `toggle /DARK /EXIT`
47 |
48 | ---
49 |
50 | * [danielgjackson.github.io/toggle-dark-light](https://danielgjackson.github.io/toggle-dark-light)
51 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "cSpell.words": [
3 | "ABORTIFHUNG",
4 | "advapi",
5 | "ALLEVENTS",
6 | "ALLOWDUPLICATE",
7 | "APIENTRY",
8 | "APPWINDOW",
9 | "ASSOCCHANGED",
10 | "BOTTOMALIGN",
11 | "BSTR",
12 | "CANCELTRYCONTINUE",
13 | "CENTERALIGN",
14 | "CIMTYPE",
15 | "CIMV",
16 | "CLIPCHILDREN",
17 | "CLIPSIBLINGS",
18 | "CLSID",
19 | "COINIT",
20 | "comctl",
21 | "Comdlg",
22 | "commctrl",
23 | "CONIN",
24 | "CONOUT",
25 | "CONTEXTMENU",
26 | "CONTROLPARENT",
27 | "CREATEPROCESS",
28 | "CTLCOLORSTATIC",
29 | "Cust",
30 | "danielgjackson",
31 | "DCOM",
32 | "DEFBUTTON",
33 | "DELA",
34 | "DWMCOMPOSITIONCHANGED",
35 | "Dxva",
36 | "ENDSESSION",
37 | "EOAC",
38 | "EXSTYLE",
39 | "FILEFLAGS",
40 | "FILEFLAGSMASK",
41 | "FILEOS",
42 | "FILEVERSION",
43 | "FIXEDFILEINFO",
44 | "ftprintf",
45 | "GETDEFID",
46 | "GETNONCLIENTMETRICS",
47 | "GETWORKAREA",
48 | "GWLP",
49 | "HBRUSH",
50 | "HCURSOR",
51 | "HFONT",
52 | "HICON",
53 | "HINSTANCE",
54 | "HINTERNET",
55 | "HKCU",
56 | "HKEY",
57 | "HMENU",
58 | "HREDRAW",
59 | "HRESULT",
60 | "HRGN",
61 | "HSCROLL",
62 | "HWND",
63 | "ICONERROR",
64 | "ICONINFORMATION",
65 | "ICONWARNING",
66 | "IDCANCEL",
67 | "IDCONTINUE",
68 | "IDLIST",
69 | "IDOK",
70 | "IDTRYAGAIN",
71 | "INITCOMMONCONTROLSEX",
72 | "INPROC",
73 | "LEFTALIGN",
74 | "LOWORD",
75 | "LPARAM",
76 | "LPEDITMENU",
77 | "lpfn",
78 | "LPMONITORINFO",
79 | "LPOFNHOOKPROC",
80 | "lpsapi",
81 | "lpstr",
82 | "lpsz",
83 | "LRESULT",
84 | "LSTATUS",
85 | "MAINICON",
86 | "MAKEINTRESOURCE",
87 | "MAKELPARAM",
88 | "manifestdependency",
89 | "MENUDROPALIGNMENT",
90 | "NIIF",
91 | "NOACTIVATE",
92 | "NOMIN",
93 | "NOMOVE",
94 | "NONCLIENTMETRICS",
95 | "NONOTIFY",
96 | "NOPORTABLE",
97 | "NOREPEAT",
98 | "NOSIZE",
99 | "NOSOUND",
100 | "NOTIFYCALLBACK",
101 | "NOTIFYICON",
102 | "NOTIFYICONDATA",
103 | "NOZORDER",
104 | "OKCANCEL",
105 | "oleaut",
106 | "OPENFILENAME",
107 | "OVERWRITEPROMPT",
108 | "POSTMESSAGE",
109 | "PRECONFIG",
110 | "PRODUCTVERSION",
111 | "psapi",
112 | "RBUTTONUP",
113 | "RIGHTALIGN",
114 | "RIGHTBUTTON",
115 | "SENDNOTIFYMESSAGE",
116 | "SETDEFID",
117 | "SETFONT",
118 | "SETTINGCHANGE",
119 | "SETVERSION",
120 | "SHCNE",
121 | "SHCNF",
122 | "SHOWHELP",
123 | "SHOWTIP",
124 | "SMTO",
125 | "sntprintf",
126 | "stprintf",
127 | "STRINGIZE",
128 | "SYSCOLORCHANGE",
129 | "TASKDIALOG",
130 | "TASKDIALOGCONFIG",
131 | "tcscmp",
132 | "tcscpy",
133 | "tcsicmp",
134 | "tcslen",
135 | "tcsnccmp",
136 | "tcsncmp",
137 | "TDCBF",
138 | "tfopen",
139 | "THEMECHANGED",
140 | "THICKFRAME",
141 | "tmain",
142 | "TOOLWINDOW",
143 | "Uninitialize",
144 | "USEDEFAULT",
145 | "VERSIONINFO",
146 | "VREDRAW",
147 | "Wbem",
148 | "wbemuuid",
149 | "wcex",
150 | "wininet",
151 | "winuser",
152 | "WMAPP",
153 | "WNDCLASSEX",
154 | "WORKAREA",
155 | "WPARAM"
156 | ]
157 | }
--------------------------------------------------------------------------------
/toggle.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Toggle Dark/Light Mode
8 |
157 |
160 |
161 |
162 |
163 |
Toggle Dark/Light Mode
164 |
165 |
Single click toggle between dark mode and light mode using an icon in
166 | the Windows taskbar notification area (system tray). This may be useful
167 | for anyone working under significantly changing background or reflected
168 | light levels.
169 |
170 |
172 | Screenshot showing the application icon
173 | in the notification area
174 |
175 |
This is an open source (MIT
177 | License) application, and the project repository is at:
Double-click to run the downloaded installer. As Windows will not
190 | recognize the program, you may need to select More info /
191 | Run anyway. Follow the prompts to install the
192 | application.
193 |
The application will run after installation (by default), and an
194 | icon for Toggle Dark/Light Mode will appear in the taskbar
195 | notification area (system tray). It might be in the Taskbar
196 | overflow menu behind the ᐱ symbol (this can be
197 | changed in the Taskbar Settings).
198 |
199 |
Use
200 |
201 |
Left-click the icon to immediately toggle dark/light
202 | mode.
203 |
Use the shortcut key combination
204 | Win+Shift+D to toggle between dark and
205 | light mode.
206 |
Right-click the icon for a menu:
207 |
208 |
Toggle Dark/Light Mode - Toggles between dark and light
209 | modes (same as left-clicking the icon).
210 |
Auto-Start - Toggles whether the executable will be
211 | automatically run when you log in.
212 |
Save Debug Info - This will prompt to save a text
213 | (.txt) file with debugging information.
214 |
About - Information about the program.
215 |
Exit - Stops the program and removes the icon. (If
216 | Auto-Start is enabled, it will start when you log-in
217 | again)
218 |
219 |
220 |
Advanced Use
221 |
You do not need to install the application, but instead just download
222 | and run the toggle.exe executable directly (i.e. as a
223 | portable app).
224 |
The executable takes command-line options and can be used to directly
225 | set the mode and optionally exit without remaining as an icon in the
226 | taskbar notification area, for example: