Dark theme for Perforce P4V Helix on Linux?

P4V added a dark theme option in version 2019.2. You can activate it in the display settings (requires restart): Edit / Preferences / Display / Application / Application color scheme


Another dark style:

LightweightTextView
{
    background-color: /*#ffffff*/ #222222;
    color: #cccccc;
}

/*
Modal lists can't figure out focus well
but we can hardcode them safely
*/
DefinitionTree::branch:selected {
    background-color: /*#0088CC*/ #006600;
}

DefinitionTree::branch:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

DefinitionTree::item:selected {
    background-color: /*#0088CC*/ #006600;
}

DefinitionTree::item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}


TFilterView::branch:selected {
    background-color: /*#0088CC*/ #006600;
}

TFilterView::branch:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

TFilterView::item:selected {
    background-color: /*#0088CC*/ #006600;
}

TFilterView::item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}


UIPreferencesDialog QTreeWidget::branch:selected {
    background-color: /*#0088CC*/ #006600;
}

UIPreferencesDialog QTreeWidget::branch:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

UIPreferencesDialog QTreeWidget::item:selected {
    background-color: /*#0088CC*/ #006600;
}

UIPreferencesDialog QTreeWidget::item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}


QTreeView::branch:selected {
    background-color: /*#0088CC*/ #006600;
}

QTreeView::branch:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

QTreeView::item:selected {
    background-color: /*#0088CC*/ #006600;
}

QTreeView::item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}


QTableWidget::item:selected {
    background-color: /*#0088CC*/ #006600;
}

QTableWidget:item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}


ConnectionPane::item:selected {
    background-color: /*#0088CC*/ #006600;
}

ConnectionPane:item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

QAbstractItemView {
    background-color: /*#ffffff*/ #222222;
    color: /*#000000*/ #cccccc;
}

QAbstractItemView[hasFocus="false"]::item:selected {
    background-color: #AAAAAA;
}

QAbstractItemView[hasFocus="false"]::item:selected:hover {
    background-color: #999999;
}

QAbstractItemView[hasFocus="true"]::item:selected {
    background-color: /*#0088CC*/ #006600;
}

QAbstractItemView[hasFocus="true"]::item:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

QAbstractItemView[hasFocus="false"]::branch:selected {
    background-color: #AAAAAA;
}

QAbstractItemView[hasFocus="false"]::branch:selected:hover {
    background-color: #999999;
}

QAbstractItemView[hasFocus="true"]::branch:selected {
    background-color: /*#0088CC*/ #006600;
}

QAbstractItemView[hasFocus="true"]::branch:selected:hover {
    background-color: /*#0085C7*/ #008800;
}

QAbstractItemView::item:hover {
    background: /*#F8F8F8*/ #666666;
}

QAbstractItemView::branch:hover {
    background: /*#F8F8F8*/ #666666;
}

QAbstractItemView::branch:has-children:!has-siblings:closed,
QAbstractItemView::branch:closed:has-children:has-siblings {
    border-image: none;
    image: url(:/directory_collapsed.png);
}

QAbstractItemView::branch:open:has-children:!has-siblings,
QAbstractItemView::branch:open:has-children:has-siblings  {
    border-image: none;
    image: url(:/directory_expanded.png);
}


QRadioButton {
    color: /*#000000*/ #cccccc;
}

QCheckBox {
    color: /*#000000*/ #cccccc;
}

/*
QCheckBox::indicator:unchecked {
    background-color: #222222;
}

QCheckBox::indicator:checked {
    background-color: #cccccc;
}
*/


QComboBox
{
    selection-background-color: #5091bc;
    background-color: /*#ffffff*/ #222222;
}

QComboBox:hover
{
    background-color: /*#ffffff*/ #222222;
}


QComboBox:on
{
    background-color: #777777;
    selection-background-color: #777777;
}

QComboBox QAbstractItemView
{
    background-color: /*#ffffff*/ #222222;
}


QHeaderView::section {
    background-color: /*#e2edf5*/ #336633;
    color: /*#5e707d*/ #cccccc;
    padding: 0.125em;
    border-top: 0em;
    border-bottom: 0em;
    border-left: 0em;
    border-right: 0.062em solid #c2cfd8;
/*    font-size: 11px; */
}


