MCPcopy Index your code
hub / github.com/FyshOS/tyde

github.com/FyshOS/tyde @v0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.0 ↗ · + Follow
1,357 symbols 4,092 edges 123 files 462 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GoDoc Reference 0.4.0 release Join us on Slack

Code Status Build Status Coverage Status

About FyneDesk

FyneDesk is an easy to use Linux/Unix desktop environment following material design. It is built using the Fyne toolkit and is designed to be easy to use as well as easy to develop. We use the Go language and welcome any contributions or feedback for the project.

FyneDesk v0.4

Dependencies

Compiling

Compiling requires the same dependencies as Fyne. See the Getting Started documentation for installation steps.

Running

For a full desktop experience you will also need the following external tools installed:

  • arandr for modifying display settings
  • xbacklight or brightnessctl for laptop brightness
  • connman-gtk is currently used for configuring Wi-Fi network settings
  • compton for compositor support

The desktop does work without the runtime dependencies but the experience will be degraded.

Getting Started

Using standard Go tools you can install FyneDesk using:

go get fyshos.com/fynedesk/cmd/fynedesk

This will add fynedesk to your $GOPATH (usually ~/go/bin). You can now run the app in "preview" mode like any other Fyne app. Doing so is not running a window manager, to do so requires another few steps:

Setting up as a desktop environment

To use this as your main desktop you can run the following commands to set up fynedesk as a selectable desktop option in your login manager (such as LightDM for example):

git clone https://github.com/fyshos/fynedesk
cd fynedesk
make
sudo make install

You can now log out and see that it is in your desktop selection list at login.

Debugging a window manager

You can also run the window manager components in an embedded X window for testing. You will need the Xephyr tool installed for your platform (often installed as part of Xorg). Once it is present you can use the following command from the same directory as above:

make embed

It should look like this:

Fyne Desktop - Dark

If you run the command when there is a window manager running, or on an operating system that does not support window managers (Windows or macOS) then the app will start in UI test mode. When loaded in this way you can run all of the features except the controlling of windows - they will load on your main desktop.

Runner

A desktop needs to be rock solid, and whilst we are working hard to get there, any alpha or beta software can run into unexpected issues. For that reason, we have included a fynedesk_runner utility that can help manage unexpected events. If you start the desktop using the runner, then if a crash occurs, it will normally recover where it left off with no loss of data in your applications.

Using standard Go tools you can install the runner using:

go get fyshos.com/fynedesk/cmd/fynedesk_runner

From then on execute that instead of the fynedesk command for a more resilient desktop when testing out pre-release builds.

Design

Design concepts, and the abstract wallpapers have been contributed by Jost Grant.

Shipping FyneDesk

If you are installing FyneDesk by default on a distribution, or making it available as a standard option, you should consider the following points. You do not need to ship the library or any dependencies, but it is recommended to add the following apps as well:

app go get description
fin github.com/fyshos/fin A display manager app that matches the look and feel of FyneDesk

Please do let us know if you package FyneDesk for your system, so we can include a link from here :).

Extension points exported contracts — how you extend this code

Module (Interface)
Module marks the required methods of a pluggable module in FyneDesk. [10 implementers]
module.go
AppData (Interface)
AppData is an interface for accessing information about application icons [5 implementers]
icons.go
ScreenList (Interface)
ScreenList provides information about available physical screens for Fyne desktop [3 implementers]
screen.go
Window (Interface)
Window represents a single managed window within a window manager. There may be borders or not depending on configuratio [2 …
window.go
DeskSettings (Interface)
DeskSettings describes the configuration options available for Fyne desktop [2 implementers]
settings.go
WindowManager (Interface)
WindowManager describes a full window manager which may be loaded as part of the setup. [2 implementers]
wm.go
XWin (Interface)
XWin describes the additional functions that X windows need to expose to be managed [2 implementers]
internal/x11/xwin.go
Desktop (Interface)
Desktop defines an embedded or full desktop environment that we can run. [1 implementers]
desk.go

Core symbols most depended-on inside this repo

Instance
called by 108
desk.go
Conn
called by 106
internal/x11/xwm.go
Settings
called by 82
desk.go
X
called by 67
internal/x11/xwm.go
Resize
called by 55
window.go
Refresh
called by 55
internal/x11/xwin.go
Screens
called by 50
desk.go
Close
called by 40
window.go

Shape

Method 961
Function 253
Struct 111
Interface 28
TypeAlias 4

Languages

Go100%

Modules by API surface

modules/systray/generated/notifier/status_notifier_item.go93 symbols
modules/systray/generated/menu/dbus_menu.go63 symbols
internal/x11/win/client.go55 symbols
modules/systray/generated/watcher/status_notifier_watcher.go54 symbols
internal/x11/wm/desk.go42 symbols
internal/ui/desk.go35 symbols
internal/ui/settings.go34 symbols
window.go33 symbols
test/window.go31 symbols
internal/x11/win/frame.go31 symbols
internal/icon/fdo.go31 symbols
internal/ui/bar.go30 symbols

For agents

$ claude mcp add tyde \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact