go-xdgbasedir - Package xdgbasedir implements a freedesktop XDG Base Directory Specification for Go

  •        3

Package xdgbasedir implements a freedesktop XDG Base Directory Specification for Go. XDG Base Directory Specification is mainly for GNU/Linux. It does not mention which directory to use with macOS(darwin) or windows. So, We referred to the qt standard paths document for the corresponding directory.




Related Projects


  •    Python

XDG-Menu is a ROX panel applet that displays applications menu button. Menu is builds to fit the XDG Menu Specification published by freedesktop.org.

hn - A hackernews ncurses CLI written in GO

  •    Go

A Hacker News ncurses CLI reader written in Go. Currently known to work on Linux, and a few people have gotten it to work on OSX.Right now it's able to view articles, view comments, and open a page in your default browser, all done directly from the site using goquery (jquery-like library for Go), goncurses, and xdg-open for opening pages.

apt-vim - Fully-automated, Cross-platform Plugin Manager for Vim

  •    Python

apt-vim aims to serve as a fully-automated, cross-platform plugin management tool for Vim including dependency installation, using Pathogen at its core to load plugins. Plugins and their dependencies can be installed, removed, and updated using this one tool. Plugin installation recipes can be saved and shared, allowing users to create portable configuration files (here's one), and allowing plugin developers to create an automated installation process for their users. Installation recipes can be made cross-platform by setting recipes for linux, darwin (Mac), or windows (cygwin). Recipes you create will be saved under your current platform automatically.

janus - An API Gateway written in Go

  •    Go

This is a lightweight API Gateway and Management Platform that enables you to control who accesses your API, when they access it and how they access it. Janus will also record detailed analytics on how your users are interacting with your API and when things go wrong. Go version 1.9 or later is required to build master, the current development version. Janus is officially supported on linux/amd64, linux/i386, linux/arm64, darwin/i386, darwin/amd64, windows/i386 and windows/amd64.

jp - Command line interface to JMESPath - http://jmespath.org

  •    Python

You can download prebuilt binaries if you prefer. Check the Release page to download the latest jp executable. There are binaries available for Windows, Linux, Mac, FreeBSD. If you have a go 1.5 environment setup, you can build cross platform binaries by running scripts/build-all-platforms. This will put executables in the build/ directory and each executable will be named jp-<platform>, e.g jp-darwin-amd64, jp-linux-386, etc.

xgo - Go CGO cross compiler

  •    Shell

Although Go strives to be a cross platform language, cross compilation from one platform to another is not as simple as it could be, as you need the Go sources bootstrapped to each platform and architecture. The first step towards cross compiling was Dave Cheney's golang-crosscompile package, which automatically bootstrapped the necessary sources based on your existing Go installation. Although this was enough for a lot of cases, certain drawbacks became apparent where the official libraries used CGO internally: any dependency to third party platform code is unavailable, hence those parts don't cross compile nicely (native DNS resolution, system certificate access, etc).

go-astilectron - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron)

  •    Go

Thanks to go-astilectron build cross platform GUI apps with GO and HTML/JS/CSS. It is the official GO bindings of astilectron and is powered by Electron.To see a minimal Astilectron app, checkout out the demo.

fyne - Cross platform GUI in Go based on Material Design

  •    Go

Fyne is an easy to use UI toolkit and app API written in Go. We use the EFL render pipeline to provide cross platform graphics. Fyne is designed to be really easy to code with, here are the steps to your first app.

hprose-golang - Hprose is a cross-language RPC. This project is Hprose 2.0 for Golang.

  •    Go

Hprose is a High Performance Remote Object Service Engine.It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system.

webview - Tiny cross-platform webview library for C/C++/Golang

  •    C

A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUI. Also, there are Rust bindings and Nim bindings available. It supports two-way JavaScript bindings (to call JavaScript from C/C++/Go and to call C/C++/Go from JavaScript).

go-ps - Find, list, and inspect processes from Go (golang).

  •    Go

go-ps is a library for Go that implements OS-specific APIs to list and manipulate processes in a platform-safe way. The library can find and list processes on Linux, Mac OS X, Solaris, and Windows.If you're new to Go, this library has a good amount of advanced Go educational value as well. It uses some advanced features of Go: build tags, accessing DLL methods for Windows, cgo for Darwin, etc.

protoactor-go - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin

  •    Go

Introducing cross platform actor support between Go and C#.Can I use this? The Go implementation is still in beta, there are users using Proto Actor for Go in production already. But be aware that the API might change over time until 1.0.


  •    Perl

VFolders Menu Generator. Generates window manager menu (icewm, blackbox, fluxbox, window maker, xfce4, aewm, afterstep, fvwm2, olvwm, qvwm, enlightenment, xpde, fbpanel, openbox) from desktop files conforming the freedesktop.org (XDG) menu specification.

trash - Move files and folders to the trash

  •    Javascript

Works on macOS, Linux, and Windows.In contrast to fs.unlink, del, and rimraf which permanently delete files, this only moves them to the trash, which is much safer and reversible.

trash-cli - Move files and folders to the trash

  •    Javascript

Works on macOS, Linux, and Windows.In contrast to rm which is dangerous and permanently delete files, this only moves them to the trash, which is much safer and reversible. I would also recommend reading my guide on safeguarding rm.

termite - A keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support

  •    C++

A keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support. Termite looks for the configuration file in the following order: $XDG_CONFIG_HOME/termite/config, ~/.config/termite/config, $XDG_CONFIG_DIRS/termite/config, /etc/xdg/termite/config.

Flatpak - The future of Application Distribution

  •    C

Flatpak is the next-generation technology for building and installing desktop applications. It has the power to revolutionize the Linux desktop ecosystem. Flatpak (formerly xdg-app) is a software utility for software deployment, package management, and application virtualization for Linux desktop computers. It provides a sandbox environment in which users can run applications in isolation from the rest of the system.

shellharden - The corrective bash syntax highlighter

  •    Rust

Shellharden is a syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting. Above: Selected portions of xdg-desktop-menu as highlighted by Shellharden. The foreground colors are syntax highlighting, whereas the background colors (green and red) show characters that Shellharden would have added or removed if let loose with the --transform option. Below: An artificial example that shows more tricky cases and special features.