~andreafeletto/dotfiles

f351466c2fe6732e715b2fc1054dfe44ac8fa70e — Andrea Feletto 3 years ago 08826ab
wayland
30 files changed, 327 insertions(+), 554 deletions(-)

M README.md
D directories
D etc/X11/xdm/Xresources
D etc/gemrc
M etc/greetd/config.toml
D etc/hostname
D etc/hosts
D etc/locale.conf
D etc/ly/config.ini
M etc/pacman.conf
M etc/pacman.d/hooks/mirrorupgrade.hook
M etc/pacreport.conf
D etc/systemd/sleep.conf
A foot/.config/foot/foot.ini
D gitrepos
D install
D npm/.config/npm/npmrc
M packages
D pictures/screenshot.png
A river/.config/river/init
A river/.local/bin/wm
D sh/.local/bin/matlab-desktop
D sxhkd/.config/sxhkd/sxhkdrc
D sxiv/.config/sxiv/exec/key-handler
D tostow
D twmnd/.config/twmn/twmn.conf
A waybar/.config/waybar/config
A waybar/.config/waybar/style.css
D x11/.xinitrc
D xdg/.local/share/applications/matlab.desktop
M README.md => README.md +15 -83
@@ 1,83 1,15 @@
My Dotfiles
===========

Table of Contents
-----------------

<!-- vim-markdown-toc GFM -->

* [Screenshot](#screenshot)
* [Main Software](#main-software)
* [The `install` script](#the-install-script)
    * [Dependencies](#dependencies)
    * [Usage](#usage)
* [Major Scripts](#major-scripts)
    * [opass](#opass)
    * [status](#status)

<!-- vim-markdown-toc -->

Screenshot
----------

![screenshot](./pictures/screenshot.png)

Main Software
-------------

| Type                    | Program          |
|-------------------------|------------------|
| Display Manager         | greetd           |
| Window Manager          | dwm              |
| Terminal Emulator       | st               |
| Editor                  | vis              |
| Browser                 | chromium         |
| App Launcher            | dmenu            |
| Hotkey Daemon           | sxhkd            |
| Network Manager         | networkmanager   |
| Notifications           | twmn             |
| Usb Auto-Mounting       | udiskie          |

The `install` script
--------------------

### Dependencies

- `bash`
- `git`
- `stow`

### Usage

Download the required dependencies:
```sh
sudo pacman -Syu git stow
```
Clone this repository into the home directory:
```sh
git clone https://github.com/andreafeletto/dotfiles.git
```
Move into the repository and run the install script:
```sh
cd dotfiles
./install --all
```

Major Scripts
-------------

### opass

**Dependencies**: `op`, `dmenu`, `jq`, `xclip`

Wrapper for the 1Password cli tool `op` written in POSIX-compliant shell script.
Requires `dmenu` with the password patch applied.

### status

**Dependencies**: `xsetroot`, `pulseaudio`

Statusbar daemon for `dwm` written in POSIX-compliant shell script.
The bar updates automatically every 10 seconds and 
can be manually refreshed with a USR1 signal.

# archlinux setup

| software | description        |
|----------|--------------------|
| river    | wayland compositor |
| waybar   | statusbar          |
| foot     | terminal emulator  |
| bash     | shell              |
| vis      | text editor        |
| fff      | file manager       |
| amfora   | gemini browser     |
| firefox  | web browser        |
| imv      | image viewer       |
| mpv      | media player       |
| pipewire | audio backend      |

D directories => directories +0 -19
@@ 1,19 0,0 @@

# Bash
.cache/bash

# Go
.local/share/go

# Less
.cache/less

# OpenSSL
.local/share/openssl

# Python
.local/share/python

# X11
.local/share/xorg


D etc/X11/xdm/Xresources => etc/X11/xdm/Xresources +0 -50
@@ 1,50 0,0 @@

Xcursor.theme: Adwaita
Xcursor.size: 16

xlogin*login.translations: #override \
	Ctrl<Key>R: abort-display()\n\
	<Key>F1: set-session-argument(failsafe) finish-field()\n\
	<Key>Delete: delete-character()\n\
	<Key>Left: move-backward-character()\n\
	<Key>Right: move-forward-character()\n\
	<Key>Home: move-to-begining()\n\
	<Key>End: move-to-end()\n\
	Ctrl<Key>KP_Enter: set-session-argument(failsafe) finish-field()\n\
	<Key>KP_Enter: set-session-argument() finish-field()\n\
	Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\
	<Key>Return: set-session-argument() finish-field()

xlogin*greeting: CLIENTHOST
xlogin*namePrompt: ::
xlogin*passwdPrompt: ::
xlogin*fail: wrong password
xlogin*echoPasswd: true

xlogin.Login.greetFace: Ubuntu Nerd Font-13
xlogin.Login.face: Ubuntu Nerd Font-12
xlogin.Login.promptFace: Ubuntu Nerd Font-12:style=Bold
xlogin.Login.failFace: Ubuntu Nerd Font-12:style=Bold

xlogin.Login.borderWidth: 0
xlogin.Login.frameWidth: 0
xlogin.Login.innerFramesWidth: 0
xlogin.Login.sepWidth: 0

xlogin.Login.width: 550
xlogin.Login.height: 250

xlogin.Login.background: #0f1013 
xlogin.Login.foreground: #D2D2D2
xlogin.Login.inpColor:   #717171

xlogin.Login*shdColor: #0f1013
xlogin.Login*hiColor: #0f1013

*Background: #717171
*Foreground: #717171

xlogin.Login.greetColor: #717171
xlogin.Login.promptColor: #717171
xlogin.Login.failColor: #aa0000


D etc/gemrc => etc/gemrc +0 -6
@@ 1,6 0,0 @@
# Read about the gemrc format at http://guides.rubygems.org/command-reference/#gem-environment

# --user-install is used to install to $HOME/.gem/ by default since we want to separate
#                pacman installed gems and gem installed gems
# gem: --user-install
{}

M etc/greetd/config.toml => etc/greetd/config.toml +1 -1
@@ 2,4 2,4 @@
vt = 1

[default_session]
command = "tuigreet --remember --time --asterisks --cmd 'startx 2> /dev/null'"
command = "tuigreet --remember --time --asterisks --cmd /home/andrea/.local/bin/wm"

D etc/hostname => etc/hostname +0 -1
@@ 1,1 0,0 @@
spectre

D etc/hosts => etc/hosts +0 -5
@@ 1,5 0,0 @@
# Static table lookup for hostnames.
# See hosts(5) for details.

127.0.0.1	localhost
::1		localhost

D etc/locale.conf => etc/locale.conf +0 -1
@@ 1,1 0,0 @@
LANG=en_US.UTF8

D etc/ly/config.ini => etc/ly/config.ini +0 -103
@@ 1,103 0,0 @@
# animation enabled
#animate = false
#animate = true

# the active animation (only animation '0' available for now)
#animation = 0

# the char used to mask the password
#asterisk = *
#asterisk = o

# background color id
#bg = 0

# blank main box
#blank_box = true

# erase password input on failure
#blank_password = false
#blank_password = true

# console path
#console_dev = /dev/console

# input active by default on startup
default_input = 2

# foreground color id
#fg = 9

# remove main box borders
#hide_borders = false
#hide_borders = true

# number of visible chars on an input
#input_len = 34

# active language
lang = it

# load the saved desktop and login
#load = true

# main box margins
#margin_box_h = 2
#margin_box_v = 1

# total input sizes
#max_desktop_len = 100
#max_login_len = 255
#max_password_len = 255

# cookie generator
#mcookie_cmd = /usr/bin/mcookie

# event timeout in milliseconds
#min_refresh_delta = 5

# default path
#path = /sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin

# command executed when pressing F2
#restart_cmd = /sbin/shutdown -r now

# save the current desktop and login as defaults
#save = true

# file in which to save and load the default desktop and login
#save_file = /etc/ly/save

# service name (set to ly to use the provided pam config file)
#service_name = ly

# command executed when pressing F1
#shutdown_cmd = /sbin/shutdown -a now

# terminal reset command (tput is faster)
#term_reset_cmd = /usr/bin/tput reset

# tty in use
#tty = 2

# wayland setup command
#wayland_cmd = /etc/ly/wsetup.sh

# add wayland specifier to session names
#wayland_specifier = false
#wayland_specifier = true

# wayland desktop environments
#waylandsessions = /usr/share/wayland-sessions

# xorg server command
#x_cmd = /usr/bin/X

# xorg setup command
#x_cmd_setup = /etc/ly/xsetup.sh

# xorg xauthority edition tool
#xauth_cmd = /usr/bin/xauth

# xorg desktop environments
#xsessions = /usr/share/xsessions

M etc/pacman.conf => etc/pacman.conf +1 -10
@@ 1,20 1,11 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

[options]

HoldPkg     	= pacman glibc
Architecture 	= auto

NoExtract	= etc/pacman.d/mirrorlist

Color
TotalDownload
CheckSpace

SigLevel    = Required DatabaseOptional
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional

[core]

M etc/pacman.d/hooks/mirrorupgrade.hook => etc/pacman.d/hooks/mirrorupgrade.hook +1 -1
@@ 8,4 8,4 @@ Target = pacman-mirrorlist
Description = Updating pacman-mirrorlist with reflector and removing pacnew...
When = PostTransaction
Depends = reflector
Exec = /bin/sh -c "reflector --country Italy --country Austria --protocol https --sort rate --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"
Exec = /bin/sh -c "reflector --country Italy,Austria,Germany --protocol https --sort rate --latest 5 --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"

M etc/pacreport.conf => etc/pacreport.conf +3 -0
@@ 12,6 12,8 @@ IgnoreUnowned = etc/vconsole.conf
IgnoreUnowned = etc/.pwd.lock
IgnoreUnowned = etc/ca-certificates/*
IgnoreUnowned = usr/share/fonts/*
IgnoreUnowned = usr/local/bin/*
IgnoreUnowned = usr/lib/ghc-8.10.4/package.conf.d/*

[PkgIgnoreUnowned]



@@ 27,3 29,4 @@ glibc = etc/ld.so.cache
ghc = usr/lib/ghc-*/package.conf.d/*
pacutils = etc/pacreport.conf
mkinitcpio = etc/mkinitcpio.d/*
fontconfig = etc/fonts/conf.d/*

D etc/systemd/sleep.conf => etc/systemd/sleep.conf +0 -25
@@ 1,25 0,0 @@
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See systemd-sleep.conf(5) for details

[Sleep]
#AllowSuspend=yes
AllowHibernation=yes
#AllowSuspendThenHibernate=yes
#AllowHybridSleep=yes
#SuspendMode=
#SuspendState=mem standby freeze
HibernateMode=platform shutdown
HibernateState=disk
#HybridSleepMode=suspend platform shutdown
#HybridSleepState=disk
#HibernateDelaySec=180min

A foot/.config/foot/foot.ini => foot/.config/foot/foot.ini +135 -0
@@ 0,0 1,135 @@

# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no

font=JetBrainsMono-Regular:size=8
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# box-drawings-uses-font-glyphs=no
# dpi-aware=yes

# initial-window-size-pixels=700x500  # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
# pad=2x2                             # optionally append 'center'
# resize-delay-ms=100

# notify=notify-send -a foot -i foot ${title} ${body}
# url-launch=xdg-open ${url}

# bold-text-in-bright=no
# bell=none
# word-delimiters=,│`|:"'()[]{}<>
# jump-label-letters=sadfjklewcmpgh
# selection-target=primary
# workers=<number of logical CPUs>
# osc8-underline=url-mode

[scrollback]
# lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=

[cursor]
# style=block
# color=111111 dcdccc
# blink=no

[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes

[colors]
# alpha=1.0
# foreground=dcdccc
# background=111111
# regular0=222222  # black
# regular1=cc9393  # red
# regular2=7f9f7f  # green
# regular3=d0bf8f  # yellow
# regular4=6ca0a3  # blue
# regular5=dc8cc3  # magenta
# regular6=93e0e3  # cyan
# regular7=dcdccc  # white
# bright0=666666   # bright black
# bright1=dca3a3   # bright red
# bright2=bfebbf   # bright green
# bright3=f0dfaf   # bright yellow
# bright4=8cd0d3   # bright blue
# bright5=fcace3   # bright magenta
# bright6=b3ffff   # bright cyan
# bright7=ffffff   # bright white
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3>
# urls=<regular3>

[csd]
# preferred=server
# size=26
# color=<foreground color>
# button-width=26
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>

[key-bindings]
scrollback-up-line=Mod1+k
scrollback-down-line=Mod1+j
clipboard-copy=Mod1+c
clipboard-paste=Mod1+v
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
font-increase=Mod1+Shift+k
font-decrease=Mod1+Shift+j
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
show-urls-launch=Mod1+l
# show-urls-copy=none

[search-bindings]
# cancel=Control+g Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-to-word-boundary=Control+w
# extend-to-next-whitespace=Control+Shift+w
# clipboard-paste=Control+v Control+y
# primary-paste=Shift+Insert

[url-bindings]
# cancel=Control+g Control+d Escape
# toggle-url-visible=t

[mouse-bindings]
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-row=BTN_LEFT-3

D gitrepos => gitrepos +0 -3
@@ 1,3 0,0 @@
dmenu
st
dwm

D install => install +0 -117
@@ 1,117 0,0 @@
#!/bin/sh

Version='0.1.0'
PrgName=${0##*/}

GitUrl='https://github.com/andreafeletto'
GitDir="$HOME/repos"

ConfigDir=${XDG_CONFIG_HOME:-$HOME/.config}

Usage() {
	while read -r Line; do
		printf '%b\n' "$Line"
	done <<-EOF
		\rUsage: $PrgName OPTION...
		\rInstall dotfiles and programs.

		\rOptions:
		\r  -h, --help, -?              display this help
		\r  -v, --version               output version information

		\r  -s, --stow                  stow directories listed in ./tostow
		\r  -g, --git                   install from a git remote
		\r  -p, --pacman                install from ABR and AUR
		\r  --all                       install from all sources and stow

		\rFiles:
		\r  packages                    ABR and AUR packages
		\r  services                    systemd services to enable
		\r  tostow                      directories to stow
	EOF
}

Die() {
	printf 'error: %s\n' "${1:-generic}" >&2
	exit "${2:-1}"
}

Warn() {
	printf 'warning: %s\n' "${1:-generic}" >&2
}

Title() {
	printf '\n\033[0;31m%s\033[0m\n\n' "$1"
}

StowDirs() {
    Paths=$(while read -r S; do find "$S" -mindepth 1 -type d; done < tostow)
    for P in $Paths; do
        mkdir -p "$HOME/${P#*/}"
    done
}

ExtraDirs() {
    if [ -r directories ]; then
        grep -v '^$\|^#' directories | while read -r Dir; do
            mkdir -p "$HOME/$Dir"
        done
    fi
}

Stow=''
Git=''
Pacman=''

while [ -n "$1" ]; do
    case $1 in
        --help|-h|-\?)
            Usage; exit 0 ;;
        --version|-v)
            printf '%s\n' "$Version"; exit 0 ;;
		-s|--stow)
			Stow='true' ;;
        -g|--git)
            Git='true' ;;
        -p|--pacman)
            Pacman='true' ;;
        --all)
            Stow='true'; Git='true'; Pacman='true' ;;
        *)
            Die "invalid option: \"$1\"" ;;
    esac
    shift
