diff --git a/Cargo.lock b/Cargo.lock index 584dc07..2805703 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -163,7 +163,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a" dependencies = [ "android_log-sys", - "env_logger 0.10.2", + "env_logger", "log", "once_cell", ] @@ -177,55 +177,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" - -[[package]] -name = "anstyle-parse" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - [[package]] name = "anyhow" version = "1.0.87" @@ -765,12 +716,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" -[[package]] -name = "colorchoice" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" - [[package]] name = "com" version = "0.6.0" @@ -821,16 +766,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -1242,7 +1177,6 @@ dependencies = [ name = "enostr" version = "0.1.0" dependencies = [ - "env_logger 0.11.5", "ewebsock", "hex", "nostr", @@ -1286,16 +1220,6 @@ dependencies = [ "syn 2.0.89", ] -[[package]] -name = "env_filter" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" -dependencies = [ - "log", - "regex", -] - [[package]] name = "env_logger" version = "0.10.2" @@ -1309,19 +1233,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "env_logger" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - [[package]] name = "epaint" version = "0.29.1" @@ -2087,12 +1998,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - [[package]] name = "itertools" version = "0.10.5" @@ -2591,9 +2496,20 @@ version = "0.2.0" dependencies = [ "android-activity 0.4.3", "android_logger", + "eframe", + "notedeck_columns", + "tokio", + "tracing-appender", + "tracing-subscriber", + "winit", +] + +[[package]] +name = "notedeck_columns" +version = "0.2.0" +dependencies = [ "base32", "bitflags 2.6.0", - "console_error_panic_hook", "dirs", "eframe", "egui", @@ -2603,7 +2519,7 @@ dependencies = [ "egui_virtual_list", "ehttp 0.2.0", "enostr", - "env_logger 0.10.2", + "env_logger", "hex", "image", "indexmap", @@ -2625,12 +2541,9 @@ dependencies = [ "tracing", "tracing-appender", "tracing-subscriber", - "tracing-wasm", "url", "urlencoding", "uuid", - "wasm-bindgen-futures", - "winit", ] [[package]] @@ -4657,17 +4570,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "tracing-wasm" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" -dependencies = [ - "tracing", - "tracing-subscriber", - "wasm-bindgen", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -4870,12 +4772,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - [[package]] name = "uuid" version = "1.10.0" diff --git a/Cargo.toml b/Cargo.toml index 78ef1f6..bf5ce57 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,63 +1,51 @@ -[package] -name = "notedeck" -version = "0.2.0" -authors = ["William Casarin "] -edition = "2021" -default-run = "notedeck" -#rust-version = "1.60" -license = "GPLv3" -description = "A multiplatform nostr client" +[workspace] +resolver = "2" +members = [ + "crates/notedeck", + "crates/notedeck_columns", # Replace with the name of your subcrate -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + "crates/enostr", +] -[lib] -crate-type = ["lib", "cdylib"] - -[dependencies] -egui = { version = "0.29.1", features = ["serde"] } -eframe = { version = "0.29.1", default-features = false, features = [ "wgpu", "wayland", "x11", "android-native-activity" ] } -egui_extras = { version = "0.29.1", features = ["all_loaders"] } -nostrdb = { git = "https://github.com/damus-io/nostrdb-rs", rev = "71154e4100775f6932ee517da4350c433ba14ec7" } -#egui-android = { git = "https://github.com/jb55/egui-android.git" } -ehttp = "0.2.0" -egui_tabs = "0.2.0" -egui_nav = "0.2.0" -egui_virtual_list = "0.5.0" -reqwest = { version = "0.12.4", default-features = false, features = [ "rustls-tls-native-roots" ] } -image = { version = "0.25", features = ["jpeg", "png", "webp"] } -log = "0.4.17" -poll-promise = { version = "0.3.0", features = ["tokio"] } -serde_derive = "1" -serde = { version = "1", features = ["derive"] } # You only need this if you want app persistence -tracing = "0.1.40" -enostr = { path = "enostr" } -serde_json = "1.0.89" -env_logger = "0.10.0" -puffin_egui = { git = "https://github.com/jb55/puffin", package = "puffin_egui", rev = "70ff86d5503815219b01a009afd3669b7903a057", optional = true } -puffin = { git = "https://github.com/jb55/puffin", package = "puffin", rev = "70ff86d5503815219b01a009afd3669b7903a057", optional = true } -hex = "0.4.3" +[workspace.dependencies] base32 = "0.4.0" +bitflags = "2.5.0" +dirs = "5.0.1" +eframe = { version = "0.29.1", default-features = false, features = [ "wgpu", "wayland", "x11", "android-native-activity" ] } +egui = { version = "0.29.1", features = ["serde"] } +egui_extras = { version = "0.29.1", features = ["all_loaders"] } +egui_nav = "0.2.0" +egui_tabs = "0.2.0" +egui_virtual_list = "0.5.0" +ehttp = "0.2.0" +enostr = { path = "crates/enostr" } +env_logger = "0.10.0" +ewebsock = { version = "0.2.0", features = ["tls"] } +hex = "0.4.3" +image = { version = "0.25", features = ["jpeg", "png", "webp"] } +indexmap = "2.6.0" +log = "0.4.17" +nostr = { version = "0.30.0" } +nostrdb = { git = "https://github.com/damus-io/nostrdb-rs", rev = "71154e4100775f6932ee517da4350c433ba14ec7" } +notedeck = { path = "crates/notedeck" } +notedeck_columns = { path = "crates/notedeck_columns" } +open = "5.3.0" +poll-promise = { version = "0.3.0", features = ["tokio"] } +puffin = { git = "https://github.com/jb55/puffin", package = "puffin", rev = "70ff86d5503815219b01a009afd3669b7903a057" } +puffin_egui = { git = "https://github.com/jb55/puffin", package = "puffin_egui", rev = "70ff86d5503815219b01a009afd3669b7903a057" } +reqwest = { version = "0.12.4", default-features = false, features = [ "rustls-tls-native-roots" ] } +serde = { version = "1", features = ["derive"] } # You only need this if you want app persistence +serde_derive = "1" +serde_json = "1.0.89" strum = "0.26" strum_macros = "0.26" -bitflags = "2.5.0" -uuid = { version = "1.10.0", features = ["v4"] } -indexmap = "2.6.0" -dirs = "5.0.1" +tokio = { version = "1.16", features = ["macros", "rt-multi-thread", "fs"] } +tracing = "0.1.40" tracing-appender = "0.2.3" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +url = "2.5.2" urlencoding = "2.1.3" -open = "5.3.0" -url = "2.5" - -[dev-dependencies] -tempfile = "3.13.0" - -[target.'cfg(target_os = "macos")'.dependencies] -security-framework = "2.11.0" - - -[features] -default = [] -profiling = ["puffin", "puffin_egui", "eframe/puffin"] +uuid = { version = "1.10.0", features = ["v4"] } [profile.small] inherits = 'release' @@ -66,72 +54,3 @@ lto = true # Enable link-time optimization codegen-units = 1 # Reduce number of codegen units to increase optimizations panic = 'abort' # Abort on panic strip = true # Strip symbols from binary* - -# web: -[target.'cfg(target_arch = "wasm32")'.dependencies] -console_error_panic_hook = "0.1.6" -tracing-wasm = "0.2" -wasm-bindgen-futures = "0.4" - -# native: -[target.'cfg(not(target_arch = "wasm32"))'.dependencies] -tokio = { version = "1.16", features = ["macros", "rt-multi-thread", "fs"] } -tracing-subscriber = { version = "0.3", features = ["env-filter"] } - - -[target.'cfg(target_os = "android")'.dependencies] -android_logger = "0.11.1" -android-activity = { version = "0.4", features = [ "native-activity" ] } -winit = { version = "0.30.5", features = [ "android-native-activity" ] } -#winit = { git="https://github.com/rust-windowing/winit.git", rev = "2a58b785fed2a3746f7c7eebce95bce67ddfd27c", features = ["android-native-activity"] } - -[package.metadata.bundle] -identifier = "com.damus.notedeck" -icon = ["assets/app_icon.icns"] - -[package.metadata.android] -package = "com.damus.app" -apk_name = "damus" -#assets = "assets" - -[[package.metadata.android.uses_feature]] -name = "android.hardware.vulkan.level" -required = true -version = 1 - -[[package.metadata.android.uses_permission]] -name = "android.permission.WRITE_EXTERNAL_STORAGE" -max_sdk_version = 18 - -[[package.metadata.android.uses_permission]] -name = "android.permission.READ_EXTERNAL_STORAGE" -max_sdk_version = 18 - -[package.metadata.android.signing.release] -path = "damus.keystore" -keystore_password = "damuskeystore" - -[[package.metadata.android.uses_permission]] -name = "android.permission.INTERNET" - -[package.metadata.android.application] -label = "Damus" - -[package.metadata.generate-rpm] -assets = [ - { source = "target/release/notedeck", dest = "/usr/bin/notedeck", mode = "755" }, -] - -[[bin]] -name = "notedeck" -path = "src/bin/notedeck.rs" - -[[bin]] -name = "ui_preview" -path = "src/ui_preview/main.rs" - -#[patch.crates-io] -#egui = "0.29.1" -#eframe = "0.29.1" -#emath = "0.29.1" -#egui_extras = "0.29.1" diff --git a/enostr/Cargo.lock b/crates/enostr/Cargo.lock similarity index 100% rename from enostr/Cargo.lock rename to crates/enostr/Cargo.lock diff --git a/enostr/Cargo.toml b/crates/enostr/Cargo.toml similarity index 68% rename from enostr/Cargo.toml rename to crates/enostr/Cargo.toml index d6a998f..3af81ba 100644 --- a/enostr/Cargo.toml +++ b/crates/enostr/Cargo.toml @@ -11,8 +11,7 @@ serde_derive = "1" serde = { version = "1", features = ["derive"] } # You only need this if you want app persistence serde_json = "1.0.89" nostr = { version = "0.30.0" } -nostrdb = { git = "https://github.com/damus-io/nostrdb-rs", rev = "71154e4100775f6932ee517da4350c433ba14ec7" } -hex = "0.4.3" -tracing = "0.1.40" -env_logger = "0.11.1" -url = "2.5.2" +nostrdb = { workspace = true } +hex = { workspace = true } +tracing = { workspace = true } +url = { workspace = true } diff --git a/enostr/src/client/message.rs b/crates/enostr/src/client/message.rs similarity index 100% rename from enostr/src/client/message.rs rename to crates/enostr/src/client/message.rs diff --git a/enostr/src/client/mod.rs b/crates/enostr/src/client/mod.rs similarity index 100% rename from enostr/src/client/mod.rs rename to crates/enostr/src/client/mod.rs diff --git a/enostr/src/error.rs b/crates/enostr/src/error.rs similarity index 100% rename from enostr/src/error.rs rename to crates/enostr/src/error.rs diff --git a/enostr/src/filter.rs b/crates/enostr/src/filter.rs similarity index 100% rename from enostr/src/filter.rs rename to crates/enostr/src/filter.rs diff --git a/enostr/src/keypair.rs b/crates/enostr/src/keypair.rs similarity index 100% rename from enostr/src/keypair.rs rename to crates/enostr/src/keypair.rs diff --git a/enostr/src/lib.rs b/crates/enostr/src/lib.rs similarity index 100% rename from enostr/src/lib.rs rename to crates/enostr/src/lib.rs diff --git a/enostr/src/note.rs b/crates/enostr/src/note.rs similarity index 100% rename from enostr/src/note.rs rename to crates/enostr/src/note.rs diff --git a/enostr/src/profile.rs b/crates/enostr/src/profile.rs similarity index 100% rename from enostr/src/profile.rs rename to crates/enostr/src/profile.rs diff --git a/enostr/src/pubkey.rs b/crates/enostr/src/pubkey.rs similarity index 100% rename from enostr/src/pubkey.rs rename to crates/enostr/src/pubkey.rs diff --git a/enostr/src/relay/message.rs b/crates/enostr/src/relay/message.rs similarity index 99% rename from enostr/src/relay/message.rs rename to crates/enostr/src/relay/message.rs index dea89e8..80ff84a 100644 --- a/enostr/src/relay/message.rs +++ b/crates/enostr/src/relay/message.rs @@ -173,7 +173,6 @@ mod tests { fn test_handle_valid_event() -> Result<()> { use tracing::debug; - env_logger::init(); let valid_event_msg = r#"["EVENT", "random_string", {"id":"70b10f70c1318967eddf12527799411b1a9780ad9c43858f5e5fcd45486a13a5","pubkey":"379e863e8357163b5bce5d2688dc4f1dcc2d505222fb8d74db600f30535dfdfe","created_at":1612809991,"kind":1,"tags":[],"content":"test","sig":"273a9cd5d11455590f4359500bccb7a89428262b96b3ea87a756b770964472f8c3e87f5d5e64d8d2e859a71462a3f477b554565c4f2f326cb01dd7620db71502"}]"#; let id = "70b10f70c1318967eddf12527799411b1a9780ad9c43858f5e5fcd45486a13a5"; diff --git a/enostr/src/relay/mod.rs b/crates/enostr/src/relay/mod.rs similarity index 100% rename from enostr/src/relay/mod.rs rename to crates/enostr/src/relay/mod.rs diff --git a/enostr/src/relay/pool.rs b/crates/enostr/src/relay/pool.rs similarity index 100% rename from enostr/src/relay/pool.rs rename to crates/enostr/src/relay/pool.rs diff --git a/crates/notedeck/Cargo.toml b/crates/notedeck/Cargo.toml new file mode 100644 index 0000000..962e787 --- /dev/null +++ b/crates/notedeck/Cargo.toml @@ -0,0 +1,71 @@ +[package] +name = "notedeck" +version = "0.2.0" +authors = ["William Casarin ", "kernelkind "] +edition = "2021" +default-run = "notedeck" +#rust-version = "1.60" +license = "GPLv3" +description = "A nostr browser" + +[dependencies] +notedeck_columns = { workspace = true } +tracing-subscriber = { workspace = true } +tracing-appender = { workspace = true } +tokio = { workspace = true } +eframe = { workspace = true } + +[[bin]] +name = "notedeck" +path = "src/notedeck.rs" + +[[bin]] +name = "ui_preview" +path = "src/preview.rs" + +[features] +default = [] +profiling = ["notedeck_columns/puffin"] + +[target.'cfg(target_os = "android")'.dependencies] +android_logger = "0.11.1" +android-activity = { version = "0.4", features = [ "native-activity" ] } +winit = { version = "0.30.5", features = [ "android-native-activity" ] } +#winit = { git="https://github.com/rust-windowing/winit.git", rev = "2a58b785fed2a3746f7c7eebce95bce67ddfd27c", features = ["android-native-activity"] } + +[package.metadata.bundle] +identifier = "com.damus.notedeck" +icon = ["assets/app_icon.icns"] + +[package.metadata.android] +package = "com.damus.app" +apk_name = "damus" +#assets = "assets" + +[[package.metadata.android.uses_feature]] +name = "android.hardware.vulkan.level" +required = true +version = 1 + +[[package.metadata.android.uses_permission]] +name = "android.permission.WRITE_EXTERNAL_STORAGE" +max_sdk_version = 18 + +[[package.metadata.android.uses_permission]] +name = "android.permission.READ_EXTERNAL_STORAGE" +max_sdk_version = 18 + +[package.metadata.android.signing.release] +path = "damus.keystore" +keystore_password = "damuskeystore" + +[[package.metadata.android.uses_permission]] +name = "android.permission.INTERNET" + +[package.metadata.android.application] +label = "Damus" + +[package.metadata.generate-rpm] +assets = [ + { source = "target/release/notedeck", dest = "/usr/bin/notedeck", mode = "755" }, +] diff --git a/src/bin/notedeck.rs b/crates/notedeck/src/notedeck.rs similarity index 99% rename from src/bin/notedeck.rs rename to crates/notedeck/src/notedeck.rs index 8183a99..9093dcc 100644 --- a/src/bin/notedeck.rs +++ b/crates/notedeck/src/notedeck.rs @@ -1,6 +1,6 @@ #![warn(clippy::all, rust_2018_idioms)] #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release -use notedeck::{ +use notedeck_columns::{ app_creation::generate_native_options, storage::{DataPath, DataPathType}, Damus, diff --git a/src/ui_preview/main.rs b/crates/notedeck/src/preview.rs similarity index 91% rename from src/ui_preview/main.rs rename to crates/notedeck/src/preview.rs index 03c110c..b17fca5 100644 --- a/src/ui_preview/main.rs +++ b/crates/notedeck/src/preview.rs @@ -1,11 +1,11 @@ -use notedeck::ui::configure_deck::ConfigureDeckView; -use notedeck::ui::edit_deck::EditDeckView; -use notedeck::ui::{ +use notedeck_columns::ui::configure_deck::ConfigureDeckView; +use notedeck_columns::ui::edit_deck::EditDeckView; +use notedeck_columns::ui::{ account_login_view::AccountLoginView, accounts::AccountsView, add_column::AddColumnView, DesktopSidePanel, PostView, Preview, PreviewApp, PreviewConfig, ProfilePic, ProfilePreview, RelayView, }; -use notedeck::{ +use notedeck_columns::{ app_creation::{generate_mobile_emulator_native_options, generate_native_options, setup_cc}, storage::DataPath, }; @@ -93,7 +93,7 @@ async fn main() { "light mode previews: {}", if light_mode { "enabled" } else { "disabled" } ); - let is_mobile = is_mobile.unwrap_or(notedeck::ui::is_compiled_as_mobile()); + let is_mobile = is_mobile.unwrap_or(notedeck_columns::ui::is_compiled_as_mobile()); let runner = PreviewRunner::new(is_mobile, light_mode); previews!( diff --git a/crates/notedeck_columns/Cargo.toml b/crates/notedeck_columns/Cargo.toml new file mode 100644 index 0000000..6b8d0a2 --- /dev/null +++ b/crates/notedeck_columns/Cargo.toml @@ -0,0 +1,58 @@ +[package] +name = "notedeck_columns" +version = "0.2.0" +authors = ["William Casarin "] +edition = "2021" +#rust-version = "1.60" +license = "GPLv3" +description = "A tweetdeck-style notedeck app" + +[lib] +crate-type = ["lib", "cdylib"] + +[dependencies] +base32 = { workspace = true } +bitflags = { workspace = true } +dirs = { workspace = true } +eframe = { workspace = true } +egui = { workspace = true } +egui_extras = { workspace = true } +egui_nav = { workspace = true } +egui_tabs = { workspace = true } +egui_virtual_list = { workspace = true } +ehttp = { workspace = true } +enostr = { workspace = true } +env_logger = { workspace = true } +hex = { workspace = true } +image = { workspace = true } +indexmap = { workspace = true } +log = { workspace = true } +nostrdb = { workspace = true } +open = { workspace = true } +poll-promise = { workspace = true } +puffin = { workspace = true, optional = true } +puffin_egui = { workspace = true, optional = true } +reqwest = { workspace = true } +serde = { workspace = true } +serde_derive = { workspace = true } +serde_json = { workspace = true } +strum = { workspace = true } +strum_macros = { workspace = true } +tokio = { workspace = true, features = ["macros", "rt-multi-thread", "fs"] } +tracing = { workspace = true } +tracing-appender = { workspace = true } +tracing-subscriber = { workspace = true } +url = { workspace = true } +urlencoding = { workspace = true } +uuid = { workspace = true } + +[dev-dependencies] +tempfile = "3.13.0" + +[target.'cfg(target_os = "macos")'.dependencies] +security-framework = "2.11.0" + +[features] +default = [] +profiling = ["puffin", "puffin_egui", "eframe/puffin"] + diff --git a/assets/Logo-Gradient-2x.png b/crates/notedeck_columns/assets/Logo-Gradient-2x.png similarity index 100% rename from assets/Logo-Gradient-2x.png rename to crates/notedeck_columns/assets/Logo-Gradient-2x.png diff --git a/assets/Welcome to Nostrdeck 2x.png b/crates/notedeck_columns/assets/Welcome to Nostrdeck 2x.png similarity index 100% rename from assets/Welcome to Nostrdeck 2x.png rename to crates/notedeck_columns/assets/Welcome to Nostrdeck 2x.png diff --git a/assets/app_icon.icns b/crates/notedeck_columns/assets/app_icon.icns similarity index 100% rename from assets/app_icon.icns rename to crates/notedeck_columns/assets/app_icon.icns diff --git a/assets/damus-app-icon.png b/crates/notedeck_columns/assets/damus-app-icon.png similarity index 100% rename from assets/damus-app-icon.png rename to crates/notedeck_columns/assets/damus-app-icon.png diff --git a/assets/damus-app-icon.svg b/crates/notedeck_columns/assets/damus-app-icon.svg similarity index 100% rename from assets/damus-app-icon.svg rename to crates/notedeck_columns/assets/damus-app-icon.svg diff --git a/assets/damus.ico b/crates/notedeck_columns/assets/damus.ico similarity index 100% rename from assets/damus.ico rename to crates/notedeck_columns/assets/damus.ico diff --git a/assets/damus.svg b/crates/notedeck_columns/assets/damus.svg similarity index 100% rename from assets/damus.svg rename to crates/notedeck_columns/assets/damus.svg diff --git a/assets/damus_rounded.svg b/crates/notedeck_columns/assets/damus_rounded.svg similarity index 100% rename from assets/damus_rounded.svg rename to crates/notedeck_columns/assets/damus_rounded.svg diff --git a/assets/damus_rounded_80.png b/crates/notedeck_columns/assets/damus_rounded_80.png similarity index 100% rename from assets/damus_rounded_80.png rename to crates/notedeck_columns/assets/damus_rounded_80.png diff --git a/assets/favicon.ico b/crates/notedeck_columns/assets/favicon.ico similarity index 100% rename from assets/favicon.ico rename to crates/notedeck_columns/assets/favicon.ico diff --git a/assets/fonts/DejaVuSans-Bold-SansEmoji.ttf b/crates/notedeck_columns/assets/fonts/DejaVuSans-Bold-SansEmoji.ttf similarity index 100% rename from assets/fonts/DejaVuSans-Bold-SansEmoji.ttf rename to crates/notedeck_columns/assets/fonts/DejaVuSans-Bold-SansEmoji.ttf diff --git a/assets/fonts/DejaVuSans-Bold.ttf b/crates/notedeck_columns/assets/fonts/DejaVuSans-Bold.ttf similarity index 100% rename from assets/fonts/DejaVuSans-Bold.ttf rename to crates/notedeck_columns/assets/fonts/DejaVuSans-Bold.ttf diff --git a/assets/fonts/DejaVuSans.ttf b/crates/notedeck_columns/assets/fonts/DejaVuSans.ttf similarity index 100% rename from assets/fonts/DejaVuSans.ttf rename to crates/notedeck_columns/assets/fonts/DejaVuSans.ttf diff --git a/assets/fonts/DejaVuSansSansEmoji.ttf b/crates/notedeck_columns/assets/fonts/DejaVuSansSansEmoji.ttf similarity index 100% rename from assets/fonts/DejaVuSansSansEmoji.ttf rename to crates/notedeck_columns/assets/fonts/DejaVuSansSansEmoji.ttf diff --git a/assets/fonts/Inconsolata-Regular.ttf b/crates/notedeck_columns/assets/fonts/Inconsolata-Regular.ttf similarity index 100% rename from assets/fonts/Inconsolata-Regular.ttf rename to crates/notedeck_columns/assets/fonts/Inconsolata-Regular.ttf diff --git a/assets/fonts/NotoEmoji-Regular.ttf b/crates/notedeck_columns/assets/fonts/NotoEmoji-Regular.ttf similarity index 100% rename from assets/fonts/NotoEmoji-Regular.ttf rename to crates/notedeck_columns/assets/fonts/NotoEmoji-Regular.ttf diff --git a/assets/fonts/NotoSansCJK-Regular.ttc b/crates/notedeck_columns/assets/fonts/NotoSansCJK-Regular.ttc similarity index 100% rename from assets/fonts/NotoSansCJK-Regular.ttc rename to crates/notedeck_columns/assets/fonts/NotoSansCJK-Regular.ttc diff --git a/assets/fonts/NotoSansThai-Regular.ttf b/crates/notedeck_columns/assets/fonts/NotoSansThai-Regular.ttf similarity index 100% rename from assets/fonts/NotoSansThai-Regular.ttf rename to crates/notedeck_columns/assets/fonts/NotoSansThai-Regular.ttf diff --git a/assets/fonts/ark/ark-pixel-10px-proportional-latin.ttf b/crates/notedeck_columns/assets/fonts/ark/ark-pixel-10px-proportional-latin.ttf similarity index 100% rename from assets/fonts/ark/ark-pixel-10px-proportional-latin.ttf rename to crates/notedeck_columns/assets/fonts/ark/ark-pixel-10px-proportional-latin.ttf diff --git a/assets/fonts/onest/OnestBlack1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestBlack1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestBlack1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestBlack1602-hint.ttf diff --git a/assets/fonts/onest/OnestBold1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestBold1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestBold1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestBold1602-hint.ttf diff --git a/assets/fonts/onest/OnestExtraBold1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestExtraBold1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestExtraBold1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestExtraBold1602-hint.ttf diff --git a/assets/fonts/onest/OnestLight1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestLight1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestLight1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestLight1602-hint.ttf diff --git a/assets/fonts/onest/OnestMedium1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestMedium1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestMedium1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestMedium1602-hint.ttf diff --git a/assets/fonts/onest/OnestRegular1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestRegular1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestRegular1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestRegular1602-hint.ttf diff --git a/assets/fonts/onest/OnestThin1602-hint.ttf b/crates/notedeck_columns/assets/fonts/onest/OnestThin1602-hint.ttf similarity index 100% rename from assets/fonts/onest/OnestThin1602-hint.ttf rename to crates/notedeck_columns/assets/fonts/onest/OnestThin1602-hint.ttf diff --git a/assets/fonts/pressstart/PressStart2P.ttf b/crates/notedeck_columns/assets/fonts/pressstart/PressStart2P.ttf similarity index 100% rename from assets/fonts/pressstart/PressStart2P.ttf rename to crates/notedeck_columns/assets/fonts/pressstart/PressStart2P.ttf diff --git a/assets/icons/add_account_icon_4x.png b/crates/notedeck_columns/assets/icons/add_account_icon_4x.png similarity index 100% rename from assets/icons/add_account_icon_4x.png rename to crates/notedeck_columns/assets/icons/add_account_icon_4x.png diff --git a/assets/icons/add_column_dark_4x.png b/crates/notedeck_columns/assets/icons/add_column_dark_4x.png similarity index 100% rename from assets/icons/add_column_dark_4x.png rename to crates/notedeck_columns/assets/icons/add_column_dark_4x.png diff --git a/assets/icons/add_column_light_4x.png b/crates/notedeck_columns/assets/icons/add_column_light_4x.png similarity index 100% rename from assets/icons/add_column_light_4x.png rename to crates/notedeck_columns/assets/icons/add_column_light_4x.png diff --git a/assets/icons/column_delete_icon_4x.png b/crates/notedeck_columns/assets/icons/column_delete_icon_4x.png similarity index 100% rename from assets/icons/column_delete_icon_4x.png rename to crates/notedeck_columns/assets/icons/column_delete_icon_4x.png diff --git a/assets/icons/column_delete_icon_light_4x.png b/crates/notedeck_columns/assets/icons/column_delete_icon_light_4x.png similarity index 100% rename from assets/icons/column_delete_icon_light_4x.png rename to crates/notedeck_columns/assets/icons/column_delete_icon_light_4x.png diff --git a/assets/icons/connected_icon_4x.png b/crates/notedeck_columns/assets/icons/connected_icon_4x.png similarity index 100% rename from assets/icons/connected_icon_4x.png rename to crates/notedeck_columns/assets/icons/connected_icon_4x.png diff --git a/assets/icons/connecting_icon_4x.png b/crates/notedeck_columns/assets/icons/connecting_icon_4x.png similarity index 100% rename from assets/icons/connecting_icon_4x.png rename to crates/notedeck_columns/assets/icons/connecting_icon_4x.png diff --git a/assets/icons/delete_icon_4x.png b/crates/notedeck_columns/assets/icons/delete_icon_4x.png similarity index 100% rename from assets/icons/delete_icon_4x.png rename to crates/notedeck_columns/assets/icons/delete_icon_4x.png diff --git a/assets/icons/disconnected_icon_4x.png b/crates/notedeck_columns/assets/icons/disconnected_icon_4x.png similarity index 100% rename from assets/icons/disconnected_icon_4x.png rename to crates/notedeck_columns/assets/icons/disconnected_icon_4x.png diff --git a/assets/icons/help_icon_dark_4x.png b/crates/notedeck_columns/assets/icons/help_icon_dark_4x.png similarity index 100% rename from assets/icons/help_icon_dark_4x.png rename to crates/notedeck_columns/assets/icons/help_icon_dark_4x.png diff --git a/assets/icons/help_icon_inverted_4x.png b/crates/notedeck_columns/assets/icons/help_icon_inverted_4x.png similarity index 100% rename from assets/icons/help_icon_inverted_4x.png rename to crates/notedeck_columns/assets/icons/help_icon_inverted_4x.png diff --git a/assets/icons/home_icon_dark_4x.png b/crates/notedeck_columns/assets/icons/home_icon_dark_4x.png similarity index 100% rename from assets/icons/home_icon_dark_4x.png rename to crates/notedeck_columns/assets/icons/home_icon_dark_4x.png diff --git a/assets/icons/new_deck_icon_4x_dark.png b/crates/notedeck_columns/assets/icons/new_deck_icon_4x_dark.png similarity index 100% rename from assets/icons/new_deck_icon_4x_dark.png rename to crates/notedeck_columns/assets/icons/new_deck_icon_4x_dark.png diff --git a/assets/icons/notifications_icon_dark_4x.png b/crates/notedeck_columns/assets/icons/notifications_icon_dark_4x.png similarity index 100% rename from assets/icons/notifications_icon_dark_4x.png rename to crates/notedeck_columns/assets/icons/notifications_icon_dark_4x.png diff --git a/assets/icons/plus_icon_4x.png b/crates/notedeck_columns/assets/icons/plus_icon_4x.png similarity index 100% rename from assets/icons/plus_icon_4x.png rename to crates/notedeck_columns/assets/icons/plus_icon_4x.png diff --git a/assets/icons/reply-dark.png b/crates/notedeck_columns/assets/icons/reply-dark.png similarity index 100% rename from assets/icons/reply-dark.png rename to crates/notedeck_columns/assets/icons/reply-dark.png diff --git a/assets/icons/reply.png b/crates/notedeck_columns/assets/icons/reply.png similarity index 100% rename from assets/icons/reply.png rename to crates/notedeck_columns/assets/icons/reply.png diff --git a/assets/icons/reply.svg b/crates/notedeck_columns/assets/icons/reply.svg similarity index 100% rename from assets/icons/reply.svg rename to crates/notedeck_columns/assets/icons/reply.svg diff --git a/assets/icons/repost_icon_4x.png b/crates/notedeck_columns/assets/icons/repost_icon_4x.png similarity index 100% rename from assets/icons/repost_icon_4x.png rename to crates/notedeck_columns/assets/icons/repost_icon_4x.png diff --git a/assets/icons/repost_light_4x.png b/crates/notedeck_columns/assets/icons/repost_light_4x.png similarity index 100% rename from assets/icons/repost_light_4x.png rename to crates/notedeck_columns/assets/icons/repost_light_4x.png diff --git a/assets/icons/select_icon_3x.png b/crates/notedeck_columns/assets/icons/select_icon_3x.png similarity index 100% rename from assets/icons/select_icon_3x.png rename to crates/notedeck_columns/assets/icons/select_icon_3x.png diff --git a/assets/icons/settings_dark_4x.png b/crates/notedeck_columns/assets/icons/settings_dark_4x.png similarity index 100% rename from assets/icons/settings_dark_4x.png rename to crates/notedeck_columns/assets/icons/settings_dark_4x.png diff --git a/assets/icons/settings_light_4x.png b/crates/notedeck_columns/assets/icons/settings_light_4x.png similarity index 100% rename from assets/icons/settings_light_4x.png rename to crates/notedeck_columns/assets/icons/settings_light_4x.png diff --git a/assets/icons/signout_icon_4x.png b/crates/notedeck_columns/assets/icons/signout_icon_4x.png similarity index 100% rename from assets/icons/signout_icon_4x.png rename to crates/notedeck_columns/assets/icons/signout_icon_4x.png diff --git a/assets/icons/universe_icon_dark_4x.png b/crates/notedeck_columns/assets/icons/universe_icon_dark_4x.png similarity index 100% rename from assets/icons/universe_icon_dark_4x.png rename to crates/notedeck_columns/assets/icons/universe_icon_dark_4x.png diff --git a/assets/manifest.json b/crates/notedeck_columns/assets/manifest.json similarity index 100% rename from assets/manifest.json rename to crates/notedeck_columns/assets/manifest.json diff --git a/assets/sw.js b/crates/notedeck_columns/assets/sw.js similarity index 100% rename from assets/sw.js rename to crates/notedeck_columns/assets/sw.js diff --git a/build.rs b/crates/notedeck_columns/build.rs similarity index 100% rename from build.rs rename to crates/notedeck_columns/build.rs diff --git a/src/abbrev.rs b/crates/notedeck_columns/src/abbrev.rs similarity index 100% rename from src/abbrev.rs rename to crates/notedeck_columns/src/abbrev.rs diff --git a/src/accounts/mod.rs b/crates/notedeck_columns/src/accounts/mod.rs similarity index 100% rename from src/accounts/mod.rs rename to crates/notedeck_columns/src/accounts/mod.rs diff --git a/src/accounts/route.rs b/crates/notedeck_columns/src/accounts/route.rs similarity index 100% rename from src/accounts/route.rs rename to crates/notedeck_columns/src/accounts/route.rs diff --git a/src/actionbar.rs b/crates/notedeck_columns/src/actionbar.rs similarity index 100% rename from src/actionbar.rs rename to crates/notedeck_columns/src/actionbar.rs diff --git a/src/app.rs b/crates/notedeck_columns/src/app.rs similarity index 100% rename from src/app.rs rename to crates/notedeck_columns/src/app.rs diff --git a/src/app_creation.rs b/crates/notedeck_columns/src/app_creation.rs similarity index 100% rename from src/app_creation.rs rename to crates/notedeck_columns/src/app_creation.rs diff --git a/src/app_size_handler.rs b/crates/notedeck_columns/src/app_size_handler.rs similarity index 100% rename from src/app_size_handler.rs rename to crates/notedeck_columns/src/app_size_handler.rs diff --git a/src/app_style.rs b/crates/notedeck_columns/src/app_style.rs similarity index 100% rename from src/app_style.rs rename to crates/notedeck_columns/src/app_style.rs diff --git a/src/args.rs b/crates/notedeck_columns/src/args.rs similarity index 100% rename from src/args.rs rename to crates/notedeck_columns/src/args.rs diff --git a/src/colors.rs b/crates/notedeck_columns/src/colors.rs similarity index 100% rename from src/colors.rs rename to crates/notedeck_columns/src/colors.rs diff --git a/src/column.rs b/crates/notedeck_columns/src/column.rs similarity index 100% rename from src/column.rs rename to crates/notedeck_columns/src/column.rs diff --git a/src/deck_state.rs b/crates/notedeck_columns/src/deck_state.rs similarity index 100% rename from src/deck_state.rs rename to crates/notedeck_columns/src/deck_state.rs diff --git a/src/decks.rs b/crates/notedeck_columns/src/decks.rs similarity index 100% rename from src/decks.rs rename to crates/notedeck_columns/src/decks.rs diff --git a/src/draft.rs b/crates/notedeck_columns/src/draft.rs similarity index 100% rename from src/draft.rs rename to crates/notedeck_columns/src/draft.rs diff --git a/src/error.rs b/crates/notedeck_columns/src/error.rs similarity index 100% rename from src/error.rs rename to crates/notedeck_columns/src/error.rs diff --git a/src/filter.rs b/crates/notedeck_columns/src/filter.rs similarity index 100% rename from src/filter.rs rename to crates/notedeck_columns/src/filter.rs diff --git a/src/fonts.rs b/crates/notedeck_columns/src/fonts.rs similarity index 100% rename from src/fonts.rs rename to crates/notedeck_columns/src/fonts.rs diff --git a/src/frame_history.rs b/crates/notedeck_columns/src/frame_history.rs similarity index 100% rename from src/frame_history.rs rename to crates/notedeck_columns/src/frame_history.rs diff --git a/src/images.rs b/crates/notedeck_columns/src/images.rs similarity index 100% rename from src/images.rs rename to crates/notedeck_columns/src/images.rs diff --git a/src/imgcache.rs b/crates/notedeck_columns/src/imgcache.rs similarity index 100% rename from src/imgcache.rs rename to crates/notedeck_columns/src/imgcache.rs diff --git a/src/key_parsing.rs b/crates/notedeck_columns/src/key_parsing.rs similarity index 100% rename from src/key_parsing.rs rename to crates/notedeck_columns/src/key_parsing.rs diff --git a/src/lib.rs b/crates/notedeck_columns/src/lib.rs similarity index 100% rename from src/lib.rs rename to crates/notedeck_columns/src/lib.rs diff --git a/src/login_manager.rs b/crates/notedeck_columns/src/login_manager.rs similarity index 100% rename from src/login_manager.rs rename to crates/notedeck_columns/src/login_manager.rs diff --git a/src/multi_subscriber.rs b/crates/notedeck_columns/src/multi_subscriber.rs similarity index 100% rename from src/multi_subscriber.rs rename to crates/notedeck_columns/src/multi_subscriber.rs diff --git a/src/muted.rs b/crates/notedeck_columns/src/muted.rs similarity index 100% rename from src/muted.rs rename to crates/notedeck_columns/src/muted.rs diff --git a/src/nav.rs b/crates/notedeck_columns/src/nav.rs similarity index 100% rename from src/nav.rs rename to crates/notedeck_columns/src/nav.rs diff --git a/src/note.rs b/crates/notedeck_columns/src/note.rs similarity index 100% rename from src/note.rs rename to crates/notedeck_columns/src/note.rs diff --git a/src/notecache.rs b/crates/notedeck_columns/src/notecache.rs similarity index 100% rename from src/notecache.rs rename to crates/notedeck_columns/src/notecache.rs diff --git a/src/notes_holder.rs b/crates/notedeck_columns/src/notes_holder.rs similarity index 100% rename from src/notes_holder.rs rename to crates/notedeck_columns/src/notes_holder.rs diff --git a/src/post.rs b/crates/notedeck_columns/src/post.rs similarity index 100% rename from src/post.rs rename to crates/notedeck_columns/src/post.rs diff --git a/src/profile.rs b/crates/notedeck_columns/src/profile.rs similarity index 100% rename from src/profile.rs rename to crates/notedeck_columns/src/profile.rs diff --git a/src/relay_pool_manager.rs b/crates/notedeck_columns/src/relay_pool_manager.rs similarity index 100% rename from src/relay_pool_manager.rs rename to crates/notedeck_columns/src/relay_pool_manager.rs diff --git a/src/result.rs b/crates/notedeck_columns/src/result.rs similarity index 100% rename from src/result.rs rename to crates/notedeck_columns/src/result.rs diff --git a/src/route.rs b/crates/notedeck_columns/src/route.rs similarity index 100% rename from src/route.rs rename to crates/notedeck_columns/src/route.rs diff --git a/src/storage/decks.rs b/crates/notedeck_columns/src/storage/decks.rs similarity index 100% rename from src/storage/decks.rs rename to crates/notedeck_columns/src/storage/decks.rs diff --git a/src/storage/file_key_storage.rs b/crates/notedeck_columns/src/storage/file_key_storage.rs similarity index 100% rename from src/storage/file_key_storage.rs rename to crates/notedeck_columns/src/storage/file_key_storage.rs diff --git a/src/storage/file_storage.rs b/crates/notedeck_columns/src/storage/file_storage.rs similarity index 100% rename from src/storage/file_storage.rs rename to crates/notedeck_columns/src/storage/file_storage.rs diff --git a/src/storage/key_storage_impl.rs b/crates/notedeck_columns/src/storage/key_storage_impl.rs similarity index 100% rename from src/storage/key_storage_impl.rs rename to crates/notedeck_columns/src/storage/key_storage_impl.rs diff --git a/src/storage/migration.rs b/crates/notedeck_columns/src/storage/migration.rs similarity index 100% rename from src/storage/migration.rs rename to crates/notedeck_columns/src/storage/migration.rs diff --git a/src/storage/mod.rs b/crates/notedeck_columns/src/storage/mod.rs similarity index 100% rename from src/storage/mod.rs rename to crates/notedeck_columns/src/storage/mod.rs diff --git a/src/storage/security_framework_key_storage.rs b/crates/notedeck_columns/src/storage/security_framework_key_storage.rs similarity index 100% rename from src/storage/security_framework_key_storage.rs rename to crates/notedeck_columns/src/storage/security_framework_key_storage.rs diff --git a/src/subscriptions.rs b/crates/notedeck_columns/src/subscriptions.rs similarity index 100% rename from src/subscriptions.rs rename to crates/notedeck_columns/src/subscriptions.rs diff --git a/src/support.rs b/crates/notedeck_columns/src/support.rs similarity index 100% rename from src/support.rs rename to crates/notedeck_columns/src/support.rs diff --git a/src/test_data.rs b/crates/notedeck_columns/src/test_data.rs similarity index 100% rename from src/test_data.rs rename to crates/notedeck_columns/src/test_data.rs diff --git a/src/test_utils.rs b/crates/notedeck_columns/src/test_utils.rs similarity index 100% rename from src/test_utils.rs rename to crates/notedeck_columns/src/test_utils.rs diff --git a/src/thread.rs b/crates/notedeck_columns/src/thread.rs similarity index 100% rename from src/thread.rs rename to crates/notedeck_columns/src/thread.rs diff --git a/src/time.rs b/crates/notedeck_columns/src/time.rs similarity index 100% rename from src/time.rs rename to crates/notedeck_columns/src/time.rs diff --git a/src/timecache.rs b/crates/notedeck_columns/src/timecache.rs similarity index 100% rename from src/timecache.rs rename to crates/notedeck_columns/src/timecache.rs diff --git a/src/timeline/kind.rs b/crates/notedeck_columns/src/timeline/kind.rs similarity index 100% rename from src/timeline/kind.rs rename to crates/notedeck_columns/src/timeline/kind.rs diff --git a/src/timeline/mod.rs b/crates/notedeck_columns/src/timeline/mod.rs similarity index 100% rename from src/timeline/mod.rs rename to crates/notedeck_columns/src/timeline/mod.rs diff --git a/src/timeline/route.rs b/crates/notedeck_columns/src/timeline/route.rs similarity index 100% rename from src/timeline/route.rs rename to crates/notedeck_columns/src/timeline/route.rs diff --git a/src/ui/account_login_view.rs b/crates/notedeck_columns/src/ui/account_login_view.rs similarity index 100% rename from src/ui/account_login_view.rs rename to crates/notedeck_columns/src/ui/account_login_view.rs diff --git a/src/ui/accounts.rs b/crates/notedeck_columns/src/ui/accounts.rs similarity index 100% rename from src/ui/accounts.rs rename to crates/notedeck_columns/src/ui/accounts.rs diff --git a/src/ui/add_column.rs b/crates/notedeck_columns/src/ui/add_column.rs similarity index 100% rename from src/ui/add_column.rs rename to crates/notedeck_columns/src/ui/add_column.rs diff --git a/src/ui/anim.rs b/crates/notedeck_columns/src/ui/anim.rs similarity index 100% rename from src/ui/anim.rs rename to crates/notedeck_columns/src/ui/anim.rs diff --git a/src/ui/column/header.rs b/crates/notedeck_columns/src/ui/column/header.rs similarity index 100% rename from src/ui/column/header.rs rename to crates/notedeck_columns/src/ui/column/header.rs diff --git a/src/ui/column/mod.rs b/crates/notedeck_columns/src/ui/column/mod.rs similarity index 100% rename from src/ui/column/mod.rs rename to crates/notedeck_columns/src/ui/column/mod.rs diff --git a/src/ui/configure_deck.rs b/crates/notedeck_columns/src/ui/configure_deck.rs similarity index 100% rename from src/ui/configure_deck.rs rename to crates/notedeck_columns/src/ui/configure_deck.rs diff --git a/src/ui/edit_deck.rs b/crates/notedeck_columns/src/ui/edit_deck.rs similarity index 100% rename from src/ui/edit_deck.rs rename to crates/notedeck_columns/src/ui/edit_deck.rs diff --git a/src/ui/mention.rs b/crates/notedeck_columns/src/ui/mention.rs similarity index 100% rename from src/ui/mention.rs rename to crates/notedeck_columns/src/ui/mention.rs diff --git a/src/ui/mod.rs b/crates/notedeck_columns/src/ui/mod.rs similarity index 100% rename from src/ui/mod.rs rename to crates/notedeck_columns/src/ui/mod.rs diff --git a/src/ui/note/contents.rs b/crates/notedeck_columns/src/ui/note/contents.rs similarity index 100% rename from src/ui/note/contents.rs rename to crates/notedeck_columns/src/ui/note/contents.rs diff --git a/src/ui/note/context.rs b/crates/notedeck_columns/src/ui/note/context.rs similarity index 100% rename from src/ui/note/context.rs rename to crates/notedeck_columns/src/ui/note/context.rs diff --git a/src/ui/note/mod.rs b/crates/notedeck_columns/src/ui/note/mod.rs similarity index 100% rename from src/ui/note/mod.rs rename to crates/notedeck_columns/src/ui/note/mod.rs diff --git a/src/ui/note/options.rs b/crates/notedeck_columns/src/ui/note/options.rs similarity index 100% rename from src/ui/note/options.rs rename to crates/notedeck_columns/src/ui/note/options.rs diff --git a/src/ui/note/post.rs b/crates/notedeck_columns/src/ui/note/post.rs similarity index 100% rename from src/ui/note/post.rs rename to crates/notedeck_columns/src/ui/note/post.rs diff --git a/src/ui/note/quote_repost.rs b/crates/notedeck_columns/src/ui/note/quote_repost.rs similarity index 100% rename from src/ui/note/quote_repost.rs rename to crates/notedeck_columns/src/ui/note/quote_repost.rs diff --git a/src/ui/note/reply.rs b/crates/notedeck_columns/src/ui/note/reply.rs similarity index 100% rename from src/ui/note/reply.rs rename to crates/notedeck_columns/src/ui/note/reply.rs diff --git a/src/ui/preview.rs b/crates/notedeck_columns/src/ui/preview.rs similarity index 100% rename from src/ui/preview.rs rename to crates/notedeck_columns/src/ui/preview.rs diff --git a/src/ui/profile/mod.rs b/crates/notedeck_columns/src/ui/profile/mod.rs similarity index 100% rename from src/ui/profile/mod.rs rename to crates/notedeck_columns/src/ui/profile/mod.rs diff --git a/src/ui/profile/picture.rs b/crates/notedeck_columns/src/ui/profile/picture.rs similarity index 100% rename from src/ui/profile/picture.rs rename to crates/notedeck_columns/src/ui/profile/picture.rs diff --git a/src/ui/profile/preview.rs b/crates/notedeck_columns/src/ui/profile/preview.rs similarity index 100% rename from src/ui/profile/preview.rs rename to crates/notedeck_columns/src/ui/profile/preview.rs diff --git a/src/ui/relay.rs b/crates/notedeck_columns/src/ui/relay.rs similarity index 100% rename from src/ui/relay.rs rename to crates/notedeck_columns/src/ui/relay.rs diff --git a/src/ui/side_panel.rs b/crates/notedeck_columns/src/ui/side_panel.rs similarity index 100% rename from src/ui/side_panel.rs rename to crates/notedeck_columns/src/ui/side_panel.rs diff --git a/src/ui/support.rs b/crates/notedeck_columns/src/ui/support.rs similarity index 100% rename from src/ui/support.rs rename to crates/notedeck_columns/src/ui/support.rs diff --git a/src/ui/thread.rs b/crates/notedeck_columns/src/ui/thread.rs similarity index 100% rename from src/ui/thread.rs rename to crates/notedeck_columns/src/ui/thread.rs diff --git a/src/ui/timeline.rs b/crates/notedeck_columns/src/ui/timeline.rs similarity index 100% rename from src/ui/timeline.rs rename to crates/notedeck_columns/src/ui/timeline.rs diff --git a/src/ui/username.rs b/crates/notedeck_columns/src/ui/username.rs similarity index 100% rename from src/ui/username.rs rename to crates/notedeck_columns/src/ui/username.rs diff --git a/src/unknowns.rs b/crates/notedeck_columns/src/unknowns.rs similarity index 100% rename from src/unknowns.rs rename to crates/notedeck_columns/src/unknowns.rs diff --git a/src/user_account.rs b/crates/notedeck_columns/src/user_account.rs similarity index 100% rename from src/user_account.rs rename to crates/notedeck_columns/src/user_account.rs diff --git a/src/view_state.rs b/crates/notedeck_columns/src/view_state.rs similarity index 100% rename from src/view_state.rs rename to crates/notedeck_columns/src/view_state.rs