Rename scripts
Signed-off-by: Severin Kaderli <severin.kaderli@gmail.com>
This commit is contained in:
parent
df6b44e541
commit
410d0b33c6
46 changed files with 566 additions and 249 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -12,3 +12,8 @@ system/.config/mpv/restore-old-bindings.conf
|
||||||
|
|
||||||
system/.config/pulse/*
|
system/.config/pulse/*
|
||||||
!system/.config/pulse/default.pa
|
!system/.config/pulse/default.pa
|
||||||
|
|
||||||
|
system/.config/cmus/*
|
||||||
|
!system/.config/cmus/rc
|
||||||
|
|
||||||
|
system/.config/polybar/scripts/gmail/credentials.json
|
|
@ -16,5 +16,5 @@ Lint:
|
||||||
- shellcheck ./system/.config/zsh/.zprofile
|
- shellcheck ./system/.config/zsh/.zprofile
|
||||||
- shellcheck ./system/.config/zsh/.zshrc
|
- shellcheck ./system/.config/zsh/.zshrc
|
||||||
- shellcheck ./system/.config/X11/xsetup
|
- shellcheck ./system/.config/X11/xsetup
|
||||||
- shellcheck ./install.sh
|
- shellcheck ./install
|
||||||
- shellcheck ./post-install.sh
|
- shellcheck ./post-install
|
||||||
|
|
30
README.md
30
README.md
|
@ -9,14 +9,16 @@ While the configurations are based on my preferences and made my dotfiles public
|
||||||
The installation is pretty straightforward using a couple of installation scripts.
|
The installation is pretty straightforward using a couple of installation scripts.
|
||||||
|
|
||||||
1. Clone the repository
|
1. Clone the repository
|
||||||
2. Run `./install.sh`
|
2. Run `./install`
|
||||||
3. Reboot the system
|
3. Reboot the system
|
||||||
4. Run `./post-install.sh`
|
4. Run `./post-install`
|
||||||
|
|
||||||
## Keybindings
|
## Keybindings
|
||||||
| Keybinding | Use |
|
| Keybinding | Description |
|
||||||
| ------------------------------- | ------------------- |
|
| ------------------------------------------------ | -------------------------------- |
|
||||||
| <kbd>Super</kbd>+<kbd>1-9</kbd> | Switching workspace |
|
| <kbd>Super</kbd>+<kbd>1-9</kbd> | Switching workspace |
|
||||||
|
| <kbd>Super</kbd>+<kbd>Shift</kbd>+<kbd>1-9</kbd> | Move focused window to workspace |
|
||||||
|
| <kbd>Super</kbd>+<kbd>G</kbd> | Open game menu |
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
The list of my used arch packages are found inside `packages/packages.list`.
|
The list of my used arch packages are found inside `packages/packages.list`.
|
||||||
|
@ -25,6 +27,14 @@ The main content of this repository can be found in the `system` folder. It
|
||||||
contains all configurations files, directories and scripts that mostly get symlinked
|
contains all configurations files, directories and scripts that mostly get symlinked
|
||||||
by my install script.
|
by my install script.
|
||||||
|
|
||||||
|
### `etc/udev`
|
||||||
|
This folder contains my custom udev rules. They are moved to
|
||||||
|
`/etc/udev/rules.d/` by the installation script.
|
||||||
|
|
||||||
|
### `etc/sudoers.d`
|
||||||
|
This folder contains my custom sudoers configuration. They are moved to
|
||||||
|
`/etc/sudoers.d` by the installation script.
|
||||||
|
|
||||||
### `.config/autokey`
|
### `.config/autokey`
|
||||||
This folder contains my phrases and scripts for
|
This folder contains my phrases and scripts for
|
||||||
[AutoKey](https://github.com/autokey/autokey).
|
[AutoKey](https://github.com/autokey/autokey).
|
||||||
|
@ -32,6 +42,10 @@ This folder contains my phrases and scripts for
|
||||||
### `.config/bat`
|
### `.config/bat`
|
||||||
This folder contains my configuration for [bat](https://github.com/sharkdp/bat) a replacement for cat.
|
This folder contains my configuration for [bat](https://github.com/sharkdp/bat) a replacement for cat.
|
||||||
|
|
||||||
|
### `.config/cmus`
|
||||||
|
This folder contains my [cmus](https://cmus.github.io/)
|
||||||
|
configuration.
|
||||||
|
|
||||||
### `.config/compton`
|
### `.config/compton`
|
||||||
This folder contains my [compton](https://github.com/yshui/compton/releases) configuration.
|
This folder contains my [compton](https://github.com/yshui/compton/releases) configuration.
|
||||||
|
|
||||||
|
@ -108,9 +122,5 @@ This file contains my QT4 configuration.
|
||||||
|
|
||||||
### `.local/bin`
|
### `.local/bin`
|
||||||
This folder contains a bunch of scripts that I use. Some of them are used by
|
This folder contains a bunch of scripts that I use. Some of them are used by
|
||||||
Polybar or i3 and others are used directly and some like `utils.sh` contain
|
Polybar or i3 and others are used directly and some like `utils` contain
|
||||||
functions that I use in other scripts.
|
functions that I use in other scripts.
|
||||||
|
|
||||||
### `udev`
|
|
||||||
This folder contains my custom udev rules. They are moved to
|
|
||||||
`/etc/udev/rules.d/` by the installation script.
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# install.sh
|
# install
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
# installs pacman packages and gives out the correct permissions to files.
|
# installs pacman packages and gives out the correct permissions to files.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./install.sh
|
# ./install
|
||||||
. ./system/.local/bin/utils.sh
|
. ./system/.local/bin/utils
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Configuration variables
|
# Configuration variables
|
||||||
|
@ -26,12 +26,15 @@ DIRECTORIES=(
|
||||||
"Build"
|
"Build"
|
||||||
"Downloads"
|
"Downloads"
|
||||||
"Projects"
|
"Projects"
|
||||||
|
"Videos"
|
||||||
|
"Images"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Array of files which should be symlinked in the home folder
|
# Array of files which should be symlinked in the home folder
|
||||||
LINKED_FILES_HOME=(
|
LINKED_FILES_HOME=(
|
||||||
".config/autokey"
|
".config/autokey"
|
||||||
".config/bat"
|
".config/bat"
|
||||||
|
".config/cmus"
|
||||||
".config/compton"
|
".config/compton"
|
||||||
".config/cron"
|
".config/cron"
|
||||||
".config/custom"
|
".config/custom"
|
||||||
|
@ -115,8 +118,14 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
print_header "Copy custom udev rules"
|
print_header "Copy custom udev rules"
|
||||||
for file in ${SYSTEM_DIR}/udev/rules.d/*.rules
|
for file in ${SYSTEM_DIR}/etc/udev/rules.d/*.rules
|
||||||
do
|
do
|
||||||
copy_udev_rule "${file}"
|
copy_udev_rule "${file}"
|
||||||
done
|
done
|
||||||
sudo udevadm control --reload-rules
|
sudo udevadm control --reload-rules
|
||||||
|
|
||||||
|
print_header "Copy sudoers content"
|
||||||
|
for file in ${SYSTEM_DIR}/etc/sudoers.d/*
|
||||||
|
do
|
||||||
|
copy_sudoers_content "${file}"
|
||||||
|
done
|
|
@ -1,19 +1,19 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# post-install.sh
|
# post-install
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
#
|
#
|
||||||
# DESCRIPTION:
|
# DESCRIPTION:
|
||||||
# This is the post-install script for my dotfiles. It should be only run
|
# This is the post-install script for my dotfiles. It should be only run
|
||||||
# after install.sh has been run and the system has been rebooted. This script
|
# after install has been run and the system has been rebooted. This script
|
||||||
# installs global npm packages.
|
# installs global npm packages.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./post-install.sh
|
# ./post-install
|
||||||
. ./system/.local/bin/utils.sh
|
. ./system/.local/bin/utils
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Configuration variables
|
# Configuration variables
|
|
@ -23,3 +23,5 @@ rofi.opacity: 100
|
||||||
rofi.location: 2
|
rofi.location: 2
|
||||||
rofi.yoffset: 35
|
rofi.yoffset: 35
|
||||||
rofi.fixed-num-lines: false
|
rofi.fixed-num-lines: false
|
||||||
|
|
||||||
|
Sxiv.background: #000000
|
|
@ -31,4 +31,4 @@ xrdb -merge "${XDG_CONFIG_HOME}/X11/xresources"
|
||||||
# Start ibus
|
# Start ibus
|
||||||
#ibus-daemon -drx
|
#ibus-daemon -drx
|
||||||
|
|
||||||
. "${XDG_BIN_HOME}/resolution.sh"
|
. "${XDG_BIN_HOME}/resolution"
|
||||||
|
|
|
@ -12,10 +12,10 @@
|
||||||
"interfaceType": "XRecord",
|
"interfaceType": "XRecord",
|
||||||
"undoUsingBackspace": true,
|
"undoUsingBackspace": true,
|
||||||
"windowDefaultSize": [
|
"windowDefaultSize": [
|
||||||
924,
|
1872,
|
||||||
469
|
962
|
||||||
],
|
],
|
||||||
"hPanePosition": 232,
|
"hPanePosition": 472,
|
||||||
"columnWidths": [
|
"columnWidths": [
|
||||||
150,
|
150,
|
||||||
50,
|
50,
|
||||||
|
|
|
@ -13,9 +13,9 @@
|
||||||
"undoUsingBackspace": true,
|
"undoUsingBackspace": true,
|
||||||
"windowDefaultSize": [
|
"windowDefaultSize": [
|
||||||
1872,
|
1872,
|
||||||
301
|
962
|
||||||
],
|
],
|
||||||
"hPanePosition": 470,
|
"hPanePosition": 472,
|
||||||
"columnWidths": [
|
"columnWidths": [
|
||||||
150,
|
150,
|
||||||
50,
|
50,
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
],
|
],
|
||||||
"backspace": true,
|
"backspace": true,
|
||||||
"ignoreCase": false,
|
"ignoreCase": false,
|
||||||
"immediate": true,
|
"immediate": false,
|
||||||
"triggerInside": false,
|
"triggerInside": false,
|
||||||
"wordChars": "[\\w]"
|
"wordChars": "[\\w]"
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"modes": [
|
"modes": [
|
||||||
1
|
1
|
||||||
],
|
],
|
||||||
"usageCount": 12,
|
"usageCount": 19,
|
||||||
"prompt": false,
|
"prompt": false,
|
||||||
"omitTrigger": false,
|
"omitTrigger": false,
|
||||||
"showInTrayMenu": false,
|
"showInTrayMenu": false,
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
],
|
],
|
||||||
"backspace": true,
|
"backspace": true,
|
||||||
"ignoreCase": false,
|
"ignoreCase": false,
|
||||||
"immediate": true,
|
"immediate": false,
|
||||||
"triggerInside": false,
|
"triggerInside": false,
|
||||||
"wordChars": "[\\w]"
|
"wordChars": "[\\w]"
|
||||||
},
|
},
|
||||||
|
|
1
system/.config/cmus/rc
Normal file
1
system/.config/cmus/rc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
set display_artist_sort_name=/home/severin/.local/bin/cmus-cover
|
|
@ -15,7 +15,7 @@ opacity-rule = [
|
||||||
"85:class_g = 'Nemo'"
|
"85:class_g = 'Nemo'"
|
||||||
];
|
];
|
||||||
|
|
||||||
inactive-dim = 0.25;
|
#inactive-dim = 0.25;
|
||||||
|
|
||||||
# Performance improvements
|
# Performance improvements
|
||||||
unredir-if-possible = true;
|
unredir-if-possible = true;
|
||||||
|
|
|
@ -11,5 +11,10 @@
|
||||||
# This file is loaded on boot by crontab.
|
# This file is loaded on boot by crontab.
|
||||||
|
|
||||||
# Synchronize Google Drive every 30 minutes
|
# Synchronize Google Drive every 30 minutes
|
||||||
*/30 * * * * grive -d -p /home/severin/GoogleDrive/ >> /home/severin/.local/log/cron.log 2>&1
|
*/30 * * * * grive -d -p $HOME/Documents/ >> $HOME/.local/log/cron.log
|
||||||
*/5 * * * * /home/severin/.local/bin/sync_notes.sh >> /home/severin/.local/log/notes.log 2>&1
|
|
||||||
|
# Sync pacman databases every 30 minutes
|
||||||
|
*/30 * * * * sudo $HOME/.local/bin/sync_package_databases >> $HOME/.local/log/cron.log
|
||||||
|
|
||||||
|
# Synchronize notes every 5 minutes
|
||||||
|
*/5 * * * * $HOME/.local/bin/sync_notes >> $HOME/.local/log/cron.log
|
||||||
|
|
|
@ -32,6 +32,9 @@ alias pj="cd ~/Projects"
|
||||||
# Alias to get to my Downloads folder
|
# Alias to get to my Downloads folder
|
||||||
alias dl="cd ~/Downloads"
|
alias dl="cd ~/Downloads"
|
||||||
|
|
||||||
|
# Alias to get to my Documents folder
|
||||||
|
alias doc="cd ~/Documents"
|
||||||
|
|
||||||
# Alias for opening my code editor
|
# Alias for opening my code editor
|
||||||
alias e="code"
|
alias e="code"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# This script is sourced by .bashrc
|
# This script is sourced by .bashrc
|
||||||
. "${XDG_BIN_HOME}/utils.sh"
|
. "${XDG_BIN_HOME}/utils"
|
||||||
|
|
||||||
# XDG Overrides for unsupported programs
|
# XDG Overrides for unsupported programs
|
||||||
export HTTPIE_CONFIG_DIR="${XDG_CONFIG_HOME}/httpie"
|
export HTTPIE_CONFIG_DIR="${XDG_CONFIG_HOME}/httpie"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
file:///home/severin/Downloads Downloads
|
file:///home/severin/Downloads Downloads
|
||||||
file:///home/severin/GoogleDrive GoogleDrive
|
file:///home/severin/Documents Documents
|
||||||
file:///home/severin/Projects Projects
|
file:///home/severin/Projects Projects
|
||||||
file:///home/severin/dotfiles dotfiles
|
file:///home/severin/dotfiles dotfiles
|
||||||
file:///home/severin/Notes Notes
|
file:///home/severin/Notes Notes
|
||||||
|
|
|
@ -10,18 +10,36 @@
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# This file is automatically used by i3.
|
# This file is automatically used by i3.
|
||||||
|
|
||||||
|
# Disable window titlebars and borders
|
||||||
|
for_window [class="^.*"] border pixel 0
|
||||||
|
|
||||||
|
# Gaps
|
||||||
|
gaps inner 25
|
||||||
|
#gaps outer -10
|
||||||
|
|
||||||
|
new_window none
|
||||||
|
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
font pango:Noto Sans, Font Awesome 5 Free 15px
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Modifiers #
|
# Modifiers #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
set $mod Mod4
|
set $mod Mod4
|
||||||
set $alt Mod1
|
set $alt Mod1
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Outputs #
|
# Outputs #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
set $output1 HDMI-1
|
set $output1 HDMI-1
|
||||||
set $output2 eDP-1
|
set $output2 eDP-1
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Workspaces #
|
# Workspaces #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -49,29 +67,36 @@ workspace $workspace8 output $output1
|
||||||
workspace $workspace9 output $output2
|
workspace $workspace9 output $output2
|
||||||
workspace $workspace10 output $output2
|
workspace $workspace10 output $output2
|
||||||
|
|
||||||
new_window none
|
# Assign applications to workspaces
|
||||||
|
assign [class="Google-chrome-beta"] $workspace1
|
||||||
|
assign [instance="cmus"] $workspace10
|
||||||
|
assign [class="Code"] $workspace3
|
||||||
|
assign [class="Nemo"] $workspace4
|
||||||
|
assign [class="discord"] $workspace5
|
||||||
|
assign [class="Steam"] $workspace6
|
||||||
|
assign [class="keepassxc"] $workspace8
|
||||||
|
assign [class="vlc"] $workspace9
|
||||||
|
assign [class="mpv"] $workspace9
|
||||||
|
assign [class="Notable"] $workspace7
|
||||||
|
|
||||||
# Font for window titles. Will also be used by the bar unless a different font
|
|
||||||
# is used in the bar {} block below.
|
|
||||||
font pango:Noto Sans, Font Awesome 5 Free 15px
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Keybindings #
|
# Keybindings #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
|
||||||
floating_modifier $mod
|
|
||||||
|
|
||||||
# Start a terminal
|
# Start a terminal
|
||||||
bindsym $mod+Return exec termite -c ~/.config/termite/config
|
bindsym $mod+Return exec termite -c ~/.config/termite/config
|
||||||
|
|
||||||
# Kill focused window
|
# Kill focused window
|
||||||
bindsym $mod+Shift+q kill
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
# Rofi menus
|
# Open run menu
|
||||||
bindsym $mod+R exec rofi -show run -lines 5
|
bindsym $mod+R exec rofi -show run -lines 5
|
||||||
bindsym $mod+G exec games.sh
|
|
||||||
bindsym $mod+F4 exec power.sh
|
# Open game menu
|
||||||
|
bindsym $mod+G exec games
|
||||||
|
|
||||||
|
# Open power menu
|
||||||
|
bindsym $mod+F4 exec power
|
||||||
|
|
||||||
# Change focus
|
# Change focus
|
||||||
bindsym $mod+Left focus left
|
bindsym $mod+Left focus left
|
||||||
|
@ -99,67 +124,57 @@ bindsym $mod+$alt+H move workspace to output left
|
||||||
bindsym $mod+$alt+Right move workspace to output right
|
bindsym $mod+$alt+Right move workspace to output right
|
||||||
bindsym $mod+$alt+L move workspace to output right
|
bindsym $mod+$alt+L move workspace to output right
|
||||||
|
|
||||||
# split in horizontal orientation
|
# Toggle split orientation
|
||||||
#bindsym $mod+h split h
|
bindsym $mod+T split toggle
|
||||||
|
|
||||||
# split in vertical orientation
|
|
||||||
bindsym $mod+v split v
|
|
||||||
|
|
||||||
# Fullscreen toggle
|
# Fullscreen toggle
|
||||||
bindsym $mod+F11 fullscreen toggle
|
bindsym $mod+F11 fullscreen toggle
|
||||||
|
|
||||||
# toggle tiling / floating
|
# toggle tiling / floating
|
||||||
bindsym $mod+Shift+space floating toggle
|
bindsym $mod+Shift+Space floating toggle
|
||||||
|
|
||||||
# change focus between tiling / floating windows
|
|
||||||
bindsym $mod+space focus mode_toggle
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Workspace switching
|
# Workspace switching
|
||||||
bindsym $mod+1 workspace $workspace1
|
bindsym $mod+1 workspace $workspace1
|
||||||
bindsym $mod+2 workspace $workspace2
|
|
||||||
bindsym $mod+3 workspace $workspace3
|
|
||||||
bindsym $mod+4 workspace $workspace4
|
|
||||||
bindsym $mod+5 workspace $workspace5
|
|
||||||
bindsym $mod+6 workspace $workspace6
|
|
||||||
bindsym $mod+7 workspace $workspace7
|
|
||||||
bindsym $mod+8 workspace $workspace8
|
|
||||||
bindsym $mod+9 workspace $workspace9
|
|
||||||
bindsym $mod+0 workspace $workspace10
|
|
||||||
|
|
||||||
bindsym $mod+KP_1 workspace $workspace1
|
bindsym $mod+KP_1 workspace $workspace1
|
||||||
|
bindsym $mod+2 workspace $workspace2
|
||||||
bindsym $mod+KP_2 workspace $workspace2
|
bindsym $mod+KP_2 workspace $workspace2
|
||||||
|
bindsym $mod+3 workspace $workspace3
|
||||||
bindsym $mod+KP_3 workspace $workspace3
|
bindsym $mod+KP_3 workspace $workspace3
|
||||||
|
bindsym $mod+4 workspace $workspace4
|
||||||
bindsym $mod+KP_4 workspace $workspace4
|
bindsym $mod+KP_4 workspace $workspace4
|
||||||
|
bindsym $mod+5 workspace $workspace5
|
||||||
bindsym $mod+KP_5 workspace $workspace5
|
bindsym $mod+KP_5 workspace $workspace5
|
||||||
|
bindsym $mod+6 workspace $workspace6
|
||||||
bindsym $mod+KP_6 workspace $workspace6
|
bindsym $mod+KP_6 workspace $workspace6
|
||||||
|
bindsym $mod+7 workspace $workspace7
|
||||||
bindsym $mod+KP_7 workspace $workspace7
|
bindsym $mod+KP_7 workspace $workspace7
|
||||||
|
bindsym $mod+8 workspace $workspace8
|
||||||
bindsym $mod+KP_8 workspace $workspace8
|
bindsym $mod+KP_8 workspace $workspace8
|
||||||
|
bindsym $mod+9 workspace $workspace9
|
||||||
bindsym $mod+KP_9 workspace $workspace9
|
bindsym $mod+KP_9 workspace $workspace9
|
||||||
|
bindsym $mod+0 workspace $workspace10
|
||||||
bindsym $mod+KP_0 workspace $workspace10
|
bindsym $mod+KP_0 workspace $workspace10
|
||||||
|
|
||||||
# Moving container to workspace
|
# Moving container to workspace
|
||||||
bindsym $mod+Shift+1 move container to workspace $workspace1
|
bindsym $mod+Shift+1 move container to workspace $workspace1
|
||||||
bindsym $mod+Shift+2 move container to workspace $workspace2
|
|
||||||
bindsym $mod+Shift+3 move container to workspace $workspace3
|
|
||||||
bindsym $mod+Shift+4 move container to workspace $workspace4
|
|
||||||
bindsym $mod+Shift+5 move container to workspace $workspace5
|
|
||||||
bindsym $mod+Shift+6 move container to workspace $workspace6
|
|
||||||
bindsym $mod+Shift+7 move container to workspace $workspace7
|
|
||||||
bindsym $mod+Shift+8 move container to workspace $workspace8
|
|
||||||
bindsym $mod+Shift+9 move container to workspace $workspace9
|
|
||||||
bindsym $mod+Shift+0 move container to workspace $workspace10
|
|
||||||
|
|
||||||
bindsym $mod+Shift+KP_1 move container to workspace $workspace1
|
bindsym $mod+Shift+KP_1 move container to workspace $workspace1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $workspace2
|
||||||
bindsym $mod+Shift+KP_2 move container to workspace $workspace2
|
bindsym $mod+Shift+KP_2 move container to workspace $workspace2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $workspace3
|
||||||
bindsym $mod+Shift+KP_3 move container to workspace $workspace3
|
bindsym $mod+Shift+KP_3 move container to workspace $workspace3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $workspace4
|
||||||
bindsym $mod+Shift+KP_4 move container to workspace $workspace4
|
bindsym $mod+Shift+KP_4 move container to workspace $workspace4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $workspace5
|
||||||
bindsym $mod+Shift+KP_5 move container to workspace $workspace5
|
bindsym $mod+Shift+KP_5 move container to workspace $workspace5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $workspace6
|
||||||
bindsym $mod+Shift+KP_6 move container to workspace $workspace6
|
bindsym $mod+Shift+KP_6 move container to workspace $workspace6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $workspace7
|
||||||
bindsym $mod+Shift+KP_7 move container to workspace $workspace7
|
bindsym $mod+Shift+KP_7 move container to workspace $workspace7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $workspace8
|
||||||
bindsym $mod+Shift+KP_8 move container to workspace $workspace8
|
bindsym $mod+Shift+KP_8 move container to workspace $workspace8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $workspace9
|
||||||
bindsym $mod+Shift+KP_9 move container to workspace $workspace9
|
bindsym $mod+Shift+KP_9 move container to workspace $workspace9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $workspace10
|
||||||
bindsym $mod+Shift+KP_0 move container to workspace $workspace10
|
bindsym $mod+Shift+KP_0 move container to workspace $workspace10
|
||||||
|
|
||||||
# Restart i3
|
# Restart i3
|
||||||
|
@ -181,20 +196,14 @@ bindsym Escape mode "default"
|
||||||
|
|
||||||
bindsym $mod+x mode "resize"
|
bindsym $mod+x mode "resize"
|
||||||
|
|
||||||
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# Custom keybinding
|
|
||||||
#######################################
|
|
||||||
# Screen lock controls
|
# Screen lock controls
|
||||||
#bindsym $mod+l exec --no-startup-id $XDG_BIN_HOME/screenlock.sh
|
bindsym XF86Sleep exec --no-startup-id screenlock
|
||||||
bindsym XF86Sleep exec --no-startup-id $XDG_BIN_HOME/screenlock.sh
|
|
||||||
|
|
||||||
# Volume controls
|
# Volume controls
|
||||||
bindsym XF86AudioMute exec --no-startup-id pamixer -t
|
bindsym XF86AudioMute exec --no-startup-id pamixer -t
|
||||||
bindsym $mod+m exec --no-startup-id pamixer -t
|
bindsym $mod+m exec --no-startup-id pamixer -t
|
||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id $XDG_BIN_HOME/increase_volume.sh
|
bindsym XF86AudioRaiseVolume exec --no-startup-id increase_volume
|
||||||
bindsym $mod+KP_Add exec --no-startup-id $XDG_BIN_HOME/increase_volume.sh
|
bindsym $mod+KP_Add exec --no-startup-id increase_volume
|
||||||
bindsym XF86AudioLowerVolume exec --no-startup-id pamixer -d 5 --allow-boost
|
bindsym XF86AudioLowerVolume exec --no-startup-id pamixer -d 5 --allow-boost
|
||||||
bindsym $mod+KP_Subtract exec --no-startup-id pamixer -d 5 --allow-boost
|
bindsym $mod+KP_Subtract exec --no-startup-id pamixer -d 5 --allow-boost
|
||||||
|
|
||||||
|
@ -212,21 +221,25 @@ bindsym XF86AudioPrev exec --no-startup-id cmus-remote -r
|
||||||
bindsym $mod+Control+Left exec --no-startup-id cmus-remote -r
|
bindsym $mod+Control+Left exec --no-startup-id cmus-remote -r
|
||||||
|
|
||||||
|
|
||||||
|
exec --no-startup-id "i3-msg 'workspace 10: ; append_layout /home/severin/.config/i3/workspace-10.json'"
|
||||||
|
|
||||||
#######################################
|
###############################################################################
|
||||||
# Startup applications
|
# Startup applications #
|
||||||
#######################################
|
###############################################################################
|
||||||
# Dunst
|
# Start compton
|
||||||
exec --no-startup-id dunst
|
|
||||||
|
|
||||||
# Compton
|
|
||||||
exec --no-startup-id compton -b
|
exec --no-startup-id compton -b
|
||||||
|
|
||||||
# Background-Image
|
# Start polybar
|
||||||
exec_always --no-startup-id feh --randomize --bg-fill $HOME/GoogleDrive/02_Media/Images/01_Wallpaper/Desktop/*
|
exec_always --no-startup-id $XDG_CONFIG_HOME/polybar/launch
|
||||||
|
|
||||||
# Monitor settings
|
# Start dunst
|
||||||
exec_always --no-startup-id $XDG_BIN_HOME/resolution.sh
|
exec --no-startup-id dunst
|
||||||
|
|
||||||
|
# Set resolution
|
||||||
|
exec_always --no-startup-id resolution
|
||||||
|
|
||||||
|
# Set wallpaper
|
||||||
|
exec_always --no-startup-id wallpaper
|
||||||
|
|
||||||
# Other applications
|
# Other applications
|
||||||
exec autokey-gtk
|
exec autokey-gtk
|
||||||
|
@ -238,23 +251,5 @@ exec nemo
|
||||||
exec keepassxc
|
exec keepassxc
|
||||||
exec notable
|
exec notable
|
||||||
exec termite -e cmus --name cmus
|
exec termite -e cmus --name cmus
|
||||||
|
exec termite -e cava --name cava
|
||||||
# Assign programs to specific workspaces
|
exec sxiv -b -s f $HOME/.local/share/cmus/.cover
|
||||||
###
|
|
||||||
assign [class="Google-chrome-beta"] $workspace1
|
|
||||||
assign [instance="cmus"] $workspace10
|
|
||||||
assign [class="Code"] $workspace3
|
|
||||||
assign [class="Nemo"] $workspace4
|
|
||||||
assign [class="discord"] $workspace5
|
|
||||||
assign [class="Steam"] $workspace6
|
|
||||||
assign [class="keepassxc"] $workspace8
|
|
||||||
assign [class="vlc"] $workspace9
|
|
||||||
assign [class="mpv"] $workspace9
|
|
||||||
assign [class="Notable"] $workspace7
|
|
||||||
|
|
||||||
# Disable window titlebars and borders
|
|
||||||
for_window [class="^.*"] border pixel 0
|
|
||||||
|
|
||||||
# Gaps
|
|
||||||
gaps inner 25
|
|
||||||
#gaps outer -10
|
|
96
system/.config/i3/workspace-10.json
Normal file
96
system/.config/i3/workspace-10.json
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"border": "none",
|
||||||
|
"floating": "auto_off",
|
||||||
|
"fullscreen_mode": 0,
|
||||||
|
"layout": "splith",
|
||||||
|
"percent": 1,
|
||||||
|
"type": "con",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"border": "none",
|
||||||
|
"floating": "auto_off",
|
||||||
|
"layout": "splith",
|
||||||
|
"percent": 1,
|
||||||
|
"type": "con",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"border": "pixel",
|
||||||
|
"current_border_width": 0,
|
||||||
|
"floating": "auto_off",
|
||||||
|
"geometry": {
|
||||||
|
"height": 434,
|
||||||
|
"width": 736,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"name": "cmus v2.7.1",
|
||||||
|
"percent": 0.7,
|
||||||
|
"swallows": [
|
||||||
|
{
|
||||||
|
"instance": "^cmus$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "con"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"border": "none",
|
||||||
|
"floating": "auto_off",
|
||||||
|
"layout": "splitv",
|
||||||
|
"percent": 0.3,
|
||||||
|
"type": "con",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"border": "pixel",
|
||||||
|
"current_border_width": 0,
|
||||||
|
"floating": "auto_off",
|
||||||
|
"geometry": {
|
||||||
|
"height": 1080,
|
||||||
|
"width": 1920,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"name": "sxiv",
|
||||||
|
"percent": 0.5,
|
||||||
|
"swallows": [
|
||||||
|
{
|
||||||
|
"instance": "^sxiv$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "con"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"border": "none",
|
||||||
|
"floating": "auto_off",
|
||||||
|
"layout": "splith",
|
||||||
|
"percent": 0.5,
|
||||||
|
"type": "con",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"border": "pixel",
|
||||||
|
"current_border_width": 0,
|
||||||
|
"floating": "auto_off",
|
||||||
|
"geometry": {
|
||||||
|
"height": 434,
|
||||||
|
"width": 736,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"name": "cava",
|
||||||
|
"percent": 1,
|
||||||
|
"swallows": [
|
||||||
|
{
|
||||||
|
"instance": "^cava$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "con"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
|
@ -42,8 +42,8 @@ padding-right = 2
|
||||||
module-margin = 2
|
module-margin = 2
|
||||||
|
|
||||||
modules-left = i3
|
modules-left = i3
|
||||||
modules-center = xwindow
|
modules-center =
|
||||||
modules-right = battery volume backlight wlan date power
|
modules-right = update gmail todo battery volume backlight wlan date power
|
||||||
tray-position = none
|
tray-position = none
|
||||||
separator = |
|
separator = |
|
||||||
|
|
||||||
|
@ -106,20 +106,53 @@ label-urgent-background = ${settings.background-color}
|
||||||
label-urgent-padding = ${settings.padding}
|
label-urgent-padding = ${settings.padding}
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
###############################################################################
|
||||||
# Active window title
|
# Update count #
|
||||||
#######################################
|
###############################################################################
|
||||||
[module/xwindow]
|
[module/update]
|
||||||
type = internal/xwindow
|
type = custom/script
|
||||||
|
exec = ${XDG_CONFIG_HOME}/polybar/scripts/update-count
|
||||||
|
|
||||||
format = <label>
|
format = <label>
|
||||||
label = %title%
|
label = %output%
|
||||||
label-maxlen = 50
|
|
||||||
|
interval = 60
|
||||||
|
|
||||||
|
click-left = xdg-open "https://www.archlinux.org/"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# G-Mail #
|
||||||
|
###############################################################################
|
||||||
|
[module/gmail]
|
||||||
|
type = custom/script
|
||||||
|
exec = ${XDG_CONFIG_HOME}/polybar/scripts/gmail/count.py
|
||||||
|
|
||||||
|
format = <label>
|
||||||
|
label = %output%
|
||||||
|
|
||||||
|
interval = 60
|
||||||
|
|
||||||
|
click-left = xdg-open https://mail.google.com
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
###############################################################################
|
||||||
# Battery indicator
|
# Todo #
|
||||||
#######################################
|
###############################################################################
|
||||||
|
[module/todo]
|
||||||
|
type = custom/script
|
||||||
|
exec = echo "$(${XDG_BIN_HOME}/todo | wc -l) / 3" | bc
|
||||||
|
|
||||||
|
format = <label>
|
||||||
|
label = %output%
|
||||||
|
|
||||||
|
interval = 60
|
||||||
|
|
||||||
|
click-left = xdg-open "https://todoist.com/"
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Battery indicator #
|
||||||
|
###############################################################################
|
||||||
[module/battery]
|
[module/battery]
|
||||||
type = internal/battery
|
type = internal/battery
|
||||||
full-at = 99
|
full-at = 99
|
||||||
|
@ -153,9 +186,9 @@ interval = 5
|
||||||
poll-interval = 5
|
poll-interval = 5
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
##############################################################################
|
||||||
# Volume indicator
|
# Volume indicator #
|
||||||
#######################################
|
##############################################################################
|
||||||
[module/volume]
|
[module/volume]
|
||||||
type = internal/pulseaudio
|
type = internal/pulseaudio
|
||||||
use-ui-max = true
|
use-ui-max = true
|
||||||
|
@ -173,9 +206,9 @@ ramp-volume-2 =
|
||||||
interval = 5
|
interval = 5
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
##############################################################################
|
||||||
# Brightness indicator
|
# Brightness indicator #
|
||||||
#######################################
|
##############################################################################
|
||||||
[module/backlight]
|
[module/backlight]
|
||||||
type = custom/script
|
type = custom/script
|
||||||
exec = light -G | cut -d. -f1
|
exec = light -G | cut -d. -f1
|
||||||
|
@ -189,9 +222,9 @@ scroll-up = light -A 5
|
||||||
scroll-down = light -U 5
|
scroll-down = light -U 5
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
##############################################################################
|
||||||
# WiFi indicator
|
# WiFi indicator #
|
||||||
#######################################
|
##############################################################################
|
||||||
[module/wlan]
|
[module/wlan]
|
||||||
type = internal/network
|
type = internal/network
|
||||||
interface = wlp3s0
|
interface = wlp3s0
|
||||||
|
@ -212,9 +245,9 @@ ramp-signal-foreground = ${settings.foreground-color}
|
||||||
interval = 1
|
interval = 1
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
##############################################################################
|
||||||
# Time and date
|
# Time and date #
|
||||||
#######################################
|
##############################################################################
|
||||||
[module/date]
|
[module/date]
|
||||||
type = custom/script
|
type = custom/script
|
||||||
exec = date +"%F %H:%M:%S"
|
exec = date +"%F %H:%M:%S"
|
||||||
|
@ -227,19 +260,14 @@ interval = 1
|
||||||
click-left = xdg-open "https://calendar.google.com"
|
click-left = xdg-open "https://calendar.google.com"
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
##############################################################################
|
||||||
# Power menu
|
# Power menu #
|
||||||
#######################################
|
##############################################################################
|
||||||
[module/power]
|
[module/power]
|
||||||
type = custom/script
|
type = custom/text
|
||||||
exec = echo -e "\uf011"
|
content =
|
||||||
|
|
||||||
format = <label>
|
click-left = $XDG_BIN_HOME/power
|
||||||
label = %output%
|
|
||||||
|
|
||||||
interval = 5
|
|
||||||
|
|
||||||
click-left = $XDG_BIN_HOME/power.sh
|
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
|
@ -247,7 +275,7 @@ click-left = $XDG_BIN_HOME/power.sh
|
||||||
#######################################
|
#######################################
|
||||||
[module/music]
|
[module/music]
|
||||||
type = custom/script
|
type = custom/script
|
||||||
exec = ${XDG_BIN_HOME}/music.sh
|
exec = ${XDG_BIN_HOME}/music
|
||||||
|
|
||||||
format = <label>
|
format = <label>
|
||||||
label = %output%
|
label = %output%
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# .config/polybar/launch.sh
|
# .config/polybar/launch
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
# This script kills existing polybar processes and then launches the bars.
|
# This script kills existing polybar processes and then launches the bars.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./launch.sh
|
# ./launch
|
||||||
|
|
||||||
# Terminate already running bar instances
|
# Terminate already running bar instances
|
||||||
killall -q polybar
|
killall -q polybar
|
28
system/.config/polybar/scripts/gmail/auth.py
Executable file
28
system/.config/polybar/scripts/gmail/auth.py
Executable file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
|
import pathlib
|
||||||
|
import httplib2
|
||||||
|
import webbrowser
|
||||||
|
from oauth2client import client, file
|
||||||
|
|
||||||
|
SCOPE = 'https://www.googleapis.com/auth/gmail.readonly'
|
||||||
|
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'
|
||||||
|
DIR = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
CLIENT_SECRETS_PATH = os.path.join(DIR, 'client_secrets.json')
|
||||||
|
CREDENTIALS_PATH = os.path.join(DIR, 'credentials.json')
|
||||||
|
storage = file.Storage(CREDENTIALS_PATH)
|
||||||
|
|
||||||
|
if pathlib.Path(CREDENTIALS_PATH).is_file():
|
||||||
|
credentials = storage.get()
|
||||||
|
credentials.refresh(httplib2.Http())
|
||||||
|
print('Credentials successfully refreshed')
|
||||||
|
else:
|
||||||
|
flow = client.flow_from_clientsecrets(CLIENT_SECRETS_PATH, scope=SCOPE,
|
||||||
|
redirect_uri=REDIRECT_URI)
|
||||||
|
auth_uri = flow.step1_get_authorize_url()
|
||||||
|
webbrowser.open(auth_uri)
|
||||||
|
auth_code = input('Enter the auth code: ')
|
||||||
|
credentials = flow.step2_exchange(auth_code)
|
||||||
|
storage.put(credentials)
|
||||||
|
print('Credentials successfully created')
|
11
system/.config/polybar/scripts/gmail/client_secrets.json
Normal file
11
system/.config/polybar/scripts/gmail/client_secrets.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"installed": {
|
||||||
|
"client_id": "1041679298587-8solnkr9tr8iktrut958if6tsgqt42m2.apps.googleusercontent.com",
|
||||||
|
"project_id": "polybar-gmail",
|
||||||
|
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||||
|
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
||||||
|
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||||
|
"client_secret": "-aZZAslLp6ydldCAFvH9AEwi",
|
||||||
|
"redirect_uris": ["urn:ietf:wg:oauth:2.0:oob"]
|
||||||
|
}
|
||||||
|
}
|
19
system/.config/polybar/scripts/gmail/count.py
Executable file
19
system/.config/polybar/scripts/gmail/count.py
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
|
import pathlib
|
||||||
|
import subprocess
|
||||||
|
import time
|
||||||
|
import argparse
|
||||||
|
from apiclient import discovery, errors
|
||||||
|
from oauth2client import client, file
|
||||||
|
from httplib2 import ServerNotFoundError
|
||||||
|
|
||||||
|
DIR = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
CREDENTIALS_PATH = os.path.join(DIR, 'credentials.json')
|
||||||
|
|
||||||
|
|
||||||
|
gmail = discovery.build(
|
||||||
|
'gmail', 'v1', credentials=file.Storage(CREDENTIALS_PATH).get())
|
||||||
|
labels = gmail.users().labels().get(userId='me', id='INBOX').execute()
|
||||||
|
print(labels['messagesUnread'])
|
17
system/.config/polybar/scripts/update-count
Executable file
17
system/.config/polybar/scripts/update-count
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# SCRIPT NAME:
|
||||||
|
# update-count
|
||||||
|
#
|
||||||
|
# AUTHOR:
|
||||||
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
#
|
||||||
|
# DESCRIPTION:
|
||||||
|
# Returns the outstanding system updates.
|
||||||
|
#
|
||||||
|
# USAGE:
|
||||||
|
# ./update-count
|
||||||
|
UPDATES=$(pacman -Qu | wc -l)
|
||||||
|
AUR_UPDATES=$(yay -Qua --devel | wc -l)
|
||||||
|
|
||||||
|
echo "${UPDATES} / ${AUR_UPDATES}"
|
15
system/.local/bin/cmus-cover
Executable file
15
system/.local/bin/cmus-cover
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# SCRIPT NAME:
|
||||||
|
# cmus-cover
|
||||||
|
#
|
||||||
|
# AUTHOR:
|
||||||
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
#
|
||||||
|
# DESCRIPTION:
|
||||||
|
# Saves the current cmus cover to a file.
|
||||||
|
#
|
||||||
|
# USAGE:
|
||||||
|
# ./cmus-cover
|
||||||
|
FILE="$(cmus-remote -Q | grep -e "file " | cut -d " " -f 2-)"
|
||||||
|
ffmpeg -y -i "${FILE}" -f image2 /home/severin/.local/share/cmus/.cover
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# games.sh
|
# games
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
# Displays a game menu using rofi.
|
# Displays a game menu using rofi.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./games.sh
|
# ./games
|
||||||
|
|
||||||
# The rofi prompt
|
# The rofi prompt
|
||||||
PROMPT="Games"
|
PROMPT="Games"
|
||||||
|
@ -19,7 +19,8 @@ PROMPT="Games"
|
||||||
ACTIONS=(
|
ACTIONS=(
|
||||||
"1: Steam"
|
"1: Steam"
|
||||||
"2: Guild Wars 2"
|
"2: Guild Wars 2"
|
||||||
"3: Pegasus"
|
"3: Minecraft"
|
||||||
|
"4: Pegasus"
|
||||||
)
|
)
|
||||||
|
|
||||||
SELECTION=$(printf '%s\n' "${ACTIONS[@]}" | rofi -dmenu -p "${PROMPT}" | cut -d ":" -f1)
|
SELECTION=$(printf '%s\n' "${ACTIONS[@]}" | rofi -dmenu -p "${PROMPT}" | cut -d ":" -f1)
|
||||||
|
@ -28,9 +29,12 @@ case "${SELECTION}" in
|
||||||
steam
|
steam
|
||||||
;;
|
;;
|
||||||
"2")
|
"2")
|
||||||
g2.sh
|
gw2
|
||||||
;;
|
;;
|
||||||
"3")
|
"3")
|
||||||
pegasus-fe
|
optirun -b primus minecraft-launcher
|
||||||
|
;;
|
||||||
|
"4")
|
||||||
|
optirun -b primus pegasus-fe
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# gw2.sh
|
# gw2
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
# Starts Guild Wars 2 inside Wine.
|
# Starts Guild Wars 2 inside Wine.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./gw2.sh
|
# ./gw2
|
||||||
# Set custom wineprefix
|
# Set custom wineprefix
|
||||||
export WINEPREFIX="${HOME}/Games/Guild_Wars_2/"
|
export WINEPREFIX="${HOME}/Games/Guild_Wars_2/"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# increase_volume.sh
|
# increase_volume
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
# using custom i3 keybindings.
|
# using custom i3 keybindings.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./increase_volume.sh
|
# ./increase_volume
|
||||||
if [[ $(pamixer --get-volume) -lt 150 ]]; then
|
if [[ $(pamixer --get-volume) -lt 150 ]]; then
|
||||||
pamixer -i 5 --allow-boost
|
pamixer -i 5 --allow-boost
|
||||||
fi
|
fi
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# music.sh
|
# music
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
# Prints out the title of the current playing song using cmus-remote.
|
# Prints out the title of the current playing song using cmus-remote.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./music.sh
|
# ./music
|
||||||
|
|
||||||
QUERY="$(cmus-remote -Q)"
|
QUERY="$(cmus-remote -Q)"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# power.sh
|
# power
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
# Displays a power menu using rofi.
|
# Displays a power menu using rofi.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./power.sh
|
# ./power
|
||||||
|
|
||||||
# The rofi prompt
|
# The rofi prompt
|
||||||
PROMPT="Power Options"
|
PROMPT="Power Options"
|
||||||
|
@ -33,13 +33,13 @@ case "${SELECTION}" in
|
||||||
systemctl poweroff
|
systemctl poweroff
|
||||||
;;
|
;;
|
||||||
"3")
|
"3")
|
||||||
screenlock.sh
|
screenlock
|
||||||
;;
|
;;
|
||||||
"5")
|
"4")
|
||||||
gksudo "cpupower frequency-set -g performance"
|
gksudo "cpupower frequency-set -g performance"
|
||||||
optirun -b primus nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=2' -c :8 > /dev/null
|
optirun -b primus nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=2' -c :8 > /dev/null
|
||||||
;;
|
;;
|
||||||
"6")
|
"5")
|
||||||
gksudo "cpupower frequency-set -g powersave"
|
gksudo "cpupower frequency-set -g powersave"
|
||||||
optirun -b primus nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=0' -c :8 > /dev/null
|
optirun -b primus nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=0' -c :8 > /dev/null
|
||||||
;;
|
;;
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# resolution.sh
|
# resolution
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -11,6 +11,6 @@
|
||||||
# is used by i3 and lightdm.
|
# is used by i3 and lightdm.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./resolution.sh
|
# ./resolution
|
||||||
#xrandr --setprovideroutputsource modesetting NVIDIA-0
|
#xrandr --setprovideroutputsource modesetting NVIDIA-0
|
||||||
xrandr --output HDMI3 --off --output HDMI2 --off --output HDMI-1 --mode 1280x1024 --pos 80x56 --rotate normal --output eDP-1 --primary --mode 1920x1080 --pos 1360x0 --rotate normal --output DP3 --off --output DP2 --off --output DP1 --off
|
xrandr --output HDMI3 --off --output HDMI2 --off --output HDMI-1 --mode 1280x1024 --pos 80x56 --rotate normal --output eDP-1 --primary --mode 1920x1080 --pos 1360x0 --rotate normal --output DP3 --off --output DP2 --off --output DP1 --off
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# screenlock.sh
|
# screenlock
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -11,5 +11,5 @@
|
||||||
# using a custom i3 keybinding.
|
# using a custom i3 keybinding.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./screenlock.sh
|
# ./screenlock
|
||||||
i3lock-fancy -f "Noto Sans"
|
i3lock-fancy -f "Noto Sans"
|
|
@ -1,23 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# SCRIPT NAME:
|
|
||||||
# server.sh
|
|
||||||
#
|
|
||||||
# AUTHOR:
|
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
|
||||||
#
|
|
||||||
# DESCRIPTION:
|
|
||||||
# This script starts / stops the Apache and MariaDB servers.
|
|
||||||
#
|
|
||||||
# USAGE:
|
|
||||||
# ./server.sh start|stop
|
|
||||||
if [ "${1}" == "start" ]; then
|
|
||||||
sudo systemctl start httpd.service
|
|
||||||
sudo systemctl start mariadb.service
|
|
||||||
elif [ "${1}" == "stop" ]; then
|
|
||||||
sudo systemctl stop httpd.service
|
|
||||||
sudo systemctl stop mariadb.service
|
|
||||||
else
|
|
||||||
echo "${1} is an unknown option"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# submodule_update.sh
|
# submodule_update
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -11,14 +11,13 @@
|
||||||
# new commit and pushes it. Only when there are no staged changes pending.
|
# new commit and pushes it. Only when there are no staged changes pending.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./submodule_update.sh
|
# ./submodule_update
|
||||||
. utils.sh
|
. utils
|
||||||
|
|
||||||
START_DIR=$(pwd)
|
START_DIR=$(pwd)
|
||||||
|
|
||||||
print_header "Updating submodules"
|
print_header "Updating submodules"
|
||||||
|
|
||||||
|
|
||||||
while IFS= read -r -d '' dir
|
while IFS= read -r -d '' dir
|
||||||
do
|
do
|
||||||
cd "$dir" || exit 1
|
cd "$dir" || exit 1
|
22
system/.local/bin/sync_notes
Executable file
22
system/.local/bin/sync_notes
Executable file
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# SCRIPT NAME:
|
||||||
|
# sync_notes
|
||||||
|
#
|
||||||
|
# AUTHOR:
|
||||||
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
#
|
||||||
|
# DESCRIPTION:
|
||||||
|
# Sync notes in ~/Notes using git
|
||||||
|
#
|
||||||
|
# USAGE:
|
||||||
|
# ./sync_notes
|
||||||
|
. /home/severin/.local/bin/utils
|
||||||
|
|
||||||
|
print_time_log "sync_notes" "Synchronizing notes"
|
||||||
|
|
||||||
|
cd "/home/severin/Notes" || exit
|
||||||
|
git pull > /dev/null 2>&1
|
||||||
|
git add --all > /dev/null 2>&1
|
||||||
|
git commit -s -m "Update notes" > /dev/null 2>&1
|
||||||
|
git push origin master > /dev/null 2>&1
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# SCRIPT NAME:
|
|
||||||
# sync_notes.sh
|
|
||||||
#
|
|
||||||
# AUTHOR:
|
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
|
||||||
#
|
|
||||||
# DESCRIPTION:
|
|
||||||
# Sync notes in ~/Notes using git
|
|
||||||
#
|
|
||||||
# USAGE:
|
|
||||||
# ./sync_notes.sh
|
|
||||||
# Set custom wineprefix
|
|
||||||
cd "/home/severin/Notes" || exit
|
|
||||||
git pull
|
|
||||||
git add --all
|
|
||||||
git commit -s -m "Update notes"
|
|
||||||
git push origin master
|
|
17
system/.local/bin/sync_package_databases
Executable file
17
system/.local/bin/sync_package_databases
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# SCRIPT NAME:
|
||||||
|
# sync_package_databases
|
||||||
|
#
|
||||||
|
# AUTHOR:
|
||||||
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
#
|
||||||
|
# DESCRIPTION:
|
||||||
|
# Syncs the package database of pacman
|
||||||
|
#
|
||||||
|
# USAGE:
|
||||||
|
# ./sync_package_databases
|
||||||
|
. /home/severin/.local/bin/utils
|
||||||
|
|
||||||
|
print_time_log "sync_package_databases" "Syncing databases"
|
||||||
|
yay -Syy > /dev/null 2>&1
|
33
system/.local/bin/todo
Executable file
33
system/.local/bin/todo
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# SCRIPT NAME:
|
||||||
|
# todo
|
||||||
|
#
|
||||||
|
# AUTHOR:
|
||||||
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
#
|
||||||
|
# DESCRIPTION:
|
||||||
|
# Lists the TODOs.
|
||||||
|
#
|
||||||
|
# USAGE:
|
||||||
|
# ./todo
|
||||||
|
clear
|
||||||
|
|
||||||
|
while read -r line
|
||||||
|
do
|
||||||
|
task=$(echo "${line}" | cut -d "," -f 6)
|
||||||
|
project=$(echo "${line}" | cut -d "," -f 4 | sed -e "s/^#//")
|
||||||
|
datetime=$(echo "${line}" | cut -d "," -f 3)
|
||||||
|
echo -e "[${datetime}][${project}]\n☐ ${task}\n"
|
||||||
|
done <<< "$(todoist s && todoist --csv list --filter "(overdue | today)")"
|
||||||
|
|
||||||
|
|
||||||
|
TODOS=$(rg -g "!todo" --hidden --no-heading -n "TODO:" "${HOME}/dotfiles" "${HOME}/Projects")
|
||||||
|
if [ -n "${TODOS}" ]; then
|
||||||
|
while read -r line; do
|
||||||
|
file=$(echo "${line}" | cut -d ":" -f 1 | sed -e "s/^[[:space:]]*//")
|
||||||
|
lineNumber=$(echo "${line}" | cut -d ":" -f 2 | sed -e "s/^[[:space:]]*//")
|
||||||
|
task=$(echo "${line}" | cut -d ":" -f 4 | sed -e "s/^[[:space:]]*//")
|
||||||
|
echo -e "[Line ${lineNumber}][${file}]\n☐ ${task}\n"
|
||||||
|
done <<< "${TODOS}"
|
||||||
|
fi
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# twitch.sh
|
# twitch
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
# using streamlink.
|
# using streamlink.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./twitch.sh USERNAME [RESOLUTION]
|
# ./twitch USERNAME [RESOLUTION]
|
||||||
if [[ -z $1 ]]; then
|
if [[ -z $1 ]]; then
|
||||||
echo "Please enter a username!"
|
echo "Please enter a username!"
|
||||||
exit 1
|
exit 1
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# upgrade.sh
|
# upgrade
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -11,8 +11,8 @@
|
||||||
# npm packages.
|
# npm packages.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./upgrade.sh
|
# ./upgrade
|
||||||
. utils.sh
|
. utils
|
||||||
|
|
||||||
print_header "Upgrading system"
|
print_header "Upgrading system"
|
||||||
print_section "Update arch packages"
|
print_section "Update arch packages"
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# utils.sh
|
# utils
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -39,12 +39,18 @@ function print_header() {
|
||||||
echo -e "╚══════════════════════════════════════════════════════════════════════════════╝${RESET}"
|
echo -e "╚══════════════════════════════════════════════════════════════════════════════╝${RESET}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to print out a log entry together with the current date and time.
|
||||||
|
# USAGE: print_time_log SCRIPT MESSAGE
|
||||||
|
function print_time_log() {
|
||||||
|
echo -e "[$(date "+%F %T")][${1}] ${2}"
|
||||||
|
}
|
||||||
|
|
||||||
# Function to print a info message with the current time and to send
|
# Function to print a info message with the current time and to send
|
||||||
# a notification using notify-send.
|
# a notification using notify-send.
|
||||||
# USAGE: print_notify TITLE MESSAGE
|
# USAGE: print_notify TITLE MESSAGE
|
||||||
function print_notify() {
|
function print_notify() {
|
||||||
notify-send "${1}" "${2}"
|
notify-send "${1}" "${2}"
|
||||||
echo -e "${YELLOW}[$(date "+%H:%M:%S")] ${1} ${2}${RESET}"
|
echo -e "${YELLOW}[$(date "+%T")] ${1} ${2}${RESET}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Prints a section title.
|
# Prints a section title.
|
||||||
|
@ -103,3 +109,15 @@ function copy_udev_rule() {
|
||||||
print_log "Copying ${YELLOW}$(basename "${1}")${RESET} to ${YELLOW}/etc/udev/rules.d/${RESET}"
|
print_log "Copying ${YELLOW}$(basename "${1}")${RESET} to ${YELLOW}/etc/udev/rules.d/${RESET}"
|
||||||
sudo cp "${1}" "/etc/udev/rules.d/"
|
sudo cp "${1}" "/etc/udev/rules.d/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to copy sudoers files to /etc/sudoers.d/
|
||||||
|
# USAGE: copy_sudoers_content FILE
|
||||||
|
function copy_sudoers_content() {
|
||||||
|
print_log "Copying ${YELLOW}$(basename "${1}")${RESET} to ${YELLOW}/etc/sudoers.d/${RESET}"
|
||||||
|
|
||||||
|
sudo mkdir -p "/tmp/sudoers"
|
||||||
|
sudo cp "${1}" "/tmp/sudoers/$(basename "${1}")"
|
||||||
|
sudo chmod 0440 "/tmp/sudoers/$(basename "${1}")"
|
||||||
|
sudo cp -a "/tmp/sudoers/$(basename "${1}")" "/etc/sudoers.d/"
|
||||||
|
|
||||||
|
}
|
20
system/.local/bin/wallpaper
Executable file
20
system/.local/bin/wallpaper
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# SCRIPT NAME:
|
||||||
|
# wallpaper
|
||||||
|
#
|
||||||
|
# AUTHOR:
|
||||||
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
#
|
||||||
|
# DESCRIPTION:
|
||||||
|
# Sets the wallpaper using feh
|
||||||
|
#
|
||||||
|
# USAGE:
|
||||||
|
# ./wallpaper
|
||||||
|
. /home/severin/.local/bin/utils
|
||||||
|
|
||||||
|
print_time_log "wallpaper" "Changing wallpaper"
|
||||||
|
|
||||||
|
# When run from a cronjob the DISPLAY environment variable is not set
|
||||||
|
|
||||||
|
DISPLAY=:0 feh --randomize --bg-fill --no-fehbg "/home/severin/Documents/02_Media/Images/01_Wallpaper/Desktop/"
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# SCRIPT NAME:
|
# SCRIPT NAME:
|
||||||
# watch.sh
|
# watch-file
|
||||||
#
|
#
|
||||||
# AUTHOR:
|
# AUTHOR:
|
||||||
# Severin Kaderli <severin.kaderli@gmail.com>
|
# Severin Kaderli <severin.kaderli@gmail.com>
|
||||||
|
@ -11,8 +11,8 @@
|
||||||
# executes the given command.
|
# executes the given command.
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./watch.sh FILE COMMAND...
|
# ./watch-file FILE COMMAND...
|
||||||
. utils.sh
|
. utils
|
||||||
|
|
||||||
# The file to watch
|
# The file to watch
|
||||||
FILE="${1}"
|
FILE="${1}"
|
2
system/etc/sudoers.d/severin
Normal file
2
system/etc/sudoers.d/severin
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Privilege specification for user severin
|
||||||
|
severin ALL=(ALL:ALL) NOPASSWD:/home/severin/.local/bin/sync_package_databases
|
Loading…
Add table
Add a link
Reference in a new issue