Commit Graph

49 Commits

Author SHA1 Message Date
grialion
b3c8d3cbea feat: exec parser for desktop entries (#78)
Feature-rich Exec= parser implementation for .desktop files
* backslash stripping (e.g '\ ' -> ' ')
* percentage stripping (e.g '%u' -> '', '%%' -> '%')
* quote string handling (e.g 'arg1 "arg 2"' -> "arg1", "arg 2")
The current implementation strips all "percentage codes", instead
of handling them.
Argument count is limited at 100.

---------

Co-authored-by: javalsai <jvssxxi@gmail.com>
2025-08-26 21:19:25 +02:00
5761838112 redo of #69 (#75)
* fix(pkg,aur): sources now are version unique

* build: allow to override git-rev and timestamp build info

* chore: organize and parallelize some checks

* chore: make standard PKGBUIDLs

* pkg(aur): `-bin` only has to depend on the `.so` file

* pkg(feat,aur): multiarch `-bin` pkg

* ci(void): update xbps first, add warning

* pkg(aur): bump pkgrels

* pkg(aur): pkgrel again AND `.SRCINFO` finally

---------

Co-authored-by: grialion <48643945+grialion@users.noreply.github.com>
2025-08-23 00:43:33 +02:00
7e1ec83c7f version: bump to v1.2.3 2025-07-20 21:53:47 +02:00
4a1b868b8e docs: linter & packagers guide & chores (#64)
add prettier, move most markdown into `docs/` and add a packagers guide

---

* lint(md): add prettier

* docs(packagers): add a guide

* docs(correctness): Index -> ToC

* docs: link to package maintainers guide

* docs: move install docs to `./docs`

* docs(fix): typo
2025-07-16 18:13:12 +02:00
3d993c6260 version: bump 1.2.1 -> 1.2.2 2025-07-09 19:54:12 +02:00
6cac2f91ed fix: neccessary code changes for nix 2025-07-06 04:21:49 +02:00
3ad16d3a3c fix: Makefile 2025-07-05 20:16:40 +02:00
df6a565874 release: v1.2.1 2025-07-05 19:01:55 +02:00
6384a94f61 pkg(Makefile): make services packaging easier 2025-07-05 18:27:29 +02:00
56e8897565 fix(Makefile): wrong path 2025-07-05 18:23:05 +02:00
f67e30991a fix(Makedile): proper service install recipes
update docs too
2025-07-05 17:53:53 +02:00
grialion
e8a9e57af9 fix(Makefile): comprehensive runit installation 2025-07-05 15:19:39 +02:00
31c3ad6d42 fix(Makefile): duplicated s6 install 2025-07-05 14:52:13 +02:00
a00a73756c fix: support /etc/sv/ and /etc/<init>/sv 2025-07-05 14:50:43 +02:00
grialion
51c12eefdc fix: makefile rsync dependency, runit installation 2025-07-05 11:16:02 +02:00
7f75b8edce fix: allow building without a git repo 2025-07-04 22:40:23 +02:00
3d6efa448b ci: update make release action 2025-07-04 19:12:45 +02:00
521a7c295e rm: unused Makefile flags 2025-07-04 16:39:29 +02:00
19a1355b06 dev: automatic version.h generation
also added compiler information as a feature
2025-07-04 15:22:22 +02:00
grialion
3ec1eec56f fix: git describe always (even in CI build)
use --always to make it work on shallow cloned repos (ie. CI build job)
2025-07-04 00:40:10 +02:00
grialion
afd23657c0 feat: help, version menu 2025-07-04 00:15:14 +02:00
rmntgx
d9a1bb1e68 fix: made it simplier 2025-06-25 18:05:50 +05:00
rmntgx
8d24924e59 fix: do not overwrite theme 2025-07-02 14:18:46 +05:00
rmntgx
4a83e5d825 feature: saving previous selection 2025-06-29 10:20:00 +05:00
ecfd413108 dev: add make script for pre-commit'ing 2025-06-21 01:30:01 +02:00
787b412005 feat: utf8 support & partial ui.c refactor 2025-06-20 21:31:49 +02:00
7db89e973d debug: add a logging module 2025-06-11 16:47:16 +02:00
22c3f7c896 feat|perf: generic&efficient desktop&config parser 2025-06-10 23:44:09 +02:00
rmntgx
d13ebfff4e fix: removed unnecessary libraries 2025-06-10 23:35:35 +02:00
Robin Candau
5d298ea6d8 Don't compress man page(s) in Makefile
Compressing man pages is a distribution / user preference that should be handled on the packaging side of things.

Indeed, compressing man pages by default imposes a compression algorithm / level whereas most package managers handle that already and eventually allow users to choose or customize them if wanted.

Additionally, it can lead to unexpected side effects. For instance, gzip is recording timestamps in metadata by default, which prevents [reproducible builds](https://reproducible-builds.org/):

```
==> ERROR: Package is not reproducible
--- lidm-0.2.0-1-any.pkg.tar.zst
+++ ./build/lidm-0.2.0-1-any.pkg.tar.zst
├── lidm-0.2.0-1-any.pkg.tar
│ ├── file list
│ │ @@ -1,9 +1,9 @@
│ │  -rw-r--r--   0 root         (0) root         (0)     5391 2025-03-10 12:01:53.000000 .BUILDINFO
│ │ --rw-r--r--   0 root         (0) root         (0)      488 2025-03-10 12:01:53.000000 .MTREE
│ │ +-rw-r--r--   0 root         (0) root         (0)      492 2025-03-10 12:01:53.000000 .MTREE
│ │  -rw-r--r--   0 root         (0) root         (0)      427 2025-03-10 12:01:53.000000 .PKGINFO
│ │  drwxr-xr-x   0 root         (0) root         (0)        0 2025-03-10 12:01:53.000000 etc/
│ │  -rw-r--r--   0 root         (0) root         (0)      930 2025-03-10 12:01:53.000000 etc/lidm.ini
│ │  drwxr-xr-x   0 root         (0) root         (0)        0 2025-03-10 12:01:53.000000 usr/
│ │  drwxr-xr-x   0 root         (0) root         (0)        0 2025-03-10 12:01:53.000000 usr/bin/
│ │  -rwxr-xr-x   0 root         (0) root         (0)    39656 2025-03-10 12:01:53.000000 usr/bin/lidm
│ │  drwxr-xr-x   0 root         (0) root         (0)        0 2025-03-10 12:01:53.000000 usr/share/
│ ├── .MTREE
│ │ ├── .MTREE-content
│ │ │ @@ -7,10 +7,10 @@
│ │ │  /set mode=755
│ │ │  ./usr time=1741608113.0 type=dir
│ │ │  ./usr/bin time=1741608113.0 type=dir
│ │ │  ./usr/bin/lidm time=1741608113.0 size=39656 sha256digest=1a27eef50f6caf35d408f7650c362dea788c7a00a2736f0ec4c94ecd38ae6c6f
│ │ │  ./usr/share time=1741608113.0 type=dir
│ │ │  ./usr/share/man time=1741608113.0 type=dir
│ │ │  ./usr/share/man/man1 time=1741608113.0 type=dir
│ │ │ -./usr/share/man/man1/lidm.1.gz time=1741608113.0 mode=644 size=615 sha256digest=7babc0d1e7d84c3ff18db5ea327313cdbe2ba1117c33d733622a916dfd9d8d0e
│ │ │ +./usr/share/man/man1/lidm.1.gz time=1741608113.0 mode=644 size=615 sha256digest=497e49b75ab0d2c3f3edb70967bf189724990c46df23492738254395ec835d8c
│ │ │  ./usr/share/man/man5 time=1741608113.0 type=dir
│ │ │ -./usr/share/man/man5/lidm-config.5.gz time=1741608113.0 mode=644 size=1374 sha256digest=d0b54c3117c417dfdc43a7629f26cf4c64235742f698a0498722a03a4d1c25c2
│ │ │ +./usr/share/man/man5/lidm-config.5.gz time=1741608113.0 mode=644 size=1374 sha256digest=4e16649cb31029b039a594ffa2f2d4d8a624917aaacc865836c5c2d2a92cd3e4
│ ├── usr/share/man/man1/lidm.1.gz
│ │ ├── filetype from file(1)
│ │ │ @@ -1 +1 @@
│ │ │ -gzip compressed data, was "lidm.1", last modified: Mon Mar 10 12:01:59 2025, from Unix
│ │ │ +gzip compressed data, was "lidm.1", last modified: Mon Mar 10 12:15:51 2025, from Unix
│ ├── usr/share/man/man5/lidm-config.5.gz
│ │ ├── filetype from file(1)
│ │ │ @@ -1 +1 @@
│ │ │ -gzip compressed data, was "lidm-config.5", last modified: Mon Mar 10 12:01:59 2025, from Unix
│ │ │ +gzip compressed data, was "lidm-config.5", last modified: Mon Mar 10 12:15:51 2025, from Unix
```

See https://cmpct.info/~sam/blog/posts/automatic-manpage-compression/ for detailed rational.
2025-03-10 13:16:07 +01:00
69ee14ff92 ci(feat): add aarch64 build 2024-09-06 22:05:08 +02:00
6d3c3cbb57 feat: add s6 suport 2024-09-04 20:36:50 +02:00
2fb0e0e0de oops: add openrc install detection 2024-09-04 20:30:41 +02:00
ae4e4df7cd feat: add openrc support 2024-09-04 19:40:49 +02:00
grialion
b4fbe68542 fix: Makefile paths on Nix
Makefile installed the binary as /bin instead of copying it to the

folder which was not present.

Also use PREFIX for man pages too.
2024-09-04 17:14:43 +02:00
9de4551f4c feat: add manpages and improve service docs 2024-09-04 16:12:47 +02:00
50c251318a feat: add runit support 2024-09-03 20:33:47 +02:00
2ccfc039d5 fix: unexpected remove on make clean
idk how that ended up there 👀, nobody saw nothing
2024-08-29 16:49:00 +02:00
grialion
528c4538c7 fix(Makefile): use DESTDIR and PREFIX paths 2024-08-24 15:58:18 +02:00
grialion
e745b27a68 feat(chvt): use custom implementation instead of system()
Calling system() is vulnerable and shouldn't be used.
2024-08-06 17:11:18 +02:00
09ce3ef149 feat: add make uninstall script 2024-07-27 22:56:16 +02:00
dcaab5a782 feat: allow add CFLAGS to make 2024-07-26 20:38:27 +02:00
a32e4a577f feat: add dinit support 2024-07-26 16:40:46 +02:00
DeaDvey
a15b49ec24 detects if systemd is there 2024-07-26 04:15:11 +01:00
0955b115e6 do config :) 2024-07-14 21:44:08 +02:00
f9bfc48a9f spain's gonna win btw 🇪🇸 2024-07-14 20:21:17 +02:00
6b2d76c9b8 all: at this point just read readme 😭
spaghetti code
equivalent spaghetti readme
spaghetti commit (wait no, this is actually descriptive)
2024-07-13 12:19:02 +02:00
07d2842be0 feat: add users and sessions discovery
- also add clangd multi-file intellisense
2024-07-10 23:25:50 +02:00
4d8faa5b5f init structure 2024-07-10 16:42:25 +02:00