The way the current layout looks, it could also fit nicely as blades in gnome-control-center too. Do you think we should go there, like Ubuntu has? Or is it too much extra work.
This indeed is the idea. But as Ubuntu devs stated there is too much work to achieve this. If there will be some standard interface to integrate third-party modules to Gnome Control Settings then MSM will be there just like KCMs for Qt version.
UPD: I still need someone with Glade skills to help me with GTK UI
uh… YES PLEASE! I love TUI programs!
I will. Thank you!
Btw, there is also mhwd-tui tui already integrated into bmenu, the official Manjaro cli main menu. It does kernel management and driver switching with mhwd.
All these comments and it’s obvious no one attempted to build it.
This fails to build in a clean chroot, FYI.
PKGBUILD critique:
- The pkgbase should be
msm-ng
. Look at thepamac
PKGBUILD for an example. -
msm-ng-gtk-git
is missing from the pkgname() array - The
_pkgver
variable is never used - No reason to specify
i686
in the arch() array, it’s not supported - Almost all the dependencies required to build are missing as they’re only specified in the individual package() functions (see PKGBUILD diff below)
-
nlohmann-json
is a missing dependency:
-- Checking for module 'nlohmann_json'
-- Package 'nlohmann_json', required by 'virtual:world', not found
- No need to create a build directory manually, see Cmake package guidelines: Specifying directories
- The pkgver() function should be first. I suppose it’s cosmetic, but it’s run before anything else.
- VCS packages need to provide and conflict with the main package (see PKGBUILD diff below)
.
PKGBUILD diff
❯ batdiff PKGBUILD-orig PKGBUILD
───────┬───────────────────────────────────────────────────────────────────────────────────
│ STDIN
───────┼───────────────────────────────────────────────────────────────────────────────────
1 │ --- PKGBUILD-orig 2020-10-12 17:36:07.974445603 -0600
2 │ +++ PKGBUILD 2020-10-12 17:25:49.631593916 -0600
3 │ @@ -1,54 +1,53 @@
4 │ -pkgbase=msm-ng-core
5 │ -pkgname=('msm-ng-core-git' 'msm-ng-qt-git')
6 │ -_pkgver=0.1
7 │ -pkgver=r17.0fe4570
8 │ +pkgbase=msm-ng
9 │ +pkgname=('msm-ng-core-git' 'msm-ng-qt-git' 'msm-ng-gtk-git')
10 │ +pkgver=r18.5ef0335
11 │ pkgrel=1
12 │ pkgdesc="Manjaro Settings"
13 │ -arch=('i686' 'x86_64')
14 │ +arch=('x86_64')
15 │ url="https://gitlab.com/LordTermor/msm-ng"
16 │ license=('GPL3')
17 │ -depends=('libsigc++')
18 │ +depends=('libsigc++' 'nlohmann-json' 'pamac-common' 'linux-driver-management'
19 │ + 'qt5-base>=5.15.0' 'qt5-quickcontrols2' 'qqc2-desktop-style'
20 │ + 'qt5-webengine' 'gtkmm3')
21 │ makedepends=('git' 'cmake')
22 │ -options=(!emptydirs)
23 │ +#options=('!emptydirs')
24 │ +source=('git+https://gitlab.com/LordTermor/msm-ng.git')
25 │ +sha256sums=('SKIP')
26 │
27 │ -source=("git+https://gitlab.com/LordTermor/msm-ng.git")
28 │ -sha256sums=(SKIP)
29 │ -
30 │ -prepare() {
31 │ - mkdir -p build
32 │ +pkgver() {
33 │ + cd msm-ng
34 │ + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
35 │ }
36 │
37 │ build() {
38 │ - cd build
39 │ - cmake -DCMAKE_INSTALL_PREFIX="/usr" ../msm-ng
40 │ - make
41 │ + cmake -B build -S msm-ng \
42 │ + -DCMAKE_INSTALL_PREFIX=/usr
43 │ + make -C build
44 │ }
45 │
46 │ package_msm-ng-core-git() {
47 │ pkgdesc="Manjaro Settings - core library"
48 │ + depends=('libsigc++' 'nlohmann-json' 'pamac-common' 'linux-driver-management')
49 │ + provides=("${pkgname%-git}" 'libmsm.so=libmsm.so-64')
50 │ + conflicts=("${pkgname%-git}")
51 │
52 │ - depends+=('pamac-common linux-driver-management')
53 │ -
54 │ - cd build/libmsm
55 │ - make DESTDIR="${pkgdir}" install
56 │ + make -C build/libmsm DESTDIR="$pkgdir" install
57 │ }
58 │ package_msm-ng-qt-git() {
59 │ pkgdesc="Manjaro Settings - Qt GUI"
60 │ + depends=('qt5-base>=5.15.0' 'qt5-quickcontrols2' 'qqc2-desktop-style'
61 │ + 'qt5-webengine' 'msm-ng-core-git')
62 │ + provides=("${pkgname%-git}")
63 │ + conflicts=("${pkgname%-git}")
64 │
65 │ - depends+=( 'qt5-base>=5.15.0' 'qt5-quickcontrols2' 'qqc2-desktop-style' 'qt5-w
│ ebengine' 'msm-ng-core-git')
66 │ -
67 │ - cd build/msm-qt
68 │ - make DESTDIR="${pkgdir}" install
69 │ + make -C build/msm-qt DESTDIR="$pkgdir" install
70 │ }
71 │ +
72 │ package_msm-ng-gtk-git() {
73 │ pkgdesc="Manjaro Settings - GTK GUI"
74 │ - depends+=('gtkmm3' 'msm-ng-core-git')
75 │ -
76 │ - cd build/msm-gtk
77 │ - make DESTDIR="${pkgdir}" install
78 │ -}
79 │ + depends=('gtkmm3' 'msm-ng-core-git')
80 │ + provides=("${pkgname%-git}")
81 │ + conflicts=("${pkgname%-git}")
82 │
83 │ -pkgver() {
84 │ - cd msm-ng
85 │ - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
86 │ + make -C build/msm-gtk DESTDIR="$pkgdir" install
87 │ }
───────┴───────────────────────────────────────────────────────────────────────────────────
The Qt version does not run as it can’t find pamac.conf
. It should be using /etc/pamac.conf
:
❯ MSM-ng-qt
** (process:1378242): WARNING **: 17:30:43.710: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.716: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.721: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.724: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.757: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.762: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.767: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.772: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
** (process:1378242): WARNING **: 17:30:43.776: pamac_config.vala:267: File '/etc/msm/pamac.conf' doesn't exist.
terminate called after throwing an instance of 'nlohmann::detail::parse_error'
what(): [json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal
zsh: abort (core dumped) MSM-ng-qt
The GTK version installed no files. I’ll have to do a little more digging.
Current PKGBUILD (subject to change).
-
Cinnamon does not offer locale configuration. Now, I don’t know if you will take it into account, as it is not a official flavour of Manjaro (unlike XFCE, KDE or GNOME). I wonder if you can do that on XFCE.
-
Hopefully we will still have a module to configure user accounts that allows to configure groups. Many DEs does not offer to configure user accounts at all, and those that does offer that feature are very limited on that aspect (generally just able to create/delete users and set it as “administrator” or not, but you can’t select groups individually).
-
In Date and Time, I like that it allowed you to enable/disable systemd-timesyncd and also configure if the OS has to consider the hardware clock as local time or UTC time. Although you could create a “Miscellaneous configurations” module where you could put various little tweaks like that. It could also include an option like “Mute PC speaker” (which would add a “blacklist pcspkr” in /etc/modprobe.d) to deal with the few PCs that still have a PC speaker screeching loudly.
It looks pretty cute and promising.
It’s just a draft but yes I didn’t tested it in a clean chroot (both building and running) so I just forgot to add some things
Because it’s non functional for now and install directive needs to have resource creation in CMake first.
There is no base package for now so I just dropped it.
MSM will use separate pamac.conf
from /etc/msm
but it’s not the reason of crash. I forgot to put .json with language packages to install
directive. Will fix it now.
Many thanks!
The idea of this was not to show duplicated modules if they are present in default DE settings. They will be implemented and can used anywhere but later. So I’m open to ideas how to make it better. “Misc” module looks promising for example.
Indeed, this is what I understood. However, not all DE are created equally. XFCE does not offer to configure locale and user accounts (I have just check that right now) at all, unlike KDE or GNOME, for example. So even if you stick solely on official editions of Manjaro, you might have to create modules later on that will duplicate (partially or totally) functionalities because a DE doesn’t have the feature included.
Of course, you might prioritize some features than others right now. I am thinking more in long term.
Miscellaneous module mockup (PulseAudio settings should be moved to the separate module ideally but it’s just a mockup after all)
Feature Request
On the left side, add an item to execute the Desktop Settings (i.e., xfce4-settings-manager), so the user can always start with MSM and get to all settings without revisiting the main menu to find and open the Desktop Settings. This would go along with your tight integration philosophy.
GUI component speaking-wise, how do you refer to the left side? Is it a panel and “Hello” is an item or link?
MSM modules will be integrated to DE settings (for now only for XFCE and KDE, GNOME later).
Panel (or side menu) and item, yes.
Cool! Thanks.
Hi!!
I would like to suggest, if it’s possible, including a tool similar to gnome-firmware:
It could be really useful…
Regards.
Linux Driver Management module is still in planning state but I think it should perfectly fit there.
Disabling pcspkr feature added to git