-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Find an alternative to pango/cairo for penrose_ui #272
Labels
enhancement
New feature or request
Comments
sminez
added a commit
that referenced
this issue
Jul 14, 2023
sminez
added a commit
that referenced
this issue
Jul 15, 2023
sminez
added a commit
that referenced
this issue
Jul 15, 2023
sminez
added a commit
that referenced
this issue
Jul 15, 2023
This is the diff needed to move my personal config over to the new API: sminez/my-penrose-config@0b9cb6b A clean release build of my window manager following the change then looks like this: ❯ make build && sudo make install
:: Rebuilding in release mode...
Compiling proc-macro2 v1.0.64
Compiling unicode-ident v1.0.10
Compiling quote v1.0.29
Compiling cfg-if v1.0.0
Compiling once_cell v1.18.0
Compiling libc v0.2.147
Compiling autocfg v1.1.0
Compiling serde v1.0.169
Compiling pkg-config v0.3.27
Compiling memoffset v0.7.1
Compiling syn v2.0.24
Compiling rustversion v1.0.13
Compiling tracing-core v0.1.31
Compiling heck v0.4.1
Compiling static_assertions v1.1.0
Compiling bitflags v1.3.2
Compiling nix v0.26.2
Compiling pin-project-lite v0.2.10
Compiling thiserror v1.0.41
Compiling x11rb v0.12.0
Compiling gethostname v0.3.0
Compiling x11 v2.21.0
Compiling yeslogic-fontconfig-sys v4.0.1
Compiling libloading v0.8.0
Compiling regex-syntax v0.6.29
Compiling x11rb-protocol v0.12.0
Compiling regex-syntax v0.7.3
Compiling tracing-attributes v0.1.26
Compiling strum_macros v0.25.1
Compiling strum v0.25.0
Compiling tracing v0.1.37
Compiling thiserror-impl v1.0.41
Compiling serde_json v1.0.100
Compiling lazy_static v1.4.0
Compiling penrose_keysyms v0.3.3 (/home/innes/repos/personal/penrose/crates/penrose_keysyms)
Compiling regex-automata v0.3.2
Compiling regex-automata v0.1.10
Compiling dlib v0.5.2
Compiling bitflags v2.3.3
Compiling anymap v0.12.1
Compiling const-cstr v0.3.0
Compiling log v0.4.19
Compiling ryu v1.0.14
Compiling itoa v1.0.8
Compiling overload v0.1.1
Compiling anyhow v1.0.71
Compiling nu-ansi-term v0.46.0
Compiling tracing-log v0.1.3
Compiling penrose v0.3.3 (/home/innes/repos/personal/penrose)
Compiling regex v1.9.1
Compiling matchers v0.1.0
Compiling sharded-slab v0.1.4
Compiling tracing-serde v0.1.3
Compiling thread_local v1.1.7
Compiling smallvec v1.11.0
Compiling penrose_ui v0.3.3 (/home/innes/repos/personal/penrose/crates/penrose_ui)
Compiling tracing-subscriber v0.3.17
Compiling penrose-sminez v0.2.0 (/home/innes/.config/penrose)
Finished release [optimized] target(s) in 1m 09s
:: Installing binaries...
:: Installing utility scripts...
:: Done
····················································· 1m 10s 08:14:36
❯ du -sh target
196M target |
This also reduces my resulting binary size from 8.4MB to 3.5MB 🎉 |
sminez
added a commit
that referenced
this issue
Jul 16, 2023
* #272 replacing usage of pango and cairo with xlib and fontconfig * #272 fixing text offset * #272 sorting out dependencies and feature flags * #272 adding missing build dep for CI * #272 simplifying TextStyle and making it Copy * #272 fixing broken doctests * simplifying method implementations for Color * ensuring that graphics state is cleaned up when status bars are recreated * adding safety comments and warn level linting for future missing safety comments * documenting the updated penrose_ui crate
Implemented in #274 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The pango and cairo dependencies brought in by penrose_ui account for massive amount of the dependency tree that we end up pulling in. Given that the UI of the status bar widgets is really quite minimal, it would be nice to find a more lightweight alternative if possible.
The text was updated successfully, but these errors were encountered: