Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
Remove all visible server-side borders and disable special Wine/Proton rules
src/server/config.rs | 16 ++++++++--------
src/server/window.rs | 25 ++-----------------------
src/server/window_manager.rs | 2 +-
3 files changed, 11 insertions(+), 32 deletions(-)
diff --git a/src/server/config.rs b/src/server/config.rs
index 884ad5b..082947a 100644
--- a/src/server/config.rs
+++ b/src/server/config.rs
@@ -55,11 +55,11 @@ impl Default for Layout {
gap_bottom: 48,
cascade_offset: 20,
bar_height: 24,
- border_width: 6,
+ border_width: 0,
fullscreen_border_width: 0,
- cascade_border_width: 6,
- grid_border_width: 6,
- floating_border_width: 6,
+ cascade_border_width: 0,
+ grid_border_width: 0,
+ floating_border_width: 0,
border_r: 0x3E3E3E3Eu32,
border_g: 0x3E3E3E3Eu32,
border_b: 0x3E3E3E3Eu32,
@@ -393,11 +393,11 @@ fn default_gap_right() -> i64 { 48 }
fn default_gap_bottom() -> i64 { 48 }
fn default_cascade_offset() -> i64 { 20 }
fn default_bar_height() -> i64 { 24 }
-fn default_border_width() -> i64 { 6 }
+fn default_border_width() -> i64 { 0 }
fn default_fullscreen_border_width() -> i64 { 0 }
-fn default_cascade_border_width() -> i64 { 6 }
-fn default_grid_border_width() -> i64 { 6 }
-fn default_floating_border_width() -> i64 { 6 }
+fn default_cascade_border_width() -> i64 { 0 }
+fn default_grid_border_width() -> i64 { 0 }
+fn default_floating_border_width() -> i64 { 0 }
fn default_border_color() -> String { "#3e3e3e".to_string() }
fn default_background_color() -> String { "#0a0a0a".to_string() }
fn default_border_font_size() -> i64 { 11 }
diff --git a/src/server/window.rs b/src/server/window.rs
index 174a11b..87b4e4f 100644
--- a/src/server/window.rs
+++ b/src/server/window.rs
@@ -261,28 +261,7 @@ pub struct Window {
impl Window {
pub unsafe fn is_wine(&self) -> bool {
- match self.impl_type {
- WindowImpl::Xwayland(xwindow) => {
- if xwindow.is_null() {
- return false;
- }
- let class_ptr = (*(*xwindow).xsurface).class;
- let class = if class_ptr.is_null() { "" } else { std::ffi::CStr::from_ptr(class_ptr).to_str().unwrap_or("") };
- let title_ptr = (*(*xwindow).xsurface).title;
- let title = if title_ptr.is_null() { "" } else { std::ffi::CStr::from_ptr(title_ptr).to_str().unwrap_or("") };
-
- let class_lower = class.to_lowercase();
- let title_lower = title.to_lowercase();
- class_lower.contains("steam_proton")
- || class_lower.contains("steam_app")
- || class_lower.contains("wine")
- || class_lower.contains("upc.exe")
- || class_lower.contains("trackmania")
- || title_lower.contains("ubisoft")
- || title_lower.contains("trackmania")
- }
- _ => false,
- }
+ false
}
pub unsafe fn is_fullscreen(&self) -> bool {
@@ -1781,7 +1760,7 @@ impl Window {
ffi::wlr_scene_rect_set_color(self.window_background, bg_color.as_ptr());
ffi::wlr_scene_node_set_enabled(self.window_background as *mut ffi::wlr_scene_node, !requested.hidden && self.wm_requested.ssd);
- let is_virtual_border = !self.wm_requested.ssd || requested.border.width == 0;
+ let is_virtual_border = true;
if requested.circular {
ffi::wlr_scene_node_set_enabled(self.border.left as *mut ffi::wlr_scene_node, false);
ffi::wlr_scene_node_set_enabled(self.border.right as *mut ffi::wlr_scene_node, false);
diff --git a/src/server/window_manager.rs b/src/server/window_manager.rs
index ab8369b..20a8faf 100644
--- a/src/server/window_manager.rs
+++ b/src/server/window_manager.rs
@@ -1048,7 +1048,7 @@ fn get_closest_tag(x: f64, y: f64) -> i32 {
}
}
- let bw = self.layout.border_width;
+ let bw = 0;
let g = self.layout.overlay_border_gap;
let dec_h = std::cmp::max(bw, 16);