AlessandroSangiuliano / uroswm

A Window Manager written in objective-c
MIT License
7 stars 2 forks source link

Please add instructions on how to use #2

Closed probonopd closed 3 years ago

probonopd commented 4 years ago

Hello @AlessandroSangiuliano. Thank you for uroswm, it is definitely a great step to bring GNUstep out of the 80s visually.

I am trying to get it to work on FreeBSD. (and eventually produce a Live ISO that comes with it out of the box). This is what I am currently getting:

image

Do you have any idea what might be causing this?

Overall, can you please give some instructions on which software from which repositories need to be compiled and installed, and how this all has to be launched in a start script, to get the result shown here:

Thanks a ton.

AlessandroSangiuliano commented 4 years ago

Hello, this problem is the one I'm working on by 4 days. This is happening actually only with GNUstep because it is doing some offset recalculation and I'm wronging the way on how to say to GNUstep back "Hey -back, these are the right datas to do your calculation stuff"

Be patience, uroswm actually is an early realease, 0.0.2, this means problems like this are normals to be encountered until a stable relese. However I'm happy if people start to use uroswm and reporting issues here.

Actually I'm talking and collaborating with an awesomewm developer to understand which datas and how GNUstep wants to do the recalculation!

After getting full GNUstep support, I'll do a XCBKit and uroswm release.

Actually there aren't so many instructions on how to use it, it's not something special, but something simple to use.

You build it following the instructions and the dependencies I wrote.

Is a reparenting floating wm, so you can move the windows on the desktop with the mouse.

The next step will be, sooner or later, add the support for docking icons.

Rember the uroswm is really early version (0.0.2) and lacks many features and some standars.

Have fun playing with it.

If you know X11 experts developer that could solve ths annoying problem before me, just link the code to them and inform me about that so I can help explaining the code.

Additionally: The second image you did post here, is not uroswm but GNUstep handling windowing by itself, with the rik.theme. About rik.theme. Actually I'm the co-author and the main developer of the rik.theme. It needs some "love" to be updated to libobjc2 v2, this will happen after uroswm will be more stable and usefull.

EDIT: https://github.com/AlessandroSangiuliano/XcbKit These are the instructions you need. I will put them also in the uroswm repo.

Remember to follow and start both projects

probonopd commented 4 years ago

Hi @AlessandroSangiuliano thanks for your quick response.

Yes, I figured out that I need XcbKit and the Rik theme. This is what I am using - am I doing it wrong?

#!/usr/bin/env bash

# This script is executed on the build host
# at the time when the image is created. This is just a temporary script
# until the software below is available in pkg

HERE=$(readlink -f .)

# $uzip holds the path to the filesystem this needs to be installed in (as part of the Live ISO creation process)
if [ -z "${uzip}" ] ; then
 echo "\$uzip missing. Exiting"
fi

pkg install -y git gmake gnustep-make gnustep

. /usr/local/GNUstep/System/Makefiles/GNUstep.sh

cd /tmp

REPOS="BertrandDekoninck/TopBar"
# BertrandDekoninck/rik.theme

for REPO in $REPOS ; do
  git clone "https://github.com/${REPO}"
  cd $(basename "${REPO}")
  gmake
  ls "${uzip}"
  DESTDIR="${uzip}" gmake install
  cd -
  rm -rf $(basename "${REPO}")
done

REPO="AlessandroSangiuliano/rik.theme"
git clone "https://github.com/${REPO}"
cd $(basename "${REPO}") # sic!
gmake
ls "${uzip}"
DESTDIR="${uzip}" gmake install
cd -
rm -rf $(basename "${REPO}")

# Build dependency needed for uroswm
REPO="AlessandroSangiuliano/XcbKit"
git clone "https://github.com/${REPO}"
cd $(basename "${REPO}")/XCBKit # sic!
gmake
ls "${uzip}"
gmake install # Install on the build system; this is needed for libraries
DESTDIR="${uzip}" gmake install
cd -
rm -rf $(basename "${REPO}")

REPO="AlessandroSangiuliano/uroswm"
git clone "https://github.com/${REPO}"
cd $(basename "${REPO}")/$(basename "${REPO}")
gmake
ls "${uzip}"
DESTDIR="${uzip}" gmake install
cd -
rm -rf $(basename "${REPO}")

cd "${HERE}"

In the installed system I start it with:

cat > /.xinitrc <<\EOF
!/bin/sh
. /usr/local/GNUstep/System/Makefiles/GNUstep.sh
defaults write NSGlobalDomain GSTheme Rik
uroswm &
compton &
openapp GWorkspace &
EOF

What I am trying to achieve is to get a result like on your screenshot.

AlessandroSangiuliano commented 4 years ago

It seems all correct, but to get what you posted in the second image you need to set a GNUstep default, GSBackendHandleWindowDecoration(s) ( i don't remember if it has the s as final letter) to NO. In this way gnustep-gui will handle the window decorations and you will get the things in the second image you posted. It's not something relative to uroswm.

Warning: if you are going to set GSBackendHandleWindowDecoration(s) to NO, you will be able to move and resize GNUstep Apps windows, but not other toolokint windows, for example firefox or google-chrome or gtk apps or qt apps.

That's why I started to implement a new window manager. To make GNUstep Apps full and well integrates with other toolkits, so that we can use our GNUstep Apss with our favourite web browser. (just an example)

uroswm is really young, play with it, don't use it in a production system.

probonopd commented 4 years ago

So you are using BertrandDekoninck/TopBar in that screenshot as well?

AlessandroSangiuliano commented 4 years ago

No, I didn't know that Bertrand implemented a TopBar I should give a look.

To get the bar on the screenshot you have to set another defaults vaue: NSInterfaceStyleDefault to NSMachintoshInterfaceStyle.

You can set these defaults from SystemPreferences app.

probonopd commented 4 years ago

I can't seem to find any reference to GSBackendHandleWindowDecoration(s) anywhere. Are you sure it is called that?

AlessandroSangiuliano commented 4 years ago

Sure, I just activated and deactivated it in via SystemPreferences->Defaults->GSBackHandlesWindowDecoration

I was not properly remember the name but it was similar.

probonopd commented 4 years ago

Hello @AlessandroSangiuliano would you like to test drive our pre-alpha FreeBSD based Live ISO? https://github.com/furybsd/furybsd-livecd/issues/189#issuecomment-695328992 - the devs are in #furybsd on irc.freenode.net