Skip to content

Commit 207e611

Browse files
Andrew Wongoutfoxxed
authored andcommitted
guix: add guix package definition
This allows the repository to be used as a channel. It can also be used to enter a development/trial shell.
1 parent 1a20c39 commit 207e611

File tree

3 files changed

+91
-0
lines changed

3 files changed

+91
-0
lines changed

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@ indent_size = 2
1313
[*.{yml,yaml}]
1414
indent_style = space
1515
indent_size = 2
16+
17+
[*.scm]
18+
indent_style = space

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,20 @@ It is not managed by us and should be looked over before use.
7878

7979
[Fedora COPR package]: https://copr.fedorainfracloud.org/coprs/errornointernet/quickshell
8080

81+
## Guix
82+
This repo works as a channel. Add the following to your channel list:
83+
84+
```scheme
85+
(channel
86+
(name quickshell)
87+
(url "https://git.outfoxxed.me/outfoxxed/quickshell")
88+
(branch "master"))
89+
```
90+
91+
Then, you can install the package via `guix install quickshell-git` or by adding `quickshell-git` to your system or home definition.
92+
93+
You can also clone the repository and use `guix shell -f quickshell.scm` to try out the package.
94+
8195
## Anything else
8296
See [BUILD.md](BUILD.md) for instructions on building and packaging quickshell.
8397

quickshell.scm

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
(define-module (quickshell)
2+
#:use-module ((guix licenses) #:prefix license:)
3+
#:use-module (gnu packages cpp)
4+
#:use-module (gnu packages freedesktop)
5+
#:use-module (gnu packages gcc)
6+
#:use-module (gnu packages gl)
7+
#:use-module (gnu packages jemalloc)
8+
#:use-module (gnu packages linux)
9+
#:use-module (gnu packages ninja)
10+
#:use-module (gnu packages pkg-config)
11+
#:use-module (gnu packages qt)
12+
#:use-module (gnu packages vulkan)
13+
#:use-module (gnu packages xdisorg)
14+
#:use-module (gnu packages xorg)
15+
#:use-module (guix build-system cmake)
16+
#:use-module (guix download)
17+
#:use-module (guix gexp)
18+
#:use-module (guix git-download)
19+
#:use-module (guix packages)
20+
#:use-module (guix packages)
21+
#:use-module (guix utils))
22+
23+
(define-public quickshell-git
24+
(package
25+
(name "quickshell")
26+
(version "git")
27+
(source (local-file "." "quickshell-checkout"
28+
#:recursive? #t
29+
#:select? (or (git-predicate (current-source-directory))
30+
(const #t))))
31+
(build-system cmake-build-system)
32+
(propagated-inputs (list qtbase qtdeclarative qtsvg))
33+
(native-inputs (list ninja
34+
gcc-14
35+
pkg-config
36+
qtshadertools
37+
spirv-tools
38+
wayland-protocols))
39+
(inputs (list cli11
40+
jemalloc
41+
libdrm
42+
libxcb
43+
libxkbcommon
44+
linux-pam
45+
mesa
46+
pipewire
47+
qtbase
48+
qtdeclarative
49+
qtwayland
50+
vulkan-headers
51+
wayland))
52+
(arguments
53+
(list #:tests? #f
54+
#:configure-flags
55+
#~(list "-GNinja"
56+
"-DDISTRIBUTOR=\"In-tree Guix channel\""
57+
"-DDISTRIBUTOR_DEBUGINFO_AVAILABLE=NO"
58+
;; Breakpad is not currently packaged for Guix.
59+
"-DCRASH_REPORTER=OFF")
60+
#:phases #~(modify-phases %standard-phases
61+
(replace 'build
62+
(lambda* (#:key parallel-build? #:allow-other-keys)
63+
(invoke "cmake" "--build" ".")))
64+
(replace 'install
65+
(lambda _ (invoke "cmake" "--install" "."))))))
66+
(home-page "https://quickshell.outfoxxed.me")
67+
(synopsis "QtQuick-based desktop shell toolkit")
68+
(description
69+
"Quickshell is a flexible QtQuick-based toolkit for creating and
70+
customizing toolbars, notification centers, and other desktop
71+
environment tools in a live programming environment.")
72+
(license license:lgpl3)))
73+
74+
quickshell-git

0 commit comments

Comments
 (0)