done

if [ -n "$Stow" ]; then
	Title 'Stowing'
    StowDirs
    ExtraDirs
	rm -f "$ConfigDir/user-dirs.dirs"
	xargs -a tostow stow
    printf 'done stowing.\n'
fi

if [ -n "$Git" ]; then
    Title 'Installing from Git'
    mkdir -p "$GitDir" 
    while read -r Repo; do
        Dir="$GitDir/$Repo"
        if [ -d "$Dir" ]; then
			Warn "$Repo already cloned. skipping."
			continue
        fi
        git clone -q "$GitUrl/$Repo.git" "$Dir"
        sudo make --directory="$Dir" install clean
    done < gitrepos
fi

if [ -n "$Pacman" ]; then
    Title 'Installing ABR and AUR Packages'
    grep -v '^$\|^#' packages | yay -Syu --needed - \
	--asexplicit \
        --answerclean None \
        --answerdiff None \
        --answerupgrade ''
fi


D npm/.config/npm/npmrc => npm/.config/npm/npmrc +0 -3
@@ 1,3 0,0 @@
cache=${XDG_CACHE_HOME}/npm
tmp=${XDG_RUNTIME_DIR}/npm
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js

M packages => packages +3 -2
@@ 1,13 1,14 @@

# login
# desktop
gammastep
greetd
greetd-tuigreet-bin
waybar

