恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Ubuntu 20.04.6 用wine 10安装Notepad++,第1文件缩小,第二文件双击打开,弹窗置顶不了

  • 首页
  • 资讯中心
  • /
  • Ubuntu 20.04.6 用wine 10安装Notepad++,第1文件缩小,第二文件双击打开,弹窗置顶不了

相关资讯

CTF逆向入门:从UPX脱壳到IDA静态分析与Python脚本解题 2026/8/6 17:16:33
前端程序员必看:收藏这份前端+Java+AI进阶成长路线图,突破职业瓶颈! 2026/8/6 17:16:33
如何查找科研论文?实用方法与高效检索技巧指南 2026/8/6 17:16:33

最新资讯

操作系统文件管理
Interlude起来:有哪些不过度监督用户的休息软件?如何设计不会让用户反感的休息提醒?
Docker Minecraft Server容器化部署与性能优化实战指南
7天掌握Umi-OCR:开源离线OCR软件的实战进阶指南
RTX腾讯通停服后怎么办?从RTX腾讯通到信创的平滑迁移方案
Web Security Academy 第六关: Oracle 数据库 SQL 注入实战详解

今日推荐

电力系统调度中的源荷不确定性建模与优化实践
VGG-T3技术解析:3D重建速度的革命性突破
深度解析旅游网站建设的意义及其对行业发展的深远影响与核心价值体现

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Ubuntu 20.04.6 用wine 10安装Notepad++,第1文件缩小,第二文件双击打开,弹窗置顶不了

