LINUX.ORG.RU

Сообщения Minoru

 

ps2pdf и кириллица

Пытаюсь сгенерировать PDF с русскими буквами при помощи ps2pdf, однако на выходе все они заменяются на ‘-’:

%!PS
/Times-Bold findfont 36 scalefont setfont
72 684 moveto (Привет, мир!) show
showpage

Что нужно сделать, чтобы работало?

 ,

Minoru
()

KDE: отключить Shift+Caps Lock оставив переключение раскладки по Casp Lock

Периодически случайно переключаюсь в верхний регистр, случайно попадая по Shift+Caps Lock вместо Caps Lock.

Возможно ли либо отключить Shift+Caps Lock, либо сделать так, чтобы при попадании по этому сочетанию клавиш так же происходило переключение раскладки вместо перехода в верхний регистр? Выставить Switching to another layout -> Shift Caps Lock пробовал, но переключение раскладки по обычному Caps Lock в этом случае перестает работать.

 ,

Minoru
()

Собрать модуль ядра с зависимостью от другого модуля

Модуль в общем-то собирается нормально, но при insmod имеем в dmesg:

[ 2840.458824] mymodule: Unknown symbol w1_remove_master_device (err -2)
[ 2840.458917] mymodule: Unknown symbol w1_add_master_device (err -2)

В /usr/src/linux-headers-$(uname -r)/Module.symvers оба нужных символа имеются, но это не очень-то помогает. Возможно ли решить эту проблему без сборки всего ядра без исходников, обойдясь только хидерами?

Мой Makefile:

KBUILD_EXTRA_SYMBOLS := /usr/src/linux-headers-$(uname -r)/Module.symvers

obj-m += mymodule.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

 

Minoru
()

Посоветуйте софтину для бэкапа

Основные требования:

  • Наличие GUI
  • Инкрементальные бэкапы
  • Поддержка WebDAV (Яндекс.Диск)
  • Ротация
  • Шифрование

Deja Dup не предлагать, т.к. по каким-то причинам он очень медленно заливает по WebDAV, и разбираться нет ни времени, ни желания.

 ,

Minoru
()

Неадекватная работа Unity Launcher на старом железе или при большой нагрузке

При нажатии комбинации Super+<n> до Unity слишком долго доходит, что Super нажат, и <n> обрабатывается окном, находящимся в фокусе (например, печатается в терминале). После чего, само собой, открывается Launcher, хотя я ожидаю переключение на n-ное приложение.

Я понимаю, что проблема в том, что нажатия 'Super' и '<n>' в силу технологических ограничений X-сервера обрабатываются по отдельности, и что ее можно решить, выбросив обработчик 'Super', и добавив вместо этого n обработчиков Super+<n>. Может кто-нибудь из ЛОРовцев уже сделал готовый патч?

 ,

Minoru
()

Динамическая линковка без номера версии библиотеки

Так получилось, что передо мной встала задача сборки бинарника, переносимого между разными вариантами Linux.

Проблема в том, что в зависимости записывается конкретная версия libssl (например, 'libssl.so.6'), и при попытке запуска бинарника на машине с другой версией получаем ругань на отсутствие библиотеки. Разумеется, создание симлинка на libssl.so.6 помогает, и все отлично работает.

Возможно ли заставить ld линковаться именно с libssl.so без номера версии? Статическая линковка мне не подходит.

 ,

Minoru
()

Ремапнуть Super и Alt на уровне HID

Так получилось, что ко мне попал Das Keyboard в маковской раскладке, и мне очень неудобно, когда на работе и дома пара Alt / Super у меня располагается по-разному.

Возможно ли поменять 133-й и 64-й кейкоды на уровне драйвера HID или более низком, при этом не пересобирая ядро?

Если кто-нибудь подскажет, как сделать это при помощи xmodmap таким образом, чтобы Unity Launcher на это реагировал адекватно, то это тоже устроит.

 

Minoru
()

Ищу thread-safe реализацию FIFO для C или Python

Требования:

1. Можно читать / писать произвольными кусками байт, причем оверхед по сравнению с memcpy константен;

2. Если не хватает оперативки, то автоматически расширяется;

3. Можно безопасно писать из одного потока, а читать из другого

Кто-нибудь может что-то подсказать?

Minoru
()

Автоматическая генерация хелперов для алгебраических типов

Крайне напрягает необходимость писать вот такие нагромождения вручную (по 3 штуки для каждого конструктора).

Между тем, подобные названия функций - это уже стандарт де-факто. Может есть какой-нибудь способ заставить GHC это делать автоматически?

isApple (Apple _) = True
isApple _ = False

getApple (Apple t) = t
getApple _ = error("Not an Apple")

fromApple (Apple t) = Just t
fromApple _ = Nothing

 ,

Minoru
()

Безгеморная верификация ntlmv2-хешей

Имеются результаты challenge, пришедший в ответ auth, а так же реальный пароль / username на стороне сервера (в MySQL). Требуется установить, был ли введен правильный пароль или нет.

Я бы с радостью воспользовался ntlm_auth из пакета winbind, но вот беда:

ntlm_auth uses winbind to access the user and authentication data for a domain

То есть ntlm_auth прибит гвоздями к базе winbind.

К сожалению, специфика задачи такова, что воротить что-то с конфигурацией winbind - это совершенно ни в какие ворота не годится. Есть ли что-нибудь в этом же духе, но просто принимающее реальный логин / пароль на входе?

 , ,

Minoru
()

Ubuntu 14.04 и переключение по капсу

После нажатия на Caps клавиатура мигает соответствующей лампочкой, и только потом переключается раскладка. Если в этот момент начать печатать, то будут набираться большие буквы.

Косяк начал проявляться только после апгрейда до 14.04 - это как-то можно починить?

 ,

Minoru
()

Вопросы по e17

1. Как сделать так, чтобы gtk, qt и eltk-приложения выглядели более-менее одинаково?

2. Можно ли сделать так, чтобы нажатие Win+<n> приводило к переключению к <n>-ному приложению в доке? Если да, то есть ли хоткей для переключения между окнами одного и того же приложения?

 ,

Minoru
()

Пообщаться с девайсом, уже подключенным к usbhid

Пытаюсь послать INTR_IN к мыши и получаю фигу:

libusbx: error [submit_bulk_transfer] submiturb failed error -1 errno=16
Transfer failed: LIBUSB_ERROR_IO

Если перед этим сделать libusb_detach_kernel_driver(), то, конечно же, все работает. Но отключать девайс от стандартного драйвера для меня крайне нежелательно.

Может есть ли какой-то относительно стандартный подход?

 ,

Minoru
()

Тонкая настройка переключателя раскладок

Имею в системе 3 раскладки (en, ru и jp). Есть ли способ повесить переключение между en и ru на Caps Lock, а на Ctrl+Space - безусловное переключение на jp?

SCIM не предлагать потому, что

  • indicator-keyboard-service в Ubuntu теперь знает о японской раскладке, и мне бы не хотелось идти против этой политики (а раньше в линуксах об этом знал только SCIM / его аналог)
  • При необходимости переключения с ru на jp мне придется сначала переключаться на en
  • Интересует обобщенное решение для любых раскладок (т.е. даже тех, которые работают не через SCIM)

Как вариант рассматриваю выпиливание существующего переключателя раскладок и написание Python-скрипта, но не хотелось бы изобретать велосипед.

 , , , ,

Minoru
()

patch слишком строгий

Пытаюсь применить diff, но получаю

Hunk #1 FAILED at 58.

В итоге приходится лезть в код и править его вручную.

В то же время я не помню, чтобы подобные проблемы возникали при выполнении git rebase / merge / stash pop - то есть то, что я хочу, вполне возможно. И может есть какие-нибудь более-менее стандартные способы это сделать?

 , ,

Minoru
()

Трассировка $pc при отладке бинарного кода в онтопике

Накопились следующие вопросы (Google молчит, как партизан):

1) Возможно ли получить список адресов всех инструкций, которые когда-либо выполнялись в порядке их выполнения?

2) Возможно ли заставить ltrace выдавать адреса, с которых происходят call-ы (может есть какие-то альтернативы)?