# file manager
fff

# desktop daemons
sxhkd
udiskie
network-manager-applet
twmn-git

D pictures/screenshot.png => pictures/screenshot.png +0 -0
A river/.config/river/init => river/.config/river/init +61 -0
@@ 0,0 1,61 @@
#!/bin/sh

mod="Mod4"

riverctl map normal $mod Q spawn dmenu_run
riverctl map normal $mod W spawn $BROWSER
riverctl map normal $mod E spawn $TERMINAL
riverctl map normal $mod A spawn $TERMINAL fff
riverctl map normal $mod G spawn $TERMINAL amfora

riverctl map normal $mod BackSpace close
riverctl map normal $mod+Shift BackSpace exit

riverctl map normal $mod J focus-view next
riverctl map normal $mod K focus-view previous
riverctl map normal $mod H mod-layout-value rivertile fixed main_factor -0.05
riverctl map normal $mod L mod-layout-value rivertile fixed main_factor +0.05

riverctl map normal $mod M toggle-fullscreen
riverctl map normal $mod Space toggle-float
riverctl map normal $mod Return zoom

riverctl map-pointer normal $mod BTN_LEFT move-view
riverctl map-pointer normal $mod+Shift BTN_LEFT resize-view

for i in $(seq 1 9); do
    tags=$((1 << ($i - 1)))
    riverctl map normal $mod $i set-focused-tags $tags
    riverctl map normal $mod+Shift $i set-view-tags $tags
    riverctl map normal $mod+Control $i toggle-focused-tags $tags
    riverctl map normal $mod+Shift+Control $i toggle-view-tags $tags
