Giter Club home page Giter Club logo

grefsen's Introduction

Grefsen is a Qt/Wayland compositor providing a minimal desktop environment.

a screenshot

Requirements

  • Qt 5.15 (if you need 5.x, use the 5.x branch)
    • qtbase, qtdeclarative, qtwayland
    • QtQuick.Controls 2
    • QtQuick.Controls 1, only for the calendar popover
  • libQtXdg
    • Arch Linux: install community/libqtxdg
    • Ubuntu: apt-get install libqt5xdg-dev
    • otherwise: build from github with Qt 5.7 and cmake
  • for the Connman network manager popover (optional): libconnman-qt
  • FontAwesome, but it's a submodule here
  • recommended: freefonts but hopefully your distro has that as a package
    • the clock uses Manzanita, which is also installed as a resource in the executable, just in case
    • WindsorDemi is another nice font, but it will fall back to others if that is not installed

Building

git submodule update --init --recursive
qmake
make

Installation

mkdir ~/.config/grefsen
cp example-config/*.qml ~/.config/grefsen

Then modify to taste. If you want the wallpaper shown in the screenshot, download the full-resolution version from wikipedia to your ~/.config/grefsen directory.

Running

It can run as a window inside an X11 session.

If you want to run it on the Linux console without an X11 session (which is much more efficient), you can use a startup script like this:

#!/bin/sh
export QT_QPA_PLATFORM=eglfs
export QT_AUTO_SCREEN_SCALE_FACTOR=0 # don't embiggen stuff on "high-res" displays
#export QT_QPA_EGLFS_PHYSICAL_WIDTH=480 # in case it's not detected
#export QT_QPA_EGLFS_PHYSICAL_HEIGHT=270 # or you wish to override
# try to restart if it crashes; write a log file
~/src/grefsen/grefsen -r -l /tmp/grefsen.log

If you are on the console and have the problem that the keyboard, mouse etc. don't work (which should be fixed in Qt 5.6 and above, theoretically) you can try various input plugins (after rebooting via ssh, or the power button ;-) by adding -plugin EvdevTouch -plugin EvdevMouse -plugin EvdevTablet -plugin EvdevKeyboard or -plugin libinput

The set of applications you can run inside is mostly limited to those that are built with Qt 5, so far. That includes a lot of KDE applications. It is intended to eventually be able to run weston and GTK3 apps too; that's mainly a matter of qtwayland having the XDG shell support finished. Grefsen does not include an embedded X server yet, but it might be possible.

The application menu uses libqtxdg to find .desktop files and .menu files in a way which is compliant with the XDG menu spec, which means that you have some control over the contents of the menu, if you don't mind editing XML files. But grefsen does not try to prevent you from running incompatible applications: they will simply fail to launch. So you might want a custom menu just for grefsen, whereas by default you will probably see all the same applications as you do in your usual desktop environment.

YAT is another terminal alternative. It's planned to have better touchscreen support soon (flicking with your finger, text selection when you drag a mouse), whereas konsole still doesn't.

grefsen's People

Contributors

ec1oud avatar trilean avatar

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.