在 Android Chrome 上把标签栏放到底部

最近在 Android 上使用 Chrome 浏览器,发现标签栏默认在顶部,操作起来有点不顺手。 Chrome 提供了一个实验性功能,可以把标签栏移到底部,效果看起来更加方便,以下是具体步骤:

  1. 在 Chrome 的地址栏输入 chrome://flags,然后回车。
  2. 在搜索框中输入 Tab Strip 或 Bottom Toolbar,查找相关的实验性功能。
  3. 有时这个选项可能显示为 Chrome DuetTab Grid Layout
  4. 找到对应选项后,将其状态从 “Default” 改为 “Enabled”。
  5. 完成后,浏览器会提示需要重新启动,点击重启即可。

macOS 定时自动亮屏

通过 macOS 自带的 caffeinate 工具和定时任务 crontab,可以轻松实现定时自动亮屏的功能。以下是模拟用户活动并保持屏幕唤醒 10 分钟的具体实现。

wake_screen.sh

#!/bin/bash

# 获取当前时间(小时和分钟)和日志时间(带日期)
current_time=$(date +'%H:%M')
log_time=$(date +'%Y%m%d_%H%M')
sleep_time=1  # 设置每次睡眠时间
# 计算循环次数,使得总执行时间接近 60 秒
loop_count=$(( 60 / sleep_time ))

# 检查是否为每天 8 点,并清空日志
if [[ "$current_time" == "08:00" ]]; then
    echo "[$log_time] 日志已清空" > "$log_file"
fi

# 判断是否在 13:00 到 13:02 之间
if ([[ "$current_time" > "18:20" && "$current_time" < "18:40" ]] || 
    [[ "$current_time" > "13:00" && "$current_time" < "13:02" ]]); then
    echo "[$log_time] 执行 caffeinate 命令" >> ~/Workspace/log/cron/caffeinate.log

    # 使用 for 循环动态执行 caffeinate 命令
    for i in $(seq 1 $loop_count); do
        caffeinate -u -d -t $sleep_time
        log_time_2=$(date +'%H%M%S')
        echo "[$log_time] $i $log_time_2 end" >> ~/Workspace/log/cron/caffeinate.log
    done
else
    echo "[$log_time] 当前时间不执行命令" >> ~/Workspace/log/cron/caffeinate.log
fi

赋予脚本执行权限 chmod +x ~/wake_screen.sh

macOS 下 cron 的说明

​ 1. 正常情况下,无需手动重启 cron 服务

macOS 默认启用 cron,修改 crontab 文件后会自动加载新任务。

​ 2. 检查任务生效

使用命令查看当前任务:crontab -l,确保定时任务已正确保存。

​ 3. 手动启动 cron(异常情况下)

如果任务未运行,可以手动启动 cron:

sudo launchctl load -w /System/Library/LaunchDaemons/com.vix.cron.plist

腾讯云主机移除监控程序

刚买的服务器,看看,这么多的 agent。

image-20241013上午40101283

cron

crontab -e

包含了这样的任务,直接删掉。

*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'

还有这个定时任务:

rm -f /etc/cron.d/sgagenttask

/usr/local/qcloud

自带了这些agent的卸载脚本:

/usr/local/qcloud/stargate/admin/uninstall.sh
/usr/local/qcloud/YunJing/uninst.sh
/usr/local/qcloud/monitor/barad/admin/uninstall.sh

看看还有什么东西:

ps aux | grep agent

还有一个:

/usr/local/qcloud/tat_agent/tat_agent

看了一眼,找不到卸载的脚本。

systemctl stop tat_agent
systemctl disable tat_agent

删除多余文件:

rm -f /etc/systemd/system/tat_agent.service
rm -rf /usr/local/qcloud
rm -rf /usr/local/sa
rm -rf /usr/local/agenttools

macOS 模拟触摸板向下滑动

今天需要在 macOS 上模拟触控板滑动事件,并且希望模拟自然的人类手势,即速度由慢到快。用 Swift 来实现,并控制滑动的时间间隔,目标是每隔 4 到 8 秒执行一次向下滑动的操作,滑动时速度逐步加快。简单记录一下:

import Foundation
import CoreGraphics

func simulateAcceleratingScrollDown() {
    let totalSteps = 25
    let initialScrollAmount: Int32 = -5
    let maxScrollAmount: Int32 = -25
    let initialDelay: TimeInterval = 0.1
    let minDelay: TimeInterval = 0.02
    
    for step in 1...totalSteps {
        let scrollAmount = initialScrollAmount + (Int32(step) * (maxScrollAmount - initialScrollAmount) / Int32(totalSteps))
        let currentDelay = initialDelay - (initialDelay - minDelay) * Double(step) / Double(totalSteps)
        let scrollEvent = CGEvent(scrollWheelEvent2Source: nil, units: .pixel, wheelCount: 1, wheel1: scrollAmount, wheel2: 0, wheel3: 0)
        
        scrollEvent?.post(tap: .cghidEventTap)
        Thread.sleep(forTimeInterval: currentDelay)
    }
}

func randomInterval() -> TimeInterval {
    return TimeInterval(arc4random_uniform(5) + 4)
}