Minoru
()

pygtk: запустить редактирование ячейки в TreeView

Документация утверждает, что нужно использовать set_cursor. Однако, фокус просто переносится на нужную строку / столбец, и редактирование не начинается.

Я смог найти в гугле описание этой проблемы, но это не помогло.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require('2.0')
import gtk, os

class App:
	def __init__(self):
		# Всякая унылая хрень
		self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.window.connect("destroy", gtk.main_quit)
		self.window.set_size_request(200, 100)
		self.liststore = gtk.ListStore(str)
		self.treeview = gtk.TreeView(self.liststore)
		self.treeview.connect('key-press-event', self.on_key_press)
		# 1 колонка
		tvcolumn = gtk.TreeViewColumn("Column 1")
		cell = gtk.CellRendererText()
		cell.set_property('editable', True)
		tvcolumn.pack_start(cell, True)
		tvcolumn.set_attributes(cell, text=0)
		self.treeview.append_column(tvcolumn)
		# 2 строки
		self.liststore.append(["row1"])
		self.liststore.append(["row2"])
		# Запускаем
		self.window.add(self.treeview)
		self.window.show_all()

	def on_key_press(self, widget, event):
		keyname = gtk.gdk.keyval_name(event.keyval)
		if keyname == 'Tab':
			column = self.treeview.get_column(0)
			self.treeview.set_cursor((0,), column, True) # ----- не работает!
			self.treeview.grab_focus()

	def main(self):
		gtk.main()

if __name__ == "__main__":
	app = App()
	app.main()
Minoru
()

Статическая линковка с ExternalProject

В ../libevent-prefix/lib/ есть библиотека libevent.a, являющаяся результатом сборки ExternalProject, и которую надо слинковать с другим target.

На первый взгляд, нужно всего лишь засунуть ее в link_directories и target_link_libraries. Но линкер упорно подхватывает динамическую версию, которая стоит в моей системе.

Так как добавить "-static-" линковать все статически для меня не вариант, в общем-то устроит любой костыль, добавляющий " ../libevent-prefix/libevent.a" в конец команды сборки:

$ /usr/bin/c++     CMakeFiles/transmission-daemon.dir/daemon.c.o CMakeFiles/transmission-daemon.dir/watch.c.o  -o transmission-daemon -rdynamic -L"../ ../third-party/libutp/ ../libevent-prefix/lib/ ../third-party/libevent/ ../third-party/libutp/ ../third-party/dht/ ../third-party/miniupnp/ ../third-party/libnatpmp" ../libtransmission/libtransmission.a ../third-party/libutp/libutp.a ../third-party/dht/libdht.a ../third-party/libnatpmp/libnatpmp.a ../third-party/miniupnp/libminiupnp.a -lcurl -Wl,-rpath,"../ ../third-party/libutp/ ../libevent-prefix/lib/ ../third-party/libevent/ ../third-party/libutp/ ../third-party/dht/ ../third-party/miniupnp/ ../third-party/libnatpmp"

 

Minoru
()

chromium-dbg: no symbols found

Почему-то не видит символы, хотя файл есть:

$ chromium-browser -g
<...>
Reading symbols from /usr/lib/chromium-browser/chromium-browser...Reading symbols from /usr/lib/debug/usr/lib/chromium-browser/chromium-browser...(no debugging symbols found)...done.
(no debugging symbols found)...done.
Вот что говорит mcview:
/usr/lib/debug/usr/lib/chromium-browser/chromium-browser: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dy
namically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x9ad37428dd3a5a9c420b682eb45bcf03ca788d69, not
stripped
С другими пакетами (например, gnash) все работает нормально. В какую сторону копать?

 ,

Minoru
()

Не ловится Super в launcher

Иногда launcher не ловит нажатие Super (особенно при большой загруженности). Таким образом, нажатие Super+2 приводит к отправке '2' в активное окно вместо перехода к 2-му приложению.

Воспроизводится со всеми версиями Unity / Ubuntu. Это возможно как-то пофиксить?

 ,

Minoru
()

RSS подписка на новые темы