Compare commits

...

8 Commits

Author SHA1 Message Date
Ly-sec 761869a561 chore(flake): update flake.lock 2026-05-11 01:56:48 +00:00
Ly-sec eb2b53ddaa chore(workflow): update label metadata 2026-05-06 23:48:34 +02:00
Ly-sec 3bbf31945d chore(issue templates): update bug report 2026-05-06 15:55:43 +02:00
Ly-sec f38756d562 chore(ISSUE_TEMPLATES): update templates 2026-05-06 15:51:34 +02:00
Ly-sec 7d03576831 chore(flake): update flake.lock 2026-05-06 01:45:21 +00:00
Ly-sec 6b48834dd6 chore(flake): update flake.lock 2026-05-04 01:45:47 +00:00
Ly-sec f0469d2d6f chore(flake): update flake.lock 2026-05-03 01:46:03 +00:00
Ly-sec 9f8dd48c8d chore(flake): update flake.lock 2026-04-29 01:51:12 +00:00
7 changed files with 361 additions and 69 deletions
-32
View File
@@ -1,32 +0,0 @@
---
name: Bug Report
about: Report a bug from noctalia-shell
title: ''
labels: bug
assignees: ''
---
### Description
A clear and concise description of the bug.
### Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. See the error.
### Expected Behavior
Explain what you expected to happen.
### Screenshots
Add screenshots if applicable.
### Environment
- Distro: [e.g., CachyOS, NixOS, Arch, ...]
- Compositor: [ e.g., Hyprland, Niri, ...]
- Noctalia-shell Version: [e.g., 1.0.0, available in About tab]
- Noctalia QS Version: [e.g., 0.0.4, please check your package manager]
- Monitor resolution: [e.g., 1920x1080]
### Additional Context
Add any other context about the problem here.
+128
View File
@@ -0,0 +1,128 @@
name: Bug Report
description: Report a bug or regression in Noctalia
title: "[BUG] "
labels: ["bug"]
assignees: [Ly-sec, ItsLemmy]
body:
- type: checkboxes
id: submission-checklist
attributes:
label: Submission checklist
description: Please confirm the following before submitting.
options:
- label: I have searched existing issues and confirmed this is not a duplicate.
required: true
- label: I am using the latest available version of Noctalia.
required: true
- type: textarea
id: description
attributes:
label: Bug description
description: A clear and concise description of the issue.
placeholder: Describe the problem...
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Steps required to reproduce the issue.
placeholder: |
1. Open ...
2. Click ...
3. Observe ...
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior
description: What actually happened?
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs / error output
description: |
Paste any relevant logs, terminal output, or stack traces here.
Examples:
- journalctl output
- terminal errors
- crash logs
Large outputs can be wrapped in a `<details>` block.
render: text
- type: dropdown
id: compositor
attributes:
label: Compositor
description: Select the compositor where the issue occurs.
options:
- Niri
- Hyprland
- Sway
- Scroll
- Labwc
- Mango
- Other
validations:
required: true
- type: dropdown
id: distribution
attributes:
label: Distribution
description: Select the Linux distribution family where the issue occurs.
options:
- Arch-based
- Fedora-based
- Debian-based
- Gentoo-based
- NixOS
- openSUSE-based
- Void
- Other
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment information
description: |
Please provide relevant system information:
If you selected `Other` for distribution and/or compositor, please specify the exact one(s) here.
- Noctalia version or commit:
- Installation method:
- GPU:
placeholder: |
Noctalia version: main / commit hash
Installation method: AUR
GPU: AMD RX 7800 XT (amdgpu)
render: text
validations:
required: true
- type: textarea
id: additional
attributes:
label: Additional context
description: |
Add any other context, screenshots, or relevant information here.
+7 -11
View File
@@ -1,12 +1,8 @@
blank_issues_enabled: false
issue_templates:
- name: "Bug Report"
description: "Report a bug in the system."
title: "[Bug]: "
labels: ["bug"]
body: "./ISSUE_TEMPLATE/bug_report.md"
- name: "Feature Request"
description: "Propose a new feature or improvement."
title: "[Feature]: "
labels: ["enhancement"]
body: "./ISSUE_TEMPLATE/feature_request.md"
contact_links:
- name: Noctalia Fluxer
url: https://fluxer.gg/Noctalia
about: Join the community for support, discussions, and quick help.
- name: Noctalia Docs
url: https://docs.noctalia.dev
about: Browse the documentation, guides, and frequently asked questions.
-20
View File
@@ -1,20 +0,0 @@
---
name: Feature Request
about: Suggest a new feature or improvement
title: ''
labels: feature
assignees: ''
---
### Feature Description
What feature would you like to see?
### Why Is This Needed?
Explain the problem or need for this feature.
### Suggested Solutions
Describe how this feature could be implemented.
### Additional Context
Add any relevant screenshots, links, or resources.
@@ -0,0 +1,92 @@
name: Feature Request
description: Suggest an improvement, new feature, or enhancement for Noctalia
title: "[FEATURE] "
labels: ["feature"]
assignees: [Ly-sec, ItsLemmy]
body:
- type: checkboxes
id: submission-checklist
attributes:
label: Submission checklist
description: Please confirm the following before submitting.
options:
- label: I have searched existing issues and confirmed this has not been requested before.
required: true
- label: I have checked existing pull requests for similar changes.
required: true
- type: dropdown
id: feature-type
attributes:
label: Feature type
description: What kind of feature or improvement is this?
options:
- UI / visual improvement
- New functionality
- Performance improvement
- Configuration / customization
- Accessibility improvement
- Developer / API improvement
- Integration support
- Documentation improvement
- Other
validations:
required: true
- type: textarea
id: summary
attributes:
label: Feature summary
description: A concise description of the feature or enhancement.
placeholder: What would you like to see added or changed?
validations:
required: true
- type: textarea
id: motivation
attributes:
label: Motivation / use case
description: |
Why would this feature be useful?
What problem does it solve or improve?
placeholder: Explain the benefit or real-world use case...
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: Proposed solution
description: |
Describe how you think this could work.
Mockups, examples, screenshots, or references are welcome.
placeholder: Describe your idea...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: |
Have you considered any alternative solutions or workarounds?
placeholder: Optional...
- type: textarea
id: references
attributes:
label: References / related projects
description: |
Link any related projects, concepts, screenshots, issues, or examples here.
placeholder: |
https://github.com/...
https://example.com/...
- type: textarea
id: additional
attributes:
label: Additional context
description: |
Add any additional information, screenshots, mockups, or context here.
+128
View File
@@ -0,0 +1,128 @@
name: Label Issue Metadata
on:
issues:
types: [opened, edited]
permissions:
contents: read
issues: write
jobs:
label-issue-metadata:
runs-on: ubuntu-latest
steps:
- name: Apply compositor and distribution labels from issue form
uses: actions/github-script@v7
with:
script: |
const issue = context.payload.issue;
const body = issue.body || "";
const issueNumber = issue.number;
const { owner, repo } = context.repo;
const extractValue = (heading) => {
const escapedHeading = heading.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const match = body.match(new RegExp(`^\\s*(?:###\\s*)?${escapedHeading}\\s*\\r?\\n+([^\\n\\r]+)`, "im"));
return match ? match[1].trim() : null;
};
const compositorValue = extractValue("Compositor");
const distributionValue = extractValue("Distribution");
const compositorLabelMap = {
"Niri": "compositor:niri",
"Hyprland": "compositor:hyprland",
"Sway": "compositor:sway",
"Scroll": "compositor:scroll",
"Labwc": "compositor:labwc",
"Mango": "compositor:mango",
"MangoWC": "compositor:mango",
"Other": "compositor:other"
};
const distributionLabelMap = {
"Arch-based": "distro:arch-based",
"Fedora-based": "distro:fedora-based",
"Debian-based": "distro:debian-based",
"NixOS": "distro:nixos",
"openSUSE-based": "distro:opensuse",
"Gentoo-based": "distro:gentoo",
"Void": "distro:void",
"Void-based": "distro:void",
"Other": "distro:other"
};
const mappings = [
{
kind: "compositor",
prefix: "compositor:",
selectedValue: compositorValue,
labelMap: compositorLabelMap,
description: "Issue reported for this compositor stack"
},
{
kind: "distribution",
prefix: "distro:",
selectedValue: distributionValue,
labelMap: distributionLabelMap,
description: "Issue reported for this Linux distribution family"
}
];
async function ensureLabelExists(name, description) {
try {
await github.rest.issues.getLabel({ owner, repo, name });
} catch (error) {
if (error.status !== 404) throw error;
await github.rest.issues.createLabel({
owner,
repo,
name,
color: "5319e7",
description
});
core.info(`Created missing label "${name}".`);
}
}
const existingLabels = issue.labels.map((label) => label.name);
for (const mapping of mappings) {
if (!mapping.selectedValue) {
core.info(`${mapping.kind} field not found in issue body; skipping.`);
continue;
}
const targetLabel = mapping.labelMap[mapping.selectedValue];
if (!targetLabel) {
core.info(`No ${mapping.kind} label mapping found for value: "${mapping.selectedValue}"`);
continue;
}
await ensureLabelExists(targetLabel, mapping.description);
const currentKindLabels = existingLabels.filter((name) => name.startsWith(mapping.prefix));
for (const label of currentKindLabels) {
if (label === targetLabel) continue;
try {
await github.rest.issues.removeLabel({
owner,
repo,
issue_number: issueNumber,
name: label
});
} catch (error) {
core.info(`Could not remove label "${label}": ${error.message}`);
}
}
await github.rest.issues.addLabels({
owner,
repo,
issue_number: issueNumber,
labels: [targetLabel]
});
core.info(`Applied ${mapping.kind} label "${targetLabel}" from value "${mapping.selectedValue}".`);
}
Generated
+6 -6
View File
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1776877367,
"narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
"lastModified": 1777954456,
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"type": "github"
},
"original": {
@@ -25,11 +25,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1777167795,
"narHash": "sha256-VHdtmxVX7oF2+FxYQQPARQmtaHw23FoTBiTaH6ucOEg=",
"lastModified": 1778377995,
"narHash": "sha256-uUzHDHqQF1rdVNiTa05L0mML3/d7fpbAShjCRWxbrBQ=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "697db4c14e27d841956ff76887fc312443e6fb17",
"rev": "d8327a723eed6dd9aebe8e0b162126f390e827df",
"type": "github"
},
"original": {