forked from Shinonome/dots-hyprland
Merge branch 'end-4:main' into parallax
This commit is contained in:
@@ -1,28 +1,31 @@
|
||||
function fish_prompt -d "Write out the prompt"
|
||||
# This shows up as USER@HOST /home/user/ >, with the directory colored
|
||||
# $USER and $hostname are set by fish, so you can just use them
|
||||
# instead of using `whoami` and `hostname`
|
||||
printf '%s@%s %s%s%s > ' $USER $hostname \
|
||||
(set_color $fish_color_cwd) (prompt_pwd) (set_color normal)
|
||||
end
|
||||
|
||||
if status is-interactive # Commands to run in interactive sessions can go here
|
||||
|
||||
# Commands to run in interactive sessions can go here
|
||||
if status is-interactive
|
||||
# No greeting
|
||||
set fish_greeting
|
||||
|
||||
# Use starship
|
||||
starship init fish | source
|
||||
function starship_transient_prompt_func
|
||||
starship module character
|
||||
end
|
||||
if test "$TERM" != "linux"
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
end
|
||||
|
||||
# Colors
|
||||
if test -f ~/.local/state/quickshell/user/generated/terminal/sequences.txt
|
||||
cat ~/.local/state/quickshell/user/generated/terminal/sequences.txt
|
||||
end
|
||||
|
||||
# Aliases
|
||||
alias clear "printf '\033[2J\033[3J\033[1;1H'" # fix: kitty doesn't clear properly
|
||||
# kitty doesn't clear properly so we need to do this weird printing
|
||||
alias clear "printf '\033[2J\033[3J\033[1;1H'"
|
||||
alias celar "printf '\033[2J\033[3J\033[1;1H'"
|
||||
alias claer "printf '\033[2J\033[3J\033[1;1H'"
|
||||
alias ls 'eza --icons'
|
||||
alias pamcan pacman
|
||||
alias q 'qs -c ii'
|
||||
if test "$TERM" != "linux"
|
||||
alias ls 'eza --icons'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -12,11 +12,11 @@ QuickToggleModel {
|
||||
name: Translation.tr("Night Light")
|
||||
statusText: (auto ? Translation.tr("Auto, ") : "") + (toggled ? Translation.tr("Active") : Translation.tr("Inactive"))
|
||||
|
||||
toggled: Hyprsunset.active
|
||||
toggled: Hyprsunset.temperatureActive
|
||||
icon: auto ? "night_sight_auto" : "bedtime"
|
||||
|
||||
mainAction: () => {
|
||||
Hyprsunset.toggle()
|
||||
Hyprsunset.toggleTemperature()
|
||||
}
|
||||
hasMenu: true
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ Slider {
|
||||
id: root
|
||||
|
||||
property list<real> stopIndicatorValues: [1]
|
||||
property list<real> dividerValues: []
|
||||
enum Configuration {
|
||||
Wavy = 4,
|
||||
XS = 12,
|
||||
@@ -45,6 +46,7 @@ Slider {
|
||||
property real handleHeight: (configuration === StyledSlider.Configuration.Wavy) ? 24 : Math.max(33, trackWidth + 9)
|
||||
property real handleWidth: root.pressed ? handlePressedWidth : handleDefaultWidth
|
||||
property real handleMargins: 4
|
||||
property real dividerMargins: 2
|
||||
property real trackDotSize: 3
|
||||
property bool usePercentTooltip: true
|
||||
property string tooltipContent: usePercentTooltip ? `${Math.round(((value - from) / (to - from)) * 100)}%` : `${Math.round(value)}`
|
||||
@@ -94,71 +96,94 @@ Slider {
|
||||
}
|
||||
|
||||
background: Item {
|
||||
id: background
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: parent.width
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: root.width
|
||||
implicitHeight: trackWidth
|
||||
|
||||
property var normalized: root.dividerValues.map(v => (v - root.from) / (root.to - root.from))
|
||||
property var filtered: normalized.filter(v => Math.abs(v - root.visualPosition) * effectiveDraggingWidth > handleMargins + handleWidth / 2 - dividerMargins)
|
||||
property var leftValues: [0, ...filtered.filter(v => v < root.visualPosition), root.visualPosition]
|
||||
property var rightValues: [root.visualPosition, ...filtered.filter(v => v > root.visualPosition), 1]
|
||||
property var leftWidths: leftValues.map((v, i, a) => a[i + 1] - v).slice(0, -1)
|
||||
property var rightWidths: rightValues.map((v, i, a) => a[i + 1] - v).slice(0, -1)
|
||||
|
||||
// Fill left
|
||||
Loader {
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
}
|
||||
width: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins)
|
||||
height: root.trackWidth
|
||||
active: !root.wavy
|
||||
sourceComponent: Rectangle {
|
||||
color: root.highlightColor
|
||||
topLeftRadius: root.trackRadius
|
||||
bottomLeftRadius: root.trackRadius
|
||||
topRightRadius: root.unsharpenRadius
|
||||
bottomRightRadius: root.unsharpenRadius
|
||||
Repeater {
|
||||
model: background.leftWidths.length
|
||||
|
||||
Loader {
|
||||
required property real index
|
||||
anchors.verticalCenter: background.verticalCenter
|
||||
property real leftMargin: index > 0 ? root.dividerMargins : 0
|
||||
property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins
|
||||
x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + (index > 0 ? leftPadding : 0)
|
||||
width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + (index === 0 ? leftPadding : 0)
|
||||
height: root.trackWidth
|
||||
active: !root.wavy
|
||||
sourceComponent: Rectangle {
|
||||
color: root.highlightColor
|
||||
topLeftRadius: index === 0 ? root.trackRadius : root.unsharpenRadius
|
||||
bottomLeftRadius: index === 0 ? root.trackRadius : root.unsharpenRadius
|
||||
topRightRadius: root.unsharpenRadius
|
||||
bottomRightRadius: root.unsharpenRadius
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loader {
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
}
|
||||
width: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins)
|
||||
height: root.height
|
||||
active: root.wavy
|
||||
sourceComponent: WavyLine {
|
||||
id: wavyFill
|
||||
frequency: root.waveFrequency
|
||||
fullLength: root.width
|
||||
color: root.highlightColor
|
||||
amplitudeMultiplier: root.wavy ? 0.5 : 0
|
||||
width: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins)
|
||||
height: root.trackWidth
|
||||
Connections {
|
||||
target: root
|
||||
function onValueChanged() { wavyFill.requestPaint(); }
|
||||
function onHighlightColorChanged() { wavyFill.requestPaint(); }
|
||||
}
|
||||
FrameAnimation {
|
||||
running: root.animateWave
|
||||
onTriggered: {
|
||||
wavyFill.requestPaint()
|
||||
Repeater {
|
||||
model: background.leftWidths.length
|
||||
|
||||
Loader {
|
||||
required property int index
|
||||
anchors.verticalCenter: background.verticalCenter
|
||||
property real leftMargin: index > 0 ? root.dividerMargins : 0
|
||||
property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins
|
||||
x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + (index > 0 ? leftPadding : 0)
|
||||
width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + (index === 0 ? leftPadding : 0)
|
||||
height: root.height
|
||||
active: root.wavy
|
||||
sourceComponent: WavyLine {
|
||||
id: wavyFill
|
||||
frequency: root.waveFrequency
|
||||
fullLength: root.width
|
||||
color: root.highlightColor
|
||||
amplitudeMultiplier: root.wavy ? 0.5 : 0
|
||||
width: parent.width
|
||||
height: root.trackWidth
|
||||
Connections {
|
||||
target: root
|
||||
function onValueChanged() { wavyFill.requestPaint(); }
|
||||
function onHighlightColorChanged() { wavyFill.requestPaint(); }
|
||||
}
|
||||
FrameAnimation {
|
||||
running: root.animateWave
|
||||
onTriggered: {
|
||||
wavyFill.requestPaint()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fill right
|
||||
Rectangle {
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
right: parent.right
|
||||
Repeater {
|
||||
model: background.rightWidths.length
|
||||
|
||||
Rectangle {
|
||||
required property int index
|
||||
anchors.verticalCenter: background.verticalCenter
|
||||
property real leftMargin: index > 0 ? root.dividerMargins : root.handleMargins
|
||||
property real rightMargin: index < background.rightWidths.length - 1 ? root.dividerMargins : 0
|
||||
x: background.rightValues[index] * root.effectiveDraggingWidth + leftMargin + (index === 0 ? handleWidth / 2 : 0) + leftPadding
|
||||
width: background.rightWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === 0 ? handleWidth / 2 : 0) + (index === background.rightWidths.length - 1 ? rightPadding : 0)
|
||||
height: trackWidth
|
||||
color: root.trackColor
|
||||
topRightRadius: index === background.rightWidths.length - 1 ? root.trackRadius : root.unsharpenRadius
|
||||
bottomRightRadius: index === background.rightWidths.length - 1 ? root.trackRadius : root.unsharpenRadius
|
||||
topLeftRadius: root.unsharpenRadius
|
||||
bottomLeftRadius: root.unsharpenRadius
|
||||
}
|
||||
width: root.handleMargins + ((1 - root.visualPosition) * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins)
|
||||
height: trackWidth
|
||||
color: root.trackColor
|
||||
topRightRadius: root.trackRadius
|
||||
bottomRightRadius: root.trackRadius
|
||||
topLeftRadius: root.unsharpenRadius
|
||||
bottomLeftRadius: root.unsharpenRadius
|
||||
}
|
||||
|
||||
// Stop indicators
|
||||
@@ -177,7 +202,7 @@ Slider {
|
||||
|
||||
implicitWidth: root.handleWidth
|
||||
implicitHeight: root.handleHeight
|
||||
x: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2)
|
||||
x: root.leftPadding + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2)
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
radius: Appearance.rounding.full
|
||||
color: root.handleColor
|
||||
|
||||
@@ -59,8 +59,8 @@ Item { // Bar content region
|
||||
implicitWidth: leftSectionRowLayout.implicitWidth
|
||||
implicitHeight: Appearance.sizes.baseBarHeight
|
||||
|
||||
onScrollDown: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness - 0.05)
|
||||
onScrollUp: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness + 0.05)
|
||||
onScrollDown: Brightness.decreaseBrightness()
|
||||
onScrollUp: Brightness.increaseBrightness()
|
||||
onMovedAway: GlobalStates.osdBrightnessOpen = false
|
||||
onPressed: event => {
|
||||
if (event.button === Qt.LeftButton)
|
||||
@@ -70,7 +70,7 @@ Item { // Bar content region
|
||||
// Visual content
|
||||
ScrollHint {
|
||||
reveal: barLeftSideMouseArea.hovered
|
||||
icon: "light_mode"
|
||||
icon: Hyprsunset.gamma === 100 ? "light_mode" : "wb_twilight"
|
||||
tooltipText: Translation.tr("Scroll to change brightness")
|
||||
side: "left"
|
||||
anchors.left: parent.left
|
||||
|
||||
@@ -25,6 +25,10 @@ Scope {
|
||||
id: "brightness",
|
||||
sourceUrl: "indicators/BrightnessIndicator.qml"
|
||||
},
|
||||
{
|
||||
id: "gamma",
|
||||
sourceUrl: "indicators/GammaIndicator.qml"
|
||||
},
|
||||
]
|
||||
|
||||
function triggerOsd() {
|
||||
@@ -52,6 +56,15 @@ Scope {
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Hyprsunset
|
||||
function onGammaChangeAttempt() {
|
||||
root.protectionMessage = "";
|
||||
root.currentIndicator = "gamma";
|
||||
root.triggerOsd();
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
// Listen to volume changes
|
||||
target: Audio.sink?.audio ?? null
|
||||
|
||||
@@ -11,6 +11,8 @@ Item {
|
||||
required property string name
|
||||
property bool rotateIcon: false
|
||||
property bool scaleIcon: false
|
||||
property alias from: valueProgressBar.from
|
||||
property alias to: valueProgressBar.to
|
||||
|
||||
property real valueIndicatorVerticalPadding: 9
|
||||
property real valueIndicatorLeftPadding: 10
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ OsdValueIndicator {
|
||||
property var focusedScreen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name)
|
||||
property var brightnessMonitor: Brightness.getMonitorForScreen(focusedScreen)
|
||||
|
||||
icon: Hyprsunset.active ? "routine" : "light_mode"
|
||||
icon: Hyprsunset.temperatureActive ? "routine" : "light_mode"
|
||||
rotateIcon: true
|
||||
scaleIcon: true
|
||||
name: Translation.tr("Brightness")
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import qs.services
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import qs.modules.ii.onScreenDisplay
|
||||
|
||||
OsdValueIndicator {
|
||||
id: rotateIcon
|
||||
|
||||
icon: "wb_twilight"
|
||||
name: Translation.tr("Gamma")
|
||||
from: Hyprsunset.gammaLowerLimit / 100
|
||||
value: Hyprsunset.gamma / 100 ?? 0.5
|
||||
}
|
||||
@@ -98,7 +98,7 @@ Scope {
|
||||
if (!Config.options.sidebar.cornerOpen.valueScroll)
|
||||
return;
|
||||
if (cornerWidget.isLeft)
|
||||
cornerPanelWindow.brightnessMonitor.setBrightness(cornerPanelWindow.brightnessMonitor.brightness - 0.05);
|
||||
Brightness.decreaseBrightness()
|
||||
else {
|
||||
const currentVolume = Audio.value;
|
||||
const step = currentVolume < 0.1 ? 0.01 : 0.02 || 0.2;
|
||||
@@ -109,7 +109,7 @@ Scope {
|
||||
if (!Config.options.sidebar.cornerOpen.valueScroll)
|
||||
return;
|
||||
if (cornerWidget.isLeft)
|
||||
cornerPanelWindow.brightnessMonitor.setBrightness(cornerPanelWindow.brightnessMonitor.brightness + 0.05);
|
||||
Brightness.increaseBrightness()
|
||||
else {
|
||||
const currentVolume = Audio.value;
|
||||
const step = currentVolume < 0.1 ? 0.01 : 0.02 || 0.2;
|
||||
|
||||
@@ -40,10 +40,25 @@ Rectangle {
|
||||
visible: active
|
||||
active: Config.options.sidebar.quickSliders.showBrightness
|
||||
sourceComponent: QuickSlider {
|
||||
materialSymbol: "brightness_6"
|
||||
value: root.brightnessMonitor.brightness
|
||||
materialSymbol: "light_mode"
|
||||
secondaryMaterialSymbol: "wb_twilight"
|
||||
stopIndicatorValues: Hyprsunset.gamma !== 100 && root.brightnessMonitor?.brightness !== 0 ? [0.3 + root.brightnessMonitor?.brightness * 0.7] : []
|
||||
value: Hyprsunset.gamma === 100? 0.3 + root.brightnessMonitor?.brightness * 0.7 : Hyprsunset.gamma / 100 * 0.3
|
||||
tooltipContent: Hyprsunset.gamma === 100 ? `${Math.round(root.brightnessMonitor?.brightness * 100)}%` : `${Translation.tr("Gamma")} ${Hyprsunset.gamma}%`
|
||||
onMoved: {
|
||||
root.brightnessMonitor.setBrightness(value)
|
||||
if (value >= 0.3) {
|
||||
// 0.3 - 1.0 brightness
|
||||
root.brightnessMonitor.setBrightness((value - 0.3) / 0.7);
|
||||
if (Hyprsunset.gamma !== 100) {
|
||||
Hyprsunset.setGamma(100);
|
||||
}
|
||||
} else {
|
||||
// 0 - 0.3 gamma
|
||||
if (root.brightnessMonitor.brightness !== 0) {
|
||||
root.brightnessMonitor.setBrightness(0);
|
||||
}
|
||||
Hyprsunset.setGamma(value * 100 / 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,16 +99,18 @@ Rectangle {
|
||||
component QuickSlider: StyledSlider {
|
||||
id: quickSlider
|
||||
required property string materialSymbol
|
||||
property string secondaryMaterialSymbol
|
||||
configuration: StyledSlider.Configuration.M
|
||||
stopIndicatorValues: []
|
||||
dividerValues: secondaryMaterialSymbol.length > 0 ? [secondaryIcon.iconLocation] : []
|
||||
|
||||
MaterialSymbol {
|
||||
id: icon
|
||||
property bool nearFull: quickSlider.value >= 0.9
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
right: nearFull ? quickSlider.handle.right : parent.right
|
||||
rightMargin: quickSlider.nearFull ? 14 : 8
|
||||
verticalCenter: quickSlider.verticalCenter
|
||||
right: nearFull ? quickSlider.handle.right : quickSlider.right
|
||||
rightMargin: nearFull ? 14 : 8
|
||||
}
|
||||
iconSize: 20
|
||||
color: nearFull ? Appearance.colors.colOnPrimary : Appearance.colors.colOnSecondaryContainer
|
||||
@@ -105,7 +122,25 @@ Rectangle {
|
||||
Behavior on anchors.rightMargin {
|
||||
animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
|
||||
}
|
||||
}
|
||||
|
||||
MaterialSymbol {
|
||||
id: secondaryIcon
|
||||
visible: secondaryMaterialSymbol.length > 0
|
||||
property real iconLocation: 0.3
|
||||
property bool nearIcon: iconLocation - quickSlider.value <= 0.1 && iconLocation - quickSlider.value > (quickSlider.handleWidth + 8 - 14) / quickSlider.effectiveDraggingWidth
|
||||
anchors {
|
||||
verticalCenter: quickSlider.verticalCenter
|
||||
right: nearIcon ? quickSlider.handle.right : quickSlider.right
|
||||
rightMargin: nearIcon ? 14 : (1 - iconLocation) * quickSlider.effectiveDraggingWidth + quickSlider.rightPadding + 8
|
||||
}
|
||||
iconSize: 20
|
||||
color: quickSlider.value >= iconLocation - 0.1 ? Appearance.colors.colOnPrimary : Appearance.colors.colOnSecondaryContainer
|
||||
text: secondaryMaterialSymbol
|
||||
|
||||
Behavior on color {
|
||||
animation: Appearance.animation.elementMoveFast.colorAnimation.createObject(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ WindowDialog {
|
||||
id: root
|
||||
property var screen: root.QsWindow.window?.screen
|
||||
property var brightnessMonitor: Brightness.getMonitorForScreen(screen)
|
||||
backgroundHeight: 600
|
||||
backgroundHeight: 700
|
||||
|
||||
WindowDialogTitle {
|
||||
text: Translation.tr("Eye protection")
|
||||
@@ -44,9 +44,9 @@ WindowDialog {
|
||||
iconSize: Appearance.font.pixelSize.larger
|
||||
buttonIcon: "check"
|
||||
text: Translation.tr("Enable now")
|
||||
checked: Hyprsunset.active
|
||||
checked: Hyprsunset.temperatureActive
|
||||
onCheckedChanged: {
|
||||
Hyprsunset.toggle(checked)
|
||||
Hyprsunset.toggleTemperature(checked)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +146,33 @@ WindowDialog {
|
||||
id: brightnessColumn
|
||||
Layout.topMargin: -16
|
||||
Layout.fillWidth: true
|
||||
|
||||
WindowDialogSlider {
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
leftMargin: 4
|
||||
rightMargin: 4
|
||||
}
|
||||
value: root.brightnessMonitor.brightness
|
||||
onMoved: root.brightnessMonitor.setBrightness(value)
|
||||
}
|
||||
}
|
||||
|
||||
WindowDialogSectionHeader {
|
||||
text: Translation.tr("Gamma")
|
||||
}
|
||||
|
||||
WindowDialogSeparator {
|
||||
Layout.topMargin: -22
|
||||
Layout.leftMargin: 0
|
||||
Layout.rightMargin: 0
|
||||
}
|
||||
|
||||
Column {
|
||||
id: gammaColumn
|
||||
Layout.topMargin: -16
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
WindowDialogSlider {
|
||||
@@ -155,9 +182,10 @@ WindowDialog {
|
||||
leftMargin: 4
|
||||
rightMargin: 4
|
||||
}
|
||||
// text: Translation.tr("Brightness")
|
||||
value: root.brightnessMonitor.brightness
|
||||
onMoved: root.brightnessMonitor.setBrightness(value)
|
||||
from: Hyprsunset.gammaLowerLimit / 100
|
||||
value: Hyprsunset.gamma / 100
|
||||
onMoved: Hyprsunset.setGamma(value * 100)
|
||||
tooltipContent: `${Math.round(value * 100)}%`
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -6,10 +6,10 @@ import Quickshell.Io
|
||||
|
||||
QuickToggleButton {
|
||||
id: nightLightButton
|
||||
toggled: Hyprsunset.active
|
||||
toggled: Hyprsunset.temperatureActive
|
||||
buttonIcon: Config.options.light.night.automatic ? "night_sight_auto" : "bedtime"
|
||||
onClicked: {
|
||||
Hyprsunset.toggle()
|
||||
Hyprsunset.toggleTemperature()
|
||||
}
|
||||
|
||||
altAction: () => {
|
||||
|
||||
@@ -54,8 +54,8 @@ Item { // Bar content region
|
||||
height: (root.height - middleSection.height) / 2
|
||||
width: Appearance.sizes.verticalBarWidth
|
||||
|
||||
onScrollDown: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness - 0.05)
|
||||
onScrollUp: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness + 0.05)
|
||||
onScrollDown: Brightness.decreaseBrightness()
|
||||
onScrollUp: Brightness.increaseBrightness()
|
||||
onMovedAway: GlobalStates.osdBrightnessOpen = false
|
||||
onPressed: event => {
|
||||
if (event.button === Qt.LeftButton)
|
||||
|
||||
@@ -303,7 +303,7 @@ ContentPage {
|
||||
Config.options.background.widgets.clock.cookie.useSineCookie = checked;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing"
|
||||
text: Translation.tr("Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ ContentPage {
|
||||
Config.options.background.widgets.clock.cookie.constantlyRotate = checked;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical."
|
||||
text: Translation.tr("Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ ContentPage {
|
||||
Config.options.background.widgets.clock.cookie.hourMarks = checked;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons"
|
||||
text: Translation.tr("Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,7 +361,7 @@ ContentPage {
|
||||
Config.options.background.widgets.clock.cookie.timeIndicators = checked;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: "Can't be turned on when using 'Numbers' dial style for aesthetic reasons"
|
||||
text: Translation.tr("Can't be turned on when using 'Numbers' dial style for aesthetic reasons")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -87,9 +87,9 @@ Item {
|
||||
name: Translation.tr("Enable now")
|
||||
description: Translation.tr("More comfortable viewing at night")
|
||||
iconName: WIcons.nightLightIcon
|
||||
checked: Hyprsunset.active
|
||||
checked: Hyprsunset.temperatureActive
|
||||
onCheckedChanged: {
|
||||
Hyprsunset.toggle(checked);
|
||||
Hyprsunset.toggleTemperature(checked);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ Singleton {
|
||||
|
||||
property string bluetoothIcon: BluetoothStatus.connected ? "bluetooth-connected" : BluetoothStatus.enabled ? "bluetooth" : "bluetooth-disabled"
|
||||
|
||||
property string nightLightIcon: Hyprsunset.active ? "weather-moon" : "weather-moon-off"
|
||||
property string nightLightIcon: Hyprsunset.temperatureActive ? "weather-moon" : "weather-moon-off"
|
||||
|
||||
property string notificationsIcon: Notifications.silent ? "alert-snooze" : "alert"
|
||||
|
||||
|
||||
@@ -40,6 +40,9 @@ apply_kitty() {
|
||||
for i in "${!colorlist[@]}"; do
|
||||
sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$STATE_DIR"/user/generated/terminal/kitty-theme.conf
|
||||
done
|
||||
|
||||
# Reload
|
||||
kill -SIGUSR1 $(pidof kitty)
|
||||
}
|
||||
|
||||
apply_anyterm() {
|
||||
|
||||
@@ -23,5 +23,27 @@ cursor #$term7 #
|
||||
|
||||
foreground #$term7 #
|
||||
|
||||
selection_background #$term7 #
|
||||
selection_foreground #$term0 #
|
||||
selection_background #$onSecondaryContainer #
|
||||
selection_foreground #$secondaryContainer #
|
||||
|
||||
# Override obscure colors for starship prompt (these are greys at the end)
|
||||
color255 #$primary #
|
||||
color254 #$primaryContainer #
|
||||
color253 #$secondary #
|
||||
color252 #$secondaryContainer #
|
||||
color251 #$tertiary #
|
||||
color250 #$tertiaryContainer #
|
||||
color249 #$error #
|
||||
color248 #$errorContainer #
|
||||
|
||||
color232 #$onPrimary #
|
||||
color233 #$onPrimaryContainer #
|
||||
color234 #$onSecondary #
|
||||
color235 #$onSecondaryContainer #
|
||||
color236 #$onTertiary #
|
||||
color237 #$onTertiaryContainer #
|
||||
color238 #$onError #
|
||||
color239 #$onErrorContainer #
|
||||
|
||||
color244 #$outline #
|
||||
color245 #$outlineVariant #
|
||||
|
||||
@@ -28,6 +28,12 @@ Singleton {
|
||||
}
|
||||
|
||||
function increaseBrightness(): void {
|
||||
// if gamma is not yet 100, first increase gamma
|
||||
if (Hyprsunset.gamma !== 100) {
|
||||
Hyprsunset.setGamma(Hyprsunset.gamma + 5);
|
||||
return;
|
||||
}
|
||||
|
||||
const focusedName = Hyprland.focusedMonitor.name;
|
||||
const monitor = monitors.find(m => focusedName === m.screen.name);
|
||||
if (monitor)
|
||||
@@ -37,8 +43,12 @@ Singleton {
|
||||
function decreaseBrightness(): void {
|
||||
const focusedName = Hyprland.focusedMonitor.name;
|
||||
const monitor = monitors.find(m => focusedName === m.screen.name);
|
||||
if (monitor)
|
||||
if (monitor && monitor.brightness > 0)
|
||||
monitor.setBrightness(monitor.brightness - 0.05);
|
||||
// if brightness is 0, then decrease gamma
|
||||
else {
|
||||
Hyprsunset.setGamma(Hyprsunset.gamma - 5);
|
||||
}
|
||||
}
|
||||
|
||||
reloadableId: "brightness"
|
||||
|
||||
@@ -13,13 +13,18 @@ import Quickshell.Hyprland
|
||||
*/
|
||||
Singleton {
|
||||
id: root
|
||||
signal gammaChangeAttempt()
|
||||
|
||||
readonly property real gammaLowerLimit: 25
|
||||
|
||||
property string from: Config.options?.light?.night?.from ?? "19:00"
|
||||
property string to: Config.options?.light?.night?.to ?? "06:30"
|
||||
property bool automatic: Config.options?.light?.night?.automatic && (Config?.ready ?? true)
|
||||
property int colorTemperature: Config.options?.light?.night?.colorTemperature ?? 5000
|
||||
property int gamma: 100
|
||||
property bool shouldBeOn
|
||||
property bool firstEvaluation: true
|
||||
property bool active: false
|
||||
property bool temperatureActive: false
|
||||
|
||||
property int fromHour: Number(from.split(":")[0])
|
||||
property int fromMinute: Number(from.split(":")[1])
|
||||
@@ -71,24 +76,52 @@ Singleton {
|
||||
if (!root.automatic || root.manualActive !== undefined)
|
||||
return;
|
||||
if (root.shouldBeOn) {
|
||||
root.enable();
|
||||
root.enableTemperature();
|
||||
} else {
|
||||
root.disable();
|
||||
root.disableTemperature();
|
||||
}
|
||||
}
|
||||
|
||||
function load() { } // Dummy to force init
|
||||
|
||||
function enable() {
|
||||
root.active = true;
|
||||
// console.log("[Hyprsunset] Enabling");
|
||||
Quickshell.execDetached(["bash", "-c", `pidof hyprsunset || hyprsunset --temperature ${root.colorTemperature}`]);
|
||||
function startHyprsunset() {
|
||||
Quickshell.execDetached(["bash", "-c", `pidof hyprsunset || hyprsunset`]);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
root.active = false;
|
||||
function load() {
|
||||
root.startHyprsunset();
|
||||
updateHyprsunset.restart();
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: updateHyprsunset
|
||||
interval: 100
|
||||
repeat: false
|
||||
onTriggered: {
|
||||
root.ensureState();
|
||||
root.setGamma(root.gamma);
|
||||
}
|
||||
}
|
||||
|
||||
function enableTemperature() {
|
||||
root.temperatureActive = true;
|
||||
|
||||
// console.log("[Hyprsunset] Enabling");
|
||||
root.startHyprsunset();
|
||||
Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset temperature ${root.colorTemperature}`]);
|
||||
}
|
||||
|
||||
function disableTemperature() {
|
||||
root.temperatureActive = false;
|
||||
// console.log("[Hyprsunset] Disabling");
|
||||
Quickshell.execDetached(["bash", "-c", `pkill hyprsunset`]);
|
||||
Quickshell.execDetached(["hyprctl", "hyprsunset", "identity"]);
|
||||
}
|
||||
|
||||
function setGamma(gamma) {
|
||||
root.gamma = Math.max(root.gammaLowerLimit, Math.min(100, gamma));
|
||||
|
||||
root.gammaChangeAttempt();
|
||||
|
||||
root.startHyprsunset();
|
||||
Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset gamma ${root.gamma}`]);
|
||||
}
|
||||
|
||||
function fetchState() {
|
||||
@@ -104,26 +137,26 @@ Singleton {
|
||||
onStreamFinished: {
|
||||
const output = stateCollector.text.trim();
|
||||
if (output.length == 0 || output.startsWith("Couldn't"))
|
||||
root.active = false;
|
||||
root.temperatureActive = false;
|
||||
else
|
||||
root.active = (output != "6500"); // 6500 is the default when off
|
||||
// console.log("[Hyprsunset] Fetched state:", output, "->", root.active);
|
||||
root.temperatureActive = (output != "6500"); // 6500 is the default when off
|
||||
// console.log("[Hyprsunset] Fetched state:", output, "->", root.temperatureActive);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function toggle(active = undefined) {
|
||||
function toggleTemperature(active = undefined) {
|
||||
if (root.manualActive === undefined) {
|
||||
root.manualActive = root.active;
|
||||
root.manualActive = root.temperatureActive;
|
||||
root.manualActiveHour = root.clockHour;
|
||||
root.manualActiveMinute = root.clockMinute;
|
||||
}
|
||||
|
||||
root.manualActive = active !== undefined ? active : !root.manualActive;
|
||||
if (root.manualActive) {
|
||||
root.enable();
|
||||
root.enableTemperature();
|
||||
} else {
|
||||
root.disable();
|
||||
root.disableTemperature();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,9 +164,9 @@ Singleton {
|
||||
Connections {
|
||||
target: Config.options.light.night
|
||||
function onColorTemperatureChanged() {
|
||||
if (!root.active) return;
|
||||
if (!root.temperatureActive) return;
|
||||
Hyprland.dispatch(`hyprctl hyprsunset temperature ${Config.options.light.night.colorTemperature}`);
|
||||
Quickshell.execDetached(["hyprctl", "hyprsunset", "temperature", `${Config.options.light.night.colorTemperature}`]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,6 +81,7 @@
|
||||
"Unknown function call: %1": "Unknown function call: %1",
|
||||
"Online | %1's model | Delivers fast, responsive and well-formatted answers. Disadvantages: not very eager to do stuff; might make up unknown function calls": "Online | %1's model | Delivers fast, responsive and well-formatted answers. Disadvantages: not very eager to do stuff; might make up unknown function calls",
|
||||
"Volume": "Volume",
|
||||
"Gamma": "Gamma",
|
||||
"Medium": "Medium",
|
||||
"Copy code": "Copy code",
|
||||
"Exceeded max allowed": "Exceeded max allowed",
|
||||
@@ -359,6 +360,10 @@
|
||||
"Connect to Wi-Fi": "Connect to Wi-Fi",
|
||||
"... and %1 more": "... and %1 more",
|
||||
"Cookie clock settings": "Cookie clock settings",
|
||||
"Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing": "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing",
|
||||
"Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.": "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.",
|
||||
"Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons": "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons",
|
||||
"Can't be turned on when using 'Numbers' dial style for aesthetic reasons": "Can't be turned on when using 'Numbers' dial style for aesthetic reasons",
|
||||
"Brightness and volume": "Brightness and volume",
|
||||
"Choose file": "Choose file",
|
||||
"Invalid model. Supported: \n```": "Invalid model. Supported: \n```",
|
||||
@@ -607,4 +612,4 @@
|
||||
"Battery full": "Battery full",
|
||||
"Pin": "Pin",
|
||||
"Unpin": "Unpin"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"Help & Support": "Помощь",
|
||||
"Bubble": "Пузырчатый",
|
||||
"Large images | God tier quality, no NSFW.": "Большие изобр. | Отличное качество, без NSFW.",
|
||||
"Dark": "Тьма",
|
||||
"Dark": "Тёмный",
|
||||
"Center clock": "Часы по центру экрана",
|
||||
"Search, calculate or run": "Поиск, расчёт, запуск",
|
||||
"Region height": "Высота области",
|
||||
@@ -47,7 +47,7 @@
|
||||
"at": "в",
|
||||
"Math": "Математика",
|
||||
"Consider plugging in your device": "Подключите зарядку",
|
||||
"Workspaces shown": "Видимые пространство",
|
||||
"Workspaces shown": "Видимые пространства",
|
||||
"Place the corners to trigger at the bottom": "Триггер-углы снизу",
|
||||
"No API key\nSet it with /key YOUR_API_KEY": "Нет API-ключа\nУстановите: /key ВАШ_КЛЮЧ",
|
||||
"Auto (System)": "Авто (система)",
|
||||
@@ -223,7 +223,7 @@
|
||||
"Networking": "Сеть",
|
||||
"Tint icons": "Тонировать иконки",
|
||||
"Low battery": "Низкий заряд",
|
||||
"Make icons pinned by default": "Показывать все иконки",
|
||||
"Make icons pinned by default": "Закреплять все иконки",
|
||||
"Get the next page of results": "Следующая стр. результатов",
|
||||
"Invalid API provider. Supported: \n-": "Неверный провайдер. Поддерж:\n-",
|
||||
"Show \"Locked\" text": "Показ. текст «Заблокировано»",
|
||||
@@ -276,7 +276,7 @@
|
||||
"Prefixes": "Префиксы",
|
||||
"Terminal": "Терминала",
|
||||
"Incorrect password": "Неверный пароль",
|
||||
"Line-separated": "Без разделения",
|
||||
"Line-separated": "Разделение по строкам",
|
||||
"Always": "Всегда",
|
||||
"☕ Break: %1 minutes": "☕ Перерыв: %1 мин",
|
||||
"Depends on sidebars": "Зависит от панелей",
|
||||
@@ -288,7 +288,7 @@
|
||||
"Base URL": "Базовый URL",
|
||||
"Float": "Флоат",
|
||||
"Invalid arguments. Must provide `command`.": "Неверные аргументы. Укажите `command`.",
|
||||
"Fully charged": "Полностью заряжен",
|
||||
"Fully charged": "Полностью заряжена",
|
||||
"Earbang protection": "Защита ушей",
|
||||
"Low warning": "Увед. о низком %",
|
||||
"Advanced": "Прочее",
|
||||
@@ -330,6 +330,10 @@
|
||||
"Connect to Wi-Fi": "Подкл. к Wi-Fi",
|
||||
"... and %1 more": "... и ещё %1",
|
||||
"Cookie clock settings": "Настройки «Cookie»-часов",
|
||||
"Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing": "Выглядит мягче и уместнее с разным количеством углов,\nно сжатие может выглядить менее впечатляюще",
|
||||
"Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.": "Часы будут постоянно вращаться. Это крайне ресурсозатратно\n(примерно 50% использования Intel UHD Graphics) и фактически бесполезно.",
|
||||
"Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons": "Может быть активировано только в режимах 'С точками' и 'Полностью залитый' по эстетическим причинам",
|
||||
"Can't be turned on when using 'Numbers' dial style for aesthetic reasons": "Не может быть включено, когда используется стиль 'С числами' по эстетическим причинам",
|
||||
"Brightness and volume": "Яркость и громкость",
|
||||
"Choose file": "Выбор обоев",
|
||||
"Invalid model. Supported: \n```": "Неверная модель. Поддерживаемые: \n```",
|
||||
@@ -434,7 +438,7 @@
|
||||
"Game mode": "Игровой режим",
|
||||
"Usage: %1save CHAT_NAME": "Исп: %1save ИМЯ_ЧАТА",
|
||||
"Thin": "Тонкий",
|
||||
"Light": "Свет",
|
||||
"Light": "Светлый",
|
||||
"When not fullscreen": "Не в фулл-скрине",
|
||||
"Commands, edit configs, search.\nTakes an extra turn to switch to search mode if that's needed": "Команды, редактирование конфигов, поиск.\nПри необходимости переключается в режим поиска",
|
||||
"Privacy Policy": "Политика конфиденциальности",
|
||||
@@ -506,7 +510,7 @@
|
||||
"Could be images or parts of the screen that have some containment.\nMight not always be accurate.\nThis is done with an image processing algorithm run locally and no AI is used.": "Могут быть изображения или части экрана с содержимым.\nМожет быть неточно.\nИспользуется локальный алгоритм обработки изображений, без ИИ.",
|
||||
"Polling interval (m)": "Интервал опроса (мин)",
|
||||
"Inactive": "Неактивно",
|
||||
"Authentication": "Аутентиф.",
|
||||
"Authentication": "Аутентификация",
|
||||
"Full warning": "Уведомление о полном заряде при проценте",
|
||||
"Power Profile": "Профиль питания",
|
||||
"Content region": "Обл. контента",
|
||||
@@ -596,7 +600,7 @@
|
||||
"Battery: %1%2": "Батарея: %1%2",
|
||||
"Command": "Команда",
|
||||
"Tooltips": "Подсказки",
|
||||
"Show hidden icons": "Системный трей",
|
||||
"Show hidden icons": "Показать скрытые значки",
|
||||
"Used for headings and titles": "Для заголовков",
|
||||
"Top-down": "Сверху вниз",
|
||||
"of %1": "из %1",
|
||||
@@ -613,7 +617,7 @@
|
||||
"Overlay: General": "Игровой оверлей",
|
||||
"Enable opening zoom animation": "Анимация зума при открытии",
|
||||
"More Internet settings": "Доп. сетевые настройки",
|
||||
"Nerd font icons": "Иконки Nerd Font (эмодзи)",
|
||||
"Nerd font icons": "Иконки Nerd Font",
|
||||
"Display modifiers and keys in multiple keycap (e.g., \"Ctrl + A\" instead of \"Ctrl A\" or \" + A\" instead of \" A\")": "Показывать модификаторы с разделителем (напр, «Ctrl + A» вместо «Ctrl A»)",
|
||||
"Change password": "Изменить пароль",
|
||||
"Check interval (mins)": "Интервал пров. (мин)",
|
||||
@@ -633,7 +637,7 @@
|
||||
"Numbers font": "Шрифт чисел",
|
||||
"Move right": "Переместить вправо",
|
||||
"Unknown Application": "Неизв. приложение",
|
||||
"Used for decorative/expressive text": "Для декоротивного / выразительного текста",
|
||||
"Used for decorative/expressive text": "Для декоративного / выразительного текста",
|
||||
"Used for reading large blocks of text": "Для чтения больших блоков",
|
||||
"Type /key to get started with online models\nCtrl+O to expand sidebar\nCtrl+P to pin sidebar\nCtrl+D to detach sidebar": "Введите /key для онлайн-моделей\nCtrl+O - расширить панель\nCtrl+P - закрепить панель\nCtrl+D - открепить панель",
|
||||
"Health:": "Здоровье:",
|
||||
@@ -648,7 +652,7 @@
|
||||
"Pinned": "Закреплено",
|
||||
"Unpin from Start": "Открепить из пуска",
|
||||
"Adjust the color temperature": "Цветовая температура",
|
||||
"Han chars": "Кандзи",
|
||||
"Han chars": "Иероглифы",
|
||||
"Show only when locked": "Отображать только при блокировке",
|
||||
"Widget: Weather": "Виджет погоды",
|
||||
"Right to left": "Справа налево",
|
||||
@@ -659,13 +663,13 @@
|
||||
"Fonts": "Шрифты",
|
||||
"Left to right": "Слева направо",
|
||||
"Set FPS limit": "Лимит FPS",
|
||||
"Draggable": "Drag & drop",
|
||||
"Draggable": "Перетаскиваемый",
|
||||
"Turn on from sunset to sunrise": "От заката до рассвета",
|
||||
"Do you want to allow this app to make changes to your device?": "Разрешить приложению изменять устройство?",
|
||||
"Balance brightness based on content": "Баланс яркости по содержимому",
|
||||
"Font width and roundness settings are only available for some fonts like Google Sans Flex": "Ширина и скруглённость - только для нек. шрифтов (напр, Google Sans Flex)",
|
||||
"Record region": "Запись обл.",
|
||||
"You can also manually edit cheatsheet.superKey": "Можно вручную отредактировать клавишу в шпаргалке клавиш и в других частях системы",
|
||||
"You can also manually edit cheatsheet.superKey": "Также вы можете вручную отредактировать cheatsheet.superKey",
|
||||
"Sign out": "Выйти",
|
||||
"Overlay: Crosshair": "Оверлей: прицел",
|
||||
"Shut down": "Выключить",
|
||||
|
||||
+21
-18
@@ -7,28 +7,31 @@ add_newline = false
|
||||
# Cool stuff
|
||||
|
||||
# format = """
|
||||
# $cmd_duration$username$hostname $directory $git_branch
|
||||
# $character
|
||||
# """
|
||||
# $directory $fill $git_branch $cmd_duration
|
||||
# $character"""
|
||||
format = """
|
||||
$cmd_duration $directory $git_branch
|
||||
$character"""
|
||||
$cmd_duration $directory$git_branch
|
||||
$character"""
|
||||
|
||||
[fill]
|
||||
symbol = '-'
|
||||
style = 'fg:245'
|
||||
|
||||
# Replace the "❯" symbol in the prompt with "➜"
|
||||
[character] # The name of the module we are configuring is "character"
|
||||
success_symbol = "[ ](bold fg:blue)"
|
||||
error_symbol = "[ ](bold fg:red)"
|
||||
success_symbol = "[ ](bold fg:255)"
|
||||
error_symbol = "[ ](bold fg:249)"
|
||||
|
||||
# Disable the package module, hiding it from the prompt completely
|
||||
[package]
|
||||
disabled = true
|
||||
|
||||
[git_branch]
|
||||
style = "bg: cyan"
|
||||
style = "bg: 252"
|
||||
symbol = ""
|
||||
truncation_length = 12
|
||||
truncation_symbol = ""
|
||||
format = " [](bold fg:cyan)[$symbol $branch(:$remote_branch)](fg:black bg:cyan)[ ](bold fg:cyan)"
|
||||
format = " [](bold fg:252)[$symbol $branch(:$remote_branch)](fg:235 bg:252)[ ](bold fg:252)"
|
||||
|
||||
[git_commit]
|
||||
commit_hash_length = 4
|
||||
@@ -52,7 +55,7 @@ deleted = " 🗑 "
|
||||
|
||||
[hostname]
|
||||
ssh_only = false
|
||||
format = "[•$hostname](bg:cyan bold fg:black)[](bold fg:cyan)"
|
||||
format = "[•$hostname](bg:252 bold fg:235)[](bold fg:252)"
|
||||
trim_at = ".companyname.com"
|
||||
disabled = false
|
||||
|
||||
@@ -71,19 +74,19 @@ format = '🕙[\[ $time \]]($style) '
|
||||
time_format = "%T"
|
||||
|
||||
[username]
|
||||
style_user = "bold bg:cyan fg:black"
|
||||
style_user = "bold bg:252 fg:235"
|
||||
style_root = "red bold"
|
||||
format = "[](bold fg:cyan)[$user]($style)"
|
||||
format = "[](bold fg:252)[$user]($style)"
|
||||
disabled = false
|
||||
show_always = true
|
||||
|
||||
[directory]
|
||||
home_symbol = " "
|
||||
home_symbol = " "
|
||||
read_only = " "
|
||||
style = "bg:green fg:black"
|
||||
truncation_length = 6
|
||||
truncation_symbol = " ••/"
|
||||
format = '[](bold fg:green)[ $path]($style)[](bold fg:green)'
|
||||
style = "bg:255 fg:black"
|
||||
truncation_length = 2
|
||||
truncation_symbol = ".../"
|
||||
format = '[](bold fg:255)[ → $path]($style)[](bold fg:255)'
|
||||
|
||||
|
||||
[directory.substitutions]
|
||||
@@ -97,4 +100,4 @@ format = '[](bold fg:green)[ $path]($style)[](bold fg:green)'
|
||||
|
||||
[cmd_duration]
|
||||
min_time = 0
|
||||
format = '[](bold fg:yellow)[ $duration](bold bg:yellow fg:black)[](bold fg:yellow)'
|
||||
format = '[](bold fg:252)[ $duration](bold bg:252 fg:235)[](bold fg:252)'
|
||||
|
||||
+31
-31
@@ -9,62 +9,62 @@ DESCRIPTION="Toolkit for building desktop widgets using QtQuick"
|
||||
HOMEPAGE="https://quickshell.org/"
|
||||
|
||||
EGIT_REPO_URI="https://github.com/quickshell-mirror/quickshell.git"
|
||||
EGIT_COMMIT="6e17efab83d3a5ad5d6e59bc08d26095c6660502"
|
||||
EGIT_COMMIT="7511545ee20664e3b8b8d3322c0ffe7567c56f7a"
|
||||
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
LICENSE="LGPL-3"
|
||||
SLOT="0"
|
||||
# Upstream recommends leaving all build options enabled by default
|
||||
IUSE="+breakpad +jemalloc +sockets +wayland +layer-shell +session-lock +toplevel-management +screencopy +X +pipewire +tray +mpris +pam +hyprland +hyprland-global-shortcuts +hyprland-focus-grab +i3 +i3-ipc +bluetooth"
|
||||
|
||||
IUSE="-breakpad +jemalloc +sockets +wayland +layer-shell +session-lock +toplevel-management +screencopy +X +pipewire +tray +mpris +pam +hyprland +hyprland-global-shortcuts +hyprland-focus-grab -i3 -i3-ipc +bluetooth"
|
||||
|
||||
RDEPEND="
|
||||
dev-qt/qtbase:6
|
||||
dev-qt/qtsvg:6
|
||||
dev-qt/qt5compat:6
|
||||
|
||||
dev-qt/qtimageformats:6
|
||||
dev-qt/qtmultimedia:6
|
||||
dev-qt/qtpositioning:6
|
||||
dev-qt/qtquicktimeline:6
|
||||
dev-qt/qtsensors:6
|
||||
dev-qt/qtsvg:6
|
||||
dev-qt/qttools:6
|
||||
dev-qt/qttranslations:6
|
||||
dev-qt/qtvirtualkeyboard:6
|
||||
dev-qt/qtwayland:6
|
||||
dev-qt/qtbase:6=
|
||||
dev-qt/qtdeclarative:6=
|
||||
dev-qt/qt5compat:6=
|
||||
kde-frameworks/kimageformats:6=[avif]
|
||||
dev-cpp/cpptrace[unwind]
|
||||
dev-qt/qtimageformats:6=
|
||||
dev-qt/qtmultimedia:6=
|
||||
dev-qt/qtpositioning:6=
|
||||
dev-qt/qtquicktimeline:6=
|
||||
dev-qt/qtsensors:6=
|
||||
dev-qt/qtsvg:6=
|
||||
dev-qt/qttools:6=
|
||||
dev-qt/qttranslations:6=
|
||||
dev-qt/qtvirtualkeyboard:6=
|
||||
dev-qt/qtwayland:6=
|
||||
kde-apps/kdialog
|
||||
kde-frameworks/syntax-highlighting:6
|
||||
kde-frameworks/kirigami
|
||||
kde-frameworks/syntax-highlighting:6=
|
||||
kde-frameworks/kirigami:6=
|
||||
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jemalloc? ( dev-libs/jemalloc:= )
|
||||
wayland? (
|
||||
dev-libs/wayland
|
||||
dev-qt/qtwayland:6
|
||||
dev-qt/qtwayland:6=
|
||||
)
|
||||
screencopy? (
|
||||
x11-libs/libdrm
|
||||
media-libs/mesa
|
||||
)
|
||||
X? ( x11-libs/libxcb )
|
||||
pipewire? ( media-video/pipewire )
|
||||
mpris? ( dev-qt/qtdbus )
|
||||
X? ( x11-libs/libxcb:= )
|
||||
pipewire? ( media-video/pipewire:= )
|
||||
mpris? ( dev-qt/qtdbus:= )
|
||||
pam? ( sys-libs/pam )
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
|| ( >=sys-devel/gcc-14:* >=llvm-core/clang-17:* )
|
||||
dev-cpp/cli11
|
||||
dev-build/cmake
|
||||
dev-vcs/git
|
||||
dev-build/ninja
|
||||
dev-qt/qtshadertools
|
||||
|
||||
dev-util/spirv-tools
|
||||
dev-qt/qtshadertools:6
|
||||
wayland? (
|
||||
dev-util/wayland-scanner
|
||||
dev-libs/wayland-protocols
|
||||
)
|
||||
dev-cpp/cli11
|
||||
dev-build/ninja
|
||||
dev-build/cmake
|
||||
dev-vcs/git
|
||||
virtual/pkgconfig
|
||||
breakpad? ( dev-util/breakpad )
|
||||
dev-util/vulkan-headers
|
||||
@@ -74,7 +74,7 @@ src_configure(){
|
||||
mycmakeargs=(
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
-DDISTRIBUTOR="Gentoo Illogical-Impulses"
|
||||
-DINSTALL_QML_PREFIX="lib64/qt6/qml"
|
||||
-DINSTALL_QML_PREFIX="$(get_libdir)/qt6/qml"
|
||||
-DCRASH_REPORTER=$(usex breakpad ON OFF)
|
||||
-DUSE_JEMALLOC=$(usex jemalloc ON OFF)
|
||||
-DSOCKETS=$(usex sockets ON OFF)
|
||||
+1
-1
@@ -18,7 +18,7 @@ RDEPEND="
|
||||
gui-apps/hypridle
|
||||
gui-apps/hyprlock
|
||||
gui-apps/hyprpicker
|
||||
app-misc/songrec
|
||||
media-sound/songrec
|
||||
app-i18n/translate-shell
|
||||
gui-apps/wlogout
|
||||
sci-libs/libqalculate
|
||||
@@ -19,6 +19,3 @@ import_ebuild "${FT_DIR}" "media-fonts" "rubik-vf"
|
||||
import_ebuild "${FT_DIR}" "media-fonts" "space-grotesk"
|
||||
import_ebuild "${FT_DIR}" "kde-plasma" "breeze-plus"
|
||||
import_ebuild "${FT_DIR}" "x11-themes" "darkly"
|
||||
|
||||
############### WIDGETS
|
||||
import_ebuild "${WIDGETS_DIR}" "app-misc" "songrec"
|
||||
|
||||
@@ -52,7 +52,6 @@ v sudo sh -c 'cat ./sdata/dist-gentoo/additional-useflags >> /etc/portage/packag
|
||||
v sudo emerge --sync
|
||||
v sudo emerge --quiet --newuse --update --deep @world
|
||||
v sudo emerge --quiet @smart-live-rebuild
|
||||
v sudo emerge --depclean
|
||||
|
||||
# Remove old ebuilds (if this isn't done the wildcard will fuck upon a version change)
|
||||
x sudo rm -fr ${ebuild_dir}/app-misc/illogical-impulse-*
|
||||
@@ -66,3 +65,5 @@ for i in "${metapkgs[@]}"; do
|
||||
v sudo ebuild ${ebuild_dir}/app-misc/${i}/*.ebuild digest
|
||||
v sudo emerge --update --quiet app-misc/${i}
|
||||
done
|
||||
|
||||
v sudo emerge --depclean
|
||||
|
||||
@@ -28,7 +28,6 @@ gui-libs/hyprcursor
|
||||
gui-apps/wf-recorder
|
||||
gui-apps/wtype
|
||||
gui-apps/fuzzel
|
||||
gui-apps/quickshell **
|
||||
gui-apps/wlogout
|
||||
dev-cpp/sdbus-c++
|
||||
dev-libs/hyprland-protocols
|
||||
@@ -52,5 +51,7 @@ media-fonts/space-grotesk
|
||||
media-fonts/material-symbols-variable **
|
||||
media-fonts/readex-pro
|
||||
media-fonts/rubik-vf
|
||||
app-misc/songrec
|
||||
media-sound/songrec
|
||||
dev-cpp/glaze
|
||||
dev-cpp/cpptrace
|
||||
dev-libs/libdwarf
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Illogicall Impulse Widget Dependencies"
|
||||
HOMEPAGE=""
|
||||
SRC_URI="https://github.com/marin-m/SongRec/archive/${PV}.tar.gz -> ${P}-SongRec.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
# need for cargo fetch, idk how to get around it if possible
|
||||
RESTRICT="strip network-sandbox"
|
||||
|
||||
DEPEND=""
|
||||
RDEPEND=""
|
||||
|
||||
S="${WORKDIR}/SongRec-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
export CARGO_HOME="${WORKDIR}/cargo"
|
||||
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export CARGO_HOME="${WORKDIR}/cargo"
|
||||
cargo build --release --frozen --offline
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin target/release/songrec
|
||||
insinto /usr/share/applications
|
||||
|
||||
doins packaging/rootfs/usr/share/applications/com.github.marinm.songrec.desktop
|
||||
|
||||
insinto /usr/share/icons/hicolor/scalable/apps
|
||||
doins packaging/rootfs/usr/share/icons/hicolor/scalable/apps/com.github.marinm.songrec.svg
|
||||
|
||||
insinto /usr/share/metainfo
|
||||
doins packaging/rootfs/usr/share/metainfo/com.github.marinm.songrec.metainfo.xml
|
||||
|
||||
insinto /usr/share/songrec/translations
|
||||
doins -r translations/*
|
||||
|
||||
dodoc README.md
|
||||
}
|
||||
@@ -111,7 +111,9 @@ sys-power/upower introspection
|
||||
gui-apps/fuzzel png svg
|
||||
dev-libs/glib dbus elf introspection mime xattr
|
||||
# ngl idk about nm-connection-editor. Works fine without
|
||||
gui-apps/quickshell -X -i3 -i3-ipc breakpad bluetooth hyprland hyprland-focus-grab hyprland-global-shortcuts jemalloc layer-shell mpris pam pipewire screencopy session-lock sockets toplevel-management tray wayland
|
||||
#app-i18n/translate-shell (nothing needed)
|
||||
#gui-apps/wlogout (no use flags)
|
||||
media-gfx/imagemagick xml
|
||||
|
||||
################### OTHER ###################
|
||||
dev-cpp/cpptrace unwind
|
||||
|
||||
Reference in New Issue
Block a user