qs: a new action
This commit is contained in:
@@ -85,7 +85,7 @@ Item {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
acceptedButtons: Qt.LeftButton | Qt.MiddleButton
|
acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton
|
||||||
onEntered: {
|
onEntered: {
|
||||||
if (windowTitle.implicitWidth > titleContainer.width)
|
if (windowTitle.implicitWidth > titleContainer.width)
|
||||||
windowTitle.x = titleContainer.width - windowTitle.implicitWidth;
|
windowTitle.x = titleContainer.width - windowTitle.implicitWidth;
|
||||||
@@ -99,6 +99,8 @@ Item {
|
|||||||
Quickshell.execDetached(["niri", "msg", "action", "close-window"]);
|
Quickshell.execDetached(["niri", "msg", "action", "close-window"]);
|
||||||
else if (mouse.button === Qt.LeftButton)
|
else if (mouse.button === Qt.LeftButton)
|
||||||
Quickshell.execDetached(["niri", "msg", "action", "center-window"]);
|
Quickshell.execDetached(["niri", "msg", "action", "center-window"]);
|
||||||
|
else if (mouse.button === Qt.RightButton)
|
||||||
|
Quickshell.execDetached(["niri", "msg", "action", "maximize-window-to-edges"]);
|
||||||
}
|
}
|
||||||
onWheel: function(wheel) {
|
onWheel: function(wheel) {
|
||||||
if (wheel.angleDelta.y > 0)
|
if (wheel.angleDelta.y > 0)
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Description:
|
# Description:
|
||||||
# Select which GPU to use for rendering for Hyprland and Niri.
|
# Select which GPU to use for rendering by Hyprland and Niri.
|
||||||
#
|
#
|
||||||
# envs exported:
|
# Envs exported:
|
||||||
# HYPR_AQ_DRM_DEVICES - Colon-separated list of DRM device paths for Hyprland's aq_drm
|
# HYPR_AQ_DRM_DEVICES - Colon-separated list of DRM device paths for Hyprland's AQ_DRM_DEVICES env
|
||||||
# BRIGHTNESSCTL_DEVICE - Device identifier for brightnessctl
|
# BRIGHTNESSCTL_DEVICE - Device identifier for brightnessctl
|
||||||
|
|
||||||
# Constants
|
# Constants
|
||||||
@@ -19,36 +19,36 @@ nvidia_path=""
|
|||||||
amd_path=""
|
amd_path=""
|
||||||
|
|
||||||
for link in /dev/dri/by-path/*-card; do
|
for link in /dev/dri/by-path/*-card; do
|
||||||
[[ -e "$link" ]] || continue
|
[[ -e "$link" ]] || continue
|
||||||
card="$(readlink -f "$link")"
|
card="$(readlink -f "$link")"
|
||||||
vfile="/sys/class/drm/$(basename "$card")/device/vendor"
|
vfile="/sys/class/drm/$(basename "$card")/device/vendor"
|
||||||
[[ -r "$vfile" ]] || continue
|
[[ -r "$vfile" ]] || continue
|
||||||
vendor="$(cat "$vfile")"
|
vendor="$(cat "$vfile")"
|
||||||
case "$vendor" in
|
case "$vendor" in
|
||||||
0x10de) nvidia_path="$card" ;;
|
0x10de) nvidia_path="$card" ;;
|
||||||
0x8086) intel_path="$card" ;;
|
0x8086) intel_path="$card" ;;
|
||||||
0x1002) amd_path="$card" ;;
|
0x1002) amd_path="$card" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Specify device for brightnessctl
|
# Specify device for brightnessctl
|
||||||
# Only tested on my laptop with Intel iGPU & Nvidia dGPU
|
# Only tested on my laptop with Intel iGPU & Nvidia dGPU
|
||||||
BRIGHTNESSCTL_DEVICE="auto"
|
BRIGHTNESSCTL_DEVICE="auto"
|
||||||
if [[ -n "$intel_path" ]]; then
|
if [[ -n "$intel_path" ]]; then
|
||||||
BRIGHTNESSCTL_DEVICE="intel_backlight"
|
BRIGHTNESSCTL_DEVICE="intel_backlight"
|
||||||
elif [[ -n "$nvidia_path" ]]; then
|
elif [[ -n "$nvidia_path" ]]; then
|
||||||
BRIGHTNESSCTL_DEVICE="nvidia_0"
|
BRIGHTNESSCTL_DEVICE="nvidia_0"
|
||||||
fi
|
fi
|
||||||
export BRIGHTNESSCTL_DEVICE
|
export BRIGHTNESSCTL_DEVICE
|
||||||
|
|
||||||
# AQ_DRM_DEVICES allows multiple entries separated by colon
|
# AQ_DRM_DEVICES allows multiple entries separated by colon
|
||||||
devices=""
|
devices=""
|
||||||
for who in "${prefer_order[@]}"; do
|
for who in "${prefer_order[@]}"; do
|
||||||
case "$who" in
|
case "$who" in
|
||||||
nvidia) [[ -n "$nvidia_path" ]] && devices="${devices:+$devices:}$nvidia_path" ;;
|
nvidia) [[ -n "$nvidia_path" ]] && devices="${devices:+$devices:}$nvidia_path" ;;
|
||||||
intel) [[ -n "$intel_path" ]] && devices="${devices:+$devices:}$intel_path" ;;
|
intel) [[ -n "$intel_path" ]] && devices="${devices:+$devices:}$intel_path" ;;
|
||||||
amd) [[ -n "$amd_path" ]] && devices="${devices:+$devices:}$amd_path" ;;
|
amd) [[ -n "$amd_path" ]] && devices="${devices:+$devices:}$amd_path" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
HYPR_AQ_DRM_DEVICES="${devices:-$default_dri_path}"
|
HYPR_AQ_DRM_DEVICES="${devices:-$default_dri_path}"
|
||||||
export HYPR_AQ_DRM_DEVICES
|
export HYPR_AQ_DRM_DEVICES
|
||||||
@@ -56,28 +56,38 @@ export HYPR_AQ_DRM_DEVICES
|
|||||||
# But niri only supports choosing one preferred render device
|
# But niri only supports choosing one preferred render device
|
||||||
primary_device="$default_dri_path"
|
primary_device="$default_dri_path"
|
||||||
for who in "${prefer_order[@]}"; do
|
for who in "${prefer_order[@]}"; do
|
||||||
case "$who" in
|
case "$who" in
|
||||||
nvidia) [[ -n "$nvidia_path" ]] && { primary_device="$nvidia_path"; break; } ;;
|
nvidia) [[ -n "$nvidia_path" ]] && {
|
||||||
intel) [[ -n "$intel_path" ]] && { primary_device="$intel_path"; break; } ;;
|
primary_device="$nvidia_path"
|
||||||
amd) [[ -n "$amd_path" ]] && { primary_device="$amd_path"; break; } ;;
|
break
|
||||||
esac
|
} ;;
|
||||||
|
intel) [[ -n "$intel_path" ]] && {
|
||||||
|
primary_device="$intel_path"
|
||||||
|
break
|
||||||
|
} ;;
|
||||||
|
amd) [[ -n "$amd_path" ]] && {
|
||||||
|
primary_device="$amd_path"
|
||||||
|
break
|
||||||
|
} ;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Update niri config
|
# Update niri config
|
||||||
function update_niri_config() {
|
function update_niri_config() {
|
||||||
local config_file="$1"
|
local config_file="$1"
|
||||||
local device_path="$2"
|
local device_path="$2"
|
||||||
|
|
||||||
[[ -f "$config_file" ]] || return
|
[[ -f "$config_file" ]] || return
|
||||||
|
|
||||||
if grep -qE '^\s*render-drm-device\s+"[^"]+"' "$config_file"; then
|
if grep -qE '^\s*render-drm-device\s+"[^"]+"' "$config_file"; then
|
||||||
local current
|
local current
|
||||||
current="$(grep -E '^\s*render-drm-device\s+"[^"]+"' "$config_file" | sed -E 's/^\s*render-drm-device\s+"([^"]+)".*/\1/')"
|
current="$(grep -E '^\s*render-drm-device\s+"[^"]+"' "$config_file" | sed -E 's/^\s*render-drm-device\s+"([^"]+)".*/\1/')"
|
||||||
[[ "$current" == "$device_path" ]] && return
|
[[ "$current" == "$device_path" ]] && return
|
||||||
sed -i -E "s|^(\s*render-drm-device\s+)\"[^\"]+\"|\1\"$device_path\"|" "$config_file"
|
sed -i -E "s|^(\s*render-drm-device\s+)\"[^\"]+\"|\1\"$device_path\"|" "$config_file"
|
||||||
else
|
else
|
||||||
printf '\ndebug {\nrender-drm-device "%s"\n}\n' "$device_path" >> "$config_file"
|
printf '\ndebug {\nrender-drm-device "%s"\n}\n' "$device_path" >>"$config_file"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
update_niri_config "$niri_config_file" "$primary_device"
|
update_niri_config "$niri_config_file" "$primary_device"
|
||||||
|
|
||||||
|
|||||||
Submodule config/wallpaper/Pictures/backgrounds updated: 984d33f2c5...503ff8b986
Reference in New Issue
Block a user