Зразу попереджаю - я не професійний gtk-девелопер. Карочє код:
/* файл назвем для прикладу main.c */
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <string.h>
#define BUFFER_LEN 100
int main (int argc, char **argv) {
char message[BUFFER_LEN];
memset(message, 0, BUFFER_LEN);
if (argc == 1) {
return 0;
}
/* initialize GTK */
gtk_init (&argc, &argv);
/* select needed phrase */
switch (atoi(argv[1])) {
case 1:
sprintf(message, "%s", "ы");
break;
case 2:
sprintf(message, "%s", "э");
break;
/* here you can put your own variants */
default:
sprintf(message, "%s", "хз");
}
/* set the clipboard text */
gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELEC
/* store the clipboard text */
gtk_clipboard_store(gtk_clipboard_get(GDK_SELECTIO
return 0;
}
компілюєтсья то всьо рядком:
cc `pkg-config --cflags --libs gtk+-2.0` main.c -o copy_buffer
треба шоб були девелоперські ліби для gtk ну і сішний компілятор
на виході отримуємо бінарнийк copy_buffer, який приймає один параметр - цифру. Його (бінарник) треба скопіювати в /usr/local/bin шоб система його знаходила.
В середині є switch, який в залежності від того, яка цифра (параметр) передана в програму, буде класти в буфер то, шо треба. Цей switch можна собі розширити і запхати туди цілі фрази, якшо часто приходитсья шось велике набирати.
Наступний крок - визначаємо клавіші під різні варіанти запуску програмулі.
Для цього я запустив CompizConfig Settings Manager і там в розділі General/Commands створив дві команди: "copy_buffer 1" і "copy_buffer 2". Перша, згідно switch'а в коді програми, покладе в буфер "ы", друга відповідно "э". Ну і якшо ми запустим програму з якимось іншим параметром - то отримаєм "хз". У вкладці Key Bindings встановив їм комбінаційї "win+1" і "win+2" відповідно.
Як воно працює?
Сижу я в інтернеті і хочу когось забакланити десь на російському форумі. Пишу "Да иди т? со своей ?нтропией!". На місці знака питання натискаю win+1 і Ctrl+V, а на місці другого win+2 і Ctrl+V. І всэ)
No comments:
Post a Comment