2.3 KiB
Contributing
Contributions are welcome and encouraged.
To contribute fork this repository, make your changes, and open a pull request.
Setup
Install prek then activate pre-commit hooks:
prek install
Nix Development Shell
If you have Nix installed with flakes enabled, you can use the provided development shell which includes all necessary dependencies:
nix develop
This will provide:
- Go 1.24 toolchain (go, gopls, delve, go-tools) and GNU Make
- Quickshell and required QML packages
- Properly configured QML2_IMPORT_PATH
The dev shell automatically creates the .qmlls.ini file in the quickshell/ directory.
VSCode Setup
This is a monorepo, the easiest thing to do is to open an editor in either quickshell, core, or both depending on which part of the project you are working on.
QML (quickshell directory)
- Install the QML Extension
- Configure
ctrl+shift+p-> user preferences (json) with qmlls path
{
"qt-qml.doNotAskForQmllsDownload": true,
"qt-qml.qmlls.customExePath": "/usr/lib/qt6/bin/qmlls"
}
- Create empty
.qmlls.inifile inquickshell/directory
cd quickshell
touch .qmlls.ini
-
Restart dms to generate the
.qmlls.inifile -
Make your changes, test, and open a pull request.
I18n/Localization
When adding user-facing strings, ensure they are wrapped in I18n.tr() with context, for example.
import qs.Common
Text {
text: I18n.tr("Hello World", "<This is context for the translators, example> Hello world greeting that appears on the lock screen")
}
Preferably, try to keep new terms to a minimum and re-use existing terms where possible. See quickshell/translations/en.json for the list of existing terms. (This isn't always possible obviously, but instead of using Auto-connect you would use Autoconnect since it's already translated)
GO (core directory)
- Install the Go Extension
- Ensure code is formatted with
make fmt - Add appropriate test coverage and ensure tests pass with
make test - Run
go mod tidy - Open pull request
Pull request
Include screenshots/video if applicable in your pull request if applicable, to visualize what your change is affecting.