Skip to content

Instantly share code, notes, and snippets.

@Sporif
Sporif / userChrome.css
Last active April 26, 2022 09:38
NOTE: Doesn't work with Firefox 72+. Add userChrome.js support to Firefox with just userChrome.css. A compact version of https://github.com/Sporif/firefox-quantum-userchromejs. Instead of loading userChrome.xml file it uses a data URI.
toolbarbutton#alltabs-button {
-moz-binding: url(data:text/plain;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8IS0tIENvcHlyaWdodCAoYykgMjAxNyBIYWdnYWkgTnVjaGkNCkF2YWlsYWJsZSBmb3IgdXNlIHVuZGVyIHRoZSBNSVQgTGljZW5zZToNCmh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUDQogLS0+DQoNCjwhLS0gUnVuIHVzZXJDaHJvbWUuanMvdXNlckNocm9tZS54dWwgYW5kIC51Yy5qcy8udWMueHVsLy5jc3MgZmlsZXMgIC0tPg0KPGJpbmRpbmdzIHhtbG5zPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL3hibCI+DQogICAgPGJpbmRpbmcgaWQ9ImpzIj4NCiAgICAgICAgPGltcGxlbWVudGF0aW9uPg0KICAgICAgICAgICAgPGNvbnN0cnVjdG9yPjwhW0NEQVRBWw0KICAgICAgICAgICAgICAgIGlmKHdpbmRvdy51c2VyQ2hyb21lSnNNb2QpIHJldHVybjsNCiAgICAgICAgICAgICAgICB3aW5kb3cudXNlckNocm9tZUpzTW9kID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgIHZhciBjaHJvbWVGaWxlcyA9IEZpbGVVdGlscy5nZXREaXIoIlVDaHJtIiwgW10pLmRpcmVjdG9yeUVudHJpZXM7DQogICAgICAgICAgICAgICAgdmFyIHh1bEZpbGVzID0gW107DQogICAgICAgICAgICAgICAgdmFyIHNzcyA9IENjWydAbW96aWxsYS5vcmcvY29udGVudC9zdHlsZS1zaGVldC1zZXJ2aWNlOzEnXS5nZXRTZXJ2aWNlKENpLm5zSVN0eWxlU2hlZXRTZXJ2aWNlKTsNCg0KICAgICAgICAgIC
@Sporif
Sporif / RestartFirefoxButton_Movable.uc.js
Last active October 3, 2022 18:27
Restart Button for Firefox. An updated version of https://github.com/Endor8/userChrome.js/tree/master/restartfirefoxbutton_movable. Middle click also empties the script cache.
(function() {
if (location != 'chrome://browser/content/browser.xul' && location != 'chrome://browser/content/browser.xhtml')
return;
try {
CustomizableUI.createWidget({
id: 'restart-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
@Sporif
Sporif / dark-scrollbar.as.css
Last active July 28, 2021 04:55
Dark scrollbar for Firefox 57. Tested on Windows 10. Requires https://gist.github.com/Sporif/db6b3440fba0b1bcf5477afacf93f875
scrollbar, scrollbar *, scrollcorner {
-moz-appearance: none !important;
--scrollbar-width: 10px;
--scrollbar-height: var(--scrollbar-width);
}
scrollbar, scrollcorner {
background: #282828 !important;
}
scrollbar[orient="vertical"] {
@Sporif
Sporif / suspend-kwin.sh
Last active April 1, 2021 20:33
Suspend KWin X11 compositing when certain windows are in focus and fullscreen. Looks in ~/.config/suspend-kwin/app_list for programs to suspend.
#!/usr/bin/env bash
# Suspend KWin X11 compositing when certain windows are in focus and fullscreen
# Requirements:
# qdbus: suspend compositing, check status of compositing
# xprop: find window in focus and if fullscreen
# The "Suspend Compositing" global shortcut to be present and enabled
# Credits to: https://askubuntu.com/a/1017567, https://bbs.archlinux.org/viewtopic.php?pid=994356#p994356
@Sporif
Sporif / protonenv
Last active October 4, 2021 16:51
A simple script that sets environment variables to allow launching applications using Proton's wine
#!/usr/bin/env bash
# A simple script that sets environment variables to allow launching applications using Proton's wine
# You can either source the script for use in the current shell, after which you can use wine commands as usual
# Or execute it with a program as the arguments e.g `protonenv winetricks` or `protonenv winecfg`
# Paths to check for Steam installation
STEAM_DIRS="
$HOME/.local/share/Steam
$HOME/.steam/steam
@Sporif
Sporif / nvidia-gpu-sensor.pl
Last active July 21, 2023 06:47 — forked from hacker1024/nvidia-gpu-sensor.pl
KDE KSysGuard NVIDIA GPU temperature/memory/utilization sensor, based on @frantic1048's script, but with units and total memory detection.
#!/usr/bin/perl -w
# act as a KSysGuard sensor
# provides NVIDIA GPU info via `nvidia-smi`
# Usage:
# 1. Save this script, make it executable and move it to a directory in your $PATH
# 2. Save this ksysguard sensor file for Nvidia: https://gist.github.com/Sporif/31f0d8d9efc3315752aa4031f7080d79
# 2. In KSysGuard's menu, open "File > Import Tab From File option"
# 3. Open the sensor file (nvidia.srgd)
@Sporif
Sporif / nvidia.sgrd
Last active July 21, 2023 06:47
ksysguard sensor file for Nvidia. Requires https://gist.github.com/Sporif/4ce63f7b6eea691bdbb18905a9589169 to be in path
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE KSysGuardWorkSheet>
<WorkSheet title="Nvidia" columns="2" rows="4" locked="0" interval="1">
<host name="127.0.0.1" port="-1" shell="" command="nvidia-gpu-sensor.pl"/>
<display labels="1" svgBackground="" vScroll="1" version="1" class="FancyPlotter" vLines="1" unit="" row="0" hScale="3" autoRange="1" fontSize="8" manualRange="0" rowSpan="1" columnSpan="1" showUnit="0" vDistance="30" column="0" stacked="0" title="GPU Temp" hLines="1">
<beam sensorName="gpu_temp" sensorType="integer" color="0xff0057ae" hostName="127.0.0.1"/>
</display>
<display labels="1" svgBackground="" vScroll="1" version="1" class="FancyPlotter" vLines="1" unit="" row="0" hScale="3" autoRange="1" fontSize="8" manualRange="0" rowSpan="1" columnSpan="1" showUnit="0" vDistance="30" column="1" stacked="0" title="GPU Fan Speed" hLines="1">
<beam sensorName="gpu_fan_speed" sensorType="integer" color="0xff0057ae" hostName="127.0.0.1"/>
</display>
@Sporif
Sporif / toggle-default-sink.sh
Last active May 19, 2020 22:56
Toggle between two pulseaudio sinks
#!/usr/bin/env bash
# Toggle between two pulseaudio sinks
# Requires
# load-module module-stream-restore restore_device=false
# to be set in /etc/pulse/default.pa
# Current default sink
CURR_SINK_INDEX="$(pacmd list-sinks | grep \* | awk '{print $3}')"
@Sporif
Sporif / set-default-sink.sh
Last active May 19, 2020 22:56
Set default pulseaudio sink
#!/usr/bin/env bash
# Set default pulseaudio sink and move all sink inputs there
# Requires
# load-module module-stream-restore restore_device=false
# in /etc/pulse/default.pa
[ -z "$1" ] && echo "You must specify a sink (either index or name):
$(pacmd list-sinks | grep index -A 1)" && exit 1
@Sporif
Sporif / unredirect.patch
Last active March 20, 2024 09:38
Unredirection patch for kwin 5.21
diff --git a/composite.cpp b/composite.cpp
index c529f398e..ce5b0bd08 100644
--- a/composite.cpp
+++ b/composite.cpp
@@ -109,11 +109,16 @@ Compositor::Compositor(QObject* workspace)
: QObject(workspace)
, m_state(State::Off)
, m_selectionOwner(nullptr)
+ , forceUnredirectCheck(false)
, m_scene(nullptr)