[MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单

2023-11-08

一、前(废)言(话)
        Automator是我最喜欢的OS X预装程序之一,能轻松以简单的拖拽创建一个工作流程(WorkFlow),也能用AppleScript和终端Shell辅助完成操作。这篇帖子主要分享我最近写的一些Automator工作流程,包括我前几天在帖子回复中提供的流程,以及经过大幅改写的已发布流程也会在这里介绍。封釉们不必关心这是怎么实现的。
        同时我也必须感谢Apple Community上的菊苣提供的帮助。在bug问题上,大部分错误的操作和非法输入都能被过滤掉,并自动更正。同时也建议用本帖中新版本的流程替换老版本。当然如果封釉发现有什么bug,还请在楼下回复,并注明是什么流程与怎么做才能重现这个bug,有时间我会修复的。
        另外,Automator流程不管以什么形式发布(包括.app应用程序),你都能直接拖入Automator.app查看脚本源代码。我的流程基本上都是以单个“执行AppleScript”操作再嵌入shell完成的,欢迎有兴趣的封釉改进这些流程。
        前言就到这里,接下来就是右键菜单的基本常识和设置,以及帖子中的Automator流程的分享与操作说明.
二、右键菜单更改与快捷键
       写在前面:对于触控板,右键指的是:双指单击。
        ①当我们的Mac一买来,苹果就已经写好了非常多的实用流程,并已经添加到了右键菜单中。并且许多第三方程序也会在安装后往右键增加很多功能,最终导致我们的右键菜单很臃肿。关闭根本没用的项目,只要如图所示,打开系统偏好设置--键盘--快捷键--服务,将不需要的右键菜单项目禁用。
 
        ②如果你想卸载一些用户自定义的右键菜单服务项(不仅仅禁用),那么你可以右键Finder--前往文件夹,前往路径 ~/library/Services,将不必要的右键菜单流程删除即可(不会留下其他垃圾)。如果你只是觉得右键菜单中服务项的名字不好听,只要重命名这个路径下的文件,在右键菜单中也会更新(不会立即生效)。
 
        ③安装右键菜单服务流程也非常简单,你只要双击服务流程文件--安装即可。另外一提,你也可以Automator打开并编辑源代码。
 
三、文本右键服务菜单
          苹果会根据右键对象的不同,提供不同的右键菜单, 文本右键菜单就是当你用鼠标选中文字后点击右键出现的菜单。接下来就来分享一些我专门为实用性和偷懒写的几个流程。
       ①【用"Google"/"百度"/"淘宝"搜索】:总所周知,苹果有一个很人性化的地方是根据你设置的默认搜索引擎在整个系统范围内的右键菜单上加上了“用'百度'搜索”,这样,我们每次选中文字就能直接打开默认浏览器搜索了。但是,如果想同时在右键菜单中拥有“百度”和“Google”两个搜索引擎怎么办?这个流程就是为了解决这个问题而生完全和原有的快捷搜索一样的用法,并且也同样使用默认浏览器打开。
 
        当然,你可以用Automator打开我的流程,编辑搜索引擎的网址,你甚至能得到“在亚马逊搜索选中商品”、“在淘宝搜索选中商品”,个人觉得这是一个非常实用的流程 这里提供“用‘百度’搜索”“用‘Google’搜索”和“在'淘宝'搜索”三个常用的流程:
用"Google"搜索:  用“Google”搜索.zip (65.32 KB, 下载次数: 4648) 
用"百度"搜索:  用“百度”搜索.zip (65.21 KB, 下载次数: 5662) 
在“淘宝”搜索:  在“淘宝”搜索.workflow.rar (64.08 KB, 下载次数: 1360) 
          ② 设置lrc歌词延时 :平移lrc歌词时间轴的流程。 不管歌词在哪里,你只要全选歌词,就能对其进行延迟操作,延迟完成后会有通知中心提醒,因为延迟后的歌词保存在剪切板中,你可以立即在所需的地方粘贴。同时,我也提供了.app应用程序版, 如果你想直接写入文件,那么这个脚本能非常方便的实现这个功能: 通过选择lrc文件,设置延迟,并再提示选择新歌词保存路径。 DynamicLyrics是一款在桌面或者状态栏显示歌词的软件(或者说是iTunes插件),能随着iTunes启动而启动,退出而退出。 DynamicLyrics自带的修改工具有时候不方便修改(不能自定义延迟时间), 这个服务流程是也能解决DynamicLyrics下载的歌词和歌曲存在延迟的问题,由于DynamicLyrics不对时间轴本身进行修改,只是在lrc文件添加了[offset:second]这个信息,能被DynamicLyrics识别并读取 (但是有些播放器不能读取这个ID标签) ,所以这时候你可以用这个流程直接更改时间来解决问题。
效果:
 
1.右键文本菜单版基本操作:
 

2. 右键文本菜单版 配合DynamicLyrics使用:

3.传统.app应用程序版操作:
 
设置lrc歌词延时(右键服务菜单版;8月7日更新):  设置lrc歌词延时.7z (161.45 KB, 下载次数: 8) 
设置lrc歌词延时(.app应用程序版; 8月7日更新 ):  lrc歌词延迟.7z (1.04 MB, 下载次数: 6) 

三、文件/文件夹右键服务菜单
        文件/文件夹右键服务菜单的对象是Finder中显示的文件和文件夹。苹果限制了能发送给服务流程的文件/文件夹的数量最高为1000个。以下流程,我会提供右键服务菜单版传统.app应用程序版,区别是,一个右键里调用,一个和普通程序一样双击打开调用。以下只演示右键服务菜单版。

        ①【截取文件名】 作用是:编辑文件名,并且只保留文件名的其中一个区间。 打个比方,我要批量去掉所有文件名的前2个和后2个字符,那么这个流程就派上用场了。 这个流程最早出现在我以前的主题帖中,相比原始版本,我进行了不少bug修复和防止误操作的改进,并且增加了一个更快捷的版本。
        用途举例:我比较不喜欢音乐前面含有那些专辑序号,或者歌手-歌名的模式,我的强迫症要求我必须去掉,但是一个一个改太累,于是我就写了这个流程(Finder Rename貌似做不到),直接选中后-右键-截取文件名。
V2.0(将对样本的修改应用于所有文件):这个版本的实现方法简单说就是从你选中的所有文件中取出一个文件作为样本,你对这个样本的修改会应用于所有选中文件,只允许删除头和尾的字符,不允许删除文件名中间的字符,流程只会计算出你删除了文件名头和尾的字符数,并将所有选中的文件名的头和尾都删除同样多的字符。请看例子:
 
V1.0(手动输入开始字符和终止字符): 这个版本和上面不同的是,你要自己数需要删除文件头和尾多少个字符,然后应用于所有文件,效果是一样的,这也是我最初的版本(不符合我的节能生活)。

截取文件名2.0(右键服务菜单版)    截取文件名.zip (119.84 KB, 下载次数: 2357) 
截取文件名2.0(传统.app应用程序版):  截取文件名.zip (1.47 MB, 下载次数: 14) 
截取文件名1.0(右键服务菜单版) :    截取文件名.zip (120.74 KB, 下载次数: 1192) 

       ②【批量重命名】:正如名称一样,对文件名的进行批量重命名。流程将会根据Finder中的排序为准,对文件进行重命名,格式是“前缀 + 至少两位数字”,也就是说,这个流程会先计算一共有多少个文件,根据文件数量取模,比如50个文件,那么数字序列是两位,如果是120个文件,那么数字序列是三位,依次类推。重命名后的文件序列先后顺序是根据Finder中的排序而定,在Finder列表中,左边优先于右边,上面优先于下面排列。
       另外,本流程有两个版本。因为上面提到了,苹果限制了流程服务最多只能输入1000个文件,然而应用程序无此限制,所以我提供了服务菜单版和应用程序版。
 

批量重命名(右键服务菜单版):  批量重命名.zip (66.12 KB, 下载次数: 10073) 
批量重命名(.app应用程序版):  批量重命名.zip (1.47 MB, 下载次数: 1601) 

       ③【文字/字幕合并】: 作用是用cat 拼接文本/字幕文件。 这个点子来自这个帖子,我觉得原帖做得不够好,因为要和/applications路径扯上关系,于是我也写了个。用来做双语字幕的确是个好点子,但是不同的字幕轨道出现可能是一先一后。

 

文字/字幕合并(右键服务菜单版):  合并文本:字幕.zip (133.66 KB, 下载次数: 18) 
文字/字幕合并 (传统.app应用程序版):  合并文本:字幕.app.zip (1.47 MB, 下载次数: 11) 

       ④【 用txt内容重新命名 】:这个流程的作用是将txt文件中的行名称作为文件的新名字。这个流程曾经在我的回复中出现过,这里一起附上。要求txt文件中的行数量大于文件的数量。请看演示:

用txt内容重新命名(右键服务菜单版):  用txt内容重新命名.zip (86.89 KB, 下载次数: 413) 
用txt内容重新命名(传统.app应用程序版):  用txt内容重新命名.zip (1.47 MB, 下载次数: 14) 


         ⑤【一键封装mov】:这个流程的作用是将各种视频格式的视频一键转换为mov封装格式。
1)关于封装格式的解释所有的视频文件有两部分组成,视频流和音频流。视频(封装)格式就是容纳视频流和音频流的容器。所以最快的转码应该是只转换封装格式(10多秒完成),而不转码视频流和音频流。
2)为什么要转换成mov: iOS设备和Mac的内置浏览器不支持mkv、rmvb等多种格式,但是支持mp4、mov格式(mov代表QuickTime Movie),所以大多数情况只要转换封装格式就能在此类播放器上播放。最重要的是,如果你想进行iMove或Final Cut剪辑,那么转换封装格式是必要的,如果你的素材不是mp4/m4v/mov的话,相比转码,能省下相当多时间。
3)这个流程是智能化的,会以最佳的方式转换成mov
例外一提,如果使用了这个流程,那么我一年前的这篇帖子(【Mac技术组】最省时的视频封装格式转换 )就显得很蠢。

