Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Udev-TTY backend. #84

Draft
wants to merge 75 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
0be1007
Start working on Udev
anantnrg Feb 6, 2024
f6d051c
Add cursor
anantnrg Feb 6, 2024
3c3b696
Merge branch 'StrataWM:main' into main
anantnrg Feb 29, 2024
b600992
forgot
anantnrg Mar 4, 2024
8f27abb
formatting
anantnrg Mar 4, 2024
ded74cb
spawn kitty instead of foot
anantnrg Mar 4, 2024
a61f84e
move WinitData to winit.rs
anantnrg Mar 4, 2024
de30550
start working on udev backend
anantnrg Mar 4, 2024
3545f18
update deps
anantnrg Mar 4, 2024
2b1ba23
lots of unnecessary deps but vscode doesn't show any errors
anantnrg Mar 4, 2024
4fb6ca2
Remove unnecessary imports
anantnrg Mar 4, 2024
0af1bac
Fix errors in Cargo.toml
anantnrg Mar 5, 2024
61e25a5
Update crates
anantnrg Mar 5, 2024
cdd34c4
Import UdevData and WinitData
anantnrg Mar 5, 2024
75a412a
Add BackendData struct
anantnrg Mar 5, 2024
32ca1a1
Add lots of unnecessary imports but they will be removed
anantnrg Mar 5, 2024
83a93e4
Start working on drawing.rs
anantnrg Mar 5, 2024
feb2216
Implement render_elements! for PointerElement
anantnrg Mar 5, 2024
2581573
More stuff!
anantnrg Mar 5, 2024
a09d6bf
Cleanup Cargo.toml
anantnrg Mar 5, 2024
0cfd6a0
More udev.rs
anantnrg Mar 5, 2024
509394b
Cleanup
anantnrg Mar 6, 2024
9dff28e
Cleanup
anantnrg Mar 6, 2024
ca5f27f
More stuff!
anantnrg Mar 6, 2024
86a5469
Impl UdevData
anantnrg Mar 6, 2024
3ac053e
Import stuff in winit.rs
anantnrg Mar 6, 2024
a1237c5
Use Backend enum
anantnrg Mar 6, 2024
c9cf0d1
Fix errors with new function
anantnrg Mar 6, 2024
1fb69bd
Fix errors with new function
anantnrg Mar 6, 2024
8009e5c
Move Backend enum to backends/mod.rs
anantnrg Mar 6, 2024
473027f
Impl getter functions for Backend
anantnrg Mar 6, 2024
a69058f
Fix copy-pasta mistake
anantnrg Mar 6, 2024
d993c5e
idk
anantnrg Mar 6, 2024
38f77c8
Add SPDX license identifier
anantnrg Mar 7, 2024
4d9e626
Add SPDX license identifier
anantnrg Mar 7, 2024
316f2d0
Add SPDX license identifier
anantnrg Mar 7, 2024
964594d
Add identifier to more files
anantnrg Mar 7, 2024
c5d534e
Add identifiers to more files
anantnrg Mar 7, 2024
8fd5424
Add identifiers to all files
anantnrg Mar 7, 2024
3e0e65e
Start working on Udev
anantnrg Feb 6, 2024
30a105d
Add cursor
anantnrg Feb 6, 2024
fd97a55
formatting
anantnrg Mar 4, 2024
332c402
start working on udev backend
anantnrg Mar 4, 2024
2585579
lots of unnecessary deps but vscode doesn't show any errors
anantnrg Mar 4, 2024
da9faf1
Import UdevData and WinitData
anantnrg Mar 5, 2024
f5a99e9
Start working on drawing.rs
anantnrg Mar 5, 2024
83dc78b
Import stuff in winit.rs
anantnrg Mar 6, 2024
7578673
Move Backend enum to backends/mod.rs
anantnrg Mar 6, 2024
dbc4a13
Start working on fixes due to merge conflict resolution. god i fuckin…
anantnrg Mar 7, 2024
89d5933
More fixes!
anantnrg Mar 7, 2024
e5c4d11
more fixes. i think all the errors due the merge conflict resolution …
anantnrg Mar 7, 2024
da8c430
Revert "Add SPDX license identifier"
anantnrg Mar 8, 2024
3244242
Revert "Add SPDX license identifier"
anantnrg Mar 8, 2024
e5bc03a
Revert "Add SPDX license identifier"
anantnrg Mar 8, 2024
652478f
Revert "Add identifier to more files"
anantnrg Mar 8, 2024
040d8f6
Revert "Add identifiers to more files"
anantnrg Mar 8, 2024
420ba7c
Revert "Add identifiers to all files"
anantnrg Mar 8, 2024
b65541f
Add SPDX license identifier
anantnrg Mar 7, 2024
2d7eb52
Add SPDX license identifier
anantnrg Mar 7, 2024
5f19ad2
Add SPDX license identifier
anantnrg Mar 7, 2024
5c4b34b
Add identifier to more files
anantnrg Mar 7, 2024
1ec8ab2
Add identifiers to more files
anantnrg Mar 7, 2024
f1e6aec
Add identifiers to all files
anantnrg Mar 7, 2024
76f42be
Merge remote-tracking branch 'upstream/main'
anantnrg Mar 8, 2024
9491800
Merge branch 'StrataWM:main' into feat/tty-udev
anantnrg Mar 8, 2024
ac54b85
Fixed errors with the new Backend enum
anantnrg Mar 9, 2024
c7f2578
Refactor. Rename StrataState to Strata and StrataComp to Compositor
anantnrg Mar 9, 2024
1631b71
Some cleanup
anantnrg Mar 9, 2024
0f9b8b2
Add Unset variant to Backend
anantnrg Mar 9, 2024
f383655
Start working on implementation of new method for Strata
anantnrg Mar 9, 2024
a90da55
Remove backend field from Compositor
anantnrg Mar 9, 2024
db836c9
Finish impl of new method for Strata
anantnrg Mar 9, 2024
afe35f2
Merge branch 'StrataWM:main' into feat/tty-udev
anantnrg Mar 15, 2024
63e14f6
Merge branch 'StrataWM:main' into feat/tty-udev
anantnrg Mar 15, 2024
f3c44c5
Merge branch 'StrataWM:main' into feat/tty-udev
anantnrg Mar 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Refactor. Rename StrataState to Strata and StrataComp to Compositor
Signed-off-by: Anant Narayan <anantnrg@gmail.com>
  • Loading branch information
