mirror of
https://github.com/hyprwm/hyprland-welcome.git
synced 2025-05-13 05:40:37 +01:00
various layout fixes
This commit is contained in:
parent
ab3283b903
commit
80fddebf86
5 changed files with 348 additions and 262 deletions
|
@ -38,7 +38,7 @@ else()
|
|||
else()
|
||||
add_executable(HyprlandWelcome
|
||||
${PROJECT_SOURCES}
|
||||
Logo.qrc
|
||||
assets/Logo.qrc
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
|
5
Logo.qrc
5
Logo.qrc
|
@ -1,5 +0,0 @@
|
|||
<RCC>
|
||||
<qresource prefix="/assets">
|
||||
<file>assets/logobanner.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -7,6 +7,7 @@
|
|||
#include <QTimer>
|
||||
#include <QProcess>
|
||||
#include <filesystem>
|
||||
#include <thread>
|
||||
|
||||
QWidget* findByName(QString name) {
|
||||
QList<QWidget*> widgets = QApplication::allWidgets();
|
||||
|
@ -51,6 +52,8 @@ struct SAppCheck {
|
|||
bool needsAllInstalled = false;
|
||||
bool needsAllRunning = false;
|
||||
std::vector<std::string> runningNames;
|
||||
|
||||
std::string currentText = "";
|
||||
};
|
||||
|
||||
std::vector<SAppCheck> appChecks;
|
||||
|
@ -68,8 +71,12 @@ void CHyprlandWelcome::startAppTimer() {
|
|||
{"/usr/lib/xdg-desktop-portal", "/usr/lib/xdg-desktop-portal-hyprland", "/usr/lib/xdg-desktop-portal-gtk", "/usr/libexec/xdg-desktop-portal",
|
||||
"/usr/libexec/xdg-desktop-portal-hyprland", "/usr/libexec/xdg-desktop-portal-gtk"},
|
||||
"XDG Desktop Portal*",
|
||||
(QLabel*)findByName("INSTALL_XDP"), false, true, {"xdg-desktop-portal", "xdg-desktop-portal-hyprland"}});
|
||||
appChecks.push_back(SAppCheck{{}, {"/usr/lib/polkit-kde-authentication-agent-1"}, "Authentication Agent", (QLabel*)findByName("INSTALL_AUTH"), false, false, {"polkit-kde-authentication-agent-1"}});
|
||||
(QLabel*)findByName("INSTALL_XDP"),
|
||||
false,
|
||||
true,
|
||||
{"xdg-desktop-portal", "xdg-desktop-portal-hyprland"}});
|
||||
appChecks.push_back(SAppCheck{
|
||||
{}, {"/usr/lib/polkit-kde-authentication-agent-1"}, "Authentication Agent", (QLabel*)findByName("INSTALL_AUTH"), false, false, {"polkit-kde-authentication-agent-1"}});
|
||||
appChecks.push_back(SAppCheck{{"qtwaylandscanner"}, {}, "QT Wayland Support", (QLabel*)findByName("INSTALL_QTW")});
|
||||
appChecks.push_back(SAppCheck{{"kitty", "wezterm", "alacritty", "foot", "konsole", "gnome-terminal"}, {}, "Terminal", (QLabel*)findByName("INSTALL_TERM")});
|
||||
appChecks.push_back(SAppCheck{{"qt5ct", "qt6ct"}, {}, "QT Theming", (QLabel*)findByName("INSTALL_QTTHEME")});
|
||||
|
@ -79,7 +86,30 @@ void CHyprlandWelcome::startAppTimer() {
|
|||
if (this->currentTab != 1)
|
||||
return;
|
||||
|
||||
appScanMutex.lock();
|
||||
|
||||
for (const auto& app : appChecks) {
|
||||
if (app.currentText.empty())
|
||||
continue;
|
||||
app.label->setText(QString::fromStdString(app.currentText));
|
||||
}
|
||||
|
||||
appScanMutex.unlock();
|
||||
});
|
||||
timer->start(1000);
|
||||
|
||||
std::thread t([this]() {
|
||||
while (true) {
|
||||
|
||||
if (exit)
|
||||
return;
|
||||
|
||||
if (currentTab != 1) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
||||
continue;
|
||||
}
|
||||
|
||||
for (auto& app : appChecks) {
|
||||
std::vector<std::string> found;
|
||||
std::vector<std::string> runningApps;
|
||||
bool running = false;
|
||||
|
@ -92,7 +122,8 @@ void CHyprlandWelcome::startAppTimer() {
|
|||
running = true;
|
||||
}
|
||||
}
|
||||
if (!app.runningNames.empty()) for (const auto& bin : app.runningNames) {
|
||||
if (!app.runningNames.empty())
|
||||
for (const auto& bin : app.runningNames) {
|
||||
if (appIsRunning(bin)) {
|
||||
runningApps.push_back(bin);
|
||||
running = true;
|
||||
|
@ -105,9 +136,13 @@ void CHyprlandWelcome::startAppTimer() {
|
|||
}
|
||||
|
||||
if ((found.empty() && !running) || (app.needsAllInstalled && found.size() != app.binaryNames.size() + app.binaryPaths.size())) {
|
||||
app.label->setText(QString::fromStdString("<html><head/><body><p><span style=\" color:#ff0000;\">❌</span> " + app.name + "</p></body></html>"));
|
||||
appScanMutex.lock();
|
||||
app.currentText = "<html><head/><body><p><span style=\" color:#ff0000;\">❌</span> " + app.name + "</p></body></html>";
|
||||
appScanMutex.unlock();
|
||||
} else if (app.needsAllRunning && runningApps.size() != (app.runningNames.empty() ? app.binaryNames : app.runningNames).size()) {
|
||||
app.label->setText(QString::fromStdString("<html><head/><body><p><span style=\" color:#ff0000;\">❌</span> " + app.name + ": Found all, but not running.</p></body></html>"));
|
||||
appScanMutex.lock();
|
||||
app.currentText = "<html><head/><body><p><span style=\" color:#ff0000;\">❌</span> " + app.name + ": Found all, but not running.</p></body></html>";
|
||||
appScanMutex.unlock();
|
||||
} else if (!running) {
|
||||
std::string text = "<html><head/><body><p><span style=\" color:#00ff00;\">✔️</span> " + app.name + ": <span style=\" color:#00ff00;\">found</span> ";
|
||||
for (auto& f : found)
|
||||
|
@ -115,7 +150,9 @@ void CHyprlandWelcome::startAppTimer() {
|
|||
text.pop_back();
|
||||
text.pop_back();
|
||||
text += "</p></body></html>";
|
||||
app.label->setText(QString::fromStdString(text));
|
||||
appScanMutex.lock();
|
||||
app.currentText = text;
|
||||
appScanMutex.unlock();
|
||||
} else {
|
||||
std::string text = "<html><head/><body><p><span style=\" color:#00ffff;\">✔️</span> " + app.name + ": <span style=\" color:#00ffff;\">running</span> ";
|
||||
for (auto& f : runningApps)
|
||||
|
@ -123,11 +160,16 @@ void CHyprlandWelcome::startAppTimer() {
|
|||
text.pop_back();
|
||||
text.pop_back();
|
||||
text += "</p></body></html>";
|
||||
app.label->setText(QString::fromStdString(text));
|
||||
appScanMutex.lock();
|
||||
app.currentText = text;
|
||||
appScanMutex.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
}
|
||||
});
|
||||
timer->start(1000);
|
||||
t.detach();
|
||||
}
|
||||
|
||||
std::string getDataStatePath() {
|
||||
|
@ -145,6 +187,7 @@ std::string getDataStatePath() {
|
|||
void CHyprlandWelcome::exitDontShowAgain() {
|
||||
const auto STATEPATH = getDataStatePath();
|
||||
if (STATEPATH.empty()) {
|
||||
exit = true;
|
||||
QApplication::exit(0);
|
||||
return;
|
||||
}
|
||||
|
@ -155,6 +198,7 @@ void CHyprlandWelcome::exitDontShowAgain() {
|
|||
std::filesystem::create_directories(STATEPATH);
|
||||
|
||||
execAndGet("echo \"noshow\" > " + CONFPATH);
|
||||
exit = true;
|
||||
QApplication::exit(0);
|
||||
}
|
||||
|
||||
|
@ -168,7 +212,10 @@ CHyprlandWelcome::CHyprlandWelcome(QWidget* parent) : QMainWindow(parent), ui(ne
|
|||
QObject::connect(WIKIBUTTON, &QPushButton::clicked, [] { QDesktopServices::openUrl(QString{"https://wiki.hyprland.org/Configuring/Configuring-Hyprland/"}); });
|
||||
|
||||
const auto EXITBUTTON = (QPushButton*)findByName("exitButton");
|
||||
QObject::connect(EXITBUTTON, &QPushButton::clicked, [] { QApplication::exit(0); });
|
||||
QObject::connect(EXITBUTTON, &QPushButton::clicked, [this] {
|
||||
exit = true;
|
||||
QApplication::exit(0);
|
||||
});
|
||||
|
||||
const auto TABS = (QTabWidget*)findByName("tabs");
|
||||
QObject::connect(TABS->tabBar(), &QTabBar::currentChanged, [TABS, this] { TABS->tabBar()->setCurrentIndex(this->currentTab); });
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define CHYPRLANDWELCOME_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <mutex>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui {
|
||||
|
@ -23,5 +24,7 @@ class CHyprlandWelcome : public QMainWindow {
|
|||
void exitDontShowAgain();
|
||||
|
||||
int currentTab = 0;
|
||||
bool exit = false;
|
||||
std::mutex appScanMutex;
|
||||
};
|
||||
#endif // CHYPRLANDWELCOME_H
|
||||
|
|
|
@ -29,14 +29,10 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>CHyprlandWelcome</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset>
|
||||
<normaloff>../../Documents/Hypr/try3finaltransparent.png</normaloff>../../Documents/Hypr/try3finaltransparent.png</iconset>
|
||||
<string>Welcome to Hyprland!</string>
|
||||
</property>
|
||||
<property name="windowOpacity">
|
||||
<double>0.900000000000000</double>
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>true</bool>
|
||||
|
@ -55,7 +51,7 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="Logo.qrc">:/assets/assets/logobanner.png</pixmap>
|
||||
<pixmap>:/logobanner.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
|
@ -80,7 +76,7 @@
|
|||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>3</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="usesScrollButtons">
|
||||
<bool>false</bool>
|
||||
|
@ -164,185 +160,6 @@
|
|||
<attribute name="title">
|
||||
<string>Getting Started</string>
|
||||
</attribute>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>751</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p>The first thing we'll need to do is get some packages installed that you absolutely need in order for your system to be working properly.</p><p>Apps with * are absolutely necessary. All other are <span style=" font-weight:700; font-style:italic;">highly</span> recommended, as they provide core parts of a working environment.</p><p>You <span style=" font-style:italic;">can </span>proceed without any of those, but it's not advised. There is a possibility that this app is unable to detect some of your installed binaries. In that case, it's okay to ignore them.</p><p>Use the &quot;launch terminal&quot; button to launch a terminal. Supported terminals are kitty, alacritty, foot, wezterm, konsole, gnome-terminal, xterm. If none are installed, you'll need to exit hyprland and install one. Use SUPER+M to exit hyprland.<br/><br/>Hover on the different components to see what options are accepted. <span style=" color:#00ff00;">Green</span> means the component is found to be installed, <span style=" color:#00ffff;">blue</span> means it's running.</p></body></html></string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_TERM">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>180</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: kitty, alacritty, wezterm, foot, konsole, gnome-terminal. Worth noting this is not a comprehensive list and Hyprland will work with any wayland-compatible terminal emulator, however this app will not automatically detect it.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Terminal</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_FM">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>200</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: dolphin, ranger, thunar</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> File Manager</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_WALLPAPER">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>220</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: hyprpaper, swaybg, swww, wpaperd. Recommended: hyprpaper</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Wallpaper Utility</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_PW">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>240</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: pipewire <span style=" font-weight:700;">and</span> wireplumber</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Pipewire*</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_XDP">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>440</x>
|
||||
<y>180</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: xdg-desktop-portal <span style=" font-weight:700;">and</span> xdg-desktop-portal-hyprland. Recommended to also install xdg-desktop-portal-gtk for a file picker.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> XDG Desktop Portal*</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_AUTH">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>440</x>
|
||||
<y>200</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: <span style=" font-family:'monospace';">kde-authentication-agent</span></p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Authentication Agent</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_QTW">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>440</x>
|
||||
<y>220</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: qt5-wayland, qt6-wayland (highly recommended both)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> QT Wayland support</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_NOTIF">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>280</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: dunst, mako. Worth noting you can also create your own notification daemons with stuff like ags or eww.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Notification Daemon</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_BAR">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>440</x>
|
||||
<y>260</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: waybar, eww, ags</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Status Bar</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_LAUNCHER">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>260</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: fuzzel, wofi, anyrun, tofi</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> App Launcher</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="tab2Next">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
|
@ -375,22 +192,6 @@
|
|||
<string>Open Terminal</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="INSTALL_QTTHEME">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>440</x>
|
||||
<y>240</y>
|
||||
<width>301</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: qt5ct, qt6ct.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> QT Theming</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="tab2Back">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
|
@ -407,6 +208,248 @@
|
|||
<string>Back</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>775</width>
|
||||
<height>313</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTipDuration">
|
||||
<number>-2</number>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAsNeeded</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<widget class="QWidget" name="verticalLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>769</width>
|
||||
<height>315</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="GettingStartedText">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>760</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"><html><head/><body><p>The first thing we'll need to do is get some packages installed that you absolutely need in order for your system to be working properly.</p><p>Apps with * are absolutely necessary. All other are <span style=" font-weight:700; font-style:italic;">highly</span> recommended, as they provide core parts of a working environment.</p><p>You <span style=" font-style:italic;">can </span>proceed without any of those, but it's not advised. There is a possibility that this app is unable to detect some of your installed binaries. In that case, it's okay to ignore them. Nix users might have the issue.</p><p>Use the &quot;launch terminal&quot; button to launch a terminal. Use SUPER+M to exit hyprland. Supported terminals: kitty, alacritty, foot, wezterm, konsole, gnome-terminal, xterm.<br/><br/>Hover on the different components to see what options are accepted. <span style=" color:#00ff00;">Green</span> means the component is found to be installed, <span style=" color:#00ffff;">blue</span> means it's running.</p><p>This list refreshes automatically.</p></body></html></string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::RichText</enum>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="Components" columnminimumwidth="155,155">
|
||||
<property name="leftMargin">
|
||||
<number>40</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>40</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="INSTALL_AUTH">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: <span style=" font-family:'monospace';">kde-authentication-agent</span></p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Authentication Agent</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="INSTALL_QTW">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: qt5-wayland, qt6-wayland (highly recommended both)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> QT Wayland support</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="INSTALL_FM">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: dolphin, ranger, thunar</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> File Manager</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="INSTALL_TERM">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: kitty, alacritty, wezterm, foot, konsole, gnome-terminal. Worth noting this is not a comprehensive list and Hyprland will work with any wayland-compatible terminal emulator, however this app will not automatically detect it.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Terminal</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="INSTALL_PW">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: pipewire <span style=" font-weight:700;">and</span> wireplumber</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Pipewire*</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="INSTALL_WALLPAPER">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: hyprpaper, swaybg, swww, wpaperd. Recommended: hyprpaper</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Wallpaper Utility</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="INSTALL_XDP">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: xdg-desktop-portal <span style=" font-weight:700;">and</span> xdg-desktop-portal-hyprland. Recommended to also install xdg-desktop-portal-gtk for a file picker.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> XDG Desktop Portal*</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="INSTALL_QTTHEME">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: qt5ct, qt6ct.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> QT Theming</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="INSTALL_NOTIF">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: dunst, mako. Worth noting you can also create your own notification daemons with stuff like ags or eww.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Notification Daemon</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="INSTALL_BAR">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: waybar, eww, ags</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> Status Bar</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="INSTALL_LAUNCHER">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Accepted: fuzzel, wofi, anyrun, tofi</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><span style=" color:#ff0000;">❌</span> App Launcher</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="configuringTab">
|
||||
<attribute name="title">
|
||||
|
@ -713,8 +756,6 @@
|
|||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="Logo.qrc"/>
|
||||
</resources>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
Loading…
Reference in a new issue