一键封装mov(右键服务菜单版): http://pan.baidu.com/s/1i3Ly9ff
操作非常简单,只要一键完成mov封装(mov文件会在原文件路径生成),如下图:
 
你也可以使用.app应用程序版,由于我已经将FFmpeg和MediaInfo包含在.app包内,所以无需额外下载组件,直接可以使用。
转换为mov格式 (.app应用程序版):  转换为mov格式.7z (10.08 MB, 下载次数: 28) 

        ⑥【对视频进行转码】:如名字所言,对视频进行转码操作(格式mov)使用的是FFmpeg(libx264库与libFDK-AAC)编码核心,这是目前最优秀的视频转换工具。流程提供了四个预设,其中一个针对压制蓝光,两个用于压制移动设备上观看的影片,一个是战渣浪参数(上传新浪用),战渣浪也是这个流程的核心。相比格式工厂那些乱七八糟的软件,这个流程能提供更好的质量。
预设1:压制蓝光。
预设2:高质量。
预设3:中质量。
预设4:低质量(上传新浪)。通过分析片源,音频根据片源情况使用最适合编码,音频和视频码率根据情况智能分配。

对视频进行转码(右键服务菜单版): http://pan.baidu.com/s/1i3Ly9ff
演示:1) 选择转码预设 2)选择输出文件夹 3)自动打开终端转码[如果想退出转码,那么直接关闭终端即可] 4)完成后通知中心提醒


