Development/Crazy Ideas

    From The Document Foundation Wiki

    With a product like LibreOffice, there is often a floodgate of radical ideas on directions the project might take. Obviously LibreOffice isn't going to immediately rewrite the whole codebase, but there is a chance to discuss new ideas - hence this page. Please do note that this is a non-endorsed list made up by everyone, so don't go away from here thinking this is the directions that LO *will* actually take (or even wants to take).

    About this page

    Please use this template when adding new ideas and take a look at the bugtracker if there are corresponding bugs/enhancement requests:

    Title + date + corresponding bug number

    Idea: description of the idea + wiki signature of the submitter

    Comments should be made under a Comment section.

    Porting

    Real "Convergence" with LibreOffice on mobile devices (smartphones, tablets): Touch UI <> Desktop UI

    Idea: In 2016, true "Convergence" of mobile and desktop experience will become reality. This means that mobile devices (smartphones, tablets) show the touch user interface of LibreOffice when no external input/output devices are connected. When the user connects keyboard, screeen and mouse the LibreOffice UI needs to switch to normal desktop mode.

    Ubuntu Touch is set to activate true convergence with the upcoming version(s). Microsoft "Continuum" is providing a semi-true convergence with Windows 10 and is likely to expand this offer in 2016. Android tablets are more frequently sold with optional keyboards which make the appearance of convergence-like features in 2016 highly likely. Apple is rumored to work on convergence devices, too.

    Some applications already provide support for convergence. Besides some defaults apps in Ubuntu Touch and Microsoft Windows 10 Mobile, there is Microsoft Office 2016 which can switch between touch UI and desktop UI on Microsoft Continuum. Calligra Suite provides this functionality already for a longer time with Calligra Gemini.

    In the Ubuntu Touch wishlist, LibreOffice with convergence ranks as 3rd important wish by users.

    Development

    Update the UNO API mappings

    Idea: The UNO mappings are rather dated and could benefit from some updates. (a) Use C++11 enum classes for UNO enums (b) in the Java UNO mapping, return UNO interfaces from methods instead of always mapping it to java.lang.Object. (c) Use java.lang.Enum subtypes for UNO enums (d) Make the Exception base class support exception chaining (i.e. contain a optional pointer to another exception) (e) Make the Exception base class have a virtual destructor so we don't get exception slicing.

    Explore whether MS Office support in LibreOffice can be made into libraries

    Idea: It is acknowledged as being difficult, but explore what it might take to rework !LibreOffice's MS Office support into libraries that could be shared by other open source office projects. Can it be done at all, or is the required logic too deeply specific to each open source project's own internal logic and framework?

    Comment: This is maybe something that can be incorporated by the DLP.--Kerwyn (talk) 2014-04-15T19:29:22 (UTC)

    Replace all interface code with an interface using the Qt widgets

    Idea: Rework !LibreOffice to use the Qt widgets for its GUI, instead of the current approaches to get native appearance. Would almost certainly involve massive reworking of all the interface code - around 1 million lines. It would also make !LibreOffice depend on another huge piece of code owned by a single corporation with (C) assignment: unclear that this is a positive move though the GUI would look better.

    Comment: Yes, it would look better, although only on KDE-using distros. How would it look in GNOME? If unetbootin and Skype are anything to go by, you won't be able to see half the menu text... Spacebat 2010-10-13T16:10:43 (CEST)

    Of course it's something of a matter of opinion, but with newer Qt4 releases it is quite possible to obtain a pleasing, clean look with Qt without running in KDE.  Dunno if it respects Gnome themes directly, but this looks interesting: https://http://blog.qt.io/blog/2008/05/13/introducing-qgtkstyle/  Anyway, Qt is certainly the closest thing I know of to a robust, fully cross platform GUI toolkit.  To respond as to whether Qt would be an improvement over the current situation - currently LibreOffice must do all the work of maintaining its own cross platform widget solution.  Even if Qt someday must be forked, at least there are a vast array of tools in real world use that rely on it.  The incentive to maintain a fork properly would extend far beyond the LibreOffice project, so even in that (worst case) scenario LibreOffice would get more help on cross-platform GUI toolkit maintainance than it does with its own current internal solution.  I might also mention that so far the trend of Qt has been consistently making the toolkit MORE free, not less, and unlike the OO.org case there hasn't been much visible trouble or lack of progress due to Trolltech/Nokia running the development.  Bottom line is that cross platform GUI work has to be done, and Qt seems to have the best solution to that problem of any currently active project - why not leverage that effort and community buy-in?  A better looking GUI is an important metric for a project like LibreOffice, whose users are going to expect GUI polish as a matter of course.

    Comment: Nokia no longer requires copyright assignment for contributions to Qt. And using Qt does not necessarily mean that it would need to depend on KDE libs, or look KDE-centric. For example, look at the Minitube application. While this is just a small example, it shows some of the possibilities of a non-KDE-based Qt desktop app. Feel free to try it in Gnome to see how it would look and work there. jwcampbell

    Comment: Using Qt sounds like a GREAT idea. Consider that not only does Qt simplify the cross platform UI but it also contains a lot of functionality that LO is implementing internally or pulling in as a mash of 3rd party libraries. Another item on this page relates to using a common regexp instead of a built-in version. Qt has a built-in regexp, https://doc.qt.io/qt-4.8/qregexp.html. This and a bunch of other built-in functionality would help to reduce external dependencies simplifying the code and build process. cmorgan

    Comment:

    "Qt is certainly the closest thing I know of to a robust, fully cross platform GUI toolkit."

    What about wxWidgets? Cross-platform native UI is its raison d'être, plus it's not controlled largely by one organisation. Development is very active too. Doubi 2011-04-11T18:28:44 (CEST)

    Comment: With LibreOffice Online planning on using the GTK+ 3 backend Broadway, it seems that GTK+ would be a better choice than Qt. --

    Comment:

    • Qt is written in C++, LibreOffice too. GTK+ is written in C
    • Qt is multiplateform, LibreOffice too. GTK+ 3 Mac and Windows are experimental, they don't even provide GTK+ 3 Windows binaries
      • This is moot, as we do not use Gtk on Windows and macOS either. Counter-argument: Qt is not present by default on either of these systems, which means that we would have to build it internally and bundle it. --Dtardon (talk)
    • Qt works on Android, Blackberry and Ubuntu phone, GTK+ will most probably never
      • And it does not matter at all, as we will most probably never want to use it there. --Dtardon (talk)
    • By multiplatform it means really multiplatform: fully stable, all features, native look and feel, tools, binaries, full documentation...
    • Qt integrates perfectly within GNOME: it uses GTK+ to render itself with proper icons, button positions, file dialogs...
    • Qt is not only a GUI toolkit, it also features network, regexp, STL, SVG, XML, SQL, OpenGL, DBUS, QtWebKit, audio, video... in a modular way
    • There is also an experimental HTML5 backend for Qt
    • Qt is under LGPLv2/GPLv3+ on all platforms and under full open gouvernance with many companies and open source projects behind
    • Qt is > 5 years ahead of GTK+ on features, even Canonical who is a GNOME/GTK+ company at its heart went for Qt with their new Ubuntu phone OS!
    • Qt can be mixed with other toolkits: GTK+/Glib, MFC, Motif, Java SWING/AWT. One can imagine a "bridge" between Qt and VCL so new LibreOffice features can be developped in Qt while the others use VCL.
    • And so much more: Visual Studio support, Qt Creator - a full multiplatform IDE, declarative GUI with QML, hardware acceleration, animations, JavaScript integration, bindings (Python, Java, Perl), everything modular, clean, so well engineered, so easy to use, probably the best documentation ever...
    • The choice is obvious and the fight not even fair: "GTK+ has 210 contributors adding around 3000 commits a year" and Qt, 400 contributors for 15780 commits. GTK+ is not future proof: "GTK has 1 person working full-time on it. Glib doesn’t even have that". What about wxWidgets? it's a toy compared to Qt.

    Comment: All dialogs will use GTK's .ui file format in the future

    Replace Mozilla Rhino with Mozilla's SpiderMonkey or Google's V8 tdf#97827

    idea: Mozilla Rhino is a JavaScript engine written in Java (lives in rhino). Replacing this with Google's V8 (written in C++) would possibly gain improvements in memory size and JavaScript execution speed. Also it would drop Java as a dependency to execute JavaScript extensions. Furthermore v8 seems to be very much better maintained than Rhino. It would also drop generic compatibility, because V8 code has architecture-dependent assembly code inside (the only currently supported architectures are 80x86, ARM and MIPSWikipedia logo v3.svg).

    Comment: Is V8 unencumbered? Although it is billed as "open source", if it isn't free software with no commercial restrictions, it should not be included in LibreOffice. — User8192T @ 2012-08-21T18:40:13 (CEST)

    Comment: v8 uses the BSD 3 clause license (see project page) which is GPL compatible according to the FSF. The MPL is also compatible with the GPL. Yes, that does not mean we can use it, but it looks promissing. ;-) --PhilippW (talk) 2013-01-15T21:07:52 (UTC)

    Comment: An other option is to use SpiderMonkey, also fast and more platform I presume. Or have both usable. Arnaud versini

    Comment: SpiderMonkey is apparently a very bad choice for embedding, see my comment in the 97827 bug report. Duktape is one promising candidate, very easy to integrate into a C++ project and has sane release policy. Beluga (talk) 2016-03-07T08:41:15 (UTC)

    Use a multi process

    Idea: LibreOffice is curently a one process product. Microsoft Office use one process per document, and all web browser are moving also to a multi process system. Changing LibreOffice to a multi process architecture will allow user to work during document loading and after one document crash. Mozilla Firefox project to create a multi process web browser is https://wiki.mozilla.org/Electrolysis Arnaud versini

    Comment: Several days ago, a Chinese user complained LibreOffice's single process is heavily delay program's performance for processing multiple documents from the Chinese Community forum:

    Libreoffice 是单任务处理,多用户同时打开多个电子文档,调用接口结果还要排队处理,第一个用户的api调用没处理完返回,后面的用户都需要等待,不知道你们有没有遇到这个问题?
    Translation: LibreOffice is processing with single process, (while) multiple users open multiple documents at the same time, calling API but need to wait in line for processing, the first user's API calls not finish and return, all other users need to wait, do you suffer this problem?

    So I think the current architecture of LibreOffice not only limit the problem's performance, but also breaks down the user experience. This would be a disadvantage for professional and business works. Thus I support to reform LibreOffice to be multi process. --Kitaygrad (talk) 2021-10-20T08:58:51 (UTC)

    Replace internal pre processor by the compiler one

    Idea:LibreOffice have it's own pre processor for hrc files, I think we could use cpp for this and remove all this from source tree. Arnaud versini

    use LLVM and LLDB for Basic execution

    Idea:LibreOffice should use LLVM/LLDB or an other library like libgccjit for LibreOffice Basic execution. It could improve Basic performance and have less source code. Arnaud versini

    New plugin for Visual Class Library for better GUI development

    Idea:Libreoffice have many plugins (gtk3 , qt5 , etc ) for VCL to native look and feel in different environments. How about adding a plugin backend that only send drawing instruction to gui ? It could be easier to port Libreoffice to other platform ( eg Android ,iOS ) .

    • For example , LibreOffice startup :

    After GUI initial ( any ui library ) LibreOffice.Core initial , LibreOffice.Core -> vcl -> Sender(msgpack / json) -> {"menu_add" : "file" } -> Receiver(msgpack / json) -> GUI update.

    • For another example, every user operation will trigger :

    GUI -> Sender -> {"func" : "btn_click" } -> Receiver -> vcl -> LibreOffice.Core ( do something operation ) -> vcl -> Sender -> { "dialog" : "dialog.ui" } -> Receiver ->GUI update.

    PS1 : LibreOffice.Core send drawing instruction ( maybe PostScript ? ) to GUI to render document
    PS2 : Any UI control or Dialog is layouted by GUI part of LibreOffice , LibreOffice.Core only know their is a control in the ui.

    Conan

    Idea: Use conan in the build to fetch existing external dependencies, later convert existing modules to conan packages.

    Background Conan is current the most popular cross-platform, open-source language-level package manager for C++. If analogies help conan is fills a role similar to pip, cargo, gem, cpan, nuget, npm, etc.., but for C++ (and of course it supports C libraries). It is at its best when managing statically-linked libraries. Shared libraries/modules you plan to package with the consuming project are also fine. If you want it from conan at build time and from the system package manager (dnf, apt, pacman, etc.) at deploy time, that's fairly annoying. The strengths of conan include:

    • figuring out which options require a different build of that package (e.g. a different -march) and building it on-the-fly for you if a match is not available.
    • interoperating with a variety of build systems, and handling mismatches pretty gracefully
    • putting more metadata on the providing side of the relationship (closer to the project it's about)

    First use case: external dependencies By itself this doesn't really buy a whole lot, since it really isn't terribly different from what is already happening. For example, the contents of external/boost is pretty similar to the monolithic boost conan recipe. (N.B.: We could instead use the modular recipes, e.g. boost_filesystem/{version}/bincrafters/stable which introduces the transitive dependency on boost_system) It might be nice to share some of that with other open source communities, so that's a win. But not all of LO's dependencies do already exist in a publicly-available conan server.

    Presumably LO would be using conan's "Makefile generator" and consuming e.g. compiler flags that way.

    Second use case: internal modules

    Modules that are currently directories in LO-core would become their own projects, with their own git repos, publishing libraries to conan. I imagine their recipes (the conanfile.py) would use Conan's AutotoolsBuildEnvironment. gb_Library_use_libraries (and also gb_Library_use_externals if we did the previous part) would become a conanfile.txt at the top level, and specified as dependencies in library modules that have their own conanfile.py

    One might consider using the Jenkins Conan plugin so that a successful build of a library kicks off integration builds of its consumers, chaining down to core. You'd probably want to do something like that one way or another, just pointing out the existing plugin is one way.

    I imagine a couple reasonable ways to express the version range on the requirement:

    • Specifying the first three dotted components of the version, and letting the last float to the newest version, so perhaps: conan install --update sal/[>=7.1.1 <7.1.2]@lo/dev
    • Specify the 'version' (which would refer only to LO release versions) completely, requiring equality, and use revisions to allow the libraries to update.

    Advantages

    • Most build times would improve. This is because rather than build all the modules, you can download already-built versions of dependencies you didn't change, if someone else has already built a matching variant at that point in code. Changes in higher-level components would benefit more, e.g. a change in sw benefits a lot, but a change in sal would still be building nearly all the modules to run their tests in case they were impacted.
    • Modules should be easier for other projects/groups to re-use, even if they're not using conan themselves (but doubly so if they are).
    • Working with a smaller git repo has secondary advantages. It can be less daunting to the humans. The page on KDevelop, points out that it takes quite a while to index the code. It wouldn't if it were looking at less code.

    Disadvantages

    • Real thought would have to be given to how one ensures all the changes you believe are going into a release actually are. This may be trickier if one goes with the revisions approach, since just looking at the basic versions wouldn't give it away.
    • In conan, a 'recipe' is not necessarily some static, declarative, predictable description of a package. It's conanfile.py: a Turing-complete script with full access to Python. If people do clever things it can lead to surprises.

    AOT compilation for Java libraries used by LibreOffice

    LibreOffice includes Java libraries like HSQLDB (for now), the NLP solver, the report builder (Pentaho Reporting) etc. for certain functionality that is expected from an office suite. In order for them to work, the Java Runtime Environment (JRE) must be installed, which confuses and inconveniences users.

    Ahead-of-time Compilation (AOT) is increasingly being used by the Java and .NET ecosystems to translate the respective bytecode into pre-compiled native platform executables, without the need to install the runtime. For Java, the most popular and advanced solution for this purpose is the GraalVM compiler (https://www.graalvm.org/native-image/).

    Idea: Use AOT for certain Java libraries used in LO, if these are deemed significant enough and cannot be easily replaced with a C++ alternative.

    Advantages

    • Users don't need to search for and install a JRE to use LO features.
    • More secure: By installing a JRE they expose a significant attack surface, especially if they don't perform the necessary updates later.
    • Better performance: Faster startup, less memory usage, smaller size on disk (compared with a full JRE installation)
    • The LO features involved can be used in platforms where JITs are not allowed (e.g.: Mac App Store)

    Disadvantages

    • Feasibility: Is it even possible to use AOT compiled Java libraries in a C++ compiled executable? Couldn't find a definite answer.
    • Larger LO executables (unclear how much, depends on the JRE libraries that need to be included)
    • Build system should be updated with the necessary configuration for all release platforms.
    • May reduce motivation to move from Java entirely

    Spyros (talk) 2022-06-12T17:41:24 (UTC)

    Ideas for new features

    Incorporate/add an OpenProj type Project Managment tool

    Idea : Broadens the appeal of the suite whilst reinforcing confidence in MS alternatives. Increases interoperability and functionality etc.

    Comment : I think it would be good to use ProjectLibre because is the fork of OpenProj and it's the best.

    Enable cell dragging in Calc tdf#38994

    Idea: Click the edge of the cell and drag to reposition the contents. As in Gnumeric/Excel.

    Integrate a Python editor, so Python can be as easy to use as VBA

    Idea: There are a great deal of people that use Python. I would say a great deal fewer use VBA. There is no reason to copy Microsoft in this manner, python is easier and more flexible than VBA in almost every aspect. This would just mean allowing the same functionality VBA has but with python also. This may also allow easier interfacing with a great deal of code written in python, and thus LO.--Taylorh140 2014-07-18T22:19:38

    I am (slowly) working on this. See Ideas:Improve Python scripting situation - PhilippW (talk) 2014-08-05T12:27:10 (UTC)

    Add a "Sort chart by data without need to sort the table" feature in Calc

    Idea: Make the a bar or column chart sorted even if the corresponding table is not sorted. Usually to create a sorted by value bar or column chart the values on the table have to be sorted. That's a pity if you have to sort the table e.g. by names for other reasons. Or for tables with more than one set of sortable data.

    Sorted charts

    A possible place to switch this behaviour on and off is the according dialog:

    Sorting a chart independently from the table


    Change the Load Styles Menu to add more control in writer

    LoadStylesMenu-7-18-2014.png

    Idea: the Current Load Styles menu is very underwhelming, not that I don't appreciate it. It just lacks the degree of control I desire, such as taking a single style from an external document and implementing it in the current document. Perhaps you want to move a few styles and rename them during the transfer? So, reworking the menu to add a greater degree of control would be great.--Taylorh140 2014-07-18T22:19:38

    Round and Trim border conner

    Idea: On paragraph or cell in Writer and Calc.

    ODF Document Container

    Idea: Adding a universal ODF-Document Container for every type of LibreOffice Document. A quick example: Every student has many different subjects and so he needs many different folders with subfolders. If there is a Document Container for every subject, the students can browse the documents by using LibreOffice directly. The could be a sidebar or something like that with a tree-structure, like in the normal Data-Explorer. But If a student saves the currently opened file it automatically get saved in the container. Although the program can automatically tag the documents and save which Documents were opened and make cross references, so that the students can find all documents they need to understand what they have done in the main document. If a student doesn't choose a name for a new empty document and save's it, there could be a folder "unsorted", but with timestamp and in the Document-Container for the subject. I think this will allow people to find documents more quickly.

    Add WordPerfect features like RevealCodes and HiddenText tdf#34002

    idea:See i#3395 and tdf#34002 for detailed description, some patches and how much wanted this feature is (it was filed in 2002 and has 176 votes).

    When MS copied them into Word it broke them horribly for power users.

    They ran a survey asking what people used Reveal Codes for and 90% said they "use it for checking formatting". The remaining ten percent were probably power users, who use it as their main editing window (like me). It is an *incredibly* powerful tool for a power user. Given that ODF is XML-based it shouldn't be that difficult to get something like that working.

    And Hidden Text is a nifty little feature too ... Word has something similar in "comments", but the problem there is comments don't print. Hidden text (in WordPerfect) is just another font attribute, but controlled by an entry in the "view" menu. If it's on, hidden text can be seen on screen and prints on the printer. If it's off, it's only visible (as a marker) in the Reveal Codes window. Great for doing quizes :-) where you put the answers in in hidden text, and then you can print the document with it off for the question sheet, and again with it on for the answer sheet.

    Easy service to have document format incompatibilities identified/filed

    Idea: I imagine the following service for format incompatibilities: Upload a .docx/.odt file that gives you problems. Some officeshot backend attaches screenshots of how that document looks in LO/OOo/MS Office 2010 automatically. No user registration needed for that. Volunteers could help digging out the relevant pieces of the doc and create minimal test cases which would then end up being filed as "real" bugs or being assigned to existing bugs and could serve as test cases verifying the bug fix.

    Integrate simple photo editing and video editing as part of Impress.

    Idea: This is an enhancement that will add features found in MS Office 2010.

    Integrate word cloud of the words used in a presentation as part of Impress.

    Idea:Every presentation includes many catchwords within the slides which could be grouped as a word cloud in one of the final slides (like "Questions on what you just heard ?".

    Bad font alert

    Idea: How about making small alert, for example in status bar, containing information about font's problems. For example I open document which uses Calibri font, but this font doesn't installed on my PC, then I should now, that document displays incorrect.

    Comment: https://design.blog.documentfoundation.org/2016/10/21/dealing-with-missing-fonts/

    Machine epsilon

    Idea: LibreOffice Calc needs a "machine epsilonWikipedia logo v3.svg" function to return the platform-dependent smallest number that Calc can handle. This is important for spreadsheet portability from machine to machine and from operating system to operating system, so that scientific and engineering spreadsheet calculations produce consistent, predictable results. I further propose that the function be called EPS(). This could also evolve into an extension to the .ods file format standard for inclusion into any spreadsheet program that can read .ods files. — User8192T @ 2012-08-21T18:32:10 (CEST)

    Canvas spreadsheet interface similar to Apple's Numbers

    Idea:While I haven't used Apple's Numbers very much, I tested out their "canvas" approach to the interface and really liked it. It solves the problem of column sizes when you have multiple tables on a single sheet, and gives the spreadsheet a clean look. ImperfectlyInformed (talk) 23:43, 29 October 2012 (UTC)

    Network saving documents without mounting any disks

    Idea: Is there a way to start combine power of the file managers and LibreOffice? Such as using kerberos tickets in save dialog for saving documents in NAS without mounting any new network drives on system.

    Auto-update

    Idea (Shunesburg69): An auto-update system in option like the browsers (like Firefox or Chrome) for invisible update.

    For developer: see Development/Test Update Check

    Add Tabs like Lotus Symphony

    Idea (Shunesburg69): It will be good to integrate the tabs in LO like the browsers (like Firefox or Chrome) not by default with possibility to combine windows each others or not. And with an home tab to access at the welcome window.

    Missing Font Manager

    Idea (Shunesburg69): For a better compatibility and to know what fonts are missing in a document, it will be good if there is a check at the opening and open a missing font manager if there is a missing font. A first column to show the missing font, and a second column for the font of replacement if a near-appearance-and-dimensions font exists (it will be good to made a list with the better alternatives), if there is no alternative the list let you choose a font in the present fonts in the system. And in the right side a magnifying glass to see the difference between the font if the missing font is known. (Bugs: tdf#88438 / tdf#94327 / tdf#68880 / tdf#56076 / tdf#95097)

    Missing Font Manager.png

    Test global replace

    Provide an option to test out a global replace. This would probably be implemented as follows: add a "Highlight only: do not replace" checkbox to the current replace dialog box (under Other options). That way you could scroll through your document to see whether you really wanted to "Replace All". Currently you can undo a replace, but there's no easy way to see all the changes that are being made at once. Yes, there's a potential issue here: checking that box by accident could lead to frustration. At the very least, there should be a message at the bottom saying that highlight mode is in effect, click to open find/replace dialog box.

    Support OpenType Font Variation

    In Sep 2017 OpenType introduced Font Variation, HarfBuzz text shaping engine also support it, with this technology a glyph can be transformed into any weight or style (italic type, optical size, etc) if a font including related table. We can try to use the same syntex used for font features to handle Font Variation, also we can making Character dialog have ability to handle font weight or style for such fonts if they have specifying in STAT table.

    Additionaly, we also need to subset specific font variation as a static font while priting document, since only a few printer drivers knows that.

    Enhanced vertical text direction support

    LibreOffice have already implemented some support for vertical text layout in Writer, but this support is very limited. Chart, FontWork, table, text box does not well supported, and Calc and Impress even have no support provided for page level. Thus LibreOffice is less useful for some cases that has necessary to use vertical texts. So LibreOffice should making vertical text layout working everywhere, and switch it by just using single drop-down list.

    AutoPaste

    Idea: GOAL: Enable greater efficiency in copy/paste functions.

    1. Provide option to automatically consecutively paste content from each clipboard entry into chosen document without switching to it.

    2. Enable hotkey for this option.

    The only word processor that I have found which provided this feature was the discontinued freeware Text Shield (available here), made for W/9x but which works, if buggy, under W/10 64 bit. While for me, having stiff arthritic fingers, a quicker way to copy and paste is helpful (I use AutoHotKey to remap CapsLock to Ctrl+c and Esc to Ctrl+v Esc to NumLock), I think many others could find this rather unique feature helpful. I know in Linux selected text is usually copied, but that does not auto paste what is copied.

    Ideas for new applications

    Integrate an Email Client

    Idea:Making Libreoffice a one stop shop for users and a bigger alternative to Microsoft office would mean integrating a Mail User Agent (MUA). This biggest roadblock I face when trying to get people to switch to Libreoffice is that there is no alternative to MS Outlook. It might be worth talking to/working with the Evolution team, they have a very complete MUA that is a very real alternative to MS Outlook - it's only drawback is that it's not integrated with a suite like Libreoffice and Windows support is basically non-existant. --Maliuta (talk) 2012-12-20T18:16:01 (UTC)

    Comment: I would like to second this addition. The only prominent open source email client on Windows is Mozilla Thunderbird, which is no longer a priority in active development. It has, what I would consider significant features missing. For example: 1) Some mailing lists use a digest format that will attach individual messages as text files. It would be nice to see these opened in an internal viewer, like opening an email in a new tab/window. 2) For anyone with several email accounts, there is no way to export/sync account settings or program settings for copying to a new computer/reimage. While there is a 3rd party program(MozBackup), it would be nice to see this as an actual feature. 3) The desktop notifications when working with gmail accounts is also broken. These are just a few things I've found to be missing from Thunderbird that I would like to see in a LibreOffice email client. Other than Thunderbird and Outlook, there aren't any real, quality options on Windows, and it would be nice to have a good, modern, alternative that is cross-platform. --Padenton (talk) 2013-02-27T16:58:59 (UTC)

    Integrate calibre in LibreOffice

    Idea: It'd be useful to integrate the open source e-book manager calibre as our seventh core module. It supports a lot of hardware devices and the conversion of many formats.

    Integrate Openmeetings

    Idea: Integrate Openmeetings

    Sheet Music Editor (like Math)

    Idea (Shunesburg69): Add an editor like Math but to write sheet music. An addon made the same thing but it can't work without an external application (ooolilypond).

    Example-sheet-music-editor.jpg

    Integrate Analytics/Data Science Toos

    Idea: While there are many Python tools for data science and they can be easily accesible by Jupyter Notebook by data scientists and technical people, the average business user is using Excel/Calc for these tasks, which is quite limiting. The idea is to integrate well LO and Python stack, so tools like Pandas can be accessed from within LO Calc, which can easily became data analyst cockpit. --OmegaMaster (talk) 2018-09-27T12:27:27 (UTC)

    Existing feature improvement ideas

    Base: Intelligent detection of types and columns

    Idea: It can get really annoying when you have to do this https://www.youtube.com/watch?v=D_W-FAT3XE4&feature=youtu.be&t=7m55s very frequently. Also when you copy-paste content from Calc to Base and you create a new table for this task, it would be much more comfortable if Base wizard automatically detected that "143" is INTEGER type and "2012-03-05" is DATE type instead of marking everything as VARCHAR by default. Going even further, it could automatically set column as primary key whenever its name is "id" or "SOME_TEXT-ID" etc. (of course if there are multiple ID fileds [like in the case of foreign keys] then this auto detection won't work unless we go really really intelligent)

    Math: Formulas editor in LateX

    Idea: The current mathematic formulas editor isn't a real pleasure to use and sometimes lack of some things. Therefore it would be just great to re-write it and use the LateX syntax and features instead. Plus, we would not need to learn a syntax only for LibreOffice/OpenOffice.

    Comment: The current formula editor needs work but rather in the direction of better support of newer mathtype formats (in import/export routines) and overall usability improvement (e.g., font setting interface in formula editor is an abomination). And yes, it's the better compatibility with MS Word files which is a major issue in some parts of the world, while the suggested rework actually serves no useful purpose, as there are already some formula-related extensions utilising LateX itself. Yury Tarasievich

    Math: Make it easier to align equations on a particular character (especially equal sign) tdf#44902

    Idea: According to the LibreOffice Math Guide, Math does not have a command for aligning equations on a particular character, but you have to use a matrix to do it. This is not very easy, the code becomes confusing, and it does not work well with the graphical editor.

    I think a simple command (similar to alignc) with which you can mark the character on which the lines should be aligned should be introduced. (I don't know whether there is a command defined in ODF.)

    Office: Grammar checker

    Idea: The extension LanguageTools http://www.languagetool.org/ should be re-factored to become an integrated part of LibreOffice. The data (language rules for languages) should then be available as individual extensions.

    Comment:PhilippW: Please note that this adds another Java dependency (requires Java 5.0 and is 18 MB large). I suggest the After the deadline plugin as a working alternative.

    Comment:Gerald: Please note that Afterthedeadline supports only English language.

    LanguageTool has got a lot of xml-based rules. Checking against these rules wouldn't require Java.

    Comment:Shunesburg69: There is also Grammalecte. You don't need Java (it use the python include in LO) and there is very good, the problem is French-only but is it open-source, it can be adapted in another language.

    Writer: Integrate option for online dictionary sites to improve dictionary/thesaurus

    Idea: The current situation to add different dictionaries and thesaurus options is ok, but they are them selves a little basic and would be better if you could increase the function of this with an online add-on like http://www.thefreedictionary.com/ /etc. Such a team-up would also help with portable apps versions as the dictionaries are online, smaller main file packages. This is a big issue and one ythat has come up time and again with people looking for an option to MS Word.

    Better source and reference management

    Idea: As it's now, it's pretty hard to use this important function. Especially I miss the ISO 690-2, with numbers. MS Office has this function.

    Writer: Simple and clear fullscreen mode

    Idea: The current fullscreen mode in writer still contains some part of the graphical menus. I think it could be better the provide a simple and clean fullscreen containing only the page and the text—allowing users to focus on the contents — but the upper menu bar would stay accessible but hidden (like focuswriter). We could imagine the ruler to auto-hid if the cursor isn't over it and same for the scrollbar. At least, the fullscreen mode should only contain the page with rulers but without any menubar or something like that. If some users dislike that behavior it could be accessible with a little box to check or not to activate that behavior.

    At present it is impossible to close the "Full Screen" tool bar, which gets in the way of viewing full screen — this should be changed.

    Writer: Allow merging borders of differently idented paragraphs

    Idea: When applying borders to multiple paragraphs, the "merge with next paragraph" option can only work if the paragraphs have the same idents.

    One limitation is for example that you can't border paragraphs containing a bulleted list. In that case, the bulleted list will be automatically set with an ident, so it can't be included in a global border including upper an above paragraphs.

    One idea could be to allow merging borders of differently idented paragraphs (the size could be based on the larger paragraph selected).

    Writer: Improved FontWork (Integration in the sidebar)

    Idea: Integration of FontWork in the Sidebar and improves it with new functions (for best compatibility with WordArt).

    Writer: Center Column references

    Idea: GOAL: Center column references.

    These 2 minor changes would Improve Table of Contents/Index/Bibliography dialog to provide "high level only' indexing per page.

    1. Introduce a reset by page 2. Introduce a 'minimum' level to evaluate.

    TOC > index by document, levels 0 or 1 = 3 Center Reference : Index by Page, levels 8 - 9.

    This would require a new "index" be placed every page, but at least it is possible without complex scripting or manual realignments every edit.

    (Update all indexes) might need to be introduced.

    Usability improvement ideas

    Add Font Setting Buttons

    Idea: I use a lot of the same Font combinations such as 10 pt, 16 pt with Bold, etc. What I would like is a way to add buttons on to my toolbar with these settings. That way I can just click and go to a set up font pt combination instead of having to go through the lists each time. User:Garrowolf

    Comment: what about using Styles and Formatting (F11)? You can define character styles as well as paragraph styles. Permitting custom styles to be set as icons in a toolbar is an idea, but what would the icons be? At least with the Styles menu, you can name each style and opt to display custom styles only.

    Add a personal settings file

    Idea: I like to set up defaults and such for my toolbars and file defaults. I would like the system to save this to one file so that I could transfer it and keep it to other copies. User:Garrowolf

    Make personal dictionaries easier to use

    Idea: I write a lot of scifi and gaming related material. In order to make the spell check useful I end up filling it up with unusual words. Then I have no way to save this dictionary of unusual words and take it with me. Please fix this. User:Garrowolf

    Family of words: Lexemes and morphemes

    Idea: Add the possibility to choose the kind of word (adjective, noun) to be added in the dictionary by the lexemes and morphemes, so then, automatically all the possible conjugations become part of it. That would save the job who adds technical words, idioms, etc., with different variations. May be useful. User:Bami

    Allow spell-checking to be switched on/off independently for Writer and Calc

    Idea: I suspect many users always want spell checking in Writer, but dislike spreadsheets being underlined extensively in red because proper-name or specialist cell entries are not in the dictionary. It is too time consuming to make dictionary entries for every word that might appear in every spreadsheet, and it clogs up the dictionary, but if the spell checker is switched off in Calc to get rid of the red ink, it is easily forgotten to switch it back on in Writer, so typos go unnoticed in letters, reports, etc.

    Great usability improvement idea: Drag&Drop in the margin of the application window tdf#37956

    Idea: I believe this could be a great usability improvement. The cut&paste experience in OOo/LO could be greatly enhanced, if it would be possible to drag object to the margins of the application window and drop it there. If one would like to use this snippet again, it could be just possible to draw it back into the document and drop it there. As it is alway easier to explain something with pictures, please see below images. The first is a mockup, how it could look like in Impress. The second picture is a photo of an old Apple Newton Messagepad which had this great feature. And indeed, it was a very handy feature. Thank you very much for considering this idea!

    Mockup-DragandDrop-at-margin.jpg     Example-DragandDrop-in-margin.jpg

    Impress usability improvement: ala impressive function tdf#38169

    Idea: Impressive [1] has some really useful features as the highlight boxes [2], the spotlight effect [3] or the overview screen [4]. Besides it looks great and is really useful. Impress could get a lot with those features. However Impressive works with OpenGL and I am not sure those features are possible without it. Maybe we can propose to use an external render of the slides (optional) and use impressive for example.

    Allow the Full Screen toolbar to be closed

    Idea: At present the Full Screen toolbar has the Close Toolbar option greyed out, making it impossible to use the whole screen to view a document. This is a nuisance with large graphs, spreadsheets, double page spreads, etc. Why not permit the user to close the Full Screen toolbar (and choose to keep it permanently closed, as a options setting if necessary)? It only requires Esc to be pressed to leave Full Screen mode. A brief message could be given when closing the toolbar to ensure the user is aware how to exit Full Screen. Alternatively, a tiny arrow icon could be placed in the corner of the screen as with many products. It is not possible to push the toolbar off the screen edge because this docks the toolbar, wasting even more screen area.

    Allow column/row selection by clicking column/row header while typing a formula in calc

    Idea: As of version 3.4 one can select the whole column A by just clicking on A (which is currently range A1:A1048576), but that's not possible when one enters a formula. With another product (at work) I'm used to enter a large amount of numbers into column A, enter a formula into a cell (which is not in column A) which applies to the whole column A. The point is that whenever I'm adding a number in column A I don't need to check if the formula is using the number. I know that it's possible to give that range a name, but it's only temporary stuff. I'd like to be able to select the whole column/row just by clicking on it. e.g typing "=Sum(" then click A, then type ")". It safes some keyboard strokes.

    Add a quick access toolbar (like citrus fizz + mini toolbar in ms office)

    Idea: When I want to change the style of a word, I've to select the word, move the cursor up to the toolbar, and click on the correct icon. In case the window is to narrow, I've to click on the arrow at the end of the toolbar in order to show the button I'm looking for. It would be easier if the most important commands for formatting text were available in a little toolbar next to the cursor when text is selected (like in the Citrus Fizz mockups). The default toolbar should include commands like bold, italic, underline, text alignment, and font color, and it should be customizable. tdf#46836 Mockup

    Improve visual impaired accessibility

    Idea: Support for macOS Lion VoiceOver

    Draw: add Layer manager window

    Idea: To improve handling the layers it is necessary to add a new window similar to Navigator (F5) which will show all layers, their status, order, visibility etc... Similar functions as in Gimp (f.ex.)

    Customizable character shortcuts

    Idea: At the moment, if a character is not on your physical keyboard, it's not easy to get access to special characters if your work/language requires that. For example, I may use an English keyboard but require currency symbols a lot. It would be much handier if I could select a character on the map and define a shorcut that suits me (e.g. AltGr + y for ¥) that will work in all LO apps, the way you can in MS Word already.

    Little note: On Linux, you can enter ¥ using composeWikipedia logo v3.svg + = + y (e.g. in a German Ubuntu installation Win(right) + Shift+0 + y) ¥
    True but (in my case for example) I frequently need ɪ ɔ ɛ ɲ ŋ ɣ ɤ ɯ ː ̪ and so on and I cannot get to those with anything pre-existing. Of course, the ¥ shortcut is handy but each user has such a different set of needs in terms of quick access to characters not on the keyboard that shipping each with the system is impossible.

    Better locale handling/installation

    Idea: Not sure if this is the right section but from a user POV, it certainly falls under usability. The current setup process is really confusing for non-English locales and results in a lot of extra support work because you can select "your locale" for download on the download page but what you actually download is the default installer and you have to know that for anything but English you must select Custom Install. Really not great, because if you don't, the (new) user then is faced with an English UI and even when rooting around in the settings, you cannot actually change to your desired UI language. Not without running install again.

    As an immediate solution, the install dialog needs tweaked so that there's a really big note about having to choose Custom for any language but en-US for the interface.

    Beyond that, I'm not sure what's possible but given how many programs work with language packs, it would be nice to give the user the option to, after completing the installation, to go into the language settings and select a new UI language, which then automatically grabs a langpack of the LO site somewhere and installs that.

    Or another solution but something that makes it really easy for non-developer users to figure out to get the UI language they want.

    Allow touch-based or click-and-drag scrolling.

    Idea: I use this on my touchscreen Win8 computer all the time, and I find it frustrating that the scrollbar on the side is so small. And when I tap and drag on the side (off the page in Writer) it selects all the text I pass. I think it would be more useful to have it respond to this gesture by scrolling instead of selecting. I think we could leave it so click-and-drag on the page margins makes it select text, but off the page it scrolls. What do you guys think? And maybe something similar for the other apps? And an option to turn off the touch-friendly mode and revert to how it works now.

    Ideas for the touch-friendly zones: Writer: off-page area. Calc: empty cells, long-tap to select cells. Impress: list of slides, long-tap to move slides. Draw: White space, long-tap for multi-select (Side thought, what about a lasso-select like in Photoshop?) User:MikeyZ:

    Calc: Add Additional Formula Highlights When in Edit Mode

    Idea (D0ugparker (talk)): In edit mode, highlight a function's name, parenthesis, and commas when the text insertion cursor is to the right of 1) characters in the function's name, 2) to the right of any of the function's parentheses, or 3) to the right of any of the function's commas.

    Comment: Presently, in Calc's edit mode, when the text edit cursor is to the right of a left- or right parenthesis, its corresponding right- or left parenthesis and its function text will be bolded. (See the left-hand column in the PDF file link at the end of this submission.) A thumbnail follows, here:

    Calc-thumb-highlight.png

    First, when in edit mode, change the helpful BOLD highlighting to both BOLD and HIGHLIGHT. Highlight the background color in the user's default highlight color for ease of detection.

    Second and more importantly, when the text edit cursor is positioned next to a function's commas, add the same highlighting rule to the targeted function's. (See the right-hand column in the following PDF file link.)

    File:Calc-spreadsheet-function-highlights.pdf


    Writer: Allow to draw equations by hand just like MS Office 2016 does

    Idea (marcoagpinto (talk)): Microsoft Office now allows to draw the equations by hand and it converts them into real equations.

    Could someone implement a similar feature?

    Support Windows Ink and touch screen

    Windows 8 added support for touch screen, and Windows 10 introduced Windows Ink. Adding these support LibreOffice would be allowed to input text or draw a shape with finger or pen on screen, and making LibreOffice used more comfortable for Windows touch screen devices as Surface.

    Great features that were started, but never made it into OpenOffice.org

    Idea: Great features for those development had already started, but development was never finished. These features never appeared in OpenOffice.org

    Improved XHTML import

    Idea: HTML import in OpenOffice.org/LibreOffice has not been considerably improved for many years and is lacking many features. Development on a XHTML import filter has been started and the patch is already better than the default html import filter. The patch can be found here i#83494. There are still many problems and non-implemented features. One particular issue is that external Cascading Style Sheets (CSS) cannot be processed by XSLT 2.0. An idea was that the filter first copies the external CSS into the XHTML header before importing the file. Related bug entry: tdf#36977.

    Integration of OCRopus OCR into Writer

    Idea: It would be great to have OCR features directly from within LibreOffice, in particular in connection with the PDFImport extension. There was a Google Summer of Code project in 2009 which already had a sample extension done by Jonathan Winandy. Then the implementation has stalled. Some information can be found here [5].

    Improved "track changes" feature and improved "compare documents"

    Idea: The ability to track changes of a document in a professional environment is a very basic and important requirement for an Office suite. OpenOffice.org/LibreOffice support track changes, but the implementation has several short comings. Furthermore, the tracked differences between versions or between documents as identified by OpenOffice.org/LibreOffice are sub-optimal. For further description and links to work in progress, please see Track changes page in the wiki.

    Intelligent groups (alias SmartArt)

    Idea: There are no capabilities in LibreOffice that can be compared to Microsoft SmartArt. However, there was some coding about this feature. Please see [6] and [7]. There is also an extension that partly implements SmartArt features: [8]. Related bug entry: tdf#37932.

    Highlighting in presentation mode

    Idea: Competing presentation programmes have the ability to highlight text or graphicals elements during the presentation. After the presentation, the drawings, writings and highlighted elements can be saved into the presentation file. The implementation of OpenOffice.org/LibreOffice has several shortcomings. A project at the Ecole Centrale de Nantes has implemented these features. Please see: [9], [10] and i#62973.