Compare commits

...

35 Commits

Author SHA1 Message Date
58fd5c4d50 update cliphist viewer 2026-02-04 16:09:27 +01:00
3837b42437 fix: missing icon in hyprlock 2026-02-03 09:37:04 +01:00
dce89a0380 update memo & more 2026-02-01 19:00:52 +01:00
483b0bbb8c add prime-toggle script 2026-01-27 12:46:21 +01:00
b9ed4072f2 minor 2026-01-24 23:16:59 +01:00
4f384a2c79 update mail-service.md, terminology clarification 2026-01-24 06:17:00 +01:00
cc21b2b1dc update mail-service.md 2026-01-22 06:20:50 +01:00
1d070f1f05 update memos 2026-01-22 02:13:05 +01:00
6600f2e9c8 update vvenc.md 2026-01-22 00:20:01 +01:00
67869d7316 update mail-service.md 2026-01-21 23:50:04 +01:00
eb50aec6dc update vvenc memo 2026-01-21 10:33:52 +01:00
85378102b6 memo: add VVenC 2026-01-21 03:39:39 +01:00
274710ae56 fix: update color format in fastfetch scripts for compatibility 2026-01-19 23:07:29 +01:00
bb19a37d62 update 2026-01-19 22:31:58 +01:00
e0c51ea3bd fix: some distros use ping6 instead of ping -6 2026-01-19 09:14:29 +01:00
111c1437be add script to test max MTU 2026-01-19 08:59:23 +01:00
bd3f6c0b17 update fish config 2026-01-18 05:55:00 +01:00
44d7546d05 qs: add an option to force networkfetch use ipv4 2026-01-18 01:05:18 +01:00
98a80c7cbc add a script to query if the terminal supports kitty tgp 2026-01-17 07:36:42 +01:00
4d7b4a744d fix fnm env 2026-01-17 00:54:34 +01:00
62bc815a4c fnm envs 2026-01-17 00:53:15 +01:00
c131e3ec28 more about mailing service 2026-01-16 21:48:26 +01:00
50e5d6cabc split hypr* & hyprland stow packages; add success_count in change-colortheme script 2026-01-16 11:51:58 +01:00
9d11029f79 update .bash_profile 2026-01-16 07:52:16 +01:00
e2c15d40b3 fix: update file paths in gpg-pgp.md 2026-01-16 07:41:41 +01:00
8245022322 add configs and memos about gpg 2026-01-16 07:35:32 +01:00
d436eded36 update mail-service.md 2026-01-16 05:16:50 +01:00
bda2762036 memo: add mail-service.md 2026-01-16 04:18:21 +01:00
72ad195b5a update lfs.md 2026-01-15 22:02:33 +01:00
79e69c9087 try sign with gpg 2026-01-14 22:12:35 +01:00
bc0cb5f6c4 recording: constqp should be better for recording 2026-01-14 20:30:28 +01:00
b8ed23db27 niri: render-drm-device should be a render device 2026-01-14 05:06:22 +01:00
de722ffe3d qs: fix actions of cavabar 2026-01-13 10:25:22 +01:00
fbc799414c qs: fix actions of cavabar 2026-01-13 10:24:21 +01:00
afc7125ecf qs: fix actions of cavabar 2026-01-13 10:24:17 +01:00
7 changed files with 38 additions and 16 deletions
+2
View File
@@ -15,6 +15,8 @@ environment {
LIBVA_DRIVER_NAME "nvidia" LIBVA_DRIVER_NAME "nvidia"
__GLX_VENDOR_LIBRARY_NAME "nvidia" __GLX_VENDOR_LIBRARY_NAME "nvidia"
NVD_BACKEND "nvidia" NVD_BACKEND "nvidia"
GBM_BACKEND "nvidia-drm";
WLR_NO_HARDWARE_CURSORS "1";
// Fix Swing // Fix Swing
_JAVA_AWT_WM_NONREPARENTING "1" _JAVA_AWT_WM_NONREPARENTING "1"
@@ -4,7 +4,7 @@
"doNotDisturb": false "doNotDisturb": false
}, },
"primaryColor": "#89b4fa", "primaryColor": "#89b4fa",
"showLyricsBar": false, "showLyricsBar": true,
"sunsetDefaultEnabled": true, "sunsetDefaultEnabled": true,
"wifiEnabled": true "wifiEnabled": true
} }
@@ -3,12 +3,15 @@ import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import qs.Constants import qs.Constants
import qs.Modules.Bar.Misc import qs.Modules.Bar.Misc
import qs.Services
import qs.Utils
Item { Item {
id: root id: root
property int barWidth: 5 property int barWidth: 5
property int barSpacing: 3 property int barSpacing: 3
property int mode: 0
implicitWidth: root.barWidth * CavaBarService.count + root.barSpacing * (CavaBarService.count - 1) implicitWidth: root.barWidth * CavaBarService.count + root.barSpacing * (CavaBarService.count - 1)
implicitHeight: parent.height - 10 implicitHeight: parent.height - 10
@@ -22,7 +25,7 @@ Item {
} }
Repeater { Repeater {
model: CavaBarService.values model: mode == 2 ? Array(CavaBarService.count).fill(0.3) : CavaBarService.values
Rectangle { Rectangle {
width: root.barWidth width: root.barWidth
@@ -49,12 +52,26 @@ Item {
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: (mouse) => { onClicked: (mouse) => {
if (mouse.button === Qt.LeftButton) if (mouse.button === Qt.LeftButton) {
MusicManager.playPause(); MusicManager.playPause();
else if (mouse.button === Qt.RightButton) } else if (mouse.button === Qt.RightButton) {
SettingsService.showLyricsBar = !SettingsService.showLyricsBar; SettingsService.showLyricsBar = !SettingsService.showLyricsBar;
else if (mouse.button === Qt.MiddleButton) } else if (mouse.button === Qt.MiddleButton) {
CavaBarService.forceEnable = !CavaBarService.forceEnable; mode = (mode + 1) % 3;
if (mode === 0) {
Logger.log("CavaBar", "Cava bar mode set to Auto");
CavaBarService.forceEnable = false;
CavaBarService.forceDisable = false;
} else if (mode === 1) {
Logger.log("CavaBar", "Cava bar mode set to Always On");
CavaBarService.forceEnable = true;
CavaBarService.forceDisable = false;
} else if (mode === 2) {
Logger.log("CavaBar", "Cava bar mode set to Always Off");
CavaBarService.forceEnable = false;
CavaBarService.forceDisable = true;
}
}
} }
onWheel: function(wheel) { onWheel: function(wheel) {
if (wheel.angleDelta.y > 0) if (wheel.angleDelta.y > 0)
@@ -7,7 +7,8 @@ Singleton {
id: root id: root
property int count: 6 property int count: 6
property int forceEnable: 6 property bool forceEnable: false
property bool forceDisable: false
property alias values: cavaProcess.values property alias values: cavaProcess.values
Cava { Cava {
@@ -15,6 +16,7 @@ Singleton {
count: root.count count: root.count
forceEnable: root.forceEnable forceEnable: root.forceEnable
forceDisable: root.forceDisable
} }
} }
@@ -32,12 +32,13 @@ Scope {
}) })
property var values: Array(count).fill(0) property var values: Array(count).fill(0)
property bool forceEnable: false property bool forceEnable: false
property bool forceDisable: false
Process { Process {
id: process id: process
stdinEnabled: true stdinEnabled: true
running: root.forceEnable || !MusicManager.isAllPaused() running: !root.forceDisable && (MusicManager.isPlaying || root.forceEnable)
command: ["cava", "-p", "/dev/stdin"] command: ["cava", "-p", "/dev/stdin"]
onExited: { onExited: {
stdinEnabled = true; stdinEnabled = true;
@@ -14,6 +14,8 @@ import subprocess
from pathlib import Path from pathlib import Path
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
MAX_WORKERS = 8
PALETTES = { PALETTES = {
"catppuccin-mocha": { "catppuccin-mocha": {
"rosewater": "f5e0dc", "rosewater": "f5e0dc",
@@ -45,9 +47,7 @@ SCRIPTS = {
"nwg-look": [CONFIG_DIR / "nwg-look" / "apply-color"], "nwg-look": [CONFIG_DIR / "nwg-look" / "apply-color"],
"mako": [CONFIG_DIR / "mako" / "apply-color"], "mako": [CONFIG_DIR / "mako" / "apply-color"],
"niri": [CONFIG_DIR / "niri" / "apply-color"], "niri": [CONFIG_DIR / "niri" / "apply-color"],
"oh-my-posh": [ "oh-my-posh": [CONFIG_DIR / "fish" / "apply-color-omp"], # borrowing fish's directory
CONFIG_DIR / "fish" / "apply-color-omp"
], # borrowing fish's directory
"quickshell": [CONFIG_DIR / "quickshell" / "apply-color"], "quickshell": [CONFIG_DIR / "quickshell" / "apply-color"],
"rofi": [CONFIG_DIR / "rofi" / "apply-color"], "rofi": [CONFIG_DIR / "rofi" / "apply-color"],
"waybar": [CONFIG_DIR / "waybar" / "apply-color"], "waybar": [CONFIG_DIR / "waybar" / "apply-color"],
@@ -57,8 +57,8 @@ SCRIPTS = {
], ],
"yazi": [CONFIG_DIR / "yazi" / "apply-color"], "yazi": [CONFIG_DIR / "yazi" / "apply-color"],
} }
# or simply `find -L ${CONFIG_DIR} -type f -iname 'apply-color*'` to get all available scripts, # or simply `find [-L] <CONFIG_DIR> -type f -name 'apply-color*'` to get all available scripts,
# but I do need the exact application names anyway, so hardcoding does make some sense # but I need the exact application names anyway, so hardcoding does make some sense
def hex2rgb(hex_color: str) -> tuple[int, int, int]: def hex2rgb(hex_color: str) -> tuple[int, int, int]:
@@ -318,7 +318,7 @@ def main():
script_args = [palette_name, flavor, palette[flavor]] script_args = [palette_name, flavor, palette[flavor]]
tasks = [] tasks = []
with ThreadPoolExecutor(max_workers=8) as executor: with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
for app in apps: for app in apps:
for script in SCRIPTS[app]: for script in SCRIPTS[app]:
tasks.append(executor.submit(run_script, script, script_args)) tasks.append(executor.submit(run_script, script, script_args))
@@ -329,7 +329,7 @@ def main():
"-a", "-a",
"change-colortheme", "change-colortheme",
"Colortheme Changed", "Colortheme Changed",
f"Palette: {palette_name}\nFlavor: {flavor}", f"Palette: {palette_name}\nFlavor: {flavor}\nApplied to {len(apps)} apps",
] ]
) )