done

for mode in normal locked; do
	riverctl map $mode None XF86AudioRaiseVolume spawn \
		pulsemixer --unmute --change-volume +5
	riverctl map $mode None XF86AudioLowerVolume spawn \
		pulsemixer --unmute --change-volume -5
	riverctl map $mode None XF86AudioMute spawn \
		pulsemixer --toggle-mute
	riverctl map $mode None XF86MonBrightnessUp spawn \
		brightnessctl s +5%
	riverctl map $mode None XF86MonBrightnessDown spawn \
		brightnessctl s 5%-
	riverctl map $mode None Print spawn \
		screenshot
	riverctl map $mode Shift Print spawn \
		screenshot region
done

# Set repeat rate
riverctl set-repeat 50 200

riverctl spawn waybar
riverctl spawn gammastep
riverctl spawn nm-applet --indicator
riverctl spawn blueman-applet
riverctl spawn udiskie --automount --no-notify --smart-tray --menu flat

riverctl default-layout rivertile
exec rivertile -main-factor 0.5 -view-padding 0 -outer-padding 0

A river/.local/bin/wm => river/.local/bin/wm +7 -0
@@ 0,0 1,7 @@
#/bin/sh

export XDG_SESSION_TYPE=wayland
export XKB_DEFAULT_LAYOUT=it
export XKB_DEFAULT_OPTIONS="caps:swapescape"
export _JAVA_AWT_WM_NONREPARENTING=1
river

D sh/.local/bin/matlab-desktop => sh/.local/bin/matlab-desktop +0 -3
@@ 1,3 0,0 @@
#!/bin/sh

dex .local/share/applications/matlab.desktop

D sxhkd/.config/sxhkd/sxhkdrc => sxhkd/.config/sxhkd/sxhkdrc +0 -30
@@ 1,30 0,0 @@

super + q
    dmenu_run
super + w
    $BROWSER
super + e
    $TERMINAL
super + a
    $TERMINAL -e fff
super + g
    $TERMINAL -e amfora
super + o
    xdg-open "$(dbrowse)"
super + p
    opass -p -y
ctrl + super + space
    slock

{XF86MonBrightnessDown,XF86MonBrightnessUp}
    xbacklight {-dec,-inc} 5; pkill -USR1 cstatus
{XF86AudioLowerVolume,XF86AudioRaiseVolume}
    pulsemixer --unmute --change-volume {-,+}5; pkill -USR1 cstatus
XF86AudioMute
    pulsemixer --toggle-mute; pkill -USR1 cstatus

Print
    screenshot

super + shift + Delete
    prompt "Shutdown?" "shutdown now"

D sxiv/.config/sxiv/exec/key-handler => sxiv/.config/sxiv/exec/key-handler +0 -14
@@ 1,14 0,0 @@
#!/bin/sh

while read file; do
	case "$1" in
	'r')
		convert -rotate 90 "$file" "$file" ;;
	'R')
		convert -rotate -90 "$file" "$file" ;;
	'f')
		convert -flop "$file" "$file" ;;
	'y')
		printf '%s' "$file" | xclip -selection clipboard ;;
	esac
done

D tostow => tostow +0 -16
@@ 1,16 0,0 @@
alacritty
bash
git
gtk
latex
mpv
neovim
npm
python
readline
sh
sxhkd
sxiv
twmnd
x11
xdg

D twmnd/.config/twmn/twmn.conf => twmnd/.config/twmn/twmn.conf +0 -32
@@ 1,32 0,0 @@
[gui]
always_on_top=true
background_color=#000000
foreground_color=#F92672
bounce=true
bounce_duration=500
font=monospace
font_size=14
font_variant=medium
height=21
in_animation=38
in_animation_duration=1000
max_length=-1
offset_x=0
offset_y=0
opacity=100
out_animation=13
out_animation_duration=1000
position=top_right
screen=

[icons]
critical_icon=
info_icon=
warning_icon=

[main]
activate_command=
duration=8000
host=127.0.0.1
port=9797
sound_command=

A waybar/.config/waybar/config => waybar/.config/waybar/config +55 -0
@@ 0,0 1,55 @@
{
	"layer": "top",
	"position": "top",
	"height": 32,

	"modules-left": [
		"river/tags"
	],
	"modules-center": [
		"clock"
	],
	"modules-right": [
		"backlight",
		"pulseaudio",
		"battery",
		"tray"
	],

	"river/tags": {
	},
	"clock": {
		"interval": 30,
		"format": "{:%d %b %Y - %H:%M}",
		"tooltip": false
	},
	"backlight": {
		"format": "💡 {percent}%"
	},
	"pulseaudio": {
		"format": "{icon} {volume:2}%",
		"format-bluetooth": "{icon}  {volume}%",
		"format-muted": "🔇",
		"format-icons": {
			"headphones": "",
			"default": [
				"🔊",
				"🔊"
			]
		},
		"tooltip": false
	},
	"battery": {
		"states": {
			"good": 95,
			"warning": 30,
			"critical": 15
		},
		"format": "{icon} {capacity}%",
		"format-icons": ["", "", "", "", ""],
		"tooltip": false
	},
	"tray": {
		"icon-size": 22
	}
}

A waybar/.config/waybar/style.css => waybar/.config/waybar/style.css +45 -0
@@ 0,0 1,45 @@
* {
	font-size: 16px;
	font-family: JetBrainsMono;
	border: none;
	border-radius: 0;
}

window#waybar {
	background: black;
	color: ghostwhite;
}

#clock,
#battery,
#backlight,
#pulseaudio {
	padding: 0 10px;
	margin: 0 4px;
}

#window,
#tags {
	padding: 0 0;
	margin: 0 0;
}

#tags button {
	padding: 0 10px;
	margin: 0;
}

#tags button.occupied {
	border: 2px solid lightgrey;
	padding: 0 8px;
}

#tags button.focused {
	background: lightgrey;
	color: black;
}

#battery.critical:not(.charging) {
    background-color: darkred;
    color: #ffffff;
}

D x11/.xinitrc => x11/.xinitrc +0 -18
@@ 1,18 0,0 @@
#!/bin/sh

xset b off
xset r rate 200 50

setxkbmap -layout it
setxkbmap -option "caps:swapescape"

export _JAVA_AWT_WM_NONREPARENTING='1'

sxhkd &
nm-applet &
udiskie --automount --no-notify --smart-tray --menu flat &
blueman-applet &
twmnd &
cstatus >/dev/null &

exec dwm

D xdg/.local/share/applications/matlab.desktop => xdg/.local/share/applications/matlab.desktop +0 -11
@@ 1,11 0,0 @@
[Desktop Entry]
Version=2019a
Type=Application
Terminal=false
MimeType=text/x-matlab
Exec=env _JAVA_AWT_WM_NONREPARENTING=1 /home/andrea/matlab/R2019a/bin/matlab -desktop
Name=MATLAB
Icon=matlab
Categories=Development;Math;Science
Comment=Scientific computing environment
StartupNotify=true