Implemented key bindings via xbindkeys

This commit is contained in:
Kevin Veen-Birkenbach 2019-10-07 08:58:21 +02:00
parent 5555bcc2ec
commit bb2662e956
4 changed files with 74 additions and 6 deletions

View File

@ -10,9 +10,20 @@ It's adapted to the needs of Kevin Veen-Birkenbach aka. Frantz. Feel free to mod
## Requirements
This script is optimized for a [Manjaro Linux](https://manjaro.org) with [GNOME desktop](https://www.gnome.org/?).
## System
### Key Bindings
The following *Core System* specific key bindings exist:
|Combination |Result |
|------------|-----------------|
|Ctrl+Alt+A |Opens Atom |
|Ctrl+Alt+E |Opens Eclipse |
|Ctrl+Alt+F |Opens Firefox |
|Ctrl+Alt+K |Opens KeePassXC |
|Ctrl+Alt+T |Opens a terminal |
### User Data
Right now the software expects that the *Core System Owner* has on all systems the same username. By executing the *import script* it automatic backups the application configuration data, ssh keys and other important data which is saved in well defined configuration files and folders.
#### Specific Folders
#### Folders
Next to this the following specific folders exist:
##### $HOME/Documents/certificates/
Contains certificates to authenticate via [certificate based authentication](https://blog.couchbase.com/x-509-certificate-based-authentication/).

View File

@ -10,3 +10,4 @@ DECRYPTED_PATH="$REPOSITORY_PATH/decrypted";
SCRIPT_PATH="$REPOSITORY_PATH/scripts";
DATA_PATH="$DECRYPTED_PATH/data";
BACKUP_PATH="$DECRYPTED_PATH/backup";
TEMPLATE_PATH="$REPOSITORY_PATH/templates"

View File

@ -15,20 +15,23 @@ echo "Synchronizing administration tools..."
sudo pacman --needed -S htop tree git base-devel yay make gcc cmake
echo "Synchronizing security tools..."
sudo pacman --needed -S ecryptfs-utils encfs keepassxc
echo "Setup SSH key"
echo "Setup SSH key..."
ssh_key_path="$HOME/.ssh/id_rsa"
if [ ! -f "$ssh_key_path" ]; then
echo "SSH key $ssh_key_path doesn't exists!"
echo "->SSH key $ssh_key_path doesn't exists!"
if [ ! -f "./data$ssh_key_path" ]; then
echo "Importing ssh key from data..."
echo "->Importing ssh key from data..."
bash ./scripts/export-data-to-system.sh
else
echo "Generating ssh key"
echo "->Generating ssh key..."
ssh-keygen -t rsa -b 4096 -C "$USER@$HOSTNAME"
fi
fi
echo "Synchronizing gui tools..."
sudo pacman --needed -S gnome-shell-extensions
sudo pacman --needed -S gnome-shell-extensions xbindkeys
echo "->Setting up key bindings..."
cp -fv "$TEMPLATE_PATH/.xbindkeysrc" $HOME
xbindkeys --poll-rc
echo "->Install NASA picture of the day GNOME extension..."
git clone https://github.com/Elinvention/gnome-shell-extension-nasa-apod.git "$HOME/.local/share/gnome-shell/extensions/nasa_apod@elinvention.ovh"
gnome-shell-extension-tool -e nasa_apod@elinvention.ovh

53
templates/.xbindkeysrc Normal file
View File

@ -0,0 +1,53 @@
# For the benefit of emacs users: -*- shell-script -*-
###########################
# xbindkeys configuration #
###########################
#
# Version: 1.8.6
#
# If you edit this file, do not forget to uncomment any lines
# that you change.
# The pound(#) symbol may be used anywhere for comments.
#
# To specify a key, you can use 'xbindkeys --key' or
# 'xbindkeys --multikey' and put one of the two lines in this file.
#
# The format of a command line is:
# "command to start"
# associated key
#
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
"atom"
control+alt+a
"eclipse"
control+alt+e
"firefox"
control+alt+f
"keepassxc"
control+alt+k
"gnome-terminal -e /bin/bash"
control+alt+t