Compare commits
61 Commits
master
...
2018e47525
| Author | SHA1 | Date | |
|---|---|---|---|
| 2018e47525 | |||
| d946aa4b4c | |||
| 408595d7e1 | |||
| b924e780c3 | |||
| e3158e02e4 | |||
| a706259322 | |||
| 20f7fe43d2 | |||
| b678d929ff | |||
| 9e5d3c5262 | |||
| cad6720173 | |||
| 0866a310cc | |||
|
|
a35d7d78e1 | ||
| 2128028113 | |||
| cc6a0673b9 | |||
| c859f7f76c | |||
| 1907fb2547 | |||
| 7b20ee2875 | |||
| 513e401099 | |||
| 1b22fe6116 | |||
| c6a056b77c | |||
| 236954d557 | |||
| f1c9e4a6f3 | |||
| c12185af79 | |||
| 57d3c570c0 | |||
| 8d3a4ff778 | |||
| ffb295d858 | |||
| fb3c3d8c19 | |||
| 41abaf2533 | |||
| b83ced88a5 | |||
| 9723753b5b | |||
| d2d2ddace4 | |||
|
|
eb31b393e9 | ||
| d74d7866ff | |||
| 75fdf52586 | |||
|
|
bdb0fd00bd | ||
|
|
2ae40edccc | ||
| 825ff4e770 | |||
| 2b9d974659 | |||
| 2895c33fbc | |||
| 5c3cf1b887 | |||
| a0968ba34a | |||
| 71a0886d46 | |||
|
|
83c9d72afe | ||
|
|
39b45df38e | ||
|
|
55477c5919 | ||
|
|
fd2a274668 | ||
|
|
613f249f64 | ||
|
|
9ac25a152d | ||
|
|
735568adfa | ||
|
|
5a803a578b | ||
|
|
818ac7ef8c | ||
|
|
c22d769ab5 | ||
|
|
96765dbf76 | ||
|
|
6f2e7d20b4 | ||
|
|
b742d63193 | ||
|
|
d78ba65063 | ||
|
|
7231b614fa | ||
|
|
f174a4e558 | ||
|
|
8c18407688 | ||
|
|
a396c0c739 | ||
|
|
d6ecdeb796 |
@@ -13,6 +13,7 @@ users:
|
|||||||
mail: hannes@hkoerber.de
|
mail: hannes@hkoerber.de
|
||||||
git_gpg_sign: false
|
git_gpg_sign: false
|
||||||
gpg_agent: true
|
gpg_agent: true
|
||||||
|
gpg_agent_for_ssh: true
|
||||||
gpg_keys:
|
gpg_keys:
|
||||||
master_key: "0xB5C002530C6A2053"
|
master_key: "0xB5C002530C6A2053"
|
||||||
environment:
|
environment:
|
||||||
@@ -30,6 +31,8 @@ screen:
|
|||||||
9: DisplayPort-0
|
9: DisplayPort-0
|
||||||
0: DisplayPort-0
|
0: DisplayPort-0
|
||||||
|
|
||||||
|
screencfgs: []
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
@@ -39,6 +42,6 @@ environment:
|
|||||||
MACHINE_HAS_STEAM: "true"
|
MACHINE_HAS_STEAM: "true"
|
||||||
MACHINE_HAS_DISCORD: "true"
|
MACHINE_HAS_DISCORD: "true"
|
||||||
MACHINE_HAS_RESTIC_BACKUP: "false"
|
MACHINE_HAS_RESTIC_BACKUP: "false"
|
||||||
MACHINE_DEFAULT_SCREENPROFILE: "ares"
|
MACHINE_HAS_ELEMENT: "true"
|
||||||
MACHINE_RESOLUTION_X: "2560"
|
MACHINE_RESOLUTION_X: "2560"
|
||||||
MACHINE_RESOLUTION_Y: "1440"
|
MACHINE_RESOLUTION_Y: "1440"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
font_size: 11
|
font_size: 11
|
||||||
letter_space: 0
|
letter_space: 0
|
||||||
terminal_binary: urxvt
|
terminal_binary: alacritty
|
||||||
|
|
||||||
users:
|
users:
|
||||||
- name: hannes-work
|
- name: hannes-work
|
||||||
@@ -12,18 +12,24 @@ users:
|
|||||||
mail: hannes.koerber@tradebyte.com
|
mail: hannes.koerber@tradebyte.com
|
||||||
git_gpg_sign: false
|
git_gpg_sign: false
|
||||||
gpg_agent: false
|
gpg_agent: false
|
||||||
|
gpg_agent_for_ssh: false
|
||||||
environment:
|
environment:
|
||||||
MACHINE_HAS_NEXTCLOUD: "false"
|
MACHINE_HAS_NEXTCLOUD: "false"
|
||||||
|
MACHINE_HAS_RESTIC_BACKUP: "true"
|
||||||
|
MACHINE_HAS_ELEMENT: "false"
|
||||||
- name: hannes-private
|
- name: hannes-private
|
||||||
group: tpp
|
group: tpp
|
||||||
vt: 2
|
vt: 2
|
||||||
mail: hannes@hkoerber.de
|
mail: hannes@hkoerber.de
|
||||||
git_gpg_sign: false
|
git_gpg_sign: false
|
||||||
gpg_agent: true
|
gpg_agent: true
|
||||||
|
gpg_agent_for_ssh: true
|
||||||
gpg_keys:
|
gpg_keys:
|
||||||
master_key: "0xB5C002530C6A2053"
|
master_key: "0xB5C002530C6A2053"
|
||||||
environment:
|
environment:
|
||||||
MACHINE_HAS_NEXTCLOUD: "true"
|
MACHINE_HAS_NEXTCLOUD: "true"
|
||||||
|
MACHINE_HAS_RESTIC_BACKUP: "false"
|
||||||
|
MACHINE_HAS_ELEMENT: "true"
|
||||||
|
|
||||||
screen:
|
screen:
|
||||||
1: DP-1-1
|
1: DP-1-1
|
||||||
@@ -47,9 +53,12 @@ workspace:
|
|||||||
9: music
|
9: music
|
||||||
10: pim
|
10: pim
|
||||||
|
|
||||||
|
screencfgs:
|
||||||
|
- name: three-screens
|
||||||
|
key: F3
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
MACHINE_TYPE: "laptop"
|
MACHINE_TYPE: "laptop"
|
||||||
MACHINE_HAS_KEEPASSX: "true"
|
MACHINE_HAS_KEEPASSX: "true"
|
||||||
MACHINE_HAS_RESTIC_BACKUP: "true"
|
|
||||||
MACHINE_RESOLUTION_X: "1920"
|
MACHINE_RESOLUTION_X: "1920"
|
||||||
MACHINE_RESOLUTION_Y: "1080"
|
MACHINE_RESOLUTION_Y: "1080"
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ window:
|
|||||||
#title: Alacritty
|
#title: Alacritty
|
||||||
|
|
||||||
# Allow terminal applications to change Alacritty's window title.
|
# Allow terminal applications to change Alacritty's window title.
|
||||||
#dynamic_title: true
|
dynamic_title: true
|
||||||
|
|
||||||
# Window class (Linux/BSD only):
|
# Window class (Linux/BSD only):
|
||||||
#class:
|
#class:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ Wants=blueman.service
|
|||||||
Wants=discord.service
|
Wants=discord.service
|
||||||
Wants=dpms.service
|
Wants=dpms.service
|
||||||
Wants=dunst.service
|
Wants=dunst.service
|
||||||
|
Wants=element.service
|
||||||
Wants=firefox.service
|
Wants=firefox.service
|
||||||
Wants=gpg-agent.service
|
Wants=gpg-agent.service
|
||||||
Wants=gnome-keyring.service
|
Wants=gnome-keyring.service
|
||||||
@@ -18,6 +19,7 @@ Wants=pasystray.service
|
|||||||
Wants=redshift.service
|
Wants=redshift.service
|
||||||
Wants=restic.timer
|
Wants=restic.timer
|
||||||
Wants=screencfg.service
|
Wants=screencfg.service
|
||||||
|
Wants=signal.service
|
||||||
Wants=spotify.service
|
Wants=spotify.service
|
||||||
Wants=steam.service
|
Wants=steam.service
|
||||||
Wants=touchpad.service
|
Wants=touchpad.service
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/blueman-applet
|
ExecStart=/usr/bin/env blueman-applet
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
BindsTo=autostart.target
|
BindsTo=autostart.target
|
||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
ConditionEnvironment=MACHINE_HAS_DISCORD=true
|
ConditionPathExists=%h/.var/run/features/discord
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/discord
|
ExecStart=/usr/bin/env discord
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -4,5 +4,6 @@ After=windowmanager.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=xset s off
|
ExecStart=/usr/bin/env xset s off
|
||||||
ExecStart=xset dpms 0 0 300
|
ExecStart=/usr/bin/env xset dpms 0 0 300
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/dunst -config %h/.config/dunstrc
|
ExecStart=/usr/bin/env dunst -config %h/.config/dunstrc
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
10
autostart/services/element.service
Normal file
10
autostart/services/element.service
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
BindsTo=autostart.target
|
||||||
|
After=windowmanager.target
|
||||||
|
After=i3.service
|
||||||
|
|
||||||
|
ConditionPathExists=%h/.var/run/features/element
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/env element-desktop
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/firefox --setDefaultBrowser -P default
|
ExecStart=/usr/bin/env firefox --setDefaultBrowser -P default
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -4,3 +4,4 @@ After=windowmanager.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/env gnome-keyring-daemon --start --foreground --components secrets
|
ExecStart=/usr/bin/env gnome-keyring-daemon --start --foreground --components secrets
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ After=windowmanager.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=forking
|
||||||
ExecStart=/usr/bin/gpg-agent --homedir %h/.gnupg --no-detach --daemon
|
ExecStart=/usr/bin/env gpg-agent --homedir %h/.gnupg --no-detach --daemon
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
[Service]
|
[Service]
|
||||||
Type=exec
|
Type=simple
|
||||||
ExecStart=i3 --config %h/.i3/config
|
ExecStart=/usr/bin/env i3 --config %h/.i3/config
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|
||||||
Restart=no
|
Restart=no
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
BindsTo=autostart.target
|
BindsTo=autostart.target
|
||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
ConditionEnvironment=MACHINE_HAS_KEEPASSX=true
|
ConditionPathExists=%h/.var/run/features/keepassx
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/keepassx --keyfile %h/.secret/main.key %h/.secret/main.kdbx
|
ExecStart=/usr/bin/env keepassx --keyfile %h/.secret/main.key %h/.secret/main.kdbx
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ After=windowmanager.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/setxkbmap -layout de -variant nodeadkeys
|
ExecStart=/usr/bin/env setxkbmap -layout de -variant nodeadkeys
|
||||||
ExecStart=/usr/bin/xset r rate 150 50
|
ExecStart=/usr/bin/env xset r rate 150 50
|
||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
BindsTo=autostart.target
|
BindsTo=autostart.target
|
||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
ConditionPathExists=%h/.var/run/features/machine_is_laptop
|
||||||
ConditionEnvironment=MACHINE_TYPE=laptop
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/bash -c 'grep "^${ACPI_LID_NAME}.*enabled" /proc/acpi/wakeup && echo " ${ACPI_LID_NAME}" | sudo tee /proc/acpi/wakeup'
|
ExecStart=/usr/bin/env bash -c 'grep "^${ACPI_LID_NAME}.*enabled" /proc/acpi/wakeup && echo " ${ACPI_LID_NAME}" | sudo tee /proc/acpi/wakeup'
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,7 +3,11 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
After=gnome-keyring.service
|
After=gnome-keyring.service
|
||||||
|
|
||||||
ConditionEnvironment=MACHINE_HAS_NEXTCLOUD=true
|
ConditionPathExists=%h/.var/run/features/nextcloud
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/nextcloud --background
|
ExecStart=/usr/bin/env nextcloud --background
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|
||||||
|
MemoryHigh=20%
|
||||||
|
MemoryMax=30%
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/nm-applet
|
ExecStart=/usr/bin/env nm-applet
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/pasystray
|
ExecStart=/usr/bin/env pasystray
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/redshift-gtk -c %h/.config/redshift.conf
|
ExecStart=/usr/bin/env redshift-gtk -c %h/.config/redshift.conf
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
ConditionEnvironment=MACHINE_HAS_RESTIC_BACKUP=true
|
ConditionPathExists=%h/.var/run/features/restic_backup
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=%h/bin/restic-backup
|
ExecStart=%h/bin/restic-backup
|
||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,6 +3,4 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Timer]
|
[Timer]
|
||||||
OnCalendar=Mon..Fri 09:00:00
|
|
||||||
OnCalendar=Mon..Fri 12:00:00
|
OnCalendar=Mon..Fri 12:00:00
|
||||||
OnCalendar=Mon..Fri 16:00:00
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
BindsTo=autostart.target
|
BindsTo=autostart.target
|
||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
ConditionEnvironment=MACHINE_DEFAULT_SCREENPROFILE
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
@@ -9,5 +8,6 @@ Type=oneshot
|
|||||||
|
|
||||||
# > The command to execute may contain spaces, but control characters are not
|
# > The command to execute may contain spaces, but control characters are not
|
||||||
# > allowed.
|
# > allowed.
|
||||||
ExecStart=bash -c '%h/.screencfg/${MACHINE_DEFAULT_SCREENPROFILE}.sh'
|
ExecStart=/usr/bin/env screencfg "%h/.screencfg/%H/default.yml"
|
||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
7
autostart/services/signal.service
Normal file
7
autostart/services/signal.service
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[Unit]
|
||||||
|
BindsTo=autostart.target
|
||||||
|
After=windowmanager.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/env signal-desktop
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/spotify
|
ExecStart=/usr/bin/env spotify
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
After=i3.service
|
After=i3.service
|
||||||
|
|
||||||
ConditionEnvironment=MACHINE_HAS_STEAM=true
|
ConditionPathExists=%h/.var/run/features/steam
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/steam
|
ExecStart=/usr/bin/env steam
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
BindsTo=autostart.target
|
BindsTo=autostart.target
|
||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
ConditionEnvironment=MACHINE_TYPE=laptop
|
ConditionPathExists=%h/.var/run/features/machine_is_laptop
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/synclient VertEdgeScroll=0
|
ExecStart=/usr/bin/env synclient VertEdgeScroll=0
|
||||||
ExecStart=/usr/bin/synclient VertTwoFingerScroll=1
|
ExecStart=/usr/bin/env synclient VertTwoFingerScroll=1
|
||||||
ExecStart=/usr/bin/synclient MaxSpeed=2.2
|
ExecStart=/usr/bin/env synclient MaxSpeed=2.2
|
||||||
ExecStart=/usr/bin/synclient AccelFactor=0.08
|
ExecStart=/usr/bin/env synclient AccelFactor=0.08
|
||||||
ExecStart=/usr/bin/synclient TapButton1=1
|
ExecStart=/usr/bin/env synclient TapButton1=1
|
||||||
ExecStart=/usr/bin/synclient CoastingSpeed=0
|
ExecStart=/usr/bin/env synclient CoastingSpeed=0
|
||||||
ExecStart=/usr/bin/synclient PalmDetect=1
|
ExecStart=/usr/bin/env synclient PalmDetect=1
|
||||||
ExecStart=/usr/bin/synclient PalmMinWidth=20
|
ExecStart=/usr/bin/env synclient PalmMinWidth=20
|
||||||
ExecStart=/usr/bin/synclient PalmMinZ=1
|
ExecStart=/usr/bin/env synclient PalmMinZ=1
|
||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/setrandom --recursive --onlylarge --mode=stretch /usr/share/wallpapers
|
ExecStart=/usr/bin/env setrandom --recursive --onlylarge --mode=stretch /usr/share/wallpapers
|
||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -4,5 +4,6 @@ After=windowmanager.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/xrdb -merge -I%h %h/.Xresources
|
ExecStart=/usr/bin/env xrdb -merge -I%h %h/.Xresources
|
||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ BindsTo=autostart.target
|
|||||||
After=windowmanager.target
|
After=windowmanager.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/yubikey-touch-detector -libnotify
|
ExecStart=/usr/bin/env yubikey-touch-detector -libnotify
|
||||||
|
PassEnvironment=DISPLAY
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ args = parser.parse_args()
|
|||||||
config_path = args.config
|
config_path = args.config
|
||||||
|
|
||||||
try:
|
try:
|
||||||
config = yaml.load(open(config_path))
|
config = yaml.safe_load(open(config_path))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
fail("File {0} not found".format(config_path))
|
fail("File {0} not found".format(config_path))
|
||||||
|
|
||||||
@@ -54,6 +54,8 @@ for output in config['outputs']:
|
|||||||
# cmd.append('--auto')
|
# cmd.append('--auto')
|
||||||
for k, v in output['opts'].items():
|
for k, v in output['opts'].items():
|
||||||
cmd.extend(['--{}'.format(k), str(v)])
|
cmd.extend(['--{}'.format(k), str(v)])
|
||||||
|
for k,v in output.get('set', {}).items():
|
||||||
|
cmd.extend(['--set', k, v])
|
||||||
|
|
||||||
run(cmd)
|
run(cmd)
|
||||||
run(['i3-msg', 'restart'])
|
run(['i3-msg', 'restart'])
|
||||||
|
|||||||
19
detect-missing-packages.py
Executable file
19
detect-missing-packages.py
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
from pprint import pprint
|
||||||
|
|
||||||
|
package_file = "./packages.yml"
|
||||||
|
|
||||||
|
apps = yaml.safe_load(open(package_file, 'r'))
|
||||||
|
|
||||||
|
missing_config = {}
|
||||||
|
|
||||||
|
for appname, appconfig in apps['packages']['list'].items():
|
||||||
|
for distro, packagelist in appconfig.items():
|
||||||
|
if len(packagelist) == 0:
|
||||||
|
if distro not in missing_config.keys():
|
||||||
|
missing_config[distro] = []
|
||||||
|
missing_config[distro].append(appname)
|
||||||
|
|
||||||
|
print(yaml.dump(missing_config))
|
||||||
@@ -14,6 +14,7 @@ dotfiles:
|
|||||||
to: .gnupg/dirmngr.conf
|
to: .gnupg/dirmngr.conf
|
||||||
- from: gnupg/gpg-agent.conf
|
- from: gnupg/gpg-agent.conf
|
||||||
to: .gnupg/gpg-agent.conf
|
to: .gnupg/gpg-agent.conf
|
||||||
|
template: true
|
||||||
- from: gnupg/gpg.conf
|
- from: gnupg/gpg.conf
|
||||||
to: .gnupg/gpg.conf
|
to: .gnupg/gpg.conf
|
||||||
template: true
|
template: true
|
||||||
@@ -60,8 +61,10 @@ dotfiles:
|
|||||||
to: .config/rofi/config
|
to: .config/rofi/config
|
||||||
- from: gtk/gtk-3.0.ini
|
- from: gtk/gtk-3.0.ini
|
||||||
to: .config/gtk-3.0/settings.ini
|
to: .config/gtk-3.0/settings.ini
|
||||||
|
template: true
|
||||||
- from: gtk/gtkrc-2.0
|
- from: gtk/gtkrc-2.0
|
||||||
to: .gtkrc-2.0
|
to: .gtkrc-2.0
|
||||||
|
template: true
|
||||||
- from: qt/qt5ct.conf
|
- from: qt/qt5ct.conf
|
||||||
to: .config/qt5ct/qt5ct.conf
|
to: .config/qt5ct/qt5ct.conf
|
||||||
- from: screencfg
|
- from: screencfg
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
# the top and down respectively.
|
# the top and down respectively.
|
||||||
# The width can be negative. In this case the actual width is the
|
# The width can be negative. In this case the actual width is the
|
||||||
# screen width minus the width defined in within the geometry option.
|
# screen width minus the width defined in within the geometry option.
|
||||||
geometry = "300x10-20+20"
|
geometry = "300x10-20-40"
|
||||||
|
|
||||||
# Show how many messages are currently hidden (because of geometry).
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
indicate_hidden = yes
|
indicate_hidden = yes
|
||||||
|
|||||||
@@ -113,6 +113,7 @@
|
|||||||
requireForce = true
|
requireForce = true
|
||||||
[pull]
|
[pull]
|
||||||
rebase = true
|
rebase = true
|
||||||
|
ff = only
|
||||||
|
|
||||||
[url "ssh://git@code.hkoerber.de:2222/"]
|
[url "ssh://git@code.hkoerber.de:2222/"]
|
||||||
insteadOf = https://code.hkoerber.de/
|
insteadOf = https://code.hkoerber.de/
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ default-cache-ttl-ssh 60480000
|
|||||||
max-cache-ttl 34560000
|
max-cache-ttl 34560000
|
||||||
max-cache-ttl-ssh 34560000
|
max-cache-ttl-ssh 34560000
|
||||||
|
|
||||||
|
{% if user.gpg_agent_for_ssh %}
|
||||||
enable-ssh-support
|
enable-ssh-support
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
pinentry-program /usr/bin/pinentry-qt
|
pinentry-program /usr/bin/pinentry-qt
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-theme-name=Breeze
|
gtk-theme-name=Breeze
|
||||||
gtk-icon-theme-name=breeze-dark
|
gtk-icon-theme-name=breeze-dark
|
||||||
gtk-font-name=Cantarell 11
|
gtk-font-name=DejaVu Sans {{ machine.font_size|int - 2 }}
|
||||||
gtk-cursor-theme-name=breeze_cursors
|
gtk-cursor-theme-name=breeze_cursors
|
||||||
gtk-cursor-theme-size=0
|
gtk-cursor-theme-size=0
|
||||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
||||||
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||||
|
|
||||||
include "/home/hannes/.gtkrc-2.0.mine"
|
|
||||||
gtk-theme-name="Breeze"
|
gtk-theme-name="Breeze"
|
||||||
gtk-icon-theme-name="breeze-dark"
|
gtk-icon-theme-name="breeze-dark"
|
||||||
gtk-font-name="Cantarell 11"
|
gtk-font-name="DejaVu Sans {{ machine.font_size|int - 2 }}"
|
||||||
gtk-cursor-theme-name="breeze_cursors"
|
gtk-cursor-theme-name="breeze_cursors"
|
||||||
gtk-cursor-theme-size=0
|
gtk-cursor-theme-size=0
|
||||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||||
20
i3/config.j2
20
i3/config.j2
@@ -77,8 +77,8 @@
|
|||||||
set $focus_parent q
|
set $focus_parent q
|
||||||
set $focus_child a
|
set $focus_child a
|
||||||
|
|
||||||
set $floating_toggle Shift+space
|
set $floating_toggle Shift+p
|
||||||
set $focus_mode_toggle space
|
set $focus_mode_toggle p
|
||||||
|
|
||||||
set $prev_on_output u
|
set $prev_on_output u
|
||||||
set $next_on_output i
|
set $next_on_output i
|
||||||
@@ -93,6 +93,8 @@
|
|||||||
|
|
||||||
set $kill Shift+Q
|
set $kill Shift+Q
|
||||||
|
|
||||||
|
set $screenshot p
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
### WORKSPACE ASSIGNMENTS ######################################################
|
### WORKSPACE ASSIGNMENTS ######################################################
|
||||||
@@ -120,6 +122,7 @@ assign [class="^Google-chrome$"] $workspace7
|
|||||||
assign [class="^Chromium$"] $workspace7
|
assign [class="^Chromium$"] $workspace7
|
||||||
assign [class="^discord"] $workspace7
|
assign [class="^discord"] $workspace7
|
||||||
assign [class="^Steam"] $workspace5
|
assign [class="^Steam"] $workspace5
|
||||||
|
for_window [class="^Steam$"] move to workspace $workspace5
|
||||||
|
|
||||||
assign [class="^dota2$"] $workspace10
|
assign [class="^dota2$"] $workspace10
|
||||||
assign [class="^Wine$"] $workspace10
|
assign [class="^Wine$"] $workspace10
|
||||||
@@ -212,11 +215,16 @@ assign [class="^Wine$"] $workspace10
|
|||||||
bindsym F2 exec --no-startup-id ~/.i3/scripts/screenmenu
|
bindsym F2 exec --no-startup-id ~/.i3/scripts/screenmenu
|
||||||
|
|
||||||
bindsym $mod+F1 exec --no-startup-id ~/.i3/scripts/i3exit lock
|
bindsym $mod+F1 exec --no-startup-id ~/.i3/scripts/i3exit lock
|
||||||
bindsym $mod+F2 exec --no-startup-id screencfg ~/.screencfg/all.yml ; exec systemctl --user restart keyboard.service
|
bindsym $mod+F2 exec --no-startup-id screencfg ~/.screencfg/{{ ansible_hostname }}/default.yml ; exec systemctl --user restart keyboard.service
|
||||||
bindsym $mod+F3 exec --no-startup-id screencfg ~/.screencfg/laptop.yml ; exec systemctl --user restart keyboard.service
|
{% for screencfg in machine.screencfgs -%}
|
||||||
|
bindsym $mod+{{ screencfg.key }} exec --no-startup-id screencfg ~/.screencfg/{{ ansible_hostname }}/{{ screencfg.name }}.yml ; exec systemctl --user restart keyboard.service
|
||||||
|
{% endfor -%}
|
||||||
bindsym $mod+F4 exec --no-startup-id ~/.i3/scripts/i3exit suspend
|
bindsym $mod+F4 exec --no-startup-id ~/.i3/scripts/i3exit suspend
|
||||||
bindsym $mod+Home exec --no-startup-id ~/.i3/scripts/shutdown-menu
|
bindsym $mod+Home exec --no-startup-id ~/.i3/scripts/shutdown-menu
|
||||||
|
|
||||||
|
bindsym $mod+$screenshot exec --no-startup-id sh -c 'maim | xclip -selection clipboard -t image/png'
|
||||||
|
bindsym $mod+Shift+$screenshot exec --no-startup-id sh -c 'maim --select | xclip -selection clipboard -t image/png'
|
||||||
|
|
||||||
bindsym $mod+Shift+v exec --no-startup-id redshift-toggle
|
bindsym $mod+Shift+v exec --no-startup-id redshift-toggle
|
||||||
|
|
||||||
bindsym $mod+Shift+$scratchpad move scratchpad
|
bindsym $mod+Shift+$scratchpad move scratchpad
|
||||||
@@ -336,10 +344,8 @@ bindsym XF86AudioPrev exec $scriptdir/spotify-control previous
|
|||||||
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 8 ; exec --no-startup-id $scriptdir/update-status
|
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 8 ; exec --no-startup-id $scriptdir/update-status
|
||||||
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 8 ; exec --no-startup-id $scriptdir/update-status
|
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 8 ; exec --no-startup-id $scriptdir/update-status
|
||||||
|
|
||||||
bindsym $mod+o exec --no-startup-id xautorandr ; exec --no-startup-id kill -SIGUSR2 $(cat $RUNDIR/wallchanger.$XDG_SESSION_ID.pid)'"
|
|
||||||
bindsym $mod+p exec --no-startup-id kill -SIGUSR1 $(cat $RUNDIR/wallchanger.$XDG_SESSION_ID.pid)
|
|
||||||
|
|
||||||
bindsym $mod+m exec --no-startup-id $scriptdir/pa-volume mute-toggle-mic
|
bindsym $mod+m exec --no-startup-id $scriptdir/pa-volume mute-toggle-mic
|
||||||
|
bindsym $mod+space exec --no-startup-id $scriptdir/pa-volume mute-toggle-mic
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
### BARS #######################################################################
|
### BARS #######################################################################
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ general {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
order += spotify
|
||||||
order += "yubikey"
|
order += "yubikey"
|
||||||
order += "volume_status output"
|
order += "volume_status output"
|
||||||
order += "volume_status input"
|
order += "volume_status input"
|
||||||
order += spotify
|
|
||||||
order += "wifi"
|
order += "wifi"
|
||||||
order += "external_script presentation_mode"
|
order += "external_script presentation_mode"
|
||||||
order += "systemd redshift"
|
order += "systemd redshift"
|
||||||
|
|||||||
@@ -47,9 +47,7 @@ sudowrap() {
|
|||||||
|
|
||||||
_install() {
|
_install() {
|
||||||
_package="$1" ; shift
|
_package="$1" ; shift
|
||||||
if [[ $NAME == "Fedora" ]] ; then
|
if [[ $NAME == "Ubuntu" ]] ; then
|
||||||
sudowrap dnf install --assumeyes "${_package}"
|
|
||||||
elif [[ $NAME == "Ubuntu" ]] ; then
|
|
||||||
sudowrap apt-get install --assume-yes "${_package}"
|
sudowrap apt-get install --assume-yes "${_package}"
|
||||||
elif [[ $NAME == "Arch Linux" ]] ; then
|
elif [[ $NAME == "Arch Linux" ]] ; then
|
||||||
sudowrap pacman -S --noconfirm "${_package}"
|
sudowrap pacman -S --noconfirm "${_package}"
|
||||||
|
|||||||
171
packages.yml
171
packages.yml
@@ -1,16 +1,6 @@
|
|||||||
packages:
|
packages:
|
||||||
list:
|
list:
|
||||||
build-essentials:
|
build-essentials:
|
||||||
fedora:
|
|
||||||
- autoconf
|
|
||||||
- automake
|
|
||||||
- gcc-c++
|
|
||||||
- gcc
|
|
||||||
- ctags
|
|
||||||
- cmake
|
|
||||||
- libtool
|
|
||||||
- elfutils-libelf-devel
|
|
||||||
- maven
|
|
||||||
ubuntu:
|
ubuntu:
|
||||||
- build-essential
|
- build-essential
|
||||||
- exuberant-ctags
|
- exuberant-ctags
|
||||||
@@ -21,35 +11,24 @@ packages:
|
|||||||
- maven
|
- maven
|
||||||
- base-devel
|
- base-devel
|
||||||
golang:
|
golang:
|
||||||
fedora: ["golang", "glibc-static"]
|
|
||||||
ubuntu: ["golang-go"]
|
ubuntu: ["golang-go"]
|
||||||
archlinux: ["go"]
|
archlinux: ["go"]
|
||||||
make:
|
make:
|
||||||
fedora: ["make"]
|
|
||||||
ubuntu: ["make"]
|
ubuntu: ["make"]
|
||||||
archlinux: ["make"]
|
archlinux: ["make"]
|
||||||
gdb:
|
gdb:
|
||||||
fedora: ["gdb"]
|
|
||||||
ubuntu: ["gdb"]
|
ubuntu: ["gdb"]
|
||||||
archlinux: ["gdb"]
|
archlinux: ["gdb"]
|
||||||
strace:
|
strace:
|
||||||
fedora: ["strace"]
|
|
||||||
ubuntu: ["strace"]
|
ubuntu: ["strace"]
|
||||||
archlinux: ["strace"]
|
archlinux: ["strace"]
|
||||||
sudo:
|
sudo:
|
||||||
fedora: ["sudo"]
|
|
||||||
ubuntu: ["sudo"]
|
ubuntu: ["sudo"]
|
||||||
archlinux: ["sudo"]
|
archlinux: ["sudo"]
|
||||||
apt:
|
apt:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["apt-file"]
|
ubuntu: ["apt-file"]
|
||||||
archlinux: []
|
archlinux: [""]
|
||||||
xorg:
|
xorg:
|
||||||
fedora:
|
|
||||||
- '@base-x'
|
|
||||||
- xorg-x11-drv-synaptics-legacy
|
|
||||||
- xorg-x11-drv-libinput
|
|
||||||
- libinput
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux:
|
archlinux:
|
||||||
- xorg-server
|
- xorg-server
|
||||||
@@ -61,449 +40,359 @@ packages:
|
|||||||
- xorg-xset
|
- xorg-xset
|
||||||
- xorg-xinit
|
- xorg-xinit
|
||||||
dmenu:
|
dmenu:
|
||||||
fedora: ["dmenu"]
|
|
||||||
ubuntu: ["dmenu"]
|
ubuntu: ["dmenu"]
|
||||||
archlinux: ["dmenu"]
|
archlinux: ["dmenu"]
|
||||||
ansible:
|
ansible:
|
||||||
fedora: ["ansible"]
|
|
||||||
ubuntu: ["ansible"]
|
ubuntu: ["ansible"]
|
||||||
archlinux: ["ansible"]
|
archlinux: ["ansible"]
|
||||||
xdotool:
|
xdotool:
|
||||||
fedora: ["xdotool"]
|
|
||||||
ubuntu: ["xdotool"]
|
ubuntu: ["xdotool"]
|
||||||
archlinux: ["xdotool"]
|
archlinux: ["xdotool"]
|
||||||
arandr:
|
arandr:
|
||||||
fedora: ["arandr"]
|
|
||||||
ubuntu: ["arandr"]
|
ubuntu: ["arandr"]
|
||||||
archlinux: ["arandr"]
|
archlinux: ["arandr"]
|
||||||
borgbackup:
|
borgbackup:
|
||||||
fedora: ["borgbackup"]
|
|
||||||
ubuntu: ["borgbackup"]
|
ubuntu: ["borgbackup"]
|
||||||
archlinux: ["borgbackup"]
|
archlinux: ["borgbackup"]
|
||||||
docker:
|
docker:
|
||||||
fedora: ["docker"]
|
|
||||||
ubuntu: ["docker.io"]
|
ubuntu: ["docker.io"]
|
||||||
archlinux: ["docker", "docker-compose"]
|
archlinux: ["docker", "docker-compose"]
|
||||||
font-awesome:
|
font-awesome:
|
||||||
fedora: ["fontawesome-fonts", "fontawesome-fonts-web"]
|
|
||||||
ubuntu: ["fonts-font-awesome"]
|
ubuntu: ["fonts-font-awesome"]
|
||||||
archlinux: ["ttf-font-awesome"]
|
archlinux: ["ttf-font-awesome"]
|
||||||
font-inconsolata:
|
font-inconsolata:
|
||||||
fedora: ["levien-inconsolata-fonts"]
|
|
||||||
ubuntu: ["fonts-inconsolata"]
|
ubuntu: ["fonts-inconsolata"]
|
||||||
archlinux: ["ttf-inconsolata"]
|
archlinux: ["ttf-inconsolata"]
|
||||||
font-dejavu:
|
font-dejavu:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["ttf-dejavu"]
|
archlinux: ["ttf-dejavu"]
|
||||||
font-libertine:
|
font-libertine:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["ttf-linux-libertine"]
|
archlinux: ["ttf-linux-libertine"]
|
||||||
font-emoji:
|
font-emoji:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["noto-fonts-emoji"]
|
archlinux: ["noto-fonts-emoji"]
|
||||||
git:
|
git:
|
||||||
fedora: ["git", "gitk"]
|
|
||||||
ubuntu: ["git", "git-extras", "gitk", "git-email"]
|
ubuntu: ["git", "git-extras", "gitk", "git-email"]
|
||||||
# tk required for gitk
|
# tk required for gitk
|
||||||
archlinux: ["git", "tk"]
|
archlinux: ["git", "tk"]
|
||||||
htop:
|
htop:
|
||||||
fedora: ["htop"]
|
|
||||||
ubuntu: ["htop"]
|
ubuntu: ["htop"]
|
||||||
archlinux: ["htop"]
|
archlinux: ["htop"]
|
||||||
feh:
|
feh:
|
||||||
fedora: ["feh"]
|
|
||||||
ubuntu: ["feh"]
|
ubuntu: ["feh"]
|
||||||
archlinux: ["feh"]
|
archlinux: ["feh"]
|
||||||
i3:
|
i3:
|
||||||
fedora: ["i3"]
|
|
||||||
ubuntu: ["i3"]
|
ubuntu: ["i3"]
|
||||||
archlinux: ["i3-wm"]
|
archlinux: ["i3-wm"]
|
||||||
i3lock:
|
i3lock:
|
||||||
fedora: ["i3lock"]
|
|
||||||
ubuntu: ["i3lock"]
|
ubuntu: ["i3lock"]
|
||||||
archlinux: ["i3lock"]
|
archlinux: ["i3lock"]
|
||||||
pluma:
|
pluma:
|
||||||
fedora: ["pluma"]
|
|
||||||
ubuntu: ["pluma"]
|
ubuntu: ["pluma"]
|
||||||
archlinux: ["pluma"]
|
archlinux: ["pluma"]
|
||||||
vim:
|
vim:
|
||||||
fedora: ["vim-enhanced"]
|
|
||||||
ubuntu: ["vim"]
|
ubuntu: ["vim"]
|
||||||
archlinux: ["gvim"]
|
archlinux: ["gvim"]
|
||||||
neovim:
|
neovim:
|
||||||
fedora: ["neovim", "python3-neovim"]
|
|
||||||
ubuntu: ["neovim"]
|
ubuntu: ["neovim"]
|
||||||
archlinux: ["neovim", "python-pynvim"]
|
archlinux: ["neovim", "python-pynvim"]
|
||||||
network-manager-applet:
|
network-manager-applet:
|
||||||
fedora: ["network-manager-applet"]
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["network-manager-applet"]
|
archlinux: ["network-manager-applet"]
|
||||||
pasystray:
|
pasystray:
|
||||||
fedora: ["pasystray"]
|
|
||||||
ubuntu: ["pasystray"]
|
ubuntu: ["pasystray"]
|
||||||
archlinux: ["pasystray"]
|
archlinux: ["pasystray"]
|
||||||
redshift:
|
redshift:
|
||||||
fedora: ["redshift-gtk"]
|
|
||||||
ubuntu: ["redshift-gtk"]
|
ubuntu: ["redshift-gtk"]
|
||||||
archlinux: ["redshift"]
|
archlinux: ["redshift"]
|
||||||
pavucontrol:
|
pavucontrol:
|
||||||
fedora: ["pavucontrol"]
|
|
||||||
ubuntu: ["pavucontrol"]
|
ubuntu: ["pavucontrol"]
|
||||||
archlinux: ["pavucontrol-qt"]
|
archlinux: ["pavucontrol-qt"]
|
||||||
pinentry-qt:
|
pinentry-qt:
|
||||||
fedora: ["pinentry", "pinentry-curses", "pinentry-qt"]
|
|
||||||
ubuntu: ["pinentry-curses", "pinentry-qt"]
|
ubuntu: ["pinentry-curses", "pinentry-qt"]
|
||||||
archlinux: ["pinentry"]
|
archlinux: ["pinentry"]
|
||||||
pinta:
|
pinta:
|
||||||
fedora: ["pinta"]
|
|
||||||
ubuntu: ["pinta"]
|
ubuntu: ["pinta"]
|
||||||
archlinux: ["pinta"]
|
archlinux: ["pinta"]
|
||||||
py3status:
|
py3status:
|
||||||
fedora: ["py3status", "python3-pytz", "python3-tzlocal"]
|
ubuntu: ["py3status", "python3-arrow", "python3-tzlocal", "python3-pydbus"]
|
||||||
ubuntu: ["py3status", "python3-arrow", "python3-tzlocal"]
|
|
||||||
archlinux: ["py3status", "python-pytz", "python-tzlocal", "python-dbus", "python-pydbus"]
|
archlinux: ["py3status", "python-pytz", "python-tzlocal", "python-dbus", "python-pydbus"]
|
||||||
pass:
|
pass:
|
||||||
fedora: ["pass"]
|
|
||||||
ubuntu: ["pass"]
|
ubuntu: ["pass"]
|
||||||
archlinux: ["pass", "passff-host"]
|
archlinux: ["pass", "passff-host"]
|
||||||
keepassx:
|
keepassx:
|
||||||
fedora: ["keepassx"]
|
|
||||||
ubuntu: ["keepassx"]
|
ubuntu: ["keepassx"]
|
||||||
archlinux: []
|
archlinux: []
|
||||||
urxvt:
|
urxvt:
|
||||||
fedora: ["rxvt-unicode-256color"]
|
|
||||||
ubuntu: ["rxvt-unicode-256color"]
|
ubuntu: ["rxvt-unicode-256color"]
|
||||||
archlinux: ["rxvt-unicode"]
|
archlinux: ["rxvt-unicode"]
|
||||||
alacritty:
|
alacritty:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["alacritty"]
|
archlinux: ["alacritty"]
|
||||||
tmux:
|
tmux:
|
||||||
fedora: ["tmux"]
|
|
||||||
ubuntu: ["tmux"]
|
ubuntu: ["tmux"]
|
||||||
archlinux: ["tmux"]
|
archlinux: ["tmux"]
|
||||||
screen:
|
screen:
|
||||||
fedora: ["screen"]
|
|
||||||
ubuntu: ["screen"]
|
ubuntu: ["screen"]
|
||||||
archlinux: ["screen"]
|
archlinux: ["screen"]
|
||||||
zsh:
|
zsh:
|
||||||
fedora: ["zsh", "zsh-syntax-highlighting"]
|
|
||||||
ubuntu: ["zsh", "zsh-syntax-highlighting"]
|
ubuntu: ["zsh", "zsh-syntax-highlighting"]
|
||||||
archlinux: ["zsh", "zsh-syntax-highlighting", "zsh-autosuggestions", "zsh-completions"]
|
archlinux: ["zsh", "zsh-syntax-highlighting", "zsh-autosuggestions", "zsh-completions"]
|
||||||
zathura:
|
zathura:
|
||||||
fedora: ["zathura-pdf-mupdf"]
|
|
||||||
ubuntu: ["zathura", "zathura-pdf-poppler"]
|
ubuntu: ["zathura", "zathura-pdf-poppler"]
|
||||||
archlinux: ["zathura", "zathura-pdf-poppler"]
|
archlinux: ["zathura", "zathura-pdf-poppler"]
|
||||||
|
pdf:
|
||||||
|
ubuntu: []
|
||||||
|
archlinux: ["ghostscript", "enscript"]
|
||||||
pandoc:
|
pandoc:
|
||||||
fedora: ["pandoc"]
|
|
||||||
ubuntu: ["pandoc"]
|
ubuntu: ["pandoc"]
|
||||||
archlinux: ["pandoc", "texlive-core", "texlive-fontsextra", "texlive-latexextra"]
|
archlinux: ["pandoc", "texlive-core", "texlive-fontsextra", "texlive-latexextra"]
|
||||||
libvirt:
|
libvirt:
|
||||||
fedora: ["virt-manager", "libvirt-client"]
|
|
||||||
ubuntu: ["virt-manager", "libvirt-bin"]
|
ubuntu: ["virt-manager", "libvirt-bin"]
|
||||||
archlinux: ["virt-manager", "libvirt"]
|
archlinux: ["virt-manager", "libvirt", "dnsmasq", "ebtables"]
|
||||||
firefox:
|
firefox:
|
||||||
fedora: ["firefox"]
|
|
||||||
ubuntu: ["firefox"]
|
ubuntu: ["firefox"]
|
||||||
archlinux: ["firefox"]
|
archlinux: ["firefox"]
|
||||||
ranger:
|
ranger:
|
||||||
fedora: ["ranger"]
|
|
||||||
ubuntu: ["ranger"]
|
ubuntu: ["ranger"]
|
||||||
archlinux: ["ranger"]
|
archlinux: ["ranger"]
|
||||||
thunar:
|
thunar:
|
||||||
fedora: ["thunar"]
|
|
||||||
ubuntu: ["thunar"]
|
ubuntu: ["thunar"]
|
||||||
archlinux: ["thunar"]
|
archlinux: ["thunar"]
|
||||||
unclutter:
|
unclutter:
|
||||||
fedora: ["unclutter"]
|
|
||||||
ubuntu: ["unclutter"]
|
ubuntu: ["unclutter"]
|
||||||
archlinux: ["unclutter"]
|
archlinux: ["unclutter"]
|
||||||
chromium:
|
chromium:
|
||||||
fedora: ["chromium"]
|
|
||||||
ubuntu: ["chromium-browser"]
|
ubuntu: ["chromium-browser"]
|
||||||
archlinux: ["chromium"]
|
archlinux: ["chromium"]
|
||||||
libreoffice:
|
libreoffice:
|
||||||
fedora: ["libreoffice", "libreoffice-langpack-de", "libreoffice-langpack-en"]
|
|
||||||
ubuntu: ["libreoffice"]
|
ubuntu: ["libreoffice"]
|
||||||
archlinux: ["libreoffice-fresh", "libreoffice-fresh-de"]
|
archlinux: ["libreoffice-fresh", "libreoffice-fresh-de"]
|
||||||
qt-theming:
|
qt-theming:
|
||||||
fedora: ["breeze-cursor-theme", "breeze-icon-theme"]
|
ubuntu: ["breeze-cursor-theme", "breeze-icon-theme", "breeze", "qt5ct"]
|
||||||
ubuntu: ["breeze-cursor-theme", "breeze-icon-theme", "breeze"]
|
|
||||||
archlinux: ["breeze", "breeze-icons", "breeze-grub", "qt5ct"]
|
archlinux: ["breeze", "breeze-icons", "breeze-grub", "qt5ct"]
|
||||||
gtk-theming:
|
gtk-theming:
|
||||||
fedora: ["breeze-gtk"]
|
ubuntu: ["gtk3-engines-breeze", "lxappearance"]
|
||||||
ubuntu: ["gtk3-engines-breeze"]
|
|
||||||
archlinux: ["breeze-gtk", "lxappearance"]
|
archlinux: ["breeze-gtk", "lxappearance"]
|
||||||
xcompmgr:
|
xcompmgr:
|
||||||
fedora: ["xcompmgr"]
|
|
||||||
ubuntu: ["xcompmgr"]
|
ubuntu: ["xcompmgr"]
|
||||||
archlinux: ["xcompmgr"]
|
archlinux: ["xcompmgr"]
|
||||||
python:
|
python:
|
||||||
fedora: ["python", "python3-devel"]
|
|
||||||
ubuntu: ["python3", "python3-pip", "python3-venv", "virtualenv", "pylint3"]
|
ubuntu: ["python3", "python3-pip", "python3-venv", "virtualenv", "pylint3"]
|
||||||
archlinux: ["python3"]
|
archlinux: ["python3"]
|
||||||
|
python-modules:
|
||||||
|
ubuntu: []
|
||||||
|
archlinux:
|
||||||
|
- python-ruamel-yaml
|
||||||
|
- python-gitpython
|
||||||
|
- python-semver
|
||||||
xbacklight:
|
xbacklight:
|
||||||
fedora: ["xbacklight"]
|
|
||||||
ubuntu: ["xbacklight"]
|
ubuntu: ["xbacklight"]
|
||||||
archlinux: ["xorg-xbacklight"]
|
archlinux: ["xorg-xbacklight"]
|
||||||
wireshark:
|
wireshark:
|
||||||
fedora: ["wireshark"]
|
|
||||||
ubuntu: ["wireshark", "wireshark-qt"]
|
ubuntu: ["wireshark", "wireshark-qt"]
|
||||||
archlinux: ["wireshark-cli", "wireshark-qt"]
|
archlinux: ["wireshark-cli", "wireshark-qt"]
|
||||||
dia:
|
dia:
|
||||||
fedora: ["dia"]
|
|
||||||
ubuntu: ["dia"]
|
ubuntu: ["dia"]
|
||||||
archlinux: ["dia"]
|
archlinux: ["dia"]
|
||||||
shutter:
|
shutter:
|
||||||
fedora: ["shutter"]
|
|
||||||
ubuntu: ["shutter"]
|
ubuntu: ["shutter"]
|
||||||
archlinux: []
|
archlinux: []
|
||||||
nmap:
|
nmap:
|
||||||
fedora: ["nmap"]
|
|
||||||
ubuntu: ["nmap"]
|
ubuntu: ["nmap"]
|
||||||
archlinux: ["nmap"]
|
archlinux: ["nmap"]
|
||||||
openvpn:
|
openvpn:
|
||||||
fedora: ["openvpn"]
|
|
||||||
ubuntu: ["openvpn"]
|
ubuntu: ["openvpn"]
|
||||||
archlinux: ["openvpn"]
|
archlinux: ["openvpn"]
|
||||||
curl:
|
curl:
|
||||||
fedora: ["curl"]
|
|
||||||
ubuntu: ["curl"]
|
ubuntu: ["curl"]
|
||||||
archlinux: ["curl"]
|
archlinux: ["curl"]
|
||||||
wget:
|
wget:
|
||||||
fedora: ["wget"]
|
|
||||||
ubuntu: ["wget"]
|
ubuntu: ["wget"]
|
||||||
archlinux: ["wget"]
|
archlinux: ["wget"]
|
||||||
tree:
|
tree:
|
||||||
fedora: ["tree"]
|
|
||||||
ubuntu: ["tree"]
|
ubuntu: ["tree"]
|
||||||
archlinux: ["tree"]
|
archlinux: ["tree"]
|
||||||
which:
|
which:
|
||||||
fedora: ["which"]
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["which"]
|
archlinux: ["which"]
|
||||||
zip:
|
zip:
|
||||||
fedora: ["zip"]
|
|
||||||
ubuntu: ["zip", "unzip"]
|
ubuntu: ["zip", "unzip"]
|
||||||
archlinux: ["zip", "unzip"]
|
archlinux: ["zip", "unzip"]
|
||||||
traceroute:
|
traceroute:
|
||||||
fedora: ["traceroute"]
|
|
||||||
ubuntu: ["traceroute"]
|
ubuntu: ["traceroute"]
|
||||||
archlinux: ["traceroute"]
|
archlinux: ["traceroute"]
|
||||||
tcpdump:
|
tcpdump:
|
||||||
fedora: ["tcpdump"]
|
|
||||||
ubuntu: ["tcpdump"]
|
ubuntu: ["tcpdump"]
|
||||||
archlinux: ["tcpdump"]
|
archlinux: ["tcpdump"]
|
||||||
tar:
|
tar:
|
||||||
fedora: ["tar"]
|
|
||||||
ubuntu: ["tar"]
|
ubuntu: ["tar"]
|
||||||
archlinux: ["tar"]
|
archlinux: ["tar"]
|
||||||
rsync:
|
rsync:
|
||||||
fedora: ["rsync"]
|
|
||||||
ubuntu: ["rsync"]
|
ubuntu: ["rsync"]
|
||||||
archlinux: ["rsync"]
|
archlinux: ["rsync"]
|
||||||
net-tools:
|
net-tools:
|
||||||
fedora: ["net-tools"]
|
|
||||||
ubuntu: ["net-tools"]
|
ubuntu: ["net-tools"]
|
||||||
archlinux: ["net-tools"]
|
archlinux: ["net-tools"]
|
||||||
ntfs:
|
ntfs:
|
||||||
fedora: ["ntfs-3g", "ntfsprogs"]
|
|
||||||
ubuntu: ["ntfs-3g"]
|
ubuntu: ["ntfs-3g"]
|
||||||
archlinux: ["ntfs-3g"]
|
archlinux: ["ntfs-3g"]
|
||||||
lsof:
|
lsof:
|
||||||
fedora: ["lsof"]
|
|
||||||
ubuntu: ["lsof"]
|
ubuntu: ["lsof"]
|
||||||
archlinux: ["lsof"]
|
archlinux: ["lsof"]
|
||||||
iptables:
|
iptables:
|
||||||
fedora: ["iptables"]
|
|
||||||
ubuntu: ["iptables"]
|
ubuntu: ["iptables"]
|
||||||
archlinux: ["iptables"]
|
archlinux: ["iptables"]
|
||||||
pwgen:
|
pwgen:
|
||||||
fedora: ["pwgen"]
|
|
||||||
ubuntu: ["pwgen"]
|
ubuntu: ["pwgen"]
|
||||||
archlinux: ["pwgen"]
|
archlinux: ["pwgen"]
|
||||||
gpg:
|
gpg:
|
||||||
fedora: ["gnupg2", "paperkey", "yubikey-manager"]
|
|
||||||
ubuntu: ["gnupg2"]
|
ubuntu: ["gnupg2"]
|
||||||
archlinux: ["gnupg", "paperkey", "yubikey-manager", "yubikey-touch-detector"]
|
archlinux: ["gnupg", "paperkey", "yubikey-manager", "yubikey-touch-detector"]
|
||||||
networkmanager:
|
networkmanager:
|
||||||
fedora: ["NetworkManager", "NetworkManager-wifi"]
|
|
||||||
ubuntu: ["network-manager", "network-manager-openvpn", "network-manager-openconnect"]
|
ubuntu: ["network-manager", "network-manager-openvpn", "network-manager-openconnect"]
|
||||||
archlinux: ["networkmanager"]
|
archlinux: ["networkmanager"]
|
||||||
pulseaudio:
|
pulseaudio:
|
||||||
fedora: ["pulseaudio", "pulseaudio-utils"]
|
|
||||||
ubuntu: ["pulseaudio", "pulseaudio-utils"]
|
ubuntu: ["pulseaudio", "pulseaudio-utils"]
|
||||||
archlinux: ["pulseaudio", "pulseaudio-alsa"]
|
archlinux: ["pulseaudio", "pulseaudio-alsa"]
|
||||||
iw:
|
iw:
|
||||||
fedora: ["iw"]
|
|
||||||
ubuntu: ["iw"]
|
ubuntu: ["iw"]
|
||||||
archlinux: ["iw"]
|
archlinux: ["iw"]
|
||||||
cowsay:
|
cowsay:
|
||||||
fedora: ["cowsay"]
|
|
||||||
ubuntu: ["cowsay"]
|
ubuntu: ["cowsay"]
|
||||||
archlinux: ["cowsay"]
|
archlinux: ["cowsay"]
|
||||||
ruby:
|
ruby:
|
||||||
fedora: ["ruby", "ruby-devel", "rubygem-bundler"]
|
|
||||||
ubuntu: ["ruby", "ruby-dev", "ruby-bundler"]
|
ubuntu: ["ruby", "ruby-dev", "ruby-bundler"]
|
||||||
archlinux: ["ruby"]
|
archlinux: ["ruby"]
|
||||||
lxc:
|
lxc:
|
||||||
fedora: ["lxc"]
|
|
||||||
ubuntu: ["lxc"]
|
ubuntu: ["lxc"]
|
||||||
archlinux: ["lxc"]
|
archlinux: ["lxc"]
|
||||||
acpi:
|
acpi:
|
||||||
fedora: ["acpi"]
|
|
||||||
ubuntu: ["acpid"]
|
ubuntu: ["acpid"]
|
||||||
archlinux: ["acpi", "acpid"]
|
archlinux: ["acpi", "acpid"]
|
||||||
npm:
|
npm:
|
||||||
fedora: ["npm"]
|
|
||||||
ubuntu: ["npm"]
|
ubuntu: ["npm"]
|
||||||
archlinux: ["npm"]
|
archlinux: ["npm"]
|
||||||
xdg:
|
xdg:
|
||||||
fedora: ["xdg-utils"]
|
|
||||||
ubuntu: ["xdg-utils"]
|
ubuntu: ["xdg-utils"]
|
||||||
archlinux: ["xdg-utils"]
|
archlinux: ["xdg-utils"]
|
||||||
docs:
|
docs:
|
||||||
fedora: ["man-pages"]
|
|
||||||
ubuntu: ["manpages"]
|
ubuntu: ["manpages"]
|
||||||
archlinux: ["man-pages"]
|
archlinux: ["man-pages"]
|
||||||
compton:
|
compton:
|
||||||
fedora: ["compton"]
|
|
||||||
ubuntu: ["compton"]
|
ubuntu: ["compton"]
|
||||||
archlinux: []
|
archlinux: []
|
||||||
dunst:
|
dunst:
|
||||||
fedora: ["dunst"]
|
|
||||||
ubuntu: ["dunst"]
|
ubuntu: ["dunst"]
|
||||||
archlinux: ["dunst"]
|
archlinux: ["dunst"]
|
||||||
cloc:
|
cloc:
|
||||||
fedora: ["cloc"]
|
|
||||||
ubuntu: ["cloc"]
|
ubuntu: ["cloc"]
|
||||||
archlinux: ["cloc"]
|
archlinux: ["cloc"]
|
||||||
bluetooth:
|
bluetooth:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["blueman"]
|
ubuntu: ["blueman"]
|
||||||
archlinux: ["bluez", "bluez-tools", "blueman"]
|
archlinux: ["bluez", "bluez-tools", "blueman"]
|
||||||
autorandr:
|
autorandr:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["autorandr"]
|
ubuntu: ["autorandr"]
|
||||||
archlinux: ["autorandr"]
|
archlinux: ["autorandr"]
|
||||||
bwm-ng:
|
bwm-ng:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["bwm-ng"]
|
ubuntu: ["bwm-ng"]
|
||||||
archlinux: ["bwm-ng"]
|
archlinux: ["bwm-ng"]
|
||||||
virtualbox:
|
virtualbox:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["virtualbox"]
|
ubuntu: ["virtualbox"]
|
||||||
archlinux: []
|
archlinux: []
|
||||||
ssh:
|
ssh:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["openssh"]
|
archlinux: ["openssh"]
|
||||||
sshfs:
|
sshfs:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["sshfs"]
|
ubuntu: ["sshfs"]
|
||||||
archlinux: ["sshfs"]
|
archlinux: ["sshfs"]
|
||||||
expect:
|
expect:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["expect"]
|
ubuntu: ["expect"]
|
||||||
archlinux: ["expect"]
|
archlinux: ["expect"]
|
||||||
inotify:
|
inotify:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["inotify-tools"]
|
ubuntu: ["inotify-tools"]
|
||||||
archlinux: ["inotify-tools"]
|
archlinux: ["inotify-tools"]
|
||||||
rclone:
|
rclone:
|
||||||
fedora: ["rclone"]
|
|
||||||
ubuntu: ["rclone"]
|
ubuntu: ["rclone"]
|
||||||
archlinux: ["rclone"]
|
archlinux: ["rclone"]
|
||||||
dnf:
|
dnf:
|
||||||
fedora: ["python3-dnf"]
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: []
|
archlinux: []
|
||||||
rust:
|
rust:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["rustc", "cargo"]
|
ubuntu: ["rustc", "cargo"]
|
||||||
archlinux: ["rust"]
|
archlinux: ["rust"]
|
||||||
musescore:
|
musescore:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["musescore"]
|
ubuntu: ["musescore"]
|
||||||
archlinux: ["musescore"]
|
archlinux: ["musescore"]
|
||||||
sipcalc:
|
sipcalc:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["sipcalc"]
|
ubuntu: ["sipcalc"]
|
||||||
archlinux: ["sipcalc"]
|
archlinux: ["sipcalc"]
|
||||||
rofi:
|
rofi:
|
||||||
fedora: []
|
|
||||||
ubuntu: ["rofi"]
|
ubuntu: ["rofi"]
|
||||||
archlinux: ["rofi"]
|
archlinux: ["rofi"]
|
||||||
anki:
|
anki:
|
||||||
fedora: ["anki"]
|
|
||||||
ubuntu: ["anki"]
|
ubuntu: ["anki"]
|
||||||
archlinux: ["anki"]
|
archlinux: ["anki"]
|
||||||
imv:
|
imv:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["imv"]
|
archlinux: ["imv"]
|
||||||
pacman:
|
pacman:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["pacman", "pacman-contrib"]
|
archlinux: ["pacman", "pacman-contrib"]
|
||||||
steam:
|
steam:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["steam"]
|
archlinux: ["steam"]
|
||||||
man:
|
man:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["man-db", "man-pages"]
|
archlinux: ["man-db", "man-pages"]
|
||||||
discord:
|
discord:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["discord"]
|
archlinux: ["discord"]
|
||||||
nextcloud:
|
nextcloud:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["nextcloud-client"]
|
archlinux: ["nextcloud-client"]
|
||||||
kwallet:
|
kwallet:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["kwallet", "kwalletmanager"]
|
archlinux: ["kwallet", "kwalletmanager"]
|
||||||
wallpapers:
|
wallpapers:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["elementary-wallpapers", "deepin-community-wallpapers"]
|
archlinux: ["elementary-wallpapers", "deepin-community-wallpapers"]
|
||||||
wallutils:
|
wallutils:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["wallutils"]
|
archlinux: ["wallutils"]
|
||||||
pv:
|
pv:
|
||||||
fedora: ["pv"]
|
|
||||||
ubuntu: ["pv"]
|
ubuntu: ["pv"]
|
||||||
archlinux: ["pv"]
|
archlinux: ["pv"]
|
||||||
stress:
|
stress:
|
||||||
fedora: []
|
|
||||||
ubuntu: []
|
ubuntu: []
|
||||||
archlinux: ["stress"]
|
archlinux: ["stress"]
|
||||||
mpris:
|
mpris:
|
||||||
fedora: []
|
ubuntu: ["stress"]
|
||||||
ubuntu: []
|
|
||||||
archlinux: ["playerctl"]
|
archlinux: ["playerctl"]
|
||||||
imagemagick:
|
imagemagick:
|
||||||
fedora: []
|
ubuntu: ["imagemagick"]
|
||||||
ubuntu: []
|
|
||||||
archlinux: ["imagemagick"]
|
archlinux: ["imagemagick"]
|
||||||
mpv:
|
mpv:
|
||||||
fedora: []
|
ubuntu: ["mpv"]
|
||||||
ubuntu: []
|
|
||||||
archlinux: ["mpv"]
|
archlinux: ["mpv"]
|
||||||
gnome-keyring:
|
gnome-keyring:
|
||||||
fedora: []
|
ubuntu: ["gnome-keyring"]
|
||||||
ubuntu: []
|
|
||||||
archlinux: ["gnome-keyring"]
|
archlinux: ["gnome-keyring"]
|
||||||
|
element:
|
||||||
|
ubuntu: []
|
||||||
|
archlinux: ["element-desktop"]
|
||||||
|
maim:
|
||||||
|
ubuntu: []
|
||||||
|
archlinux: ["maim"]
|
||||||
|
mkinitcpio:
|
||||||
|
ubuntu: []
|
||||||
|
archlinux: ["mkinitcpio"]
|
||||||
|
terraform:
|
||||||
|
ubuntu: ["terraform"]
|
||||||
|
archlinux: ["terraform"]
|
||||||
|
|
||||||
remove:
|
remove:
|
||||||
mousepad:
|
mousepad:
|
||||||
fedora: ["mousepad"]
|
|
||||||
ubuntu: ["mousepad"]
|
ubuntu: ["mousepad"]
|
||||||
archlinux: ["mousepad"]
|
archlinux: ["mousepad"]
|
||||||
|
|||||||
46
playbook.yml
46
playbook.yml
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
- name: Check for valid distro
|
- name: Check for valid distro
|
||||||
assert:
|
assert:
|
||||||
that: distro in ('fedora', 'ubuntu', 'archlinux')
|
that: distro in ('ubuntu', 'archlinux')
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- block:
|
- block:
|
||||||
@@ -43,26 +43,6 @@
|
|||||||
become: true
|
become: true
|
||||||
when: distro == 'ubuntu'
|
when: distro == 'ubuntu'
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Update dnf cache
|
|
||||||
dnf:
|
|
||||||
update_cache: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Upgrade system
|
|
||||||
dnf:
|
|
||||||
name: '*'
|
|
||||||
state: latest
|
|
||||||
update_cache: false
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Remove unused packages
|
|
||||||
dnf:
|
|
||||||
autoremove: true
|
|
||||||
update_cache: false
|
|
||||||
become: true
|
|
||||||
when: distro == 'fedora'
|
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: enable multilib repository
|
- name: enable multilib repository
|
||||||
blockinfile:
|
blockinfile:
|
||||||
@@ -93,15 +73,6 @@
|
|||||||
when: distro == 'archlinux'
|
when: distro == 'archlinux'
|
||||||
tags: [update_system]
|
tags: [update_system]
|
||||||
|
|
||||||
- name: install selinux specials on fedora
|
|
||||||
dnf:
|
|
||||||
state: installed
|
|
||||||
name:
|
|
||||||
- python3-libselinux
|
|
||||||
- policycoreutils-python-utils
|
|
||||||
become: true
|
|
||||||
when: distro == 'fedora'
|
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: install sudo
|
- name: install sudo
|
||||||
package:
|
package:
|
||||||
@@ -259,11 +230,6 @@
|
|||||||
- rebuild initrd
|
- rebuild initrd
|
||||||
when: distro == 'archlinux'
|
when: distro == 'archlinux'
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
disable_services:
|
|
||||||
- sshd
|
|
||||||
when: distro == 'fedora'
|
|
||||||
|
|
||||||
- set_fact:
|
- set_fact:
|
||||||
disable_services:
|
disable_services:
|
||||||
- ssh
|
- ssh
|
||||||
@@ -283,16 +249,6 @@
|
|||||||
become: true
|
become: true
|
||||||
when: manage_services|default(true)|bool
|
when: manage_services|default(true)|bool
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
enable_services:
|
|
||||||
- NetworkManager
|
|
||||||
# does not work with fedora 31 due to the switch to cgroups v2:
|
|
||||||
# https://github.com/docker/cli/issues/2104
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1746355#c1
|
|
||||||
# - docker
|
|
||||||
- libvirtd
|
|
||||||
when: distro == 'fedora'
|
|
||||||
|
|
||||||
- set_fact:
|
- set_fact:
|
||||||
enable_services:
|
enable_services:
|
||||||
- NetworkManager
|
- NetworkManager
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
[Appearance]
|
[Appearance]
|
||||||
color_scheme_path=/usr/share/qt5ct/colors/airy.conf
|
|
||||||
custom_palette=false
|
custom_palette=false
|
||||||
icon_theme=breeze
|
icon_theme=breeze
|
||||||
standard_dialogs=default
|
standard_dialogs=default
|
||||||
style=Fusion
|
style=Fusion
|
||||||
|
|
||||||
[Fonts]
|
|
||||||
fixed=@Variant(\0\0\0@\0\0\0\x1e\0\x44\0\x65\0j\0\x61\0V\0u\0 \0L\0G\0\x43\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
|
||||||
general=@Variant(\0\0\0@\0\0\0\x1e\0\x44\0\x65\0j\0\x61\0V\0u\0 \0L\0G\0\x43\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
|
||||||
|
|
||||||
[Interface]
|
[Interface]
|
||||||
activate_item_on_single_click=1
|
activate_item_on_single_click=1
|
||||||
buttonbox_layout=0
|
buttonbox_layout=0
|
||||||
@@ -23,6 +18,3 @@ stylesheets=@Invalid()
|
|||||||
toolbutton_style=4
|
toolbutton_style=4
|
||||||
underline_shortcut=1
|
underline_shortcut=1
|
||||||
wheel_scroll_lines=3
|
wheel_scroll_lines=3
|
||||||
|
|
||||||
[SettingsWindow]
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x16\0\0\t\xff\0\0\x5\x88\0\0\0\0\0\0\0\x16\0\0\t\xff\0\0\x5\x88\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\x16\0\0\t\xff\0\0\x5\x88)
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
ansible==2.10.4
|
ansible==2.10.7
|
||||||
ansible-base==2.10.3
|
ansible-base==2.10.3
|
||||||
cffi==1.14.4
|
cffi==1.14.4
|
||||||
cryptography==3.2.1
|
cryptography==3.3.2
|
||||||
ipaddress==1.0.23
|
ipaddress==1.0.23
|
||||||
Jinja2==2.11.2
|
Jinja2==2.11.3
|
||||||
jmespath==0.10.0
|
jmespath==0.10.0
|
||||||
MarkupSafe==1.1.1
|
MarkupSafe==1.1.1
|
||||||
packaging==20.7
|
packaging==20.7
|
||||||
pycparser==2.20
|
pycparser==2.20
|
||||||
pyparsing==2.4.7
|
pyparsing==2.4.7
|
||||||
PyYAML==5.3.1
|
PyYAML==5.4
|
||||||
six==1.15.0
|
six==1.15.0
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
xrandr --output DisplayPort-0 --mode 2560x1440 --primary --rate 144.00 --set TearFree on
|
|
||||||
8
screencfg/ares/default.yml
Normal file
8
screencfg/ares/default.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
reset: true
|
||||||
|
outputs:
|
||||||
|
- name: DisplayPort-0
|
||||||
|
opts:
|
||||||
|
mode: 2560x1440
|
||||||
|
rate: "144.00"
|
||||||
|
set:
|
||||||
|
TearFree: "on"
|
||||||
14
screencfg/tb-hak/default.yml
Normal file
14
screencfg/tb-hak/default.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
reset: false
|
||||||
|
outputs:
|
||||||
|
- name: eDP-1
|
||||||
|
primary: True
|
||||||
|
opts:
|
||||||
|
mode: 1920x1080
|
||||||
|
scale: 1x1
|
||||||
|
pos: "0x0" # beware of hex
|
||||||
|
- name: DP-1-1
|
||||||
|
disable: true
|
||||||
|
- name: DP-1-2
|
||||||
|
disable: true
|
||||||
|
- name: DP-1-3
|
||||||
|
disable: true
|
||||||
18
screencfg/tb-hak/three-screens.yml
Normal file
18
screencfg/tb-hak/three-screens.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
reset: true
|
||||||
|
outputs:
|
||||||
|
- name: eDP-1
|
||||||
|
opts:
|
||||||
|
mode: 1920x1080
|
||||||
|
scale: 0.7x0.7
|
||||||
|
pos: "0x0" # beware of hex
|
||||||
|
- name: DP-1-1
|
||||||
|
primary: True
|
||||||
|
opts:
|
||||||
|
mode: 1920x1080
|
||||||
|
right-of: eDP-1
|
||||||
|
reset: true
|
||||||
|
- name: DP-1-2
|
||||||
|
opts:
|
||||||
|
mode: 1920x1080
|
||||||
|
right-of: DP-1-1
|
||||||
|
reset: true
|
||||||
@@ -4,7 +4,8 @@ set -o nounset
|
|||||||
set -o errexit
|
set -o errexit
|
||||||
|
|
||||||
tmpdir="$(mktemp -d)"
|
tmpdir="$(mktemp -d)"
|
||||||
tmpdir=/tmp/dotfiles
|
|
||||||
|
trap "rm -rf ${tmpdir}" EXIT
|
||||||
|
|
||||||
git archive --format tar --output "${tmpdir}/dotfiles.tar" HEAD
|
git archive --format tar --output "${tmpdir}/dotfiles.tar" HEAD
|
||||||
|
|
||||||
@@ -17,24 +18,46 @@ git submodule foreach 'bash -x -c "
|
|||||||
|
|
||||||
gzip -k -f -v "${tmpdir}/dotfiles.tar"
|
gzip -k -f -v "${tmpdir}/dotfiles.tar"
|
||||||
|
|
||||||
exit 1
|
test_ares() {
|
||||||
|
if [[ -d "/var/cache/pacman/pkg/" ]] ; then
|
||||||
|
dockeropts=(-v "/var/cache/pacman/pkg/:/var/cache/pacman/pkg_host/")
|
||||||
|
fi
|
||||||
|
docker pull docker.io/library/archlinux:base
|
||||||
|
docker run \
|
||||||
|
-ti \
|
||||||
|
--rm \
|
||||||
|
-v ${tmpdir}/dotfiles.tar.gz:/tmp/dotfiles.tar.gz:ro \
|
||||||
|
--mount type=tmpfs,destination=/var/cache/pacman/pkg/ \
|
||||||
|
"${dockeropts[@]}" \
|
||||||
|
--hostname ares \
|
||||||
|
docker.io/library/archlinux:base \
|
||||||
|
sh -c '
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
docker pull docker.io/library/archlinux:base
|
# Uncomment CacheDir and append the host pacman cache as cachedir
|
||||||
docker run -ti --rm -v ${tmpdir}/dotfiles.tar.gz:/tmp/dotfiles.tar.gz:ro --hostname ares docker.io/library/archlinux:base sh -c '"
|
# At worst, the cache directory will be ignored if it does not exist
|
||||||
set -o errexit
|
# Pacman will always prefer the first cache directory, so newly downloaded
|
||||||
|
# packages will stay in the container
|
||||||
|
sed -i '"'"'s/^#\?\(CacheDir.*\)/\1\nCacheDir = \/var\/cache\/pacman\/pkg_host\//'"'"' /etc/pacman.conf
|
||||||
|
|
||||||
pacman -Syu --noconfirm python3
|
pacman -Syu --noconfirm python3
|
||||||
cd $(mktemp -d)
|
cd $(mktemp -d)
|
||||||
tar xf /tmp/dotfiles.tar.gz -C .
|
tar xf /tmp/dotfiles.tar.gz -C .
|
||||||
ANSIBLE_EXTRA_ARGS="-e manage_services=false" ./install.sh
|
ANSIBLE_EXTRA_ARGS="-e manage_services=false" ./install.sh
|
||||||
read -p "Done, [return] to continue "
|
read -p "Done, [return] to continue "
|
||||||
'
|
'
|
||||||
|
}
|
||||||
|
|
||||||
docker pull docker.io/library/ubuntu:18.04
|
test_tb_hak() {
|
||||||
docker run -ti --rm -v ${tmpdir}/dotfiles.tar.gz:/tmp/dotfiles.tar.gz:ro --hostname tb-hak docker.io/library/ubuntu:18.04 sh -c '
|
docker pull docker.io/library/ubuntu:18.04
|
||||||
set -o errexit
|
docker run -ti --rm -v ${tmpdir}/dotfiles.tar.gz:/tmp/dotfiles.tar.gz:ro --hostname tb-hak docker.io/library/ubuntu:18.04 sh -c '
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
cd $(mktemp -d)
|
cd $(mktemp -d)
|
||||||
tar xf /tmp/dotfiles.tar.gz -C .
|
tar xf /tmp/dotfiles.tar.gz -C .
|
||||||
ANSIBLE_EXTRA_ARGS="-e manage_services=false" ./install.sh
|
ANSIBLE_EXTRA_ARGS="-e manage_services=false" ./install.sh
|
||||||
'
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
test_ares
|
||||||
|
test_tb_hak
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
set -g default-command "${SHELL}"
|
set -g default-command "${SHELL}"
|
||||||
set -g default-terminal "${TERMBIN}"
|
set -g default-terminal "xterm-256color"
|
||||||
|
|
||||||
set -g set-titles on
|
set -g set-titles on
|
||||||
set -g set-titles-string '#S'
|
set -g set-titles-string '#S'
|
||||||
|
|||||||
43
user.yml
43
user.yml
@@ -27,16 +27,6 @@
|
|||||||
when: distro == 'ubuntu'
|
when: distro == 'ubuntu'
|
||||||
tags: [always]
|
tags: [always]
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
user_groups:
|
|
||||||
- libvirt
|
|
||||||
- wheel
|
|
||||||
- vboxusers
|
|
||||||
- wireshark
|
|
||||||
- docker
|
|
||||||
when: distro == 'fedora'
|
|
||||||
tags: [always]
|
|
||||||
|
|
||||||
- set_fact:
|
- set_fact:
|
||||||
user_groups:
|
user_groups:
|
||||||
- libvirt
|
- libvirt
|
||||||
@@ -46,6 +36,7 @@
|
|||||||
- docker
|
- docker
|
||||||
- sudonopw
|
- sudonopw
|
||||||
- games
|
- games
|
||||||
|
- kvm
|
||||||
when: distro == 'archlinux'
|
when: distro == 'archlinux'
|
||||||
tags: [always]
|
tags: [always]
|
||||||
|
|
||||||
@@ -67,12 +58,24 @@
|
|||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
|
- name: create systemd directory
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
path: "{{ item }}"
|
||||||
|
owner: "{{ user.name }}"
|
||||||
|
group: "{{ user_group_name }}"
|
||||||
|
loop:
|
||||||
|
- "/home/{{ user.name }}/.config/"
|
||||||
|
- "/home/{{ user.name }}/.config/systemd/"
|
||||||
|
- "/home/{{ user.name }}/.config/systemd/user/"
|
||||||
|
|
||||||
|
# No way to use the `systemd` module here, as it needs a logind
|
||||||
|
# session. So we have to handle the symlinks for masking ourselves.
|
||||||
- name: disable and mask systemd user units
|
- name: disable and mask systemd user units
|
||||||
systemd:
|
file:
|
||||||
name: "{{ item }}"
|
state: link
|
||||||
enabled: false
|
dest: "/home/{{ user.name }}/.config/systemd/user/{{ item }}"
|
||||||
masked: true
|
src: "/dev/null"
|
||||||
scope: user
|
|
||||||
with_items:
|
with_items:
|
||||||
- gpg-agent.service
|
- gpg-agent.service
|
||||||
- gpg-agent.socket
|
- gpg-agent.socket
|
||||||
@@ -309,9 +312,13 @@
|
|||||||
changed_when: vim_plugins_stdout.stdout_lines|length != 0
|
changed_when: vim_plugins_stdout.stdout_lines|length != 0
|
||||||
|
|
||||||
- name: compile youcompleteme
|
- name: compile youcompleteme
|
||||||
|
# --force-sudo is required, as the script refuses to run
|
||||||
|
# in a sudo environment (i.e. if the SUDO_USER env variable
|
||||||
|
# is set). But of course, ansible uses that to assume the
|
||||||
|
# other user. It's fine.
|
||||||
shell: |
|
shell: |
|
||||||
cd ~/.local/share/nvim/plugged/YouCompleteMe/
|
cd ~/.local/share/nvim/plugged/YouCompleteMe/
|
||||||
python3 ./install.py # --go-completer
|
python3 ./install.py --force-sudo
|
||||||
args:
|
args:
|
||||||
creates: ~/.local/share/nvim/plugged/YouCompleteMe/third_party/ycmd/ycm_core.so
|
creates: ~/.local/share/nvim/plugged/YouCompleteMe/third_party/ycmd/ycm_core.so
|
||||||
when: vim_plugins_stdout.stdout_lines|length != 0 or true
|
when: vim_plugins_stdout.stdout_lines|length != 0 or true
|
||||||
@@ -392,7 +399,9 @@
|
|||||||
checksum: true
|
checksum: true
|
||||||
delete: true
|
delete: true
|
||||||
|
|
||||||
when: not stat_portfolio_performance_installation.stat.exists
|
when:
|
||||||
|
- not stat_portfolio_performance_installation.stat.exists
|
||||||
|
- not ansible_check_mode
|
||||||
|
|
||||||
- name: link portfolio performance
|
- name: link portfolio performance
|
||||||
file:
|
file:
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ fi
|
|||||||
|
|
||||||
start_wm() {
|
start_wm() {
|
||||||
log "starting i3"
|
log "starting i3"
|
||||||
|
systemctl --user import-environment
|
||||||
systemctl --user start windowmanager.target
|
systemctl --user start windowmanager.target
|
||||||
sleep 1
|
sleep 1
|
||||||
systemctl --user start autostart.target
|
systemctl --user start autostart.target
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ export PATH
|
|||||||
export EDITOR="nvim"
|
export EDITOR="nvim"
|
||||||
export VISUAL="nvim"
|
export VISUAL="nvim"
|
||||||
export BROWSER="firefox"
|
export BROWSER="firefox"
|
||||||
export TERMBIN="{{ machine.terminal_binary }}"
|
|
||||||
|
|
||||||
export PAGER="less"
|
export PAGER="less"
|
||||||
export LESS="FRX"
|
export LESS="FRX"
|
||||||
@@ -39,9 +38,6 @@ export LC_COLLATE=C
|
|||||||
|
|
||||||
export DOTFILES=~/dotfiles
|
export DOTFILES=~/dotfiles
|
||||||
|
|
||||||
export GOPATH=~/dev/go
|
|
||||||
export GOROOT=/usr/lib/go
|
|
||||||
|
|
||||||
export PATH=$PATH:$(go env GOPATH)/bin
|
export PATH=$PATH:$(go env GOPATH)/bin
|
||||||
|
|
||||||
export ACPI_LID_NAME=LID
|
export ACPI_LID_NAME=LID
|
||||||
@@ -55,6 +51,19 @@ umask 0022
|
|||||||
export {{ k }}="{{ v }}"
|
export {{ k }}="{{ v }}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
export FEATURE_DIR="${RUNDIR}/features/"
|
||||||
|
rm -rf "${FEATURE_DIR}"/
|
||||||
|
mkdir -p "${FEATURE_DIR}"
|
||||||
|
|
||||||
|
[[ $MACHINE_HAS_NEXTCLOUD == "true" ]] && touch "${FEATURE_DIR}"/nextcloud
|
||||||
|
[[ $MACHINE_HAS_KEEPASSX == "true" ]] && touch "${FEATURE_DIR}"/keepassx
|
||||||
|
[[ $MACHINE_HAS_STEAM == "true" ]] && touch "${FEATURE_DIR}"/steam
|
||||||
|
[[ $MACHINE_HAS_DISCORD == "true" ]] && touch "${FEATURE_DIR}"/discord
|
||||||
|
[[ $MACHINE_HAS_RESTIC_BACKUP == "true" ]] && touch "${FEATURE_DIR}"/restic_backup
|
||||||
|
[[ $MACHINE_HAS_ELEMENT == "true" ]] && touch "${FEATURE_DIR}"/element
|
||||||
|
|
||||||
|
[[ $MACHINE_TYPE == "laptop" ]] && touch "${FEATURE_DIR}"/matchine_is_laptop
|
||||||
|
|
||||||
# Make all environment variables also usable in the systemd user instancee
|
# Make all environment variables also usable in the systemd user instancee
|
||||||
systemctl --user import-environment
|
systemctl --user import-environment
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ alias twa="task add"
|
|||||||
alias twd="task done"
|
alias twd="task done"
|
||||||
alias inbox="task add +inbox"
|
alias inbox="task add +inbox"
|
||||||
|
|
||||||
alias yaml2json="python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)'"
|
alias yaml2json="python -c 'import sys, yaml, json; json.dump(yaml.safe_load(sys.stdin), sys.stdout, indent=4)'"
|
||||||
alias json2yaml="python -c 'import sys, yaml, json; yaml.safe_dump(json.loads(sys.stdin.read()), stream=sys.stdout)'"
|
alias json2yaml="python -c 'import sys, yaml, json; yaml.safe_dump(json.loads(sys.stdin.read()), stream=sys.stdout)'"
|
||||||
|
|
||||||
alias currentbranch='git rev-parse --abbrev-ref HEAD'
|
alias currentbranch='git rev-parse --abbrev-ref HEAD'
|
||||||
@@ -241,10 +241,6 @@ man() {
|
|||||||
man "$@"
|
man "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
embiggen() {
|
|
||||||
enscript --no-header --media=A4 --landscape --font="DejaVuSansMono30" -o - | ps2pdf - | zathura -
|
|
||||||
}
|
|
||||||
|
|
||||||
resolvecd() {
|
resolvecd() {
|
||||||
cd "$(readlink -f $(pwd))"
|
cd "$(readlink -f $(pwd))"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ man() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
embiggen() {
|
embiggen() {
|
||||||
enscript --no-header --media=A4 --landscape --font="DejaVuSansMono30" -o - | ps2pdf - | zathura -
|
enscript --no-header --media=A4 --landscape --font="DejaVuSansMono30" -o - 2>/dev/null | ps2pdf - | zathura -
|
||||||
}
|
}
|
||||||
|
|
||||||
resolvecd() {
|
resolvecd() {
|
||||||
|
|||||||
Reference in New Issue
Block a user