anantnrg committed Mar 9, 2024
commit c7f2578ea834434b97f2821199e422a0007641f2
14 changes: 7 additions & 7 deletions src/backends/winit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ use crate::{
decorations::BorderShader,
state::{
self,
StrataComp,
StrataState,
Compositor,
Strata,
},
};

Expand All @@ -57,7 +57,7 @@ pub struct WinitData {
}

pub fn init_winit() {
let mut event_loop: EventLoop<StrataState> = EventLoop::try_new().unwrap();
let mut event_loop: EventLoop<Strata> = EventLoop::try_new().unwrap();
let (display, socket) = state::init_wayland_listener(&event_loop);
let display_handle = display.handle();
let (backend, mut winit) = winit::init().unwrap();
Expand All @@ -71,11 +71,11 @@ pub fn init_winit() {
model: "Winit".into(),
},
);
let _global = output.create_global::<StrataComp>(&display_handle);
let _global = output.create_global::<Compositor>(&display_handle);
output.change_current_state(Some(mode), Some(Transform::Flipped180), None, Some((0, 0).into()));
output.set_preferred(mode);
let damage_tracker = OutputDamageTracker::from_output(&output);
let mut comp = StrataComp::new(
let mut comp = Compositor::new(
&event_loop,
&display,
socket,
Expand Down Expand Up @@ -134,11 +134,11 @@ pub fn init_winit() {
println!("{:#?}", e);
}

let mut data = StrataState { lua: lua_vm, comp, display };
let mut data = Strata { lua: lua_vm, comp, display };
event_loop.run(None, &mut data, move |_| {}).unwrap();
}

pub fn winit_dispatch(winit: &mut WinitEventLoop, state: &mut StrataState, output: &Output) {
pub fn winit_dispatch(winit: &mut WinitEventLoop, state: &mut Strata, output: &Output) {
// process winit events
let res = winit.dispatch_new_events(|event| {
match event {
Expand Down
6 changes: 3 additions & 3 deletions src/bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ use std::{

use piccolo as lua;

use crate::state::StrataComp;
use crate::state::Compositor;

pub mod input;

pub fn register<'gc>(ctx: lua::Context<'gc>, comp: Rc<RefCell<StrataComp>>) -> anyhow::Result<()> {
pub fn register<'gc>(ctx: lua::Context<'gc>, comp: Rc<RefCell<Compositor>>) -> anyhow::Result<()> {
let index = lua::Table::new(&ctx);
index.set(ctx, "input", input::module(ctx, comp.clone())?)?;
index.set(
Expand All @@ -32,7 +32,7 @@ pub fn register<'gc>(ctx: lua::Context<'gc>, comp: Rc<RefCell<StrataComp>>) -> a
lua::Callback::from_fn(&ctx, |ctx, _, mut stack| {
let comp = stack
.consume::<lua::UserData>(ctx)?
.downcast_static::<Rc<RefCell<StrataComp>>>()?;
.downcast_static::<Rc<RefCell<Compositor>>>()?;

comp.borrow_mut().quit();

Expand Down
13 changes: 6 additions & 7 deletions src/bindings/input/key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,21 @@ use std::{
rc::Rc,
};

use lua::FromValue;
use piccolo as lua;

use crate::{
handlers::input::{
Key,
KeyPattern,
ModFlags,
},
state::StrataComp,
};
use lua::FromValue;
use piccolo::{
self as lua,
state::Compositor,
};

pub fn module<'gc>(
ctx: lua::Context<'gc>,
comp: Rc<RefCell<StrataComp>>,
comp: Rc<RefCell<Compositor>>,
) -> anyhow::Result<lua::Value<'gc>> {
let meta = lua::Table::from_value(ctx, Key::metatable(ctx)?)?;

Expand All @@ -32,7 +31,7 @@ pub fn module<'gc>(
lua::Callback::from_fn(&ctx, |ctx, _, mut stack| {
let (comp, mods, key, cb) =
stack.consume::<(lua::UserData, ModFlags, Key, lua::Function)>(ctx)?;
let comp = comp.downcast_static::<Rc<RefCell<StrataComp>>>()?;
let comp = comp.downcast_static::<Rc<RefCell<Compositor>>>()?;

let keypat = KeyPattern { mods, key };

Expand Down
15 changes: 7 additions & 8 deletions src/bindings/input/mod.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
// Copyright 2023 the Strata authors
// SPDX-License-Identifier: GPL-3.0-or-later

mod key;
mod modflags;

use std::{
cell::RefCell,
rc::Rc,
};

use crate::state::StrataComp;
use piccolo::{
self as lua,
};
use piccolo as lua;

use crate::state::Compositor;

mod key;
mod modflags;

pub fn module<'gc>(
ctx: lua::Context<'gc>,
comp: Rc<RefCell<StrataComp>>,
comp: Rc<RefCell<Compositor>>,
) -> anyhow::Result<lua::Value<'gc>> {
let ud = lua::UserData::new_static(&ctx, comp.clone());
let meta = lua::Table::new(&ctx);
Expand Down
4 changes: 2 additions & 2 deletions src/bindings/input/modflags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use piccolo::{

use crate::{
handlers::input::ModFlags,
state::StrataComp,
state::Compositor,
};

impl<'gc> FromValue<'gc> for ModFlags {
Expand Down Expand Up @@ -47,7 +47,7 @@ impl<'gc> FromValue<'gc> for ModFlags {

pub fn module<'gc>(
ctx: lua::Context<'gc>,
comp: Rc<RefCell<StrataComp>>,
comp: Rc<RefCell<Compositor>>,
) -> anyhow::Result<lua::Value<'gc>> {
let meta = lua::Table::new(&ctx);

Expand Down
38 changes: 19 additions & 19 deletions src/handlers/compositor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,13 @@ use crate::{
handlers::xdg_shell::handle_commit,
state::{
ClientState,
StrataComp,
Compositor,
},
tiling::refresh_geometry,
workspaces::FocusTarget,
};

impl CompositorHandler for StrataComp {
impl CompositorHandler for Compositor {
fn compositor_state(&mut self) -> &mut CompositorState {
&mut self.compositor_state
}
Expand All @@ -100,29 +100,29 @@ impl CompositorHandler for StrataComp {
}
}

delegate_compositor!(StrataComp);
delegate_compositor!(Compositor);

impl BufferHandler for StrataComp {
impl BufferHandler for Compositor {
fn buffer_destroyed(
&mut self,
_buffer: &smithay::reexports::wayland_server::protocol::wl_buffer::WlBuffer,
) {
}
}

impl ShmHandler for StrataComp {
impl ShmHandler for Compositor {
fn shm_state(&self) -> &ShmState {
&self.shm_state
}
}

delegate_shm!(StrataComp);
delegate_shm!(Compositor);

impl SeatHandler for StrataComp {
impl SeatHandler for Compositor {
type KeyboardFocus = FocusTarget;
type PointerFocus = FocusTarget;

fn seat_state(&mut self) -> &mut SeatState<StrataComp> {
fn seat_state(&mut self) -> &mut SeatState<Compositor> {
&mut self.seat_state
}

Expand Down Expand Up @@ -164,35 +164,35 @@ impl SeatHandler for StrataComp {
}
}

delegate_seat!(StrataComp);
delegate_seat!(Compositor);

impl SelectionHandler for StrataComp {
impl SelectionHandler for Compositor {
type SelectionUserData = ();
}

impl DataDeviceHandler for StrataComp {
impl DataDeviceHandler for Compositor {
fn data_device_state(&self) -> &smithay::wayland::selection::data_device::DataDeviceState {
&self.data_device_state
}
}

impl ClientDndGrabHandler for StrataComp {}
impl ServerDndGrabHandler for StrataComp {}
impl ClientDndGrabHandler for Compositor {}
impl ServerDndGrabHandler for Compositor {}

delegate_data_device!(StrataComp);
delegate_data_device!(Compositor);

impl PrimarySelectionHandler for StrataComp {
impl PrimarySelectionHandler for Compositor {
fn primary_selection_state(
&self,
) -> &smithay::wayland::selection::primary_selection::PrimarySelectionState {
&self.primary_selection_state
}
}

delegate_primary_selection!(StrataComp);
delegate_output!(StrataComp);
delegate_primary_selection!(Compositor);
delegate_output!(Compositor);

impl WlrLayerShellHandler for StrataComp {
impl WlrLayerShellHandler for Compositor {
fn shell_state(&mut self) -> &mut WlrLayerShellState {
&mut self.layer_shell_state
}
Expand Down Expand Up @@ -233,4 +233,4 @@ impl WlrLayerShellHandler for StrataComp {
}
}

delegate_layer_shell!(StrataComp);
delegate_layer_shell!(Compositor);
Loading