Merge pull request #21 from TingPing/py3k

Add Python 3 support
Update icon cache on install
Add more files to .gitignore
Fix PyGI deprecation warning
This commit is contained in:
Jon Lund Steffensen
2014-01-06 11:39:33 -08:00
6 changed files with 51 additions and 22 deletions
+13 -1
View File
@@ -16,11 +16,13 @@
*.exe
*.out
*.app
src/redshift*
# autotools
/autom4te.cache
Makefile.in
Makefile
stamp-h1
/config.*
/ABOUT-NLS
/aclocal.m4
@@ -29,8 +31,18 @@ Makefile.in
/install-sh
/missing
/py-compile
/compile
*.deps/
/m4/
# generated files
src/redshift-gtk/defs.py
src/redshift-gtk/redshift-gtk
contrib/redshift.spec
# gettext
/po/POTFILES
/po/stamp-po
/po/*.gmo
/po/Makefile.in.in
/po/Rules-quot
+10
View File
@@ -2,6 +2,8 @@
SUBDIRS = src po
ACLOCAL_AMFLAGS = -I m4
UPDATE_ICON_CACHE = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor || :
EXTRA_ROOTDOC_FILES = \
HACKING \
DESIGN \
@@ -45,6 +47,14 @@ desktopdir = @datadir@/applications
desktop_DATA = $(_DESKTOP_FILES)
endif
if ENABLE_GUI
install-data-hook:
$(UPDATE_ICON_CACHE);
uninstall-hook:
$(UPDATE_ICON_CACHE);
endif
# man page
dist_man1_MANS = redshift.1
+1 -1
View File
@@ -27,7 +27,7 @@ PKG_CHECK_MODULES([GEOCLUE], [geoclue], [have_geoclue=yes], [have_geoclue=no])
AC_CHECK_HEADER([windows.h], [have_windows_h=yes], [have_windows_h=no])
# Check for Python
AM_PATH_PYTHON([2.6], [have_python=yes], [have_python=no])
AM_PATH_PYTHON([3.3], [have_python=yes], [have_python=no])
# Check RANDR method
AC_MSG_CHECKING([whether to enable RANDR method])
+5 -2
View File
@@ -11,11 +11,14 @@ redshift_gtkdir = $(pythondir)/redshift_gtk
dist_bin_SCRIPTS = redshift-gtk
endif
EXTRA_DIST = defs.py.in
CLEANFILES = defs.py
EXTRA_DIST = defs.py.in redshift-gtk.in
CLEANFILES = defs.py redshift-gtk
# Local python definitions
defs.py: defs.py.in
$(AM_V_GEN)sed -e "s|\@bindir\@|$(bindir)|g" \
-e "s|\@localedir\@|$(localedir)|g" $< > $@
redshift-gtk: redshift-gtk.in
$(AM_V_GEN)sed -e "s|\@pythondir\@|$(pythondir)|g" $< > $@
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# redshift-gtk -- GTK+ Redshift launcher script
# This file is part of Redshift.
@@ -17,6 +17,10 @@
# Copyright (c) 2010 Jon Lund Steffensen <jonlst@gmail.com>
import sys
# Some non-standard install paths may need to be added
sys.path.append('@pythondir@')
if __name__ == '__main__':
from redshift_gtk.statusicon import run
+17 -17
View File
@@ -34,8 +34,8 @@ try:
except ImportError:
appindicator = None
import defs
import utils
from . import defs
from . import utils
_ = gettext.gettext
@@ -78,28 +78,28 @@ class RedshiftStatusIcon(object):
self.status_menu = Gtk.Menu()
# Add toggle action
toggle_item = Gtk.MenuItem(_('Toggle'))
toggle_item = Gtk.MenuItem.new_with_label(_('Toggle'))
toggle_item.connect('activate', self.toggle_cb)
self.status_menu.append(toggle_item)
# Add suspend menu
suspend_menu_item = Gtk.MenuItem(_('Suspend for'))
suspend_menu_item = Gtk.MenuItem.new_with_label(_('Suspend for'))
suspend_menu = Gtk.Menu()
for minutes, label in [(30, _('30 minutes')),
(60, _('1 hour')),
(120, _('2 hours'))]:
suspend_item = Gtk.MenuItem(label)
suspend_item = Gtk.MenuItem.new_with_label(label)
suspend_item.connect('activate', self.suspend_cb, minutes)
suspend_menu.append(suspend_item)
suspend_menu_item.set_submenu(suspend_menu)
self.status_menu.append(suspend_menu_item)
# Add autostart option
autostart_item = Gtk.CheckMenuItem(_('Autostart'))
autostart_item = Gtk.CheckMenuItem.new_with_label(_('Autostart'))
try:
autostart_item.set_active(utils.get_autostart())
except IOError as strerror:
print strerror
print(strerror)
autostart_item.set_property('sensitive', False)
else:
autostart_item.connect('toggled', self.autostart_cb)
@@ -107,19 +107,19 @@ class RedshiftStatusIcon(object):
self.status_menu.append(autostart_item)
# Add info action
info_item = Gtk.MenuItem(_('Info'))
info_item = Gtk.MenuItem.new_with_label(_('Info'))
info_item.connect('activate', self.show_info_cb)
self.status_menu.append(info_item)
# Add quit action
quit_item = Gtk.ImageMenuItem(_('Quit'))
quit_item = Gtk.ImageMenuItem.new_with_label(_('Quit'))
quit_item.connect('activate', self.destroy_cb)
self.status_menu.append(quit_item)
# Create info dialog
self.info_dialog = Gtk.Dialog(_('Info'),
None, 0,
(_('Close'), Gtk.ResponseType.CLOSE))
self.info_dialog = Gtk.Dialog()
self.info_dialog.set_title(_('Info'))
self.info_dialog.add_button(_('Close'), Gtk.ButtonsType.CLOSE)
self.info_dialog.set_resizable(False)
self.info_dialog.set_property('border-width', 6)
@@ -175,17 +175,17 @@ class RedshiftStatusIcon(object):
fcntl.fcntl(self.process[2], fcntl.F_GETFL) | os.O_NONBLOCK)
# Add watch on child process
GLib.child_watch_add(self.process[0], self.child_cb)
GLib.io_add_watch(self.process[2], GLib.IO_IN,
GLib.child_watch_add(GLib.PRIORITY_DEFAULT, self.process[0], self.child_cb)
GLib.io_add_watch(self.process[2], GLib.PRIORITY_DEFAULT, GLib.IO_IN,
self.child_data_cb, (True, self.input_buffer))
GLib.io_add_watch(self.process[3], GLib.IO_IN,
GLib.io_add_watch(self.process[3], GLib.PRIORITY_DEFAULT, GLib.IO_IN,
self.child_data_cb, (False, self.error_buffer))
def start_child_process(self, args):
# Start child process with C locale so we can parse the output
env = os.environ.copy()
env['LANG'] = env['LANGUAGE'] = env['LC_ALL'] = env['LC_MESSAGES'] = 'C'
self.process = GLib.spawn_async(args, envp=['{}={}'.format(k,v) for k, v in env.iteritems()],
self.process = GLib.spawn_async(args, envp=['{}={}'.format(k,v) for k, v in env.items()],
flags=GLib.SPAWN_DO_NOT_REAP_CHILD,
standard_output=True, standard_error=True)
@@ -299,7 +299,7 @@ class RedshiftStatusIcon(object):
def child_data_cb(self, f, cond, data):
stdout, ib = data
ib.buf += os.read(f, 256)
ib.buf += os.read(f, 256).decode('utf-8')
# Split input at line break
sep = True