QLineEdit {
    selection-background-color: #9ABFD9;
    background-color: /*#ffffff*/ #222222;
    color: /*#000000*/ #cccccc;
}


MostRecentCombo {
    color: /*#000000*/ #cccccc;
}

QComboBox {
    color: /*#000000*/ #cccccc;
}


QLineEdit[readOnly="true"] 
{ 
    color: /*#000000*/ #cccccc;
    background: transparent;
}


QMainWindow {
    background-color: #222222;
    color: #cccccc;
}

QMainWindow::separator {
    width: 0.062em;
    height: 0.062em;
}

QMenuBar {
    background-color: /*#f0f0f0*/   #202020;
    selection-background-color: /*#9ABFD9*/ #606060;
    color: /*#000000*/ #cccccc;
}


QMenu {
    background-color: /*#ffffff*/ #202020; /* sets background of the menu */
    border: 0.062em solid /*#999999*/ #666666;
    padding-top: 0.31em;
}

QMenu::item {
  /* sets background of menu item. set this to something non-transparent
      if you want menu color and menu item color to be different */
    background-color: transparent;
    color: #cccccc;
}

QMenu::item:selected {
    color: #ffffff;
    background-color: /*#5091bc*/ #666666;
}

QMenu::item:disabled {
    color: #666666;
}


QProgressBar
{
    border: 0.062em solid #dddddd;
    border-radius: 0em;
    text-align: center;
}

QProgressBar::chunk {
    background-color: #0088cc;
    width: 0.62em;
    margin: 0.062em;
}


QPushButton {
    background-color: /*#f0f0f0*/ #444444;
    color: /*black*/ #cccccc;
}

QPushButton:disabled {
    color: #888888;
}


QScrollBar:horizontal {
    border-top: 0.062em solid /*#dddddd*/ #000000;
    background-color: /*#eeeeee*/ #444444;
    height: 0.75em;
    margin: 0em 0.75em 0 0.75em;
}


QScrollBar::handle:horizontal
{
    background-color: /*#cccccc*/ #aaaaaa;
    min-height: 1.1em;
}

QScrollBar::add-line:horizontal {
    border-top: 0.062em solid /*#dddddd*/ #000000;
    border-radius: 0em;
    background-color: /*#eeeeee*/ #444444;
    width: 0.75em;
    subcontrol-position: right;
    subcontrol-origin: margin;
}

QScrollBar::sub-line:horizontal {
    border-top: 0.062em solid /*#dddddd*/ #000000;
    border-radius: 0px;
    background-color: /*#eeeeee*/ #444444;
    width: 0.75em;
    subcontrol-position: left;
    subcontrol-origin: margin;
}

QScrollBar::left-arrow
{
    height: 0.75em;
    width: 0.75em;
    image: url(:/scroll_left_arrow.png);
}

QScrollBar::right-arrow
{
    height: 0.75em;
    width: 0.75em;
    image: url(:/scroll_right_arrow.png);
}

QScrollBar:vertical
{
    background-color: /*#eeeeee*/ #444444;
    width: 0.75em;
    margin: 0.75em 0 0.75em 0;
    border-left: 0.062em solid /*#dddddd*/ #000000;
}

QScrollBar::handle:vertical
{
    background-color: /*#cccccc*/ #aaaaaa;
    min-height: 1.1em;
    border-radius: 0em;
}

QScrollBar::add-line:vertical
{
    border-left: 0.062em solid /*#dddddd*/ #000000;
    border-radius: 0em;
    background-color: /*#eeeeee*/ #444444;
    height: 0.75em;
    subcontrol-position: bottom;
    subcontrol-origin: margin;
}

QScrollBar::sub-line:vertical
{
    border-left: 0.062em solid /*#dddddd*/ #000000;
    border-radius: 0em;
    background-color: /*#eeeeee*/ #444444;
    height: 0.75em;
    subcontrol-position: top;
    subcontrol-origin: margin;
}

QScrollBar::up-arrow
{
    height: 0.75em;
    width: 0.75em;
    image: url(:/scroll_up_arrow.png);
}

QScrollBar::down-arrow
{
    height: 0.75em;
    width: 0.75em;
    image: url(:/scroll_down_arrow.png);
}

QSplitter {
    background-color: transparent;
    width: 0.4em;
    height: 0.4em;
}

