标签 快捷键 下的文章
我刚刚大炮打蚊子,用 ahk,windows 命令面板,python 做了个我想要的窗口切换器
importsysfromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QListWidget,QVBoxLayout,QLineEdit,QWidget,QFrame)fromPyQt5.QtCoreimportQt,QEventfromPyQt5.QtWidgetsimportQDesktopWidgetimportpyautoguiimportpyperclipimporttimedefpowertoy_active_window(text):sleep_second=0.2time.sleep(sleep_second)pyautogui.hotkey("win","alt","k")time.sleep(sleep_second)pyperclip.copy(text)pyautogui.hotkey("ctrl","v")time.sleep(sleep_second)pyautogui.hotkey("enter") classCommandPalette(QWidget):def__init__(self,parent=None):super().__init__(parent)# 1. 设置 UI 属性:无边框、置顶、背景透明self.setWindowFlags(Qt.FramelessWindowHint|Qt.Dialog)self.setAttribute(Qt.WA_TranslucentBackground) # 外层容器(用于实现圆角和边框)self.container=QFrame(self)self.container.setFixedWidth(500)self.container.setStyleSheet("""QFrame {background-color: #252526;border: 1px solid #454545;border-radius: 6px;}""") layout=QVBoxLayout(self.container) # 2. 搜索输入框self.search_bar=QLineEdit()self.search_bar.setPlaceholderText("键入命令名称以筛选...")self.search_bar.setStyleSheet("""QLineEdit {background-color: #3c3c3c;color: #cccccc;border: 1px solid #007acc;padding: 6px;font-size: 14px;selection-background-color: #264f78;}""") # 3. 命令列表self.list_widget=QListWidget()self.list_widget.setStyleSheet("""QListWidget {background-color: #252526;color: #cccccc;border: none;font-size: 13px;outline: none;}QListWidget::item { padding: 10px; border-radius: 4px; }QListWidget::item:selected { background-color: #094771; color: white; }QListWidget::item:hover { background-color: #2a2d2e; }""") layout.addWidget(self.search_bar)layout.addWidget(self.list_widget) main_layout=QVBoxLayout(self)main_layout.setContentsMargins(0,0,0,0)main_layout.addWidget(self.container,alignment=Qt.AlignCenter) # 模拟命令数据# self.commands = [# "File: New File",# "Git: Commit All",# "Python: Run Current File",# "Settings: Open Settings",# "Terminal: Toggle Terminal",# "View: Layout Grid"# ]self.commands=[["1. book","book code"],["2. anti2","anti2 code"],["4. chrounim","chro"],["5.q-dir","q-dir"],]self.refresh_list("") # 信号连接self.search_bar.textChanged.connect(self.refresh_list)self.search_bar.returnPressed.connect(self.execute_selected)self.list_widget.itemClicked.connect(self.execute_selected) # 2. 当在列表中通过方向键选中某项并按回车时,触发 itemActivatedself.list_widget.itemActivated.connect(self.execute_selected) # 安装事件过滤器以捕获按键self.installEventFilter(self) defrefresh_list(self,text):self.list_widget.clear()# 简单的包含搜索(不区分大小写)# filtered = [cmd for cmd in self.commands if text.lower() in cmd.lower()]filtered=[info[0]forinfoinself.commandsiftext.lower()ininfo[0].lower()]self.list_widget.addItems(filtered)ifself.list_widget.count()>0:self.list_widget.setCurrentRow(0) defexecute_selected(self):item=self.list_widget.currentItem()ifitem:print(f"触发动作:{item.text()}")text=item.text()item=[eforeinself.commandsife[0]==text][0]send_text=item[1]print("#执行命令#:{}".format(send_text))powertoy_active_window(send_text)# self.hide()QApplication.instance().quit() defshow_palette(self):width=500height=400# 假设高度为 400self.setFixedSize(width,height) # 2. 获取屏幕中心# availableGeometry() 会避开任务栏,确保真正的视觉垂直居中screen_geo=QDesktopWidget().availableGeometry()screen_center=screen_geo.center() # 3. 计算面板位置,使其中心点与屏幕中心点重合# 我们可以通过 moveCenter 方便地实现qr=self.frameGeometry()qr.moveCenter(screen_center)self.move(qr.topLeft()) # 4. 显示并聚焦self.show()self.raise_()self.activateWindow()self.search_bar.setFocus()self.search_bar.selectAll()# 方便用户直接覆盖键入 defeventFilter(self,obj,event):ifevent.type()==QEvent.KeyPress:# Esc 键退出ifevent.key()==Qt.Key_Escape:self.hide()returnTrue# 下方向键快速进入列表选择ifevent.key()==Qt.Key_Downandself.search_bar.hasFocus():self.list_widget.setFocus()returnTruereturnsuper().eventFilter(obj,event) classMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("PyQt5 VS Code Command Palette")self.resize(1000,700)# self.minimumSize()self.showMinimized()self.setStyleSheet("background-color: #1e1e1e;")# 模拟 VS Code 背景 # 初始化命令面板self.palette=CommandPalette(self)# self.palette.hide()self.palette.show_palette()defcenter_on_screen(self):# 获取窗口几何结构frame_geometry=self.frameGeometry() # 获取屏幕中心点# QDesktopWidget().availableGeometry() 会排除任务栏占据的空间screen_center=QDesktopWidget().availableGeometry().center() # 将窗口几何结构的中心点移动到屏幕中心点frame_geometry.moveCenter(screen_center) # 移动窗口左上角到计算出的位置self.move(frame_geometry.topLeft()) defkeyPressEvent(self,event):# 绑定快捷键 Ctrl+Shift+P (Qt.ControlModifier | Qt.ShiftModifier)if(event.modifiers()==(Qt.ControlModifier|Qt.ShiftModifier)andevent.key()==Qt.Key_P):self.palette.show_palette() if__name__=="__main__":app=QApplication(sys.argv)# 设置应用字体app.setStyle("Fusion")window=MainWindow()window.show()sys.exit(app.exec_())
这个东西的主要作用是当我输入 1 时,它会找到 ["1. book", "book code"]这一项,然后 取出book code,然后激活 window 窗口切换器
,我的窗口切换器的的快捷是Win+alt+k,本来想用 ahk 来写的,但是 ahk 写 command picker 实在是不会.
ctrl+q 快速退出当前程序
一个 windows 平台下的小程序,系统默认快捷键 alt+f4 太难按了,所以模仿 mac 系统,映射到 ctrl+q 按键,可以强制退出当前程序。
基于 c 开发,体积只有 86kb ,源码和下载地址: https://github.com/netcaty/ctrl-q
hacknews 重度用户看过来 ,HN 评论阅读增强脚本:卡片化 + 折叠/跳 L0 + 主题/渐变 + 像素头像(求大佬们的审美建议)
打磨了一周的卡片式 ui 大佬们还有更多的 功能/样式 建议吗 准备发布啦
它主要解决什么问题?
- 长楼“找上下文”困难:不知道自己在回复谁
- 讨论树太深,页面太长:滚动疲劳、定位困难
- 想快速扫顶层(L0)主线程:上下跳楼不够顺手
- 深色模式/阅读舒适度:原生样式太简陋,眼睛累
核心功能一览(当前脚本已实现)
1) 评论区卡片化重排(核心)
- 把 HN 原生的表格树评论,重建为 卡片式树结构(视觉层级更清晰)
- 每条评论是一个卡片:用户名/时间/操作按钮在顶部,正文在下面,子回复作为卡片嵌套
- 支持 最大宽度、圆角、间距、缩进等布局调节
适用场景:长讨论阅读体验会明显提升,尤其是多层回复。
2) 主题与外观:浅色/深色/跟随系统 + 渐变层级背景
- 主题模式:跟随系统 / 强制浅色 / 强制深色
- 页面背景可自定义(浅色/深色各一套)
- 评论卡片支持“按层级渐变”:L0/L1/L2… 背景颜色可调
- 也提供一些预设配色(比如蓝灰、暖米色、灰阶极简、深海蓝黑等)
目标:让“长时间刷楼”变得更舒服。
3) 折叠/展开(偏扫楼用)
为了快速扫楼,它提供多种折叠策略(可开关/可配置):
- 每条评论可折叠:右上角有“折叠/展开”按钮
- 折叠触发方式(可选):
- 仅按钮
- 按钮 + 单击正文
- 按钮 + 双击正文
- 双击正文折叠/展开整个子树(可选):
双击某条评论正文,直接折叠/展开它下面整棵回复树 - 默认折叠策略(两套):
- 按数量:顶层评论如果“后代回复总数”超过阈值,默认折叠(便于扫主楼)
- 按深度:从指定深度开始默认折叠(避免页面无限延长)
- 全局快捷按钮(右下角):
- 全部折叠(收起所有有子回复的评论)
- 全部展开(展开所有评论)
4) “展开提示” + 数量颜色提醒(更好扫大楼)
当某条评论被折叠时,会出现类似:
[+展开 8 条回复](单击默认展开 双击展开全部子级)
并且这个数字会根据数量变色(可调阈值/颜色):
- 少量:更偏主题强调色
- 中量:偏粉/亮色
- 大量:偏红(提醒这楼很长)
另外支持把这个提示按钮放在:
- 评论底部(默认)
- 或者放在右上角按钮行里(更省垂直空间)
5) L0 主线程导航(扫楼神器)
每条评论右上角会有:
- 上 L0 / 下 L0:快速跳到上一个/下一个顶层主线程
- L0 折叠:一键折叠当前评论所在的顶层主线程(快速收起一整楼)
- 还有一个 “层展”:只展开下一层,下一层的子回复继续保持折叠(用于逐层读)
(这块我自己用得最多,长讨论基本靠它快速扫楼。)
6) Hover 父级高亮:找上下文更快
鼠标悬停某条评论时:
- 自动高亮它的直接父评论
用来快速确认“我现在在回复谁/这层上下文是什么”。
7) OP(楼主)高亮
楼主(story author)的评论会有额外高亮描边,方便追踪 OP 在楼里说了什么。
8) Dead 评论处理(单选模式)
对被标记为 dead 的评论可以选择:
- 不处理
- 弱化(降低透明度/饱和度)
- 隐藏(同时自动启用弱化)
9) 像素头像(基于用户名生成)
每个用户名旁边会生成一个 对称像素头像(纯前端生成,无请求外部资源):
- 默认开启
- 支持调整大小、是否加边框、边框颜色、边框样式
- 有做性能优化:懒加载 + 缓存,避免长楼卡顿
用途:快速识别同一个人在楼里出现的回复。
10) 复制评论直达链接(可选)
每条评论右上角可以显示 copy:
- 一键复制
item?id=xxx#commentId的直达链接
方便分享某条具体回复。
11) 顶部导航吸附 + 回到顶部
- 顶部 HN 导航栏可吸附(sticky)
- 右下角
↑回到顶部按钮(滚动到一定距离才出现)
12) 快捷键(可选)
Alt + Shift:
C全部折叠E全部展开T循环切换主题(auto/light/dark)
Gemini 用户必备脚本,增加两大巨实用功能
Gemini 对我有两大痛点
- 网页端一卡就自动变黑色主题看不清
- 来回切换 pro 和快速要动鼠标,然而我只想敲键盘
遂花了点时间用 ai 辅助搞出了这个脚本,两个核心功能
- 锁定目前的主题
- 设置打开网页的默认模型(推荐设置为快速,结合下面的功能)
- 按住 ctrl + 回车强制使用 pro 模型,发送完成后切回原先模型,推荐平常就使用快速,注意:切回功能会在 gemini 回复完成后生效。
分享给有需要的佬友,欢迎反馈问题,如果有帮助你,点点大拇指吧哈哈哈
[脚本分享] ChatGPT Quick Search - 一键切换搜索模式
- 使用 Cmd/Ctrl + Shift + K 快捷键一键开启 / 关闭搜索模式
- 自动输入 /search 激活搜索模式
- 再次按下快捷键即可退出搜索模式
iTranslation For macOS 简单快捷的翻译软件,支持数十种语言互译
iTranslation
一个简单快捷的翻译软件,支持数十种语言互译。实时翻译,快捷高效。
系统支持
macOS 15+
软件使用
选中文本,快捷键(Command + Shift + E)打开软件翻译文本。
快捷键
默认快捷键:Command + Shift + E
自定义快捷键:
系统设置 → 键盘 → 键盘快捷键
服务 → 文本 → iTranslation
安装说明
注意: 因未使用开发者签名,首次运行会触发 macOS 安全提示。
前往 “系统设置> 隐私与安全性”,选择 “仍要打开”
下载
https://file.ichochy.com/iTranslation.zip
About
Blog: https://ichochy.com
Email:it.osx@icloud.com
GitHub: https://github.com/ichochy/iTranslation



