tweaking some settings

This commit is contained in:
Chris Cochrun 2022-05-27 09:45:15 -05:00
parent cf69aee709
commit 5c5b3dcf60
8 changed files with 263 additions and 14 deletions

View file

@ -13,6 +13,7 @@
# kcoreaddons, # kcoreaddons,
# systemsettings, # systemsettings,
cmake, cmake,
qt5Full,
extra-cmake-modules, extra-cmake-modules,
wrapQtAppsHook, wrapQtAppsHook,
libepoxy, libepoxy,
@ -22,19 +23,20 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "LightlyShaders"; pname = "LightlyShaders";
version = "0.0.4"; version = "0.1.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "a-parhom"; owner = "a-parhom";
repo = "LightlyShaders"; repo = "LightlyShaders";
rev = "0294499afece1620f47fa38fa74fa8604077347f"; rev = "0294499afece1620f47fa38fa74fa8604077347f";
sha256 = "MJk2pXRmyZDZX7KeZBHNKi0WQcQwqTM1nZWTWSxnvfc="; sha256 = "8EL1e4YKY63U7kvqBLfqSzYHdls1BD6OYh4X5+B7EcQ=";
}; };
# dontWrapQtApps = true; # dontWrapQtApps = true;
buildInputs = [ buildInputs = [
qtbase qtbase
qt5Full
# qtx11extras # qtx11extras
# qttools # qttools
# kglobalaccel # kglobalaccel
@ -55,18 +57,20 @@ stdenv.mkDerivation rec {
wrapQtAppsHook wrapQtAppsHook
]; ];
# preConfigure = ''
# # local modulepath=$(kf5-config --install module)
# # local datapath=$(kf5-config --install data)
# # local servicespath=$(kf5-config --install services)
# # substituteInPlace CMakeLists.txt \
# # --replace "\''${MODULEPATH}" "$out/''${modulepath#/nix/store/*/}" \
# # --replace "\''${DATAPATH}" "$out/''${datapath#/nix/store/*/}"
# # substituteInPlace CMakeLists.txt \
# # --replace "\''${MODULEPATH}" "$out/qt-5.15.3/plugins" \
# # --replace "\''${DATAPATH}" "$out/share"
# '';
postConfigure = '' postConfigure = ''
# local modulepath=$(kf5-config --install module)
# local datapath=$(kf5-config --install data)
# local servicespath=$(kf5-config --install services)
# substituteInPlace CMakeLists.txt \
# --replace "\''${MODULEPATH}" "$out/''${modulepath#/nix/store/*/}" \
# --replace "\''${DATAPATH}" "$out/''${datapath#/nix/store/*/}"
# substituteInPlace CMakeLists.txt \
# --replace "\''${MODULEPATH}" "$out/qt-5.15.3/plugins" \
# --replace "\''${DATAPATH}" "$out/share"
substituteInPlace cmake_install.cmake \ substituteInPlace cmake_install.cmake \
--replace "${kdelibs4support}" "$out" --replace "${kdelibs4support}" "$out"

View file

@ -1 +1 @@
/nix/store/8v4a6zsgpal8vs6xrsqkzknxpajkbwbl-LightlyShaders-0.0.3 /nix/store/1fammczms41261rbb66pmrafpfqlsdjr-LightlyShaders-0.0.4

View file

@ -245,6 +245,7 @@ pfetch
macchina macchina
gimp gimp
powertop powertop
quickemu
#+end_src #+end_src
Here are some dev tools that I often have on a few devices. Here are some dev tools that I often have on a few devices.
@ -302,6 +303,16 @@ For some reason the emacs overlay has a specific sha256. So I'll create it in ea
}); });
} }
) )
(self: super:
{
qt5ct = super.qt5ct.overrideAttrs (old: rec {
patches = (old.patches or []) ++ [
../../qt5ct.patch
];
});
}
)
#+end_src #+end_src
*** Emacs *** Emacs

View file

