Coder Social home page Coder Social logo

compositor's People

Contributors

azproductions avatar dependabot[bot] avatar dorakuflu avatar froxcey avatar kibalchish47 avatar mrakane7 avatar mrserge01 avatar rohith0009 avatar sammy99jsp avatar techstudent10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

compositor's Issues

Keyboard shortcuts: Integrate with compositor.

  • Add keyboard shortcuts to the default config.
  • Parse the keyboard shortcuts into the combinations of ModifierState and key-codes (u32s)
  • Incorporate these into the compositor, with a friendly interface.

Folder & File Structure

I'm currently working on a system regarding the basics of the tiling mode. When I finish, should I include my code in main.rs? I took a look at other wayland wms like sway and wayfire and they seem to use different folders for the wm features and the compositor features.

Compositor Configuration: AvConfig macro

Use a macro to declare Configuration entries:

#[AvConfig({
    // Example config macro from #23 
    "Change focus to the nth window in the taskbar."
    window(d)       => (Super+{d}),
})]
pub struct Keybinds;

This would automatically generate a struct to represent the raw values of this section,
which serde-json can then parse.

Additionally, it could add some additional parsing unitl we reach the section's final struct.

impl ConfigurationSection for Keybinds {
    type Raw = HashMap<String, Any>;
    
    fn parse(...) {
        /* .  .  . */
    }
}

This macro would then generate a default config file (from the source itself).

Additionally, this macro could also export a JSON Schema upon compile, which can then be linked with CI to be put somewhere (e.g. https://files.avdanos.org/compositor/schema.json).

Proposed Syntax

The first parameter in the macro contains the config item declarations.

A single item

Each item declaration contains:

  • a description
  • an identifier
  • a default value
{
    "An example item"
    identifier() => "Hello World"
}

Support for config 'macros'

Custom key shortcut syntax:

{
    "Close active window"
    closeWindow() => (Alt+F4),

    "Switch to workspace `d`"
    workspace(d) => (Ctrl+Logo+{d}),
}

RFC: Compositor Scripting

Allow for the compositor to (optionally) support scripts written in Python, JS, or similar.

These modules should be able to dynamically link with the compositor (and not require recompilation), and should be separate from the Avdan-OS/Compositor repo.

Ideally, if the language supports optional type annotations, type definitions should be provided too according to the language's standards:

Wayland Window Cursor Lag

Please make sure your system is up to date

  • Yes, my system is up to date

Select your CPU architecture

x86-64

Select your Linux distribution

Archlinux

Please enter your RAM size

8 GB

Please enter your GPU model

VirtualBox GPU ig

Please enter any additional hardware and software information

No response

Please explain what went wrong

The Mouse Cursor starts lagging once inside the Terminal Window! I've put a Video to explain what I mean. It could be the Terminal but probably is the Compositor (as just being inside the top bar lags the cursor)

Provide us links that may help us fix this issue, if you have any

2023-04-06_15-53-06.1.mp4

Provide a screenshot of the problem, if you can

How tf am I suppost to make a ss of this tf?

Additional information

Tell everyone I'm cool ig xd

Please make sure this issue is not a duplicate of an existing issue.

  • Yes, I have searched for this issue on this repository and none were found

Improve `Compositor.json`

As suggested by @dorakuflu
I'll quote the their example Compositor.json here as it is good idea.

I'll also add a couple more suggestions:

  • Make variables more distinguishable from plaintext by using some sort of syntax (e.g. %mod%, {{mod}}, $mod)
  • Make Compositor.json a .jsonc file to allow comments.
{
	"variables": {
		"mod": "Mod4",
		"term": "avdanterm",
		"browser": "firefox"
	},
	"tiling": {
		"keybinds": {
			"openTerm": "mod+Enter",
			"openBrowser": "mod+b",
			"closeWindow": "mod+q",
			"reloadConfig": "mod+Shift+c",
			"shutdownPanel": "mod+Shift+s",
			"moveFocusLeft": "mod+Left",
			"moveFocusRight": "mod+Right",
			"moveFocusUp": "mod+Up",
			"moveFocusDown": "mod+Down",
			"moveWindowLeft": "mod+Shift+Left",
			"moveWindowRight": "mod+Shift+Right",
			"moveWindowUp": "mod+Shift+Up",
			"moveWindowDown": "mod+Shift+Down",
			"workspace1": "mod+1",
			"workspace2": "mod+2",
			"workspace3": "mod+3",
			"workspace4": "mod+4",
			"moveWindowWorkspace1": "mod+Shift+1",
			"moveWindowWorkspace2": "mod+Shift+2",
			"moveWindowWorkspace3": "mod+Shift+3",
			"moveWindowWorkspace4": "mod+Shift+4",
			"splitVertically": "mod+v",
			"splitHorizontally": "mod+h",
			"fullscreen": "mod+f",
			"switchModes": "mod+Shift+Space",
			"resizeLeft": "mod+r+Left",
			"resizeRight": "mod+r+Right",
			"resizeUp": "mod+r+Up",
			"resizeDown": "mod+r+Down"
		}
	}
}

Who

When
Why
How

[Bug] - Doesn't compile

Please make sure your system is up to date

  • Yes, my system is up to date

Select your CPU architecture

AArch64

Select your Linux distribution

Archlinux

Please enter your RAM size

16G

Please enter your GPU model

M1

Please enter any additional hardware and software information

Bare-metal build:
Asahi linux, stable channel
M1, 2020, 16G

Container build:
Ubuntu 22.04.1 aarch64, 5.15.49-linuxkit kernel
Docker Container

Compiler:
Nightly 1.69.0

Please explain what went wrong

Doesn't compile.

Provide us links that may help us fix this issue, if you have any

Build.log

Provide a screenshot of the problem, if you can

vibe

Additional information

^-^

Please make sure this issue is not a duplicate of an existing issue.

  • Yes, I have searched for this issue on this repository and none were found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.