Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Updated from 1.3 to 1.6, suddenly shell implicitly changes theme and context menu entries? #14

Closed
leaumar opened this issue Jun 7, 2022 · 5 comments

Comments

@leaumar
Copy link

leaumar commented Jun 7, 2022

I just updated shell from 1.3 to 1.6. I'd like to note only the latest version's release notes seem to be available anywhere, so I can have no idea what changed in the other two versions.

Anyway, after updating, it seems Shell changes my context menu's appearance and moves some of the entries:
image image

This isn't configured in my shell.shl:

shell {
    variables {
        icon_bat = @reg(@reg.cr, 'batfile\DefaultIcon')
        script_folder = 'D:\Projects\Windows Shell'
        ps1_1000px = @path.join(@script_folder, 'Convert to 1000px TIF.ps1')
        ps1_repack = @path.join(@script_folder, 'Repack to CBZ.ps1')
        ps1_remux = @path.join(@script_folder, 'Remux to MKV.ps1')
    }

    dynamic {
        item(
            title='Convert to 1000px TIF'
            type='file'
            find='.jpg|.png'
            image='@icon_bat'
            // cmd='cmd'
            // arguments='/C powershell -File "@ps1_1000px" "@sel.path"'
            cmd='powershell'
            arguments='-File "@ps1_1000px" "@sel.path"'
        )

        // etc
    }
}

I saw the new view and theme variables but they don't seem to be a solution and their values don't seem documented.

How can I make Shell not change things my shell.shl doesn't specify? Thanks

@leaumar leaumar changed the title Updated from 1.3 to 1.6, suddenly shell changes implicitly changes theme and context menu entries? Updated from 1.3 to 1.6, suddenly shell implicitly changes theme and context menu entries? Jun 7, 2022
@moudey
Copy link
Owner

moudey commented Jun 8, 2022

Hello @leaumar
You can see the changes at this link https://nilesoft.org/download/changes

The view option is a simplification of the item.padding option. and this issue will be fixed. You can use padding instead of view

default {
    item {
        padding = [4, 2, 4, 2]     // [left, top, right, bottom]
    }
}

To disable auto glyph for static items use this option

default {
    glyph = false
}

Use theme.auto or theme.classic to render system color

This isn't configured in my shell.shl:

Please explain more. Because the code has been tested

st

Please @leaumar indicate the options you want to disable because most of the options can be disabled

Thank you @leaumar

@leaumar
Copy link
Author

leaumar commented Jun 8, 2022

Thanks for the full reply. I'd like to explain why I felt my UX last night wasn't great, and suggest improvements I think would benefit everyone.

You can see the changes at this link https://nilesoft.org/download/changes

I looked and looked last night for a link like this but couldn't spot it. Just now, by having the link and seeing it's part of the /download/ page, I looked again and noticed that the heading is the link:
image

The lack of an underline on the link, its double meaning (the changes here, but also other changes on another page), and that it's common for headings to be colored while it's unusual for them to also be a link, makes this link easy to overlook if you don't already know where it to expect it. I'd like to suggest styling it more like this, so that it doesn't subvert typical html semantics:
image

glyph = false

As for the issue with appearance and config, what I mean is that my expectation of Shell is the following, based on my experience up to 1.3:

Windows default menu + changes defined by user in shell.shl = new menu

But since then, it's now:

Windows default menu + changes by default values of some (new) variables + changes in shell.shl = new menu

When I updated to 1.6, my context menu looked different: extra/changed glyphs on static items, one of the static items moved, and I think I see subtle font/spacing changes. But my shell.shl is the same as before. This is surprising behavior because it means there's more configuration being applied than only shell.shl.

I didn't want those new glyphs and other changes to static items, I only want the changes I've personally configured in shell.shl. So now I had to undo them, but undoing them isn't easy. (or even possible?)

To be honest, maybe I'm just too tired, but I still don't see anything in the docs that tells me that, by default, glyph = true and this adds those glyphs to static items. I feel like I'm looking for a needle in a haystack to find the reason my menu is different, let alone how to undo it.

Even with the values you provided added to my shell.shl, my menu still looks different and I don't like it. Even if I know what other things to change, there's the problem of how: if the spacing/padding and order of some entries has changed, I want to set it back, but what's the magic value that's equal to "windows default"?

image image image

I believe you should make these "changes by default" both visible (so we know what they are) and opt-out, and document all these variables if they aren't yet (if they are, really sorry, but I just do not see a long list of all the variables like glyph, view, and theme with their possible values, defaults, and exact effects). Return to "default menu + explicit shell.shl changes = new menu" without any changes done by Shell automatically outside shell.shl config.

I understand you might want to apply these aesthetic changes by default as part of the Shell UX, but that doesn't mean they need to be forced. You could, for example, put "Shell House Style" into the default shell.shl bundled with the exe in the download. Then people setting up for the first time will have the experience you intend, and people upgrading can find the new values and choose to copy them to their own config or not. You can also mention changes to the default aesthetic in the release notes just to make sure. Maybe put them in a separate .shl file and allow a sort of partial-inclusion in the .shl syntax, like shell { include = shell-style.shl }.

It's getting really late for me so I'd like to leave it at this. I hope I've been clear and given good arguments you can agree with, and that you see a way to support my "explicit config changes only" usecase together with the default style you'd like to apply.

@leaumar
Copy link
Author

leaumar commented Jun 8, 2022

So to make a more correct case, I've carefully taken some screenshots:

Windows vs Shell 1.3:
1 shell-none 2 shell-1 3

I guess 1.3 already introduced some default visual changes, but they're so subtle I didn't realize or at least forgot over time.

Shell 1.3 vs 1.6 without glyphs:
2 shell-1 3 4 shell-1 6-noglyph

Looks like 1.6 actually restores the underlines 1.3 removed.

So, TLDR of what I was trying to say earlier: could these changes (the spacing, the move of Pin to Taskbar, and anything we don't see here) just be made opt-out? I would like for Shell to just add some custom menu items I've defined in shell.shl, and change nothing else.

@moudey
Copy link
Owner

moudey commented Jun 9, 2022

The default padding was fixed where the value was an increment of 2 pixels

View option has been fixed. It is ignored when the padding value is specified

These options have been added to the default section:

// Disable/Enable automatic (image and group) of static items
static-auto=false

// Disable/Enable automatic image of static items
static-auto-image=false

// Disable/Enable automatic group of static items
static-auto-group=false 

Thanks @leaumar

@leaumar
Copy link
Author

leaumar commented Jun 9, 2022

That was fast, thanks for the efforts (I see the release notes are also fully in-page now) 🙇

@leaumar leaumar closed this as completed Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants