From d874988a3e2e7d901ef8bfd4560423b8817e3616 Mon Sep 17 00:00:00 2001 From: Bas Grolleman Date: Thu, 7 May 2026 08:58:26 +0200 Subject: [PATCH] Add my noctalia setup config --- noctalia/colors.json | 18 + noctalia/plugins.json | 16 + noctalia/plugins/polkit-agent/Main.qml | 50 ++ .../plugins/polkit-agent/PolkitWindow.qml | 211 ++++++ noctalia/plugins/polkit-agent/README.md | 13 + noctalia/plugins/polkit-agent/i18n/de.json | 18 + noctalia/plugins/polkit-agent/i18n/en.json | 18 + noctalia/plugins/polkit-agent/i18n/es.json | 18 + noctalia/plugins/polkit-agent/i18n/fr.json | 18 + noctalia/plugins/polkit-agent/i18n/hu.json | 18 + noctalia/plugins/polkit-agent/i18n/ja.json | 18 + noctalia/plugins/polkit-agent/i18n/ko-KR.json | 18 + noctalia/plugins/polkit-agent/i18n/ku.json | 18 + noctalia/plugins/polkit-agent/i18n/nl.json | 18 + noctalia/plugins/polkit-agent/i18n/nn-HN.json | 18 + noctalia/plugins/polkit-agent/i18n/nn-NO.json | 18 + noctalia/plugins/polkit-agent/i18n/pl.json | 18 + noctalia/plugins/polkit-agent/i18n/pt.json | 18 + noctalia/plugins/polkit-agent/i18n/ru.json | 18 + noctalia/plugins/polkit-agent/i18n/sv.json | 18 + noctalia/plugins/polkit-agent/i18n/tr.json | 18 + noctalia/plugins/polkit-agent/i18n/uk-UA.json | 18 + noctalia/plugins/polkit-agent/i18n/vi.json | 18 + noctalia/plugins/polkit-agent/i18n/zh-CN.json | 18 + noctalia/plugins/polkit-agent/i18n/zh-TW.json | 18 + noctalia/plugins/polkit-agent/manifest.json | 24 + noctalia/plugins/polkit-agent/preview.png | Bin 0 -> 70243 bytes noctalia/settings.json | 703 ++++++++++++++++++ setup.sh | 3 +- 29 files changed, 1397 insertions(+), 1 deletion(-) create mode 100644 noctalia/colors.json create mode 100644 noctalia/plugins.json create mode 100644 noctalia/plugins/polkit-agent/Main.qml create mode 100644 noctalia/plugins/polkit-agent/PolkitWindow.qml create mode 100644 noctalia/plugins/polkit-agent/README.md create mode 100644 noctalia/plugins/polkit-agent/i18n/de.json create mode 100644 noctalia/plugins/polkit-agent/i18n/en.json create mode 100644 noctalia/plugins/polkit-agent/i18n/es.json create mode 100644 noctalia/plugins/polkit-agent/i18n/fr.json create mode 100644 noctalia/plugins/polkit-agent/i18n/hu.json create mode 100644 noctalia/plugins/polkit-agent/i18n/ja.json create mode 100644 noctalia/plugins/polkit-agent/i18n/ko-KR.json create mode 100644 noctalia/plugins/polkit-agent/i18n/ku.json create mode 100644 noctalia/plugins/polkit-agent/i18n/nl.json create mode 100644 noctalia/plugins/polkit-agent/i18n/nn-HN.json create mode 100644 noctalia/plugins/polkit-agent/i18n/nn-NO.json create mode 100644 noctalia/plugins/polkit-agent/i18n/pl.json create mode 100644 noctalia/plugins/polkit-agent/i18n/pt.json create mode 100644 noctalia/plugins/polkit-agent/i18n/ru.json create mode 100644 noctalia/plugins/polkit-agent/i18n/sv.json create mode 100644 noctalia/plugins/polkit-agent/i18n/tr.json create mode 100644 noctalia/plugins/polkit-agent/i18n/uk-UA.json create mode 100644 noctalia/plugins/polkit-agent/i18n/vi.json create mode 100644 noctalia/plugins/polkit-agent/i18n/zh-CN.json create mode 100644 noctalia/plugins/polkit-agent/i18n/zh-TW.json create mode 100644 noctalia/plugins/polkit-agent/manifest.json create mode 100644 noctalia/plugins/polkit-agent/preview.png create mode 100644 noctalia/settings.json diff --git a/noctalia/colors.json b/noctalia/colors.json new file mode 100644 index 0000000..fb88025 --- /dev/null +++ b/noctalia/colors.json @@ -0,0 +1,18 @@ +{ + "mError": "#f38ba8", + "mHover": "#94e2d5", + "mOnError": "#11111b", + "mOnHover": "#11111b", + "mOnPrimary": "#11111b", + "mOnSecondary": "#11111b", + "mOnSurface": "#cdd6f4", + "mOnSurfaceVariant": "#a3b4eb", + "mOnTertiary": "#11111b", + "mOutline": "#4c4f69", + "mPrimary": "#cba6f7", + "mSecondary": "#fab387", + "mShadow": "#11111b", + "mSurface": "#1e1e2e", + "mSurfaceVariant": "#313244", + "mTertiary": "#94e2d5" +} diff --git a/noctalia/plugins.json b/noctalia/plugins.json new file mode 100644 index 0000000..8c7d7b9 --- /dev/null +++ b/noctalia/plugins.json @@ -0,0 +1,16 @@ +{ + "sources": [ + { + "enabled": true, + "name": "Noctalia Plugins", + "url": "https://github.com/noctalia-dev/noctalia-plugins" + } + ], + "states": { + "polkit-agent": { + "enabled": true, + "sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins" + } + }, + "version": 2 +} diff --git a/noctalia/plugins/polkit-agent/Main.qml b/noctalia/plugins/polkit-agent/Main.qml new file mode 100644 index 0000000..83948ff --- /dev/null +++ b/noctalia/plugins/polkit-agent/Main.qml @@ -0,0 +1,50 @@ +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Effects +import QtQuick +import Quickshell +import Quickshell.Services.Polkit +import Quickshell.Wayland +import qs.Commons +import qs.Widgets +import qs.Services.UI + +Item { + id: root + property var pluginApi: null + + PolkitAgent { + id: agent + + onIsActiveChanged: { + if (isActive) { + openWindow() + } else { + closeWindow() + } + } + } + + property var window: null + + function openWindow() { + if (window === null) { + window = Qt.createComponent("PolkitWindow.qml").createObject(root, { + flow: agent.flow, + pluginApi: Qt.binding(function() { return root.pluginApi }) + }); + window.visible = true; + } else { + window.flow = agent.flow + window.pluginApi = root.pluginApi + window.visible = true + } + } + + function closeWindow() { + if (window !== null) { + window.destroy(); + window = null; + } + } +} diff --git a/noctalia/plugins/polkit-agent/PolkitWindow.qml b/noctalia/plugins/polkit-agent/PolkitWindow.qml new file mode 100644 index 0000000..82278d4 --- /dev/null +++ b/noctalia/plugins/polkit-agent/PolkitWindow.qml @@ -0,0 +1,211 @@ +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Effects +import QtQuick +import Quickshell +import Quickshell.Services.Polkit +import Quickshell.Wayland +import qs.Commons +import qs.Widgets +import qs.Services.UI + +PanelWindow { + id: polkitWindow + + property AuthFlow flow + property var pluginApi + + Connections { + target: flow + function onFailedChanged() { + if (flow && flow.failed) { + ToastService.showError( + pluginApi ? pluginApi.tr("error.failed.title") : "Authentication Failed", + pluginApi ? pluginApi.tr("error.failed.message") : "The password you entered was incorrect." + ) + } + } + } + + // Layer above everything else (critical system prompt) + WlrLayershell.layer: WlrLayer.Overlay + WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive + + readonly property real shadowPadding: Style.shadowBlurMax + Style.marginL + + // Explicit size - include shadowPadding so the shadow isn't clipped at window corners + implicitWidth: 400 * Style.uiScaleRatio + shadowPadding * 2 + implicitHeight: contentLayout.implicitHeight + (Style.marginL * 2) + shadowPadding * 2 + + color: "transparent" + + Item { + id: contentContainer + anchors.fill: parent + anchors.margins: shadowPadding + focus: true + + Keys.onPressed: function(event) { + if (!flow) return; + + if (Keybinds.checkKey(event, "escape", Settings)) { + flow.cancelAuthenticationRequest(); + event.accepted = true; + } else if (Keybinds.checkKey(event, "enter", Settings)) { + if (passwordInput.text !== "") { + flow.submit(passwordInput.text); + passwordInput.text = ""; + } + event.accepted = true; + } + } + + + transform: Translate { + id: shakeTranslate + x: 0 + } + + // Error animation + SequentialAnimation { + id: errorShake + running: flow && flow.failed + loops: 1 + + NumberAnimation { target: shakeTranslate; property: "x"; from: 0; to: -10; duration: 50; easing.type: Easing.InOutQuad } + NumberAnimation { target: shakeTranslate; property: "x"; from: -10; to: 10; duration: 50; easing.type: Easing.InOutQuad } + NumberAnimation { target: shakeTranslate; property: "x"; from: 10; to: -10; duration: 50; easing.type: Easing.InOutQuad } + NumberAnimation { target: shakeTranslate; property: "x"; from: -10; to: 10; duration: 50; easing.type: Easing.InOutQuad } + NumberAnimation { target: shakeTranslate; property: "x"; from: 10; to: 0; duration: 50; easing.type: Easing.InOutQuad } + } + + // Shadow effect (behind background) + NDropShadow { + anchors.fill: customBackground + source: customBackground + autoPaddingEnabled: true + z: -1 + } + + Rectangle { + id: customBackground + anchors.fill: parent + radius: Style.radiusL + color: Qt.alpha(Color.mSurface, 0.95) + border.color: (flow && (flow.failed || flow.supplementaryIsError)) ? Color.mError : Color.mOutline + border.width: Style.borderS + + Behavior on border.color { + ColorAnimation { duration: Style.animationFast } + } + } + + ColumnLayout { + id: contentLayout + anchors.centerIn: parent + width: parent.width - (Style.marginL * 2) + spacing: Style.marginM + + // Header with Icon + RowLayout { + Layout.fillWidth: true + spacing: Style.marginM + + NImageRounded { + Layout.preferredWidth: Style.fontSizeXXL * 2 + Layout.preferredHeight: Style.fontSizeXXL * 2 + imagePath: (flow && flow.iconName) ? Quickshell.iconPath(flow.iconName) : "" + fallbackIcon: "lock" + borderWidth: 0 + } + + ColumnLayout { + Layout.fillWidth: true + spacing: Style.marginXS + + NText { + text: flow ? flow.message : (pluginApi ? pluginApi.tr("window.title") : "Authentication Required") + pointSize: Style.fontSizeL + font.weight: Style.fontWeightBold + color: Color.mOnSurface + wrapMode: Text.Wrap + Layout.fillWidth: true + } + + NText { + text: flow ? flow.actionId : "" + pointSize: Style.fontSizeXS + color: Color.mOnSurfaceVariant + wrapMode: Text.Wrap + Layout.fillWidth: true + visible: text !== "" + } + } + } + + // Supplementary Message (Error or prompt) + NText { + visible: flow && flow.supplementaryMessage !== "" + text: flow ? flow.supplementaryMessage : "" + pointSize: Style.fontSizeS + color: (flow && flow.supplementaryIsError) ? Color.mError : Color.mOnSurfaceVariant + wrapMode: Text.Wrap + Layout.fillWidth: true + } + + // Input Field + NTextInput { + id: passwordInput + Layout.fillWidth: true + placeholderText: flow ? flow.inputPrompt : (pluginApi ? pluginApi.tr("prompt.password") : "Password") + label: (flow && flow.isResponseRequired) ? (pluginApi ? pluginApi.tr("prompt.password") : "Password") : "" + inputItem.echoMode: (flow && !flow.responseVisible) ? TextInput.Password : TextInput.Normal + visible: flow && flow.isResponseRequired + + onAccepted: { + if (flow) { + flow.submit(passwordInput.text) + passwordInput.text = "" + } + } + } + + // Actions + RowLayout { + Layout.fillWidth: true + Layout.topMargin: Style.marginS + spacing: Style.marginM + + Item { Layout.fillWidth: true } // Spacer + + NButton { + text: pluginApi ? pluginApi.tr("action.cancel") : "Cancel" + backgroundColor: Color.mSurfaceVariant + textColor: Color.mOnSurfaceVariant + outlined: false + onClicked: { + if (flow) flow.cancelAuthenticationRequest() + } + } + + NButton { + text: pluginApi ? pluginApi.tr("action.authenticate") : "Authenticate" + backgroundColor: Color.mPrimary + textColor: Color.mOnPrimary + enabled: flow && flow.isResponseRequired + onClicked: { + if (flow) { + flow.submit(passwordInput.text) + passwordInput.text = "" + } + } + } + } + } + } + + // Focus handling + Component.onCompleted: { + passwordInput.inputItem.forceActiveFocus() + } +} diff --git a/noctalia/plugins/polkit-agent/README.md b/noctalia/plugins/polkit-agent/README.md new file mode 100644 index 0000000..2200fa6 --- /dev/null +++ b/noctalia/plugins/polkit-agent/README.md @@ -0,0 +1,13 @@ +# Polkit Agent + +This plugin provides a Polkit authentication agent for Noctalia. It allows you to authenticate actions that require elevated privileges directly within the shell. + +![Preview](preview.png) + +## Important + +To use this plugin, you **must disable or uninstall your existing polkit authentication agent** (e.g., `polkit-gnome`, `polkit-kde-agent`, `lxpolkit`, etc). + +Having multiple polkit agents running simultaneously will cause conflicts and prevent this plugin from working correctly. + +> You may need to **restart your session or computer** after enabling this plugin for the changes to take effect and for the new agent to be registered properly. \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/de.json b/noctalia/plugins/polkit-agent/i18n/de.json new file mode 100644 index 0000000..d52d98c --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/de.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Authentifizierung erforderlich" + }, + "prompt": { + "password": "Passwort" + }, + "action": { + "cancel": "Abbrechen", + "authenticate": "Authentifizieren" + }, + "error": { + "failed": { + "title": "Authentifizierung fehlgeschlagen", + "message": "Das eingegebene Passwort war falsch." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/en.json b/noctalia/plugins/polkit-agent/i18n/en.json new file mode 100644 index 0000000..8beb58c --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/en.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Authentication Required" + }, + "prompt": { + "password": "Password" + }, + "action": { + "cancel": "Cancel", + "authenticate": "Authenticate" + }, + "error": { + "failed": { + "title": "Authentication Failed", + "message": "The password you entered was incorrect." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/es.json b/noctalia/plugins/polkit-agent/i18n/es.json new file mode 100644 index 0000000..e20df44 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/es.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Autenticación requerida" + }, + "prompt": { + "password": "Contraseña" + }, + "action": { + "cancel": "Cancelar", + "authenticate": "Autenticar" + }, + "error": { + "failed": { + "title": "Autenticación fallida", + "message": "La contraseña introducida es incorrecta." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/fr.json b/noctalia/plugins/polkit-agent/i18n/fr.json new file mode 100644 index 0000000..20b0a1a --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/fr.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Authentification requise" + }, + "prompt": { + "password": "Mot de passe" + }, + "action": { + "cancel": "Annuler", + "authenticate": "S'authentifier" + }, + "error": { + "failed": { + "title": "Authentification échouée", + "message": "Le mot de passe saisi est incorrect." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/hu.json b/noctalia/plugins/polkit-agent/i18n/hu.json new file mode 100644 index 0000000..7b7cc1d --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/hu.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Hitelesítés szükséges" + }, + "prompt": { + "password": "Jelszó" + }, + "action": { + "cancel": "Mégse", + "authenticate": "Hitelesítés" + }, + "error": { + "failed": { + "title": "Hitelesítés sikertelen", + "message": "A megadott jelszó helytelen volt." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/ja.json b/noctalia/plugins/polkit-agent/i18n/ja.json new file mode 100644 index 0000000..a75d265 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/ja.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "認証が必要です" + }, + "prompt": { + "password": "パスワード" + }, + "action": { + "cancel": "キャンセル", + "authenticate": "認証" + }, + "error": { + "failed": { + "title": "認証に失敗しました", + "message": "入力されたパスワードが正しくありません。" + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/ko-KR.json b/noctalia/plugins/polkit-agent/i18n/ko-KR.json new file mode 100644 index 0000000..8eaa4df --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/ko-KR.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "인증 필요" + }, + "prompt": { + "password": "비밀번호" + }, + "action": { + "cancel": "취소", + "authenticate": "인증" + }, + "error": { + "failed": { + "title": "인증 실패", + "message": "입력한 비밀번호가 올바르지 않습니다." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/ku.json b/noctalia/plugins/polkit-agent/i18n/ku.json new file mode 100644 index 0000000..4459ce1 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/ku.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Nasname pêwîst e" + }, + "prompt": { + "password": "Şîfre" + }, + "action": { + "cancel": "Betal bike", + "authenticate": "Nasnameyê bipesend bike" + }, + "error": { + "failed": { + "title": "Nasname têk çû", + "message": "Şîfreya ku hûn nivîsandin şaş e." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/nl.json b/noctalia/plugins/polkit-agent/i18n/nl.json new file mode 100644 index 0000000..bf80c09 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/nl.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Authenticatie vereist" + }, + "prompt": { + "password": "Wachtwoord" + }, + "action": { + "cancel": "Annuleren", + "authenticate": "Authenticeren" + }, + "error": { + "failed": { + "title": "Authenticatie mislukt", + "message": "Het ingevoerde wachtwoord was onjuist." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/nn-HN.json b/noctalia/plugins/polkit-agent/i18n/nn-HN.json new file mode 100644 index 0000000..6bbaf0f --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/nn-HN.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Autentisering kreves" + }, + "prompt": { + "password": "Passord" + }, + "action": { + "cancel": "Avbryt", + "authenticate": "Autentiser" + }, + "error": { + "failed": { + "title": "Autentisering mislyktes", + "message": "Passordet du skrev inn var feil." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/nn-NO.json b/noctalia/plugins/polkit-agent/i18n/nn-NO.json new file mode 100644 index 0000000..868c980 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/nn-NO.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Autentisering krevst" + }, + "prompt": { + "password": "Passord" + }, + "action": { + "cancel": "Avbryt", + "authenticate": "Autentiser" + }, + "error": { + "failed": { + "title": "Autentisering mislukkast", + "message": "Passordet du skreiv inn var feil." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/pl.json b/noctalia/plugins/polkit-agent/i18n/pl.json new file mode 100644 index 0000000..66184ca --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/pl.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Wymagane uwierzytelnienie" + }, + "prompt": { + "password": "Hasło" + }, + "action": { + "cancel": "Anuluj", + "authenticate": "Uwierzytelnij" + }, + "error": { + "failed": { + "title": "Uwierzytelnienie nie powiodło się", + "message": "Wprowadzone hasło jest nieprawidłowe." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/pt.json b/noctalia/plugins/polkit-agent/i18n/pt.json new file mode 100644 index 0000000..f4af699 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/pt.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Autenticação Necessária" + }, + "prompt": { + "password": "Senha" + }, + "action": { + "cancel": "Cancelar", + "authenticate": "Autenticar" + }, + "error": { + "failed": { + "title": "Autenticação Falhou", + "message": "A senha introduzida está incorreta." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/ru.json b/noctalia/plugins/polkit-agent/i18n/ru.json new file mode 100644 index 0000000..d70e837 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/ru.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Требуется аутентификация" + }, + "prompt": { + "password": "Пароль" + }, + "action": { + "cancel": "Отмена", + "authenticate": "Аутентифицировать" + }, + "error": { + "failed": { + "title": "Ошибка аутентификации", + "message": "Введен неверный пароль." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/sv.json b/noctalia/plugins/polkit-agent/i18n/sv.json new file mode 100644 index 0000000..f7af9f1 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/sv.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Autentisering krävs" + }, + "prompt": { + "password": "Lösenord" + }, + "action": { + "cancel": "Avbryt", + "authenticate": "Autentisera" + }, + "error": { + "failed": { + "title": "Autentisering misslyckades", + "message": "Det angivna lösenordet var felaktigt." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/tr.json b/noctalia/plugins/polkit-agent/i18n/tr.json new file mode 100644 index 0000000..1384ee1 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/tr.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Kimlik Doğrulaması Gerekli" + }, + "prompt": { + "password": "Parola" + }, + "action": { + "cancel": "İptal", + "authenticate": "Doğrula" + }, + "error": { + "failed": { + "title": "Kimlik Doğrulama Başarısız", + "message": "Girdiğiniz parola yanlış." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/uk-UA.json b/noctalia/plugins/polkit-agent/i18n/uk-UA.json new file mode 100644 index 0000000..24daa3c --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/uk-UA.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Потрібна аутентифікація" + }, + "prompt": { + "password": "Пароль" + }, + "action": { + "cancel": "Скасувати", + "authenticate": "Аутентифікувати" + }, + "error": { + "failed": { + "title": "Помилка аутентифікації", + "message": "Введений пароль неправильний." + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/vi.json b/noctalia/plugins/polkit-agent/i18n/vi.json new file mode 100644 index 0000000..4872e37 --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/vi.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "Yêu cầu xác thực" + }, + "prompt": { + "password": "Mật khẩu" + }, + "action": { + "cancel": "Hủy", + "authenticate": "Xác thực" + }, + "error": { + "failed": { + "title": "Xác thực thất bại", + "message": "Mật khẩu bạn nhập không đúng." + } + } +} diff --git a/noctalia/plugins/polkit-agent/i18n/zh-CN.json b/noctalia/plugins/polkit-agent/i18n/zh-CN.json new file mode 100644 index 0000000..4b4cfdc --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/zh-CN.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "需要身份验证" + }, + "prompt": { + "password": "密码" + }, + "action": { + "cancel": "取消", + "authenticate": "验证" + }, + "error": { + "failed": { + "title": "身份验证失败", + "message": "您输入的密码不正确。" + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/i18n/zh-TW.json b/noctalia/plugins/polkit-agent/i18n/zh-TW.json new file mode 100644 index 0000000..f739c9e --- /dev/null +++ b/noctalia/plugins/polkit-agent/i18n/zh-TW.json @@ -0,0 +1,18 @@ +{ + "window": { + "title": "需要身份驗證" + }, + "prompt": { + "password": "密碼" + }, + "action": { + "cancel": "取消", + "authenticate": "驗證" + }, + "error": { + "failed": { + "title": "身份驗證失敗", + "message": "您輸入的密碼不正確。" + } + } +} \ No newline at end of file diff --git a/noctalia/plugins/polkit-agent/manifest.json b/noctalia/plugins/polkit-agent/manifest.json new file mode 100644 index 0000000..30eb5e2 --- /dev/null +++ b/noctalia/plugins/polkit-agent/manifest.json @@ -0,0 +1,24 @@ +{ + "id": "polkit-agent", + "name": "Polkit Agent", + "version": "1.0.6", + "minNoctaliaVersion": "4.4.3", + "author": "Noctalia Team ", + "official": true, + "license": "MIT", + "repository": "https://github.com/noctalia-dev/noctalia-plugins", + "description": "Provides a Polkit authentication agent.", + "tags": [ + "System", + "Security" + ], + "entryPoints": { + "main": "Main.qml" + }, + "dependencies": { + "plugins": [] + }, + "metadata": { + "defaultSettings": {} + } +} diff --git a/noctalia/plugins/polkit-agent/preview.png b/noctalia/plugins/polkit-agent/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..debee8a19becf89ea3b3d89f734a9f8200e75598 GIT binary patch literal 70243 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 literal 0 HcmV?d00001 diff --git a/noctalia/settings.json b/noctalia/settings.json new file mode 100644 index 0000000..3416b91 --- /dev/null +++ b/noctalia/settings.json @@ -0,0 +1,703 @@ +{ + "appLauncher": { + "autoPasteClipboard": false, + "clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store", + "clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store", + "clipboardWrapText": true, + "customLaunchPrefix": "", + "customLaunchPrefixEnabled": false, + "density": "default", + "enableClipPreview": true, + "enableClipboardChips": true, + "enableClipboardHistory": true, + "enableClipboardSmartIcons": true, + "enableSessionSearch": true, + "enableSettingsSearch": true, + "enableWindowsSearch": true, + "iconMode": "tabler", + "ignoreMouseInput": false, + "overviewLayer": false, + "pinnedApps": [ + ], + "position": "center", + "screenshotAnnotationTool": "", + "showCategories": true, + "showIconBackground": false, + "sortByMostUsed": true, + "terminalCommand": "alacritty -e", + "viewMode": "list" + }, + "audio": { + "mprisBlacklist": [ + ], + "preferredPlayer": "", + "spectrumFrameRate": 30, + "spectrumMirrored": true, + "visualizerType": "linear", + "volumeFeedback": false, + "volumeFeedbackSoundFile": "", + "volumeOverdrive": false, + "volumeStep": 5 + }, + "bar": { + "autoHideDelay": 500, + "autoShowDelay": 150, + "backgroundOpacity": 0.93, + "barType": "simple", + "capsuleColorKey": "none", + "capsuleOpacity": 1, + "contentPadding": 2, + "density": "comfortable", + "displayMode": "always_visible", + "enableExclusionZoneInset": true, + "fontScale": 1, + "frameRadius": 12, + "frameThickness": 8, + "hideOnOverview": false, + "marginHorizontal": 4, + "marginVertical": 4, + "middleClickAction": "none", + "middleClickCommand": "", + "middleClickFollowMouse": false, + "monitors": [ + ], + "mouseWheelAction": "none", + "mouseWheelWrap": true, + "outerCorners": false, + "position": "top", + "reverseScroll": false, + "rightClickAction": "controlCenter", + "rightClickCommand": "", + "rightClickFollowMouse": true, + "screenOverrides": [ + ], + "showCapsule": true, + "showOnWorkspaceSwitch": true, + "showOutline": false, + "useSeparateOpacity": false, + "widgetSpacing": 6, + "widgets": { + "center": [ + { + "clockColor": "none", + "customFont": "", + "formatHorizontal": "HH:mm ddd, MMM dd", + "formatVertical": "HH mm - dd MM", + "id": "Clock", + "tooltipFormat": "HH:mm ddd, MMM dd", + "useCustomFont": false + } + ], + "left": [ + { + "colorizeSystemIcon": "none", + "colorizeSystemText": "none", + "customIconPath": "", + "enableColorization": false, + "icon": "rocket", + "iconColor": "none", + "id": "Launcher", + "useDistroLogo": false + }, + { + "compactMode": true, + "diskPath": "/", + "iconColor": "none", + "id": "SystemMonitor", + "showCpuCores": false, + "showCpuFreq": false, + "showCpuTemp": true, + "showCpuUsage": true, + "showDiskAvailable": false, + "showDiskUsage": false, + "showDiskUsageAsPercent": false, + "showGpuTemp": false, + "showLoadAverage": false, + "showMemoryAsPercent": false, + "showMemoryUsage": true, + "showNetworkStats": false, + "showSwapUsage": false, + "textColor": "none", + "useMonospaceFont": true, + "usePadding": false + }, + { + "compactMode": false, + "hideMode": "hidden", + "hideWhenIdle": false, + "id": "MediaMini", + "maxWidth": 145, + "panelShowAlbumArt": true, + "scrollingMode": "hover", + "showAlbumArt": true, + "showArtistFirst": true, + "showProgressRing": true, + "showVisualizer": false, + "textColor": "none", + "useFixedWidth": false, + "visualizerType": "linear" + }, + { + "characterCount": 2, + "colorizeIcons": false, + "emptyColor": "secondary", + "enableScrollWheel": true, + "focusedColor": "primary", + "followFocusedScreen": false, + "fontWeight": "bold", + "groupedBorderOpacity": 1, + "hideUnoccupied": false, + "iconScale": 0.8, + "id": "Workspace", + "labelMode": "index", + "occupiedColor": "secondary", + "pillSize": 0.6, + "showApplications": false, + "showApplicationsHover": false, + "showBadge": true, + "showLabelsOnlyWhenOccupied": true, + "unfocusedIconsOpacity": 1 + }, + { + "colorizeIcons": false, + "hideMode": "visible", + "id": "ActiveWindow", + "maxWidth": 350, + "scrollingMode": "hover", + "showIcon": true, + "showText": true, + "textColor": "none", + "useFixedWidth": true + } + ], + "right": [ + { + "blacklist": [ + ], + "chevronColor": "none", + "colorizeIcons": false, + "drawerEnabled": false, + "hidePassive": false, + "id": "Tray", + "pinned": [ + ] + }, + { + "hideWhenZero": false, + "hideWhenZeroUnread": false, + "iconColor": "none", + "id": "NotificationHistory", + "showUnreadBadge": true, + "unreadBadgeColor": "primary" + }, + { + "deviceNativePath": "__default__", + "displayMode": "graphic-clean", + "hideIfIdle": false, + "hideIfNotDetected": true, + "id": "Battery", + "showNoctaliaPerformance": false, + "showPowerProfiles": false + }, + { + "displayMode": "onhover", + "iconColor": "none", + "id": "Volume", + "middleClickCommand": "pwvucontrol || pavucontrol", + "textColor": "none" + }, + { + "applyToAllMonitors": false, + "displayMode": "onhover", + "iconColor": "none", + "id": "Brightness", + "textColor": "none" + }, + { + "colorizeDistroLogo": false, + "colorizeSystemIcon": "none", + "colorizeSystemText": "none", + "customIconPath": "", + "enableColorization": false, + "icon": "noctalia", + "id": "ControlCenter", + "useDistroLogo": false + } + ] + } + }, + "brightness": { + "backlightDeviceMappings": [ + ], + "brightnessStep": 5, + "enableDdcSupport": false, + "enforceMinimum": true + }, + "calendar": { + "cards": [ + { + "enabled": true, + "id": "calendar-header-card" + }, + { + "enabled": true, + "id": "calendar-month-card" + }, + { + "enabled": true, + "id": "weather-card" + } + ] + }, + "colorSchemes": { + "darkMode": true, + "generationMethod": "tonal-spot", + "manualSunrise": "06:30", + "manualSunset": "18:30", + "monitorForColors": "", + "predefinedScheme": "Catppuccin", + "schedulingMode": "off", + "syncGsettings": true, + "useWallpaperColors": false + }, + "controlCenter": { + "cards": [ + { + "enabled": true, + "id": "profile-card" + }, + { + "enabled": true, + "id": "shortcuts-card" + }, + { + "enabled": true, + "id": "audio-card" + }, + { + "enabled": false, + "id": "brightness-card" + }, + { + "enabled": true, + "id": "weather-card" + }, + { + "enabled": true, + "id": "media-sysmon-card" + } + ], + "diskPath": "/", + "position": "close_to_bar_button", + "shortcuts": { + "left": [ + { + "id": "Network" + }, + { + "id": "Bluetooth" + }, + { + "id": "WallpaperSelector" + }, + { + "id": "NoctaliaPerformance" + } + ], + "right": [ + { + "id": "Notifications" + }, + { + "id": "PowerProfile" + }, + { + "id": "KeepAwake" + }, + { + "id": "NightLight" + } + ] + } + }, + "desktopWidgets": { + "enabled": false, + "gridSnap": false, + "gridSnapScale": false, + "monitorWidgets": [ + ], + "overviewEnabled": true + }, + "dock": { + "animationSpeed": 1, + "backgroundOpacity": 1, + "colorizeIcons": false, + "deadOpacity": 0.6, + "displayMode": "auto_hide", + "dockType": "attached", + "enabled": true, + "floatingRatio": 1, + "groupApps": false, + "groupClickAction": "cycle", + "groupContextMenuMode": "extended", + "groupIndicatorStyle": "dots", + "inactiveIndicators": false, + "indicatorColor": "primary", + "indicatorOpacity": 0.6, + "indicatorThickness": 3, + "launcherIcon": "", + "launcherIconColor": "none", + "launcherPosition": "end", + "launcherUseDistroLogo": false, + "monitors": [ + ], + "onlySameOutput": true, + "pinnedApps": [ + ], + "pinnedStatic": false, + "position": "bottom", + "showDockIndicator": true, + "showLauncherIcon": false, + "sitOnFrame": false, + "size": 1 + }, + "general": { + "allowPanelsOnScreenWithoutBar": true, + "allowPasswordWithFprintd": false, + "animationDisabled": false, + "animationSpeed": 1, + "autoStartAuth": false, + "avatarImage": "/home/bgrolleman/.face", + "boxRadiusRatio": 1, + "clockFormat": "hh\\nmm", + "clockStyle": "custom", + "compactLockScreen": false, + "dimmerOpacity": 0.2, + "enableBlurBehind": true, + "enableLockScreenCountdown": true, + "enableLockScreenMediaControls": false, + "enableShadows": true, + "forceBlackScreenCorners": false, + "iRadiusRatio": 1, + "keybinds": { + "keyDown": [ + "Down" + ], + "keyEnter": [ + "Return", + "Enter" + ], + "keyEscape": [ + "Esc" + ], + "keyLeft": [ + "Left" + ], + "keyRemove": [ + "Del" + ], + "keyRight": [ + "Right" + ], + "keyUp": [ + "Up" + ] + }, + "language": "", + "lockOnSuspend": true, + "lockScreenAnimations": false, + "lockScreenBlur": 0, + "lockScreenCountdownDuration": 10000, + "lockScreenMonitors": [ + ], + "lockScreenTint": 0, + "passwordChars": false, + "radiusRatio": 1, + "reverseScroll": false, + "scaleRatio": 1, + "screenRadiusRatio": 1, + "shadowDirection": "bottom_right", + "shadowOffsetX": 2, + "shadowOffsetY": 3, + "showChangelogOnStartup": true, + "showHibernateOnLockScreen": false, + "showScreenCorners": false, + "showSessionButtonsOnLockScreen": true, + "smoothScrollEnabled": true, + "telemetryEnabled": true + }, + "hooks": { + "colorGeneration": "", + "darkModeChange": "", + "enabled": false, + "performanceModeDisabled": "", + "performanceModeEnabled": "", + "screenLock": "", + "screenUnlock": "", + "session": "", + "startup": "", + "wallpaperChange": "" + }, + "idle": { + "customCommands": "[]", + "enabled": false, + "fadeDuration": 5, + "lockCommand": "", + "lockTimeout": 660, + "resumeLockCommand": "", + "resumeScreenOffCommand": "", + "resumeSuspendCommand": "", + "screenOffCommand": "", + "screenOffTimeout": 600, + "suspendCommand": "", + "suspendTimeout": 1800 + }, + "location": { + "analogClockInCalendar": false, + "autoLocate": false, + "firstDayOfWeek": 1, + "hideWeatherCityName": false, + "hideWeatherTimezone": false, + "name": "Amersfoort, The Netherlandsk", + "showCalendarEvents": true, + "showCalendarWeather": true, + "showWeekNumberInCalendar": false, + "use12hourFormat": false, + "useFahrenheit": false, + "weatherEnabled": true, + "weatherShowEffects": true, + "weatherTaliaMascotAlways": false + }, + "network": { + "bluetoothAutoConnect": true, + "bluetoothDetailsViewMode": "grid", + "bluetoothHideUnnamedDevices": false, + "bluetoothRssiPollIntervalMs": 60000, + "bluetoothRssiPollingEnabled": false, + "disableDiscoverability": false, + "networkPanelView": "wifi", + "wifiDetailsViewMode": "grid" + }, + "nightLight": { + "autoSchedule": true, + "dayTemp": "6500", + "enabled": false, + "forced": false, + "manualSunrise": "06:30", + "manualSunset": "18:30", + "nightTemp": "4000" + }, + "noctaliaPerformance": { + "disableDesktopWidgets": true, + "disableWallpaper": true + }, + "notifications": { + "backgroundOpacity": 1, + "clearDismissed": true, + "criticalUrgencyDuration": 15, + "density": "default", + "enableBatteryToast": true, + "enableKeyboardLayoutToast": true, + "enableMarkdown": false, + "enableMediaToast": false, + "enabled": true, + "location": "top_right", + "lowUrgencyDuration": 3, + "monitors": [ + ], + "normalUrgencyDuration": 8, + "overlayLayer": true, + "respectExpireTimeout": false, + "saveToHistory": { + "critical": true, + "low": false, + "normal": true + }, + "sounds": { + "criticalSoundFile": "", + "enabled": false, + "excludedApps": "discord,firefox,chrome,chromium,edge", + "lowSoundFile": "", + "normalSoundFile": "", + "separateSounds": false, + "volume": 0.5 + } + }, + "osd": { + "autoHideMs": 2000, + "backgroundOpacity": 1, + "enabled": true, + "enabledTypes": [ + 0, + 1, + 2 + ], + "location": "top_right", + "monitors": [ + ], + "overlayLayer": true + }, + "plugins": { + "autoUpdate": false, + "notifyUpdates": true + }, + "sessionMenu": { + "countdownDuration": 10000, + "enableCountdown": true, + "largeButtonsLayout": "single-row", + "largeButtonsStyle": true, + "position": "center", + "powerOptions": [ + { + "action": "lock", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "1" + }, + { + "action": "suspend", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "2" + }, + { + "action": "hibernate", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "3" + }, + { + "action": "reboot", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "4" + }, + { + "action": "logout", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "5" + }, + { + "action": "shutdown", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "6" + }, + { + "action": "rebootToUefi", + "command": "", + "countdownEnabled": true, + "enabled": true, + "keybind": "7" + }, + { + "action": "userspaceReboot", + "command": "", + "countdownEnabled": true, + "enabled": false, + "keybind": "" + } + ], + "showHeader": true, + "showKeybinds": true + }, + "settingsVersion": 59, + "systemMonitor": { + "batteryCriticalThreshold": 5, + "batteryWarningThreshold": 20, + "cpuCriticalThreshold": 90, + "cpuWarningThreshold": 80, + "criticalColor": "", + "diskAvailCriticalThreshold": 10, + "diskAvailWarningThreshold": 20, + "diskCriticalThreshold": 90, + "diskWarningThreshold": 80, + "enableDgpuMonitoring": false, + "externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor", + "gpuCriticalThreshold": 90, + "gpuWarningThreshold": 80, + "memCriticalThreshold": 90, + "memWarningThreshold": 80, + "swapCriticalThreshold": 90, + "swapWarningThreshold": 80, + "tempCriticalThreshold": 90, + "tempWarningThreshold": 80, + "useCustomColors": false, + "warningColor": "" + }, + "templates": { + "activeTemplates": [ + ], + "enableUserTheming": false + }, + "ui": { + "boxBorderEnabled": false, + "fontDefault": "Adwaita Sans", + "fontDefaultScale": 1, + "fontFixed": "monospace", + "fontFixedScale": 1, + "panelBackgroundOpacity": 0.93, + "panelsAttachedToBar": true, + "scrollbarAlwaysVisible": true, + "settingsPanelMode": "attached", + "settingsPanelSideBarCardStyle": false, + "tooltipsEnabled": true, + "translucentWidgets": false + }, + "wallpaper": { + "automationEnabled": false, + "directory": "/home/bgrolleman/Documents/Resources/Backgrounds", + "enableMultiMonitorDirectories": false, + "enabled": true, + "favorites": [ + ], + "fillColor": "#000000", + "fillMode": "crop", + "hideWallpaperFilenames": false, + "linkLightAndDarkWallpapers": true, + "monitorDirectories": [ + ], + "overviewBlur": 0.4, + "overviewEnabled": false, + "overviewTint": 0.6, + "panelPosition": "follow_bar", + "randomIntervalSec": 300, + "setWallpaperOnAllMonitors": true, + "showHiddenFiles": false, + "skipStartupTransition": false, + "solidColor": "#1a1a2e", + "sortOrder": "name", + "transitionDuration": 1500, + "transitionEdgeSmoothness": 0.05, + "transitionType": [ + "fade", + "disc", + "stripes", + "wipe", + "pixelate", + "honeycomb" + ], + "useOriginalImages": false, + "useSolidColor": false, + "useWallhaven": false, + "viewMode": "single", + "wallhavenApiKey": "", + "wallhavenCategories": "111", + "wallhavenOrder": "desc", + "wallhavenPurity": "100", + "wallhavenQuery": "", + "wallhavenRatios": "", + "wallhavenResolutionHeight": "", + "wallhavenResolutionMode": "atleast", + "wallhavenResolutionWidth": "", + "wallhavenSorting": "relevance", + "wallpaperChangeMode": "random" + } +} diff --git a/setup.sh b/setup.sh index bfbab32..81efd7b 100755 --- a/setup.sh +++ b/setup.sh @@ -20,11 +20,12 @@ configlink() { checkdir ~/.config link ~/.profile ~/.dotfiles/profile -link ~/.config/i3 ~/.dotfiles/i3 +configlink i3 configlink tmux configlink nvim configlink kitty configlink polybar configlink picom.conf configlink niri +configlink noctalia