Git Product home page Git Product logo

fireplace's People

Contributors

drakulix avatar hdhoang avatar intrepidpig avatar jplatte avatar locks 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fireplace's Issues

Rework how fullscreening works

Currently the fullscreen mode removes the View from its current mode and reinserts it when toggling back. This results in the screen changing most of the time, instead of restoring it exactly as it was before.

This is understandable looking at the code, but from a user perspective totally unexpected.

Allow pinning a workspace to a given `Output`

Sometimes two monitors are not equally important and you maybe have one main monitor and a secondary unimportant smaller one. In that case you may wish to constantly show one workspace on the smaller one and switch the output automatically when switching to another. This is essentially single workspace mode for one output.

Project plan

This is a quick write-up about the current project status and it's ongoing development.

As many followers are already aware this project as it exists right now will not continue to live on.
The codebase will get ripped apart as I replace wlc with smithay.

Motivating this change is that wlc is currently getting deprecated. It's main user - a i3-wayland-recreation in C called sway - is currently going though similar changes writing their own compositor library.

Discussion about fireplace status did happened shortly after, for reference:

Note that fireplace is not associated with way-cooler - another i3-style rust wayland compositor - in any way. The issue linked above was a call for participation, but way-cooler will use wlroots through rust's ffi interface as well.

Smithay on the other hand is completely written from scratch in rust and as recently passed it's first big milestone:

We are on good progress finishing the next one, which will provide:

  • hardware acceleration
  • (basic) XWayland support
  • Clipboard handling
  • Touch support

Smithay has reached a state, where it is not very competitive yet, but good enough to start porting fireplace. In the upcoming weeks this will start with the goal to get a basic version running with the configuration and tiling functionality fireplace did provide today.

New features will most likely be developed once smithay has reached a complete state.
The current UI features of fireplace will be rewritten as well at a later stage as separate wayland clients.

Most active development currently happens over at smithays matrix chatroom, you may use gitter as well to join the channel.

One porting starts new issues regarding specific tasks will be created and will allow easy tracking of the overall progress.

Error during compillation

Good day,

I'm trying to compile the latest release of fireplace but run into the following error:

   Compiling color_quant v1.0.0
   Compiling interpolation v0.1.0
   Compiling slog v1.5.2
error[E0277]: the trait bound `*mut core::ops::Fn() + 'static: core::marker::Sync` is not satisfied in `core::fmt::Arguments<'static>`
   --> /tmp/.cargo/registry/src/github.com-1ecc6299db9ec823/slog-1.5.2/src/ser.rs:228:6
    |
228 | impl SyncSerialize for fmt::Arguments<'static> {}
    |      ^^^^^^^^^^^^^ `*mut core::ops::Fn() + 'static` cannot be shared between threads safely
    |
    = help: within `core::fmt::Arguments<'static>`, the trait `core::marker::Sync` is not implemented for `*mut core::ops::Fn() + 'static`
    = note: required because it appears within the type `core::marker::PhantomData<*mut core::ops::Fn() + 'static>`
    = note: required because it appears within the type `core::fmt::Void`
    = note: required because it appears within the type `&'static core::fmt::Void`
    = note: required because it appears within the type `core::fmt::ArgumentV1<'static>`
    = note: required because it appears within the type `[core::fmt::ArgumentV1<'static>]`
    = note: required because it appears within the type `&'static [core::fmt::ArgumentV1<'static>]`
    = note: required because it appears within the type `core::fmt::Arguments<'static>`

error: aborting due to previous error

error: Could not compile `slog`.
warning: build failed, waiting for other jobs to finish...
error: build failed

I'm using rust-1.24.0. What can I be doing wrong?

Create window on active output/workspace on launch

Some time may pass between launching and application and the first created window.

It would be nice to have the option to create windows on the space it was launched on. Blocked by #6 to know when we launch something.

scaling doesn't work properly

It seems that when scale is set to 2, the actual windows size isn't scaled properly. For example, a full screen window is twice the size of the screen. Also the positioning seems wrong.

Attached a screenshot showing the problem.
screenshot from 2017-02-27 12-01-31

Add a dock

A small dock, like ChromeOS or Win10 has would be nice to have.

It should be able to be integrated into the statusbar and also be used standalone.
Currently blocked by #6 to have any icons available.

Add a launcher

With ui drawing in place we can build an advanced launcher inside of our window manager, which will help with various other features.

I am currently undecided about how it should look, I am leaning towards a minimalistic style alla xmonad. A graphical alternative alla GNOME would also be at least nice-to-have.

