Giter Club home page Giter Club logo

plasma-applet-tiledmenu's Introduction

Tiled Menu

https://store.kde.org/p/2142716/

A menu based on Windows 10's Start Menu.

  • Supports:
    • Pin/Favourite apps/files through the context menu (or by dragging them from dolphin).
    • Resizing (permanently) the size of the menu by Meta + Right Clicking and dragging.
    • Any size tile 1x1, 2x2, 4x4, 4x2, 1x3, etc.
    • Easily edit the background image of a tile.
    • Customizable sidebar shortcuts.
    • Jump to Letter/Category (can also default to this view)
    • Defaulting to only showing the tiles.
    • Labeling Groups of Tiles + Move Groups of Tiles + Sorting items in the group
  • Does not support (Win10):
    • Tile Groups ("Folders")

Screenshots

Theming

Read the theming guide to develop Desktop/Icon Themes for this widget.

Translating

See the package/translate folder for instructions on translating.

plasma-applet-tiledmenu's People

Contributors

alr86 avatar anagilda avatar ardumpl avatar bvengo avatar cain-dev avatar crazyraven avatar derchr avatar herzenschein avatar kisaragi-hiu avatar lm789632 avatar mahtiankka avatar mjkim0727 avatar niksn418 avatar oltulu avatar platun0v avatar rumangerst avatar vistaus avatar vladimirmikulic avatar ymadd avatar zipristin avatar zren avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plasma-applet-tiledmenu's Issues

Error loading QML file

Trying to install v19 on Plasma 5.12.4, receive the following error when I go to launch the menu:

Error loading QML file: file:///home/douglas/.local/share/plasma/plasmoids/com.github.zren.tiledmenu/contents/ui/Main.qml:23:2: Type AppsModel unavailable
file:///home/douglas/.local/share/plasma/plasmoids/com.github.zren.tiledmenu/contents/ui/AppsModel.qml:29:3: Cannot assign to non-existent property "showAllSubtree"

Any idea how I can fix this?

Suspend icon hardly visible

The suspend icon under the power options is hard to see unless it is hovered over.

When the suspend entry is not hovered over it looks like this:
Without hovering

When the suspend entry is hovered over it looks like this:
With hovering

I think it would help if the suspend icon were made brighter.

Version information

OS      Kubuntu 18.04 (x64)
Plasma  5.12.7

Hard-coded paths in ui/AppsModel.qml

This file specifies folders to link from icons in the sidebar. There are lines like: 'file:///home/' + kuser.loginName + '/Documents' (also for Downloads, Music, Pictures, Videos). These locations are configurable in $XDG_CONFIG_HOME/user-dirs.dirs or $HOME/.config/user-dirs.dirs, but Tiled Menu always uses the default location. Also, the current method would presumably not work for non-standard home directory locations.

Edit: I see now that there was an update available, and after installing these buttons and the code to which I was referring have been removed. The open function at the bottom of the file still seems to assume that the user's home folder is at /home/$USER though.

KRunner plugins not working

Hi! When I search something, and then click on "filters",

  • the option "All" is marked as "not working"
  • I cannot change any default; all checkboxes appear transparent
  • the spell checker plugin is missing from the list

Is this due to support not yet avaiable, or is my installation broken?

I'm currently using version 29.

Issues from the old repo

App search is not good. (Exclude file search, prioritised latest use)

I am not sure if other people uses start menu search field to search files in their hard disk or not, but when I type in it, I am only looking for apps and control panel items, not files.

Currently, the search seem kind of unoptimised. There seems to be no way to exclude file search (desktop search). So, when I want Chrome, typing "c" shows weird apps that does not even start with "c", and "ch" shows weird files somewhere in the disk, and Chrome appears only when I type "chr".

And it seems that the choice is not intelligently remembered, unlike Windows. I have to type "chr" again next time. For the same reason, typing "o" does not show "Opera" at the top, but Konsole. Typing "op" shows Opera, but next time I type "o", it shows Konsole again at the top. Shouldn't it be Opera next time?

Make Category/Section font size configurable

2019-02-09___22-29-39

To answer migzulk's question:

In case you didn't know, the code is at:
~/.local/share/plasma/plasmoids/com.github.zren.tiledmenu/contents/ui/

The jump to category font size is in JumpToSectionView.qml

https://github.com/Zren/plasma-applet-tiledmenu/blob/master/package/contents/ui/JumpToSectionView.qml

	property int buttonSize: {
		if (squareView) {
			return 70 * units.devicePixelRatio
		} else {
			// return 36 * units.devicePixelRatio
			return 20 * units.devicePixelRatio
		}
	}

I suggest you use 20, as the actual text label multiplies the buttonSize/cellHeight/height using height * 0.6. Since 20 * 0.6 = 12px font, which leaves 4px padding around the text above and below. The Label does have it's own built in top/bottom padding, so it might be slightly smaller than 12px font, but you can adjust the size if it's too small.

If you wish to change the font height of the "sections" in the actual app list, look at KickerSectionHeader.qml

https://github.com/Zren/plasma-applet-tiledmenu/blob/master/package/contents/ui/KickerSectionHeader.qml

