Git Product home page Git Product logo

lcarsde / lcarswm Goto Github PK

View Code? Open in Web Editor NEW
77.0 77.0 2.0 4.97 MB

lcarswm (LCARS Window Manager) is a window manager that is supposed to look like an LCARS interface. It's written in Kotlin and utilizing XLib.

Home Page: https://www.andreas-tennert.de/#2-0006

License: GNU General Public License v2.0

Kotlin 99.33% Shell 0.63% Python 0.05%
kotlin kotlin-native lcars lcars-interface libxml2 message-queue window-manager xlib xorg

lcarswm's Introduction

lcarsde

LCARS Desktop Environment, official project name lcarsde, or for logos also LCARS DE, is a desktop environment that mimics the LCARS interface.

Sub projects

Architecture Decision Records (ARDs)

Follow this link to the ADRs

To Do

  • lcarswm
    • Associate child screens with their parents
    • Identify and handle popups as popups
    • Center popups and adjust the frame to their size
    • Monitors
      • Merge overlaying screens of same size
      • If screens have different sizes, the higher one draws
    • check for XDG-path variables and have a fallback
    • basic configurable window tiling
  • status-bar
    • System tray widget
    • Content for the data bar (empty upper area in normal mode)
      • Data throughput of network interfaces
      • Bluetooth
      • ...
  • general
    • Configuration for the colors
    • Pressed state coloring for the buttons
    • GTK-Theme (if I can't find one)
    • Detailed documentation for communication between lcarsde applications
      • Message pipes between lcarswm and application menu
      • Special atoms for application menu and status bar
    • lcarsde settings application
    • lcarsde file manager
    • polkit agent
    • lcarsde session manager
      • setup which apps to autostart

lcarswm's People

Contributors

atennert avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

blacklightpy

lcarswm's Issues

Header and footer bars only. "Mode" button on top left of header bar and LCARS on the right. No other content.

While testing after install, I the only items presented on the screen was a header bar with "MODE" on the Left and "LCARS" on the right along with an empty footer bar.
IMG_20240305_083342
I'm using Ubuntu 22.04.

My first step to troubleshooting was to ensure that all of the dependencies were installed:

libpango1.0-0 is already at the latest version 1.50.6+ds-2ubuntu1
libpangoxft-1.0-0 is already at the latest version 1.50.6+ds-2ubuntu1
libx11-6 is already at the latest version 2:1.7.5-1ubuntu0.3
libxml2 is already at the latest version 2.9.13+dfsg-1ubuntu0.4
libxpm4 is already at the latest version 1:3.5.12-1ubuntu0.22.04.2
libxrandr2 is already at the latest version 2:1.5.2-1build1
python3 is already at the latest version 3.10.6-1~22.04
python3-gi is already at the latest version 3.42.1-0ubuntu1

I also reread through the installation and manual instructions several time thinking I might have missed something. If I have, I can't find it and now I need help.
Here is the lcarswm.log from today's attempt:
lcarswm.log

Please let me know what other information I can provide so we can get this resolved. Thank you in advance for your help.

Linker fails on Fedora 33

Task :linkDebugExecutableNative FAILED
e: /root/.konan/dependencies/clang-llvm-8.0.0-linux-x86-64/bin/ld.lld invocation reported errors

The /root/.konan/dependencies/clang-llvm-8.0.0-linux-x86-64/bin/ld.lld command returned non-zero exit code: 1.
output:
ld.lld: error: unable to find library -lX11
ld.lld: error: unable to find library -lXpm
ld.lld: error: unable to find library -lXrandr
ld.lld: error: unable to find library -lglib-2.0
ld.lld: error: unable to find library -lpango-1.0
ld.lld: error: unable to find library -lpangoxft-1.0
ld.lld: error: unable to find library -lXft
ld.lld: error: unable to find library -lxml2

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':linkDebugExecutableNative'.

Compilation finished with errors

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 15s
4 actionable tasks: 4 executed
cp: cannot stat './build/bin/native/releaseExecutable/lcarswm.kexe': No such file or directory
cp: cannot stat './src/nativeMain/resources/usr/': No such file or directory
cp: cannot stat './src/nativeMain/resources/etc/
': No such file or directory

I have the libraries installed:

libX11.so  libX11.so.6  libX11.so.6.3.0
libXpm.so  libXpm.so.4  libXpm.so.4.11.0
libXrandr.so  libXrandr.so.2  libXrandr.so.2.2.0

etc. etc.
They're all in /lib64 which links to /usr/lib64
not sure how to tell the linker where to find them

Make colors configurable

Make the colors for the window manager configurable

Side note:
clone this ticket into the other subprojects.

IllegalStateException upon startup

First of all, kudos for all the great work in putting this together, especially for Linux distros.

I have installed the provided .deb packages (running Ubuntu 20.04) and upon startup (assuming that to start one needs to run the lcarswm.kexe executable - something which is not clear from the manual btw), I get:

Uncaught Kotlin exception: kotlin.IllegalStateException: ::main::cache dir not set
at kfun:$main$lambda-0COROUTINE$3.invokeSuspend#internal (0x497a34)
at kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} (0x42757e)
at kfun:kotlinx.coroutines.DispatchedTask#run(){} (0x44a24f)
at kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long (0x43fc28)
at kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal (0x44d248)
at Init_and_run_start (0x4c9e45)
at __libc_start_main (0x7f9dc96d10b3)
at (0x4079e1)
at ((nil))

Any ideas what's going on? Thanks.

Session crash during initialization

Description

When I call it from the terminal, lcarswm

/usr/bin/lcarswm

the program aborts with the message:

INFO: ::runWindowManager::start lcarswm initialization
DEBUG: RandrHandlerFactory::init::event base: 89, error base: 147
ERROR: ::runWindowManager::unable to load settings

I find the same behavior both from the precompiled package https://github.com/lcarsde/lcarswm/releases/download/22.1/lcarswm_22.1_amd64.deb as from the locally compiled master branch of the project.

Environment

OS: Ubuntu Mate - 21.10
Kernel: Linux 5.13.0-39-generic #44-Ubuntu SMP Thu Mar 24 15:35:05 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Processor: Intel i7 - 16GB RAM

Overlapping screens

When screens lay over one another they are not "merged" but draw over one another.

Lcarswm only shows the windows manager drawing and nothing else.

OK, after downloading and installing ALL deb files for Lcarsde, and also installing the 'Onboard' colors and theme, I logged out, and in the login screen I see, 'Lcars' so I switched to the Lcars windows manager, then logged in, now all I see is the frame and nothing else, where is the menu's, programs, logoff/on, shutdown, etc etc? I can't even logout to switch back to my original desktop. There's not even an instruction manual to get everything running. I had to reformat my HD and re-install Ubuntu and luckily, I made a backup, so now I got my desktop back, and I won't be installing Lcarswm until it's actually working.

No click from touch pad

From #13: The touchpad does not click with a tap anymore, I have to actually click on it to click a button.

WM should stop and inform about other already running WM

From #13: I did not notice the startlcarswm script; it would be useful if it's mentioned in the manual that that is the one to use. Anyway, I ran it and... it was not good. The system immediately went into panic mode, display settings changed, and I was notified that the system detected a problem and that I should log off. The problems persisted and I had to restart to recover. If I ignore the error messages and close the dialogs which prompt me to send an error report, I can see that the wm starts, but does not load the rest of the functionality.

toggle window list by latest used application

In the latest release the window toggling just goes with the order in which the windows were opened. That's confusing because everywhere else the latest used window matters.

Side quest: implement toggling backwards

WM overrides theme settings

From #13: I use a custom built Oomox-lcars theme for the appearance of windows, buttons, etc. and now the theme color and background in some applications is white/default. It can be changed in the settings, but I would have to change it back if I log into my default window manager.

Mouse pointer settings not respected

From #13: The mouse pointer speed is slower. I expected that these settings would be left to their default values, or maybe it is because of the display scaling settings...

Frames without content

Sometimes the frame of a closed windows stays present as an empty black window with the title "-". The frame itself can not be closed anymore, because the window of it is already gone. This has been seen happening when

  • closing dialog windows from SoftMaker Office / FreeOffice
  • exiting IntelliJ IDEA when multiple projects are opened
  • drag&drop from file manager into FreeOffice to import images

Race condition during start up?

