Comments (19)
Concept ACK for a GUI option, if it makes dark mode easier for users to have.
I use the GUI with dark mode theme only, thanks to these tips from @laanwj: https://twitter.com/orionwl/status/1240948484334813185 and https://twitter.com/orionwl/status/1240954362614120448
from gui.
@prayank23
currently, QT inherits from OS theme, so it depends on your OS, you can have dark mode on linux distributions.
on macos, it has been disabled because of the many glitches that were detected
I was reading https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.21-Release-Candidate-Testing-Guide and it has dark mode screenshots
I think this is linux platform screenshots
from gui.
@prayank23 on Ubuntu/Debian (as your screenshot suggests you are using), just set a dark GTK theme.
from gui.
What would be the technical hurdles of having a dark / light theme toggle switch in the settings / setup of the GUI?
from gui.
What would be the technical hurdles of having a dark / light theme toggle switch in the settings / setup of the GUI?
The GUI suffers from visual glitches in the new MacOS dark mode.
from gui.
Link did not work: https://bitcoincore.org/en/releases/0.17.0/
from gui.
Looks like it is disabled in MacOS
from gui.
Link did not work: https://bitcoincore.org/en/releases/0.17.0/
Fixed.
Looks like it is disabled in MacOS
Yes. This is a kind of workaround.
from gui.
I'm using Dark mode on self compiled GUI, thanks to the tips shared by @jonatack
I confirm, @hebasto comment:
The GUI suffers from visual glitches in the new MacOS dark mode.
I've found two main UI glitches:
Otherwise, the dark mode seems pretty OK on macOS Big Sur.
I'll try to make PR to address the 2 issues above, if you think of any other glitches, let me know.
from gui.
It seems that using https://github.com/ColinDuquesnoy/QDarkStyleSheet might resolve most of the visual issues.
Switching to dark mode in macOS, Qt will trigger an event of the type QEvent.PaletteChange
which can be detected and actioned upon in the main widget's changeEvent
method.
from gui.
@prusnak for now, the GUI is not using any self defined palette, it inherits the OS color palette.
We could force our own light / dark palette, but that will be a bigger change, and might involve some UI designers.
My idea was to keep the current system as it is, but just fix the 2/3 glitches that occur on mac OS dark mode.
It should be easier to integrate in the codebase.
from gui.
@prusnak I've tried to play with QPalette and styleSheet to fix the display glitches, but it's not working because the bugs are directly in QMacStyle definition.
One solution could be to use the embedded QT style fusion
which requires no dependencies, and support Light / Dark mode out of the box.
See my comment with screenshots on this related issue: #136 (comment)
from gui.
I was reading https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.21-Release-Candidate-Testing-Guide and it has dark mode screenshots
So do we already have dark theme in bitcoin core gui?
from gui.
It seems that using https://github.com/ColinDuquesnoy/QDarkStyleSheet might resolve most of the visual issues.
@prusnak I tried following the steps mentioned in README.rst but getting error when I launch bitcoin-qt
Steps that I followed:
- Clone https://github.com/ColinDuquesnoy/QDarkStyleSheet.git
- Copy
qdarkstyle/style.qss
andqdarkstyle/style.qrc
insrc/qt
- Add path for
style.qrc
incontrib/bitcoin-qt.pro
RESOURCES += \
../src/qt/bitcoin.qrc
../src/qt/style.qrc
- Add below code in
src/qt/bitcoingui.cpp
:
#include <QTextStream>
QFile f(":/home/satoshi/bitcoin/src/qt/style.qss");
if (!f.exists()) {
printf("Unable to set stylesheet, file not found\n");
}
else {
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
}
- Launch
bitcoin-qt
Error: Unable to set stylesheet, file not found
from gui.
@jarolrod I understand the workaround as jonatack had shared links when I created this issue. I am trying to add option in Bitcoin Core to switch light/dark theme which can work on all platforms irrespective of OS settings.
from gui.
@prayank23 I see, you'd need to come up with a stylesheet for both (light + dark) I believe. Maybe in talks with the design community. And you can add a toggle button somewhere in the menu.
from gui.
Its working :) Suggestion by @hebasto in IRC channel ##bitcoin-core-gui helped. Had to remove :
from QFile f(":/home/satoshi/bitcoin/src/qt/style.qss");
There are few things that will need to be changed or added. Screenshots:
Splash screen still looks the same:
from gui.
This does not work on Windows as expected
from gui.
After #366 is merged the Bitcoin Core GUI should follow system appearance settings. It works on macOS. Also it works on some DEs on Linux. Not sure if anybody test the current master on Windows, though.
Going to close this issue. Feel free to open a new platform or DE specific one.
from gui.
Related Issues (20)
- Send: ability to (re)view automatically selected coins
- macOS qt QTimer::stop crash on v26.0rc2
- The logo icon doesn't show properly under Wayland HOT 2
- Weird focus rect displayed on inital sync HOT 4
- "Open bitcoin URI" dialog could give more feedback on what's wrong with BIP21 URI
- New crash in v26.0 HOT 7
- How to get started with Contribution HOT 5
- I don't think we should add a lock icon or something like that; there are significant benefits of having encrypted connections on a large scale, but users in general shouldn't assume that their specific connections are more secure for their specific purposes when they're v2.
- ci_native_asan: UndefinedBehaviorSanitizer: null-pointer-use qt/test/wallettests.cpp:424:25 in HOT 5
- When selecting a custom data directory on first launch of Bitcoin Core GUI on Mac, where is that setting stored? HOT 4
- test: `migrateSettings` fails on Windows HOT 1
- Segfault in qt/clientmodel.cpp:92 on every shutdown HOT 5
- Bitcoin core UI is unresponsive while syncing HOT 8
- implicit-integer-sign-change wallet/interfaces.cpp:289:57 HOT 13
- gui: node shutting down after incorrect proxy IP address input HOT 7
- Create unsigned when increasing fee asks for the passphrase HOT 6
- A config option to separately store blocks and state in start window
- Welcome screen uses GiB values as GB, risking running out of space HOT 2
- Generalized fee bumping HOT 1
- Bugreport HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gui.