First change 14 * units.devicePixelRatio to 12, then you need to change the MouseArea's implicitHeight so that the button is the same size at the Label, instead of being the same size as the app buttons. The Label has a slight built-in padding, so you might be fine with it being 14px.

MouseArea {
	id: sectionDelegate
...
	// implicitHeight: listView.iconSize
	implicitHeight: sectionHeading.implicitHeight
...
	PlasmaComponents.Label {
		id: sectionHeading
...
		// font.pointSize: 14 * units.devicePixelRatio
		font.pointSize: 12 * units.devicePixelRatio

To test your changes, run

plasmawindowed com.github.zren.tiledmenu

then restart plasmashell when you're finished tweaking and ready to apply it to your panel. Either relog or run:

killall plasmashell; kstart5 plasmashell

Initial Indonesia translation

Hi, this is my initial Indonesia translated file. Here for pot file. for further time i will re-edit the file since I still not found equivalent meaning for few strings.
id_ID.tar.gz

Qt.labs.platform not installed in Kubuntu 18.04 .iso

Kubuntu 18.04 iso is shipped with Plasma 5.12.4, Frameworks 5.44, and Qt 5.9.5... so bleh.

The qml-module-qt-labs-platform package is missing in the ISO. If you install that, then restart plasmashell, it works.

I will need to look into either lazy loading that module so people can still test in a LiveCD, or just document it in the description.

There's a good chance this might not effect people who have installed the OS.

Persisting tiles config across launcher app switches

Thanks for the great app. Now is there no way to persist the tile configuration when switching to an alternative launcher and back to tiled menu? The tiles config should really persist across changes in other settings as long as the applet itself is not uninstalled. For example 'soft' actions like switching to alternative launchers, or removing the applet from the panel should not destroy the tile configuration.

Make search bar easily resizable

Search bar size is bigger than it should be, at least is what I think. you should make it resizable (in human way, I mean, no code involved for this). And you should try to fix the power button center and align it with middle of search bar, it would be a more precise design, and user face icon should be rounded by a circle, not squared, I mean, like in Windows.
Ah! i almost forgot it, when I select between Tiles only, Alphabetic or Category order, it just work in the current launch, next time i launch it, it returns to default behavior, in my case, Alphabetic order.
Clipboard

[Suggestion] Increase number of rows

Hi, love this menu.

What would be great is as well as being able to increase the number of columns, is to increase the number of rows. Having a maximum of 10 is not enough for me, but I don't want to go full screen.

Thanks.

AppButton labels in Search overflow-y, overlapping each other

I've no idea if this is a bug from the chinese text, or screen scaling, or qt scaling, or a larger font size, or...

"App Description: After", isn't used for the search results list, so that's not it.

  • Tiled Menu v12+
  • Plasma 5.12.4
  • distro Kubuntu 18.04
  • desktop theme Psion, window style Breeze, widget style kavantum i.e ( through kavantum manager to provide style)

Edit: Update

My problem is partly solved. The cause of fonts and icon overlapping for the SEARCH RESULT is caused by changing font size of the system in the system-setting. If anyone want to avoid the problem, one should always use default setting of font size. If anybody want to enlarge the fonts, changing the dpi to 115 will be the optimal. The individual font size setting should be kept at default value.

[Suggestion] Make it an official Plasma widget

I really like your Plasmoid, the amount of options is great.

Is there any reason why this isn't shipped by default with Plasma? So you could select this widget in the Show Alternatives option.

It's by far the most complete and that can be punched until it fits most use cases.

Jump to First Letter View

The Windows Start Menu has the ability to click on the section/letter separators, to bring to jump quickly to any section.

My implementation so far has a preset fill of "Recent Apps", Symbols, Numbers, and A-Z.

I still need to:

  • Add a "jump to category view" for the category list section labels.
  • Add ability to configure starting in the "jump to letter" or "jump to category" view.

I may change the "recent apps" icon from the unicode WHITE CIRCLE WITH UPPER RIGHT QUADRANT character โ—ท to the icon view-history so long as loading the icon doesn't cause an animation hiccup. I can't use any one of the other unicode "clock" symbols since none of them are symbolic. All of them are now colorful emojis.

As for other languages/symbols besides Roman English, I'll need to look at what Windows did. I know that they recently simplified the chinese character set buttons to around 30 buttons from ___ buttons.

Store appList value in config file

appList can either be getAllCategories() or getAllApps()
It currently defaults to getAllApps() when you just load the plasmoid. Changing it to getAllCategories persists until plasmoid is restarted. It would be nice if this could be stored persistently over plasmoid restarts.

Easier keyboard navigation

Currently there is no indicator which button is currently focused. And I find it's impossible to tab to the tiles. There should be 3 area that can be tabbed into: sidebar, app list, and tiles. Then user can choose which button or tiles to interact with arrow keys. Search should work regardless of which area is focused.

Scrolling App List is Laggy

Flame Graph of scrolling up and down

The main cause appears to be the svg loading in AppToolButton.

So we should probably reuse those components.

Live tiles

Adding a feature similar to the live update tiles in windows would be nice. For example a tile that fetches and displays data from github.

Avatar dissappears after changing it

KCoreAddons.KUser shows that during Component.onCompleted it is set to:

qml: faceIconUrl file:///var/lib/AccountsService/icons/chris

and during avatar change, it seems to switch to empty twice, attempting to load ~/.face.icon.

log_user_manager: Starting:  QUrl("file:///home/chris/tinyhats.png")
log_user_manager: From:  QUrl("file:///home/chris/tinyhats.png") to:  "/tmp/kcmshell5.tETBRW"
log_user_manager: Avatar created
log_user_manager: Saving on Index:  0
qml: faceIconUrl 
qml: faceIconUrl file:///home/chris/.face.icon
qml: faceIconUrl 
qml: faceIconUrl file:///var/lib/AccountsService/icons/chris

I wonder if this is why LiveCDs don't show an avatar.

Widgets in the tile grid?

It's more of a feature request since I know that functionality hasn't been implemented yet, but whenever I try to add widget to the app grid an empty tile is created (alongside with separate widget on desktop).

STR:

  1. Add tiled menu to desktop so it is in it's full view.
  2. Press "Add Widgets" button from context menu of desktop.
  3. Drop a widget on grid space in menu.

I'd really love to have widgets in a menu since widget dashboard got canned in KDE 4 (there's been widget void in my heart that nothing has replaced as of yet).

Kubuntu 18.04 cannot open the config

ConfigGeneral.qml:190 is here:

ConfigIconButton {
	icon.name: "folder-documents-symbolic"
	text: StandardPaths.displayName(StandardPaths.DocumentsLocation)
	onClicked: sidebarShortcuts.addUrl('xdg:DOCUMENTS')
}

which is our preset of

import QtQuick.Controls 2.0 as QQC2
QQC2.Button {
	Component.onCompleted: background.elementType = 'toolbutton'
}

So it seems it's not loading the QtQuick 2 buttons.

Allow option for reduced visual tiles effect

Would you implement an option to have a more modest visual effect instead of the current weight-based visual tiles effect implemented when hovering over the tiles? I feel that when using the menu for longer, the visual effect is too strong and is rather distracting. Ignore the blackouts in the .gif.

Peek-tiles-effect

Scale Sidebar ContextMenu based on label width

When in Spanish, the first option (User Manager) remains User Administrator. Since it is a larger string, the space is insufficient.

Need to rewrite the sidebar code to use the label's implicitWidth. Right now we're using a constant width.

Add option to automatically save configuration

Upon switching to another launcher via Show Alternatives any changes a user has made to customize the menu are lost. Alternating between menus should not leave the user stranded and having to start customizing from scratch. This enhancement request is different from #19 to which I have also made another suggestion to make it less assuming for new and inexperienced users.

configurable tile size and tile area width

This is a feature request. It would be nice to have the tile square unit size adjustable (in pixels) in the applet config. At the moment the fixed (relatively large) tile size means control for the size of an individual task launcher (based on tile units) is very course.

Also, it would be nice to have the width of the tile area configurable in terms of the number of tiles. For example the user can set the tiled area to be 9 tiles in width and so on. At the moment there's only two settings, the preset 6 tiles, and the full screen, which is too course a control.

Regards.

GIF (AnimatedImage) / Markdown (Thumbnail Preview)

A user mentioned we could possibly load GIFs using AnimatedImage, or use the desktop icon thumbnail preview code for Markdown text files. There's also a thought of HTML for a custom RSS feed like discussed in Issue #17.

2018-11-15___13-39-29

We'd need to use a Loader for the background Image/AnimatedImage depending on the tile's url.

Tile Editor is clipped when AppList width is too small

2019-09-01___09-59-44

We'll need to use appListWidth: isEditing ? minimumWidth : configuredWidth, but we'll need to make sure that resizing the window doesn't serialize a larger tile grid width. I'm fairly certain it won't but I need to confirm that assumption.

Show desktop wallpaper in fullscreen mode

It's posible to access the default PlasmaCore.Dialog { id: popupWindow } by calling Window.window in the Plasmoid.fullRepesentation's onParentChanged signal.

We can then set the backgroundHints to PlasmaCore.Types.NoBackground to get rid of the frame around it.

// CompactApplet's popupWindow isn't available until the parent is attached.
// https://github.com/KDE/plasma-desktop/blob/master/desktoppackage/contents/applet/CompactApplet.qml#L94
onParentChanged: {
	var popupWindow = Window.window
	if (typeof popupWindow.backgroundHints !== "undefined") { // Make sure it's a PlasmaCore.Dialog
		popupWindow.backgroundHints = Qt.binding(function(){
			return plasmoid.configuration.fullscreen ? PlasmaCore.Types.NoBackground : PlasmaCore.Types.DefaultBackground
		})
		popupWindow.location = Qt.binding(function(){
			return plasmoid.configuration.fullscreen ? PlasmaCore.Types.Floating : plasmoid.location
		})
	}
}

App List Font Size

2020-01-12___22-25-05

It's hardcoded to 16 or 18px I think. We can currently change the icon size, but the text does not scale with the icon. Not sure if it should auto scale, or if I should provide a font size control.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.