рд╢рдВрдХреБ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░: рдПрдордкреАрдбреА рдЯреНрд░реИрдХ рдХреА рддрд╛рд░реАрдЦ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдирд╛

рдкрд░рд┐рдЪрдп


рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ ncmpc рд╕реЗ ncmpcpp рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ "рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдореЛрдб" рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛, рдЗрд╕рдореЗрдВ рдЯреНрд░реИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдиреАрдЪреЗ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдКрдкрд░ рд╕реЗ рдФрд░ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдПрдХ рдореЗрдВ рдирд╣реАрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рддрдм рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдПрдордкреАрдбреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЙрд╕реА рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рдмреБрд░реА рдХрд┐рд╕реНрдордд - рдХреЙрдиреНрдХреА рдЯреНрд░реИрдХ, рдПрд▓реНрдмрдо, рдХрд▓рд╛рдХрд╛рд░ рдХрд╛ рдирд╛рдо рджрд┐рдЦрд╛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рд░реАрдЦ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдУрдкрдирд╕реЛрд░реНрд╕, рдлрд┐рд░ рднреА, рд╣рдо рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВрдЧреЗред

рд╕реНрд░реЛрдд рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╢рдВрдХреБ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреИрд░реЛрдмреЙрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдирдкреИрдХ рдХрд░реЗрдВ:

$ wget http://downloads.sourceforge.net/project/conky/conky/1.8.1/conky-1.8.1.tar.bz2 $ tar -xf conky-1.8.1.tar.bz2 $ cd conky-1.8.1/src 



рдпрд╣рд╛рдБ рдЪрд╛рд░ рдлрд╛рдЗрд▓реЗрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдирд╛рдо рдкрд░ 'mpd' рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: mpd.c, mpd.h, libmpdclient.c рдФрд░ libmpdclient.hред рдХреЙрдиреНрдХреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдордкреАрдбреА рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реБрдП рдФрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП libmpdclient рдХреЛ рд▓реЗ рд▓рд┐рдпрд╛ред рдЦреИрд░, рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЯреНрд░реИрдХ рдПрдордкреАрдбреА (libmpdclient.h) рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ:

 typedef struct _mpd_Song { /* filename of song */ char *file; /* artist, maybe NULL if there is no tag */ char *artist; /* title, maybe NULL if there is no tag */ char *title; /* album, maybe NULL if there is no tag */ char *album; /* track, maybe NULL if there is no tag */ char *track; /* name, maybe NULL if there is no tag; it's the name of the current song, * fe the icyName of the stream */ char *name; /* date */ char *date; /* added by qball */ /* Genre */ char *genre; /* Composer */ char *composer; /* Performer */ char *performer; /* Disc */ char *disc; /* Comment */ char *comment; /* length of song in seconds, check that it is not MPD_SONG_NO_TIME */ int time; /* if plchanges/playlistinfo/playlistid used, is the position of the song * in the playlist */ int pos; /* song id for a song in the playlist */ int id; } mpd_Song; 

рддреЛ, рдХрд▓рд╛рдХрд╛рд░, рд╢реАрд░реНрд╖рдХ, рдПрд▓реНрдмрдо рдФрд░ рджрд┐рдирд╛рдВрдХ рд╕рднреА рдЪрд╛рд░ * рд╣реИрдВред рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реИ - рдмрд╕ рдЫрд╡рд┐ рдФрд░ рд╕рдорд╛рдирддрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░реЗрдВред

рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВ


рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдлрд╝рдВрдХреНрд╢рди conky mpd_title рд▓рд┐рдпрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд╣рд╛рдВ рд╣реИ:

 $ grep mpd_title *.c *.h 



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо mpd.h рдФрд░ mpd.c рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред Mpd.h рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:

 struct mpd_s { char *title; char *artist; char *album; const char *status; const char *random; const char *repeat; char *track; char *name; char *file; int is_playing; int vol; float progress; int bitrate; int length; int elapsed; }; 

рдЯрд╛рдЗрдк * рдЪрд╛рд░ рдХрд╛ рдПрдХ рджрд┐рдирд╛рдВрдХ рдлрд╝реАрд▓реНрдб рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
  char *date; 

рдиреАрдЪреЗ Print_mpd_title рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рд╣реИ:
 void print_mpd_title(struct text_object *, char *, int); 