func startRandomScrolling() {
    let interval = randomInterval()
    Timer.scheduledTimer(withTimeInterval: interval, repeats: false) { _ in
        simulateAcceleratingScrollDown()
        startRandomScrolling()
    }
}

RunLoop.current.run()

解释:

  • simulateAcceleratingScrollDown(): 模拟触控板的滑动动作,滚动步数由慢到快,每步滚动的像素量逐渐增加,延时逐渐缩短。
  • randomInterval(): 生成 4 到 8 秒的随机时间间隔。
  • startRandomScrolling(): 定时器每次等待随机时间后调用滑动事件,并继续递归调用。

不过要注意的是,还需要设置 xcode 的权限,才可以模拟执行滑动(运行脚本时候会自动提醒打开):

image-20241211午前110946693


解决 macOS 上的 mds_store 高 CPU 占用并停用 Spotlight 索引

最近在使用 macOS 时,htop 的时候发现几个核的cpu都是100%满负荷运行,往下再查了一下,发现 mds_store 这个进程占用大量 CPU 资源,系统也非常卡顿(虽然不一定是这个进程造成的)。

mds_store 是 macOS Spotlight 索引服务的一部分,负责管理文件的元数据,让我们可以快速通过 Spotlight 搜索文件、邮件、应用等内容。当系统文件发生变化时(比如文件创建、修改、删除等),mds_store 就会进行重新索引,因此可能会占用大量的 CPU 资源,特别是在以下几种场景下:

  • 文件频繁变动:比如大量文件的操作,像是开发项目、下载大文件等。
  • 外接硬盘或网络驱动器:如果连接了外部存储设备,Spotlight 也会索引这些内容。
  • Spotlight 索引损坏:有时候 Spotlight 的索引会损坏,导致系统反复尝试重新索引。
  • 系统更新后重新索引:每次 macOS 大更新后,Spotlight 需要重新为整个系统创建索引。

mds_store 高 CPU 占用

  1. 重建 Spotlight 索引:有时候 Spotlight 的索引可能会出现问题,最简单的解决办法就是重建索引。打开终端,输入以下命令来删除并重建 Spotlight 的索引:

    sudo mdutil -E /
    
  2. 排除某些文件或文件夹:如果有一些文件夹不需要索引,可以将它们从 Spotlight 中排除掉:

    • 打开 系统偏好设置Spotlight隐私。 - 点击 +,选择那些不想索引的文件夹,比如外接硬盘、开发项目目录等。
  3. 关闭外接驱动器的索引:如果我们使用外接硬盘或网络驱动器,Spotlight 可能也会试图索引它们。关闭某个特定驱动器的索引:

    sudo mdutil -i off /Volumes/ExternalDrive
    

    替换 ExternalDrive 为实际的卷名,这样 Spotlight 就不会再去索引外接硬盘上的文件了。

  4. 检查大型文件或数据库:一些大型文件(如邮件库、照片库等)可能会让 Spotlight 花费大量时间去索引。如果这些数据不需要搜索,可以将它们排除在外。

停用 Spotlight 索引

有些时候我们不需要 Spotlight 的全局搜索功能,也可以停用 Spotlight 索引。方法很简单,可以通过终端来完全关闭 Spotlight:

  1. 完全停用 Spotlight

    sudo mdutil -a -i off
    

    这会关闭所有卷上的 Spotlight 索引。关闭后,系统不会再为文件、邮件等内容建立索引,搜索功能也会被停用。如果之后想再次启用 Spotlight,只需执行以下命令:

    sudo mdutil -a -i on
    
  2. 停用特定卷的索引

    sudo mdutil -i off /Volumes/YourVolumeName
    

    这样 Spotlight 只会关闭指定卷的索引,不影响系统其他部分的搜索功能。

  3. 停用 mds 进程(不建议)

    其实,强行终止 mdsmdworker 进程也是一种方式,但 macOS 会定期重新启动这些进程。所以更推荐使用 mdutil 命令进行停用。如果坚持要这么做,可以运行以下命令:

    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
    

    这个命令会停止 mds 进程,但是我不推荐,因为这可能会影响系统的一些其他功能。

虽然 Spotlight 是 macOS 中非常强大的搜索工具,但有时候它也会给系统带来不小的负担。根据实际需求,适当地调整 Spotlight 的行为,甚至在必要时完全停用它,能够显著改善系统的性能。


mac studio 强制重启

老问题了,我的 mac studio M2 Max按下开机键,正面右下角的白色呼吸灯会弱亮度缓慢闪,但是就是不启动。正常情况下,应该是白色灯常亮状态。

参考官方帮助:Mac 电脑状态指示灯的行为,官方说法是如果 SIL 在电脑开机后呈白色闪烁一次或多次,则说明可能存在硬件问题

依据我以前windows下遇到的情况(戴尔服务器),冬天干燥的时候有可能主板有静电,就无法启动。官方解决的办法就是断电然后长按电源键,把主板的电释放掉。我猜macOS是不是也是这个问题,然后按照下面的办法解决好了。

用了如下方法强制重启:

  1. 拔下电源插头
  2. 长按电源按钮30s左右
  3. (不要放开电源按钮)插入电源,此时变为黄色呼吸灯闪亮
  4. 长按电源按钮10s左右,此时变为黄色灯常亮
  5. 正常按下电源,此时变为白色灯常亮,duang开机