I had the same problem on an HP laptop, and it was burning my retinas. I've tried the xorg.conf solution and a host of others, to no avail. I have an AMD/ATI card, but I might be able to help:
A couple options are to download and install Redshift (
http://jonls.dk/redshift/).
Using the following command might work:
Code:
redshift -l 0:0 -t 5800:5800 -r -b *brightness-value*&
See redshift's man page for argument descriptions, but *brightness-value* is a decimal between 0 and 1.
Anyways, because I adjust screen brightness every time I get on my computer, I wrote a Python script.
Just make sure you check and install the dependencies (see below), save the script to a file, chmod +x, and off you go.
Happy programming.
Code:
#!/usr/local/bin/python3
'''
Controls screen brightness on notebooks with switchable graphics cards
(i.e. AMD/Intel) when proprietary drivers and notebook toggle switches
are inoperative. Though Redshift was originally designed to automatically
change screen temperature based on lat/long and time of day, its ability
to alter screen brightness is exploited in this script.
Edit #! above (Python path), as required for your system.
Package Dependencies:
redshift - http://jonls.dk/redshift/
psutil - http://pypi.python.org/pypi/psutil
python - http://www.python.org/download/releases/
python-devel - install python from source gives you python-devel, or
you can download a distro-specific package.
Written in Python 3.3
'''
import psutil
import os
def GetRedshiftPID(): #Get Process ID (PID) for redshift
for proc in psutil.process_iter():
if proc.name == "redshift":
return proc.pid #Returns redshift PID as integer
return 0 #Returns 0 if redshift is not running
RedshiftPID = GetRedshiftPID()
def StartRedshift():
brightness=input("Enter desired screen brightness (0-10): ")
brightness=brightness.rstrip() #Strips whitespace characters
try:
brightness=float(brightness) #Attempts to convert user input to a float
if brightness not in range(0,11):
print("Enter an integer between 1 and 10.")
StartRedshift() #Retry if user input is not an integer between 1 and 10
else:
if RedshiftPID != 0: #If redshift is running, kill it
os.system("kill " + str(RedshiftPID))
if GetRedshiftPID() > 0: #If redshift is running after first kill attempt, abort.
print("Unable to kill Redshift. Exiting...")
quit()
brightness=brightness/10 #Convert brightness to float for use in redshift call
os.system("redshift -l 0:0 -t 5800:5800 -r -b " + str(brightness) + "&") #redshift to runs in background
print("Script Complete. Exiting...")
except:
print("Enter an integer between 1 and 10.") #If exception is caught in conversion, retry
StartRedshift()
StartRedshift() #Begins program