forked from Shinonome/alt-illogical-impulse
Make flake self-contained - consolidate installer-replication
BREAKING CHANGE: Remove external dots-hyprland dependency - Imported all essential configs from dots-hyprland/installer-replication - Added complete configs/ directory with: - hypr/ - Hyprland configuration - quickshell/ - Quickshell widgets and config - applications/ - Application configurations - scripts/ - Utility scripts - matugen/ - Material You theming - Updated flake.nix to use local ./configs instead of external repo - Simplified update-flake script (removed external repo management) - Updated README to reflect self-contained architecture - All builds pass with local configurations Benefits: - No external repository dependencies - Faster builds (no network dependencies) - Version controlled configs in single repo - Easier maintenance and development - Complete installer replication in one place
This commit is contained in:
@@ -0,0 +1,469 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
|
||||
// Transparency and Blur UI Controls
|
||||
// Replicates the AGS configuration UI from configure.js
|
||||
|
||||
Rectangle {
|
||||
id: transparencyUI
|
||||
|
||||
property alias transparencySettings: settingsLoader.item
|
||||
|
||||
width: 400
|
||||
height: 600
|
||||
color: "#1e1e2e"
|
||||
radius: 12
|
||||
border.color: "#45475a"
|
||||
border.width: 1
|
||||
|
||||
// Load the settings module
|
||||
Loader {
|
||||
id: settingsLoader
|
||||
source: "TransparencySettings.qml"
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 20
|
||||
|
||||
ColumnLayout {
|
||||
width: parent.width
|
||||
spacing: 20
|
||||
|
||||
// Header
|
||||
Text {
|
||||
text: "Effects Configuration"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 18
|
||||
font.bold: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
// Global Transparency Section
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: transparencySection.height + 20
|
||||
color: "#313244"
|
||||
radius: 8
|
||||
|
||||
ColumnLayout {
|
||||
id: transparencySection
|
||||
anchors.fill: parent
|
||||
anchors.margins: 15
|
||||
spacing: 15
|
||||
|
||||
// Transparency Toggle
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
width: 24
|
||||
height: 24
|
||||
color: "#89b4fa"
|
||||
radius: 4
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: "◫"
|
||||
color: "white"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Text {
|
||||
text: "Transparency"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 14
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Make shell elements transparent\nBlur is also recommended if you enable this"
|
||||
color: "#a6adc8"
|
||||
font.pixelSize: 11
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: transparencySwitch
|
||||
checked: transparencySettings ? transparencySettings.globalTransparency : false
|
||||
|
||||
onToggled: {
|
||||
if (transparencySettings) {
|
||||
transparencySettings.setGlobalTransparency(checked)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Terminal Opacity Slider (subcategory)
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: terminalOpacitySection.height + 10
|
||||
color: "#45475a"
|
||||
radius: 6
|
||||
Layout.leftMargin: 20
|
||||
|
||||
ColumnLayout {
|
||||
id: terminalOpacitySection
|
||||
anchors.fill: parent
|
||||
anchors.margins: 10
|
||||
spacing: 10
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
width: 20
|
||||
height: 20
|
||||
color: "#f9e2af"
|
||||
radius: 3
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: "○"
|
||||
color: "black"
|
||||
font.pixelSize: 12
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Text {
|
||||
text: "Terminal Opacity"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 13
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Changes the opacity of the foot terminal"
|
||||
color: "#a6adc8"
|
||||
font.pixelSize: 10
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
text: (transparencySettings ? transparencySettings.terminalOpacity : 100) + "%"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 12
|
||||
Layout.preferredWidth: 40
|
||||
}
|
||||
}
|
||||
|
||||
Slider {
|
||||
id: terminalOpacitySlider
|
||||
Layout.fillWidth: true
|
||||
from: 0
|
||||
to: 100
|
||||
stepSize: 1
|
||||
value: transparencySettings ? transparencySettings.terminalOpacity : 100
|
||||
|
||||
onValueChanged: {
|
||||
if (transparencySettings && Math.abs(value - transparencySettings.terminalOpacity) > 0.5) {
|
||||
transparencySettings.setTerminalOpacity(Math.round(value))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Blur Section
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: blurSection.height + 20
|
||||
color: "#313244"
|
||||
radius: 8
|
||||
|
||||
ColumnLayout {
|
||||
id: blurSection
|
||||
anchors.fill: parent
|
||||
anchors.margins: 15
|
||||
spacing: 15
|
||||
|
||||
// Blur Toggle
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
width: 24
|
||||
height: 24
|
||||
color: "#94e2d5"
|
||||
radius: 4
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: "◐"
|
||||
color: "black"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Text {
|
||||
text: "Blur"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 14
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Enable blur on transparent elements\nDoesn't affect performance/power consumption unless you have transparent windows."
|
||||
color: "#a6adc8"
|
||||
font.pixelSize: 11
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: blurSwitch
|
||||
checked: transparencySettings ? transparencySettings.blurEnabled : false
|
||||
|
||||
onToggled: {
|
||||
if (transparencySettings) {
|
||||
transparencySettings.setBlurEnabled(checked)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Blur Subcategory
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: blurSubcategory.height + 10
|
||||
color: "#45475a"
|
||||
radius: 6
|
||||
Layout.leftMargin: 20
|
||||
visible: transparencySettings ? transparencySettings.blurEnabled : false
|
||||
|
||||
ColumnLayout {
|
||||
id: blurSubcategory
|
||||
anchors.fill: parent
|
||||
anchors.margins: 10
|
||||
spacing: 15
|
||||
|
||||
// X-ray Toggle
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
width: 20
|
||||
height: 20
|
||||
color: "#f38ba8"
|
||||
radius: 3
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: "⚡"
|
||||
color: "white"
|
||||
font.pixelSize: 10
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Text {
|
||||
text: "X-ray"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 13
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Make everything behind a window/layer except the wallpaper not rendered on its blurred surface\nRecommended to improve performance (if you don't abuse transparency/blur)"
|
||||
color: "#a6adc8"
|
||||
font.pixelSize: 10
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Switch {
|
||||
checked: transparencySettings ? transparencySettings.blurXray : true
|
||||
|
||||
onToggled: {
|
||||
if (transparencySettings) {
|
||||
transparencySettings.setBlurXray(checked)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Blur Size
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
width: 20
|
||||
height: 20
|
||||
color: "#a6e3a1"
|
||||
radius: 3
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: "◎"
|
||||
color: "black"
|
||||
font.pixelSize: 10
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Text {
|
||||
text: "Size"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 13
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Adjust the blur radius. Generally doesn't affect performance\nHigher = more color spread"
|
||||
color: "#a6adc8"
|
||||
font.pixelSize: 10
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
from: 1
|
||||
to: 1000
|
||||
value: transparencySettings ? transparencySettings.blurSize : 8
|
||||
|
||||
onValueChanged: {
|
||||
if (transparencySettings && value !== transparencySettings.blurSize) {
|
||||
transparencySettings.setBlurSize(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Blur Passes
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
width: 20
|
||||
height: 20
|
||||
color: "#cba6f7"
|
||||
radius: 3
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: "↻"
|
||||
color: "white"
|
||||
font.pixelSize: 10
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Text {
|
||||
text: "Passes"
|
||||
color: "#cdd6f4"
|
||||
font.pixelSize: 13
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Adjust the number of runs of the blur algorithm\nMore passes = more spread and power consumption\n4 is recommended\n2- would look weird and 6+ would look lame."
|
||||
color: "#a6adc8"
|
||||
font.pixelSize: 10
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
from: 1
|
||||
to: 10
|
||||
value: transparencySettings ? transparencySettings.blurPasses : 4
|
||||
|
||||
onValueChanged: {
|
||||
if (transparencySettings && value !== transparencySettings.blurPasses) {
|
||||
transparencySettings.setBlurPasses(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Apply/Reset buttons
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 20
|
||||
|
||||
Button {
|
||||
text: "Reset to Defaults"
|
||||
Layout.fillWidth: true
|
||||
|
||||
onClicked: {
|
||||
if (transparencySettings) {
|
||||
transparencySettings.setGlobalTransparency(false)
|
||||
transparencySettings.setTerminalOpacity(100)
|
||||
transparencySettings.setBlurEnabled(false)
|
||||
transparencySettings.setBlurXray(true)
|
||||
transparencySettings.setBlurSize(8)
|
||||
transparencySettings.setBlurPasses(4)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Reload Settings"
|
||||
Layout.fillWidth: true
|
||||
|
||||
onClicked: {
|
||||
if (transparencySettings) {
|
||||
transparencySettings.loadSettings()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// IPC Handler for external control
|
||||
IpcHandler {
|
||||
target: "transparencyUI"
|
||||
|
||||
function show() {
|
||||
transparencyUI.visible = true
|
||||
}
|
||||
|
||||
function hide() {
|
||||
transparencyUI.visible = false
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
transparencyUI.visible = !transparencyUI.visible
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user