发布时间:2026/8/6 17:16:33
Ubuntu 20.04.6 用wine 10安装Notepad++,第1文件缩小,第二文件双击打开,弹窗置顶不了 cd Notepad目录 wine npp.8.9.7.Installer.x64.exe 根据界面选择进行安装 # 解决notepad第1个文件打开后然后缩小之后再打开第2个文件不弹出置顶的问题 sudo apt install wmctrl xdotool mkdir -p ~/.local/bin cd ~/.local/bin # 创建wine-notepadpp-open这个文件 touch wine-notepadpp-open # 文件内容如下 #!/bin/bash # wine-notepadpp-open (融合版路由 路径转换 日志 强制置顶激活) # 用法: wine-notepadpp-open 文件路径 set -uo pipefail # 注意不用 -e因为下面用了 后台启动 轮询中途非0返回是正常情况 export WINEPREFIX$HOME/.wine LOG$HOME/wine-notepadpp-open.log NOTEPADPP_EXE$WINEPREFIX/drive_c/Program Files/Notepad/notepad.exe # ---- Windows路径(C:\...) - Unix路径Xftp传来的参数可能是Windows形式 ---- ARGS() for arg in $; do if [[ $arg ~ ^[A-Za-z]:\\ ]]; then ARGS($(winepath -u $arg)) else ARGS($arg) fi done { echo ---- $(date) ---- printf args: printf [%s] $ echo printf converted: printf [%s] ${ARGS[]} echo } $LOG FILE${ARGS[0]:-} if [ -z $FILE ]; then echo 未收到文件参数 $LOG exit 1 fi EXT${FILE##*.} EXT${EXT,,} # 转小写 # ---- 通用窗口激活函数按标题/类名正则匹配取面积最大的窗口多次重试激活 ---- # 用法: activate_window 用于wmctrl -lx匹配的正则忽略大小写 activate_window() { local pattern$1 local max_wait50 # 最多等 5 秒 local win_id find_main_window() { local best_id local best_area0 local wid class w h geo area while read -r wid _ class _; do [ -z $wid ] continue geo$(xdotool getwindowgeometry --shell $wid 2/dev/null || true) [ -z $geo ] continue w$(echo $geo | grep ^WIDTH | cut -d -f2) h$(echo $geo | grep ^HEIGHT | cut -d -f2) [ -z $w ] || [ -z $h ] continue area$((w * h)) if [ $area -gt $best_area ]; then best_area$area best_id$wid fi done (wmctrl -lx | awk -v pat$pattern tolower($0) ~ pat) echo $best_id } for ((i0; imax_wait; i)); do win_id$(find_main_window) [ -n $win_id ] break sleep 0.1 done if [ -z $win_id ]; then echo 未找到匹配窗口: $pattern $LOG return 1 fi wmctrl -ir $win_id -b remove,hidden 2/dev/null || true xdotool windowmap $win_id 2/dev/null || true xdotool windowstate --sync --remove HIDDEN $win_id 2/dev/null || true xdotool windowstate --sync --remove SHADED $win_id 2/dev/null || true for i in 1 2 3; do xdotool windowactivate --sync $win_id 2/dev/null || true wmctrl -ia $win_id 2/dev/null || true sleep 0.15 done xdotool windowraise $win_id 2/dev/null || true echo 已激活窗口: $win_id ($pattern) $LOG return 0 } # ---- 按扩展名路由到对应程序 ---- case $EXT in doc|docx|dot|dotx|wps|wpt) echo route - wps : $FILE $LOG wps ${ARGS[]} $LOG 21 activate_window wps ;; xls|xlsx|xlt|xltx|et|ett|csv) echo route - et : $FILE $LOG et ${ARGS[]} $LOG 21 activate_window et\b|spreadsheet ;; ppt|pptx|pot|potx|dps|dpt) echo route - wpp : $FILE $LOG wpp ${ARGS[]} $LOG 21 activate_window wpp|presentation ;; *) echo route - notepad : $FILE $LOG wine $NOTEPADPP_EXE ${ARGS[]} $LOG 21 activate_window notepad\\ ;; esac # 转一次换行符防止 nano 又引入 CRLF sed -i s/\r$// ~/.local/bin/wine-notepadpp-open chmod x ~/.local/bin/wine-notepadpp-open echo export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrc echo $PATH | grep -q $HOME/.local/bin echo 已在PATH中 || echo 需要添加 sudo apt install vim cd /etc sudo vim ./environment 在PATH的路径中最前面加一个 /home/user/.local/bin: linux系统变量是用冒号分隔的windows是分号分隔的 PATH/home/user/.local/bin:原有的不变的路径 # 例如 PATH/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin... reboot echo $PATH | grep -q $HOME/.local/bin echo 已在PATH中 || echo 需要添加 bash -x ~/.local/bin/wine-notepadpp-open /home/user/.bashrc 21 | tee /tmp/npp_debug.log 系统需要一个 .desktop 文件才能在 “打开方式” 列表中识别它 cd ~/.local/share/applications touch Notepad.desktop 把如下内容复制到这个文件中 注意如下内容不能有井号注释 [Desktop Entry] NameNotepad Exec/home/user/.local/bin/wine-notepadpp-open %f TypeApplication StartupNotifytrue Path/home/user/.wine/dosdevices/c:/Program Files/Notepad Icon7ABC_notepad.0 StartupWMClassnotepad.exe grep -l -ri Notepad ~/.local/share/applications/*.desktop 2/dev/null # 得到以下几个文件就是打开方式中的多个Notepad其实可以删除这几个多余的.desktop文件我这里没有删除如果没有就跳过这些文件 ~/.local/share/applications/wine-extension-inf.desktop ~/.local/share/applications/wine-extension-ini.desktop ~/.local/share/applications/wine-extension-log.desktop ~/.local/share/applications/wine-extension-txt.desktop . . . # 如果还有别的都算 # 把wine-extension-inf.desktop、wine-extension-ini.desktop、wine-extension-log.desktop、wine-extension-txt.desktop、...中的Exec...这行改成如下不能有注释其他行不动 Exec/home/user/.local/bin/wine-notepadpp-open %f # 将Notepad.desktop赋权限 chmod x ~/.local/share/applications/Notepad.desktop chmod x ~/.local/share/applications/wine-extension-inf.desktop chmod x ~/.local/share/applications/wine-extension-ini.desktop chmod x ~/.local/share/applications/wine-extension-log.desktop chmod x ~/.local/share/applications/wine-extension-txt.desktop . . . # 更新系统应用数据库 update-desktop-database ~/.local/share/applications/ # 做下面的检查 cat ~/.config/mimeapps.list | grep -i text 如果上面的结果中有 text/plainNotepad.desktop 就说明对的否则执行下面的 xdg-mime default Notepad.desktop text/plain # 强制把 text/plain 关联改成您的程序 gtk-launch Notepad /home/user/.bashrc # .bashrc 只是一个文件例子换一个别的路径的文件都行 xdg-mime query default text/plain # 之后随便找一个文本文件右键-属性-打开方式-选择Notepad就可以将文本文件默认使用Notepad打开

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号