/* Main horizontal above log pane only*/
QSplitter#centralSplitter::handle {
    height: 0.4em;
    width: 0.25em;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                      stop: 0 /*#a7a7a7*/ #444444, stop: 0.17 /*#a7a7a7*/ #444444,
                                      stop: 0.18 transparent, stop: 0.83 transparent,
                                      stop: 0.84 /*#a7a7a7*/ #444444, stop: 1.0 /*#a7a7a7*/ #444444);
}

QSplitter::handle:horizontal {
    height: 0.25em;
    width: 0.25em;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
                                      stop: 0 /*#a7a7a7*/ #444444, stop: 0.17 /*#a7a7a7*/ #444444,
                                      stop: 0.18 transparent, stop: 1.0 transparent);
    image: url(:/splitter_handle_horizontal.png);
}

QSplitter::handle:vertical {
    height: 0.25em;
    width: 0.25em;
    background-color: transparent;
    image: url(:/splitter_handle_vertical.png);
}

QSplitter#P4MergeSplitter::handle:vertical {
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                      stop: 0 /*#a7a7a7*/ #444444, stop: 0.17 /*#a7a7a7*/ #444444,
                                      stop: 0.18 transparent, stop: 0.83 transparent,
                                      stop: 0.84 /*#a7a7a7*/ #444444, stop: 1.0 /*#a7a7a7*/ #444444);
}

P4mSplitter {
    width: 3.12em;
}


QSplitterHandle {
    background-color: /*#f0f0f0*/ #000000;
}

QTabBar::tab {
    color: /*#888888*/ #aaaaaa;
    background-color: /*#ededed*/ #333333;
    border-left: none;
    border-right: 0.062em solid /*#dddddd*/ #666666;
    border-bottom: 0.062em solid #555555;
    min-width: 0.5em;
    padding: 0.32em;
    margin-bottom: 0.13em;
}

QTabBar::tab:hover {
    color: /*#444444*/ #aaaaaa;
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                stop: 0 /*#fdfdfd*/ #444444, stop: 0.89 /*#fdfdfd*/ #444444,
                                stop: 0.9 /*#a7a7a7*/ #666666, stop: 1.0 /*#a7a7a7*/ #666666);
    margin-bottom: 0.13em;
}

QTabBar::tab:selected {
    color: /*#444444*/ #cccccc;
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                stop: 0 /*#fdfdfd*/ #555555, stop: 0.89 /*#fdfdfd*/ #555555,
                                stop: 0.9 /*#a7a7a7*/ #aaccaa, stop: 1.0 /*#a7a7a7*/ #aaccaa);
    border-top-left-radius: 0em;
    border-top-right-radius: 0em;
    margin-bottom: 0.13em;
}

QTabBar::tab:!selected { /* make non-selected tabs look smaller */
    margin-top: 0em; 
}

QTabBar::tab:first:selected { /* the first selected tab has nothing to overlap with on the left */
    margin-left: 0; 
}

QTabBar::tab:last:selected { /* the last selected tab has nothing to overlap with on the right */
    margin-right: 0; 
}

QTabBar::tab:only-one { /* if there is only one tab, we don't want overlapping margins */
    margin: 0; 
}

QTabBar::close-button {
    image: url(:/clear_icon.png);
    margin-bottom: 0.25em;
}

QTabBar {
    background-color: /*#f0f0f0*/ #333333;
}

QTabWidget::tab-bar {
    background-color: /*#ededed*/ #222222;
    left: 0em;
}

QTabWidget::pane {
    border: 1px solid #666666;
}


QTextEdit[readOnly="true"] 
{ 
    color: /*#000000*/ #cccccc;
    padding: 0em;
    background-color: transparent;
    border: 0.062em solid rgba(0,0,0,10);
}

QTextEdit[readOnly="false"]
{
    color: /*#000000*/ #cccccc;
    background-color: /*#ffffff*/ #222222;
}

QDialog {
    background-color: /*#f0f0f0*/ #333333;
}


QToolBar {
    background-color: /*#ededed*/ #333333;
    padding: 0.25em;
}

QStackedWidget {
    background-color: /*#f0f0f0*/ #333333;
}
QWidget#centralWidget {
    background-color: /*#f0f0f0*/ #333333;
}


