Linux Setup Guide
Redshift
Configuration
Replace lat
and lon
with your
coordinates.
; Global settings for redshift
[redshift]
; Set the day and night screen temperatures
temp-day=4700
temp-night=3300
; Enable/Disable a smooth transition between day and night
; 0 will cause a direct change from day to night screen temperature.
; 1 will gradually increase or decrease the screen temperature.
transition=1
; Set the screen brightness. Default is 1.0.
;brightness=0.9
; It is also possible to use different settings for day and night
; since version 1.8.
;brightness-day=0.7
;brightness-night=0.4
; Set the screen gamma (for all colors, or each color channel
; individually)
;gamma=0.8
;gamma=0.8:0.7:0.8
; This can also be set individually for day and night since
; version 1.10.
;gamma-day=0.8:0.7:0.8
;gamma-night=0.6
; Set the location-provider: 'geoclue', 'geoclue2', 'manual'
; type 'redshift -l list' to see possible values.
; The location provider settings are in a different section.
location-provider=manual
; Set the adjustment-method: 'randr', 'vidmode'
; type 'redshift -m list' to see all possible values.
; 'randr' is the preferred method, 'vidmode' is an older API.
; but works in some cases when 'randr' does not.
; The adjustment method settings are in a different section.
adjustment-method=randr
; Configuration of the location-provider:
; type 'redshift -l PROVIDER:help' to see the settings.
; ex: 'redshift -l manual:help'
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
; are negative numbers.
[manual]
lat=111.0
lon=-222.0
; Configuration of the adjustment-method
; type 'redshift -m METHOD:help' to see the settings.
; ex: 'redshift -m randr:help'
; In this example, randr is configured to adjust screen 1.
; Note that the numbering starts from 0, so this is actually the
; second screen. If this option is not specified, Redshift will try
; to adjust _all_ screens.
[randr]
screen=0
i3
All of the i3 configuration is in file
~/.config/i3/config
.
Natural scrolling
exec --no-startup-id synclient HorizEdgeScroll=1 VertEdgeScroll=1 HorizTwoFingerScroll=1 HorizScrollDelta=-27 VertScrollDelta=-70
The variables are device-specific. Run synclient
with no
arguments to see the options available for your device.
The negative values for HorizScrollDelta
and
VertScrollDelta
are what invert the direction of the scroll
for natural scrolling.
Fn / Media Keys
# Pulseaudio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% # increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% # decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
# Screen brightness (needs custom script, see comment below)
bindsym XF86MonBrightnessUp exec sudo $HOME/.scripts/backlight.sh -inc 45 # increase screen brightness
bindsym XF86BrightnessDown exec sudo $HOME/.scripts/backlight.sh -dec 45 # decrease screen brightness
# Media player controls
bindsym XF86AudioPlay exec playerctl play
bindsym XF86AudioPause exec playerctl pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
For the screen brightness controls, create the following script under
~/.scripts/backlight.sh
:
#!/bin/bash
set -e
# Modify this to point to your monitor device.
# A good starting point is `ls /sys/class/backlight`.
# https://wiki.archlinux.org/index.php/backlight
file="/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness"
current=$(cat "$file")
new="$current"
if [ "$1" = "-inc" ];
then
new =$(( current + $2 ))
fi
if [ "$1" = "-dec" ]
then
new=$(( current - $2 ))
fi
echo "$new | tee $file"
Now configure sudo to be able to run the script as sudo without
entering a password. We will want this since we will be calling this
script by pressing on the screen brightness keys. Run
sudo visudo
and enter the following line at the end of the
file (replace “user” with your user name):
user ALL = (root) NOPASSWD: /home/user/.scripts/backlight.sh
Grub
Show menu before boot
/etc/default/grub
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=3
$ sudo update-grub
Ubuntu likes to boot straight into the OS. ESC
and
SHIFT
keys do not work on my setup. Edit the grub config as
shown above to get the menu by default and set a timeout of 3 seconds on
it.
Keyboard not detected
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.reset=1"
$ sudo update-grub
My ASUS laptop keyboard was not recognized on a cold boot. The
solution on my setup was to add i8042.reset=1
to the kernel
parameters.
Test the setting first by booting as usual and pressing
e
at the boot menu. Then, edit the kernel parameters
(linux
line) and boot. If that works, modify the grub
configuration file and run update-grub
to apply the changes
permanently.
Fedora Silverblue
Librem Key
Had to configure gnupg and scdaemon as shown below to get the key to work.
scademon
~/.gnupg/scdaemon.conf
pcsc-driver /usr/lib64/libpcsclite.so.1
card-timeout 5
disable-ccid
scdaemon seems to look for libpcsclite.so
by default,
but Fedora ships that library with a version appended to it. Use the
correct library path on the system.
gpg-agent
~/.gnupg/gpg-agent.conf
pinentry-program /usr/bin/pinentry-gnome3
If the Librem Key has a password, then point gpg-agent to the correct pinentry program.
Use pinentry-tty
for the console version instead. This
needs to be installed first:
rpm-ostree install pinentry-tty
.
gnupng common
~/.gnupg/common.conf
Comment out use-keyboxd
:
#use-keyboxd