Giter Site home page Giter Site logo

trunkmaster / nextspace Goto Github PK

View Code? Open in Web Editor NEW
1.9K 54.0 68.0 165.01 MB

NeXTSTEP-like desktop environment for Linux

Home Page: https://trunkmaster.github.io

License: GNU General Public License v3.0

Makefile 0.92% Emacs Lisp 9.25% Objective-C 46.32% C 28.01% Shell 1.05% Python 0.10% M4 0.50% Rich Text Format 13.72% Roff 0.04% Elixir 0.02% CMake 0.06%
objective-c openstep gnustep windowmaker nextstep desktop-environment

nextspace's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nextspace's Issues

Workspace Manager quit with an error.

Hi there!

After running the install, I am able to get loginwindow running, but entering in my creds, I get the following error.

Workspace Manager quit with error

I did get this during one of the steps

Resolving Dependencies
--> Running transaction check
---> Package gnustep-make.x86_64 0:2.7.0-1.el7 will be installed
--> Processing Dependency: gnustep-filesystem(x86-64) = 2.7.0-1.el7 for package: gnustep-make-2.7.0-1.el7.x86_64
--> Running transaction check
---> Package gnustep-filesystem.x86_64 0:2.7.0-1.el7 will be installed
--> Processing Conflict: nextspace-gnustep-1.24.8_0.24.1-10.el7.centos.x86_64 conflicts gnustep-filesystem
--> Finished Dependency Resolution
Error: nextspace-gnustep conflicts with gnustep-filesystem-2.7.0-1.el7.x86_64

This is what I have in /tmp/GnustepSecureXXX/console.log

[Workspace] === Starting Workspace Manager [4425cb6, 2018-10-06]... ===
[Workspace] === Initializing WindowMaker... ===
2018-10-06 15:58:30.096 Workspace[4804:4804] NXScreen: Apply automatic default display layout
2018-10-06 15:58:30.098 Workspace[4804:4804] LVDS-1: become main display.
2018-10-06 15:58:30.110 Workspace[4804:4804] LVDS-1: Set resolution {width = 1920; height = 1080} and origin {x = 0; y = 0}
/usr/NextSpace/Apps/Workspace.app/Workspace(check_defaults(WindowMaker/src/main.c:481)): warning: could not find user GNUstep directory (/home/pramodv/Library/Preferences/.WindowMaker/WindowMaker).
Installing WindowMaker 0.95.7 for current user...
Copying defaults database...
Default Backgrounds directory already exists. Skipping...
Default IconSets directory already exists. Skipping...
Default Pixmaps directory already exists. Skipping...
Installation Finished
/usr/NextSpace/Apps/Workspace.app/Workspace(check_defaults(WindowMaker/src/main.c:487)): warning: /home/pramodv/Library/Preferences/.WindowMaker/WindowMaker directory created with default configuration.
wmsetbg(getValueForKey(wmsetbg.c:1026)): warning: could not open domain file /home/pramodv/Library/Preferences/.WindowMaker/WindowMaker
wmsetbg(getValueForKey(wmsetbg.c:1026)): warning: could not open domain file /home/pramodv/Library/Preferences/.WindowMaker/WindowMaker
2018-10-06 15:58:30.658 Workspace[4804:4804] Recycler: attach
2018-10-06 15:58:30.658 Workspace[4804:4804] XRRScreenChangeNotify received, updating applications and WindowMaker...
[Workspace] === WindowMaker initialized! ===
[Workspace] === Starting Workspace application... ===
/usr/NextSpace/Apps/Workspace.app/Workspace(handle_inotify_events(WindowMaker/src/event.c:382)): warning: Inotify: Reading config files in defaults database.
2018-10-06 15:58:30.814 Workspace[4804:4804] Did not find correct version of backend (libgnustep-back-024.bundle), falling back to std (libgnustep-back.bundle).
2018-10-06 15:58:30.818 Workspace[4804:4804] NSApplication.m:304  Assertion failed in BOOL initialize_gnustep_backend().  Unable to find backend back
/usr/NextSpace/Apps/Workspace.app/Workspace: Uncaught exception NSInternalInconsistencyException, reason: NSApplication.m:304  Assertion failed in BOOL initialize_gnustep_backend().  Unable to find backend back
Stopping GNUstep services: gpbs gdnc.

Mouse Preferences

Configuration of acceleration, double click time, wheel scroll behaviour (number of scrolled lines with and without Control key) implemeted and tested.

Compilation error.

Hello @trunkmaster , this error appears to me with your last arrangements.

Linking tool FileMover.tool ...
/usr/NextSpace/lib/libNXSystem.so: undefined reference to __objc_class_name_NSColor' /usr/NextSpace/lib/libNXSystem.so: undefined reference to NSDeviceRGBColorSpace'
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[5]: *** [obj/FileMover.tool] Error 1
gmake[4]: *** [internal-tool-all_] Error 2
gmake[3]: *** [FileMover.tool.all.tool.variables] Error 2
gmake[2]: *** [internal-all] Error 2
gmake[1]: *** [internal-all] Error 2
make: *** [internal-all] Error 2

Fail to login with Login.app

Console message is: "Workspace :error while loading shared librarie: libWUtils.so.5:cannot open shared object: No such file or directory".

just curious..

great to see this..

how far can it go with those 'tear off menus' - could it be wired up such that any 'global-menu' friendly applications use those distinctive nextstep tear off menus.. or do applications have to specifically be adapted to use them

Error Compilation.

hello @trunkmaster, I have the following compilation error. 3c0e7c5

Compiling file Operations/BGOperation.m ...
Compiling file Operations/Mounter.m ...
Compiling file Operations/ProcessManager.m ...
Compiling file Operations/Sizer.m ...
Compiling file Operations/FileMover.m ...
Compiling file Processes/Processes.m ...
Compiling file Processes/FileMoverUI.m ...
Compiling file Processes/BGProcess.m ...
Linking app Workspace ...
./obj/Workspace.obj/WindowMaker/src/wsmap.c.o: In function workspace_map_realize': /home/usertest/nextspace/Applications/Workspace/WindowMaker/src/wsmap.c:219: undefined reference to WMSetWidgetBackgroundPixmap'
/home/usertest/nextspace/Applications/Workspace/WindowMaker/src/wsmap.c:230: undefined reference to WMSetWidgetBackgroundPixmap' /home/usertest/nextspace/Applications/Workspace/WindowMaker/src/wsmap.c:233: undefined reference to WMSetWidgetBackgroundPixmap'
./obj/Workspace.obj/WindowMaker/src/wsmap.c.o: In function selected_workspace_callback': /home/usertest/nextspace/Applications/Workspace/WindowMaker/src/wsmap.c:147: undefined reference to WMGetButtonText'
./obj/Workspace.obj/WindowMaker/src/wsmap.c.o: In function update_mini_workspace': /home/usertest/nextspace/Applications/Workspace/WindowMaker/src/wsmap.c:456: undefined reference to WMSetWidgetBackgroundPixmap'
/home/usertest/nextspace/Applications/Workspace/WindowMaker/src/wsmap.c:459: undefined reference to `WMSetWidgetBackgroundPixmap'
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[4]: *** [Workspace.app/./Workspace] Error 1
gmake[3]: *** [internal-app-run-compile-submake] Error 2
gmake[2]: *** [Workspace.all.app.variables] Error 2
gmake[1]: *** [internal-all] Error 2
make: *** [internal-all] Error 2

Hide application with keyboard shortcut

Workspace (WindowMaker) hides GNUstep application instead of sending _GNUSTEP_WM_HIDE_APP client message. How to reproduce:

  1. Click on titlebar of inactive GNUstep application.
  2. Press Command+h shortcut key.

Result: application hides with animation. No message "[WM] send WM_HIDE_APP protocol message to client." in Console. No "hidden dot" on appicon. Double-cllick on the appicon of hidden application may lead to crash of Workspace.

Problem: When user clicks on titlebar of GNUstep application GNUstep switch focus to main menu window. Main menu window created without support of _GNUSTEP_WM_HIDE_APP protocol.

Possible solutions:

  1. Create GNUstep main menu window with support of _GNUSTEP_WM_HIDE_APP protocol (GNUstep).
  2. Switch focus to key window (if any) instead of main menu (GNUstep).

Power Preferences

Implement configuration of system level power management, display dimming, HDD APM.

Localization Preferences implementation

GNUstep settings configuration of languages list, text encoding (used for conversion from C to Objective-C NSString object), measurement unit (used for printing) implemented and tested.

XRandR error during start of Workspace

The error cause located in -applyDisplayLayout at changing screen size. To reproduce bug, display layout in Login panel and in user session must be different. I can reproduce it with the following scenario: Login display layout is horizontal (Display-1 at left of Display-2); applied display layout is vertical (Display-1 is above of Display-2). Changing display layout with Preferences do not produce error.

Communication Methods

Is there an IRC channel, mailing list or a similar platform on which one can work together?

I very much like the scope and goals that you have set and agree with them completely.

Futura Narrow font in Login.app

For the boot up plymouth theme or login.app in nextspace generally do you plan to add futura (like fonts), and use it in login.app? Or just a graphic of it?

I have a suggestion of the font League Spartan (however there's no italic, nor narrow version as of now):
https://github.com/sursly/league-spartan

I had packaged it for debian, but centos/fedora still doesn't have it:
https://repology.org/metapackage/fonts:league-spartan/versions

Helvetica also has a great clone, called Nimbus Sans L, albeit also not very complete like the original...

For reference: https://www.youtube.com/watch?v=2BsqgXsO9EE

Linking tool FileMover.tool ...

hello I'm having the following problem when compiling Applications

Making all in Preferences/BrowserPrefs ...
Making all for bundle BrowserPrefs...
gmake[5]: Nothing to be done for internal-bundle-compile'. Copying localized resources into the bundle wrapper... Making all in Tools/FileMover ... Making all for tool FileMover.tool... Linking tool FileMover.tool ... /usr/NextSpace/lib/libNXSystem.so: undefined reference to GSCurrentServer'
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[5]: *** [obj/FileMover.tool] Error 1
gmake[4]: *** [internal-tool-all_] Error 2
gmake[3]: *** [FileMover.tool.all.tool.variables] Error 2
gmake[2]: *** [internal-all] Error 2
gmake[1]: *** [internal-all] Error 2
make: *** [internal-all] Error 2

Installer (does not exist as GNUstep software, but this is a working prototype)

I am not sure you are interested in this, but I wrote an "iselect" (http://www.ossp.org/pkg/tool/iselect/) based installer for the http://livecd.gnustep.org/

I would love to make it a GNUstep application... what do you think?

Here's the shell script:

#!/bin/bash

# this is the GNUSTEP installer
# using iselect

# use -m for multiple line options
# use special <s,result text> syntax for lines selectable
# and have everything on one page

PROD=GNUSTEP
VER=2.5.1
T="Install $PROD $VER"

# warn if not run as root

# partition target disk
echo "This will guide you through installing $PROD $VER to the selected disk."
echo
echo "Here is a list of available disks and partitions"
file -s /dev/sd*
echo
echo "Please create one partition for /boot (512 MB) and one for / (4+ GB)"
echo "You can choose XFS or BTRFS (compressed by default) for the /"
echo
echo "Press ENTER to continue."
read
DISK=`ls /dev/sd? | iselect -a -f -n "$T" -t "Select Disk to partition"`
cfdisk $DISK
#echo "The next step is to write a filesystem"
#echo "We will use ext4 for /boot and you can choose XFS or BTRFS for /"
FS=`echo -e "XFS\nBTRFS" | iselect -a -f -n "$T" -t "Select Filesystem to write"`
# mkfs.xfs ${DISK}

##echo "Select the OS you want" linux or kfreebsd (needs ufs)
## no more ufsutils for linux
##echo "Select the architecture you want" amd64 or i686
##ARCH=`echo -e "x86_64\ni686" | iselect -a -f -n "Install $PROD $VER" -t "Select Architecture"`
## we dont support i686 anymore

#echo "Select the distribution you want" debian or ubuntu
DIST=`echo -e "stretch\nsid\nxenial" | iselect -a -f -n "$T" -t "Select Distribution"`
## if ubuntu doesn't work, don't buggerer me
#echo "Select the init system you want" init or systemd
INIT=`echo -e "init\nsystemd" | iselect -a -f -n "$T" -t "Select Init System"`

# BIG FAT WARNING
# nethack msg of no return
echo "HERE BE DRAGONS"
echo "IF YOUR CAT NOW JUMPS TO THE ENTER KEY, YOU ARE SAFE"
echo "TYPE GNUSTEP IF YOU WANT TO CONTINUE."
#21:54 < aosdict> "You are standing at the gate to Gehennom. Unspeakable cruelty and harm lurk
down there. Are you sure you want to enter?"
#21:54 < aosdict> "So be it. You fall down the stairs."
read

#cdebootstrap $DIST /target http://ftp.ch.debian.org/debian/
#echo "Installing GRUB2"
#grub-install --root-directory=/target $DISK

echo "Installation of $PROD $VER to $DISK finished."
echo "Login as root, and use passwd to setup a password."
echo "Create a user with adduser USERNAME to create a user to work with."
echo "Press ENTER to reboot."
read

Maps.app

there exists KDE marble, GNOME maps, but nothing for gnustep. or maybe once there's a webkit based gnustep webbrowser. i guess you're too busy to quickly write a gnustep-maps.app ? ;)

make install of Frameworks failed for me

I got as far as make install, then this error.

[luser@centos Frameworks]$ make && make install
GNUmakefile:4: /common.make: No such file or directory
GNUmakefile:14: /aggregate.make: No such file or directory
make: *** No rule to make target \/aggregate.make'. Stop.`

OpenStep style "menu button" behavior

As was discussed a bit on the gnustep lists, I'm not sure if it is something you want to support or not, but I have always liked the behavior of the OpenStep "menu button",
however few window managers professing *step like behavior have ever behaved as such,
I made a video which shows how it behaves when clicking on various things for which wmaker
may bring up various menus.

https://youtu.be/1_glOOYIGlc

I would summarize it as such:
when an event from the menu button is received by the window manager
the event is redirected to the currently active application (selected window?).

Integrating such behavior into the window manager is not terribly difficult,
but from the application side, few applications behave correctly when receiving a random button event outside of any of their window extents.

Integrating this behavior with non step X applications is a bit troublesome as well.
My general thought is that using an X property (to randomly make one up) _NEXTSPACE_MENU_EVENTS=1 for windows to opt in menu event redirection,

when a window with _NEXTSPACE_MENU_EVENTS=1 is the currently focused window,
all menu button events will be forwarded to that window.

This unfortunately means that behavior would change depending upon the currently selected window,
rather than being uniform. But allows one to avoid sending windows events which they will not understand.

What to do when the property is unset, or zero is up for debate, the options i see are:

  1. Suppress the event
  2. Send the event to the window the mouse is over
  3. Build a minimally useful menu for X applications which e.g. populates the "Windows" submenu,
    display that on menu button event.
  4. Check if focused window class is GNUstep and make desicion to redirect event or show Workspace application menu (as option: show WindowMaker root menu if Menu Button disabled in Preferences).