UISpecList {
    background-color: /*#f0f0f0*/ #333333;
}


UIWorkspace2 QToolBar {
    background-color: /*#ededed*/ #333333;
    spacing: 0.94em;
s}


QToolBar#P4VToolBar::separator:horizontal {
    height: 6.25em;
    width: 0.125em;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
                                      stop: 0 /*#d8d8d8*/ #666666, stop: 0.5 /*#d8d8d8*/#666666,
                                      stop: 0.6 /*#ffffff*/ #444444, stop: 1.0 /*#ffffff*/ #444444);
}

QToolBar#P4VToolBar::separator:vertical {
    height: 0.125em;
    width: 6.25em;
    color: #FFFFFF;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                      stop: 0 /*#d8d8d8*/ #666666, stop: 0.5 /*#d8d8d8*/#666666,
                                      stop: 0.6 /*#ffffff*/ #444444, stop: 1.0 /*#ffffff*/ #444444);
}

QToolBar#AddressBar {
    background-color: /*#ededed*/ #333333;
}


QToolBar#P4VToolBar QToolButton {
    color: /*#333333*/ #cccccc;
/*    font-size: 10px;*/
}

QScrollArea#filterScrollArea QWidget#filterScrollWidget {
    background-color: /*#f0f0f0*/ #333333;
}
QScrollArea#filterScrollArea QToolButton {
    background-color: /*#f0f0f0*/ #333333;
}
UIFilterWidget {
    background-color: /*#f0f0f0*/ #333333;
}


WorkspaceStatusBar {
    background-color: /*#f0f0f0*/ #333333;
    color: /*#000000*/ #cccccc;
}

QFrame#ExtendedTabWidget-mCornerWidget {
    background-color: /*#f0f0f0*/ #333333;
}

UIWorkspaceWidget {
    background-color: /*#f0f0f0*/ #333333;
}


QFrame {
    background-color: #333333;
    color: #cccccc;
    border-color: #000000;
}

QGroupBox {
    color: #aaaaaa;
}



QToolBar#P4VToolBar QToolButton:hover {
    background-color: /*#ededed*/ #333333;
    color: /*#333333*/ #cccccc;
}

QToolBar#P4VToolBar QToolButton:disabled {
    color: /*#cccccc*/ #666666;
}

QToolTip {
    border: 0.062em solid /*#e5d36c*/ #000000;
    background-color: /*#fdfdc9*/ #666666;
    color: /*#000000*/ #eeeeee;
    border-radius: 0em;
    opacity: 250;
/*    font-size: 11px;*/
}


QWidget#UIChangeWindow_QWidget {
    background-color: /*#fafafa*/ #3a3a3a;
}

QWidget#InnerWidget_for_QScrollArea {
    background-color: transparent;
}

RevDetails {
    background-color: /*#ededed*/ #222222;
}

RevDetails QLabel {
    color: #777777;
}


Gui--DirectoryTreeView {
    background-color: /*#f1f4f9*/ #222222;
}

Gui--DirectoryTreeView::item:hover {
    background-color: /*#E5E8ED*/ #666666;
}

Gui--DirectoryTreeView::branch:hover {
    background-color: /*#E5E8ED*/ #666666;
}

UIBrowseUsersDialog {
    background-color: /*#f0f0f0*/ #333333;
}

Gui--PasswordDialog {
    background-color: /*#f0f0f0*/ #333333;
}

QDialogButtonBox {
    background-color: transparent;
}

UISpecPicker {
    background-color: /*#f0f0f0*/ #333333;
}


UIClearableComboBox QPushButton {
    min-width:0em;
    background-color:transparent;
}

UIConfigurationDialog {
    background-color: /*#f0f0f0*/ #333333;
    color: /*#888888*/ #cccccc;
}

UITabTitleWidget QStackedWidget#qt_tabwidget_stackedwidget {
    background-color: /*#f1f4f9*/ #333333;
}

QStatusBar {
    max-height: 1.3em;
}

Gui--FormWidget {
    background-color: transparent;
}

UISpecWindow {
    background-color: /*#fafafa*/ #222222;
}

UISpecWindow QLabel {
    color: /*#666666*/ #aaaaaa;
}

QLabel {
    color: /*#000000*/ #cccccc;
}

Tags:

Perforce

P4V