The launcher should be able to handle either executables in path or .desktop files. The latter would enable us to read out icons for the launched applications and assign them to their window's.

Panic when trying to use Font with space in its name

Specifying family: "Misc Ohsnapu" or family: "xos4 Terminus" causes a panic.

Also we REALLY need some kind of error checking for configuring because it was not obvious it was the font that was causing this panic...

version: 3.1.2
  Library: WLC
    Jun 15 21:21:44.808 INFO "WLC-1 Chose mode (0) 1366x768"
  Library: Fireplace
    handler: OutputConfig
      Jun 15 21:21:44.808 INFO Setting scale 1 for output "WLC-1"
    Jun 15 21:21:44.808 INFO New output: Output { id: 1 }. Setting workspace 1
  Library: WLC
    Jun 15 21:21:44.829 INFO "EGL context is double buffered"
    Jun 15 21:21:44.829 INFO "EGL version: 1.4 (DRI2)"
    Jun 15 21:21:44.829 INFO "EGL vendor: Mesa Project"
    Jun 15 21:21:44.829 INFO "EGL client APIs: OpenGL OpenGL_ES "
    Jun 15 21:21:44.829 INFO "EGL context (RGB888)"
    Jun 15 21:21:44.829 INFO "EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_CHROMIUM_sync_control EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_IMG_context_priority EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_NOK_texture_from_pixmap EGL_WL_bind_wayland_display "
    Jun 15 21:21:44.830 INFO "GL version: OpenGL ES 3.2 Mesa 18.1.1"
    Jun 15 21:21:44.830 INFO "GL vendor: Intel Open Source Technology Center"
    Jun 15 21:21:44.830 INFO "GL_ANDROID_extension_pack_es31a GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_max_level GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_buffer_storage GL_EXT_clip_cull_distance GL_EXT_color_buffer_float GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_frag_depth GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_EXT_gpu_shader5 GL_EXT_map_buffer_range GL_EXT_multi_draw_arrays GL_EXT_occlusion_query_boolean GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_framebuffer_fetch_non_coherent GL_EXT_shader_integer_mix GL_EXT_shader_io_blocks GL_EXT_shader_samples_identical GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_compression_dxt1 GL_EXT_texture_cube_map_array GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_sRGB_decode GL_EXT_texture_type_2_10_10_10_REV GL_EXT_unpack_subimage GL_INTEL_conservative_rasterization GL_INTEL_performance_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_shader_integer_functions GL_NV_draw_buffers GL_NV_fbo_color_attachments GL_NV_image_formats GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_compressed_ETC1_RGB8_texture GL_OES_copy_image GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_get_program_binary GL_OES_gpu_shader5 GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_primitive_bounding_box GL_OES_required_internalformat GL_OES_rgb8_rgba8 GL_OES_sample_shading GL_OES_sample_variables GL_OES_shader_image_atomic GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_surfaceless_context GL_OES_tessellation_point_size GL_OES_tessellation_shader GL_OES_texture_3D GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_cube_map_array GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_vertex_array_object GL_OES_vertex_half_float GL_OES_viewport_array "
    Jun 15 21:21:44.833 INFO "GLES2 renderer initialized"
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /checkout/src/libcore/option.rs:323
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: <fireplace_lib::handlers::render::conrod::provider::statusbar::StatusbarHandler as wlc::Callback>::output_context_created
   1: <fireplace_lib::callback::vec::VecCallback<T> as wlc::Callback>::output_context_created
   2: wlc::ffi_output_context_created
   3: wlc_output_set_backend_surface
   4: output_event
   5: update_outputs
   6: activate_event
   7: wlc_run
   8: fireplace::main

build error

When I try to build fireplace 3.0.1 I get this fallowing error:

warning: package replacement is not used: https://github.com/rust-lang/crates.io-index#fireplace_lib:3.0.1
error: manifest path `/home/ahc/build/src/fireplace-3.0.1/Cargo.toml` is a virtual manifest, but this command requires running against an actual package in this workspace

rustc -vV:

rustc 1.17.0-nightly (0f34b532a 2017-02-21)
binary: rustc
commit-hash: 0f34b532af590d25e9178f87c620931dd671cc2e
commit-date: 2017-02-21
host: x86_64-unknown-linux-gnu
release: 1.17.0-nightly
LLVM version: 3.9

Output mirroring

It should relatively easy to implement basic output mirroring via wlc_read_pixels and wlc_write_pixels. This will likely not be very performant and we should strife for support in wlc itself, but it would certainly be better then nothing and is worth a shot.

add instruction

