Install XDG desktop icon files.
The icon files will be installed when running make install or cabal install. Did not try to run update-icon-caches, since I think it's debian specific, and dh_icons will take care of that for the Debian package. Using the favicon as a 16x16 icon. At 24x24 the svg displays pretty well, although the dotted lines are rather faint. The svg is ok at all higher resolutions. The standalone linux build auto-installs the desktop and autostart files when run. I have not made it auto-install the icon file too, because a) that would take more work to include them in the tarball and find them b) it would need to be an install to ~/.icons/, and I don't know if that really works!
This commit is contained in:
parent
ea6fdc745f
commit
19b8bcbe30
7 changed files with 45 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
|||
{- Generating and installing a desktop menu entry file
|
||||
{- Generating and installing a desktop menu entry file and icon,
|
||||
- and a desktop autostart file. (And OSX equivilants.)
|
||||
-
|
||||
- Copyright 2012 Joey Hess <joey@kitenet.net>
|
||||
|
@ -28,6 +28,7 @@ import System.Posix.Files
|
|||
#endif
|
||||
import System.FilePath
|
||||
import Data.Maybe
|
||||
import System.IO
|
||||
|
||||
systemwideInstall :: IO Bool
|
||||
#ifndef mingw32_HOST_OS
|
||||
|
@ -48,14 +49,28 @@ inDestDir f = do
|
|||
|
||||
writeFDODesktop :: FilePath -> IO ()
|
||||
writeFDODesktop command = do
|
||||
datadir <- ifM systemwideInstall ( return systemDataDir, userDataDir )
|
||||
systemwide <- systemwideInstall
|
||||
|
||||
datadir <- if systemwide then return systemDataDir else userDataDir
|
||||
installMenu command
|
||||
=<< inDestDir (desktopMenuFilePath "git-annex" datadir)
|
||||
|
||||
configdir <- ifM systemwideInstall ( return systemConfigDir, userConfigDir )
|
||||
installIcon "doc/logo.svg" =<< inDestDir
|
||||
=<< iconFilePath "git-annex.svg" "scalable" systemwide
|
||||
installIcon "doc/favicon.png" =<< inDestDir
|
||||
=<< iconFilePath "git-annex.png" "16x16" systemwide
|
||||
|
||||
configdir <- if systemwide then return systemConfigDir else userConfigDir
|
||||
installAutoStart command
|
||||
=<< inDestDir (autoStartPath "git-annex" configdir)
|
||||
|
||||
installIcon :: FilePath -> FilePath -> IO ()
|
||||
installIcon src dest = do
|
||||
createDirectoryIfMissing True (parentDir dest)
|
||||
withBinaryFile src ReadMode $ \hin ->
|
||||
withBinaryFile dest WriteMode $ \hout ->
|
||||
hGetContents hin >>= hPutStr hout
|
||||
|
||||
writeOSXDesktop :: FilePath -> IO ()
|
||||
writeOSXDesktop command = do
|
||||
installAutoStart command =<< inDestDir =<< ifM systemwideInstall
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue