我想挂钩到linux桌面键事件处理.
按CapsLock应该输入某种命令行.
我想要实现的一些命令:
x.(灵感来自vi)这些命令应该适用于任何文本字段:浏览器,邮件客户端,gnome终端,...
AFAIK低级xmodmap在这里不会帮助我.
这样的事情可能吗?
我需要在哪里放钩?
目前的目标平台是Ubuntu> = 14.04
背景:我想把手指放在F和J上,然后在不看键盘的情况下使用电脑.几年以来一直适用于AZ,但是像Pos1/End这样的键不容易访问.
如果您不理解这个问题的一部分,请发表评论.谢谢.
更新
这个问题只是关于如何挂钩关键事件处理.其他东西(命令行)是一个不同的主题.你怎么能抓住这个例子CapsLock x?
Update2 我发现没有简单直接的解决方案.如果你没有答案,但你知道我可以在哪里找到更多的帮助(比如在邮件列表FOO上询问),请告诉我.
Update3 由于有些人不明白我想要什么,我试着解释一下:如果我使用emacs或者bash,我觉得如果计算机控制它:它就像飞行一样,只有很少的动作我可以告诉计算机去做我想要的是.在webbrowser textarea,LibreOffice或使用thunderbird编辑文本会让这种感觉消失.光标移动很麻烦,感觉不像是飞行.我想控制桌面,而不仅仅是一个应用程序,并指着F和J键.
根据此页面,您可以使用perl兼容的正则表达式
:perldo s/pattern/insert/g.
这很好用.
但是,如何在vim中进行交互式搜索并替换为PCRE语法?
由于这不适perldo用于我搜索不同的解决方案.
几年前我就认识python和数据库了.
但我想提高我有限的JavaScript知识.对于我的玩具项目,我想在Web浏览器中使用异步队列并使用AngularJS.
在python中有一个很好的类叫做multiprocessing.Queue,我以前用过它.
现在我搜索这样的东西,但是在AngularJS中
第1步:队列中的工作项(粉色圆圈).只是一个视图json字节.
第2步:用户处理数据.
步骤3:out-queue关心将结果发送到服务器.
为什么这个"复杂"的设置?因为我希望应用程序尽可能地响应.队列中应该预先加载一些数据,出队列应该处理响应通信.
另一个好处是,通过此设置,应用程序可以处理服务器或网络中断几分钟.
AngularJS的双向数据绑定立即更新用户编辑的数据并不适合我的问题.或者我错过了什么.我是AngularJS的新手.
图中的粉色圆圈表示JSON数据结构.我想通过一个请求将每个请求推送到浏览器.
例:
用户看到一个问题,然后他需要填写三个字段.例如:
在使用了"提交"后,数据应该被放入队列中.他应该立即得到下一个问题.
题:
是否已经为AngularJS提供了生产者 - 消费者队列?如果没有,如何实施呢?
更新
从客户端发送数据可以使用普通的AJAX实现.预取数据的队列是更复杂的部分.虽然两者都可以使用相同的实现.客户端以超低延迟获取新数据非常重要.队列中每次最多应填充5个项目,以避免客户端等待数据.
在我的情况下,如果浏览器关闭并且队列中的项目丢失则无关紧要.填充队列在服务器部分是只读的.
我没有修复AngularJS.如果有充分的理由,我很乐意改变框架.
保留浏览器重新加载之间的队列可以使用localStorage(html5)完成
我尝试重新创建virtualenv:
foo_bar_d@aptguettler:~$ virtualenv --system-site-packages .
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
foo_bar_d@aptguettler:~$ virtualenv --system-site-packages .
New python executable in /home/foo_bar_d/bin/python
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 711, in main
symlink=options.symlink)
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 924, in create_environment
site_packages=site_packages, clear=clear, symlink=symlink))
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1230, in install_python
shutil.copyfile(executable, py_executable)
File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
with open(dst, 'wb') as fdst:
IOError: [Errno 26] Text file busy: '/home/foo_bar_d/bin/python'
Run Code Online (Sandbox Code Playgroud)
有人知道为什么会发生这种异常吗?
到目前为止,我们将python源代码的版本号保留在setup.py中。
每次成功运行ci后,此版本都会增加。
这意味着中央库的版本每天都会增加几次。
由于版本号存储在git repo中的文件中,因此版本号的每次增加都是新的提交。
这意味着大约50%的提交不是由人做出的,而是由CI做出的。
我有一种感觉,我们走错了路。将版本号保留为ci可能不是一个好的解决方案。
我们如何避免仅增加版本号的“无用” CI提交?
如何避免在源代码中保留版本号?
几年来,我们一直没有人工发布。我们没有像MAJOR.MINOR这样的版本控制方案。我们过去从未错过这一点。我知道这并不适用于所有环境。但这适用于我当前的环境。
我们有一个看起来像这样的版本号:YEAR.MONTH.X
这意味着每个通过CI的提交都是一个新版本。
阅读答案后,我意识到:我需要问自己:我是否有版本号?我想不是。我有一个内部编号。在这种情况下,不需要更多。
(感谢您的投票。在问这个问题之前,我已经确定这个问题将结束,因为人们会认为这是“不清楚”或“范围太广”)
我不明白这个:
Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.getfqdn()
'SR-MW001'
>>> socket.gethostname()
'sr-mw001.foo-domain.de'
Run Code Online (Sandbox Code Playgroud)
怎么了
根据socket.getfqdn()的文档,应返回“完全合格的域名”。
更多信息:
/ etc / hosts
sr-mw001:~ # grep -iP 'SR-MW001|localhost|foo-domain' /etc/hosts
127.0.0.1 localhost
::1 localhost ipv6-localhost ipv6-loopback
10.189.217.11 SR-MW001 foo-work
Run Code Online (Sandbox Code Playgroud)
知识产权
sr-mw001:~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host …Run Code Online (Sandbox Code Playgroud) 程序a2ps不支持utf-8.至少我的版本只支持latin-X编码:
a2ps --list=encoding
Run Code Online (Sandbox Code Playgroud)
版:
GNU a2ps 4.14
Run Code Online (Sandbox Code Playgroud)
如何将简单的utf-8文本转换为postscript或pdf?
我需要提供http-basic-auth一个视图.
我想避免修改中间件设置.
背景:这是一个由远程应用程序填充的视图.
python authentication django http-authentication basic-authentication
如果我做git checkout my-super-branchgit 告诉我:
error: Your local changes to the following files would be overwritten by checkout:
somedir/somefile.py
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以告诉 git 自动执行 stash+pop?