Merge branch 'testing'

This commit is contained in:
Kyle Gospodnetich 2024-10-08 23:09:00 -07:00
commit 85a1e0d275
33 changed files with 665 additions and 751 deletions

View File

@ -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

View File

@ -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 && \

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 )
{

View File

@ -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

View File

@ -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']

View File

@ -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

View File

@ -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']

View File

@ -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":

View File

@ -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

View File

@ -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

View File

@ -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'

View 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

View File

@ -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

View File

@ -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'

View File

@ -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']

View File

@ -0,0 +1,4 @@
# Lock Gnome Software updates
/org/gnome/software/allow-updates
/org/gnome/software/download-updates
/org/gnome/software/download-updates-notify

View File

@ -1,2 +0,0 @@
[org/gnome/desktop/peripherals/touchpad]
tap-to-click=true

View File

@ -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

View File

@ -1,4 +0,0 @@
[org/gnome/software]
allow-updates=false
download-updates=false
download-updates-notify=false

View File

@ -1,3 +0,0 @@
user-db:user
system-db:gdm
file-db:/usr/share/gdm/greeter-dconf-defaults

View File

@ -1,2 +0,0 @@
user-db:user
system-db:local

View File

@ -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/']

View File

@ -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']

View File

@ -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']

View File

@ -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']

View File

@ -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

View File

@ -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":

View File

@ -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']