X-Git-Url: https://git.ralfj.de/lilass.git/blobdiff_plain/4462cbde3a401b1fb0d530aa0e300c26d10075d0..09b026a7a1fc1a072c7bc7dc6d491ad71180617f:/lilass diff --git a/lilass b/lilass index f9363ea..85ccc99 100755 --- a/lilass +++ b/lilass @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # DSL - easy Display Setup for Laptops # Copyright (C) 2012-2015 Ralf Jung # @@ -16,9 +16,9 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -import argparse, sys, os, re, subprocess +import argparse, sys, os, os.path, shutil, re, subprocess from enum import Enum -import gui, screen +import gui, screen, util frontend = gui.getFrontend("cli") # the fallback, until we got a proper frontend. This is guaranteed to be available. @@ -30,7 +30,6 @@ def commonInternalConnectorNames(): for suffix in commonInternalConnectorSuffices: yield prefix+suffix - # Load a section-less config file: maps parameter names to space-separated lists of strings (with shell quotation) def loadConfigFile(filename): import shlex @@ -106,7 +105,14 @@ if __name__ == "__main__": frontend = gui.getFrontend(cmdArgs.frontend) # load configuration - config = loadConfigFile(os.getenv('HOME') + '/.lilass.conf') + legacyConfigFilePath = os.getenv('HOME') + '/.lilass.conf' + configDirectory = util.getConfigDirectory() + configFilePath = os.path.join(configDirectory, "lilass.conf") + if os.path.isfile(legacyConfigFilePath) and not os.path.isfile(configFilePath): + # looks like we just upgraded to a new version of lilass + util.mkdirP(configDirectory) + shutil.move(legacyConfigFilePath, configFilePath) + config = loadConfigFile(configFilePath) # see what situation we are in situation = situationByConfig(config) @@ -135,7 +141,7 @@ if __name__ == "__main__": if setup is None: sys.exit(1) # the user canceled else: # use first resolution of internal connector - setup = screen.ScreenSetup(intResolution = situation.internalResolutions()[0], extResolution = None) + setup = screen.ScreenSetup(intResolution = situation.internalConnector.getResolutionList()[0], extResolution = None) # call xrandr xrandrCall = situation.forXrandr(setup) @@ -146,5 +152,5 @@ if __name__ == "__main__": if setup.extResolution is None: turnOnBacklight() except Exception as e: + raise e frontend.error(str(e)) - raise