mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-02-06 09:39:58 +00:00
Merge branch 'testing'
This commit is contained in:
commit
85a1e0d275
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -68,7 +68,7 @@ jobs:
|
||||
is_latest_version: true
|
||||
is_stable_version: true
|
||||
kernel_flavor: fsync-ba # must match a kernel_flavor from akmods repo
|
||||
kernel_version: 6.9.12-208.fsync.fc40.x86_64 # must match a cached version of the above flavor
|
||||
kernel_version: 6.9.12-210.fsync.fc40.x86_64 # must match a cached version of the above flavor
|
||||
exclude:
|
||||
- base_name: bazzite
|
||||
target_nvidia_flavor: nvidia
|
||||
|
@ -1,7 +1,7 @@
|
||||
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}"
|
||||
ARG BASE_IMAGE_FLAVOR="${BASE_IMAGE_FLAVOR:-main}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
||||
ARG NVIDIA_FLAVOR=${NVIDIA_FLAVOR:-nvidia}""
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-8.fsync.fc40.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
@ -22,7 +22,7 @@ FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS bazzite
|
||||
ARG IMAGE_NAME="${IMAGE_NAME:-bazzite}"
|
||||
ARG IMAGE_VENDOR="${IMAGE_VENDOR:-ublue-os}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
||||
ARG NVIDIA_FLAVOR=${NVIDIA_FLAVOR:-nvidia}""
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-208.fsync.fc40.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
@ -412,7 +412,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
tuned-ppd \
|
||||
tuned-utils \
|
||||
tuned-gtk \
|
||||
tuned-profiles-atomic \
|
||||
tuned-profiles-cpu-partitioning \
|
||||
i2c-tools \
|
||||
udica \
|
||||
@ -707,6 +706,28 @@ RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
echo "import \"/usr/share/ublue-os/just/84-bazzite-virt.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/85-bazzite-image.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/90-bazzite-de.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/desktop-kinoite/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-desktop-kinoite-"*".gschema.override" "/usr/share/ublue-os/dconfs/desktop-kinoite/" && \
|
||||
find "/etc/dconf/db/distro.d/" -maxdepth 1 -type f -exec cp {} "/usr/share/ublue-os/dconfs/desktop-kinoite/" \; && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/desktop-kinoite/zz0-"*"-bazzite-desktop-kinoite-"*".gschema.override" && \
|
||||
rm "/usr/share/ublue-os/dconfs/desktop-kinoite/zz0-"*"-bazzite-desktop-kinoite-"*".gschema.override" \
|
||||
; else \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/desktop-silverblue/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-desktop-silverblue-"*".gschema.override" "/usr/share/ublue-os/dconfs/desktop-silverblue/" && \
|
||||
find "/etc/dconf/db/distro.d/" -maxdepth 1 -type f -exec cp {} "/usr/share/ublue-os/dconfs/desktop-silverblue/" \; && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/desktop-silverblue/zz0-"*"-bazzite-desktop-silverblue-"*".gschema.override" && \
|
||||
sed -i 's/\[org.gtk.Settings.FileChooser\]/\[org\/gtk\/settings\/file-chooser\]/g; s/\[org.gtk.gtk4.Settings.FileChooser\]/\[org\/gtk\/gtk4\/settings\/file-chooser\]/g' "/usr/share/ublue-os/dconfs/desktop-silverblue/zz0-00-bazzite-desktop-silverblue-global" && \
|
||||
rm "/usr/share/ublue-os/dconfs/desktop-silverblue/zz0-"*"-bazzite-desktop-silverblue-"*".gschema.override" \
|
||||
; fi && \
|
||||
mkdir -p /tmp/bazzite-schema-test && \
|
||||
find "/usr/share/glib-2.0/schemas/" -type f ! -name "*.gschema.override" -exec cp {} "/tmp/bazzite-schema-test/" \; && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*".gschema.override" "/tmp/bazzite-schema-test/" && \
|
||||
echo "Running error test for Bazzite Desktop gschema override. Aborting if failed." && \
|
||||
glib-compile-schemas --strict /tmp/bazzite-schema-test && \
|
||||
echo "Compiling gschema to include Bazzite Desktop setting overrides" && \
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas &>/dev/null && \
|
||||
rm -r /tmp/bazzite-schema-test && \
|
||||
sed -i 's/stage/none/g' /etc/rpm-ostreed.conf && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
|
||||
@ -757,7 +778,8 @@ RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
/usr/libexec/containerbuild/image-info && \
|
||||
/usr/libexec/containerbuild/build-initramfs && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
mkdir -p /var/tmp && \
|
||||
chmod 1777 /var/tmp && \
|
||||
ostree container commit
|
||||
|
||||
FROM bazzite AS bazzite-deck
|
||||
@ -765,7 +787,7 @@ FROM bazzite AS bazzite-deck
|
||||
ARG IMAGE_NAME="${IMAGE_NAME:-bazzite-deck}"
|
||||
ARG IMAGE_VENDOR="${IMAGE_VENDOR:-ublue-os}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
||||
ARG NVIDIA_FLAVOR=${NVIDIA_FLAVOR:-nvidia}""
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-206.fsync.fc40.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
@ -890,6 +912,21 @@ RUN /usr/libexec/containerbuild/image-info && \
|
||||
systemctl disable gdm.service && \
|
||||
systemctl enable sddm.service \
|
||||
; fi && \
|
||||
if grep -q "silverblue" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/deck-silverblue/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-deck-silverblue-"*".gschema.override" "/usr/share/ublue-os/dconfs/deck-silverblue/" && \
|
||||
find "/etc/dconf/db/distro.d/" -maxdepth 1 -type f -exec cp {} "/usr/share/ublue-os/dconfs/deck-silverblue/" \; && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/deck-silverblue/zz0-"*"-bazzite-deck-silverblue-"*".gschema.override" && \
|
||||
rm "/usr/share/ublue-os/dconfs/deck-silverblue/zz0-"*"-bazzite-deck-silverblue-"*".gschema.override" \
|
||||
; fi && \
|
||||
mkdir -p /tmp/bazzite-schema-test && \
|
||||
find "/usr/share/glib-2.0/schemas/" -type f ! -name "*.gschema.override" -exec cp {} "/tmp/bazzite-schema-test/" \; && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*".gschema.override" "/tmp/bazzite-schema-test/" && \
|
||||
echo "Running error test for Bazzite Deck gschema override. Aborting if failed." && \
|
||||
glib-compile-schemas --strict /tmp/bazzite-schema-test && \
|
||||
echo "Compiling gschema to include Bazzite Deck setting overrides" && \
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas &>/dev/null && \
|
||||
rm -r /tmp/bazzite-schema-test && \
|
||||
systemctl enable bazzite-autologin.service && \
|
||||
systemctl enable wireplumber-workaround.service && \
|
||||
systemctl enable wireplumber-sysconf.service && \
|
||||
@ -921,7 +958,7 @@ FROM bazzite AS bazzite-nvidia
|
||||
ARG IMAGE_NAME="${IMAGE_NAME:-bazzite-nvidia}"
|
||||
ARG IMAGE_VENDOR="${IMAGE_VENDOR:-ublue-os}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-nvidia}"
|
||||
ARG NVIDIA_FLAVOR=${NVIDIA_FLAVOR:-nvidia}""
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-208.fsync.fc40.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
@ -965,6 +1002,20 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
# Cleanup & Finalize
|
||||
RUN echo "import \"/usr/share/ublue-os/just/95-bazzite-nvidia.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \
|
||||
if grep -q "silverblue" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/nvidia-silverblue/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-nvidia-silverblue-"*".gschema.override" "/usr/share/ublue-os/dconfs/nvidia-silverblue/" && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/nvidia-silverblue/zz0-"*"-bazzite-nvidia-silverblue-"*".gschema.override" && \
|
||||
rm "/usr/share/ublue-os/dconfs/nvidia-silverblue/zz0-"*"-bazzite-nvidia-silverblue-"*".gschema.override" \
|
||||
; fi && \
|
||||
mkdir -p /tmp/bazzite-schema-test && \
|
||||
find "/usr/share/glib-2.0/schemas/" -type f ! -name "*.gschema.override" -exec cp {} "/tmp/bazzite-schema-test/" \; && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*".gschema.override" "/tmp/bazzite-schema-test/" && \
|
||||
echo "Running error test for Bazzite Nvidia gschema override. Aborting if failed." && \
|
||||
glib-compile-schemas --strict /tmp/bazzite-schema-test && \
|
||||
echo "Compiling gschema to include Bazzite Nvidia setting overrides" && \
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas &>/dev/null && \
|
||||
rm -r /tmp/bazzite-schema-test && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
/usr/libexec/containerbuild/image-info && \
|
||||
/usr/libexec/containerbuild/build-initramfs && \
|
||||
|
@ -1,6 +1,6 @@
|
||||
app/org.mozilla.firefox/x86_64/stable
|
||||
app/com.mattjakeman.ExtensionManager/x86_64/stable
|
||||
app/com.github.Matoking.protontricks/stable
|
||||
app/com.github.Matoking.protontricks/x86_64/stable
|
||||
app/io.github.fastrizwaan.WineZGUI/x86_64/stable
|
||||
app/io.github.dvlv.boxbuddyrs/x86_64/stable
|
||||
app/it.mijorus.gearlever/x86_64/stable
|
||||
|
@ -8,7 +8,7 @@ app/io.github.fastrizwaan.WineZGUI/x86_64/stable
|
||||
app/io.github.dvlv.boxbuddyrs/x86_64/stable
|
||||
app/it.mijorus.gearlever/x86_64/stable
|
||||
app/com.github.tchx84.Flatseal/x86_64/stable
|
||||
app/com.github.Matoking.protontricks/stable
|
||||
app/com.github.Matoking.protontricks/x86_64/stable
|
||||
app/io.github.flattool.Warehouse/x86_64/stable
|
||||
app/net.davidotek.pupgui2/x86_64/stable
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/23.08
|
||||
|
@ -1,239 +0,0 @@
|
||||
From ab115896be1a448bde0eb7673c26300ea4ca5040 Mon Sep 17 00:00:00 2001
|
||||
From: sharkautarch <128002472+sharkautarch@users.noreply.github.com>
|
||||
Date: Sun, 19 May 2024 20:15:36 -0400
|
||||
Subject: [PATCH 1/2] QueuePresent: canBypassXWayland(): fetch multiple xcb
|
||||
cookies initially before waiting on any of them
|
||||
|
||||
---
|
||||
layer/VkLayer_FROG_gamescope_wsi.cpp | 1 +
|
||||
layer/xcb_helpers.hpp | 105 +++++++++++++++++++++++----
|
||||
2 files changed, 93 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
index 5844c2a63..ca44849f2 100644
|
||||
--- a/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
@@ -975,6 +975,7 @@ namespace GamescopeWSILayer {
|
||||
continue;
|
||||
}
|
||||
|
||||
+ xcb::Prefetcher prefetcher(gamescopeSurface->connection, gamescopeSurface->window);
|
||||
const bool canBypass = gamescopeSurface->canBypassXWayland();
|
||||
if (canBypass != gamescopeSwapchain->isBypassingXWayland)
|
||||
UpdateSwapchainResult(canBypass ? VK_SUBOPTIMAL_KHR : VK_ERROR_OUT_OF_DATE_KHR);
|
||||
diff --git a/layer/xcb_helpers.hpp b/layer/xcb_helpers.hpp
|
||||
index 8fac5635b..72d0ec092 100644
|
||||
--- a/layer/xcb_helpers.hpp
|
||||
+++ b/layer/xcb_helpers.hpp
|
||||
@@ -4,22 +4,106 @@
|
||||
#include <xcb/composite.h>
|
||||
#include <cstdio>
|
||||
#include <optional>
|
||||
+#include <pthread.h>
|
||||
|
||||
namespace xcb {
|
||||
+ inline static constinit pthread_t g_cache_tid; //incase g_cache could otherwise be accessed by one thread, while it is being deleted by another thread
|
||||
+ inline static constinit struct cookie_cache_t {
|
||||
+ xcb_window_t window;
|
||||
+ std::tuple<xcb_get_geometry_cookie_t, xcb_query_tree_cookie_t> cached_cookies;
|
||||
+ std::tuple<xcb_get_geometry_reply_t*, xcb_query_tree_reply_t*> cached_replies;
|
||||
+ } g_cache = {};
|
||||
+
|
||||
+ //Note: this class is currently only meant to be used within GamescopeWSILayer::VkDeviceOverrides::QueuePresentKHR:
|
||||
+ struct Prefetcher {
|
||||
+ explicit Prefetcher(xcb_connection_t* connection, const xcb_window_t window) {
|
||||
+ g_cache = {
|
||||
+ .window = window,
|
||||
+ .cached_cookies = {
|
||||
+ xcb_get_geometry(connection, window),
|
||||
+ xcb_query_tree(connection, window)
|
||||
+ }
|
||||
+ };
|
||||
+ g_cache_tid = pthread_self();
|
||||
+ }
|
||||
|
||||
+ ~Prefetcher() {
|
||||
+ g_cache_tid = {};
|
||||
+ free(std::get<0>(g_cache.cached_replies));
|
||||
+ free(std::get<1>(g_cache.cached_replies));
|
||||
+ g_cache.cached_replies = {nullptr,nullptr};
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
struct ReplyDeleter {
|
||||
+ const bool m_bOwning = true;
|
||||
+ consteval ReplyDeleter(bool bOwning = true) : m_bOwning{bOwning} {}
|
||||
template <typename T>
|
||||
void operator()(T* ptr) const {
|
||||
- free(const_cast<std::remove_const_t<T>*>(ptr));
|
||||
+ if (m_bOwning)
|
||||
+ free(const_cast<std::remove_const_t<T>*>(ptr));
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
using Reply = std::unique_ptr<T, ReplyDeleter>;
|
||||
+
|
||||
+ template <typename Cookie_RetType, typename Reply_RetType, typename XcbConn=xcb_connection_t*, typename... Args>
|
||||
+ class XcbFetch {
|
||||
+ using cookie_f_ptr_t = Cookie_RetType (*)(XcbConn, Args...);
|
||||
+ using reply_f_ptr_t = Reply_RetType* (*)(XcbConn, Cookie_RetType, xcb_generic_error_t**);
|
||||
+
|
||||
+ const cookie_f_ptr_t m_cookieFunc;
|
||||
+ const reply_f_ptr_t m_replyFunc;
|
||||
+
|
||||
+ public:
|
||||
+ consteval XcbFetch(cookie_f_ptr_t cookieFunc, reply_f_ptr_t replyFunc) : m_cookieFunc{cookieFunc}, m_replyFunc{replyFunc} {}
|
||||
+
|
||||
+ inline Reply<Reply_RetType> operator()(XcbConn conn, auto... args) { //have to use auto for argsTwo, since otherwise there'd be a type deduction conflict
|
||||
+ return Reply<Reply_RetType> { m_replyFunc(conn, m_cookieFunc(conn, args...), nullptr) };
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ template <typename CookieType>
|
||||
+ concept CacheableCookie = std::is_same<CookieType, xcb_get_geometry_cookie_t>::value
|
||||
+ || std::is_same<CookieType, xcb_query_tree_cookie_t>::value;
|
||||
+
|
||||
+ template <CacheableCookie Cookie_RetType, typename Reply_RetType>
|
||||
+ class XcbFetch<Cookie_RetType, Reply_RetType, xcb_connection_t*, xcb_window_t> {
|
||||
+ using cookie_f_ptr_t = Cookie_RetType (*)(xcb_connection_t*, xcb_window_t);
|
||||
+ using reply_f_ptr_t = Reply_RetType* (*)(xcb_connection_t*, Cookie_RetType, xcb_generic_error_t**);
|
||||
+
|
||||
+ const cookie_f_ptr_t m_cookieFunc;
|
||||
+ const reply_f_ptr_t m_replyFunc;
|
||||
+
|
||||
+ inline Reply<Reply_RetType> getCachedReply(xcb_connection_t* connection) {
|
||||
+ if (std::get<Reply_RetType*>(g_cache.cached_replies) == nullptr) {
|
||||
+ std::get<Reply_RetType*>(g_cache.cached_replies) = m_replyFunc(connection, std::get<Cookie_RetType>(g_cache.cached_cookies), nullptr);
|
||||
+ }
|
||||
|
||||
+ return Reply<Reply_RetType>{std::get<Reply_RetType*>(g_cache.cached_replies), ReplyDeleter{false}}; // return 'non-owning' unique_ptr
|
||||
+ }
|
||||
+
|
||||
+ public:
|
||||
+ consteval XcbFetch(cookie_f_ptr_t cookieFunc, reply_f_ptr_t replyFunc) : m_cookieFunc{cookieFunc}, m_replyFunc{replyFunc} {}
|
||||
+
|
||||
+ inline Reply<Reply_RetType> operator()(xcb_connection_t* conn, xcb_window_t window) {
|
||||
+ const bool tryCached = pthread_equal(g_cache_tid, pthread_self())
|
||||
+ && g_cache.window == window;
|
||||
+ if (!tryCached) [[unlikely]]
|
||||
+ return Reply<Reply_RetType> { m_replyFunc(conn, m_cookieFunc(conn, window), nullptr) };
|
||||
+
|
||||
+ auto ret = getCachedReply(conn);
|
||||
+ #if !defined(NDEBUG) || NDEBUG == 0
|
||||
+ if (!ret)
|
||||
+ fprintf(stderr, "[Gamescope WSI] getCachedReply() failed.\n");
|
||||
+ #endif
|
||||
+ return ret;
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
static std::optional<xcb_atom_t> getAtom(xcb_connection_t* connection, std::string_view name) {
|
||||
- xcb_intern_atom_cookie_t cookie = xcb_intern_atom(connection, false, name.length(), name.data());
|
||||
- auto reply = Reply<xcb_intern_atom_reply_t>{ xcb_intern_atom_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_intern_atom, xcb_intern_atom_reply}(connection, false, name.length(), name.data());
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] Failed to get xcb atom.\n");
|
||||
return std::nullopt;
|
||||
@@ -34,8 +118,7 @@ namespace xcb {
|
||||
|
||||
xcb_screen_t* screen = xcb_setup_roots_iterator(xcb_get_setup(connection)).data;
|
||||
|
||||
- xcb_get_property_cookie_t cookie = xcb_get_property(connection, false, screen->root, atom, XCB_ATOM_CARDINAL, 0, sizeof(T) / sizeof(uint32_t));
|
||||
- auto reply = Reply<xcb_get_property_reply_t>{ xcb_get_property_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_get_property, xcb_get_property_reply}(connection, false, screen->root, atom, XCB_ATOM_CARDINAL, 0, sizeof(T) / sizeof(uint32_t));
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] Failed to read T root window property.\n");
|
||||
return std::nullopt;
|
||||
@@ -61,8 +144,7 @@ namespace xcb {
|
||||
|
||||
static std::optional<xcb_window_t> getToplevelWindow(xcb_connection_t* connection, xcb_window_t window) {
|
||||
for (;;) {
|
||||
- xcb_query_tree_cookie_t cookie = xcb_query_tree(connection, window);
|
||||
- auto reply = Reply<xcb_query_tree_reply_t>{ xcb_query_tree_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_query_tree, xcb_query_tree_reply}(connection, window);
|
||||
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] getToplevelWindow: xcb_query_tree failed for window 0x%x.\n", window);
|
||||
@@ -77,8 +159,7 @@ namespace xcb {
|
||||
}
|
||||
|
||||
static std::optional<VkRect2D> getWindowRect(xcb_connection_t* connection, xcb_window_t window) {
|
||||
- xcb_get_geometry_cookie_t cookie = xcb_get_geometry(connection, window);
|
||||
- auto reply = Reply<xcb_get_geometry_reply_t>{ xcb_get_geometry_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_get_geometry, xcb_get_geometry_reply}(connection, window);
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] getWindowRect: xcb_get_geometry failed for window 0x%x.\n", window);
|
||||
return std::nullopt;
|
||||
@@ -112,8 +193,7 @@ namespace xcb {
|
||||
static std::optional<VkExtent2D> getLargestObscuringChildWindowSize(xcb_connection_t* connection, xcb_window_t window) {
|
||||
VkExtent2D largestExtent = {};
|
||||
|
||||
- xcb_query_tree_cookie_t cookie = xcb_query_tree(connection, window);
|
||||
- auto reply = Reply<xcb_query_tree_reply_t>{ xcb_query_tree_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_query_tree, xcb_query_tree_reply}(connection, window);
|
||||
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] getLargestObscuringWindowSize: xcb_query_tree failed for window 0x%x.\n", window);
|
||||
@@ -130,8 +210,7 @@ namespace xcb {
|
||||
for (uint32_t i = 0; i < reply->children_len; i++) {
|
||||
xcb_window_t child = children[i];
|
||||
|
||||
- xcb_get_window_attributes_cookie_t attributeCookie = xcb_get_window_attributes(connection, child);
|
||||
- auto attributeReply = Reply<xcb_get_window_attributes_reply_t>{ xcb_get_window_attributes_reply(connection, attributeCookie, nullptr) };
|
||||
+ auto attributeReply = XcbFetch{xcb_get_window_attributes, xcb_get_window_attributes_reply}(connection, child);
|
||||
|
||||
const bool obscuring =
|
||||
attributeReply &&
|
||||
|
||||
From 1b59621f4de5c05096d1f279cba2e04264124154 Mon Sep 17 00:00:00 2001
|
||||
From: sharkautarch <128002472+sharkautarch@users.noreply.github.com>
|
||||
Date: Tue, 18 Jun 2024 22:21:23 -0400
|
||||
Subject: [PATCH 2/2] WSI: prefetcher: fix issue w/ attempting to prefetch xcb
|
||||
stuff for pure wayland surfaces
|
||||
|
||||
---
|
||||
layer/VkLayer_FROG_gamescope_wsi.cpp | 2 +-
|
||||
layer/xcb_helpers.hpp | 9 ++++++++-
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
index f26819a60..ce011dcd7 100644
|
||||
--- a/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
@@ -1234,7 +1234,7 @@ namespace GamescopeWSILayer {
|
||||
continue;
|
||||
}
|
||||
|
||||
- xcb::Prefetcher prefetcher(gamescopeSurface->connection, gamescopeSurface->window);
|
||||
+ auto prefetcher = xcb::Prefetcher::GetPrefetcherIf(!gamescopeSurface->isWayland(), gamescopeSurface->connection, gamescopeSurface->window);
|
||||
const bool canBypass = gamescopeSurface->canBypassXWayland();
|
||||
if (canBypass != gamescopeSwapchain->isBypassingXWayland)
|
||||
UpdateSwapchainResult(canBypass ? VK_SUBOPTIMAL_KHR : VK_ERROR_OUT_OF_DATE_KHR);
|
||||
diff --git a/layer/xcb_helpers.hpp b/layer/xcb_helpers.hpp
|
||||
index 72d0ec092..f26aef38b 100644
|
||||
--- a/layer/xcb_helpers.hpp
|
||||
+++ b/layer/xcb_helpers.hpp
|
||||
@@ -16,6 +16,13 @@ namespace xcb {
|
||||
|
||||
//Note: this class is currently only meant to be used within GamescopeWSILayer::VkDeviceOverrides::QueuePresentKHR:
|
||||
struct Prefetcher {
|
||||
+ static std::optional<Prefetcher> GetPrefetcherIf(bool bCond, xcb_connection_t* connection, const xcb_window_t window) {
|
||||
+ if (bCond)
|
||||
+ return std::optional<Prefetcher>(std::in_place_t{}, connection, window);
|
||||
+
|
||||
+ return std::nullopt;
|
||||
+ }
|
||||
+
|
||||
explicit Prefetcher(xcb_connection_t* connection, const xcb_window_t window) {
|
||||
g_cache = {
|
||||
.window = window,
|
||||
@@ -90,7 +97,7 @@ namespace xcb {
|
||||
inline Reply<Reply_RetType> operator()(xcb_connection_t* conn, xcb_window_t window) {
|
||||
const bool tryCached = pthread_equal(g_cache_tid, pthread_self())
|
||||
&& g_cache.window == window;
|
||||
- if (!tryCached) [[unlikely]]
|
||||
+ if (!tryCached)
|
||||
return Reply<Reply_RetType> { m_replyFunc(conn, m_cookieFunc(conn, window), nullptr) };
|
||||
|
||||
auto ret = getCachedReply(conn);
|
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
||||
|
||||
Name: gamescope
|
||||
Version: 100.%{gamescope_tag}
|
||||
Release: 4.bazzite
|
||||
Release: 6.bazzite
|
||||
Summary: Micro-compositor for video games on Wayland
|
||||
|
||||
License: BSD
|
||||
@ -24,17 +24,8 @@ Patch1: chimeraos.patch
|
||||
Patch2: disable-steam-touch-click-atom.patch
|
||||
Patch3: v2-0001-steam-overlay-hotkeys.patch
|
||||
|
||||
# https://github.com/ValveSoftware/gamescope/issues/1369
|
||||
Patch4: revert-299bc34.patch
|
||||
|
||||
# https://github.com/ValveSoftware/gamescope/pull/1231
|
||||
Patch5: 1231.patch
|
||||
|
||||
# https://github.com/ValveSoftware/gamescope/commit/b288a82a61005b91dd268b8ea4e8d124d4dd5267
|
||||
Patch6: ally-display.patch
|
||||
|
||||
# https://github.com/ValveSoftware/gamescope/pull/740
|
||||
Patch7: 740.patch
|
||||
Patch4: 740.patch
|
||||
|
||||
BuildRequires: meson >= 0.54.0
|
||||
BuildRequires: ninja-build
|
||||
@ -72,6 +63,7 @@ BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
BuildRequires: pkgconfig(hwdata)
|
||||
BuildRequires: pkgconfig(lcms2)
|
||||
BuildRequires: pkgconfig(luajit)
|
||||
BuildRequires: spirv-headers-devel
|
||||
# Enforce the the minimum EVR to contain fixes for all of:
|
||||
# CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898
|
||||
@ -107,7 +99,8 @@ Summary: libs for %{name}
|
||||
%summary
|
||||
|
||||
%prep
|
||||
git clone --depth 1 --branch %{gamescope_tag} %{url}.git
|
||||
# git clone --depth 1 --branch %%{gamescope_tag} %%{url}.git
|
||||
git clone --depth 1 --branch master %{url}.git
|
||||
cd gamescope
|
||||
git submodule update --init --recursive
|
||||
mkdir -p pkgconfig
|
||||
@ -137,6 +130,7 @@ cd gamescope
|
||||
%{_bindir}/gamescopectl
|
||||
%{_bindir}/gamescopestream
|
||||
%{_bindir}/gamescopereaper
|
||||
%{_datadir}/gamescope/*
|
||||
|
||||
%files libs
|
||||
%{_libdir}/libVkLayer_FROG_gamescope_wsi_*.so
|
||||
|
@ -1,65 +0,0 @@
|
||||
diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
|
||||
index 4216555..48c017d 100644
|
||||
--- a/src/steamcompmgr.cpp
|
||||
+++ b/src/steamcompmgr.cpp
|
||||
@@ -3236,7 +3236,7 @@ found:;
|
||||
if ( window_has_commits( focus ) )
|
||||
out->focusWindow = focus;
|
||||
else
|
||||
- focus->outdatedInteractiveFocus = true;
|
||||
+ out->outdatedInteractiveFocus = true;
|
||||
|
||||
// Always update X's idea of focus, but still dirty
|
||||
// the it being outdated so we can resolve that globally later.
|
||||
@@ -5963,28 +5963,37 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co
|
||||
// Window just got a new available commit, determine if that's worth a repaint
|
||||
|
||||
// If this is an overlay that we're presenting, repaint
|
||||
- if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ if ( gameFocused )
|
||||
{
|
||||
- hasRepaintNonBasePlane = true;
|
||||
- }
|
||||
+ if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ {
|
||||
+ hasRepaintNonBasePlane = true;
|
||||
+ }
|
||||
|
||||
- if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT )
|
||||
- {
|
||||
- hasRepaintNonBasePlane = true;
|
||||
+ if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT )
|
||||
+ {
|
||||
+ hasRepaintNonBasePlane = true;
|
||||
+ }
|
||||
}
|
||||
-
|
||||
- // If this is an external overlay, repaint
|
||||
- if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ if ( ctx )
|
||||
{
|
||||
- hasRepaintNonBasePlane = true;
|
||||
+ if ( ctx->focus.outdatedInteractiveFocus )
|
||||
+ {
|
||||
+ MakeFocusDirty();
|
||||
+ ctx->focus.outdatedInteractiveFocus = false;
|
||||
+ }
|
||||
}
|
||||
-
|
||||
- if ( w->outdatedInteractiveFocus )
|
||||
+ if ( global_focus.outdatedInteractiveFocus )
|
||||
{
|
||||
MakeFocusDirty();
|
||||
- w->outdatedInteractiveFocus = false;
|
||||
- }
|
||||
+ global_focus.outdatedInteractiveFocus = false;
|
||||
|
||||
+ // If this is an external overlay, repaint
|
||||
+ if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ {
|
||||
+ hasRepaintNonBasePlane = true;
|
||||
+ }
|
||||
+ }
|
||||
// If this is the main plane, repaint
|
||||
if ( w == global_focus.focusWindow && !w->isSteamStreamingClient )
|
||||
{
|
@ -0,0 +1,5 @@
|
||||
# Relocatable schemas are located here in dconf
|
||||
# Some Gnome extensions don't ship gschema XML, so their settings also need to go in dconf
|
||||
|
||||
[org/gnome/shell/extensions/Logo-menu]
|
||||
show-gamemode=true
|
@ -1,3 +0,0 @@
|
||||
[org/gnome/shell]
|
||||
enabled-extensions=['logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'caffeine@patapon.info', 'block-caribou-36@lxylxy123456.ercli.dev']
|
||||
disabled-extensions=['background-logo@fedorahosted.org']
|
@ -1,36 +0,0 @@
|
||||
[org/gnome/desktop/interface]
|
||||
toolkit-accessibility=false
|
||||
font-antialiasing='rgba'
|
||||
|
||||
[org/gnome/desktop/peripherals/mouse]
|
||||
accel-profile='flat'
|
||||
|
||||
[org/gnome/desktop/peripherals/touchpad]
|
||||
send-events='enabled'
|
||||
|
||||
[org/gnome/desktop/session]
|
||||
idle-delay=0
|
||||
|
||||
[org/gnome/gnome-session]
|
||||
logout-prompt=false
|
||||
|
||||
[org/gnome/settings-daemon/plugins/power]
|
||||
ambient-enabled=true
|
||||
idle-dim=true
|
||||
sleep-inactive-battery-timeout=300
|
||||
sleep-inactive-ac-timeout=900
|
||||
sleep-inactive-battery-type='suspend'
|
||||
sleep-inactive-ac-type='suspend'
|
||||
power-button-action='suspend'
|
||||
|
||||
[org/gnome/shell/extensions/just-perfection]
|
||||
search=false
|
||||
theme=false
|
||||
osd-position=1
|
||||
|
||||
[org/gnome/shell/extensions/Logo-menu]
|
||||
show-gamemode=true
|
||||
|
||||
[org/gnome/shell/extensions/tilingshell]
|
||||
snap-assistant-threshold=25
|
||||
override-window-menu=false
|
@ -0,0 +1,39 @@
|
||||
#-------------- DESKTOP MODIFICATIONS --------------#
|
||||
|
||||
[org.gnome.desktop.interface]
|
||||
toolkit-accessibility=false
|
||||
font-antialiasing='rgba'
|
||||
|
||||
[org.gnome.desktop.peripherals.mouse]
|
||||
accel-profile='flat'
|
||||
|
||||
[org.gnome.desktop.peripherals.touchpad]
|
||||
send-events='enabled'
|
||||
|
||||
[org.gnome.desktop.session]
|
||||
idle-delay=0
|
||||
|
||||
[org.gnome.gnome-session]
|
||||
logout-prompt=false
|
||||
|
||||
[org.gnome.settings-daemon.plugins.power]
|
||||
ambient-enabled=true
|
||||
idle-dim=true
|
||||
sleep-inactive-battery-timeout=300
|
||||
sleep-inactive-ac-timeout=900
|
||||
sleep-inactive-battery-type='suspend'
|
||||
sleep-inactive-ac-type='suspend'
|
||||
power-button-action='suspend'
|
||||
|
||||
[org.gnome.shell.extensions.just-perfection]
|
||||
search=false
|
||||
theme=false
|
||||
osd-position=1
|
||||
|
||||
[org.gnome.shell.extensions.tilingshell]
|
||||
snap-assistant-threshold=25
|
||||
override-window-menu=false
|
||||
|
||||
[org.gnome.shell]
|
||||
enabled-extensions=['logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'caffeine@patapon.info', 'block-caribou-36@lxylxy123456.ercli.dev']
|
||||
disabled-extensions=['background-logo@fedorahosted.org']
|
@ -2,15 +2,17 @@
|
||||
|
||||
# Restore Bazzite customized DE settings
|
||||
restore-gnome-de-settings:
|
||||
dconf load / < /etc/dconf/db/local.d/02-bazzite-global
|
||||
dconf load / < /etc/dconf/db/local.d/03-bazzite-dash
|
||||
dconf load / < /etc/dconf/db/local.d/05-bazzite-extensions
|
||||
dconf load / < /etc/dconf/db/local.d/06-bazzite-theme
|
||||
dconf load / < /etc/dconf/db/local.d/07-bazzite-deck
|
||||
for file in /usr/share/ublue-os/dconfs/desktop-silverblue/*; do
|
||||
dconf load / < "${file}"
|
||||
done
|
||||
for file in /usr/share/ublue-os/dconfs/deck-silverblue/*; do
|
||||
dconf load / < "${file}"
|
||||
done
|
||||
|
||||
# Restore Bazzite customized applications folders
|
||||
restore-gnome-folders:
|
||||
dconf load / < /etc/dconf/db/local.d/04-bazzite-folders
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-silverblue/zz0-02-bazzite-desktop-silverblue-folders
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-silverblue/01-bazzite-desktop-silverblue-folders
|
||||
|
||||
# Change automatic power profile switching behavior
|
||||
configure-auto-power-profile ACTION="help":
|
||||
|
@ -0,0 +1,6 @@
|
||||
# Relocatable schemas are located here in dconf
|
||||
# Some Gnome extensions don't ship gschema XML, so their settings also need to go in dconf
|
||||
|
||||
[org/gnome/Ptyxis/Profiles/2871e8027773ae74d6c87a5f659bbc74]
|
||||
palette='Breeze'
|
||||
opacity=0.9
|
@ -1,12 +0,0 @@
|
||||
[org/gnome/Ptyxis]
|
||||
restore-session=false
|
||||
restore-window-size=false
|
||||
audible-bell=false
|
||||
default-columns=uint32 111
|
||||
default-rows=uint32 25
|
||||
profile-uuids=['2871e8027773ae74d6c87a5f659bbc74']
|
||||
default-profile-uuid='2871e8027773ae74d6c87a5f659bbc74'
|
||||
|
||||
[org/gnome/Ptyxis/Profiles/2871e8027773ae74d6c87a5f659bbc74]
|
||||
palette='Breeze'
|
||||
opacity=0.9
|
@ -0,0 +1,12 @@
|
||||
#-------------- REMAINING SCHEMAS IN THIS SETTING SECTION ARE LOCATED IN DCONF --------------#
|
||||
# Settings bellow are supported with gschema override, but other settings, which are relocatable schemas, are not. Edit dconfs if you need to modify relocatable schemas.
|
||||
|
||||
# Ptyxis color palette & opacity is recognized as a relocatable schema
|
||||
[org.gnome.Ptyxis]
|
||||
restore-session=false
|
||||
restore-window-size=false
|
||||
audible-bell=false
|
||||
default-columns=uint32 111
|
||||
default-rows=uint32 25
|
||||
profile-uuids=['2871e8027773ae74d6c87a5f659bbc74']
|
||||
default-profile-uuid='2871e8027773ae74d6c87a5f659bbc74'
|
72
system_files/desktop/shared/usr/bin/dconf-override-converter
Executable file
72
system_files/desktop/shared/usr/bin/dconf-override-converter
Executable file
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Function to convert .gschema.override to dconf
|
||||
convert_to_dconf() {
|
||||
local output_dir="${!#}" # Last argument as output directory
|
||||
if [[ ! -d "$output_dir" ]]; then
|
||||
output_dir="$(dirname "${1}")" # Default to input file's directory
|
||||
fi
|
||||
|
||||
for input_file in "${@}"; do
|
||||
if [[ "${input_file}" != *".gschema.override" ]]; then
|
||||
printf "\e[1;31mERROR: ${input_file} is not a gschema override, so it can't be converted to dconf\e[0m\n" 1>&2
|
||||
continue
|
||||
fi
|
||||
local output_file="${output_dir}/$(basename "${input_file%.gschema.override}")"
|
||||
|
||||
# Check if output file exists and rename if necessary
|
||||
if [[ -e "${output_file}" ]]; then
|
||||
output_file="${output_file}_$(date +%s)" # Append timestamp
|
||||
fi
|
||||
|
||||
while IFS= read -r line; do
|
||||
if [[ "${line}" =~ ^\[ ]]; then
|
||||
line="${line//./\/}"
|
||||
fi
|
||||
echo "$line" >> "$output_file"
|
||||
done < "${input_file}"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# Function to convert dconf to .gschema.override
|
||||
convert_to_override() {
|
||||
local output_dir="${!#}" # Last argument as output directory
|
||||
if [[ ! -d "$output_dir" ]]; then
|
||||
output_dir="$(dirname "${1}")" # Default to input file's directory
|
||||
fi
|
||||
|
||||
for input_file in "${@}"; do
|
||||
if [[ "${input_file}" == *".gschema.override" ]]; then
|
||||
printf "\e[1;31mERROR: ${input_file} is a gschema override, there is no need to convert it to override again\e[0m\n" 1>&2
|
||||
continue
|
||||
fi
|
||||
local output_file="${output_dir}/$(basename "${input_file%.dconf}.gschema.override")"
|
||||
|
||||
# Check if output file exists and rename if necessary
|
||||
if [[ -e "${output_file}" ]]; then
|
||||
output_file="${output_file}_$(date +%s)" # Append timestamp
|
||||
fi
|
||||
|
||||
while IFS= read -r line; do
|
||||
if [[ "${line}" =~ ^\[ ]]; then
|
||||
line="${line//\//.}"
|
||||
fi
|
||||
echo "$line" >> "$output_file"
|
||||
done < "${input_file}"
|
||||
done
|
||||
}
|
||||
|
||||
# Main script logic
|
||||
if [[ "${1}" == "to-dconf" ]]; then
|
||||
shift
|
||||
convert_to_dconf "$@"
|
||||
elif [[ "${1}" == "to-override" ]]; then
|
||||
shift
|
||||
convert_to_override "$@"
|
||||
else
|
||||
echo "Usage: dconf-override-converter {to-dconf|to-override} <input_file1> <input_file2> ... [output_directory]"
|
||||
echo "If not specified:"
|
||||
echo "Output directory: defaults to output directory where input files are located"
|
||||
echo "WARNING: Wildcard is buggy when folders are present there, beware, will see how to fix"
|
||||
fi
|
@ -77,7 +77,8 @@ fi
|
||||
if [[ ! -f "$BAZZITE_CONFIG_DIR/ptyxis-initialized" ]]; then
|
||||
echo 'Configuring Ptyxis'
|
||||
if [[ $BASE_IMAGE_NAME =~ "kinoite" ]]; then
|
||||
dconf load / < /etc/dconf/db/local.d/02-bazzite-kde
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-kinoite/zz0-00-bazzite-desktop-kinoite-global
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-kinoite/00-bazzite-desktop-kinoite-ptyxis
|
||||
fi
|
||||
touch "$BAZZITE_CONFIG_DIR/ptyxis-initialized"
|
||||
fi
|
||||
|
@ -0,0 +1,35 @@
|
||||
# Relocatable schemas are located here in dconf
|
||||
# Some Gnome extensions don't ship gschema XML, so their settings also need to go in dconf
|
||||
|
||||
# LogoMenu extension
|
||||
[org/gnome/shell/extensions/Logo-menu]
|
||||
symbolic-icon=false
|
||||
menu-button-icon-image=0
|
||||
menu-button-icon-size=20
|
||||
hide-icon-shadow=false
|
||||
menu-button-terminal='ptyxis --new-window'
|
||||
menu-button-system-monitor='flatpak run io.missioncenter.MissionCenter'
|
||||
menu-button-extensions-app='com.mattjakeman.ExtensionManager.desktop'
|
||||
menu-button-software-center='gnome-software'
|
||||
show-activities-button=true
|
||||
show-lockscreen=false
|
||||
show-power-option=false
|
||||
show-gamemode=false
|
||||
hide-forcequit=true
|
||||
show-boxbuddy=true
|
||||
|
||||
# Keybindings
|
||||
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0]
|
||||
binding='<Control><Alt>t'
|
||||
command='ptyxis --new-window'
|
||||
name='Terminal'
|
||||
|
||||
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1]
|
||||
binding='<Control><Alt>KP_Delete'
|
||||
command='flatpak run io.missioncenter.MissionCenter'
|
||||
name='Mission Center'
|
||||
|
||||
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2]
|
||||
binding='<Control><Shift>Escape'
|
||||
command="flatpak run io.missioncenter.MissionCenter"
|
||||
name='Mission Center'
|
@ -1,5 +1,5 @@
|
||||
[org/gnome/desktop/app-folders]
|
||||
folder-children=['Games', 'GamingUtilities', 'Utilities', 'Containers', 'Waydroid', 'Wine', 'YaST', 'Pardus']
|
||||
# Relocatable schemas are located here in dconf
|
||||
# Some Gnome extensions don't ship gschema XML, so their settings also need to go in dconf
|
||||
|
||||
[org/gnome/desktop/app-folders/folders/GamingUtilities]
|
||||
apps=['com.github.Matoking.protontricks.desktop', 'discover_overlay_configure.desktop', 'com.vysp3r.ProtonPlus.desktop', 'io.github.benjamimgois.goverlay.desktop', 'com.gerbilsoft.rom-properties.rp-config.desktop', 'input-remapper-gtk.desktop', 'steamos-nested-desktop.desktop', 'hhd-ui.desktop']
|
@ -0,0 +1,4 @@
|
||||
# Lock Gnome Software updates
|
||||
/org/gnome/software/allow-updates
|
||||
/org/gnome/software/download-updates
|
||||
/org/gnome/software/download-updates-notify
|
@ -1,2 +0,0 @@
|
||||
[org/gnome/desktop/peripherals/touchpad]
|
||||
tap-to-click=true
|
@ -1,80 +0,0 @@
|
||||
[org/gnome/desktop/wm/keybindings]
|
||||
switch-applications=['<Super>Tab']
|
||||
switch-applications-backward=['<Shift><Super>Tab']
|
||||
switch-windows=['<Alt>Tab']
|
||||
switch-windows-backward=['<Shift><Alt>Tab']
|
||||
|
||||
[org/gnome/desktop/peripherals/keyboard]
|
||||
numlock-state=true
|
||||
|
||||
[org/gnome/desktop/peripherals/keyboard]
|
||||
numlock-state=true
|
||||
|
||||
[org/gnome/desktop/peripherals/touchpad]
|
||||
tap-to-click=true
|
||||
|
||||
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0]
|
||||
binding='<Control><Alt>t'
|
||||
command='ptyxis --new-window'
|
||||
name='Terminal'
|
||||
|
||||
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1]
|
||||
binding='<Control><Alt>KP_Delete'
|
||||
command='flatpak run io.missioncenter.MissionCenter'
|
||||
name='Mission Center'
|
||||
|
||||
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2]
|
||||
binding='<Control><Shift>Escape'
|
||||
command="flatpak run io.missioncenter.MissionCenter"
|
||||
name='Mission Center'
|
||||
|
||||
[org/gnome/settings-daemon/plugins/media-keys]
|
||||
custom-keybindings=['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/']
|
||||
|
||||
[org/gtk/settings/file-chooser]
|
||||
sort-directories-first=true
|
||||
|
||||
[org/gtk/gtk4/settings/file-chooser]
|
||||
sort-directories-first=true
|
||||
|
||||
[org/gnome/nautilus/preferences]
|
||||
show-create-link=true
|
||||
|
||||
[org/gnome/mutter]
|
||||
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
|
||||
check-alive-timeout=uint32 20000
|
||||
|
||||
[org/gnome/software]
|
||||
allow-updates=false
|
||||
download-updates=false
|
||||
download-updates-notify=false
|
||||
|
||||
[com/github/stunkymonkey/nautilus-open-any-terminal]
|
||||
terminal='ptyxis'
|
||||
keybindings=''
|
||||
new-tab=false
|
||||
flatpak='off'
|
||||
|
||||
[org/gnome/Ptyxis]
|
||||
restore-session=false
|
||||
restore-window-size=false
|
||||
audible-bell=false
|
||||
|
||||
[org/gnome/shell/extensions/Logo-menu]
|
||||
symbolic-icon=false
|
||||
menu-button-icon-image=0
|
||||
menu-button-icon-size=20
|
||||
hide-icon-shadow=false
|
||||
menu-button-terminal='ptyxis --new-window'
|
||||
menu-button-system-monitor='flatpak run io.missioncenter.MissionCenter'
|
||||
menu-button-extensions-app='com.mattjakeman.ExtensionManager.desktop'
|
||||
menu-button-software-center='gnome-software'
|
||||
show-activities-button=true
|
||||
show-lockscreen=false
|
||||
show-power-option=false
|
||||
show-gamemode=false
|
||||
hide-forcequit=true
|
||||
show-boxbuddy=true
|
||||
|
||||
[org/gnome/shell/extensions/appindicator]
|
||||
legacy-tray-enabled=false
|
@ -1,4 +0,0 @@
|
||||
[org/gnome/software]
|
||||
allow-updates=false
|
||||
download-updates=false
|
||||
download-updates-notify=false
|
@ -1,3 +0,0 @@
|
||||
user-db:user
|
||||
system-db:gdm
|
||||
file-db:/usr/share/gdm/greeter-dconf-defaults
|
@ -1,2 +0,0 @@
|
||||
user-db:user
|
||||
system-db:local
|
@ -0,0 +1,49 @@
|
||||
[org.gnome.desktop.wm.keybindings]
|
||||
switch-applications=['<Super>Tab']
|
||||
switch-applications-backward=['<Shift><Super>Tab']
|
||||
switch-windows=['<Alt>Tab']
|
||||
switch-windows-backward=['<Shift><Alt>Tab']
|
||||
|
||||
[org.gnome.desktop.peripherals.keyboard]
|
||||
numlock-state=true
|
||||
|
||||
[org.gtk.Settings.FileChooser]
|
||||
sort-directories-first=true
|
||||
|
||||
[org.gtk.gtk4.Settings.FileChooser]
|
||||
sort-directories-first=true
|
||||
|
||||
[org.gnome.nautilus.preferences]
|
||||
show-create-link=true
|
||||
|
||||
[org.gnome.mutter]
|
||||
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
|
||||
check-alive-timeout=uint32 20000
|
||||
|
||||
[org.gnome.software]
|
||||
allow-updates=false
|
||||
download-updates=false
|
||||
download-updates-notify=false
|
||||
|
||||
[com.github.stunkymonkey.nautilus-open-any-terminal]
|
||||
terminal='ptyxis'
|
||||
keybindings=''
|
||||
new-tab=false
|
||||
flatpak='off'
|
||||
|
||||
[org.gnome.Ptyxis]
|
||||
restore-session=false
|
||||
restore-window-size=false
|
||||
audible-bell=false
|
||||
|
||||
[org.gnome.shell.extensions.appindicator]
|
||||
legacy-tray-enabled=false
|
||||
|
||||
#-------------- REMAINING SCHEMAS IN THIS SETTING SECTION ARE LOCATED IN DCONF --------------#
|
||||
# Settings bellow are supported with gschema override, but other settings, which are relocatable schemas, are not. Edit dconfs if you need to modify relocatable schemas.
|
||||
|
||||
# LogoMenu extension misses Gschema XML file, so it's in dconf
|
||||
|
||||
# Modifying shortcut actions for custom0, custom1, custom2, etc. are recognized as relocatable schemas
|
||||
[org.gnome.settings-daemon.plugins.media-keys]
|
||||
custom-keybindings=['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/']
|
@ -1,2 +1,2 @@
|
||||
[org/gnome/shell]
|
||||
[org.gnome.shell]
|
||||
favorite-apps=['org.mozilla.firefox.desktop', 'steam.desktop', 'net.lutris.Lutris.desktop', 'org.gnome.Software.desktop', 'org.gnome.Ptyxis.desktop', 'org.gnome.Nautilus.desktop']
|
@ -0,0 +1,6 @@
|
||||
#-------------- REMAINING SCHEMAS IN THIS SETTING SECTION ARE LOCATED IN DCONF --------------#
|
||||
# Settings bellow are supported with gschema override, but other settings, which are relocatable schemas, are not. Edit dconfs if you need to modify relocatable schemas.
|
||||
|
||||
# Folder names & .desktop shortcut content is recognized as a relocatable schema
|
||||
[org.gnome.desktop.app-folders]
|
||||
folder-children=['Games', 'GamingUtilities', 'Utilities', 'Containers', 'Waydroid', 'Wine', 'YaST', 'Pardus']
|
@ -1,3 +1,3 @@
|
||||
[org/gnome/shell]
|
||||
[org.gnome.shell]
|
||||
enabled-extensions=['logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'caffeine@patapon.info', 'tilingshell@ferrarodomenico.com']
|
||||
disabled-extensions=['background-logo@fedorahosted.org']
|
@ -1,28 +1,27 @@
|
||||
[org/gnome/shell/extensions/user-theme]
|
||||
[org.gnome.shell.extensions.user-theme]
|
||||
name='Bazzite'
|
||||
|
||||
[org/gnome/desktop/wm/preferences]
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout='appmenu:minimize,maximize,close'
|
||||
|
||||
[org/gnome/desktop/interface]
|
||||
[org.gnome.desktop.interface]
|
||||
color-scheme='prefer-dark'
|
||||
gtk-theme='adw-gtk3-dark'
|
||||
enable-hot-corners=false
|
||||
document-font-name='Noto Sans 11'
|
||||
font-name='Noto Sans 11'
|
||||
monospace-font-name='Fira Code weight=450 10'
|
||||
accent-color='purple'
|
||||
|
||||
[org/gnome/mutter]
|
||||
[org.gnome.mutter]
|
||||
center-new-windows=true
|
||||
|
||||
[org/gnome/desktop/sound]
|
||||
[org.gnome.desktop.sound]
|
||||
theme-name='steam'
|
||||
|
||||
[org/gnome/desktop/wm/preferences]
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
titlebar-font='Noto Sans Medium 11'
|
||||
|
||||
[org/gnome/desktop/background]
|
||||
[org.gnome.desktop.background]
|
||||
color-shading-type='solid'
|
||||
picture-options='zoom'
|
||||
picture-uri='file:///usr/share/backgrounds/convergence-dynamic.xml'
|
||||
@ -30,14 +29,14 @@ picture-uri-dark='file:///usr/share/backgrounds/convergence-dynamic.xml'
|
||||
primary-color='#310042'
|
||||
secondary-color='#000622'
|
||||
|
||||
[org/gnome/desktop/screensaver]
|
||||
[org.gnome.desktop.screensaver]
|
||||
color-shading-type='solid'
|
||||
picture-options='zoom'
|
||||
picture-uri='file:///usr/share/backgrounds/convergence-dynamic.xml'
|
||||
primary-color='#310042'
|
||||
secondary-color='#000622'
|
||||
|
||||
[org/gnome/shell/extensions/just-perfection]
|
||||
[org.gnome.shell.extensions.just-perfection]
|
||||
animation=4
|
||||
theme=true
|
||||
window-demands-attention-focus=true
|
||||
@ -50,38 +49,38 @@ alt-tab-small-icon-size=64
|
||||
alt-tab-icon-size=64
|
||||
osd-position=3
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/panel]
|
||||
[org.gnome.shell.extensions.blur-my-shell.panel]
|
||||
blur=true
|
||||
static-blur=true
|
||||
unblur-in-overview=true
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/overview]
|
||||
[org.gnome.shell.extensions.blur-my-shell.overview]
|
||||
style-components=3
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/appfolder]
|
||||
[org.gnome.shell.extensions.blur-my-shell.appfolder]
|
||||
style-dialogs=0
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/applications]
|
||||
[org.gnome.shell.extensions.blur-my-shell.applications]
|
||||
blur=false
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/screenshot]
|
||||
[org.gnome.shell.extensions.blur-my-shell.screenshot]
|
||||
blur=true
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/lockscreen]
|
||||
[org.gnome.shell.extensions.blur-my-shell.lockscreen]
|
||||
blur=true
|
||||
|
||||
[org/gnome/shell/extensions/blur-my-shell/applications]
|
||||
[org.gnome.shell.extensions.blur-my-shell.applications]
|
||||
opacity=255
|
||||
whitelist=['org.gnome.Ptyxis']
|
||||
|
||||
[org/gnome/shell/extensions/com/github/hermes83/compiz-windows-effect]
|
||||
[org.gnome.shell.extensions.com.github.hermes83.compiz-windows-effect]
|
||||
maximize-effect=true
|
||||
resize-effect=true
|
||||
|
||||
[org/gnome/shell/extensions/ncom/github/hermes83/compiz-alike-magic-lamp-effect]
|
||||
[org.gnome.shell.extensions.ncom.github.hermes83.compiz-alike-magic-lamp-effect]
|
||||
duration=250
|
||||
|
||||
[org/gnome/shell/extensions/tilingshell]
|
||||
[org.gnome.shell.extensions.tilingshell]
|
||||
inner-gaps=8
|
||||
outer-gaps=8
|
||||
enable-blur-snap-assistant=true
|
@ -2,14 +2,14 @@
|
||||
|
||||
# Restore Bazzite customized DE settings
|
||||
restore-gnome-de-settings:
|
||||
dconf load / < /etc/dconf/db/local.d/02-bazzite-global
|
||||
dconf load / < /etc/dconf/db/local.d/03-bazzite-dash
|
||||
dconf load / < /etc/dconf/db/local.d/05-bazzite-extensions
|
||||
dconf load / < /etc/dconf/db/local.d/06-bazzite-theme
|
||||
for file in /usr/share/ublue-os/dconfs/desktop-silverblue/*; do
|
||||
dconf load / < "${file}"
|
||||
done
|
||||
|
||||
# Restore Bazzite customized applications folders
|
||||
restore-gnome-folders:
|
||||
dconf load / < /etc/dconf/db/local.d/04-bazzite-folders
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-silverblue/zz0-02-bazzite-desktop-silverblue-folders
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-silverblue/01-bazzite-desktop-silverblue-folders
|
||||
|
||||
# Change automatic power profile switching behavior
|
||||
configure-auto-power-profile ACTION="help":
|
||||
|
@ -1,3 +1,3 @@
|
||||
[org/gnome/shell]
|
||||
[org.gnome.shell]
|
||||
enabled-extensions=['logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'supergfxctl-gex@asus-linux.org', 'caffeine@patapon.info', 'tilingshell@ferrarodomenico.com']
|
||||
disabled-extensions=['background-logo@fedorahosted.org']
|
Loading…
x
Reference in New Issue
Block a user