
Copy-Paste in Hyprland across Wayland & XWayland
After a certain upgrade of hyprland, I can no longer copy&paste across Wayland & XWayland apps, which is very annoying.
The relatied issue: https://github.com/hyprwm/Hyprland/issues/6132
Maybe fixed in: https://github.com/hyprwm/Hyprland/pull/6086
According to 6132 issue, some provide a walk around. I tailored it to adapt it to my system.
Create a shell in ~
directory, named clipsync.sh
1 | !/usr/bin/env sh |
alias in ~/.zshrc
:
1 | alias clipsync="~/clipsync.sh" |
enable it by running
1 | clipsync watch |
kill all by running
1 | clipsync kill |
Self-start, configured in ~/.config/hyprland/hyprland.conf
1 | exec-once = clipsync watch |
REMEMBER TO REMOVE ALL THESE STUFF WHEN HYPRLAND HAS FIXED THE ISSUE
Solved in ISSUE 6086
新的Input System:https://gamedevbeginner.com/input-in-unity-made-easy-complete-guide-to-the-new-system/#how_to_manage_input
目前的想法是将unity的physx和mujoco结合在一起,简化physx的对于相对运动很少的刚体间的物理解算。
Mujoco:https://mujoco.readthedocs.io/en/latest/unity.html
开篇第一段文字
我在这里讲的故事,换做别人可能可以写成一本书。然而,我在这“故事”里不遗余力地活过。倾尽了所有德行,所有仅仅将回忆记录下来。往事断断续续,支离破碎,但我不打算靠虚构事实连通补缀,这种修辞铺陈,会浇灭讲述的热忱,最后一丝意趣也化为乌有。
是的,在日记里撒谎的话,会被记忆之神背弃的吧,我始终抱有这种朴素的认知。
很多时候能够共鸣阿丽莎。她在幼时看见了母亲偷情,看见了欲望的恶,成长时心里的无助彷徨因为没办法舒缓,选择了宗教,最后又因为宗教倡导的无私奉献,让自己具有了神性,无法产生对俗世欲望的追求,想爱又不能爱。
我虽然家庭美满,但并不意味着我未曾受过类似创伤,在高中,我努力表现的像正常人,却常会受到创伤折磨。我恨人与人之间世俗意义的比较,因为我曾经认为我在这方面已经一败涂地。这道宽路于我而言已经被玷污了。于是我只能去追寻窄路。我追寻的窄路与阿丽莎却不相同。高中那会我非常喜欢听轻音乐。可以说,我完全可以接受没有手机没有电脑没有游戏,但我无法接受没有轻音乐的生活。有那么几首流行改编的钢琴曲(我当时不知道还有原曲,我还以为钢琴版本就是原曲呢quq),分别是,《Heal the world》, 《We are the world》和《You are not alone》,我印象非常深刻(哪怕当时我根本不去记歌名,轻音乐是这样的)。每当循环到这几首,我都会不厌其烦地享受心底的宁静。哪怕已经听过100遍,500遍,我依然会感觉我心如赤子,往事都离我远去了。有一天,我用家里电脑上的网易云搜这几首歌,想找找有没有这几首歌的hires(发烧友是这样的)版本。我爸当时看我在搜这个,惊讶地问我,你居然会听这个?我当时感到很奇怪,因为我爸几乎从来不会主动和我交流音乐。我当时感觉到他的目光中存在着一种不可言说的神圣。他之后把他仅有的CD随声听给我了,还有Michael的《Dangerous》CD专辑。我和我爸居然在这个地方,获得了跨越时空的共鸣,这是我目前人生中,对于“不约而同”的最佳注解。
我想找的那三首曲子,无一例外,都改编于MJ的流行乐。我当时真的非常非常感动。从此,我便很少听轻音乐了,我开始听MJ。我听到了他对于爱与欲的挣扎,我听到了他对于权贵的抗争,我听到了他对于世人的大爱。那时候的我决心,要做一个像他一样,大爱世人,为人间带来爱的使者。我努力对身边所有人都温柔。我会和尖子生一起讨论数学题,也会和学业不理想的同学谈心,谈论过去,谈论未来。我对大部分人都充满着好奇,我认为他们真的都很可爱啊,但是他们中的很多人都遭受了好多生活中的,学业上的苦痛,我实在是不忍心让他们在我这里再感受到一丁点恶意了。我认为就这么活在世上,世上便多了一点光,就算得上不枉此生了。这是我自己信仰的雏形,几首歌,一位已经过世的歌手,当然还有我一直藏在心里对善的渴望,塑造了这些。
我逐渐感觉到,我虽然在与我心里的神圣靠近,但我却在渐渐远离实在的人。我清楚地感受到,我与我同学之间的友谊似乎与其他同学之间的友谊不一样,没有人和我称兄道弟,没有人会和我开俗俗的笑话,他们不会对着我大笑,也不会大哭。我感觉到痛苦,因为这不是我想要的。我渴望能给其他人传递温情,但是我们的距离变得太远了。我想起了伊卡洛斯的故事,不要飞得太低,海水会沾湿你的翅膀,也不要飞得太高,阳光会融化你的翅膀。我感觉我确实离太阳太近了。
但没有给我时间去探索信仰的平衡之道,时间来到高三,我来到了上中,陌生且高压的环境,让我缩进了龟壳,我对于MJ更沉迷了。带有这种态度的我,也是没有交到朋友。我感觉正是这段时间,我开始主观地去疏远实在的人了。可能是因为同龄人真的都很厉害,我“神爱世人”的游戏到此为止了(可能是我今天写下这些,这个游戏才算是真的画上了句号)。
上大学后我开始思考别的事情,比如,到底是什么导致了文明的兴荣,导致了无止尽的战争。没有一个人希望文明衰弱,希望战争,死亡的发生,每个人不过是各司其职,做好了各自位子上该做的事情,但事情就是发生了,难以避免。我也没有太深入思考这些问题,因为我感觉我会想极端。于是我想给自己设一套道德行为准则,如果世界上所有人都能向这套准则靠拢,那么阶层就不会分化,矛盾也不会累计为战争。具体这个准则是什么,我已经记不大明确了。说实话我上面说的这些只是我从回望的视角总结出来的一些事情,可以解释很多时候我为什么会这么做,为什么会这么想,为什么我会对于某些事情生理性反感。当时的我可能只是循着模糊的感召行事。毕竟我之前也从不记录下些什么东西,还是很难考究的。
总之,我意识到我其实已经在窄门这条路上走了很久了,我已经太久没爱具体的人了。诶,爱过一位,但是我认为爱的也不甚具体,可以说正是有这份感情,才让我在读完《窄门》后有如此多纷乱的思绪吧。
一段比较有感触的片段:
(先生的表达:“和你讲话有什么用?你从来都不听!)
太太:你是在生我的气吗?
马歇尔:你这么说,暗含着是你的行为导致了他的感受。我建议你说:“你不高兴,是因为你需要⋯⋯?”这有助于你将注意力放在对方身上,了解他此刻的内心,而避免认为对方会怪罪自己。
太太:那我要怎么说呢?“你不高兴,因为你需要⋯⋯?需要什么呢?”
马歇尔:从你先生的话中去寻找线索——“和你讲话有什么用?你从来都不听”。当他那样说的时候,是因为有什么需要没有得到满足?
太太:(尝试着透过丈夫的表达,同理他的需要)你感到不高兴,是因为你觉得我不理解你吗?
马歇尔:你现在关注的是他的想法而非他的需要。我认为,如果我们选择关注对方的需要,而不是他们对我们的看法,就比较不会认为他们在攻击。不把注意力放在“他不高兴是因为你没听”,而是专注在他想满足的需要上,用“你感到不高兴,是因为你需要⋯⋯”
太太:(再次尝试)你感到不高兴,是因为你需要被听见吗?
马歇尔:这正是我的意思。用这样的方式聆听他,对你来说有什么不同吗?
太太:确实太不同了。我听到的是他的心声,而不是我的过错。
让我想起之前和gxy相处的时候。说实话我确实也很自我,总是认为自己应该对对方的情绪负责,一直都会认为,对方不开心的源头一定是出在我身上,如果我道歉了或者改变了一切都会好起来,但事实并非如此。首先,对方的情绪出现波动,可能是需求没有被满足造成的,而造成这种匮乏的,很多时候并不是我自己,而是很多客观因素,哪怕确确实实因为是我的原因,我身上也有很多客观无法改变的部分。再者,如果每次对方表达不满,我都陷入自我怀疑和否定,无形中也增加了对方表达不满时的心理压力,长此以往可能会导致对方压抑自己的情绪,而不是妥善表达。
System used: Archlinux
clangd
vscode
, vim/neovim
STM32CubeMX is mainly responsible for generating the project with your configuration.
For Distro like Ubuntu/Debain, you can go to the ST official site
Or you can install the software through distro repository
1 | yay -S stm32cubemx |
For Arch, you need to modify the AUR repository (I mean, maybe the maintainer doesn’t do a good job).
The URL for the repository:https://aur.archlinux.org/packages/stm32cubemx
First clone the repository
1 | git clone https://aur.archlinux.org/stm32cubemx.git |
Modify the required jdk version in file stm32cubemx.sh
from exec archlinux-java-run --min 17 -- -jar /opt/stm32cubemx/STM32CubeMX "$@"
to exec archlinux-java-run --min 17 --max 20 -- -jar /opt/stm32cubemx/STM32CubeMX "$@"
Then build and install the STM32CubeMX
1 | makepkg --noconfirm --skipinteg -si |
Since STM32CubeMX is not compatible with jdk22 (which is the default jdk that arch is currently using), you need to install jdk17 through yay -S jdk17-openjdk
Then you can start STM32CubeMX by running stm32cubemx
, and hopefully, everything is fine.
Use arm-none-eabi-gcc
1 | yay -S arm-none-eabi-gcc |
Use OpenOCD
to burn and debug STM32 through STLink v2 (the blue USB device provided by us).
1 | yay -S openocd |
Open your STM32CubeMX, follow the instruction of Lab1.pdf
to configure your project.
NOTE: In Project Manage -> Project -> Project Settings -> Toolchain / IDE
, use Makefile/CMake
.
Generate the code and go to the project directory (with Makefile
/CMakeLists.txt
in the directory).
Then you need to generate the compile_commands.json
for clangd
to recognize the project.
1 | bear -- make |
1 | cmake -S ./ -B ./build |
1 | make |
Then target binary file is ./build/<Project Name>.bin
1 | cmake --build ./build |
Then target binary file is ./build/<Project Name>.elf
Use OpenOCD
to load the binary file to the board.
1 | sudo openocd -f /usr/share/openocd/scripts/interface/stlink.cfg -f /usr/share/openocd/scripts/target/stm32f1x.cfg -c "program ./build/<Project Name>.bin reset exit 0x8000000" |
1 | Open On-Chip Debugger 0.12.0 |
NOTE: In different Distro, the cfg
file for OpenOCD
may locate in different directories. You need to find it by yourselves.
Note: When uploading binary file to STM32, it’s recommended to use .bin
file instead of .elf
file.
Please use the following script to convert the .elf
to .bin
and upload.
1 | cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . |
You have three possible choices. I recommend using Ozone.
reference:
https://rohanrhu.github.io/gdb-frontend/tutorials/embedded-debugging/
reference:
https://blog.csdn.net/qq_41757528/article/details/127741620
reference:
https://blog.csdn.net/weixin_41572450/article/details/124710818
Maybe the best debug tool for stm32
To use segger ozone, you need a different linker called jlink (originally we use st-link v2). You need to buy this linker first (maybe on Taobao or Amazon).
Install Ozone through:
1 | yay -S ozone |
.elf
is recommended).set some breakpoints and watch some variables of your interest.
Press the green “power” icon on the upper left corner to start (upload the program and start the debugging process)
Press the blue “play” icon besides “power” to continue.
The source code repository:https://github.com/unpbook/unpv13e
1 | git clone https://github.com/unpbook/unpv13e |
Configure the makefile for your system:
1 | CC=gcc CFLAGS=-w CPPFLAGS=-w ./configure |
In archlinux, if you use
./configure
directly, you will getWimplicit
compile error in the following steps.
Build the dependence library.
1 | cd lib |
You can test by using the sample program
1 | cd ../intro |
If you get error
1 | connect error: Connection refused |
You need to install xinetd
, configure it and start the service
1 | yay -S xinetd |
And run daytimetcpcli
again, you will get something like
1 | 16 MAY 2024 14:09:07 CST |
Then, you are all set.