diff --git a/README.md b/README.md
index 1453eb5..0aa9370 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,29 @@ Arch will be installed on the same disk with btrfs suvolumes for partitions
## Post installation
-https://aur.archlinux.org/packages/paru
-This scripts works with paru.
-This scripts need to be launched as root
\ No newline at end of file
+This scripts need to be launched as root
+
+## Arch installation
+
+- Change DISK variable to the install.sh script with your favourite editor.
+- Launch script
+
+## For testing purpose (kvm only)
+
+You can share filesystem from host to guest (https://wiki.archlinux.org/title/Libvirt#Sharing_data_between_host_and_guest) :
+
+Share scripts :
+
+```
+mount -t 9p scripts /opt
+```
+
+Share pacman cache :
+
+```
+mount -t 9p pkgs /var/cache/pacman/pkg
+```
+
+## Arch configuration
+
+git with output to /usr/local/hsare/dotfiles
\ No newline at end of file
diff --git a/TODO b/TODO
index 0e84c0a..33e58a5 100644
--- a/TODO
+++ b/TODO
@@ -4,4 +4,5 @@ dynamic colors
dmenu
picom
dunst
-polybar
\ No newline at end of file
+polybar
+color to kernel cmdline
\ No newline at end of file
diff --git a/X11/00-keyboard.conf b/X11/00-keyboard.conf
deleted file mode 100644
index bd7c263..0000000
--- a/X11/00-keyboard.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-Section "InputClass"
- Identifier "system-keyboard"
- MatchIsKeyboard "on"
- Option "XkbLayout" "us_qwerty-fr"
- Option "XkbModel" "pc105"
- Option "XkbVariant" "qwerty-fr"
- Option "XkbOptions" ""
-EndSection
diff --git a/X11/deploy.sh b/X11/deploy.sh
deleted file mode 100755
index ff7aa76..0000000
--- a/X11/deploy.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-#Switch to the script directory
-_BASENAME=$(basename "$0")
-cd "$(dirname "$0")" || _exit 1
-
-cp xinitrc /etc/X11/xinit/xinitrc
-cp .Xresources /etc/X11/xinit/.Xresources
-cp 00-keyboard.conf /etc/X11/xorg.conf.d/00-keyboard.conf
-
-wget https://raw.githubusercontent.com/qwerty-fr/qwerty-fr/master/linux/us_qwerty-fr -O /tmp/us_qwerty-fr
-cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/us_qwerty-fr
-cat /tmp/us_qwerty-fr >> /usr/share/X11/xkb/symbols/us_qwerty-fr
diff --git a/archinstall/README.md b/archinstall/README.md
deleted file mode 100644
index affd01f..0000000
--- a/archinstall/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Arch install script
-
-## How to
-
-- Change DISK variable to the install.sh script with your favourite editor.
-- Launch script
-
-## For testing purpose (kvm only)
-
-You can share filesystem from host to guest (https://wiki.archlinux.org/title/Libvirt#Sharing_data_between_host_and_guest) :
-
-Share scripts :
-
-```
-mount -t 9p scripts /opt
-```
-
-Share pacman cache :
-
-```
-mount -t 9p pkg /var/cache/pacman/pkg
-```
diff --git a/configure.sh b/configure.sh
index 4eddb2c..21b3d2d 100755
--- a/configure.sh
+++ b/configure.sh
@@ -2,21 +2,65 @@
set -e
-#Switch to the script directory
+### Switch to the script directory
_BASENAME=$(basename "$0")
+_DIRNAME=$(dirname "$0")
cd "$(dirname "$0")" || _exit 1
+source functions.sh
-scripts/installyay.sh
-
+### install packages
sed -i "s|^#Color.*|Color|" /etc/pacman.conf
sed -i "s|^#ParallelDownloads.*|ParallelDownloads = 10|" /etc/pacman.conf
-yay
-yay -S --noconfirm - < packages
+#pacman -Syu --noconfirm
+#pacman -S --noconfirm - < packages
-tty/deploy.sh
-network/deploy.sh
-X11/deploy.sh
-i3wm/deploy.sh
+### Configure tty
+mkdir -p /etc/systemd/system/getty@tty1.service.d
+ln -sf "${_DIRNAME}/links/tty/autologin.conf" /etc/systemd/system/getty@tty1.service.d/override.conf
+ln -sf "${_DIRNAME}/links/tty/bash.bashrc" /etc/bash.bashrc
+ln -sf "${_DIRNAME}/links/tty/bash.bashaliases" /etc/bash.bashaliases
+ln -sf "${_DIRNAME}/links/tty/bash.bashexports" /etc/bash.bashexports
+ln -sf "${_DIRNAME}/links/tty/inputrc" /etc/inputrc
+ln -sf "${_DIRNAME}/links/tty/issue" /etc/issue
-cp -r wallpapers /usr/local/share
\ No newline at end of file
+### Configure X11
+cp ./templates/X11/.Xresources ./links/X11/.Xresources
+_template "./links/X11/.Xresources"
+ln -sf "${_DIRNAME}/links/X11/.Xresources" /etc/X11/xinit/.Xresources
+ln -sf "${_DIRNAME}/links/X11/xinitrc" /etc/X11/xinit/xinitrc
+ln -sf "${_DIRNAME}/links/X11/00-keyboard.conf" /etc/X11/xorg.conf.d/00-keyboard.conf
+cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/us_qwerty-fr
+curl https://raw.githubusercontent.com/qwerty-fr/qwerty-fr/master/linux/us_qwerty-fr >> /usr/share/X11/xkb/symbols/us_qwerty-fr
+xrdb /etc/X11/xinit/.Xresources
+
+### Configure i3
+mkdir -p ~/.config/i3
+ln -sf "${_DIRNAME}/links/i3wm/config" ~/.config/i3/config
+
+### Configure rofi
+cp ./templates/rofi/colors.rasi ./links/rofi/colors.rasi
+_template "./links/rofi/colors.rasi"
+mkdir -p ~/.config/rofi
+mkdir -p ~/.local/share/rofi/themes
+ln -sf "${_DIRNAME}/links/rofi/config.rasi" ~/.config/rofi/config.rasi
+ln -sf "${_DIRNAME}/links/rofi/colors.rasi" ~/.local/share/rofi/themes/colors.rasi
+ln -sf "${_DIRNAME}/links/rofi/disconnect.rasi" ~/.local/share/rofi/themes/disconnect.rasi
+ln -sf "${_DIRNAME}/links/rofi/launcher.rasi" ~/.local/share/rofi/themes/launcher.rasi
+
+### Configure polybar
+cp ./templates/polybar/config.ini ./links/polybar/config.ini
+_template "./links/polybar/config.ini"
+ln -sf "${_DIRNAME}/links/polybar/config.ini" /etc/polybar/config.ini
+
+### Configure dunst
+cp ./templates/dunst/dunstrc ./links/dunst/dunstrc
+_template "./links/dunst/dunstrc"
+ln -sf "${_DIRNAME}/links/dunst/dunstrc" /etc/dunst/dunstrc
+
+### Configure picom
+ln -sf "${_DIRNAME}/links/picom/picom.conf" /etc/xdg/picom.conf
+
+### Applications
+mkdir -p ~/.local/share/applications
+ln -sf "${_DIRNAME}/links/applications/code.desktop" ~/.local/share/applications/code.desktop
diff --git a/functions.sh b/functions.sh
new file mode 100644
index 0000000..2a2b4f0
--- /dev/null
+++ b/functions.sh
@@ -0,0 +1,28 @@
+function _template {
+ source ./templates/variables
+ sed -i "s|{{foreground}}|$foreground|" "$1"
+ sed -i "s|{{foreground_light}}|$foreground_light|" "$1"
+ sed -i "s|{{foreground_lighter}}|$foreground_lighter|" "$1"
+ sed -i "s|{{background}}|$background|" "$1"
+ sed -i "s|{{background_light}}|$background_light|" "$1"
+ sed -i "s|{{background_dark}}|$background_dark|" "$1"
+ sed -i "s|{{background_darker}}|$background_darker|" "$1"
+ sed -i "s|{{cursor_color}}|$cursor_color|" "$1"
+ sed -i "s|{{color0}}|$color0|" "$1"
+ sed -i "s|{{color8}}|$color8|" "$1"
+ sed -i "s|{{color1}}|$color1|" "$1"
+ sed -i "s|{{color9}}|$color9|" "$1"
+ sed -i "s|{{color2}}|$color2|" "$1"
+ sed -i "s|{{color10}}|$color10|" "$1"
+ sed -i "s|{{color3}}|$color3|" "$1"
+ sed -i "s|{{color11}}|$color11|" "$1"
+ sed -i "s|{{color4}}|$color4|" "$1"
+ sed -i "s|{{color12}}|$color12|" "$1"
+ sed -i "s|{{color5}}|$color5|" "$1"
+ sed -i "s|{{color13}}|$color13|" "$1"
+ sed -i "s|{{color6}}|$color6|" "$1"
+ sed -i "s|{{color14}}|$color14|" "$1"
+ sed -i "s|{{color7}}|$color7|" "$1"
+ sed -i "s|{{color15}}|$color15|" "$1"
+}
+
diff --git a/i3wm/deploy.sh b/i3wm/deploy.sh
deleted file mode 100755
index e444a3e..0000000
--- a/i3wm/deploy.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-#Switch to the script directory
-_BASENAME=$(basename "$0")
-cd "$(dirname "$0")" || _exit 1
-
-cp config /etc/i3/config
-cp i3wm_key_help.sh /etc/i3/i3wm_key_help.sh
-cp wallpapers.sh /etc/i3/wallpapers.sh
\ No newline at end of file
diff --git a/i3wm/wallpapers.sh b/i3wm/wallpapers.sh
deleted file mode 100755
index 50676fb..0000000
--- a/i3wm/wallpapers.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-_LINES=$(ps -eo pid,cmd | grep wallpaper | \
- grep -v grep | grep -v $$ | awk '{print $1}' | tr '\n' ' ')
-
-for i in $_LINES
-do
- kill $i
-done
-
-while (( $(pgrep i3) ))
-do
- feh --randomize --bg-max /usr/local/share/wallpapers
- sleep 10
-done
diff --git a/archinstall/install.sh b/install.sh
similarity index 69%
rename from archinstall/install.sh
rename to install.sh
index 882f429..6731a30 100755
--- a/archinstall/install.sh
+++ b/install.sh
@@ -1,11 +1,14 @@
#!/bin/bash
-DISK="/dev/sdc"
-MOUNTOPTS="defaults,ssd,compress=zstd,autodefrag,noatime"
-PASSWORD="root"
-
set -e
+DISK="/dev/vda"
+MOUNTOPTS="defaults,ssd,compress=zstd,autodefrag,noatime"
+PACSTRAP_EXTRA_ARGS="-c"
+#Switch to the script directory
+cd "$(dirname "$0")"
+DIRNAME="$(pwd)"
+
# Format disk
sgdisk --clear \
--new=1:0:+1024MiB --typecode=1:ef00 --change-name=1:EFI \
@@ -14,8 +17,8 @@ sgdisk --clear \
partprobe "$DISK"
#Create Luks partition
-printf "%s\n" "$PASSWORD" | cryptsetup --batch-mode --verify-passphrase luksFormat /dev/disk/by-partlabel/SYS
-printf "%s\n" "$PASSWORD" | cryptsetup open /dev/disk/by-partlabel/SYS rootfs
+printf "%s\n" "root" | cryptsetup --batch-mode --verify-passphrase luksFormat /dev/disk/by-partlabel/SYS
+printf "%s\n" "root" | cryptsetup open /dev/disk/by-partlabel/SYS rootfs
#Create filesystem
mkfs.fat -F32 -n efi /dev/disk/by-partlabel/EFI
@@ -25,22 +28,20 @@ mkfs.btrfs -f --label root /dev/mapper/rootfs
mount -o $MOUNTOPTS /dev/mapper/rootfs /mnt
cd /mnt
btrfs subvolume create @
-btrfs subvolume create @readonly
btrfs subvolume create @root
btrfs subvolume create @home
btrfs subvolume create @var
-cd
+cd "$DIRNAME"
umount /mnt
#Mount volumes
mount --mkdir -o $MOUNTOPTS,subvol=@ /dev/mapper/rootfs /mnt
-mount --mkdir -o $MOUNTOPTS,subvol=@readonly /dev/mapper/rootfs /mnt/readonly
mount --mkdir -o $MOUNTOPTS,subvol=@root /dev/mapper/rootfs /mnt/root
mount --mkdir -o $MOUNTOPTS,subvol=@home /dev/mapper/rootfs /mnt/home
mount --mkdir -o $MOUNTOPTS,subvol=@var /dev/mapper/rootfs /mnt/var
mount --mkdir /dev/disk/by-partlabel/EFI /mnt/boot
-#Init pacman keys
+#Init pacman
pacman-key --init
pacman-key --populate
pacman -Sy
@@ -48,8 +49,8 @@ pacman -Sy
sed -i "s|^#Color.*|Color|" /etc/pacman.conf
sed -i "s|^#ParallelDownloads.*|ParallelDownloads = 10|" /etc/pacman.conf
-##Install base
-pacstrap -c -K /mnt \
+#Install base
+pacstrap "$PACSTRAP_EXTRA_ARGS" -K /mnt \
base \
base-devel \
linux \
@@ -65,11 +66,7 @@ pacstrap -c -K /mnt \
#Generate fstab
genfstab -U /mnt | sed "s/subvolid=[0-9]\{3\},//" > /mnt/etc/fstab
-#Configure installation
-cd /mnt/bin
-ln -s nvim vi
-cd
-
+#Configure boot environnement
sed -i "/^HOOKS/s|block|block encrypt btrfs|" /mnt/etc/mkinitcpio.conf
sed -i "s|^BINARIES.*|BINARIES=\(btrfs\)|" /mnt/etc/mkinitcpio.conf
@@ -83,24 +80,35 @@ sed -i "s|^#default_options|default_options|" /mnt/etc/mkinitcpio.d/linux.preset
arch-chroot /mnt mkinitcpio -P
-efibootmgr --create --disk /dev/vda --part 1 --label "Arch Linux" --loader 'arch-linux.efi'
+efibootmgr --create --disk $DISK --part 1 --label "Arch Linux" --loader 'arch-linux.efi'
+#Configure installation
+##Configure vi
+cd /mnt/bin
+ln -s nvim vi
+cd "$DIRNAME"
+
+##Configure login
sed -i 's|^root:.*|root:$y$j9T$BPO20nCgFZ8NuDn6LZ6KU0$681FWXbptNoLEbIKmyRtivt1NCpfPugq0hgtI8lsjCC:19916::::::|' /mnt/etc/shadow
-sed -i "s|^#PermitRootLogin.*|PermitRootLogin yes|" /mnt/etc/ssh/sshd_config
-
-cat << EOF > /mnt/etc/systemd/network/00-wired.network
-[Match]
-Name=*
-
-[Network]
-DHCP=yes
-EOF
+printf "PermitRootLogin yes" > /mnt/etc/ssh/sshd_config.d/99-permitrootlogin.conf
+##Configure network
+cp network/00-wired.network /mnt/etc/systemd/network/0-wired.network
+cp network/resolved.conf /mnt/etc/systemd/resolved.conf
cd /mnt/etc
ln -sf ../run/systemd/resolve/stub-resolv.conf resolv.conf
-cd
+cd "$DIRNAME"
+##Configure tty
+mkdir -p /mnt/etc/systemd/system/getty@tty1.service.d/
+cp tty/autologin.conf /mnt/etc/systemd/system/getty@tty1.service.d/override.conf
+cp tty/bash.bashexports /mnt/etc/bash.bashexports
+cp tty/bash.bashaliases /mnt/etc/bash.bashaliases
+cp tty/bash.bashrc /mnt/etc/bash.bashrc
+cp tty/inputrc /mnt/etc/inputrc
+cp tty/issue /mnt/etc/issue
+
+##Restart services
arch-chroot /mnt systemctl enable sshd.service systemd-networkd.service systemd-timesyncd.service systemd-resolved.service
-#umount -R /mnt
-#cryptsetup close rootfs
+echo "DONE !!!"
\ No newline at end of file
diff --git a/X11/.Xresources b/links/X11/.Xresources
similarity index 95%
rename from X11/.Xresources
rename to links/X11/.Xresources
index bcfebf3..7c17017 100644
--- a/X11/.Xresources
+++ b/links/X11/.Xresources
@@ -62,5 +62,5 @@ URxvt.keysym.A-slash: resize-font:show
!Configure Url Launcher
URxvt.url-launcher: firefox
-URxvt.matcher.button: C-1
-URxvt.keysym.A-u: perl:matcher:select
+URxvt.matcher.button: 1
+URxvt.keysym.A-u: perl:matcher:select
\ No newline at end of file
diff --git a/links/X11/00-keyboard.conf b/links/X11/00-keyboard.conf
new file mode 100644
index 0000000..c818d06
--- /dev/null
+++ b/links/X11/00-keyboard.conf
@@ -0,0 +1,8 @@
+Section "InputClass"
+ Identifier "system-keyboard"
+ MatchIsKeyboard "on"
+ Option "XkbLayout" "us_qwerty-fr"
+ Option "XkbModel" "pc105"
+ Option "XkbVariant" "qwerty-fr"
+ Option "XkbOptions" ""
+EndSection
diff --git a/X11/xinitrc b/links/X11/xinitrc
similarity index 99%
rename from X11/xinitrc
rename to links/X11/xinitrc
index 818c447..dfd13cf 100644
--- a/X11/xinitrc
+++ b/links/X11/xinitrc
@@ -6,6 +6,7 @@ sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
+
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
diff --git a/links/applications/code.desktop b/links/applications/code.desktop
new file mode 100644
index 0000000..67b70cc
--- /dev/null
+++ b/links/applications/code.desktop
@@ -0,0 +1,28 @@
+[Desktop Entry]
+Name=Code - Open Source Version
+Comment=Code Editing. Redefined.
+GenericName=Text Editor
+Exec=code --no-sandbox
+Icon=vscode
+Type=Application
+StartupNotify=false
+StartupWMClass=code-oss
+Categories=TextEditor;Development;IDE;
+MimeType=application/x-code-oss-workspace;
+Actions=new-empty-window;
+Keywords=vscode;
+X-Desktop-File-Install-Version=0.27
+
+[Desktop Action new-empty-window]
+Name=New Empty Window
+Name[de]=Neues leeres Fenster
+Name[es]=Nueva ventana vacía
+Name[fr]=Nouvelle fenêtre vide
+Name[it]=Nuova finestra vuota
+Name[ja]=新しい空のウィンドウ
+Name[ko]=새 빈 창
+Name[ru]=Новое пустое окно
+Name[zh_CN]=新建空窗口
+Name[zh_TW]=開新空視窗
+Exec=code --no-sandbox
+Icon=vscode
\ No newline at end of file
diff --git a/links/dunst/dunstrc b/links/dunst/dunstrc
new file mode 100644
index 0000000..90eedb1
--- /dev/null
+++ b/links/dunst/dunstrc
@@ -0,0 +1,459 @@
+# See dunst(5) for all configuration options
+
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = none
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = (0,300)
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 300
+
+ # Position the notification in the top right corner
+ origin = top-right
+
+ # Offset from the origin
+ offset = 20x50
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 20
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 10
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 1
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 150
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 300
+
+ # Corner radius for the progress bar. 0 disables rounded corners.
+ progress_bar_corner_radius = 0
+
+ # Corner radius for the icon image.
+ icon_corner_radius = 0
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 25
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ # If gap_size is greater than 0, this setting will be ignored.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Padding between text and icon.
+ text_icon_padding = 0
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 1
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#8caaee"
+
+ # Size of gap to display between notifications - requires a compositor.
+ # If value is greater than 0, separator_height will be ignored and a border
+ # of size frame_width will be drawn around each notification instead.
+ # Click events on gaps do not currently propagate to applications below.
+ gap_size = 5
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ # idle_threshold = 120
+
+ ### Text ###
+
+ font = ComicShannsMono Nerd Font 12
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Recursive icon lookup. You can set a single theme, instead of having to
+ # define all lookup paths.
+ enable_recursive_icon_lookup = true
+
+ # Set icon theme (only used for recursive icon lookup)
+ icon_theme = oxygen
+ # You can also set multiple icon themes, with the leftmost one being used first.
+ # icon_theme = "Adwaita, breeze"
+
+ # Align icons left/right/top/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 32
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 64
+
+ # Paths to default icons (only neccesary when not using recursive icon lookup)
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 5
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: Invoke the action determined by the action_name rule. If there is no
+ # such action, open the context menu.
+ # * open_url: If the notification has exactly one url, open it. If there are multiple
+ # ones, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # * context: Open context menu for the notification.
+ # * context_all: Open context menu for all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#303446"
+ foreground = "#c6d0f5"
+ timeout = 5
+ # Icon for notifications with low urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_normal]
+ background = "#303446"
+ foreground = "#c6d0f5"
+ timeout = 5
+ # Icon for notifications with normal urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_critical]
+ background = "#303446"
+ foreground = "#c6d0f5"
+ frame_color = "#e78284"
+ timeout = 20
+ # Icon for notifications with critical urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# set_category
+# timeout
+# urgency
+# icon_position
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+# hide_text
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+# Disable the transient hint so that idle_threshold cannot be bypassed from the
+# client
+#[transient_disable]
+# match_transient = yes
+# set_transient = no
+#
+# Make the handling of transient notifications more strict by making them not
+# be placed in history.
+#[transient_history_ignore]
+# match_transient = yes
+# history_ignore = yes
+
+# fullscreen values
+# show: show the notifications, regardless if there is a fullscreen window opened
+# delay: displays the new notification, if there is no fullscreen window active
+# If the notification is already drawn, it won't get undrawn.
+# pushback: same as delay, but when switching into fullscreen, the notification will get
+# withdrawn from screen again and will get delayed like a new notification
+#[fullscreen_delay_everything]
+# fullscreen = delay
+#[fullscreen_show_critical]
+# msg_urgency = critical
+# fullscreen = show
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# skip_display = true
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[skip-display]
+# # This notification will not be displayed, but will be included in the history
+# summary = "foobar"
+# skip_display = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+#[stack-volumes]
+# appname = "some_volume_notifiers"
+# set_stack_tag = "volume"
+#
+# vim: ft=cfg
diff --git a/i3wm/config b/links/i3wm/config
similarity index 75%
rename from i3wm/config
rename to links/i3wm/config
index 5f1cb21..558c418 100644
--- a/i3wm/config
+++ b/links/i3wm/config
@@ -1,9 +1,9 @@
set $mod Mod4
-# Reload Restart config
-bindsym $mod+c reload
-bindsym $mod+r restart
-bindsym $mod+e exit
+# Reload Restart config | moved to rofi
+#bindsym $mod+c reload
+#bindsym $mod+r restart
+#bindsym $mod+e exit
# Floating Modifier
floating_modifier $mod
@@ -98,8 +98,7 @@ default_border pixel 1
# Gaps
gaps inner 10px
-hide_edge_borders smart_no_gaps
-smart_gaps on
+smart_gaps off
gaps inner 5
#smart|ignore|leave_fullscreen
@@ -128,41 +127,46 @@ set_from_resource $white i3wm.color7 #f6f7f9
# class border backgr. text indicator child_border
-client.focused $blue $bg $blue $purple $blue
-client.focused_inactive $bgdaer $bgli $fglier $purple $bgdaer
-client.unfocused $bgdaer $bg $fg $purple $bgdaer
-client.urgent $red $bg $fg $purple $bgli
-client.placeholder $bgli $bg $fg $purple $bgli
+client.focused $blue $bg $blue $purple $blue
+client.focused_inactive $bgda $bgli $fglier $purple $bgda
+client.unfocused $bgdaer $bg $fg $purple $bgdaer
+client.urgent $red $bg $fg $purple $red
+client.placeholder $bgdaer $bg $fg $purple $bgdaer
client.background $bg
###########
# Startup #
###########
-
exec --no-startup-id xrandr --output HDMI-1 --primary --right-of HDMI-0
-exec_always --no-startup-id /etc/i3/wallpapers.sh
+exec_always --no-startup-id /usr/local/share/dotfiles/scripts/wallpapers.sh
exec_always --no-startup-id "killall picom ; picom"
exec_always --no-startup-id "killall dunst ; dunst"
-exec_always --no-startup-id "killall polybar ; polybar HDMI-0 ; polybar HDMI-1"
-exec_always --no-startup-id "killall nextcloud ; nextcloud"
+exec_always --no-startup-id "killall polybar ; polybar HDMI-1 & polybar HDMI-0 &"
+#exec_always --no-startup-id "killall nextcloud ; nextcloud"
#################
# Apps shortcut #
#################
-# start dmenu (a program launcher)
-bindsym $mod+d exec --no-startup-id dmenu_run_history -l 10 -fn "ComicShannsMono Nerd Font" -nb "#282c34" -nf "#61AFEF" -sb "#61AFEF" -sf "#282C34"
+bindsym Print exec --no-startup-id flameshot gui
+
+bindsym $mod+d exec --no-startup-id rofi -show drun -show-icons
+bindsym $mod+l exec --no-startup-id /usr/local/share/dotfiles/scripts/disconnect.sh
+bindsym $mod+b exec --no-startup-id /usr/local/share/dotfiles/scripts/bookmarks.sh
+bindsym $mod+m exec --no-startup-id /usr/local/share/dotfiles/scripts/mpv.sh
+bindsym $mod+g exec --no-startup-id /usr/local/share/dotfiles/scripts/search.sh
+bindsym $mod+c exec --no-startup-id rofi -show calc -theme disconnect.rasi
-bindsym Print exec flameshot gui
bindsym $mod+Shift+p exec --no-startup-id pavucontrol
-bindsym $mod+Shift+d exec --no-startup-id discord
+bindsym $mod+Shift+d exec --no-startup-id discord --no-sandbox
bindsym $mod+Shift+f exec --no-startup-id firefox
bindsym $mod+Shift+s exec --no-startup-id steam
+
# Start a terminal
bindsym $mod+Return exec --no-startup-id urxvt
# Display help
for_window [instance="cheatsheet"] floating enable
-bindsym $mod+s exec --no-startup-id urxvt -geometry 160x40 -name cheatsheet -e /etc/i3/i3wm_key_help.sh
+bindsym $mod+s exec --no-startup-id urxvt -geometry 120x40 -name cheatsheet -e /usr/local/share/dotfiles/scripts/i3wm_key_help.sh
diff --git a/links/picom/picom.conf b/links/picom/picom.conf
new file mode 100644
index 0000000..af92f25
--- /dev/null
+++ b/links/picom/picom.conf
@@ -0,0 +1,437 @@
+#################################
+# Shadows #
+#################################
+
+
+# Enabled client-side shadows on windows. Note desktop windows
+# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
+# unless explicitly requested using the wintypes option.
+#
+# shadow = false
+#shadow = false;
+
+# The blur radius for shadows, in pixels. (defaults to 12)
+# shadow-radius = 12
+#shadow-radius = 8;
+
+# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
+# shadow-opacity = .75
+
+# The left offset for shadows, in pixels. (defaults to -15)
+# shadow-offset-x = -15
+#shadow-offset-x = -17;
+
+# The top offset for shadows, in pixels. (defaults to -15)
+# shadow-offset-y = -15
+#shadow-offset-y = -17;
+
+# Red color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-red = 0
+
+# Green color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-green = 0
+
+# Blue color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-blue = 0
+
+# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
+# shadow-color = "#000000"
+
+# Specify a list of conditions of windows that should have no shadow.
+#
+# examples:
+# shadow-exclude = "n:e:Notification";
+#
+# shadow-exclude = []
+#shadow-exclude = [
+# "name = 'Notification'",
+# "class_g = 'Conky'",
+# "class_g ?= 'Notify-osd'",
+# "class_g = 'Cairo-clock'",
+# "_GTK_FRAME_EXTENTS@:c"
+#];
+
+# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
+# clip-shadow-above = []
+
+# Specify a X geometry that describes the region in which shadow should not
+# be painted in, such as a dock window region. Use
+# shadow-exclude-reg = "x10+0+0"
+# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
+#
+# shadow-exclude-reg = ""
+
+# Crop shadow of a window fully on a particular Xinerama screen to the screen.
+# xinerama-shadow-crop = false
+
+
+#################################
+# Fading #
+#################################
+
+
+# Fade windows in/out when opening/closing and when opacity changes,
+# unless no-fading-openclose is used.
+# fading = false
+fading = true;
+
+# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
+# fade-in-step = 0.028
+fade-in-step = 0.03;
+
+# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
+# fade-out-step = 0.03
+fade-out-step = 0.03;
+
+# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
+# fade-delta = 10
+
+# Specify a list of conditions of windows that should not be faded.
+fade-exclude = [
+ "class_g = 'dmenu'",
+]
+
+# Do not fade on window open/close.
+# no-fading-openclose = false
+
+# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+# no-fading-destroyed-argb = false
+
+
+#################################
+# Transparency / Opacity #
+#################################
+
+
+# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+# inactive-opacity = 1
+inactive-opacity = 0.75;
+
+# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+# frame-opacity = 1.0
+#frame-opacity = 0.75;
+
+# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
+# inactive-opacity-override = true
+inactive-opacity-override = false;
+
+# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
+active-opacity = 0.95;
+
+# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
+# inactive-dim = 0.0
+
+# Specify a list of conditions of windows that should never be considered focused.
+# focus-exclude = []
+#focus-exclude = [
+#];
+
+# Use fixed inactive dim value, instead of adjusting according to window opacity.
+# inactive-dim-fixed = 1.0
+
+# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
+# like `50:name *= "Firefox"`. picom-trans is recommended over this.
+# Note we don't make any guarantee about possible conflicts with other
+# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
+# example:
+#opacity-rule = [ "75:class_g = 'Polybar'" ];
+#
+opacity-rule = [
+ "100:class_g = 'firefox'",
+ "100:class_g = 'mpv'",
+ "75:class_g = 'dmenu'",
+ "100:class_g = 'dontstarve_steam_x64'"
+];
+
+
+#################################
+# Corners #
+#################################
+
+# Sets the radius of rounded window corners. When > 0, the compositor will
+# round the corners of windows. Does not interact well with
+# `transparent-clipping`.
+corner-radius = 0
+
+# Exclude conditions for rounded corners.
+rounded-corners-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'"
+];
+
+
+#################################
+# Background-Blurring #
+#################################
+
+
+# Parameters for background blurring, see the *BLUR* section for more information.
+blur-method = "dual_kawase"
+blur-size = 3
+#
+blur-deviation = true
+#
+blur-strength = 3
+
+# Blur background of semi-transparent / ARGB windows.
+# Bad in performance, with driver-dependent behavior.
+# The name of the switch may change without prior notifications.
+#
+# blur-background = true
+
+# Blur background of windows when the window frame is not opaque.
+# Implies:
+# blur-background
+# Bad in performance, with driver-dependent behavior. The name may change.
+#
+# blur-background-frame = false
+
+
+# Use fixed blur strength rather than adjusting according to window opacity.
+# blur-background-fixed = false
+
+
+# Specify the blur convolution kernel, with the following format:
+# example:
+# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
+#
+# blur-kern = ""
+blur-kern = "3x3box";
+
+
+# Exclude conditions for background blur.
+# blur-background-exclude = []
+blur-background-exclude = [
+# "window_type = 'dock'",
+ "class_g = 'mpv'",
+ "window_type = 'desktop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+#################################
+# General Settings #
+#################################
+
+# Enable remote control via D-Bus. See the man page for more details.
+# dbus = true
+
+# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
+# daemon = false
+
+# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
+# `xrender` is the default one.
+#
+backend = "glx"
+# backend = "xrender";
+
+# Enable/disable VSync.
+# vsync = false
+vsync = true;
+
+# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
+# dbus = false
+
+# Try to detect WM windows (a non-override-redirect window with no
+# child that has 'WM_STATE') and mark them as active.
+#
+# mark-wmwin-focused = false
+mark-wmwin-focused = true;
+
+# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
+# mark-ovredir-focused = false
+mark-ovredir-focused = true;
+
+# Try to detect windows with rounded corners and don't consider them
+# shaped windows. The accuracy is not very high, unfortunately.
+#
+# detect-rounded-corners = false
+detect-rounded-corners = true;
+
+# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
+# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
+#
+# detect-client-opacity = false
+detect-client-opacity = true;
+
+# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
+# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
+# provided that the WM supports it.
+#
+# use-ewmh-active-win = false
+
+# Unredirect all windows if a full-screen opaque window is detected,
+# to maximize performance for full-screen windows. Known to cause flickering
+# when redirecting/unredirecting windows.
+#
+# unredir-if-possible = false
+
+# Delay before unredirecting the window, in milliseconds. Defaults to 0.
+# unredir-if-possible-delay = 0
+
+# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
+# unredir-if-possible-exclude = []
+
+# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
+# in the same group focused at the same time.
+#
+# detect-transient = false
+detect-transient = true;
+
+# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
+# group focused at the same time. This usually means windows from the same application
+# will be considered focused or unfocused at the same time.
+# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
+#
+# detect-client-leader = false
+
+# Resize damaged region by a specific number of pixels.
+# A positive value enlarges it while a negative one shrinks it.
+# If the value is positive, those additional pixels will not be actually painted
+# to screen, only used in blur calculation, and such. (Due to technical limitations,
+# with use-damage, those pixels will still be incorrectly painted to screen.)
+# Primarily used to fix the line corruption issues of blur,
+# in which case you should use the blur radius value here
+# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
+# with a 5x5 one you use `--resize-damage 2`, and so on).
+# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
+#
+# resize-damage = 1
+
+# Specify a list of conditions of windows that should be painted with inverted color.
+# Resource-hogging, and is not well tested.
+#
+# invert-color-include = []
+
+# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
+# Might cause incorrect opacity when rendering transparent content (but never
+# practically happened) and may not work with blur-background.
+# My tests show a 15% performance boost. Recommended.
+#
+glx-no-stencil = true;
+
+# GLX backend: Avoid rebinding pixmap on window damage.
+# Probably could improve performance on rapid window content changes,
+# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
+# Recommended if it works.
+#
+# glx-no-rebind-pixmap = false
+
+# Disable the use of damage information.
+# This cause the whole screen to be redrawn every time, instead of the part of the screen
+# has actually changed. Potentially degrades the performance, but might fix some artifacts.
+# The opposing option is use-damage
+#
+# no-use-damage = false
+use-damage = true;
+
+# Use X Sync fence to sync clients' draw calls, to make sure all draw
+# calls are finished before picom starts drawing. Needed on nvidia-drivers
+# with GLX backend for some users.
+#
+# xrender-sync-fence = false
+
+# GLX backend: Use specified GLSL fragment shader for rendering window
+# contents. Read the man page for a detailed explanation of the interface.
+#
+# window-shader-fg = "default"
+
+# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
+# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
+#
+# window-shader-fg-rule = [
+# "my_shader.frag:window_type != 'dock'"
+# ]
+
+# Force all windows to be painted with blending. Useful if you
+# have a glx-fshader-win that could turn opaque pixels transparent.
+#
+# force-win-blend = false
+
+# Do not use EWMH to detect fullscreen windows.
+# Reverts to checking if a window is fullscreen based only on its size and coordinates.
+#
+# no-ewmh-fullscreen = false
+
+# Dimming bright windows so their brightness doesn't exceed this set value.
+# Brightness of a window is estimated by averaging all pixels in the window,
+# so this could comes with a performance hit.
+# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
+#
+# max-brightness = 1.0
+
+# Make transparent windows clip other windows like non-transparent windows do,
+# instead of blending on top of them.
+#
+# transparent-clipping = false
+
+# Specify a list of conditions of windows that should never have transparent
+# clipping applied. Useful for screenshot tools, where you need to be able to
+# see through transparent parts of the window.
+#
+# transparent-clipping-exclude = []
+
+# Set the log level. Possible values are:
+# "trace", "debug", "info", "warn", "error"
+# in increasing level of importance. Case doesn't matter.
+# If using the "TRACE" log level, it's better to log into a file
+# using *--log-file*, since it can generate a huge stream of logs.
+#
+# log-level = "debug"
+log-level = "warn";
+
+# Set the log file.
+# If *--log-file* is never specified, logs will be written to stderr.
+# Otherwise, logs will to written to the given file, though some of the early
+# logs might still be written to the stderr.
+# When setting this option from the config file, it is recommended to use an absolute path.
+#
+# log-file = "/path/to/your/log/file"
+
+# Show all X errors (for debugging)
+# show-all-xerrors = false
+
+# Write process ID to a file.
+# write-pid-path = "/path/to/your/log/file"
+
+# Window type settings
+#
+# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
+# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
+# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
+# "tooltip", "notification", "combo", and "dnd".
+#
+# Following per window-type options are available: ::
+#
+# fade, shadow:::
+# Controls window-type-specific shadow and fade settings.
+#
+# opacity:::
+# Controls default opacity of the window type.
+#
+# focus:::
+# Controls whether the window of this type is to be always considered focused.
+# (By default, all window types except "normal" and "dialog" has this on.)
+#
+# full-shadow:::
+# Controls whether shadow is drawn under the parts of the window that you
+# normally won't be able to see. Useful when the window has parts of it
+# transparent, and you want shadows in those areas.
+#
+# clip-shadow-above:::
+# Controls whether shadows that would have been drawn above the window should
+# be clipped. Useful for dock windows that should have no shadow painted on top.
+#
+# redir-ignore:::
+# Controls whether this type of windows should cause screen to become
+# redirected again after been unredirected. If you have unredir-if-possible
+# set, and doesn't want certain window to cause unnecessary screen redirection,
+# you can set this to `true`.
+#
+wintypes:
+{
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; clip-shadow-above = true; }
+ dnd = { shadow = false; }
+# popup_menu = { opacity = 0.8; }
+# dropdown_menu = { opacity = 0.8; }
+};
diff --git a/polybar/config.ini b/links/polybar/config.ini
similarity index 76%
rename from polybar/config.ini
rename to links/polybar/config.ini
index 54268dc..779994e 100644
--- a/polybar/config.ini
+++ b/links/polybar/config.ini
@@ -17,15 +17,15 @@
;==========================================================
[colors]
-background = #303446
-background-alt = #232634
+background = #cc303446
+background-alt = #21252b
foreground = #c6d0f5
primary = #8caaee
alert = #e78284
-disabled = #737994
+disabled = #b5bfe2
[bar/HDMI-0]
-monitor = Virtual-1
+monitor = HDMI-0
width = 100%
height = 30px
@@ -41,11 +41,12 @@ border-size = 0pt
padding-left = 10px
padding-right = 0px
-font-0 = ComicShannsMono Nerd Font:pixelsize=14;2
-font-1 = Polybar:pixelsize=20;2
+font-0 = ComicShannsMono Nerd Font:size=14;2
+font-1 = ComicShannsMono Nerd Font:size=14;1
+font-2 = ComicShannsMono Nerd Font:size=14;0
fixed-center = true
-modules-left = cpu separator memory separator filesystem separator eth separator ethspeed separator pulseaudio
+modules-left = cpu separator memory separator filesystemprefix filesystem separator eth separator ethspeed separator pulseaudio
modules-center = i3
modules-right = xkeyboard separator dateprefix date
@@ -71,11 +72,12 @@ border-size = 0pt
padding-left = 10px
padding-right = 0px
-font-0 = ComicShannsMono Nerd Font:pixelsize=14;2
-font-1 = Polybar:pixelsize=20;2
+font-0 = ComicShannsMono Nerd Font:size=14;2
+font-1 = ComicShannsMono Nerd Font:size=14;1
+font-2 = ComicShannsMono Nerd Font:size=14;0
fixed-center = true
-modules-left = cpu separator memory separator filesystem separator eth separator ethspeed separator pulseaudio
+modules-left = cpu separator memory separator filesystemprefix filesystem separator eth separator ethspeed separator pulseaudio
modules-center = i3
modules-right = pacman separator xkeyboard separator dateprefix date systray
@@ -126,13 +128,23 @@ label-separator = " "
label-separator-padding = 0px
label-separator-foreground = #ffb52a
+[module/filesystemprefix]
+type = custom/text
+
+format =