рдЗрд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рджрд┐рдирд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖рдХ рдмрджрд▓реЗрдВ:
 void print_mpd_date(struct text_object *, char *, int); 

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдФрд░ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдм рдЖрдкрдХреЛ mpd.c рдХреЛ рдПрдбрд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди mpd_title рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ? рдЪрд▓реЛ рдмрд╕ рд╢реАрд░реНрд╖рдХ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 $ grep title mpd.c 



рд▓рд╛рдЗрди MPD_PRINT_GENERATOR (рд╢реАрд░реНрд╖рдХ, "% s") рд╕рдм рдХреБрдЫ рд╕рдордЭрд╛рддреА рд╣реИ - рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓рд╛рдЗрди "mpd_title" рдирд╣реАрдВ рдорд┐рд▓реАред рдЦреИрд░, рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╣рдо рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдХрд░реЗрдВрдЧреЗ:

 static void clear_mpd(void) { #define xfree(x) if (x) free(x) xfree(mpd_info.title); xfree(mpd_info.date); /* <-- */ xfree(mpd_info.artist); xfree(mpd_info.album); /* do not free() the const char *status! */ /* do not free() the const char *random! */ /* do not free() the const char *repeat! */ xfree(mpd_info.track); xfree(mpd_info.name); xfree(mpd_info.file); #undef xfree memset(&mpd_info, 0, sizeof(struct mpd_s)); } ... SONGSET(artist); SONGSET(album); SONGSET(title); SONGSET(date); /* <-- */ SONGSET(track); SONGSET(name); SONGSET(file); ... MPD_PRINT_GENERATOR(title, "%s") MPD_PRINT_GENERATOR(date, "%s") /* <-- */ MPD_PRINT_GENERATOR(artist, "%s") MPD_PRINT_GENERATOR(album, "%s") MPD_PRINT_GENERATOR(random, "%s") MPD_PRINT_GENERATOR(repeat, "%s") MPD_PRINT_GENERATOR(track, "%s") MPD_PRINT_GENERATOR(name, "%s") MPD_PRINT_GENERATOR(file, "%s") MPD_PRINT_GENERATOR(vol, "%d") MPD_PRINT_GENERATOR(bitrate, "%d") MPD_PRINT_GENERATOR(status, "%s") 

рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рдж, mpd.c рднреА рдмрдВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдордиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдХреЙрдиреНрдХреА рдХреЛ рдПрдордкреАрдбреА рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рд╣реЛред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдкрдврд╝рд╛рдирд╛ рдмрд╛рдХреА рд╣реИред рд╣рдо conky.c рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - mpd_title рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╢реАрд░реНрд╖рдХ рдХреЛ рддрд┐рдерд┐ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ:

 #ifdef MPD OBJ(mpd_title) print_mpd_title(obj, p, p_max_size); OBJ(mpd_date) /* <-- */ print_mpd_date(obj, p, p_max_size); /* <-- */ 

рдЕрдм рдХреЛрд░ рдореЗрдВ рднреА рдпрд╣реА рдмрд╛рдд рд╣реИ:

  END OBJ(mpd_title, &update_mpd) mpd_set_maxlen(mpd_title); init_mpd(); END OBJ(mpd_date, &update_mpd) /* <-- */ mpd_set_maxlen(mpd_date); /* <-- */ init_mpd(); /* <-- */ 

рдЦреИрд░, рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ text_object.h рд╣реИ:

 #ifdef MPD OBJ_mpd_title, OBJ_mpd_date, /* <-- */ 

рд╕реНрд░реЛрдд рдкрд╛рда рдХреЗ рд╕рд╛рде рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рдЗрд╕реЗ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╢реЗрд╖ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:

 $ cd ..; ./configure 

рдореИрдВ рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдордкреАрдбреА рд╕рдорд░реНрдерди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИред рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ ./configure --help рджреЗрдЦреЗрдВред

рдПрдХ рд╕рдлрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╢рд╛рдорд┐рд▓ рдФрд░ рдЕрдХреНрд╖рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛:



рдПрдордкреАрдбреА: рд╣рд╛рдБ - рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЕрдм рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 make 

рдПрдХ рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ mpd_date рдлрд╝рдВрдХреНрд╢рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрд╣реАрдВ ~ ~ .conkyrc рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 ${alignc}$mpd_title ${alignc}${color #dddd55}$mpd_artist ${alignc}${color #55dd88}$mpd_album $color(${color yellow}$mpd_date$color) 

рд╣рдо рдмрд╕ рдЗрдХрдЯреНрдареЗ рд╢рдВрдХреБ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 ./src/conky 



рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдкреИрдХреЗрдЬ рд╡рд┐рдзрд╛рдирд╕рднрд╛


рдЕрдм рдпрд╣ рдЖрдкрдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╕ sudo make install рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ conky / usr / рд▓реЛрдХрд▓ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред

рддреЛ, рдмреЛрдирд╕ рд╣рд┐рд╕реНрд╕рд╛: рдЕрдкрдиреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред

рдкреЛрд░реНрдЯреЗрдЬ-рдЖрдзрд╛рд░рд┐рдд (рдЬреЗрдВрдЯреВ, рд╕рдмрд╛рдпреЛрди)

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдУрд╡рд░рд▓реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдм рдПрдХ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХрд╛ рд╕реНрдерд╛рдиреАрдп рдУрд╡рд░рд▓реЗ / usr / рд▓реЛрдХрд▓ / рдкреЛрд░реНрдЯреЗрдЬ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рд╢рдВрдХреБ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдФрд░ рдореМрдЬреВрджрд╛ рдкреИрдЪ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ:

 # mkdir -p /usr/local/portage/app-admin/conky/files # cd /usr/local/portage/app-admin/conky # cp /usr/portage/app-admin/conky/conky-1.8.1-r5.ebuild conky-1.8.1-r6.ebuild # cp /usr/portage/app-admin/conky/files files/ 

рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдкреИрдЪ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд░реЛрдд рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рджреВрд╕рд░реЗ, рдореВрд▓ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВ, рддреАрд╕рд░рд╛, "diff -aur <рдореВрд▓> <рд╕рдВрд╢реЛрдзрд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐>" рдХрд░реЗрдВред рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдмрд╕ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ:

 diff -aur conky-1.8.1.orig/src/conky.c conky-1.8.1/src/conky.c --- conky-1.8.1.orig/src/conky.c 2010-10-06 01:29:36.000000000 +0400 +++ conky-1.8.1/src/conky.c 2011-11-13 01:11:06.894704215 +0400 @@ -1945,6 +1945,8 @@ print_mpd_artist(obj, p, p_max_size); OBJ(mpd_album) print_mpd_album(obj, p, p_max_size); + OBJ(mpd_date) + print_mpd_date(obj, p, p_max_size); OBJ(mpd_random) print_mpd_random(obj, p, p_max_size); OBJ(mpd_repeat) diff -aur conky-1.8.1.orig/src/core.c conky-1.8.1/src/core.c --- conky-1.8.1.orig/src/core.c 2010-10-06 01:29:36.000000000 +0400 +++ conky-1.8.1/src/core.c 2011-11-13 01:11:06.894704215 +0400 @@ -925,6 +925,9 @@ END OBJ(mpd_album, &update_mpd) mpd_set_maxlen(mpd_album); init_mpd(); + END OBJ(mpd_date, &update_mpd) + mpd_set_maxlen(mpd_date); + init_mpd(); END OBJ(mpd_vol, &update_mpd) init_mpd(); END OBJ(mpd_bitrate, &update_mpd) init_mpd(); END OBJ(mpd_status, &update_mpd) init_mpd(); @@ -1733,6 +1736,7 @@ case OBJ_mpd_title: case OBJ_mpd_artist: case OBJ_mpd_album: + case OBJ_mpd_date: case OBJ_mpd_random: case OBJ_mpd_repeat: case OBJ_mpd_vol: diff -aur conky-1.8.1.orig/src/mpd.c conky-1.8.1/src/mpd.c --- conky-1.8.1.orig/src/mpd.c 2010-10-06 01:29:36.000000000 +0400 +++ conky-1.8.1/src/mpd.c 2011-11-13 01:16:50.699508331 +0400 @@ -95,6 +95,7 @@ xfree(mpd_info.title); xfree(mpd_info.artist); xfree(mpd_info.album); + xfree(mpd_info.date); /* do not free() the const char *status! */ /* do not free() the const char *random! */ /* do not free() the const char *repeat! */ @@ -273,6 +274,7 @@ SONGSET(artist); SONGSET(album); SONGSET(title); + SONGSET(date); SONGSET(track); SONGSET(name); SONGSET(file); @@ -403,6 +405,7 @@ MPD_PRINT_GENERATOR(title, "%s") MPD_PRINT_GENERATOR(artist, "%s") MPD_PRINT_GENERATOR(album, "%s") +MPD_PRINT_GENERATOR(date, "%s") MPD_PRINT_GENERATOR(random, "%s") MPD_PRINT_GENERATOR(repeat, "%s") MPD_PRINT_GENERATOR(track, "%s") diff -aur conky-1.8.1.orig/src/mpd.h conky-1.8.1/src/mpd.h --- conky-1.8.1.orig/src/mpd.h 2010-10-06 01:29:36.000000000 +0400 +++ conky-1.8.1/src/mpd.h 2011-11-13 01:11:06.898037530 +0400 @@ -7,6 +7,7 @@ char *title; char *artist; char *album; + char *date; const char *status; const char *random; const char *repeat; @@ -41,6 +42,7 @@ void print_mpd_title(struct text_object *, char *, int); void print_mpd_artist(struct text_object *, char *, int); void print_mpd_album(struct text_object *, char *, int); +void print_mpd_date(struct text_object *, char *, int); void print_mpd_random(struct text_object *, char *, int); void print_mpd_repeat(struct text_object *, char *, int); void print_mpd_track(struct text_object *, char *, int);   conky-1.8.1/src: stamp-h1 diff -aur conky-1.8.1.orig/src/text_object.h conky-1.8.1/src/text_object.h --- conky-1.8.1.orig/src/text_object.h 2010-10-06 01:29:36.000000000 +0400 +++ conky-1.8.1/src/text_object.h 2011-11-13 01:13:54.990460229 +0400 @@ -327,6 +327,7 @@ OBJ_mpd_title, OBJ_mpd_artist, OBJ_mpd_album, + OBJ_mpd_date, OBJ_mpd_random, OBJ_mpd_repeat, OBJ_mpd_vol, 

рдЗрд╕ рдкреИрдЪ рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдирд╛рдордХрд░рдг рдкреИрдЪ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдФрд░ рдЗрд╕реЗ "conky-1.8.1-mpd-date.patch" рдХрд╣рд╛ред рдЕрдм рд╣рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рдкреИрдЪ рднреА рд▓рд╛рдЧреВ рд╣реЛред рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЦреЛрд▓реЗрдВ, рдФрд░ "src_prepare" рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкреИрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 src_prepare() { epatch "${FILESDIR}/${P}-nvidia-x.patch" \ "${FILESDIR}/${P}-xmms2.patch" \ "${FILESDIR}/${P}-secunia-SA43225.patch" \ "${FILESDIR}/${P}-acpitemp.patch" \ "${FILESDIR}/${P}-curl-headers.patch" \ "${FILESDIR}/${P}-maxinterfaces.patch" \ "${FILESDIR}/${P}-utf8-scroll.patch" \ "${FILESDIR}/${P}-mpd-date.patch" eautoreconf } 

рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗрдВ, рдореИрдирд┐рдлреЗрд╕реНрдЯ рдмрдирд╛рдПрдВ:

 # ebuild conky-1.8.1-r6.ebuild manifest 

рдЕрдм рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 # emerge conky 

рдбреАрдИрдмреА-рдЖрдзрд╛рд░рд┐рдд (рдбреЗрдмрд┐рдпрди, рдЙрдмрдВрдЯреВ), рдЖрд░рдкреАрдПрдо-рдЖрдзрд╛рд░рд┐рдд (рдлреЗрдбреЛрд░рд╛, рдУрдкрдирд╕реБрдИ), рд╕реНрд▓реИрдХрд╡реЗрдпрд░

рд╣рдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЬрд╛рдБрдЪ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкрдереЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ:

 $ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib $ make 

рдЕрдм, рдореЗрдХ рдЗрдирд╕реНрдЯреЙрд▓ рдХреЗ рдмрдЬрд╛рдп, рдЪреИрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд░рди рдХрд░реЗрдВ

рдПрдХ рдбрд┐рдмреЗрдЯ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

 checkinstall -D make install 

рдПрдХ рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

 checkinstall -R make install 

рд╕реНрд▓реИрдХрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

 checkinstall -S make install 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдкрд░рд┐рдгрд╛рдореА рдкреИрдХреЗрдЬ рдХреЛ рдЖрдкрдХреЗ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдиреЛрдЯ: рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдЬреНрдпрд╛рджрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╢рд╛рдпрдж рдЪреБрдирд╛ рд╣реБрдЖ рддрд░реАрдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

Source: https://habr.com/ru/post/In132975/


All Articles