2023-04-06 11:55:07 -  INFO: ::runWindowManager::start lcarswm initialization
2023-04-06 11:55:07 - DEBUG: RandrHandlerFactory::init::event base: 89, error base: 147
2023-04-06 11:55:07 - DEBUG: SettingsReader::init::using system settings
2023-04-06 11:55:07 - DEBUG: SettingsReader::loadSettings::loading settings from XML
2023-04-06 11:55:07 - DEBUG: read-config: Lin+T->xterm
2023-04-06 11:55:07 - DEBUG: read-config: Lin+B->firefox
2023-04-06 11:55:07 - DEBUG: read-config: XF86AudioMute->amixer set Master toggle
2023-04-06 11:55:07 - DEBUG: read-config: XF86AudioRaiseVolume->amixer set Master 3%+
2023-04-06 11:55:07 - DEBUG: read-config: XF86AudioLowerVolume->amixer set Master 3%-
2023-04-06 11:55:07 - DEBUG: read-config: Alt+Tab->window-toggle-forward
2023-04-06 11:55:07 - DEBUG: read-config: Alt+Shift+Tab->window-toggle-forward
2023-04-06 11:55:07 - DEBUG: read-config: Alt+Lin+Up->window-move-previous
2023-04-06 11:55:07 - DEBUG: read-config: Alt+Lin+Down->window-move-next
2023-04-06 11:55:07 - DEBUG: read-config: Alt+F4->window-close
2023-04-06 11:55:07 - DEBUG: read-config: Lin+M->screen-mode-toggle
2023-04-06 11:55:07 - DEBUG: read-config: Lin+Q->lcarswm-quit
2023-04-06 11:55:07 - DEBUG: ::startup::Screen size: 1920/1080, root: 480
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - DEBUG: ScreenChangeHandler::handleEvent::screen changed
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:07 - ERROR: ::startup::error code: 2
2023-04-06 11:55:08 - ERROR: ::runWindowManager::error starting lcarswm: Collection contains no element matching the predicate.
kotlin.NoSuchElementException: Collection contains no element matching the predicate.
    at 0   lcarswm.kexe                        0x497db9           kfun:de.atennert.lcarswm.monitor.MonitorManagerImpl#getPrimaryMonitor(){}de.atennert.lcarswm.monitor.Monitor + 649 
    at 1   lcarswm.kexe                        0x4aa2b6           kfun:de.atennert.lcarswm.window.ActiveWindowCoordinator#rearrangeActiveWindows(){} + 326 
    at 2   lcarswm.kexe                        0x482558           kfun:de.atennert.lcarswm.events.RandrHandlerFactory.object-1.handleEvent#internal + 56 
    at 3   lcarswm.kexe                        0x491f4f           kfun:de.atennert.lcarswm.lifecycle#startup(de.atennert.lcarswm.system.api.SystemApi;de.atennert.lcarswm.log.Logger;de.atennert.lcarswm.ResourceGenerator){}de.atennert.lcarswm.lifecycle.RuntimeResources? + 22783 
    at 4   lcarswm.kexe                        0x4b4862           kfun:$runWindowManager$lambda$1COROUTINE$4.invokeSuspend#internal + 1026 
    at 5   lcarswm.kexe                        0x4b4ca7           kfun:$runWindowManager$lambda$1COROUTINE$4.invoke#internal + 231 
    at 6   lcarswm.kexe                        0x44bbaf           kfun:kotlinx.coroutines#coroutineScope(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0ยง<kotlin.Any?>}0:0 + 399 
    at 7   lcarswm.kexe                        0x4b4168           kfun:$main$lambda$0COROUTINE$3.invokeSuspend#internal + 1224 
    at 8   lcarswm.kexe                        0x423980           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 240 
    at 9   lcarswm.kexe                        0x45aebd           kfun:kotlinx.coroutines.DispatchedTask#run(){} + 637 
    at 10  lcarswm.kexe                        0x450d14           kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long + 8036 
    at 11  lcarswm.kexe                        0x4d291b           Init_and_run_start + 1611 
    at 12  lcarswm.kexe                        0x4d2dea           Konan_main + 10 
    at 13  libc.so.6                           0x7f8e58629d8f     0x0 + 140249344941455 
    at 14  libc.so.6                           0x7f8e58629e3f     __libc_start_main + 127 
    at 15  lcarswm.kexe                        0x417332           0x0 + 4289330 

Ubuntu 22.04 with gdm3

No dynamic display scaling

From #13: it seems that the display scaling is set by default and can't be changed, which makes work on high resolution monitors difficult on the eyes. I guess one can increase the icon size, but that would be a stop-gap measure.

Session management & startup

First of all, thank you so much for this wonderful wm! It not only looks great, but that it can be used for serious, focused and productive work is just amazing.
But when lcarswm is used paralel to another desktop environment, like xfce4, it now (22.1-1) loads a lot of unecessary or unwanted *.desktop files from the autostart folders, which are specific for other wm's. For example on my machine a couple of *.desktop files start the application minimized into the systray of xfce, like blueman, clipman, telegram, notes, etc, and are of no use to me in my lcarswm session.

I understand the transition to the default autostart folders, but is there a possibility, similar to xfce's session manager, to tell lcarswm manually which user specific *.desktop files not to load?

Amount of system memory needed for build

Hi I'm trying to build on a Raspberry Pi 4 w/ 4GB RAM.

Error occurred during initialization of VM
Could not reserve enough space for 3788800KB object heap

Available I think is something like 3.75. Is there anything I can do to build on this system?

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.