hi, please add build instruction with fireplace's dependency.

Build Errors

Hi when I try building the latest version of Firebase I get the following errors.
2017-11-24-194924_1920x1080_scrot

Add better config error handling

Currently if the config file is malformed an error is logged to stderr and the compositor terminates.
This is very unhelpful if fireplace is not started via VT.

Instead use a default config, display the error on the background (if conrod_ui is enabled) and start $TERMINAL with $EDITOR and the config file.

Add a way to make screenshots

Should be relatively easy to do via wlc_read_pixels might also be very easy to do for window screenshots.
Plan is to add a ScreenshotHandler that reacts on keypresses (requires configuration and binary changes) and reads the pixels of either the whole focused screen or all screens (make configurable) or of the currently focused View and convert it with the image crate.

Location of config file

The XDG / freedesktop guidelines say that the config file should live in a subdirectory of XDG_CONFIG_DIR.

I can dig it out if you want to.

I personally like this. It allows easier expansion and gives a clean structure.

So the default paths checked would be $XDG_CONFIG_DIR/fireplace/fireplace.yml or ~/.config/fireplace/fireplace.yml.

What do you think?

3.1.1 - Default configuration not working

Im trying to use https://github.com/Drakulix/fireplace/releases/tag/v3.1.1/fireplace , but get this error:

❯ env RUST_BACKTRACE=full fireplace
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: EndOfStream', /checkout/src/libcore/result.rs:860
stack backtrace:
   0:     0x55fbcc2ed883 - std::sys::imp::backtrace::tracing::imp::unwind_backtrace::h3c67687ba454b78b
                               at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:     0x55fbcc2e9bc9 - std::panicking::default_hook::{{closure}}::h07b8ee04b5734d1a
                               at /checkout/src/libstd/sys_common/backtrace.rs:71
                               at /checkout/src/libstd/sys_common/backtrace.rs:60
                               at /checkout/src/libstd/panicking.rs:355
   2:     0x55fbcc2e8cd6 - std::panicking::rust_panic_with_hook::hd0067971b6d1240e
                               at /checkout/src/libstd/panicking.rs:371
                               at /checkout/src/libstd/panicking.rs:549
   3:     0x55fbcc2e87e1 - std::panicking::begin_panic::h1fd1f10a3de8f902
                               at /checkout/src/libstd/panicking.rs:511
   4:     0x55fbcc2e8759 - std::panicking::begin_panic_fmt::haa043917b5d6f21b
                               at /checkout/src/libstd/panicking.rs:495
   5:     0x55fbcc2fc1d6 - core::panicking::panic_fmt::he9c7f335d160b59d
                               at /checkout/src/libstd/panicking.rs:471
   6:     0x55fbcc181802 - core::result::unwrap_failed::h45dce2a959def761
   7:     0x55fbcc19bcd3 - fireplace::main::h501166b0e261f422
   8:     0x55fbcc1a2bb1 - main
   9:     0x7ffb71791400 - __libc_start_main
  10:     0x55fbcc0c9a18 - _start
  11:                0x0 - <unknown>

Make Ui configurable per Output

Currently the ui config field is global and all screens are effected.
It should instead belong into the output configuration and be Output-specific.

Current nightly is broken. Use 2017-03-02

Cannot build fireplace on fedora 25.
nightly-x86_64-unknown-linux-gnu (default)
rustc 1.17.0-nightly (b1e31766d 2017-03-03)

       Fresh wlc-sys v0.0.8
   Compiling wlc v2.0.1
     Running `rustc --crate-name wlc /home/doaxan/.cargo/registry/src/github.com-1ecc6299db9ec823/wlc-2.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="serde_derive"' --cfg 'feature="static"' --cfg 'feature="render"' --cfg 'feature="serde"' --cfg 'feature="default"' --cfg 'feature="wlc-sys"' --cfg 'feature="serialization"' -C metadata=793a3ba1ed16e543 -C extra-filename=-793a3ba1ed16e543 --out-dir /home/doaxan/fireplace/target/release/deps -L dependency=/home/doaxan/fireplace/target/release/deps --extern log=/home/doaxan/fireplace/target/release/deps/liblog-1de695589fd5a905.rlib --extern num_traits=/home/doaxan/fireplace/target/release/deps/libnum_traits-f44a656d09f2ee1a.rlib --extern serde_derive=/home/doaxan/fireplace/target/release/deps/libserde_derive-e7c3727d54fc8c73.so --extern xkbcommon=/home/doaxan/fireplace/target/release/deps/libxkbcommon-c6d3b0dc4afe8d2d.rlib --extern lazy_static=/home/doaxan/fireplace/target/release/deps/liblazy_static-2c238253f1db6b80.rlib --extern libc=/home/doaxan/fireplace/target/release/deps/liblibc-56def1a5449a1812.rlib --extern serde=/home/doaxan/fireplace/target/release/deps/libserde-908251938cd969ac.rlib --extern bitflags=/home/doaxan/fireplace/target/release/deps/libbitflags-5601568f0bbd601b.rlib --extern wlc_sys=/home/doaxan/fireplace/target/release/deps/libwlc_sys-67d72ed26884df02.rlib --extern uinput_sys=/home/doaxan/fireplace/target/release/deps/libuinput_sys-feae97c3ba859673.rlib --cap-lints allow -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/lib -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/lib64 -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/build/protos -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/build/lib/chck/lib`

