rearrange README / small document tweaks

This commit is contained in:
Dustin Thomas 2025-01-18 16:14:32 -06:00
parent e428c90803
commit 229e39fc26
Signed by: cptlobster
GPG key ID: 33D607425C830B4C
3 changed files with 47 additions and 14 deletions

View file

@ -1,21 +1,51 @@
# swayconf
Graphical interface for generating / editing i3/Sway configuration files.
Configuration generator for the [Sway window manager](https://github.com/swaywm/sway).
## Building
*Note: This project is still under heavy development and isn't even in alpha yet. Once I am able to generate my personal
Sway config (see samples/config.toml), I may consider it an alpha build. Some of the features listed are not implemented
yet, and EVERYTHING is subject to change.*
## Features
- Write your Sway configuration using TOML
- Support for some Sway commands (WIP)
- Automatically generate common groups of commands using our autogen module (coming soon)
- Avoid errors in your Sway configuration with built-in validation (coming soon)
- Export your config directly to Sway's command format
### Goals
- Full support for Sway config
- Includes sway-output, sway-input, and swaybar.
- Support for additional programs
- Handle differences in configuration for i3
- Configuration for Sway extension programs (swaylock, swayidle, swaybg)
- Common third-party programs used with Sway (i.e. waybar, rofi, dmenu, mako, dunst, etc.)
- Possibly some sort of schema format to automatically generate config structure, or make it module based
- (very long way off) Other tiling window managers (i.e. hyprland, xmonad)
- Graphical interface for managing configuration files
- More examples / documentation
## Getting Started
First, clone the repo:
```shell
git clone https://github.com/cptlobster/swayconf.git
cd swayconf
```
The project is managed using Cargo. Make sure that it is installed, then you can build and run using:
```shell
cargo build
```
## Testing
```shell
cargo test
```
## Running
```shell
cargo run
```
## Documentation
Documentation is a work in progress. Rustdoc can be generated using `cargo doc`, but a proper user guide does not exist.
Potentially could resolve this by setting up Sphinx alongside this project and generating documentation there (there's
an extension for Rustdoc support).
## License
This program is licensed under the [GNU General Public License, version 3](LICENSE.md).

View file

@ -20,9 +20,11 @@ use crate::sway::options::{bind, exec};
use crate::sway::options::exec::ExecParams;
use crate::sway::runtime::Runtime;
/// Basic structure for a config file. While this structure is more defined than the Sway config
/// file normally allows, this provides simple compatibility with Serde and allows for formatting
/// your configs in TOML.
/// Basic structure for a config file.
///
/// By default, Sway allows for configuration commands to be input in arbitrary order. While this
/// structure has a much more rigid arrangement than Sway normally allows, this provides much
/// simpler compatibility with Serde and allows for formatting your configs in TOML.
///
/// ## Example
/// This TOML config:

View file

@ -45,6 +45,7 @@ pub enum Runtime {
#[strum(to_string = "floating {0}")]
Floating(options::TogglableBool),
Nop,
Reload,
#[strum(to_string = "split {0}")]
Split(options::Split),
#[strum(to_string = "set ${name} {value}")]