that will probably be something that has to be played with to discover if any option is acceptable.
option 3 Seems the most consistent if it is feasible, but also probably the most difficult,
I'm guessing workspace would have to generate a rather dynamic menu and populate it for each window group

If this is something that is agreeable to you, perhaps I could look into it more.
as I have written a window manager which implements the first part (event redirection), somewhere..

Sound: "Advanced Sound Preferences"

Implement "Advanced Sound Preferences" - Mixer to adjust sound properties (mute and volume) on per application basis (PulseAudio).

  • load list of applications and "System Sounds" stream;
  • adjust properties of selected application;
  • reflect selected application properties changes outside of Preferences;
  • change output port of selected application;
  • refresh application list on the event of connected application to sound server
  • display relevant volume icons for "Output" and "Input".

Build and Install Fails - Centos 7 Minimal

Hello! I followed the build and install guide in the Wiki and stumbled upon some issues; ultimately, installation finally failed.

Here's what I did:
Precautions:
Installed Centos 7 (x86_64) minimal installation.
Followed the instructions as given in the Wiki.
Skipped step 2.5 for 3.5

Solvable issues:
On the Centos standard installation the following tools are missing (and can be installed using yum):

  • patch
  • gnustep-make
  • libjpeg-devel
  • libtiff-devel
  • gcc-objc

Issues I have not been able to solve:
make (step 3.5) fails:
Functions.m:30:41: fatal error: Foundation/NSAutoreleasePool.h: no such file or directory

indeed the file is missing.

Subsequently reverting to step 2.5 I encountered the following issue:
Installation fails:
Error: nextspace-gnustep conflicts with gnustep-filesystem-2.7.0-1.3l7.x86_64

Thank you for your good work

Untimely closure (Workspace).

Steps to reproduce the event:
1). Minimize File Viewer.
2). Click on the File Viewer icon to restore it.

Note: to play in event, you should not have any other application open.

Package conflict while installing

I was trying to install nextspace following "Build and install guide"

I encountered following error :

--> Processing Conflict: nextspace-gnustep-1.24.8_0.24.1-10.el7.centos.x68_64 conflicts gnustep-filesystem
--> Finished Dependency Resolution
Error: nextspace-gnustep conflicts with gnustep-filesystem-2.7.0-1.el7.x86_64

It was at the end of :
# yum install grep "BuildRequires" nextspace-gnustep.spec | awk -c '{print $2}'

Any suggestion how to resolve this ?

Screen settings

It is possible to configure the screens and set the main and secondary screen, but when the session is closed the configuration is lost and the screens have to be reconfigured.

Dock icons

I have a problem with the icons of the dock, those of the project are only displayed when I have the applications open, when closing they disappear, but the applications like firefox or Gorm (that compile) if they are viewed open or closed.

Getting started doc

Appreciate that you are currently focused on this as a personal project, but are open to patches. Love the aim of the project. It is simple and valuable: something equivalent to the pre-Rhapsody GUI, as it was.

The workspace project looks like an area where you have lots of small batches of straightforward but fiddly work. Expect this to be an area where you could get support from a community, to allow you to focus on concerns requiring more focus (e.g. structuring frameworks).

To get a community going, this project could use a Getting Started doc. It would cover these items,

  • Setting up an environment.

  • Building the components.

  • Running it, as far as possible in its current state.

I have made a first-pass at this, will attach as a comment to this post.

Preferences

It's really cool how you added the localisation thing into Preferences (with fall backs (by order)).
However you miss some languages. I had done something similar using wmaker menu integration:
http://www.aiei.ch/gnustep/gnustep-language/

You might want to add some more of the missing languages?

Hardcoded path in GNUMake.postamble

I've tried to build your NX frameworks on a vanilla GNUstep system to test the apps without scrumbling my installation. NXFoundation and NXSystem build and install fine but there is an issue with NXAppkit on installation. The compiler says :
ln -s /usr/NextSpace/Frameworks/NXAppKit.framework/Versions/Current/Resources/Images /usr/NextSpace/Images ln: impossible de créer le lien symbolique « /usr/NextSpace/Images »: Aucun fichier ou dossier de ce type

which means "impossible to create symbolic link...... No exiting file or folder"

In fact :NXAppkit is installed in my System domain which is : /usr/GNUstep/System and not /usr/NextSpace.

This is hardcoded in your NXAppkit GNUMakeFile.postamble.
`after-install::
ln -s $(DESTDIR)/usr/NextSpace/Frameworks/NXAppKit.framework/Versions/Current/Resources/Images /usr/NextSpace/Images
ln -s $(DESTDIR)/usr/NextSpace/Frameworks/NXAppKit.framework/Versions/Current/Resources/Fonts /Library/Fonts

I know your first goal is not compatibility with a vanilla GNUstep installation, but could you find a way to correct this issue ?
Providing your enhanced Preferences; Terminal and other applications to vanilla GNUstep would be nice.

Workspace icons for folders and places should be themable

You choose not to use stock GNUstep icons for folders and places. As a consequence of this, they are not themable. See the attached screenshot of GWorkspace and Workspace side by side with the rik theme.
gworkspace vs workspace

I think your icons should be provided by a theme (Nextspace theme ?), and not hard-codded in Workspace. This way, Workspace could be coherent with any theme. This theme, I think I could contribute, by collecting the icons and putting them together in the theme.

Switch focus with keyboard

  1. Click on the titlebar of GNUstep application.
  2. Press switch to next window shortcut (Alternat-Tab) once.
  3. Release keys.
    Result: focus remains on focused window.
    Explanation: on step 1 GNUstep application sets focus on main menu. From window manager point of view main menu is not in window focus list. Actions in steps 2 and 3 WindowMaker switches focus to first window in focus list which is a currently visible focused window (not menu).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.