xdg-basedir - Get XDG Base Directory paths

  •        14

The properties .data, .config, .cache, .runtime will return null in the uncommon case that both the XDG environment variable is not set and the users home directory can't be found. You need to handle this case. A common solution is to fall back to a temp directory.Directory for user specific data files.




Related Projects

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.


  •    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.

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.

node-findit - Walk a directory tree in node.js

  •    Javascript

Recursively walk directory trees. Think /usr/bin/find.Return an event emitter finder that performs a recursive walk starting at basedir.

pure - A set of small, responsive CSS modules that you can use in every web project.

  •    HTML

Now, all Pure CSS files should be built into the `pure/build/` directory. Allfiles that are in this build directory are also available on the CDN. The namingconventions of the files in the `build/` directory follow these rules:* `[module]-core.css`: The minimal set of styles, ususally structural, that provide the base on which the rest of the module's styles build.* `[module]-nr.css`: Rollup of `[module]-core.css` + `[module].css` + `[module]-[feature].css` from the `src/[module]/` dir. This i

s3_website - Manage an S3 website: sync, deliver via CloudFront, benefit from advanced S3 website features

  •    Scala

S3_website will automatically discover websites in the _site and public/output directories. If you want to store the s3_website.yml file in a directory other than the project's root you can specify the directory like so: s3_website push --config-dir config.

dotfiles - custom linux config files - managed via gnu stow

  •    Shell

in the unix world programs are commonly configured in two different ways, via shell arguments or text based configuration files. programs with many options like window managers or text editors are configured on a per-user basis with files in your home directory ~. in unix like operating systems any file or directory name that starts with a period or full stop character is considered hidden, and in a default view will not be displayed. thus the name dotfiles. "you are your dotfiles".

laravel-httpcache - Laravel HTTP Cache

  •    PHP

Laravel 5 can use HttpKernelInterface Middlewares, so also HttpCache. This package provides a simple ServiceProvider to get you started with HttpCache. Publish the config to change some options (cache dir, default ttl, etc) or enable ESI.


  •    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.

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.

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.

uglifyjs-webpack-plugin - UglifyJS Plugin

  •    Javascript

If you use your own minify function please read the minify section for cache invalidation correctly. Enable file caching. Default path to cache directory: node_modules/.cache/uglifyjs-webpack-plugin.

makeself - A self-extracting archiving tool for Unix systems, in 100% shell script.

  •    Shell

makeself.sh is a small shell script that generates a self-extractable compressed tar archive from a directory. The resulting file appears as a shell script (many of those have a .run suffix), and can be launched as is. The archive will then uncompress itself to a temporary directory and an optional arbitrary command will be executed (for example an installation script). This is pretty similar to archives generated with WinZip Self-Extractor in the Windows world. Makeself archives also include checksums for integrity self-validation (CRC and/or MD5/SHA256 checksums). The makeself.sh script itself is used only to create the archives from a directory of files. The resultant archive is actually a compressed (using gzip, bzip2, or compress) TAR archive, with a small shell script stub at the beginning. This small stub performs all the steps of extracting the files, running the embedded command, and removing the temporary files when done. All the user has to do to install the software contained in such an archive is to "run" the archive, i.e sh nice-software.run. I recommend using the ".run" (which was introduced by some Makeself archives released by Loki Software) or ".sh" suffix for such archives not to confuse the users, so that they will know they are actually shell scripts (with quite a lot of binary data attached to them though!).

OpenDoor - OWASP WEB Directory Scanner

  •    Python

OpenDoor OWASP is console multifunctional web sites scanner. This application find all possible ways to login, index of/ directories, web shells, restricted access points, subdomains, hidden data and large backups. The scanning is performed by the built-in dictionary and external dictionaries as well. Anonymity and speed are provided by means of using proxy servers. Software is written for informational purposes and is open source product under the GPL license.

serviceworker-rails - Use Service Worker with the Rails asset pipeline

  •    Ruby

The Rails asset pipeline makes a number of assumptions about what's best for deploying JavaScript, including asset digest fingerprints and long-lived cache headers - mostly to increase "cacheability". Rails also assumes a single parent directory, /public/assets, to make it easier to look up the file path for a given asset. Service workers may only be active from within the scope from which they are served. So if you try to register a service worker from a Rails asset pipeline path, like /assets/serviceworker-abcd1234.js, it will only be able to interact with requests and responses within /assets/**. This is not what we want.

ariane - Ariane is a 6-stage RISC-V CPU

  •    SystemVerilog

Ariane is a 6-stage, single issue, in-order CPU which implements the 64-bit RISC-V instruction set. It fully implements I, M and C extensions as specified in Volume I: User-Level ISA V 2.1 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like operating system. Furthermore it is compliant to the draft external debug spec 0.13. It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer and branch history table). The primary design goal was on reducing critical path length.

vmtouch - Portable file system cache diagnostics and control

  •    C

vmtouch - the Virtual Memory Toucher, is a tool for learning about and controlling the file system cache of unix and unix-like systems. It is BSD licensed so you can basically do whatever you want with it.