Other Amazing Fvwm CDE clone!

Anyone tried this? It required a bit of editing of some files, mainly to use PyQt5 instead of PyQt4 since that is no-longer available, some resulting syntax changes, some symlinking and installation of some dependencies that were not listed in the INSTALL instructions but I find it works OK. I can't get the workspace switcher to work so you don't get the buttons in the middle of the panel (unless someone can figure it out) but the dev said that even though this is made for Linux it has been tested on FreeBSD. It looks almost pixel for pixel like CDE with the added bonus of being able to use fullscreen and xft fonts.

NsCDE install instructions for FreeBSD

NsCDE github

Requirements:
Fvnm built from source: Fvwm github
The workspace switcher does not work with Fvwm from pkg/ports

Dependencies:
Code:
ksh93
xorg
xdotool
ImageMagick6
xscreensaver
py36-yaml
py36-qt5
qt5ct
qt5-style-plugins
open-motif
stalonetray
xterm
python36
python27 (some scripts needs this)
py36-xdg
libstroke
p5-File-Mimeinfo
gkrellm2 (optional but a very useful system monitor)

Install Fvwm:
(uninstall existing fvwm if you have it)
Code:
git clone https://github.com/fvwmorg/fvwm.git
cd fvwm
./autogen.sh
make
sudo make install

Install dependencies:
Code:
sudo pkg install ksh93 xorg xdotool ImageMagick6 xscreensaver py36-yaml py36-qt5 qt5ct qt5-style-plugins open-motif stalonetray xterm python36 py36-xdg libstroke p5-File-Mimeinfo gkrellm2

Get NsCDE:
Code:
git clone https://github.com/NsCDE/NsCDE.git

Install NsCDE:
Code:
cd
sudo mkdir /opt
cd NsCDE
cp -rp NsCDE /opt

Create symlinks for NsCDE, python and ksh binaries (WARNING, you may have to redo these if there's a system upgrade. This is easier than editing all the shebang in every script in my opinion and causes no problems):
Code:
sudo -i
ln -s /opt/NsCDE/bin/nscde /usr/local/bin/nscde && ln -s /usr/local/bin/ksh93 /bin/ksh && ln -s /usr/local/bin/python3.6 /usr/local/bin/python3 && ln -s /usr/local/bin/python3.6 /usr/bin/python3 && ln -s /usr/local/bin/python2.7 /usr/local/bin/python && ln -s /usr/local/bin/python2.7 /usr/bin/python
exit

If you want to edit the files you can use a command like this:

Code:
find . -type f -name "*" -print0 | xargs -0 sed -i.bak 's/bin\/ksh/usr\/local\/bin\/ksh93/g'

Set the QT_QPA_PLATFORMTHEME environment variable in your shell's profile:
Code:
export QT_QPA_PLATFORMTHEME="qt5ct"
Log out and then log in for this to take effect.

Set your $TERM variables as well if not set already.

FIXES for FreeBSD:

1) For the application menu to work, you have to edit /opt/NsCDE/libexec/nscde-fvwm-menu-desktop and change the paths from /etc/xdg/menus to /usr/local/etc/xdg/menus:


Code:
sudo -i
sed -i.bak 's/\/etc\/xdg\/menus/\/usr\/local\/etc\/xdg\/menus/g' /opt/NsCDE/libexec/nscde-fvwm-menu-desktop
exit

2) To get the clock to show on the panel, use the provided FreeBSD compiled version in the src folder:
Code:
cd
sudo cp /opt/NsCDE/pclock-0.13.1/pclock-bin.FreeBSD-12 /opt/NsCDE/bin/pclock

3) If you decided to use the gkrellm2 system monitor, to get the theme changer to work with that, copy the necessary files as follows:
Code:
cd
mkdir -p .NsCDE/libexec && mkdir -p .gkrellm2/themes/NsCDE
cp /opt/NsCDE/share/doc/examples/colormgr.local.example .NsCDE/libexec/colormgr.local
cp -rp /opt/NsCDE/share/doc/examples/Gkrellm ~/.gkrellm2/themes/NsCDE

4) Finally create an .xinitrc to launch nscde. I choose to use a separate one from my other wms:
Code:
cd
echo $'#!/bin/sh \nexec nscde' > .xinitrc

5) Exit your wm and launch:
Code:
startx

or

Code:
xinit ~/.xinitrc (or whatever name you chose if you made a separate xinitrc)

If the wm loads successfully you will be greeted with a terminal that will run the first launch setup. Follow the instructions, logout and then log back in.

KNOWN ISSUES:

1) When you change the colors using the style manager you may not be able to logout of the wm. Go into another console (Ctrl+Alt+F2), log in and then kill X.

2) This window manager doesn't really work too well with a multimonitor setup. The panel will load halfway between the first and second monitor. Follow this workaround:

Code:
cd
cp /opt/NsCDE/config/NsCDE-FrontPanel.conf ~/.NsCDE

And edit this line...
Code:
PipeRead 'echo "*FrontPanel: Geometry 1015x79+$(($[vp.width] / 2 - 1019 / 2 - 2))-0"'

...To a geometry that is in the centre of the screen you want. For example, on my monitor:
Code:
PipeRead 'echo "*FrontPanel: Geometry 1015x79+777-0"'

3) When you edit some settings using the Style Manager your changes may not stick. It is best to copy the relevant config files from /opt/config to your ~/.NsCDE folder and edit from there. For a detailed explanation of the config files see this link that is provided in your installation or click on the icon with the question mark:

file:///opt/NsCDE/share/doc/html/NsCDE-Configuration-Files.html

4) The developer updates this on almost a daily basis. Keep checking the Github link for commits. This may fix some issues you may have. Follow the steps over again if any of your config files have been updated.

5) To diagnose errors launch NsCDE like this. it will create a file named "error" in your home directory that you can have a look at yourself:
Code:
xinit ~/.xinitrc.nscde > error 2>&1

6) Some of the buttons on the panel do nothing or don't work. The icon installer doesn't work for me either. The best way to edit this is to copy the relevant config file from /opt/NsCDE/config to your ~/.NsCDE folder and edit. NsCDE will read the configs in ~/.NsCDE first before it reads the ones in /opt/NsCDE/config

7) Desktop compositing can be hit or miss. Compton can be a problem. There is a custom compton.conf located in the /opt/NsCDE/share/doc/examples/compton-integration folder. I find the only thing that doesn't work is opengl compositing especially vsync. It will cause your desktop background to become distorted. As always, your mileage may vary.

Enjoy an up-to-date Common Desktop Environment in FreeBSD!:D:cool:
 

Attachments

  • 2019-09-05-06-00_4480x1080.jpg
    2019-09-05-06-00_4480x1080.jpg
    1.3 MB · Views: 828
Last edited:
Looks interesting! But since Im from Germany I have an abversion to use something with a 'NS' string or abbreviation in its name ..
 
To get back on topic, I should mention that the dev is updating this constantly with daily (sometimes hourly) commits. :D
 
Just a heads up, you have to build fvwm from source to get the workspace manager to work properly.
 

Attachments

  • 2019-08-24-01-00_4480x1080.jpg
    2019-08-24-01-00_4480x1080.jpg
    531.9 KB · Views: 777
Is it works if build x11-wm/fvwm2 and than use files from the github?
Thank you.

Yeah but the four buttons in the middle (the workspace manager) won't show up for some reason. To get them to work, build fvwm from source and then use the git hub files. By the way, the theme generating Python scripts will need some editing to work properly with pyqt5. You also might want to symlink the Python executables and the ksh executables according to the shebangs in the libexec files. Oh yeah, there's a pclock build for freebsd located in the share folder. Rename that and put it in the bin folder overwriting the original.
 
