#!/bin/bash cd /usr/lib rm libGL.so.1 ln -s libGL.so.1.2 libGL.so.1
Create a open.sh file somewhere with:
#!/bin/sh if [ $# = 0 ]; then nautilus "$PWD" elif [ -d "$1" ]; then nautilus "$1" else xdg-open "$1" fi
make it executable, then run
exo-preferred-applications
and set your script as the default file manager. Now for files the default viewer will be opened (for example, evince for pdf) and nautilus for folders.
If the USB controller shares interrupts with the NVIDIA card, Powermizer could cause crackling sound when an USB sound card or headphone is connected.
To solve, I forced the Powermizer settings at the lowest performance by adding
Option "Coolbits" "1" Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"
To the “Device” section in xorg.conf Other info at http://linux.aldeby.org/nvidia-powermizer-powersaving.html
Simple FUSE module that manages the files that have been copied / pasted
#!/usr/bin/env python # ClipFuser # FUSE filesystem to display files in the clipboard # Copyright (C) 2011 Amos Brocco # License: LGPL3 # version 0.01 - February 1. 2011 # FIXME: Crashes with non-local uris import os, sys import gio import urllib import fuse from fuse import Fuse import gtk import time from threading import Thread,Lock fuse.fuse_python_api = (0, 2) fuse.feature_assert('has_init') class ClipWatcher(Thread): def __init__(self, fuser): Thread.__init__(self) self.__fuser = fuser self.clipboard = gtk.Clipboard() self.shouldRun = True def run(self): print "Starting watcher" while self.shouldRun: time.sleep(1) ret = self.clipboard.wait_for_contents("text/uri-list") if ret != None: self.clipboard.request_contents("text/uri-list", self.updateFromClipboard) def updateFromClipboard(self, clipboard, selection_data, data=None): contents = selection_data.data if contents is not None: contents = contents.split("\r\n") ccontents = {} for e in contents: if e.strip() != "": f = gio.File(uri=e) rpath = f.get_path() rpath.replace(" ","%20") ccontents['/'+f.get_basename()] = rpath self.__fuser.update(ccontents) def cleanup(self): self.shouldRun = False class ClipFuser(Fuse): def __init__(self, *args, **kw): Fuse.__init__(self, *args, **kw) self.ccontents = {} self.watcher = ClipWatcher(self) self.watcher.start() self.mutex = Lock() def update(self, c): self.mutex.acquire() self.ccontents = c self.mutex.release() def cleanup(self): self.watcher.cleanup() def getattr(self, path): self.mutex.acquire() data = self.ccontents self.mutex.release() if data.has_key('/'+path): path = data['/'+path] return os.lstat(path) elif path == '/': return os.lstat("./") else: return os.lstat(path) def readdir(self, path, offset): self.mutex.acquire() data = self.ccontents self.mutex.release() if (path == '/'): for e in data.keys(): yield fuse.Direntry(data[e]) else: for e in os.listdir("."+path): yield fuse.Direntry(e) def main(): server = ClipFuser() server.parse(values=server, errex=1) server.main() server.cleanup() if __name__ == '__main__': main()