[Remind-Fans] A little script I use to put remind on the desktop
Martin Hansen
mh.mail at stofanet.dk
Fri Sep 19 10:47:41 EDT 2008
Hi,
I did not get Your script working. I am getting a "convert: Postscript delegate failed `/tmp/magick-XXB0tWqO': No such file or directory.", so I think it is a bug on my machine. However:
I am also working on a script that puts Remind on a Xfce4
desktop using RMagick (ImageMagick from Ruby). (It will need some modifications to run on other desktops).
The result so far can be seen at
http://home1.stofanet.dk/mh.homepage/files/screenshot.png
I run it as an autostarted application and as a cron job at midnight:
In:
crontab -e
Insert:
@midnight $HOME/bin/xfremind
Where $HOME/bin/xfremind is where I placed the script.
The script requires remind, RMagick http://rmagick.rubyforge.org/ (and everything RMagick depends on. On Debian, the package is named librmagick-ruby).
The script looks like:
#!/usr/bin/env ruby
require 'RMagick'
BACKGROUND_PICKTURE="background.png" #Place it at ~/.config/xfremind/background.png
NEGATE_CALENDAR = true
screen_width = 1280
screen_height = 1024
OUTPUT_DIR="#{ENV['HOME']}/.config/xfremind"
unless test ?d,OUTPUT_DIR
Dir.mkdir(OUTPUT_DIR)
end
Dir.chdir(OUTPUT_DIR)
if Object.const_defined?(:BACKGROUND_PICKTURE) && File.exist?(BACKGROUND_PICKTURE)
background = Magick::ImageList.new(BACKGROUND_PICKTURE)
else
fill = Magick::GradientFill.new(0, 0, 0, 0, "#8888bb", "#333399")
background = Magick::Image.new(screen_width, screen_height, fill)
background = background.swirl(-360)
end
system('remind -m -b1 -p ~/.reminders | rem2ps -sthd 14 -se 10 -i -l -e > calendar.ps') # The command that generates the postscript calendar.
calendar = Magick::ImageList.new("calendar.ps")
calendar.rotate!(90)
if Object.const_defined?(:NEGATE_CALENDAR) && (NEGATE_CALENDAR)
calendar = calendar.negate
wallpaper = background.composite(calendar, Magick::SouthEastGravity, Magick::ScreenCompositeOp)
else
wallpaper = background.composite(calendar, Magick::SouthEastGravity, Magick::MultiplyCompositeOp)
end
wallpaper.write('wallpaper.png') # This file should be selected as wallpaper.
system('killall -USR1 xfdesktop') # This reloads the XFCE4 desktop.
Kind Regards
Martin Hansen
On Tue, 5 Aug 2008 14:13:18 +1000
Shelagh Manton <shelagh.manton at gmail.com> wrote:
> As the subject says. This was devised for xfce4 but I'm sure that the
> guts of the script would be useful for any desktop. At least on *nix
> OSes.
>
> It does have three dependencies ssed imagemagick and enscript.
> Most are available with distro package managers but may not be
> installed by default. ssed (super sed) might be the only one that is
> difficult to get.
>
> 8< -----------------------------------------------------------
> #!/bin/bash
> #dailypic: make a picture for desktop of the output of remind.
>
> empty='s/\e\[0m/@color{default}/g
> s/\e\[0;31m/@color{1 0 0}/
> s/\e\[0;32m/@color{0 1 0}/
> s/\e\[0;33m/@color{1 1 0}/
> s/\e\[0;34m/@color{0 0 1}/
> s/\e\[0;35m/@color{1 0 1}/
> s/\e\[0;36m/@color{0 1 1}/
> s/\e\[0;37m/@color{0 0 0}/
> s/\e\[31;1m/@color{1 0 0}/
> s/\e\[32;1m/@color{0 1 0}/
> s/\e\[33;1m/@color{1 1 0}/
> s/\e\[34;1m/@color{0 0 1}/
> s/\e\[35;1m/@color{1 0 1}/
> s/\e\[36;1m/@color{0 1 1}/
> s/\e\[37;1m/@color{0 0 0}/'
>
> picture="/path/to/your/wallpapers/daily.png"
>
> remind | ssed "$empty" | enscript --escapes=@ -Br -fPalatino-Bold16
> -q -o - | convert -trim -transparent white -rotate 90 - "$picture"
> xfdesktop
>
> Shelagh
More information about the Remind-fans
mailing list