thread 'rustc' has overflowed its stack
fatal runtime error: stack overflow
error: Could not compile `wlc`.

Caused by:
  process didn't exit successfully: `rustc --crate-name wlc /home/doaxan/.cargo/registry/src/github.com-1ecc6299db9ec823/wlc-2.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg feature="serde_derive" --cfg feature="static" --cfg feature="render" --cfg feature="serde" --cfg feature="default" --cfg feature="wlc-sys" --cfg feature="serialization" -C metadata=793a3ba1ed16e543 -C extra-filename=-793a3ba1ed16e543 --out-dir /home/doaxan/fireplace/target/release/deps -L dependency=/home/doaxan/fireplace/target/release/deps --extern log=/home/doaxan/fireplace/target/release/deps/liblog-1de695589fd5a905.rlib --extern num_traits=/home/doaxan/fireplace/target/release/deps/libnum_traits-f44a656d09f2ee1a.rlib --extern serde_derive=/home/doaxan/fireplace/target/release/deps/libserde_derive-e7c3727d54fc8c73.so --extern xkbcommon=/home/doaxan/fireplace/target/release/deps/libxkbcommon-c6d3b0dc4afe8d2d.rlib --extern lazy_static=/home/doaxan/fireplace/target/release/deps/liblazy_static-2c238253f1db6b80.rlib --extern libc=/home/doaxan/fireplace/target/release/deps/liblibc-56def1a5449a1812.rlib --extern serde=/home/doaxan/fireplace/target/release/deps/libserde-908251938cd969ac.rlib --extern bitflags=/home/doaxan/fireplace/target/release/deps/libbitflags-5601568f0bbd601b.rlib --extern wlc_sys=/home/doaxan/fireplace/target/release/deps/libwlc_sys-67d72ed26884df02.rlib --extern uinput_sys=/home/doaxan/fireplace/target/release/deps/libuinput_sys-feae97c3ba859673.rlib --cap-lints allow -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/lib -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/lib64 -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/build/protos -L native=/home/doaxan/fireplace/target/release/build/wlc-sys-ecb5004244790a3f/out/build/lib/chck/lib` (exit code: 1)

Using without systemd

Hi there! I'm quite excited about the prospect of using Fireplace on FreeBSD. However, currently it depends on the systemd crate, and systemd is very notably not a FreeBSD thing. I realize that Fireplace is currently unmaintained as development is focused on Smithay, but once the backend here is migrated to Smithay, will it be possible to avoid using systemd?

Tabbed / Stacked layouts

Very cool project!

Do you plan to add support for tabbed / stacked layouts supported by i3 and (recently) sway?

Running Fireplace with "fireplace.yaml" in ~/.config panics

When trying to run Fireplace with the default configuration at ~/.config/fireplace.yaml I get the following panic:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: MoreThanOneDocument', /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libcore/result.rs:868
stack backtrace:
   1:     0x564985923c7a - std::sys::imp::backtrace::tracing::imp::write::h55f5b644254d8997
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x564985923101 - std::panicking::default_hook::{{closure}}::h5341ac454af9dec5
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:351
   3:     0x564985922267 - std::panicking::rust_panic_with_hook::h0c50036d8a952120
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:367
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:545
   4:     0x564985921dc1 - std::panicking::begin_panic::h549a5cdf22ed84a1
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:507
   5:     0x564985921d39 - std::panicking::begin_panic_fmt::h1e2376a100034ec9
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:491
   6:     0x564985932d16 - core::panicking::panic_fmt::hfaaf47fca562bd04
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:467
   7:     0x5649857cf2ed - core::result::unwrap_failed::hc6c740f9ff9a57a7
   8:     0x5649857e77a3 - fireplace::main::h92784384c58e10a0
   9:     0x5649857ef351 - main
  10:     0x7f38776e057f - __libc_start_main
  11:     0x56498573dad8 - _start
  12:                0x0 - <unknown>

It other wise runs fine if I don't put the configuration file there.

Add a lock screen

Adding a lock screen directly into the window manager would be the most secure way to make sure no window content leaks above the lock screen.

This is currently blocked by PistonDevelopers/conrod#610
to handle the input.

Add an IPC mechanism

IPC clients should able to connect via a local socket of some sort.
Confirmation about access should be granted by the user via UI.

TODO:

  • Make sure this cannot be used to DDOS the user. (Probably achievable with a checkbox - something like "Dont show requests from this client anymore")
  • Enable setting trusted clients in the configuration / make it possible to autostart them

Protocol will be JSON based.

TODO:

  • Search for some good documentation software.
  • Define what we want to expose:
    • Different protocols/scopes, all differenciate between reading and writing
    • Output API
      • Get/Set scale
      • Get/Set gamma control
      • Get/Set DPMS
      • Set mirroring (blocked by #10)
      • Pin workspace (blocked by #40)
      • enumerate windows (requires window scope)
      • Get workspace api (requires workspace scope)
    • Workspace API
      • get/switch workspace
      • enumerate windows (requires window scope)
      • get mode api (requires mode scope)
    • Mode API
      • Fullscreen:
        • get status/window (requires window scope)
        • set/unset window (requires window scope to get id)
      • Floating
        • get_windows (requires window scope)
        • get/set_window_position (requires window scope to get id)
        • get/set_window_geometry (requires window scope to get id)
        • get/set_window_stack (requires window scope)
        • maximize (requires window scope)
        • minimize (requires window scope)
      • Combined
        • get/set filters
        • move window (requires window scope to get id)
      • Switch
        • switch mode
      • BSP
        • Get/manipulate tree (this might be difficult to get right)
    • Window/View API
      • all_windows - make sure to provide all information available to configuration filters
      • focus/unfocus
      • close
    • Lockscreen
      • activate/deactivate (Ref #11)
        - [ ] Statusbar
      • TODO - Maybe support i3bar's protocol?
        - [ ] Config
      • get/set configuration parameters - requires #39 to be useful
      • reload - blocked by #39

Provide AUR package

From what I can tell, this requires nightly due to use of feature flags in wlc. This should be noted in the README. If fireplace doesn't need that feature (can use unsafe-stable), that would be much nicer.

I tried to build a package for the AUR and got tripped up here, so others may have similar problems.

Some questions regarding fireplace

Hi i have some questions regarding fireplace:

  1. Does it include a taskbar or have an extension to have a taskbar?
  2. Is it lightweight, minimalist like DMW and XMonad?
  3. is it preconfigured or I have to configure it from ground up?
  4. If 2 is not true, are there alternatives to fireplace that uses smithay?

Multi monitor issues

Currently fireplace is also effected by Cloudef/wlc#87

Changing the monitor configuration after launch may need to some unexpected bugs, that should be debugged and fixed rather soon than later.

Fireplace works nested in X but not alone

I can run and use fireplace just fine running it nested in X, but if I try to start it by itself, then I get this error:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 2, message: "No such file or directory" } }', /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libcore/result.rs:860
stack backtrace:
   1:     0x55f48c6cae2a - std::sys::imp::backtrace::tracing::imp::write::h55f5b644254d8997
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x55f48c6ca2b1 - std::panicking::default_hook::{{closure}}::h5341ac454af9dec5
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:351
   3:     0x55f48c6c9417 - std::panicking::rust_panic_with_hook::h0c50036d8a952120
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:367
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:545
   4:     0x55f48c6c8f71 - std::panicking::begin_panic::h549a5cdf22ed84a1
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:507
   5:     0x55f48c6c8ee9 - std::panicking::begin_panic_fmt::h1e2376a100034ec9
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:491
   6:     0x55f48c6d9ec6 - core::panicking::panic_fmt::hfaaf47fca562bd04
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:467
   7:     0x55f48c574934 - core::result::unwrap_failed::hecb9163d22f60696
   8:     0x55f48c58d443 - fireplace::main::he139e971b4d1bd57
   9:     0x55f48c5951e1 - main
  10:     0x7f9580b3c290 - __libc_start_main
  11:     0x55f48c4d5b09 - _start
  12:                0x0 - <unknown>

I'm using a default fireplace.yaml in my ~/.config dir. I'm starting it by going to lightdm, switching the session to fireplace, and also starting it from a tty.

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.