我升级到 Fedora 21,它突出了 GNOME 3.14(加上相关的 GTK+ 材料)。不幸的是,这个特定的更新似乎破坏了我的许多旧主题,这些主题是为现在老化的 GNOME 3 版本编写的。在以前它们可能会吱吱作响的地方,它们现在看起来有点格格不入。
我不想重新发明轮子:我很乐意采用一个预先存在的 CSS 模板(例如默认的 Adwaita 3.14 规范)并根据我的喜好在这里和那里调整它;不会有花哨的飞行。想象一下当我偷看 /usr/share/themes/Adwaita/gtk-3.0/gtk.css 时我撕掉的头发:
/* Adwaita is the default theme of GTK+ 3, this file is not used */
Run Code Online (Sandbox Code Playgroud)
这让我陷入了困境。我缺乏 Google-fu 来挖掘关于这可能在哪里的文档(更糟糕的是,我有一种直觉,这对我一直错过的 GNOME 人来说是显而易见的),并且出于某种原因,GNOME 开发者网站拒绝我试图研究他们的主题规范。
简而言之,我想为 GNOME 3.14 找到一个原始主题规范,假设一个是现存的。我该怎么做,或者我可以如何修改我的方法?
我在我喜欢的小型 Openbox 设置上运行 Fedora 20。有时我想通过第二个显示器发送东西,例如插入投影仪或电视。鉴于 Openbox 会话非常简单的性质,只需插入 HDMI 电缆(并在另一端打开显示器)我什么也没有;没有明显迹象表明机器找到了另一个显示器。
我的问题不是技术性的。我可以开始工作:当前的解决方法是停止我的会话,让自己回到 GDM 迎宾处,然后屏幕瞬间变黑,笔记本电脑识别出显示器,让我可以同时在两个屏幕上工作。然后我可以重新登录 Openbox 并继续清除。这有明显的缺点,例如每次我想在更大的屏幕上观看某些内容时都要求我放弃所有工作并重新登录。
我的目标是能够“热插拔”显示器并使我的 Openbox 会话立即适应两屏设置,无论是通过一些神奇的 GNOME 守护程序还是其他我不知道的技巧。我应该如何处理这个问题?
答案摘要:虽然文献宣传“-execdir”比“-exec”更安全,但不要忽略操作差异。前者不是后者的简单重新实现。此外,当专门使用 find 进行交互式删除时,通过“-okdir”选项执行“rm -f”也是可行的。同样对于稍微复杂的结构。
我正在尝试学习“查找”命令,但无法理解其输出。如果这是重复的,我深表歉意,但问题陈述有点复杂,对谷歌来说很难。
让我设置一个宠物箱:我从某个目录(“.”)开始,有两个子目录“A”和“B”。在这两个文件中,都有一个名为“hello.c”的文件。
所以,例如,
find . -name "hello.c"
Run Code Online (Sandbox Code Playgroud)
会像这样打印:
./A/hello.c
./B/hello.c
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。我迷路的是当我尝试使用“-execdir”选项做一些事情时;假设我想使用交互式删除。然后:
find . -name "hello.c" -execdir rm -i {} \;
Run Code Online (Sandbox Code Playgroud)
或类似。我期望的是
rm: remove regular file "./A/hello.c"?
Run Code Online (Sandbox Code Playgroud)
然后,回答那个,目录“B”中的“hello.c”的类似提示。不幸的是,实际出现的是
rm: remove regular file "./hello.c"?
Run Code Online (Sandbox Code Playgroud)
在这个小例子中,我可以合理地推断它是在询问“./A/hello.c”,但是如果将这个例子放大,那么你会得到几十个文件,它们的路径名都被截断为“./”。而且我无法区分数十个“./hello.c”,这与它们各自所在的子目录无关。
所以,我的问题归结为希望通过“-execdir”打印更完整的路径名。我能听到关于联机帮助页中哪些微妙之处的提示吗?关于“{}”替换的说法很少。或者,如果有更好的方法来管理这种特殊情况(交互式删除),我也想听听,因为我不确定我的方法是否是最佳实践。