avdan-os / compositor Goto Github PK
View Code? Open in Web Editor NEWRusty AvdanOS Wayland compositor
License: GNU General Public License v3.0
Rusty AvdanOS Wayland compositor
License: GNU General Public License v3.0
ModifierState
and key-codes (u32
s)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.
Try dragging from the top-left corner for maximum damage.
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
).
The first parameter in the macro contains the config item declarations.
Each item declaration contains:
{
"An example item"
identifier() => "Hello World"
}
Custom key shortcut syntax:
{
"Close active window"
closeWindow() => (Alt+F4),
"Switch to workspace `d`"
workspace(d) => (Ctrl+Logo+{d}),
}
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:
x86-64
Archlinux
8 GB
VirtualBox GPU ig
No response
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)
How tf am I suppost to make a ss of this tf?
Tell everyone I'm cool ig xd
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:
%mod%
, {{mod}}
, $mod
)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"
}
}
}
When
Why
How
Implement the rest of the XDG Base Directory Specification.
This includes:
:
, listed in descending order of importance.Add support for smithay
's winit
backend again.
AArch64
Archlinux
16G
M1
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
Doesn't compile.
^-^
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.