Y_z
(Y_z)
2
最近在论坛里看到相关帖子,想起用了几个月的 “Nilesoft Shell” 也能实现
【Mini Env】一个在 Windows 系统中通过右键菜单添加目录到环境变量的小工具 - 发现频道
- 小众软件官方论坛
来自Discord上FierySpectre
所分享的代码片段:
item(title = 'Add to PATH' Window=Hidden type='dir|back.dir' admin cmd args='/K @echo powershell.exe [Environment]::SetEnvironmentVariable("\"PATH\"", "\"@sel.path;"\" + [Environment]::GetEnvironmentVariable("\"PATH"\", "\"Machine"\"),"\"Machine"\") && @echo exit')
以及 @nanachi 的求助帖,有办法给7z的右键菜单增加按键导航吗 - 问题求助
- 小众软件官方论坛
给菜单项添加快捷键,title=‘菜单项文本(&按键)’:
item(find="search everything" title='搜索(&S)')
2 个赞
Y_z
(Y_z)
4
根目录下 .\imports
文件夹是引用的配置文件 xx.nss
配置文件shell.nss
的简单介绍:
shell
{
// 变量声明
var
{
isw11=sys.is11
}
// 基本设置
set
{
// 主题外观
theme
{
// 整体样式:auto, classic, white, black, or modern
name="modern"
// 夜间模式: true, false
dark = true
// 直角,默认是圆角
// border.radius = 0
// 背景样式
background
{
// 背景透明度
// opacity = 85
// 背景效果: value 0 = disable, 1 = transparent, 2 = blur, 3 = acrylic
// effect = 1
}
}
// 菜单显示延迟调整:0-4000
showdelay = 0
}
// 引入其他的配置文件
images import 'imports/images.nss'
// 静态菜单项:配置现有菜单项,比如系统内置或通过其他软件/注册表添加的
static
{
}
// 动态菜单项:通过dynamic的配置,自定义添加的菜单项
dynamic
{
}
}
1 个赞
nanachi
(nanachi)
5
感谢推荐。我后来用十六进制编辑器暴力修改字符,算是达成了需求。这个看起来也不错,可以收作备用
Y_z
(Y_z)
7
介绍一些基本用法,方便懒得去看文档的轻度用户
,也欢迎大家分享代码段:
static
{
// 通过Nilesoft Shell能方便的隐藏一些第三方右键菜单软件不方便隐藏的系统项和注册表添加项
// find:菜单项的文本或是自定义title的值,每项用"|"分隔
// 字符匹配的默认方式是填入的文本项只需要被现有文本包含就行
// 比如:填入find="百度网盘",就能匹配到"上传到百度网盘"及其他含有"百度网盘"的项
item(find="授予访问权限|上传到百度网盘|" vis=hidden )
}
static
{
item(find="open in new ta" title='在新标签打开')
item(find="使用火绒安全粉碎文件" title='火绒处理文件')
item(find="search everything" title='搜索(&S)')
item(find="智能解压并删除" title="智能解压并删除(&X)")
item(find="记事本" title="记事本(&N)")
}
static
{
// image=\图标编码
// 内置的图标编码:[Glyphs Gallery - Shell](https://nilesoft.org/gallery/glyphs)
// 也可以去阿里图标找:[iconfont-阿里巴巴矢量图标库](https://www.iconfont.cn/)
item(find="打开" image=\uE215)
item(find="打开方式" image=\uE16A)
item(find="注销" image=\uE045)
item(find="编辑" image=\uE281)
item(find="在新标签打开" image=\uE0A4)
item(find="选择其他应用" image=\uE1F6)
item(find="Run script" title='运行' image="\uE20C")
}
dynamic
{
// Windows Terminal在当前目录打开
// title:菜单项文本(&快捷键)
// admin=key.shift():按住shift右键以管理员方式打开
item(where=sys.ver.major >= 10 title=title.Windows_Terminal tip=tip_run_admin admin=key.shift() image=icon.run_with_powershell cmd='wt.exe的路径' arg='-d "@sel.path\."')
}
dynamic
{
// .nss用VS Code打开
// item(type='file' find='.nss' title='VS Code'cmd='VS Code路径' args='"@sel.path"')
// .nss用记事本打开
item(type='file' find='.nss' title='记事本'cmd='记事本路径' args='"@sel.path"')
}
3 个赞
现在新版本的shell.nss好像不一样了,可以更新下介绍吗 ::
settings
{
priority=1
exclude.where = !process.is_explorer
showdelay = 200
// Options to allow modification of system items
modify.remove.duplicate=1
tip.enabled=true
}
import 'imports/theme.nss'
import 'imports/images.nss'
import 'imports/modify.nss'
menu(mode="multiple" title="Pin/Unpin" image=icon.pin)
{
}
menu(mode="multiple" title=title.more_options image=icon.more_options)
{
}
import 'imports/terminal.nss'
import 'imports/file-manage.nss'
import 'imports/develop.nss'
import 'imports/goto.nss'
import 'imports/taskbar.nss'
Y_z
(Y_z)
9
v1.9.15 版本
changes
改进配置文件结构,删除了 variables
、 static
和 dynamic
部分
相当于将 static
部分写到 ~\Nilesoft Shell\imports\modify.nss
中
dynamic
部分写到 ~\Nilesoft Shell\imports\new.nss
中
~\Nilesoft Shell\shell.nss
// settings 文档:https://nilesoft.org/docs/configuration/settings
settings
{
// 显示菜单延迟(ms)
showdelay = 0
// 阻止窗口或程序的起作用
exclude
{
// 作用在资源管理器
where = !process.is_explorer
// 窗口名
// window = window name
// 进程名
// process = process name
}
// 提示
tip = true
// 修改菜单项
modify
{
// 布尔值:0 = 禁用、1 = 启用
// 启用
enabled = 1
// 图标 [0 = 禁用, 1 = 启用, 2 = 自动]
image = 2
// 修改标题
title = 1
// 显示或隐藏
visibility = 1
// 修改父级
parent = 1
// 修改位置
position = 1
// 分隔线
separator = 1
// 自动设置图标和组
auto = 1
}
// 新的菜单项处理
new
{
// 开启
enabled = 1
// 图标
image = 1
}
}
// 引入主题配置
import 'imports/theme.nss'
// 引入图标
import 'imports/images.nss'
// 引入修改现有菜单项
import 'imports/modify.nss'
// 引入新增菜单项
import 'imports/new.nss'
~\Nilesoft Shell\imports\modify.nss
// Modify 文档:https://nilesoft.org/docs/configuration/modify-items
// 属性(mode、where、type等)文档:https://nilesoft.org/docs/configuration/properties
// 函数(id()等)文档:https://nilesoft.org/docs/functions
// 含用于修改现有的上下文菜单项,这些项由系统或第三方程序添加
// 通过标识符删除菜单项 by identifiers
modify(mode=mode.multiple
where=this.id(id.restore_previous_versions,id.cast_to_device)
vis=vis.remove)
modify(type="recyclebin" where=window.is_desktop and this.id==id.empty_recycle_bin pos=1 sep)
modify(find="unpin*" pos="bottom" menu="Pin/Unpin")
modify(find="pin*" pos="top" menu="Pin/Unpin")
modify(where=this.id==id.copy_as_path menu="file manage")
modify(type="dir.back|drive.back" where=this.id==id.customize_this_folder pos=1 sep="top" menu="file manage")
modify(where=str.equals(this.name, ["open in terminal", "open linux shell here"]) || this.id==id.open_powershell_window_here
pos="bottom" menu="Terminal")
modify(mode=mode.multiple
where=this.id(
id.send_to,
id.share,
id.create_shortcut,
id.set_as_desktop_background,
id.rotate_left,
id.rotate_right,
id.map_network_drive,
id.disconnect_network_drive,
id.format,
id.eject,
id.give_access_to,
id.include_in_library,
id.print
)
pos=1 menu=title.more_options)
// 隐藏菜单项:以“火绒杀毒”、“通过QQ发送到”为例
modify(find="使用火绒安全进行杀毒|通过QQ发送到" vis=Hidden)
// 重命名和按键定位,以“记事本”为例,设置为 N 键
modify(find="记事本" title="记事本(&N)")
~\Nilesoft Shell\imports\new.nss
// new items 文档:https://nilesoft.org/docs/configuration/new-items
menu(mode="multiple" title="Pin/Unpin" image=icon.pin) { }
menu(mode="multiple" title=title.more_options image=icon.more_options) { }
// 新建 Windows Terminal 菜单项
item(where=sys.ver.major >= 10 title=title.Windows_Terminal tip=tip_run_admin admin=key.shift() image=icon.run_with_powershell cmd='D:\D-software\terminal-1.17.11461.0\wt.exe' arg='-d "@sel.path\."')
import 'terminal.nss'
import 'file-manage.nss'
import 'develop.nss'
import 'goto.nss'
import 'taskbar.nss'
另外 dc 上也有用户分享主题和配置,有需要也可以看看
2 个赞
Y_z
(Y_z)
11
指的是为某个菜单项比如刷新
设置组合键吗,比如直接按下Ctrl
+ R
触发刷新
如果是这样的话,可能需要借助其他工具比如 ahk 来做到
没理解,如果是指修改二级菜单弹出的水平偏移值可以通过修改
theme.nss
theme
{
layout
{
// 水平向右偏移 10 ,范围:-20(左) ~ 20(右)
popup = 10
}
}
Asipirin
(Nemesis)
12
没错,我指的就是二级菜单的水平偏移,现在两个菜单没有重叠了,看上去舒服多了
另外我指的快捷键是指括号里这个,比方我想给“新建”二级菜单里的这个“microsoft excel工作表”安排一个像“文件夹(F)”这样的快捷键,应该怎么操作?
Y_z
(Y_z)
13
@Asipirin
之前举过例子
// 重命名和按键定位,以“记事本”为例,设置为 N 键
modify(find="记事本" title="记事本(&N)")
试试:
// find:匹配菜单项名,title:设置菜单项名(&定位按键)
modify(find="Microsoft Excel" title='MS Excel(&E)')
Asipirin
(Nemesis)
14
很奇怪,我在一级菜单里试了,没问题,到了二级菜单就不行了
是语法的问题吗?我看到你的语法有的地方用的是双引号,有的地方是单引号
modify(find="记事本" title="记事本(&N)"
modify(find="Microsoft Excel" title='MS Excel(&E)'
Y_z
(Y_z)
15
应该无法直接修改二级菜单
试试这两种方法
方法一
修改注册表
在 ContextMenuManager
软件中看了下也没找到能直接编辑二级菜单的办法
- 注册表中导航到
HKEY_CLASSES_ROOT\Local Settings\MuiCache\530\AAF68885
- 找到
@C:\Program Files (x86)\Microsoft Office\Root\VFS\ProgramFilesCommonX64\Microsoft Shared\Office16\oregres.dll,-101
双击打开
- 数值数据中追加
&(E)
如果找不到就直接在注册表中搜Microsoft Excel 工作表
来定位
如果需要创建或删除新建
菜单项中的项,可以参考:
方法二
不动注册表,通过 Nilesoft Shell
,先隐藏系统内置的新建
菜单项,再创建一个完全自定义的菜单项
\imports\modify.nss
// 移除新建菜单项
remove(type='back' find="新建")
shell.nss
// 引入新建菜单
import 'imports/create.nss'
创建 \imports\create.nss
文件
// 创建“新建”菜单
menu(type='back' Mode='multiple' title='新建(&W)' image=\uE160)
{
item(title='新建文件夹' cmd=io.dir.create(sys.datetime('y-m-d')))
// 创建文件,true:创建时进入重命名状态
item(title='MS Excel(&E)' cmd=io.file.create('Excel.xlsx', null, true))
}
不是,具体语法看文档:Properties Find - Shell
ykq
(ykq)
17
可以试一试ContextMenuManager这个软件,是修改右键菜单的,选项挺多的,应该能满足你的需求
1 个赞
Y_z
(Y_z)
18
修改注册表的方法第一时间想到的是 ContextMenuManager ,之前是在左侧的“目录背景”选项卡中没找到,看到你的回复又找了下,在“主页”左下角的“新建菜单”就有,谢谢提醒
ssln
(wu)
19
要是有人能给写一个界面来配置,这软件是真好使,代码实在不太友好,也没中文文档
前段时间用了一下 又卸载了
Y_z
(Y_z)
20
是的,自定义有一定的门槛,实现复杂点的功能还需要另写脚本,最初只是因为美化需求找的,看了文档后发现自定程度比 ContextMenuManager 高,不过二者原理不一样并不冲突,我都用
软件嘛,没有最好的只有最适合的
值得庆幸的是软件 已开源
但刚刚访问官网发现浏览器报危险网站,暂时别访问,不知道啥情况,之前也偶尔崩过可能是被攻击了 