你也可以使用.app应用程序版,由于我已经将FFmpeg和MediaInfo包含在.app包内,所以无需额外下载组件,直接可以使用。
对视频进行转码(.app应用程序版):  对视频进行转码.app.7z (11.61 MB, 下载次数: 31) 

         (大部分封釉可以忽略的)【rPath修改工具】(需要Xcode):利用Xcode中的install_name_tool修改二进制可执行文件(确切说是所有Mach-O)的rPath,将其依赖的库由/usr/local/lib转移到执行路径下的NAME_lib文件夹,并且通过递归对库之间的依赖也进行修改,并将所有依赖库拷贝到 NAME_lib中。如果不修改存在库依赖的二进制文件,那么它只能在你的电脑运行,在其他电脑就会提示缺少必要的库,所以这个流程能 便于发布编译好的开源程序,比如例子中的FFmpeg和MPlayer。Xcode项目完全能用Xcode解决。  

下载:  修改rPath.scpt (27.55 KB, 下载次数: 3) 

五、后记
       上面就是我认为比较有用的流程,当然大部分只是我个人的需求,如果有什么有意思的点子可以在楼下回复,在我力所能及的的范围内会做一个出来。总的来说,流程不适合做:
①监视型:比如监视你做了什么事(这个需要Obj-C程序) ,因为AppleScript是单线程的,而且没有系统事件和键值观察特性 。
②触发型:比如在什么点做什么事。

        只要不是上面的类型,一般通过Automator都不困难。后期可能还会发帖分享一些新的流程~还望支持~


转自:http://bbs.feng.com/read-htm-tid-8171707.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单 的相关文章

随机推荐

  • Python os.path模块的使用

    Python os path模块的使用 Python的os模块是一个对接操作系统的模块 当我们需要对路径进行操作时 可以使用os path os path模块实现了很多处理长文件名 长路径名的函数 可以用来对路径切分 拼接 转换等 先导入o
  • Seata分布式事务失效踩坑记录

    在学习Seata过程中 偶然发现了一个坑 这里做个记录 环境说明 先说下我的环境 我是搭建了一个SpringCloud微服务 然后A服务调用B服务 然后在这两个服务都集成了Seata 集成过程是没有问题的 业务场景是注册场景 A服务中需要操
  • 01-java学习笔记【接口与抽象类】

    这些是我自己的理解加上网上优秀的分享总结出来的 抽象类是用来捕捉子类的通用特性的 它不能被实例化 只能被用作子类的超类 抽象类是被用来创建继承层级里子类的模板 接口是抽象方法的集合 如果一个类实现了某个接口 那么它就继承了这个接口的抽象方法
  • papers with code介绍(人工智能方向研究生的必备网站)

    paperswithcode介绍 人工智能方向的必备网站 本文将从两个部分介绍 一 正文 二 导航 A browse State of the Art B Datasets C Method D More 网站首页 一 正文 2 最上面是四
  • Python中RSA加密

    文章目录 RSA加密 一 概述 1 简介 2 签名 3 环境配置 二 算法实现 1 公钥和私钥 2 加密和解密 3 签名和解签 RSA加密 一 概述 1 简介 RSA是非对称的 也就是用来加密的密钥和用来解密的密钥不是同一个 和DES一样的
  • LCD背光控制芯片

    PWM信号可通过调整占空比来调节输出电压 可以使用PWM来控制LCD的背光 但CPU的pwm引脚驱动能力太弱 常外接一个背光芯片 rt9293就是这样的一个恒流升压转换器 Iled Vref Rset Vfb Duty 300mV Duty
  • 论文阅读_大语言模型_Llama2

    英文名称 Llama 2 Open Foundation and Fine Tuned Chat Models 中文名称 Llama 2 开源的基础模型和微调的聊天模型 文章 http arxiv org abs 2307 09288 代码
  • js怎样判断引用类型和值类型?

    1 typeof 输出的类型 console log typeof y undefined console log typeof 101 number console log typeof hello string console log
  • 如何使用logging生成日志

    GiantPandaCV导语 日志对程序执行情况的排查非常重要 通过日志文件 可以快速定位出现的问题 本文将简单介绍使用logging生成日志的方法 logging模块介绍 logging是python自带的包 一共有五个level deb
  • https 访问 iframe 的http

    最近做的项目要求https 嵌入http的项目 浏览器老是提示https不能访问http 为了满足需求 在本地项目中添加了nginx转发服务 将项目中的iframe 转发为https 再又nginx将https转发至http 满足需求了 n
  • 1. 经验累积分布函数

    为了说明经验累积分布函数 我们这里使用一个学生成绩的数据集 假设班有50名学生 这些学生刚刚进行了一个测试 这个测试的结果是以0 100的分数来体现的 我们要如何更好的可视化结果呢 例如确定成绩的最大值和最小值 对于这个数据的可视化 我们可
  • jar包修改并重新打包,jar包反编译使用工具以及修改代码方法

    jar包修改并重新打包 jar包反编译使用工具以及修改代码方法 备忘 https blog csdn net tomcat zhu article details 79240011
  • unity中的reflectionProbe的使用

    下面说一下Reflection Probe 大家都知道 当使用标准着色器时 每一个材质都会具有一定程度的镜面反射 specularity 和金属反射 metalness 属性 在没有强大的硬件来处理即时光迹追踪反射的情况下 我们得仰赖预先计
  • 8.bidirectional_recurrent_neural_network

    import torch import torch nn as nn import torchvision import torchvision transforms as transforms device torch device cu
  • 电源升降压芯片电路归纳(归纳中。。。)

    注 学习硬件做的总结 大神勿喷 有不足之处还望不吝赐教 目录 电源升压5v芯片归纳 PS7516电路 NCP1400ASN50电路 PL2628电路 FP6276B电路 PL2303电路 PS3120A电路 QX2301LXXE电路 电源升
  • Opencv快速入门教程,Python计算机视觉基础

    快速入门 OpenCV 是 Intel 开源计算机视觉库 它由一系列 C 函数和少量 C 类构成 实现了图像处理和计算机视觉方面的很多通用算法 OpenCV 拥有包括 300 多个 C 函数的跨平台的中 高层 API 它不依赖于其它的外部库
  • 用java解一元二次方程组

    System out print 求 ax 2 bx c 0的根 n Scanner in new Scanner System in 定义变量 while true System out println 请输入a的值 int a in n
  • RT-Thread开发GD32F450 添加adc外设

    开发板使用的是gd32f450zk env工具使用的版本是1 3 5 rtthread版本是5 0 0 添加adc外设的步骤如下 步骤1 查看开发板的电路原理图 确定adc的使用引脚 使用的是引脚PF6 即adc012 IN4 如下图 步骤
  • 设计模式:状态机模式

    首先状态机模式是处理一个类在内部状态改变的时候 其方法处理信息的模式也会改变 这里说一个在RTS游戏里的应用 有限状态机 我们要赋予每个战斗单位一个智能 比如一定范围内检测到地方单位 且自身处于游荡或者Patrol状态 那么就转换为攻击状态
  • [MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单

    一 前 废 言 话 Automator是我最喜欢的OS X预装程序之一 能轻松以简单的拖拽创建一个工作流程 WorkFlow 也能用AppleScript和终端Shell辅助完成操作 这篇帖子主要分享我最近写的一些Automator工作流程