Yeah but the four buttons in the middle (the workspace manager) won't show up for some reason. To get them to work, build fvwm from source and then use the git hub files. By the way, the theme generating Python scripts will need some editing to work properly with pyqt5. You also might want to symlink the Python executables and the ksh executables according to the shebangs in the libexec files. Oh yeah, there's a pclock build for freebsd located in the share folder. Rename that and put it in the bin folder overwriting the original.
It is very interesting but it is to difficult to me for now.
I start to learning settings with ILUXA] config.
 
It is very interesting but it is to difficult to me for now.
I start to lear settings with ILUXA] config.

I fixed it by looking at the error messages it gave me and fixing those errors one by one. Over the weekend I'll have a look at the changes I made and them come back with better instructions. :)
 
Anyone tried this? It required a bit of editing of some files, mainly to use PyQt5 instead of PyQt4 since that is no-longer available, some resulting syntax changes, some symlinking and installation of some dependencies that were not listed in the INSTALL instructions but I find it works OK. I can't get the workspace switcher to work so you don't get the buttons in the middle of the panel (unless someone can figure it out) but the dev said that even though this is made for Linux it has been tested on FreeBSD. It looks almost pixel for pixel like CDE with the added bonus of being able to use fullscreen and xft fonts.
How is it going with the consumption of RAM memory and processes? What is some port and binary package?

fernandel said:
Is it works if build x11-wm/fvwm2 and than use files from the github?
Thank you.
What's the link to that github file?
 
How is it going with the consumption of RAM memory and processes? What is some port and binary package?


What's the link to that github file?

There is no port. I am still very new to FreeBSD so I haven't learned to make a port yet but this weekend I will have a look at the changes I made to get it to work and go from there by making patches. The RAM and CPU consumption is very low and it performs as well as one would expect Fvwm to. :)

The link for fvwm source is here: https://github.com/fvwmorg/fvwm/releases
 
There is no port. I am still very new to FreeBSD so I haven't learned to make a port yet but this weekend I will have a look at the changes I made to get it to work and go from there by making patches. The RAM and CPU consumption is very low and it performs as well as one would expect Fvwm to. :)

The link for fvwm source is here: https://github.com/fvwmorg/fvwm/releases
What will be the procedure to install from the source?
 
We have in x11-wm/fvwm2 version 2.6.8_4
which is IMO the same as version in github. Are there any difference, please? Is to have KornShell must?
Thank you.
 
Last edited:
We have in [PMAN=]x11-wm/fvwm2[/PMAN] version 2.6.8_4
which is IMO the same as version in github. Are there any difference, please? Is to have KornShell must?
Thank you.

Yeah. I don't understand why but for some reason, the workspace manager simply will not work if you install fvwm from ports. So the four buttons in the middle of the panel will not load. Thankfully, Fvwm from github works perfectly on my machine.

And yes ksh is a MUST or else many of the scripts will not work. You will have to symlink the ksh93 binary to /bin/ksh

Let me know if you need more help.
 
Hello there. NsCDE author here.

Thanks for trying NsCDE. In august, FreeBSD support was still theoretical, that is, without testing, since I was not able to get Xorg serve to work on FreeBSD on KVM/libvirt/qemu virtualization on CentOS 7 where I develop. Solution was to recompile the whole Xorg+deps from ports with gcc instead of clang, so I got at least Xspice to work for remote session.

To be known: this same clang compiler is the main cause of Workspace Manager not working. Looks like it miscompiles FvwmScript module engine in which WSM is written. When recompiled from ports with gcc, it works ok - it is not up to FVWM version because this part of code didn't changed in recent times.

Now, when I have working FreeBSD system, support is MUCH better. NsCDE now has a installer Installer.ksh which will adapt installation according to FVWM if it is pathced for NsCDE or not, according to OS type etc. All dependencies are now checked by default, but on FreeBSD symlinks for ksh93 -> ksh and python3.6 -> python3 made manually are still precondition.

Korn Shell: most of the scripts expects to find it as /bin/ksh. Not just mine. All tested Linux distros have it, including Solaris 10 and 11. FreeBSD doesn't symlink it.

Python 3: Again, all tested systems, wheater they use Python 3.6, 3.4 or whatever minor version, are symlinking to general name "python3". Arch Linux even have "python" for Python 3.7 and still "python3" symlink on it, while Python 2 is "python2" and "python2.7". There is no matter where you put this symlink, since all Python programs and scripts are now called with "#!/usr/bin/env python3".

Most of the GUI tools and scripts will not work if there is no GNU sed on the system. So, "pkg install gsed". This dependency is due to use of exteded regexps for which I throught they are common while they are not. For now, it is too much of references to rewrite it, I want to make 1.0 soon. "ised" wrapper will recognize gsed on FreeBSD and Solaris and use it automatically.

From other new things, i can emphasise:

- PyQt5 support(PyQt4 still recognized and handled in try..except"
- Installer - NsCDE can now be installed in any path, not just /opt/NsCDE if wanted by user.
- Read new INSTALL
- Python 2 dependency removed. Everything from Python is now Python3-safe.
- Front Panel clock is now automatically choosen and even atempted to be compiled if binary for some other platform is missing.
- Front Panel arrows as pixmaps on unpatched FVWM
- XOverrideFontCursor.so LD_PRELOADED will remove silly XC_hand2 cursor from PushButton widgets in FvwmScript without need for recompilation. This is specially visible in Workspace Manager.
- Extended libexec/nscde_setup wich asks for X editor, File Manager and some additional functionality such as visual pager, page history, stalonetray, xsettingsd ...
- NsCDE/libexec/nscde-fvwm-menu-desktop is now automatically patched on FreeBSD for XDG menu paths.
- Lots of small fixes.
 
Many FreeBSD portability issues solved, new cmd nscde_sleep for microsecond sleep in python to replace usleep tool from Linux.

Now all style managers should work, no more garbage created, Subpanel Settings, Occupy Workspace ... all fixed.

Latest commit on GtHub is labeled 1.0rc9, but not yet released.
 
In your instructions, you have us create symlinks for /opt... to /usr/local... I was reading over the info on the NsCDE git page and they say that you can set the NSCDE_ROOT in NsCDE/NsCDE/bin to something else (like /usr/local/etc) instead of /opt/NsCDE.

I am still building dependencies and when those finish, I'll try your instructions and let you know how it goes. Looks pretty straight forward, and I really like the old CDE, so this will be a nice treat if it works :)
 
In your instructions, you have us create symlinks for /opt... to /usr/local... I was reading over the info on the NsCDE git page and they say that you can set the NSCDE_ROOT in NsCDE/NsCDE/bin to something else (like /usr/local/etc) instead of /opt/NsCDE.

I am still building dependencies and when those finish, I'll try your instructions and let you know how it goes. Looks pretty straight forward, and I really like the old CDE, so this will be a nice treat if it works :)

Hey, you don't have to follow these installation instructions anymore. NsCDE installs automatically now. Just download the dependencies, clone the git repo, enter that directory and then run:
Code:
./Installer.ksh -w -i (or ./Installer.ksh -f -i)

Alternatively you can follow the official instructions:

Code:
$ su - (or sudo -i)
     # umask 0022
     # cd /tmp
     # wget https://github.com/NsCDE/NsCDE/archive/<version>.tar.gz
     # tar xpzf <version>.tar.gz
     # cd NsCDE-<version>
     # ./Installer.ksh -w -i (or ./Installer.ksh -f -i)

     ... and optionally:

     # cd /usr/local/bin (or cd /usr/bin)
     ln -s /opt/NsCDE/bin/nscde

 
Back
Top