@ -7,6 +7,7 @@
# disable search bar # disable search bar
search_shortcut: OFF search_shortcut: OFF
search_trigger: OFF search_trigger: OFF
toggle_key: OFF
# Matches are the substitution rules, when you type the "trigger" string # Matches are the substitution rules, when you type the "trigger" string
# it gets replaced by the "replace" string. # it gets replaced by the "replace" string.
@ -44,3 +45,6 @@ matches:
- trigger: ":name" - trigger: ":name"
replace: "Chris Cochrun" replace: "Chris Cochrun"
- trigger: ":cn"
replace: "A Giant Gummy Lizard"

195
qt5ct.patch Normal file
View file

@ -0,0 +1,195 @@
Index: qt5ct/CMakeLists.txt
===================================================================
--- qt5ct/CMakeLists.txt (revision 622)
+++ qt5ct/CMakeLists.txt (working copy)
@@ -24,8 +24,11 @@
ADD_DEFINITIONS(-DQT_DISABLE_DEPRECATED_BEFORE=0x050C00 -DUSE_WIDGETS)
-find_package(Qt5 ${QT_MINIMUM_VERSION} COMPONENTS Widgets Concurrent LinguistTools DBus ThemeSupport REQUIRED)
+find_package(Qt5 ${QT_MINIMUM_VERSION} COMPONENTS Widgets Concurrent LinguistTools DBus QuickControls2 ThemeSupport REQUIRED)
find_package(Qt5Gui ${QT_MINIMUM_VERSION} CONFIG REQUIRED Private)
+find_package(KF5Config REQUIRED)
+find_package(KF5ConfigWidgets REQUIRED)
+find_package(KF5IconThemes REQUIRED)
get_target_property(QT_LRELEASE_EXECUTABLE Qt5::lrelease IMPORTED_LOCATION)
@@ -44,7 +47,9 @@
message(FATAL_ERROR "Could NOT find qtpaths executable")
endif()
-execute_process(COMMAND ${QT_QTPATHS_EXECUTABLE} --plugin-dir OUTPUT_VARIABLE PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+if(NOT PLUGINDIR)
+ execute_process(COMMAND ${QT_QTPATHS_EXECUTABLE} --plugin-dir OUTPUT_VARIABLE PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
message(STATUS "Plugin path: " ${PLUGINDIR})
message(STATUS "Generating translations ...")
Index: qt5ct/src/qt5ct/appearancepage.cpp
===================================================================
--- qt5ct/src/qt5ct/appearancepage.cpp (revision 622)
+++ qt5ct/src/qt5ct/appearancepage.cpp (working copy)
@@ -86,6 +86,8 @@
#else
keys = QPlatformThemeFactory::keys();
m_ui->dialogComboBox->addItem(tr("Default"), "default");
+ if(keys.contains("xdgdesktopportal"))
+ m_ui->dialogComboBox->addItem("XDG Desktop Portal", "xdgdesktopportal");
if(keys.contains("gtk2") || keys.contains("qt5gtk2"))
m_ui->dialogComboBox->addItem("GTK2", "gtk2");
else if(keys.contains("gtk3") || keys.contains("qt5gtk3"))
@@ -390,7 +392,7 @@
{
QDir dir(path);
dir.setFilter(QDir::Files);
- dir.setNameFilters(QStringList() << "*.conf");
+ dir.setNameFilters(QStringList() << "*.conf" << "*.colors");
for(QFileInfo info : dir.entryInfoList())
{
Index: qt5ct/src/qt5ct/qt5ct.cpp
===================================================================
--- qt5ct/src/qt5ct/qt5ct.cpp (revision 622)
+++ qt5ct/src/qt5ct/qt5ct.cpp (working copy)
@@ -111,6 +111,7 @@
for(const QString &p : QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation))
{
paths << (p + QLatin1String("/qt5ct/colors"));
+ paths << (p + QLatin1String("/color-schemes"));
}
paths << QLatin1String(QT5CT_DATADIR"/qt5ct/colors");
paths.removeDuplicates();
Index: qt5ct/src/qt5ct-qtplugin/CMakeLists.txt
===================================================================
--- qt5ct/src/qt5ct-qtplugin/CMakeLists.txt (revision 622)
+++ qt5ct/src/qt5ct-qtplugin/CMakeLists.txt (working copy)
@@ -10,5 +10,5 @@
add_library(qt5ct-qtplugin MODULE ${app_SRCS})
set_target_properties(qt5ct-qtplugin PROPERTIES OUTPUT_NAME qt5ct)
-target_link_libraries(qt5ct-qtplugin PRIVATE Qt5::Widgets Qt5::GuiPrivate Qt5::DBus Qt5::ThemeSupportPrivate)
+target_link_libraries(qt5ct-qtplugin PRIVATE Qt5::Widgets Qt5::GuiPrivate Qt5::DBus Qt5::QuickControls2 Qt5::ThemeSupportPrivate KF5::ConfigCore KF5::ConfigWidgets KF5::IconThemes)
install(TARGETS qt5ct-qtplugin DESTINATION ${PLUGINDIR}/platformthemes)
Index: qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp
===================================================================
--- qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp (revision 622)
+++ qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp (working copy)
@@ -45,6 +45,7 @@
#endif
#include <QFile>
#include <QFileSystemWatcher>
+#include <QQuickStyle>
#include <qt5ct/qt5ct.h>
#include "qt5ctplatformtheme.h"
@@ -60,6 +61,11 @@
#include <qpa/qplatformthemefactory_p.h>
#endif
+#include <ksharedconfig.h>
+#include <kcolorscheme.h>
+#include <kiconengine.h>
+#include <kiconloader.h>
+
Q_LOGGING_CATEGORY(lqt5ct, "qt5ct", QtWarningMsg)
//QT_QPA_PLATFORMTHEME=qt5ct
@@ -75,6 +81,10 @@
QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection);
#endif
QGuiApplication::setFont(m_generalFont);
+ //if the user has explicitly set something else, don't meddle
+ if (QQuickStyle::name().isEmpty()) {
+ QQuickStyle::setStyle(QLatin1String("org.kde.desktop"));
+ }
}
qCDebug(lqt5ct) << "using qt5ct plugin";
#ifdef QT_WIDGETS_LIB
@@ -81,6 +91,7 @@
if(!QStyleFactory::keys().contains("qt5ct-style"))
qCCritical(lqt5ct) << "unable to find qt5ct proxy style";
#endif
+ QCoreApplication::instance()->installEventFilter(this);
}
Qt5CTPlatformTheme::~Qt5CTPlatformTheme()
@@ -195,6 +206,11 @@
}
#endif
+QIconEngine *Qt5CTPlatformTheme::createIconEngine(const QString &iconName) const
+{
+ return new KIconEngine(iconName, KIconLoader::global());
+}
+
void Qt5CTPlatformTheme::applySettings()
{
if(!QGuiApplication::desktopSettingsAware() || m_isIgnored)
@@ -313,7 +329,15 @@
if(!schemePath.isEmpty() && settings.value("custom_palette", false).toBool())
{
schemePath = Qt5CT::resolvePath(schemePath); //replace environment variables
- m_palette = new QPalette(loadColorScheme(schemePath));
+ if(schemePath.endsWith(".colors"))
+ {
+ m_palette = new QPalette(KColorScheme::createApplicationPalette(KSharedConfig::openConfig(schemePath)));
+ qApp->setProperty("KDE_COLOR_SCHEME_PATH", schemePath);
+ }
+ else
+ {
+ m_palette = new QPalette(loadColorScheme(schemePath));
+ }
}
m_iconTheme = settings.value("icon_theme").toString();
//load dialogs
@@ -480,3 +504,30 @@
return customPalette;
}
+
+bool Qt5CTPlatformTheme::eventFilter(QObject *obj, QEvent *e)
+{
+ if(obj == qApp && e->type() == QEvent::DynamicPropertyChange)
+ {
+ QDynamicPropertyChangeEvent *ee = static_cast<QDynamicPropertyChangeEvent*>(e);
+ if(ee->propertyName() == "KDE_COLOR_SCHEME_PATH")
+ {
+ if(qApp->property("KDE_COLOR_SCHEME_PATH").isNull())
+ {
+ QSettings settings(Qt5CT::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Appearance");
+ QString schemePath = settings.value("color_scheme_path").toString();
+ if(!schemePath.isEmpty() && settings.value("custom_palette", false).toBool())
+ {
+ schemePath = Qt5CT::resolvePath(schemePath); //replace environment variables
+ if(schemePath.endsWith(".colors"))
+ {
+ qApp->setProperty("KDE_COLOR_SCHEME_PATH", schemePath);
+ applySettings();
+ }
+ }
+ }
+ }
+ }
+ return QObject::eventFilter(obj, e);
+}
Index: qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.h
===================================================================
--- qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.h (revision 622)
+++ qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.h (working copy)
@@ -91,10 +91,13 @@
//virtual QPixmap fileIconPixmap(const QFileInfo &fileInfo, const QSizeF &size,
// QPlatformTheme::IconOptions iconOptions = 0) const;
- //virtual QIconEngine *createIconEngine(const QString &iconName) const;
+ virtual QIconEngine *createIconEngine(const QString &iconName) const;
//virtual QList<QKeySequence> keyBindings(QKeySequence::StandardKey key) const;
//virtual QString standardButtonText(int button) const;
+protected:
+ bool eventFilter(QObject *obj, QEvent *e) override;
+
private slots:
void applySettings();
#ifdef QT_WIDGETS_LIB

View file

@ -215,6 +215,7 @@
macchina macchina
gimp gimp
powertop powertop
quickemu
blender blender
neofetch neofetch
# Dev tools # Dev tools
@ -262,6 +263,16 @@
}); });
} }
) )
(self: super:
{
qt5ct = super.qt5ct.overrideAttrs (old: rec {
patches = (old.patches or []) ++ [
../../qt5ct.patch
];
});
}
)
]; ];
services.emacs = { services.emacs = {

View file

@ -244,6 +244,7 @@
macchina macchina
gimp gimp
powertop powertop
quickemu
neofetch neofetch
afetch afetch
yafetch yafetch
@ -297,6 +298,16 @@
}); });
} }
) )
(self: super:
{
qt5ct = super.qt5ct.overrideAttrs (old: rec {
patches = (old.patches or []) ++ [
../../qt5ct.patch
];
});
}
)
]; ];
services.emacs = { services.emacs = {

View file

@ -246,6 +246,7 @@
enable = true; enable = true;
settings = { settings = {
toggle_key = "RIGHT_CTRL";
matches = [ matches = [
{ # dates { # dates
trigger = ":date"; trigger = ":date";
@ -282,6 +283,10 @@
trigger = ":name"; trigger = ":name";
replace = "Chris Cochrun"; replace = "Chris Cochrun";
} }
{
trigger = ":cn";
replace = "A Giant Gummy Lizard";
}
]; ];
}; };
}; };
@ -420,6 +425,14 @@
categories = [ "Application" ]; categories = [ "Application" ];
mimeType = [ "audio/ogg" "audio/mpeg" "audio/opus" "audio/x-opus+ogg" "audio/x-wav" ]; mimeType = [ "audio/ogg" "audio/mpeg" "audio/opus" "audio/x-opus+ogg" "audio/x-wav" ];
}; };
imv-rifle = {
name = "IMV";
genericName = "Show images in current directory in IMV";
exec = "/home/chris/bin/rifle-imv %U";
terminal = false;
categories = [ "Application" ];
mimeType = [ "image/gif" "image/jpeg" "image/png" "image/heif" ];
};
}; };
systemd.user.services = { systemd.user.services = {