This is an old revision of the document!
Fix NVIDIA Optimus / Intel libGL conflict on SL 6.1
#!/bin/bash cd /usr/lib rm libGL.so.1 ln -s libGL.so.1.2 libGL.so.1
Fix "Location is not folder" / exo-utils problem / use nautilus in xfce
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.
Fix crackling sound on USB audio with nvidia card
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
ClipFuser
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()