Skip to content

Instantly share code, notes, and snippets.

@probonopd
probonopd / Wayland.md
Last active December 9, 2025 11:38
Think twice about Wayland. It breaks everything!

Think twice before abandoning X11. Wayland breaks everything!

Wayland breaks everything! It is binary incompatible, provides no clear transition path with 1:1 replacements for everything in X11, and is even philosophically incompatible with X11. Hence, if you are interested in existing applications to "just work" without the need for adjustments, then you may be better off avoiding Wayland.

Wayland solves no issues I have but breaks almost everything I need. Even the most basic, most simple things (like xkill) - in this case with no obvious replacement. And usually it stays broken, because the Wayland folks mostly seem to care about Automotive, Gnome, maybe KDE - and alienating everyone else (e.g., people using just an X11 window manager or something like GNUstep) in the process.

Feature comparison

@mckelvin
mckelvin / remove_jietumacapp.sh
Last active October 25, 2022 03:11 — forked from ITJesse/remove_jietumacapp
删除 QQ for Mac 的流氓截图
#!/bin/sh
chmod 0000 "/Applications/QQ.app/Contents/Library/LoginItems/QQ jietu plugin.app/Contents/MacOS/QQ jietu plugin"
@1a57danc3
1a57danc3 / aliyun_notice_09272017
Created September 27, 2017 14:16
aliyun_notice_09272017
尊敬的客户,您好!
接到电信运营商的通知,为了增强网络安全性,中国电信将于北京时间2017年09月28日00:00开始在全国范围的IDC机房电信链路网络出口添加病毒防护策略,屏蔽部分端口(详细参看下列清单),届时对这些端口的访问将被阻断。建议您提前检查您的业务中是否包含下述端口的服务,提前更换端口以免受到影响。
具体屏蔽的端口如下:
目的端口:137-139,协议:TCP/UDP
目的端口:593,协议:TCP/UDP
目的端口:445,协议:TCP/UDP
@codeslinger
codeslinger / CircularFIFO.h
Created January 3, 2016 15:38
SPMC ring buffer implementation in C++ from DKit
/**
* CircularFIFO.h - this file defines the template class for a single-producer,
* multi-consumer, circular FIFO queue with a size initially
* specified in the definition of the instance. This queue
* is completely thread-safe so long as there is ONE and ONLY
* ONE thread placing elements into this container, and there
* can be as many as necessary remobing them from the queue.
* The syntax is very simple - push() will push an element,
* returning 'true' if there is room, and the value has been
* placed in the queue.