Skip to content

john-basilio/sas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sas

SAS (Simple App Switcher) is a fast, minimal linux app launcher with a configurable UI powered by Slint.

Table of Contents

Installation

git clone https://github.com/you/sas
cd sas
cargo build --release
./target/release/sas

Usage

Launch sas and start typing to filter apps. Click or press Enter on an entry to launch it.

# Bash
Usage: sas [OPTIONS]

Options:
  -c, --config <FILE>     Use a custom slint config file
  -d, --disable-maximize  Disable default force maximize
  -h, --help              Print help 

Search Syntax

Input Behavior
@Games skyrim Filter by category, then by name
@Development Filter by category only
firefox Plain text search

Both @ and # are valid category sigils. Category names are case-insensitive and map to XDG Categories= values.

UI Configuration

sas loads an external .slint file as its UI. On first run, a default config is written to $XDG_CONFIG_HOME/sas/config.slint (or typically /home/{user}/.config/sas/config.slint).

Your config must expose this interface:

struct AppEntry {
    name: string,
    exec: string,
    icon: image,
    terminal: bool,
}

component YourComponent {
    in property <[AppEntry]> app-list;
    callback app-selected(int);
    callback search-changed(string);
    callback quit();
}

You typically only need to handle name and icon when configuring UI, the default config shows it. The rest is usually used by the backend.

AI Assistance Notice

This project was developed with significant AI assistance , with particularly heavy involvement in the desktop entry listing pipeline and the search query parser. All generated code was reviewed and integrated by the project author.

I will continue to improve the existing code and add new features as I learn more and as Slint grows further too.

License

MIT

About

Simple App Switcher - is a fast Linux app launcher writen in Rust. Part of the PinkOS project.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors