diff --git a/.chezmoi.toml.tmpl b/.chezmoi.toml.tmpl
new file mode 100644
index 0000000..fb6f42f
--- /dev/null
+++ b/.chezmoi.toml.tmpl
@@ -0,0 +1,4 @@
+{{- $type := promptStringOnce . "type" "Computer type (desktop|laptop)" -}}
+
+[data]
+ type = {{ $type | quote }}
diff --git a/.chezmoiexternal.toml b/.chezmoiexternal.toml
new file mode 100644
index 0000000..3bd095c
--- /dev/null
+++ b/.chezmoiexternal.toml
@@ -0,0 +1,21 @@
+[".local/share/doom"]
+ type = "git-repo"
+ url = "https://github.com/doomemacs/doomemacs.git"
+ refreshPeriod = "24h"
+ [".local/share/doom".clone]
+ args = ["--depth=1"]
+
+[".local/share/polybar-scripts"]
+ type = "git-repo"
+ url = "https://github.com/polybar/polybar-scripts.git"
+ refreshPeriod = "24h"
+
+[".local/share/omf"]
+ type = "git-repo"
+ url = "https://github.com/oh-my-fish/oh-my-fish.git"
+ refreshPeriod = "8760h"
+
+[".local/share/nvim/site/autoload/plug.vim"]
+ type = "file"
+ url = "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
+ refreshPeriod = "168h"
diff --git a/.chezmoiignore b/.chezmoiignore
new file mode 100644
index 0000000..3651cb9
--- /dev/null
+++ b/.chezmoiignore
@@ -0,0 +1,5 @@
+node_modules
+*.org
+commitlint.config.js
+package.json
+yarn.lock
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index b97737c..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-gtk/.config/gtk-3.0/bookmarks
-zsh/.config/zsh/.zcompcache/
diff --git a/README.org b/README.org
index b51d6d3..dc1a656 100644
--- a/README.org
+++ b/README.org
@@ -7,13 +7,11 @@
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#prerequisites][Prerequisites]]
-- [[#applications-installed-by-script][Applications installed by script]]
+- [[#applications-installed][Applications installed]]
- [[#applications][Applications]]
- [[#fonts][Fonts]]
- - [[#libraries][Libraries]]
- - [[#st--dmenu--dwm][st / dmenu / dwm]]
- [[#lsp-backends][LSP Backends]]
-- [[#configured-applications-also-installed-by-script][Configured Applications (also installed by script)]]
+- [[#configured-applications-also-installed][Configured Applications (also installed)]]
- [[#configured-locales][Configured Locales]]
- [[#golang][Golang]]
- [[#shell][Shell]]
@@ -49,8 +47,9 @@ A repository of my personal configuration files.
- [[https://www.archlinux.org/][Arch Linux]]
- [[https://fishshell.com/][fish shell]]
- [[https://github.com/Jguer/yay][yay]]
+- [[https://www.chezmoi.io/][chezmoi]]
-* Applications installed by script
+* Applications installed
** Applications
- [[https://github.com/ggreer/the_silver_searcher][ag]]
- [[https://github.com/sharkdp/bat][bat]]
@@ -97,9 +96,6 @@ A repository of my personal configuration files.
- [[https://www.google.com/get/noto/][Noto Fonts]]
- [[https://www.google.com/get/noto/help/emoji/][Noto Color Emoji]]
- Nerd patched [[https://sourcefoundry.org/hack/][Hack]]
-** Libraries
-*** st / dmenu / dwm
-- [[#+title: https://aur.archlinux.org/packages/libxft-bgra/][libxft-bgra]]
** LSP Backends
- [[https://github.com/mads-hartmann/bash-language-server][bash-language-server]]
- [[https://github.com/MaskRay/ccls][ccls]]
@@ -110,10 +106,9 @@ A repository of my personal configuration files.
- [[https://github.com/vscode-langservers/vscode-html-languageserver][vscode-html-languageserver]]
- [[https://github.com/bmewburn/vscode-intelephense][vscode-intelephense]]
-* Configured Applications (also installed by script)
+* Configured Applications (also installed)
- [[https://github.com/alacritty/][alacritty]]
- [[https://github.com/baskerville/bspwm][bspwm]]
-- [[https://github.com/xgi/castero][castero]]
- [[https://github.com/hlissner/doom-emacs][Doom Emacs]]
- [[https://dunst-project.org/][dunst]]
- [[https://firejail.wordpress.com/][firejail]]
@@ -230,7 +225,7 @@ A repository of my personal configuration files.
* Configuration
** Installation
#+BEGIN_SRC shell
-./install
+chezmoi apply
#+END_SRC
** Find & delete orphaned symlinks
#+BEGIN_SRC shell
diff --git a/alacritty/.config/alacritty/alacritty.yml.thinkpad b/alacritty/.config/alacritty/alacritty.yml.thinkpad
deleted file mode 100644
index c8db148..0000000
--- a/alacritty/.config/alacritty/alacritty.yml.thinkpad
+++ /dev/null
@@ -1,54 +0,0 @@
-window:
- dynamic_padding: true
- opacity: 0.8
-
-font:
- normal:
- family: Hack Nerd Font Mono
-
- style: Regular
-
- bold:
- family: Hack nerd Font Mono
-
- style: Bold
-
- italic:
- family: Hack nerd Font Mono
-
- style: Italic
-
- bold_italic:
- family: Hack nerd Font Mono
-
- style: Bold Italic
-
- size: 8.5
-
-colors:
- primary:
- background: "0x282828"
- foreground: "0xebdbb2"
-
- normal:
- black: "0x282828"
- red: "0xcc241d"
- green: "0x98971a"
- yellow: "0xd79921"
- blue: "0x458588"
- magenta: "0xb16286"
- cyan: "0x689d6a"
- white: "0xa89984"
-
- bright:
- black: "0x928374"
- red: "0xfb4934"
- green: "0xb8bb26"
- yellow: "0xfabd2f"
- blue: "0x83a598"
- magenta: "0xd3869b"
- cyan: "0x8ec07c"
- white: "0xebdbb2"
-
-selection:
- save_to_clipboard: true
diff --git a/bin/.local/bin/calendar b/bin/.local/bin/calendar
deleted file mode 100755
index 118cb6d..0000000
--- a/bin/.local/bin/calendar
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env fish
-
-khal list
-read -s -n 1
diff --git a/bspwm/.local/bin/screen_desktop b/bspwm/.local/bin/screen_desktop
deleted file mode 100755
index 6d7d0f9..0000000
--- a/bspwm/.local/bin/screen_desktop
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-xrandr --output DP-3 --primary --mode 3840x2160 --rotate normal --output DP-2 --mode 2560x1440 --pos 0x0 --rotate left
diff --git a/bspwm/.local/bin/wallpaper b/bspwm/.local/bin/wallpaper
deleted file mode 100755
index 23f8beb..0000000
--- a/bspwm/.local/bin/wallpaper
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env sh
-
-if [ -e ~/.cache/wall1.png ] && [ -e ~/.cache/wall2.png ]; then
- xwallpaper --output DP-2 --zoom ~/.cache/wall2.png --output DP-3 --zoom ~/.cache/wall1.png &
-elif [ -e ~/.cache/wall1.png ]; then
- xwallpaper --output eDP1 --zoom ~/.cache/wall1.png &
-fi
diff --git a/castero/.config/castero/castero.conf b/castero/.config/castero/castero.conf
deleted file mode 100644
index 882efaf..0000000
--- a/castero/.config/castero/castero.conf
+++ /dev/null
@@ -1,288 +0,0 @@
-# castero configuration file
-# https://github.com/xgi/castero
-
-
-[client]
-# Whether to ask for confirmation before deleting a feed.
-# default: False
-delete_feed_confirmation = False
-
-# The minimum number of feeds before the client asks you for confirmation
-# after pressing the reload key.
-# default: 10
-reload_feeds_threshold = 10
-
-# The maximum number of episodes to retain per feed. Set to -1 for no limit.
-# default: -1
-max_episodes = 25
-
-# Whether to keep episodes in the client even if they are no longer present on
-# the feed (i.e. the RSS feed only shows the x most recent episodes).
-# default: False
-retain_absent_episodes = False
-
-# Hide vertical borders between menus.
-# default: False
-disable_vertical_borders = False
-
-# Whether to remove HTML tags from feed/episode descriptions.
-# default: True
-clean_html_descriptions = True
-
-# The display refresh delay, in ms. Increase to reduce idle CPU usage.
-# default: 30
-refresh_delay = 70
-
-# The external player to use for media playback.
-# If the given player is not valid or a dependency is not met, the client will
-# instead try to use the first valid interface.
-# Available players (in order of precedence):
-# mpv, vlc
-# default: (blank)
-player =
-
-# The command to run when you press key_execute (default e). All instances of
-# the following tokens are replaced with the corresponding episode attributes:
-# {file} - the episode enclosure, usually a remote mp3 file
-# {title} - the episode name
-# {description} - the episode description
-# {link} - the link to the episode, which is often a blog post
-# {pubdate} - the publish date/time of the episode
-# {copyright} - the copyright of the episode
-# Most of these attributes have spaces, so you will probably want to enclose
-# the token with quotations.
-# For example, `firefox "{file}"` would open the file in Firefox.
-# The client executes the text you enter as a shell command. Use with caution!
-# default: (blank)
-execute_command =
-
-# An HTTP or SOCKS proxy to use for HTTP network requests.
-# example: http://user:pass@10.10.1.10:3128
-# example: socks5://user:pass@host:port
-# default: (blank)
-proxy_http =
-
-# An HTTP or SOCKS proxy to use for HTTPS network requests.
-# example: http://user:pass@10.10.1.10:3128
-# example: socks5://user:pass@host:port
-# default: (blank)
-proxy_https =
-
-
-[feeds]
-# Whether to reload/refresh your feeds when the client starts. Depending on how
-# many feeds you have, this operation may take a long time.
-# default: False
-reload_on_start = False
-
-
-[downloads]
-# The (absolute) location to save episodes downloaded for offline playback. Set
-# to blank or whitespaces to disable -- the client will default to either
-# $XDG_DATA_DIR, if set, otherwise ~/.local/share/castero/downloaded
-# default: (blank)
-custom_download_dir =
-
-# The timeout for network requests, in seconds. The same value is used for
-# connection and read timeouts.
-# default: 3
-request_timeout = 3
-
-
-[colors]
-# Available colors for all fields are:
-# black, blue, cyan, green, magenta, red, white, yellow, transparent (background),
-# integer from -1 to 255 if terminal supports 256 colors
-# NOTE: Background transparency only works on compatible terminals with compositing
-
-# The foreground (text) color of the main interface.
-# default: yellow
-color_foreground = yellow
-
-# The background color of the main interface.
-# default: black
-color_background = black
-
-# The foreground (text) color of selected items.
-# default: black
-color_foreground_alt = black
-
-# The background color of selected items.
-# default: white
-color_background_alt = white
-
-# The foreground (text) color of marked items. Paired with color_background.
-# default: green
-color_foreground_dim = green
-
-# The foreground (text) color of status lines. Paired with color_background.
-# default: white
-color_foreground_status = white
-
-# The foreground (text) color of menu headings. Paired with color_background.
-# default: yellow
-color_foreground_heading = yellow
-
-# The foreground (text) color of dividers. Paired with color_background.
-# default: white
-color_foreground_dividers = white
-
-
-[playback]
-# The distance to move forward when pressing seek keys, in seconds.
-# default: 30
-seek_distance_forward = 30
-
-# The distance to move backward when pressing seek keys, in seconds.
-# default: 10
-seek_distance_backward = 10
-
-# The default playback speed. See also the rate_increase/rate_decrease keys.
-# default: 1.0
-default_playback_speed = 1.0
-
-# The default volume. Can be 0-100, inclusive.
-# default: 100
-default_volume = 100
-
-# The amount to adjust the volume when pressing the volume up/down keys.
-# default: 5
-volume_adjust_distance = 5
-
-
-[keys]
-# Keybindings for controlling the client. Entries may not be blank, but may
-# overlap -- however, only one operation will be performed for each key press.
-# Please see this page for a list of available key names:
-# https://docs.python.org/3/library/curses.html#constants
-
-# Show the help menu.
-# default: h
-key_help = ?
-
-# Exit the client
-# default: q
-key_exit = q
-
-# Add a feed.
-# default: a
-key_add_feed = a
-
-# Remove the selected feed.
-# default: d
-key_remove = d
-
-# Reload/refresh all feeds.
-# default: r
-key_reload = r
-
-# Reload/refresh the selected feed.
-# default: R
-key_reload_selected = R
-
-# Save episode for offline playback.
-# default: s
-key_save = s
-
-# Delete downloaded episodes.
-# default: x
-key_delete = x
-
-# Navigate up.
-# default: UP
-key_up = k
-
-# Navigate right.
-# default: RIGHT
-key_right = l
-
-# Navigate down.
-# default: DOWN
-key_down = j
-
-# Navigate left.
-# default: LEFT
-key_left = h
-
-# Scroll menu up.
-# default: PPAGE
-key_scroll_up = PPAGE
-
-# Scroll menu down.
-# default: NPAGE
-key_scroll_down = NPAGE
-
-# Play selected feed/episode.
-# default: ENTER
-key_play_selected = ENTER
-
-# Add selected feed/episode to queue.
-# default: SPACE
-key_add_selected = SPACE
-
-# Clear the queue.
-# default: c
-key_clear = c
-
-# Go to the next episode in the queue.
-# default: n
-key_next = n
-
-# Execute a command on the selected episode. See also execute_command.
-key_execute = e
-
-# Invert the order of the menu.
-# default: i
-key_invert = i
-
-# Filter the contents of the menu. Press again to clear the filter.
-# default: /
-key_filter = /
-
-# Mark the episode as played/unplayed.
-# default: i
-key_mark_played = m
-
-# Pause/play the current episode.
-# default: p
-key_pause_play = p
-
-# Alternate binding for key_pause_play -- make identical to disable.
-# default: k
-key_pause_play_alt = k
-
-# Seek forward.
-# default: f
-key_seek_forward = f
-
-# Alternate binding for key_seek_forward -- make identical to disable.
-# default: l
-key_seek_forward_alt = >
-
-# Seek backward.
-# default: b
-key_seek_backward = b
-
-# Alternate binding for key_seek_backward -- make identical to disable.
-# default: j
-key_seek_backward_alt = <
-
-# Increase playback speed.
-# default: ]
-key_rate_increase = ]
-
-# Decrease playback speed.
-# default: [
-key_rate_decrease = [
-
-# Increase volume.
-# default: =
-key_volume_increase = =
-
-# Decrease volume.
-# default: -
-key_volume_decrease = -
-
-# Show episode URL.
-# default: u
-key_show_url = u
diff --git a/clean-dead-symlinks b/clean-dead-symlinks
deleted file mode 100755
index 6516c10..0000000
--- a/clean-dead-symlinks
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-find ~ -type l -exec test ! -e {} \; -delete
diff --git a/dmenu/.local/bin/oath-dmenu b/dmenu/.local/bin/oath-dmenu
deleted file mode 100755
index b1adf81..0000000
--- a/dmenu/.local/bin/oath-dmenu
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env fish
-
-. ~/.cache/wal/colors.fish
-yubikey-oath-dmenu --clipboard --clipboard-cmd 'xclip -selection clipboard' --notify --menu-cmd "dmenu -nb \"$color0\" -nf \"$color15\" -sb \"$color1\" -sf \"$color15\" -fn \"FuraCode Nerd Font\""
diff --git a/dmenu/.local/bin/pass-dmenu b/dmenu/.local/bin/pass-dmenu
deleted file mode 100755
index edaf3dd..0000000
--- a/dmenu/.local/bin/pass-dmenu
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env fish
-
-. ~/.cache/wal/colors.fish
-PASSWORD_STORE_DIR=$PASSWORD_STORE_DIR passmenu -p Password: -nb "$color0" -nf "$color15" -sb "$color1" -sf "$color15" -fn "FuraCode Nerd Font"
diff --git a/tuir/.mailcap b/dot_mailcap
similarity index 100%
rename from tuir/.mailcap
rename to dot_mailcap
diff --git a/dunst/.config/dunst/dunstrc b/dunst/.config/dunst/dunstrc
deleted file mode 120000
index 125bab7..0000000
--- a/dunst/.config/dunst/dunstrc
+++ /dev/null
@@ -1 +0,0 @@
-dunstrc.desktop
\ No newline at end of file
diff --git a/dunst/.config/dunst/dunstrc.thinkpad b/dunst/.config/dunst/dunstrc.thinkpad
deleted file mode 100644
index b7c5d32..0000000
--- a/dunst/.config/dunst/dunstrc.thinkpad
+++ /dev/null
@@ -1,148 +0,0 @@
-[global]
- monitor = 0
- follow = keyboard
- geometry = "0x0-30+20"
- indicate_hidden = yes
- shrink = no
- transparency = 0
- notification_height = 0
- separator_height = 2
- padding = 0
- horizontal_padding = 8
- frame_width = 3
- frame_color = "#aaaaaa"
-
- # 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
-
- idle_threshold = 120
- font = JoyPixels 12, Hack Nerd Font Mono 12
-
- line_height = 0
- 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 = center
- show_age_threshold = 60
- word_wrap = yes
- ellipsize = middle
- ignore_newline = no
- stack_duplicates = true
- hide_duplicate_count = false
- show_indicators = yes
- icon_position = left
- max_icon_size = 32
- icon_path = /usr/share/icons/Papirus-Dark/24x24/panel/:/usr/share/icons/Papirus-Dark/24x24/devices/:/usr/share/icons/Papirus-Dark/24x24/apps/:/usr/share/icons/Papirus-Dark/24x24/actions/
- sticky_history = yes
- history_length = 20
- dmenu = dmenu -p dunst:
- browser = /usr/local/bin/brave
-
- # Always run rule-defined scripts, even if the notification is suppressed
- always_run_script = true
-
- title = Dunst
- class = Dunst
- startup_notification = false
- corner_radius = 5
- force_xinerama = false
-[experimental]
- per_monitor_dpi = false
-
-[shortcuts]
- close = ctrl+space
- close_all = ctrl+shift+space
- history = ctrl+grave
- context = ctrl+shift+period
-
-# 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", "summary", "body", "icon", "category",
-# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
-# "background", "new_icon" and "format".
-# Shell-like globbing will get expanded.
-#
-# 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: if you don't want a notification
-# to be displayed, set the format
-# to "".
-# NOTE: It might be helpful to run dunst -print in a terminal in order
-# to find fitting options for rules.
-
-#[espeak]
-# summary = "*"
-# script = dunst_espeak.sh
-
-#[script-test]
-# summary = "*script*"
-# script = dunst_test.sh
-
-#[ignore]
-# # This notification will not be displayed
-# summary = "foobar"
-# format = ""
-
-#[history-ignore]
-# # This notification will not be saved in history
-# summary = "foobar"
-# history_ignore = 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
-#
-# vim: ft=cfg
-
-[urgency_low]
- background = "#2b2b2b"
- foreground = "#ffffff"
-
-[urgency_normal]
- background = "#2b2b2b"
- foreground = "#ffffff"
-
-[urgency_critical]
- background = "#900000"
- foreground = "#ffffff"
- frame_color = "#ff0000"
diff --git a/emacs/.config/emacs/init.el b/emacs/.config/emacs/init.el
deleted file mode 100644
index a68b927..0000000
--- a/emacs/.config/emacs/init.el
+++ /dev/null
@@ -1,16 +0,0 @@
-(org-babel-load-file
- (expand-file-name
- "config.org"
- user-emacs-directory))
-(custom-set-variables
- ;; custom-set-variables was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(package-selected-packages '(evil-collection evil use-package)))
-(custom-set-faces
- ;; custom-set-faces was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- )
diff --git a/install b/install
deleted file mode 100755
index 1bd6c36..0000000
--- a/install
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/usr/bin/env fish
-
-# Prerequisite & inistalled apps
-set prerequisiteApps bat bmon broot brave caffeine-ng exa fslint fzf graphviz isync imagemagick lightdm-gtk-greeter mailcap neofetch npm pandoc-bin pamixer playerctl pulseaudio pulsemixer python pywal ripgrep stow sxiv tldr trayer udisks2 unclutter xbanish xwallpaper yarn xprop zathura the_silver_searcher fd
-set prerequisiteFonts ttf-linux-libertine noto-fonts noto-fonts-emoji ttf-liberation nerd-fonts-hack
-set prerequisiteLibraries libxft-bgra
-set configuredApps alacritty bspwm castero emacs firejail git gnupg gtk lf dunst mpd mpv mpv-mpris ncmpcpp neomutt neovim picom redshift sxhkd tmux tuir weechat
-set locales aspell-en hunspell-en_GB hunspell-en_US hunspell-nl
-set golang go golangci-lint-bin
-set shell shfmt shellcheck
-set screenlock xsecurelock xss-lock
-set dmenu clipmenu
-
-function mkdir_if_not_exist
- if [ ! -d "$argv" ]
- echo "Creating directory $argv"
- mkdir -p "$argv"
- end
-end
-
-function install_omf_package_if_not_exist
- if test (omf list | grep -c "$argv") -eq 0
- echo "Installing omf package $argv"
- omf install "$argv"
- end
-end
-
-function install_yarn_package_if_not_exist
- if ! yarn global list lighthouse >/dev/null 2>&1
- echo "Installing yarn package $argv"
- yarn global add "$argv"
- end
-end
-
-function install_app_if_not_exist
- if test (pacman -Q | grep -c "$argv") -eq 0
- echo "Installing missing package $argv"
- yay -S --noconfirm "$argv"
- end
-end
-
-for app in $prerequisiteApps
- install_app_if_not_exist "$app"
-end
-
-for font in $prerequisiteFonts
- install_app_if_not_exist "$font"
-end
-
-for library in $prerequisiteLibraries
- install_app_if_not_exist "$library"
-end
-
-for app in $configuredApps
- install_app_if_not_exist "$app"
-end
-
-for locale in $locales
- install_app_if_not_exist "$locale"
-end
-
-for go in $golang
- install_app_if_not_exist "$go"
-end
-
-for sh in $shell
- install_app_if_not_exist "$sh"
-end
-
-for lock in $screenlock
- install_app_if_not_exist "$lock"
-end
-
-for script in $dmenu
- install_app_if_not_exist "$script"
-end
-
-# Create directories that need to exist
-mkdir_if_not_exist ~/.cache/mpd
-mkdir_if_not_exist ~/.config/alacritty
-mkdir_if_not_exist ~/.config/nvim
-mkdir_if_not_exist ~/.config/fish
-mkdir_if_not_exist ~/.config/git
-mkdir_if_not_exist ~/.config/msmtp
-mkdir_if_not_exist ~/.config/omf
-mkdir_if_not_exist ~/.config/polybar/bin
-mkdir_if_not_exist ~/.config/mpd
-mkdir_if_not_exist ~/.config/systemd/user
-mkdir_if_not_exist ~/.config/wal
-mkdir_if_not_exist ~/.config/weechat
-mkdir_if_not_exist ~/.config/X11
-mkdir_if_not_exist ~/.gnupg
-mkdir_if_not_exist ~/.config/mpv/scripts
-mkdir_if_not_exist ~/.config/coc/extensions
-mkdir_if_not_exist ~/.config/dmenu-frecency
-mkdir_if_not_exist ~/.config/doom
-mkdir_if_not_exist ~/.config/emacs
-mkdir_if_not_exist ~/.config/sxhkd
-mkdir_if_not_exist ~/.local/share/applications
-
-
-# Link mpv plugins if they don't exist
-if [ ! -h ~/.config/mpv/scripts/mpris.so ]
- echo "Linking mpris.so"
- ln -s /usr/lib/mpv/mpris.so ~/.config/mpv/scripts/mpris.so
-end
-
-for d in (find -- */ -maxdepth 0 -type d | grep -v node_modules | cut -f1 -d '/')
- echo "Linking $d..."
- stow -t "$HOME" "$d"
-end
-
-# Refresh xgd
-if test (grep -c 'x-scheme-handler/org-protocol=org-protocol.desktop' ~/.config/mimeapps.list) -eq 0
- echo "Refreshing xgd to handle org-protocol"
- update-desktop-database ~/.local/share/applications/
- xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol
-end
-
-# Install oh-my-fish if it isn't installed
-if [ ! -d ~/.local/share/omf ]
- curl -L https://get.oh-my.fish | fish
-end
-
-# Install oh-my-fish plugins
-install_omf_package_if_not_exist colored-man-pages
-install_omf_package_if_not_exist extract
-install_omf_package_if_not_exist fzf
-install_omf_package_if_not_exist gi
-install_omf_package_if_not_exist git-flow
-install_omf_package_if_not_exist wttr
-
-# Install vim plugins & requirements
-if test (pip list --user | grep -c 'pynvim') -ne 1
- pip install --user pynvim
-end
-
-# Install plug package manager if it doesn't exist
-if [ ! -d ~/.config/nvim/plugged ]
- curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
- https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
-end
-
-# Install Neovim plugins
-nvim +PlugInstall +qall
-
-# Install Neovim coc extensions
-yarn --cwd ~/.config/coc/extensions install
-
-# Install yarn packages
-install_yarn_package_if_not_exist lighthouse
-
-# Setup broot if not done already
-if [ ! -d ~/.local/share/broot ]
- broot --install
-end
-
-# Polybar scripts if not installed already
-if [ ! -d ~/.local/share/polybar-scripts ]
- git clone https://github.com/polybar/polybar-scripts ~/.local/share/polybar-scripts
-end
-
-# Update fish completions (auto generated from man pages)
-fish_update_completions
-
-# Notify user to manually symlink files
-if [ -n "$argv[1]" ]
- printf "\n\nDon't forget to symlink these files:\n\n"
- find ~ \( -type l -o -type f \) -name "*.$argv[1]" -exec ls -al {} \;
-end
diff --git a/lfcd/.local/bin/generate-lock-image b/lfcd/.local/bin/generate-lock-image
deleted file mode 100755
index e6c49e1..0000000
--- a/lfcd/.local/bin/generate-lock-image
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-betterlockscreen -u $1
diff --git a/newsboat/.config/systemd/user/newsup.service b/newsboat/.config/systemd/user/newsup.service
deleted file mode 100644
index 3443e7d..0000000
--- a/newsboat/.config/systemd/user/newsup.service
+++ /dev/null
@@ -1,5 +0,0 @@
-[Unit]
-Description=Newsboat RSS Feed Update Daemon
-
-[Service]
-ExecStart=%h/.local/bin/newsup
diff --git a/newsboat/.config/systemd/user/newsup.timer b/newsboat/.config/systemd/user/newsup.timer
deleted file mode 100644
index d1aeea1..0000000
--- a/newsboat/.config/systemd/user/newsup.timer
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Newsboat RSS Feed Update Timer
-
-[Timer]
-OnBootSec=2m
-OnUnitActiveSec=5m
-Unit=newsup.service
-
-[Install]
-WantedBy=timers.target
diff --git a/newsboat/.local/bin/newsup b/newsboat/.local/bin/newsup
deleted file mode 100755
index 5333e3e..0000000
--- a/newsboat/.local/bin/newsup
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-export DISPLAY=":0.0"
-ping -q -c 1 example.org >/dev/null || exit
-/usr/bin/notify-send "📰 Updating RSS feeds..."
-
-pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name newsboat)" R && exit
-echo "📰📻🔃" >/tmp/newsupdate
-pkill -RTMIN+4 "${STATUSBAR:-dwmblocks}"
-/usr/bin/newsboat -x reload
-rm -f /tmp/newsupdate
-pkill -RTMIN+4 "${STATUSBAR:-dwmblocks}"
-/usr/bin/notify-send "📰 RSS feed update complete."
diff --git a/newsboat/.local/bin/notify-rss b/newsboat/.local/bin/notify-rss
deleted file mode 100755
index 849ea17..0000000
--- a/newsboat/.local/bin/notify-rss
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env sh
-
-pkill -RTMIN+4 "${STATUSBAR:-dwmblocks}"
-notify-send.py -a Newsboat -i rssowl Rss "$1" &
diff --git a/polybar/.config/polybar/bin/wttr-and-wait b/polybar/.config/polybar/bin/wttr-and-wait
deleted file mode 100755
index ecc935b..0000000
--- a/polybar/.config/polybar/bin/wttr-and-wait
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env fish
-
-wttr && read -n 1 -p ""
diff --git a/polybar/.local/bin/polybar-desktop b/polybar/.local/bin/polybar-desktop
deleted file mode 100755
index cbc0e29..0000000
--- a/polybar/.local/bin/polybar-desktop
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env fish
-
-# Terminate already running bar instances
-killall -q polybar
-
-# Wait until the processes have been shut down
-while pgrep -u (id -u) -x polybar >/dev/null
- sleep 1
-end
-
-# Launch bar1 and bar2
-polybar monitor1 &
-polybar monitor2 &
-
-echo "Bars launched..."
diff --git a/polybar/.local/bin/polybar-laptop b/polybar/.local/bin/polybar-laptop
deleted file mode 100755
index 0f1cff9..0000000
--- a/polybar/.local/bin/polybar-laptop
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env fish
-
-# Terminate already running bar instances
-killall -q polybar
-
-# Wait until the processes have been shut down
-while pgrep -u (id -u) -x polybar >/dev/null
- sleep 1
-end
-
-# Launch bar1 and bar2
-polybar laptop-top &
-polybar laptop-bottom &
-
-echo "Bars launched..."
diff --git a/private_dot_config/X11/xinitrc b/private_dot_config/X11/xinitrc
new file mode 100755
index 0000000..9246520
--- /dev/null
+++ b/private_dot_config/X11/xinitrc
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec awesome
diff --git a/x/.config/X11/.Xresources.desktop b/private_dot_config/X11/xresources.tmpl
similarity index 82%
rename from x/.config/X11/.Xresources.desktop
rename to private_dot_config/X11/xresources.tmpl
index 8afabd0..4589a16 100644
--- a/x/.config/X11/.Xresources.desktop
+++ b/private_dot_config/X11/xresources.tmpl
@@ -2,6 +2,7 @@
! Xft settings
!-------------------------------------------------------------------------------
+{{ if ne .type "desktop" }}Xft.dpi: 160{{ end }}
Xft.antialias: false
Xft.rgba: rgb
Xft.hinting: true
diff --git a/alacritty/.config/alacritty/alacritty.yml.desktop b/private_dot_config/alacritty/alacritty.yml.tmpl
similarity index 92%
rename from alacritty/.config/alacritty/alacritty.yml.desktop
rename to private_dot_config/alacritty/alacritty.yml.tmpl
index 3313c29..d1e3f9d 100644
--- a/alacritty/.config/alacritty/alacritty.yml.desktop
+++ b/private_dot_config/alacritty/alacritty.yml.tmpl
@@ -23,7 +23,7 @@ font:
style: Bold Italic
- size: 6.5
+ size: {{ if eq .type "desktop" }}6.5{{ else }}8.5{{ end }}
colors:
primary:
diff --git a/private_dot_config/awesome/autorun.sh b/private_dot_config/awesome/autorun.sh
new file mode 100755
index 0000000..2e2e45a
--- /dev/null
+++ b/private_dot_config/awesome/autorun.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+run() {
+ if ! pgrep -f "$1"; then
+ "$@" &
+ fi
+}
+
+###---Load xresources---###
+xrdb -load ~/.config/X11/xresources
+
+###---Keyboard---###
+setxkbmap -option caps:escape
+
+###---Get monitor count---###
+SCREENCOUNT=$(xrandr | grep -c "\*")
+
+###---Monitors---###
+if [ "$SCREENCOUNT" -eq 2 ]; then
+ if [ -f "$HOME/.local/bin/screen_desktop" ]; then
+ screen_desktop
+ fi
+else
+ if [ -f "$HOME/.local/bin/screen" ]; then
+ screen
+ fi
+fi
+
+###---Wallpaper & opacity---###
+~/.local/bin/wallpaper
+wal -n -R
+picom -b
+
+run unclutter
+run xbanish
+run nm-applet
+run pasystray
+run redshift-gtk
+run syncthing-gtk
+run caffeine
+run clipmenud
+
+run firefox
+run emacs
+run gpodder
+run spotify
+
+if [ "$SCREENCOUNT" -eq 2 ]; then
+ run slack
+fi
+
+###---System lock---###
+pkill -f xss-lock
+xset s 300 5
+env XSECURELOCK_FONT="Hack Nerd Font" xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock &
+
+###---Misc---###
+# Needed for Jetbrains products to work
+wmname LG3D &
diff --git a/private_dot_config/awesome/rc.lua b/private_dot_config/awesome/rc.lua
new file mode 100644
index 0000000..ee787d4
--- /dev/null
+++ b/private_dot_config/awesome/rc.lua
@@ -0,0 +1,552 @@
+-- If LuaRocks is installed, make sure that packages installed through it are
+-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
+pcall(require, "luarocks.loader")
+
+-- Standard awesome library
+local gears = require("gears")
+local awful = require("awful")
+require("awful.autofocus")
+-- Widget and layout library
+local wibox = require("wibox")
+-- Theme handling library
+local beautiful = require("beautiful")
+-- Notification library
+local naughty = require("naughty")
+local menubar = require("menubar")
+local hotkeys_popup = require("awful.hotkeys_popup")
+-- Enable hotkeys help widget for VIM and other apps
+-- when client with a matching name is opened:
+require("awful.hotkeys_popup.keys")
+
+-- {{{ Error handling
+-- Check if awesome encountered an error during startup and fell back to
+-- another config (This code will only ever execute for the fallback config)
+if awesome.startup_errors then
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, there were errors during startup!",
+ text = awesome.startup_errors })
+end
+
+-- Handle runtime errors after startup
+do
+ local in_error = false
+ awesome.connect_signal("debug::error", function (err)
+ -- Make sure we don't go into an endless error loop
+ if in_error then return end
+ in_error = true
+
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, an error happened!",
+ text = tostring(err) })
+ in_error = false
+ end)
+end
+-- }}}
+
+-- {{{ Variable definitions
+-- Themes define colours, icons, font and wallpapers.
+-- beautiful.init(gears.filesystem.get_configuration_dir() .. "/themes/default/theme.lua")
+local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default")
+beautiful.init(theme_path)
+
+-- Use correct status icon size
+awesome.set_preferred_icon_size(32)
+
+-- Enable gaps
+beautiful.useless_gap = 3
+beautiful.gap_single_client = true
+
+-- This is used later as the default terminal and editor to run.
+terminal = "alacritty"
+editor = os.getenv("EDITOR") or "nvim"
+editor_cmd = terminal .. " -e " .. editor
+
+-- Default modkey.
+-- Usually, Mod4 is the key with a logo between Control and Alt.
+-- If you do not like this or do not have such a key,
+-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
+-- However, you can use another modifier like Mod1, but it may interact with others.
+modkey = "Mod4"
+
+-- Table of layouts to cover with awful.layout.inc, order matters.
+awful.layout.layouts = {
+ awful.layout.suit.tile,
+ awful.layout.suit.tile.left,
+ awful.layout.suit.tile.bottom,
+ awful.layout.suit.tile.top,
+ awful.layout.suit.spiral,
+ awful.layout.suit.floating,
+}
+
+-- }}}
+
+
+mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
+ menu = mymainmenu })
+
+-- Menubar configuration
+menubar.utils.terminal = terminal -- Set the terminal for applications that require it
+-- }}}
+
+-- Keyboard map indicator and switcher
+mykeyboardlayout = awful.widget.keyboardlayout()
+
+-- {{{ Wibar
+-- Create a textclock widget
+mytextclock = wibox.widget.textclock()
+
+-- Create a wibox for each screen and add it
+local taglist_buttons = gears.table.join(
+ awful.button({ }, 1, function(t) t:view_only() end),
+ awful.button({ modkey }, 1, function(t)
+ if client.focus then
+ client.focus:move_to_tag(t)
+ end
+ end),
+ awful.button({ }, 3, awful.tag.viewtoggle),
+ awful.button({ modkey }, 3, function(t)
+ if client.focus then
+ client.focus:toggle_tag(t)
+ end
+ end),
+ awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
+ awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
+ )
+
+local tasklist_buttons = gears.table.join(
+ awful.button({ }, 1, function (c)
+ if c == client.focus then
+ c.minimized = true
+ else
+ c:emit_signal(
+ "request::activate",
+ "tasklist",
+ {raise = true}
+ )
+ end
+ end),
+ awful.button({ }, 3, function()
+ awful.menu.client_list({ theme = { width = 250 } })
+ end),
+ awful.button({ }, 4, function ()
+ awful.client.focus.byidx(1)
+ end),
+ awful.button({ }, 5, function ()
+ awful.client.focus.byidx(-1)
+ end))
+
+local function set_wallpaper(s)
+ -- Wallpaper
+ if beautiful.wallpaper then
+ local wallpaper = beautiful.wallpaper
+ -- If wallpaper is a function, call it with the screen
+ if type(wallpaper) == "function" then
+ wallpaper = wallpaper(s)
+ end
+ gears.wallpaper.maximized(wallpaper, s, true)
+ end
+end
+
+-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
+screen.connect_signal("property::geometry", set_wallpaper)
+
+awful.screen.connect_for_each_screen(function(s)
+ -- Wallpaper
+ set_wallpaper(s)
+
+ -- Each screen has its own tag table.
+ awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
+
+ -- Create a promptbox for each screen
+ s.mypromptbox = awful.widget.prompt()
+ -- Create an imagebox widget which will contain an icon indicating which layout we're using.
+ -- We need one layoutbox per screen.
+ s.mylayoutbox = awful.widget.layoutbox(s)
+ s.mylayoutbox:buttons(gears.table.join(
+ awful.button({ }, 1, function () awful.layout.inc( 1) end),
+ awful.button({ }, 3, function () awful.layout.inc(-1) end),
+ awful.button({ }, 4, function () awful.layout.inc( 1) end),
+ awful.button({ }, 5, function () awful.layout.inc(-1) end)))
+ -- Create a taglist widget
+ s.mytaglist = awful.widget.taglist {
+ screen = s,
+ filter = awful.widget.taglist.filter.all,
+ buttons = taglist_buttons
+ }
+
+ -- Create a tasklist widget
+ s.mytasklist = awful.widget.tasklist {
+ screen = s,
+ filter = awful.widget.tasklist.filter.currenttags,
+ buttons = tasklist_buttons
+ }
+
+ -- Create the wibox
+ s.mywibox = awful.wibar({ position = "top", screen = s })
+
+ -- Add widgets to the wibox
+ s.mywibox:setup {
+ layout = wibox.layout.align.horizontal,
+ { -- Left widgets
+ layout = wibox.layout.fixed.horizontal,
+ mylauncher,
+ s.mytaglist,
+ s.mypromptbox,
+ },
+ s.mytasklist, -- Middle widget
+ { -- Right widgets
+ layout = wibox.layout.fixed.horizontal,
+ mykeyboardlayout,
+ wibox.widget.systray(),
+ mytextclock,
+ s.mylayoutbox,
+ },
+ }
+end)
+-- }}}
+
+-- {{{ Mouse bindings
+root.buttons(gears.table.join(
+ awful.button({ }, 3, function () mymainmenu:toggle() end),
+ awful.button({ }, 4, awful.tag.viewnext),
+ awful.button({ }, 5, awful.tag.viewprev)
+))
+-- }}}
+
+-- {{{ Key bindings
+globalkeys = gears.table.join(
+ awful.key({ modkey, }, "s", hotkeys_popup.show_help,
+ {description="show help", group="awesome"}),
+ awful.key({ modkey, }, "Left", awful.tag.viewprev,
+ {description = "view previous", group = "tag"}),
+ awful.key({ modkey, }, "Right", awful.tag.viewnext,
+ {description = "view next", group = "tag"}),
+ awful.key({ modkey, }, "Escape", awful.tag.history.restore,
+ {description = "go back", group = "tag"}),
+
+ awful.key({ modkey, }, "j",
+ function ()
+ awful.client.focus.byidx( 1)
+ end,
+ {description = "focus next by index", group = "client"}
+ ),
+ awful.key({ modkey, }, "k",
+ function ()
+ awful.client.focus.byidx(-1)
+ end,
+ {description = "focus previous by index", group = "client"}
+ ),
+
+ -- Layout manipulation
+ awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
+ {description = "swap with next client by index", group = "client"}),
+ awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
+ {description = "swap with previous client by index", group = "client"}),
+ awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
+ {description = "focus the next screen", group = "screen"}),
+ awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
+ {description = "focus the previous screen", group = "screen"}),
+ awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
+ {description = "jump to urgent client", group = "client"}),
+ awful.key({ modkey, }, "Tab",
+ function ()
+ awful.client.focus.history.previous()
+ if client.focus then
+ client.focus:raise()
+ end
+ end,
+ {description = "go back", group = "client"}),
+
+ -- Standard program
+ awful.key({ modkey, }, "BackSpace", function () awful.spawn(terminal) end,
+ {description = "open a terminal", group = "launcher"}),
+ awful.key({ modkey, "Control" }, "r", awesome.restart,
+ {description = "reload awesome", group = "awesome"}),
+ awful.key({ modkey, "Shift" }, "q", awesome.quit,
+ {description = "quit awesome", group = "awesome"}),
+
+ awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
+ {description = "increase master width factor", group = "layout"}),
+ awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
+ {description = "decrease master width factor", group = "layout"}),
+ awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
+ {description = "increase the number of master clients", group = "layout"}),
+ awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
+ {description = "decrease the number of master clients", group = "layout"}),
+ awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
+ {description = "increase the number of columns", group = "layout"}),
+ awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
+ {description = "decrease the number of columns", group = "layout"}),
+ awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
+ {description = "select next", group = "layout"}),
+ awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
+ {description = "select previous", group = "layout"}),
+
+ awful.key({ modkey, "Control" }, "n",
+ function ()
+ local c = awful.client.restore()
+ -- Focus restored client
+ if c then
+ c:emit_signal(
+ "request::activate", "key.unminimize", {raise = true}
+ )
+ end
+ end,
+ {description = "restore minimized", group = "client"}),
+
+ -- Prompt
+ awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
+ {description = "run prompt", group = "launcher"}),
+
+ awful.key({ modkey }, "x",
+ function ()
+ awful.prompt.run {
+ prompt = "Run Lua code: ",
+ textbox = awful.screen.focused().mypromptbox.widget,
+ exe_callback = awful.util.eval,
+ history_path = awful.util.get_cache_dir() .. "/history_eval"
+ }
+ end,
+ {description = "lua execute prompt", group = "awesome"}),
+ -- Menubar
+ awful.key({ modkey }, "Delete", function() menubar.show() end,
+ {description = "show the menubar", group = "launcher"})
+
+)
+
+clientkeys = gears.table.join(
+ awful.key({ modkey, }, "f",
+ function (c)
+ c.fullscreen = not c.fullscreen
+ c:raise()
+ end,
+ {description = "toggle fullscreen", group = "client"}),
+ awful.key({ modkey, }, "w", function (c) c:kill() end,
+ {description = "close", group = "client"}),
+ awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
+ {description = "toggle floating", group = "client"}),
+ awful.key({ modkey }, "End", function (c) c:swap(awful.client.getmaster()) end,
+ {description = "move to master", group = "client"}),
+ awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
+ {description = "move to screen", group = "client"}),
+ awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
+ {description = "toggle keep on top", group = "client"}),
+ awful.key({ modkey, }, "n",
+ function (c)
+ -- The client currently has the input focus, so it cannot be
+ -- minimized, since minimized clients can't have the focus.
+ c.minimized = true
+ end ,
+ {description = "minimize", group = "client"}),
+ awful.key({ modkey, }, "m",
+ function (c)
+ c.maximized = not c.maximized
+ c:raise()
+ end ,
+ {description = "(un)maximize", group = "client"}),
+ awful.key({ modkey, "Control" }, "m",
+ function (c)
+ c.maximized_vertical = not c.maximized_vertical
+ c:raise()
+ end ,
+ {description = "(un)maximize vertically", group = "client"}),
+ awful.key({ modkey, "Shift" }, "m",
+ function (c)
+ c.maximized_horizontal = not c.maximized_horizontal
+ c:raise()
+ end ,
+ {description = "(un)maximize horizontally", group = "client"})
+)
+
+-- Bind all key numbers to tags.
+-- Be careful: we use keycodes to make it work on any keyboard layout.
+-- This should map on the top row of your keyboard, usually 1 to 9.
+for i = 1, 9 do
+ globalkeys = gears.table.join(globalkeys,
+ -- View tag only.
+ awful.key({ modkey }, "#" .. i + 9,
+ function ()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ tag:view_only()
+ end
+ end,
+ {description = "view tag #"..i, group = "tag"}),
+ -- Toggle tag display.
+ awful.key({ modkey, "Control" }, "#" .. i + 9,
+ function ()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end,
+ {description = "toggle tag #" .. i, group = "tag"}),
+ -- Move client to tag.
+ awful.key({ modkey, "Shift" }, "#" .. i + 9,
+ function ()
+ if client.focus then
+ local tag = client.focus.screen.tags[i]
+ if tag then
+ client.focus:move_to_tag(tag)
+ end
+ end
+ end,
+ {description = "move focused client to tag #"..i, group = "tag"}),
+ -- Toggle tag on focused client.
+ awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
+ function ()
+ if client.focus then
+ local tag = client.focus.screen.tags[i]
+ if tag then
+ client.focus:toggle_tag(tag)
+ end
+ end
+ end,
+ {description = "toggle focused client on tag #" .. i, group = "tag"})
+ )
+end
+
+clientbuttons = gears.table.join(
+ awful.button({ }, 1, function (c)
+ c:emit_signal("request::activate", "mouse_click", {raise = true})
+ end),
+ awful.button({ modkey }, 1, function (c)
+ c:emit_signal("request::activate", "mouse_click", {raise = true})
+ awful.mouse.client.move(c)
+ end),
+ awful.button({ modkey }, 3, function (c)
+ c:emit_signal("request::activate", "mouse_click", {raise = true})
+ awful.mouse.client.resize(c)
+ end)
+)
+
+-- Set keys
+root.keys(globalkeys)
+-- }}}
+
+-- {{{ Rules
+-- Rules to apply to new clients (through the "manage" signal).
+awful.rules.rules = {
+ -- All clients will match this rule.
+ { rule = { },
+ properties = { border_width = beautiful.border_width,
+ border_color = beautiful.border_normal,
+ focus = awful.client.focus.filter,
+ raise = true,
+ keys = clientkeys,
+ buttons = clientbuttons,
+ screen = awful.screen.preferred,
+ placement = awful.placement.no_overlap+awful.placement.no_offscreen
+ }
+ },
+
+ -- Floating clients.
+ { rule_any = {
+ instance = {
+ "DTA", -- Firefox addon DownThemAll.
+ "copyq", -- Includes session name in class.
+ "pinentry",
+ },
+ class = {
+ "Arandr",
+ "Blueman-manager",
+ "Gpick",
+ "Kruler",
+ "MessageWin", -- kalarm.
+ "Sxiv",
+ "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
+ "Wpa_gui",
+ "veromix",
+ "xtightvncviewer"},
+
+ -- Note that the name property shown in xprop might be set slightly after creation of the client
+ -- and the name shown there might not match defined rules here.
+ name = {
+ "Event Tester", -- xev.
+ },
+ role = {
+ "AlarmWindow", -- Thunderbird's calendar.
+ "ConfigManager", -- Thunderbird's about:config.
+ "pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
+ }
+ }, properties = { floating = true }},
+
+ -- Add titlebars to normal clients and dialogs
+ { rule_any = {type = { "normal", "dialog" }
+ }, properties = { titlebars_enabled = true }
+ },
+
+ -- Set Firefox to always map on the tag named "2" on screen 1.
+ -- { rule = { class = "Firefox" },
+ -- properties = { screen = 1, tag = "2" } },
+}
+-- }}}
+
+-- {{{ Signals
+-- Signal function to execute when a new client appears.
+client.connect_signal("manage", function (c)
+ -- Set the windows at the slave,
+ -- i.e. put it at the end of others instead of setting it master.
+ -- if not awesome.startup then awful.client.setslave(c) end
+
+ if awesome.startup
+ and not c.size_hints.user_position
+ and not c.size_hints.program_position then
+ -- Prevent clients from being unreachable after screen count changes.
+ awful.placement.no_offscreen(c)
+ end
+end)
+
+-- Add a titlebar if titlebars_enabled is set to true in the rules.
+client.connect_signal("request::titlebars", function(c)
+ -- buttons for the titlebar
+ local buttons = gears.table.join(
+ awful.button({ }, 1, function()
+ c:emit_signal("request::activate", "titlebar", {raise = true})
+ awful.mouse.client.move(c)
+ end),
+ awful.button({ }, 3, function()
+ c:emit_signal("request::activate", "titlebar", {raise = true})
+ awful.mouse.client.resize(c)
+ end)
+ )
+
+ awful.titlebar(c) : setup {
+ { -- Left
+ awful.titlebar.widget.iconwidget(c),
+ buttons = buttons,
+ layout = wibox.layout.fixed.horizontal
+ },
+ { -- Middle
+ { -- Title
+ align = "center",
+ widget = awful.titlebar.widget.titlewidget(c)
+ },
+ buttons = buttons,
+ layout = wibox.layout.flex.horizontal
+ },
+ { -- Right
+ awful.titlebar.widget.floatingbutton (c),
+ awful.titlebar.widget.maximizedbutton(c),
+ awful.titlebar.widget.stickybutton (c),
+ awful.titlebar.widget.ontopbutton (c),
+ awful.titlebar.widget.closebutton (c),
+ layout = wibox.layout.fixed.horizontal()
+ },
+ layout = wibox.layout.align.horizontal
+ }
+end)
+
+-- Enable sloppy focus, so that focus follows mouse.
+client.connect_signal("mouse::enter", function(c)
+ c:emit_signal("request::activate", "mouse_enter", {raise = false})
+end)
+
+client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
+client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
+-- }}}
+
+-- Autorun
+awful.spawn.with_shell("~/.config/awesome/autorun.sh")
diff --git a/private_dot_config/awesome/themes/default/README b/private_dot_config/awesome/themes/default/README
new file mode 100644
index 0000000..1ddb349
--- /dev/null
+++ b/private_dot_config/awesome/themes/default/README
@@ -0,0 +1,3 @@
+Background images:
+ Mikael Eriksson
+ Licensed under CC-BY-SA-3.0
diff --git a/private_dot_config/awesome/themes/default/background.png b/private_dot_config/awesome/themes/default/background.png
new file mode 100644
index 0000000..8f52b6b
Binary files /dev/null and b/private_dot_config/awesome/themes/default/background.png differ
diff --git a/private_dot_config/awesome/themes/default/background_white.png b/private_dot_config/awesome/themes/default/background_white.png
new file mode 100644
index 0000000..bb0c5d0
Binary files /dev/null and b/private_dot_config/awesome/themes/default/background_white.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornerne.png b/private_dot_config/awesome/themes/default/layouts/cornerne.png
new file mode 100644
index 0000000..c85bd56
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornerne.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornernew.png b/private_dot_config/awesome/themes/default/layouts/cornernew.png
new file mode 100644
index 0000000..c3fd986
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornernew.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornernw.png b/private_dot_config/awesome/themes/default/layouts/cornernw.png
new file mode 100644
index 0000000..dfe78b3
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornernw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornernww.png b/private_dot_config/awesome/themes/default/layouts/cornernww.png
new file mode 100644
index 0000000..f489010
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornernww.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornerse.png b/private_dot_config/awesome/themes/default/layouts/cornerse.png
new file mode 100644
index 0000000..023ae79
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornerse.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornersew.png b/private_dot_config/awesome/themes/default/layouts/cornersew.png
new file mode 100644
index 0000000..f7cfa1c
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornersew.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornersw.png b/private_dot_config/awesome/themes/default/layouts/cornersw.png
new file mode 100644
index 0000000..c1453c9
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornersw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/cornersww.png b/private_dot_config/awesome/themes/default/layouts/cornersww.png
new file mode 100644
index 0000000..a65a043
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/cornersww.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/dwindle.png b/private_dot_config/awesome/themes/default/layouts/dwindle.png
new file mode 100644
index 0000000..9902d22
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/dwindle.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/dwindlew.png b/private_dot_config/awesome/themes/default/layouts/dwindlew.png
new file mode 100644
index 0000000..9199049
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/dwindlew.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/fairh.png b/private_dot_config/awesome/themes/default/layouts/fairh.png
new file mode 100644
index 0000000..d41deea
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/fairh.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/fairhw.png b/private_dot_config/awesome/themes/default/layouts/fairhw.png
new file mode 100644
index 0000000..bb50e3a
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/fairhw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/fairv.png b/private_dot_config/awesome/themes/default/layouts/fairv.png
new file mode 100644
index 0000000..f5f0288
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/fairv.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/fairvw.png b/private_dot_config/awesome/themes/default/layouts/fairvw.png
new file mode 100644
index 0000000..4f4ed52
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/fairvw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/floating.png b/private_dot_config/awesome/themes/default/layouts/floating.png
new file mode 100644
index 0000000..b8061a0
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/floating.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/floatingw.png b/private_dot_config/awesome/themes/default/layouts/floatingw.png
new file mode 100644
index 0000000..4815894
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/floatingw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/fullscreen.png b/private_dot_config/awesome/themes/default/layouts/fullscreen.png
new file mode 100644
index 0000000..d02f6fc
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/fullscreen.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/fullscreenw.png b/private_dot_config/awesome/themes/default/layouts/fullscreenw.png
new file mode 100644
index 0000000..5c35bfa
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/fullscreenw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/magnifier.png b/private_dot_config/awesome/themes/default/layouts/magnifier.png
new file mode 100644
index 0000000..2925414
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/magnifier.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/magnifierw.png b/private_dot_config/awesome/themes/default/layouts/magnifierw.png
new file mode 100644
index 0000000..6209556
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/magnifierw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/max.png b/private_dot_config/awesome/themes/default/layouts/max.png
new file mode 100644
index 0000000..8d20844
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/max.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/maxw.png b/private_dot_config/awesome/themes/default/layouts/maxw.png
new file mode 100644
index 0000000..85f5ce3
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/maxw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/spiral.png b/private_dot_config/awesome/themes/default/layouts/spiral.png
new file mode 100644
index 0000000..d9434be
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/spiral.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/spiralw.png b/private_dot_config/awesome/themes/default/layouts/spiralw.png
new file mode 100644
index 0000000..b78dd86
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/spiralw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tile.png b/private_dot_config/awesome/themes/default/layouts/tile.png
new file mode 100644
index 0000000..3ede21e
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tile.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tilebottom.png b/private_dot_config/awesome/themes/default/layouts/tilebottom.png
new file mode 100644
index 0000000..6f8c257
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tilebottom.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tilebottomw.png b/private_dot_config/awesome/themes/default/layouts/tilebottomw.png
new file mode 100644
index 0000000..a1de7b2
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tilebottomw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tileleft.png b/private_dot_config/awesome/themes/default/layouts/tileleft.png
new file mode 100644
index 0000000..31d6870
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tileleft.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tileleftw.png b/private_dot_config/awesome/themes/default/layouts/tileleftw.png
new file mode 100644
index 0000000..cf14c25
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tileleftw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tiletop.png b/private_dot_config/awesome/themes/default/layouts/tiletop.png
new file mode 100644
index 0000000..98cade2
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tiletop.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tiletopw.png b/private_dot_config/awesome/themes/default/layouts/tiletopw.png
new file mode 100644
index 0000000..d1d0872
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tiletopw.png differ
diff --git a/private_dot_config/awesome/themes/default/layouts/tilew.png b/private_dot_config/awesome/themes/default/layouts/tilew.png
new file mode 100644
index 0000000..fde2ca4
Binary files /dev/null and b/private_dot_config/awesome/themes/default/layouts/tilew.png differ
diff --git a/private_dot_config/awesome/themes/default/submenu.png b/private_dot_config/awesome/themes/default/submenu.png
new file mode 100644
index 0000000..b2778e2
Binary files /dev/null and b/private_dot_config/awesome/themes/default/submenu.png differ
diff --git a/private_dot_config/awesome/themes/default/taglist/squarefw.png b/private_dot_config/awesome/themes/default/taglist/squarefw.png
new file mode 100644
index 0000000..2a86430
Binary files /dev/null and b/private_dot_config/awesome/themes/default/taglist/squarefw.png differ
diff --git a/private_dot_config/awesome/themes/default/taglist/squarew.png b/private_dot_config/awesome/themes/default/taglist/squarew.png
new file mode 100644
index 0000000..913f2ca
Binary files /dev/null and b/private_dot_config/awesome/themes/default/taglist/squarew.png differ
diff --git a/private_dot_config/awesome/themes/default/theme.lua b/private_dot_config/awesome/themes/default/theme.lua
new file mode 100644
index 0000000..fdfb75d
--- /dev/null
+++ b/private_dot_config/awesome/themes/default/theme.lua
@@ -0,0 +1,136 @@
+---------------------------
+-- Default awesome theme --
+---------------------------
+
+local theme_assets = require("beautiful.theme_assets")
+local xresources = require("beautiful.xresources")
+local dpi = xresources.apply_dpi
+
+local gfs = require("gears.filesystem")
+local themes_path = gfs.get_themes_dir()
+
+local theme = {}
+
+theme.font = "Hack Nerd Font 8"
+
+-- theme.bg_normal = "#222222"
+theme.bg_normal = "#1d1f21"
+-- theme.bg_focus = "#535d6c"
+theme.bg_focus = "#333333"
+theme.bg_urgent = "#ff0000"
+theme.bg_minimize = "#444444"
+theme.bg_systray = theme.bg_normal
+
+theme.fg_normal = "#aaaaaa"
+theme.fg_focus = "#ffffff"
+theme.fg_urgent = "#ffffff"
+theme.fg_minimize = "#ffffff"
+
+theme.useless_gap = dpi(0)
+-- theme.border_width = dpi(1)
+theme.border_width = dpi(2)
+theme.border_normal = "#000000"
+-- theme.border_focus = "#535d6c"
+theme.border_focus = "#327bd1"
+theme.border_marked = "#91231c"
+
+-- There are other variable sets
+-- overriding the default one when
+-- defined, the sets are:
+-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile]
+-- tasklist_[bg|fg]_[focus|urgent]
+-- titlebar_[bg|fg]_[normal|focus]
+-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
+-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
+-- prompt_[fg|bg|fg_cursor|bg_cursor|font]
+-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font]
+-- Example:
+--theme.taglist_bg_focus = "#ff0000"
+
+-- Generate taglist squares:
+local taglist_square_size = dpi(4)
+theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
+ taglist_square_size, theme.fg_normal
+)
+theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
+ taglist_square_size, theme.fg_normal
+)
+
+-- Variables set for theming notifications:
+-- notification_font
+-- notification_[bg|fg]
+-- notification_[width|height|margin]
+-- notification_[border_color|border_width|shape|opacity]
+
+-- Variables set for theming the menu:
+-- menu_[bg|fg]_[normal|focus]
+-- menu_[border_color|border_width]
+theme.menu_submenu_icon = themes_path.."default/submenu.png"
+theme.menu_height = dpi(15)
+theme.menu_width = dpi(100)
+
+-- You can add as many variables as
+-- you wish and access them by using
+-- beautiful.variable in your rc.lua
+--theme.bg_widget = "#cc0000"
+
+-- Define the image to load
+theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png"
+theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png"
+
+theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png"
+theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png"
+
+theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png"
+theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png"
+theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png"
+theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png"
+
+theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png"
+theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png"
+theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png"
+theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png"
+
+theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png"
+theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png"
+theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png"
+theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png"
+
+theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png"
+theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png"
+theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png"
+theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png"
+
+-- theme.wallpaper = themes_path.."default/background.png"
+theme.wallpaper = "~/.cache/wall1.png"
+
+-- You can use your own layout icons like this:
+theme.layout_fairh = themes_path.."default/layouts/fairhw.png"
+theme.layout_fairv = themes_path.."default/layouts/fairvw.png"
+theme.layout_floating = themes_path.."default/layouts/floatingw.png"
+theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png"
+theme.layout_max = themes_path.."default/layouts/maxw.png"
+theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png"
+theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png"
+theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png"
+theme.layout_tile = themes_path.."default/layouts/tilew.png"
+theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png"
+theme.layout_spiral = themes_path.."default/layouts/spiralw.png"
+theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png"
+theme.layout_cornernw = themes_path.."default/layouts/cornernww.png"
+theme.layout_cornerne = themes_path.."default/layouts/cornernew.png"
+theme.layout_cornersw = themes_path.."default/layouts/cornersww.png"
+theme.layout_cornerse = themes_path.."default/layouts/cornersew.png"
+
+-- Generate Awesome icon:
+theme.awesome_icon = theme_assets.awesome_icon(
+ theme.menu_height, theme.bg_focus, theme.fg_focus
+)
+
+-- Define the icon theme for application icons. If not set then the icons
+-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
+theme.icon_theme = nil
+
+return theme
+
+-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
diff --git a/private_dot_config/awesome/themes/default/titlebar/close_focus.png b/private_dot_config/awesome/themes/default/titlebar/close_focus.png
new file mode 100644
index 0000000..01ef825
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/close_focus.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/close_normal.png b/private_dot_config/awesome/themes/default/titlebar/close_normal.png
new file mode 100644
index 0000000..5448ed8
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/close_normal.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/floating_focus_active.png b/private_dot_config/awesome/themes/default/titlebar/floating_focus_active.png
new file mode 100644
index 0000000..82dcc7c
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/floating_focus_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/floating_focus_inactive.png b/private_dot_config/awesome/themes/default/titlebar/floating_focus_inactive.png
new file mode 100644
index 0000000..c19ba80
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/floating_focus_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/floating_normal_active.png b/private_dot_config/awesome/themes/default/titlebar/floating_normal_active.png
new file mode 100644
index 0000000..62342d1
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/floating_normal_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/floating_normal_inactive.png b/private_dot_config/awesome/themes/default/titlebar/floating_normal_inactive.png
new file mode 100644
index 0000000..e2bbdfa
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/floating_normal_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/maximized_focus_active.png b/private_dot_config/awesome/themes/default/titlebar/maximized_focus_active.png
new file mode 100644
index 0000000..d7dffd7
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/maximized_focus_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/maximized_focus_inactive.png b/private_dot_config/awesome/themes/default/titlebar/maximized_focus_inactive.png
new file mode 100644
index 0000000..844389f
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/maximized_focus_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/maximized_normal_active.png b/private_dot_config/awesome/themes/default/titlebar/maximized_normal_active.png
new file mode 100644
index 0000000..a705f81
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/maximized_normal_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/maximized_normal_inactive.png b/private_dot_config/awesome/themes/default/titlebar/maximized_normal_inactive.png
new file mode 100644
index 0000000..4c1ab1f
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/maximized_normal_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/minimize_focus.png b/private_dot_config/awesome/themes/default/titlebar/minimize_focus.png
new file mode 100644
index 0000000..caaceb2
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/minimize_focus.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/minimize_normal.png b/private_dot_config/awesome/themes/default/titlebar/minimize_normal.png
new file mode 100644
index 0000000..36621d0
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/minimize_normal.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/ontop_focus_active.png b/private_dot_config/awesome/themes/default/titlebar/ontop_focus_active.png
new file mode 100644
index 0000000..312c00b
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/ontop_focus_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/ontop_focus_inactive.png b/private_dot_config/awesome/themes/default/titlebar/ontop_focus_inactive.png
new file mode 100644
index 0000000..a48e1c5
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/ontop_focus_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/ontop_normal_active.png b/private_dot_config/awesome/themes/default/titlebar/ontop_normal_active.png
new file mode 100644
index 0000000..117a203
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/ontop_normal_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/ontop_normal_inactive.png b/private_dot_config/awesome/themes/default/titlebar/ontop_normal_inactive.png
new file mode 100644
index 0000000..d3a10c8
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/ontop_normal_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/sticky_focus_active.png b/private_dot_config/awesome/themes/default/titlebar/sticky_focus_active.png
new file mode 100644
index 0000000..814499b
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/sticky_focus_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/sticky_focus_inactive.png b/private_dot_config/awesome/themes/default/titlebar/sticky_focus_inactive.png
new file mode 100644
index 0000000..21b000d
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/sticky_focus_inactive.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/sticky_normal_active.png b/private_dot_config/awesome/themes/default/titlebar/sticky_normal_active.png
new file mode 100644
index 0000000..bdb5595
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/sticky_normal_active.png differ
diff --git a/private_dot_config/awesome/themes/default/titlebar/sticky_normal_inactive.png b/private_dot_config/awesome/themes/default/titlebar/sticky_normal_inactive.png
new file mode 100644
index 0000000..a96b9b1
Binary files /dev/null and b/private_dot_config/awesome/themes/default/titlebar/sticky_normal_inactive.png differ
diff --git a/private_dot_config/awesome/xrandr.lua b/private_dot_config/awesome/xrandr.lua
new file mode 100644
index 0000000..1149910
--- /dev/null
+++ b/private_dot_config/awesome/xrandr.lua
@@ -0,0 +1,136 @@
+--- Separating Multiple Monitor functions as a separeted module (taken from awesome wiki)
+
+local gtable = require("gears.table")
+local spawn = require("awful.spawn")
+local naughty = require("naughty")
+
+-- A path to a fancy icon
+local icon_path = ""
+
+-- Get active outputs
+local function outputs()
+ local outputs = {}
+ local xrandr = io.popen("xrandr -q --current")
+
+ if xrandr then
+ for line in xrandr:lines() do
+ local output = line:match("^([%w-]+) connected ")
+ if output then
+ outputs[#outputs + 1] = output
+ end
+ end
+ xrandr:close()
+ end
+
+ return outputs
+end
+
+local function arrange(out)
+ -- We need to enumerate all permutations of horizontal outputs.
+
+ local choices = {}
+ local previous = { {} }
+ for i = 1, #out do
+ -- Find all permutation of length `i`: we take the permutation
+ -- of length `i-1` and for each of them, we create new
+ -- permutations by adding each output at the end of it if it is
+ -- not already present.
+ local new = {}
+ for _, p in pairs(previous) do
+ for _, o in pairs(out) do
+ if not gtable.hasitem(p, o) then
+ new[#new + 1] = gtable.join(p, {o})
+ end
+ end
+ end
+ choices = gtable.join(choices, new)
+ previous = new
+ end
+
+ return choices
+end
+
+-- Build available choices
+local function menu()
+ local menu = {}
+ local out = outputs()
+ local choices = arrange(out)
+
+ for _, choice in pairs(choices) do
+ local cmd = "xrandr"
+ -- Enabled outputs
+ for i, o in pairs(choice) do
+ cmd = cmd .. " --output " .. o .. " --auto"
+ if i > 1 then
+ cmd = cmd .. " --right-of " .. choice[i-1]
+ end
+ end
+ -- Disabled outputs
+ for _, o in pairs(out) do
+ if not gtable.hasitem(choice, o) then
+ cmd = cmd .. " --output " .. o .. " --off"
+ end
+ end
+
+ local label = ""
+ if #choice == 1 then
+ label = 'Only ' .. choice[1] .. ''
+ else
+ for i, o in pairs(choice) do
+ if i > 1 then label = label .. " + " end
+ label = label .. '' .. o .. ''
+ end
+ end
+
+ menu[#menu + 1] = { label, cmd }
+ end
+
+ return menu
+end
+
+-- Display xrandr notifications from choices
+local state = { cid = nil }
+
+local function naughty_destroy_callback(reason)
+ if reason == naughty.notificationClosedReason.expired or
+ reason == naughty.notificationClosedReason.dismissedByUser then
+ local action = state.index and state.menu[state.index - 1][2]
+ if action then
+ spawn(action, false)
+ state.index = nil
+ end
+ end
+end
+
+local function xrandr()
+ -- Build the list of choices
+ if not state.index then
+ state.menu = menu()
+ state.index = 1
+ end
+
+ -- Select one and display the appropriate notification
+ local label, action
+ local next = state.menu[state.index]
+ state.index = state.index + 1
+
+ if not next then
+ label = "Keep the current configuration"
+ state.index = nil
+ else
+ label, action = next[1], next[2]
+ end
+ state.cid = naughty.notify({ text = label,
+ icon = icon_path,
+ timeout = 4,
+ screen = mouse.screen,
+ replaces_id = state.cid,
+ destroy = naughty_destroy_callback}).id
+end
+
+return {
+ outputs = outputs,
+ arrange = arrange,
+ menu = menu,
+ xrandr = xrandr
+}
diff --git a/bspwm/.config/bspwm/noswallow b/private_dot_config/bspwm/empty_noswallow
similarity index 100%
rename from bspwm/.config/bspwm/noswallow
rename to private_dot_config/bspwm/empty_noswallow
diff --git a/bspwm/.config/bspwm/bspwmrc b/private_dot_config/bspwm/executable_bspwmrc.tmpl
old mode 100755
new mode 100644
similarity index 76%
rename from bspwm/.config/bspwm/bspwmrc
rename to private_dot_config/bspwm/executable_bspwmrc.tmpl
index 58e6d99..e9a9868
--- a/bspwm/.config/bspwm/bspwmrc
+++ b/private_dot_config/bspwm/executable_bspwmrc.tmpl
@@ -34,31 +34,38 @@ sxhkd &
###---Keyboard---###
setxkbmap -option caps:escape
-###---Get monitor count---###
-set SCREENCOUNT (xrandr | grep -c "\*")
-
###---Monitors---###
-if [ "$SCREENCOUNT" -eq 2 ]
- bspc monitor DP-3 -d 2 3 4 5 6 7 8 9 0
- bspc monitor DP-2 -d 1
- if [ -f "$HOME/.local/bin/screen_desktop" ]
- screen_desktop
- end
- if [ -f "$HOME/.local/bin/polybar-desktop" ]
- polybar-desktop
- end
-else
- bspc monitor -d 1 2 3 4 5 6 7 8 9 0
- if [ -f "$HOME/.local/bin/screen" ]
- screen
- end
- if [ -f "$HOME/.local/bin/polybar-laptop" ]
- polybar-laptop
- end
+{{ if eq .type "desktop" }}
+bspc monitor DP-3 -d 2 3 4 5 6 7 8 9 0
+bspc monitor DP-2 -d 1
+xrandr --output DP-3 --primary --mode 3840x2160 --rotate normal --output DP-2 --mode 2560x1440 --pos 0x0 --rotate left
+{{ else }}
+bspc monitor -d 1 2 3 4 5 6 7 8 9 0
+{{ end }}
+
+###---Polybar---###
+# Terminate already running bar instances
+killall -q polybar
+
+# Wait until the processes have been shut down
+while pgrep -u (id -u) -x polybar >/dev/null
+ sleep 1
end
+{{ if eq .type "desktop" }}
+polybar-monitor1 &
+polybar-monitor2 &
+{{ else }}
+polybar framework-top &
+polybar framework-bottom &
+{{ end }}
+
###---Wallpaper & opacity---###
-~/.local/bin/wallpaper
+{{ if eq .type "desktop" }}
+xwallpaper --output DP-2 --zoom ~/.cache/wall2.png --output DP-3 --zoom ~/.cache/wall1.png &
+{{ else }}
+xwallpaper --output eDP-1 --zoom ~/.cache/wall1.png &
+{{ end }}
wal -n -R
picom -b
@@ -116,10 +123,7 @@ start_if_not_running emacs
start_if_not_running element-desktop
start_if_not_running element-desktop-nightly
start_if_not_running gpodder
-
-if [ "$SCREENCOUNT" -eq 2 ]
- start_if_not_running slack
-end
+{{ if eq .type "desktop" }}start_if_not_running slack{{ end }}
pkill -f cleanfullscreen
~/.local/bin/cleanfullscreen &
diff --git a/bspwm/.config/bspwm/terminals b/private_dot_config/bspwm/terminals
similarity index 100%
rename from bspwm/.config/bspwm/terminals
rename to private_dot_config/bspwm/terminals
diff --git a/emacs/.config/chemacs/profiles.el b/private_dot_config/chemacs/profiles.el
similarity index 100%
rename from emacs/.config/chemacs/profiles.el
rename to private_dot_config/chemacs/profiles.el
diff --git a/neovim/.config/coc/extensions/package.json b/private_dot_config/coc/extensions/package.json
similarity index 100%
rename from neovim/.config/coc/extensions/package.json
rename to private_dot_config/coc/extensions/package.json
diff --git a/private_dot_config/coc/extensions/yarn.lock b/private_dot_config/coc/extensions/yarn.lock
new file mode 100644
index 0000000..28ff4d0
--- /dev/null
+++ b/private_dot_config/coc/extensions/yarn.lock
@@ -0,0 +1,106 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+coc-css@>=1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/coc-css/-/coc-css-1.3.0.tgz#9fb85490b203dd1d3960d4cadc29b8b97178ef3f"
+ integrity sha512-adpUCwj1sFK+6RFXVDUYZe3oC+I1dre4XoWVZY7H05Fn7r7sa5QbpQ/F+kIce2sveQbsVoLTR7mfr18wH7Ru+w==
+
+coc-go@>=1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/coc-go/-/coc-go-1.3.0.tgz#51af28d0e8ff4f97efe1f8491c8c2ad3f6d344da"
+ integrity sha512-Oh3ea/gb0lU5qZN1qaQMAQhxscrgcYfB3ZuRWxi+tMLCjoi8gJg/g05C5zD6hfbgmhC1PsL7jPeWSe5F4MifLg==
+ dependencies:
+ tslib "^2.3.1"
+ vscode-languageserver-textdocument "^1.0.4"
+ vscode-uri "^3.0.3"
+ which "^2.0.2"
+
+coc-html@>=1.6.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/coc-html/-/coc-html-1.7.0.tgz#de4a312ba8d7f20322a6bfac3ec3352de682e270"
+ integrity sha512-ywRthVmeX9gI1lAORorS8MjNiqfSi9mMNRRwTWe6b+GyzriabMhyCej+RNhHV1gcPNRLqlhy+j3ncHv+m5seKg==
+ dependencies:
+ typescript "^4.3"
+
+coc-jest@>=1.1.4:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/coc-jest/-/coc-jest-1.1.5.tgz#e320e7cdd65e3cfca102a054b5bceacdc537a7f4"
+ integrity sha512-H6j4hqmsF2b4hSfGQqaXeCahs3LnyYQc6vbtrSkuMQRdosh0gcZQx186kbxph8/5Mecw22Y9BGcsEaF2/RLEbw==
+
+coc-json@>=1.4.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/coc-json/-/coc-json-1.6.1.tgz#0e8c791a068cea6efdbc20404ae356faefe17573"
+ integrity sha512-qRDwaa4PZUb7q0N/oGoUrhKeo+5A9haYggOkUjx3SMPMWh2Pxsck5eftZzyUgLZDh/fabrYP7kBYE9+n7u4gnw==
+
+coc-pairs@>=1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/coc-pairs/-/coc-pairs-1.3.2.tgz#10db5fa45ccbe4e64c195443190d724e4c3e3d81"
+ integrity sha512-dinOWxcKvSghIEyRHy0vfjIUturfX1HiRHZ+vyInHXP3lXFq1SQF3B9RzwHj1eXjfmqKMDVsgwjAftAx8j8Rbw==
+
+coc-python@>=1.2.13:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/coc-python/-/coc-python-1.2.13.tgz#74c5b9d3413a13310027f93578915bac33692c62"
+ integrity sha512-thsXkbwwJMpiGa/1GiPvFnbWtC5K8QcZvcUtoc4lU8Hf38LbywK5qRp6M7tOAabJOq5dYcIYYbPZWzGwhoZEiw==
+
+coc-rust-analyzer@>=0.62.0:
+ version "0.68.4"
+ resolved "https://registry.yarnpkg.com/coc-rust-analyzer/-/coc-rust-analyzer-0.68.4.tgz#9b059e47543a10f24862e7ef235bd922c0660111"
+ integrity sha512-90PFsmwheDgytlzH65RGjnTFCVzMhfmvjOCj0VkgnuAEuiBbccMPQv/cuzS5Mbj6e74NWG5FI4QHRukEgsZdPA==
+
+coc-tsserver@>=1.10.1:
+ version "1.11.11"
+ resolved "https://registry.yarnpkg.com/coc-tsserver/-/coc-tsserver-1.11.11.tgz#66e7bca46c0bec63601e10005da92f89c6329d73"
+ integrity sha512-gg8muOoV54D4IawMSGIVgLGevyMD6K0U8TYc4xFMjZt9bvuv5fkeLXxxH+yAfmtFXVmFWSrCAff1gPibnIPOvw==
+ dependencies:
+ typescript "^4.8.3"
+
+coc-yaml@>=1.7.5:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/coc-yaml/-/coc-yaml-1.8.0.tgz#07967894819053738901ddb0f957a9d18dc96459"
+ integrity sha512-ttTi8SSoFPcKOWgY7H7E91zOYcycfsZdvA7jmZJOr+iWYGqR2LdvMvBpWpuV7oWSOF5a88zM/vb8P8aNefE04Q==
+ dependencies:
+ prettier "2.0.5"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+prettier@2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
+ integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
+
+tslib@^2.3.1:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
+typescript@^4.3:
+ version "4.8.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6"
+ integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
+
+typescript@^4.8.3:
+ version "4.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88"
+ integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==
+
+vscode-languageserver-textdocument@^1.0.4:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.7.tgz#16df468d5c2606103c90554ae05f9f3d335b771b"
+ integrity sha512-bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg==
+
+vscode-uri@^3.0.3:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.6.tgz#5e6e2e1a4170543af30151b561a41f71db1d6f91"
+ integrity sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==
+
+which@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
diff --git a/dmenu/.config/dmenu-frecency/config.json b/private_dot_config/dmenu-frecency/config.json
similarity index 100%
rename from dmenu/.config/dmenu-frecency/config.json
rename to private_dot_config/dmenu-frecency/config.json
diff --git a/private_dot_config/doom/config.el b/private_dot_config/doom/config.el
new file mode 100644
index 0000000..2a1a4f9
--- /dev/null
+++ b/private_dot_config/doom/config.el
@@ -0,0 +1,207 @@
+(defun set-font (font-size bigfont-size)
+ (setq doom-font (font-spec :family "JetBrainsMono Nerd Font" :size font-size))
+ (setq doom-big-font (font-spec :family "JetBrainsMono Nerd Font" :size bigfont-size))
+ (setq doom-variable-pitch-font (font-spec :family "Noto Sans" :size font-size))
+ (setq doom-serif-font (font-spec :family "Noto Serif" :size font-size))
+ (setq doom-unicode-font (font-spec :family "JoyPixels"))
+ )
+
+(when window-system
+ (if (> (x-display-pixel-width) 2560)
+ (set-font 12 24)
+ (set-font 16 28)))
+
+(setq doom-theme 'doom-molokai)
+
+(defun my-fetch-password (&rest params)
+ (require 'auth-source)
+ (let ((match (car (apply #'auth-source-search params))))
+ (if match
+ (let ((secret (plist-get match :secret)))
+ (if (functionp secret)
+ (funcall secret)
+ secret))
+ (error "Password not found for %S" params))))
+
+(setq display-line-numbers-type `relative)
+
+(use-package! projectile
+ :defer t
+ :config
+ (setq projectile-project-search-path '("~/devel/personal/" "~/devel/andthensome/" "~/Documents/" "~/dotfiles" "~/private-dotfiles", "~/devel/slip-box/", "~/devel/andthensome/clients/"))) ; Default paths
+
+(use-package! circe
+ :defer t
+ :config
+ (setq circe-network-options
+ `(
+ ("znc-freenode"
+ :host "irc.higherlearning.eu"
+ :port "5000"
+ :tls t ;; Enable tls
+ :user "l0rd/freenode"
+ :server-buffer-name "⇄ Freenode (ZNC)"
+ :pass (lambda (&rest _) (+pass-get-secret "controlpanel/irc.higherlearning.eu")) ;; Get password from pass
+ :channels ("#emacs"))
+ ("znc-snoonet"
+ :host "irc.higherlearning.eu"
+ :port "5000"
+ :tls t
+ :user "l0rd/snoonet"
+ :server-buffer-name "⇄ Snoonet (ZNC)"
+ :pass (lambda (&rest _) (+pass-get-secret "controlpanel/irc.higherlearning.eu"))
+ :channels ("#islam"))
+ ))
+ )
+(add-hook 'circe-channel-mode-hook 'enable-lui-autopaste)
+
+(setq deft-directory "~/Documents/slip-box")
+
+(after! org
+ (map! :map org-mode-map
+ :n "M-j" #'org-metadown
+ :n "M-k" #'org-metaup)
+ )
+
+(add-hook 'auto-save-hook 'org-save-all-org-buffers)
+
+(setq org-directory "~/Documents/org"
+ org-agenda-files (directory-files-recursively "~/Documents/org/" "\.org$")
+ org-log-done 'note
+ org-default-notes-file (expand-file-name "inbox.org" org-directory)
+ org-startup-with-inline-images t)
+
+(use-package! org-protocol-capture-html :defer t)
+
+(after! org
+ (add-to-list 'org-capture-templates '("w" "Web site" entry
+ (file+olp "~/Documents/org/web.org" "Web")
+ "* %c\n%U %?%:initial"))
+ )
+
+(setq org-roam-directory "~/Documents/slip-box")
+
+(setq org-roam-graph-viewer "~/.local/bin/viewDotfile")
+
+(setq org-journal-dir "~/Documents/slip-box")
+(setq org-journal-date-prefix "#+title: ")
+(setq org-journal-file-format "%Y-%m-%d.org")
+(setq org-journal-date-format "%A, %d %B %Y")
+
+(setq org-publish-project-alist
+ '(("wiki"
+ :base-directory "~/Documents/slip-box/"
+ :publishing-directory "~/devel/personal/Ryankes.eu/wiki/content/"
+ :publishing-function org-pandoc-export-to-markdown_mmd
+ :select-tags ("export-blog")
+ )))
+
+(use-package! mu4e
+ :defer t
+ :config
+ (setq sendmail-program "/usr/bin/msmtp"
+ send-mail-function
+ 'smtpmail-send-it
+ message-sendmail-f-is-evil
+ t
+ message-sendmail-extra-arguments
+ '("--read-envelope-from")
+ message-send-mail-function
+ 'message-send-mail-with-sendmail)
+ (setq mu4e-maildirs-extension-custom-list '("/ryankes/INBOX" "/ryankes/Sent" "/ryankes/Drafts"
+ "/ryankes/Archive" "/ryankes/Archive.quicknet"
+ "/gmail/INBOX" "/gmail/Sent" "/gmail/Drafts"
+ "/gmail/Archive" "/andthensome/INBOX" "/andthensome/Sent"
+ "/andthensome/Drafts" "/andthensome/Archive")))
+(setq mu4e-maildir "~/.local/share/mail"
+ mu4e-maildir-shortcuts
+ '(("/ryankes/INBOX" . ?r)
+ ("/gmail/INBOX" . ?g)
+ ("/andthensome/INBOX" . ?a))
+ mu4e-mu-home
+ "~/.cache/mu"
+ mu4e-update-interval
+ 300
+ mu4e-get-mail-command
+ "mailsync"
+ mu4e-enable-mode-line
+ t
+ mu4e-use-fancy-chars
+ t
+ mu4e-context-policy
+ 'pick-first
+ mu4e-attachment-dir
+ "~/Downloads/")
+(after! mu4e
+ ;; load package to be able to capture emails for GTD
+ (require 'org-mu4e)
+
+ (setq mu4e-contexts
+ `(,(make-mu4e-context :name "Ryankes"
+ :match-func (lambda (msg)
+ (when msg
+ (string-match-p "^/ryankes"
+ (mu4e-message-field msg :maildir)))):vars'((user-mail-address . "ryan@ryankes.eu")
+ (user-full-name . "Ryan")
+ (mu4e-sent-folder . "/ryankes/Sent")
+ (mu4e-drafts-folder . "/ryankes/Drafts")
+ (mu4e-trash-folder . "/ryankes/Trash")
+ (mu4e-refile-folder . "/ryankes/Archive")))
+ ,(make-mu4e-context :name "Gmail"
+ :match-func (lambda (msg)
+ (when msg
+ (string-match-p "^/gmail"
+ (mu4e-message-field msg :maildir)))):vars'((user-mail-address . "alrayyes@gmail.com")
+ (user-full-name . "Ryan")
+ (mu4e-sent-folder . "/gmail/Sent")
+ (mu4e-drafts-folder . "/gmail/Drafts")
+ (mu4e-trash-folder . "/gmail/Trash")
+ (mu4e-refile-folder . "/gmail/Archive")))
+ ,(make-mu4e-context :name "Andthensome"
+ :match-func (lambda (msg)
+ (when msg
+ (string-match-p "^/andthensome"
+ (mu4e-message-field msg :maildir)))):vars'((user-mail-address . "ryan@andthensome.nl")
+ (user-full-name . "Ryan Kes")
+ (mu4e-sent-folder . "/andthensome/Sent")
+ (mu4e-drafts-folder . "/andthensome/Drafts")
+ (mu4e-trash-folder . "/andthensome/Trash")
+ (mu4e-refile-folder . "/andthensome/Archive"))))))
+(add-hook 'mu4e-view-mode-hook 'visual-line-mode)
+
+(use-package! elfeed
+ :defer t
+ :config
+ (setq elfeed-use-curl t)
+ (elfeed-set-timeout 36000)
+ (setq elfeed-protocol-ttrss-maxsize 200) ; bigger than 200 is invalid
+ (elfeed-protocol-enable)
+ (defadvice elfeed (after configure-elfeed-feeds activate)
+ "Make elfeed-org autotags rules works with elfeed-protocol."
+ (defvar elfeed-protocol-tags)
+ (setq elfeed-protocol-tags elfeed-feeds)
+ (setq elfeed-feeds (list
+ (list "ttrss+https://alrayyes@rss.higherlearning.eu"
+ :password (password-store-get "emacs/rss")
+ :autotags elfeed-protocol-tags)))))
+
+(use-package! elfeed-org
+ :defer t
+ :config
+ (setq rmh-elfeed-org-files '("~/Documents/org/elfeed.org"))
+ )
+
+(use-package! elfeed-goodies
+ :defer t
+ :config
+ (elfeed-goodies/setup))
+
+(with-eval-after-load "ispell"
+ (setq ispell-program-name "hunspell")
+ ;; ispell-set-spellchecker-params has to be called
+ ;; before ispell-hunspell-add-multi-dic will work
+ (ispell-set-spellchecker-params)
+ (ispell-hunspell-add-multi-dic "en_GB,nl_NL,en_US")
+ (setq ispell-dictionary "en_GB,nl_NL,en_US"))
+
+(add-to-list 'auto-mode-alist '("\\.mdx\\'" . markdown-mode))
diff --git a/emacs/.config/doom/config.org b/private_dot_config/doom/config.org
similarity index 100%
rename from emacs/.config/doom/config.org
rename to private_dot_config/doom/config.org
diff --git a/emacs/.config/doom/init.el b/private_dot_config/doom/init.el
similarity index 98%
rename from emacs/.config/doom/init.el
rename to private_dot_config/doom/init.el
index 5c670ee..6861108 100644
--- a/emacs/.config/doom/init.el
+++ b/private_dot_config/doom/init.el
@@ -77,13 +77,13 @@
data
emacs-lisp
(go +lsp)
- (hugo +ox-hugo)
+ ; (hugo +ox-hugo)
(javascript +lsp)
ledger
(markdown +grip)
(org
+dragndrop
- +hugo
+ ; +hugo
+journal
+noter
+pandoc
diff --git a/emacs/.config/doom/packages.el b/private_dot_config/doom/packages.el
similarity index 100%
rename from emacs/.config/doom/packages.el
rename to private_dot_config/doom/packages.el
diff --git a/dunst/.config/dunst/dunstrc.desktop b/private_dot_config/dunst/dunstrc.tmpl
similarity index 97%
rename from dunst/.config/dunst/dunstrc.desktop
rename to private_dot_config/dunst/dunstrc.tmpl
index 4cd626e..649113c 100644
--- a/dunst/.config/dunst/dunstrc.desktop
+++ b/private_dot_config/dunst/dunstrc.tmpl
@@ -24,7 +24,12 @@
sort = yes
idle_threshold = 120
+
+ {{ if eq .type "desktop" }}
font = JoyPixels 10, Hack Nerd Font Mono 10
+ {{ else }}
+ font = JoyPixels 12, Hack Nerd Font Mono 12
+ {{ end }}
line_height = 0
markup = full
diff --git a/private_dot_config/emacs/config.el b/private_dot_config/emacs/config.el
new file mode 100644
index 0000000..0e1bfe4
--- /dev/null
+++ b/private_dot_config/emacs/config.el
@@ -0,0 +1,208 @@
+(setq package-archives '(("melpa" . "https://melpa.org/packages/")
+ ("org" . "https://orgmode.org/elpa/")
+ ("elpa" . "https://elpa.gnu.org/packages/")))
+
+(package-initialize)
+(unless package-archive-contents
+(package-refresh-contents))
+
+(unless (package-installed-p 'use-package)
+ (package-install 'use-package))
+
+(require 'use-package)
+ ;; "ensure" packages by default
+ (setq use-package-always-ensure t)
+
+(require 'use-package-ensure)
+(setq use-package-always-ensure t)
+
+(setq inhibit-startup-message t) ;; Disable startup message
+
+(scroll-bar-mode -1) ; Disable visible scrollbar
+(tool-bar-mode -1) ; Disable the toolbar
+(tooltip-mode -1) ; Disable tooltips
+(menu-bar-mode -1) ; Disable the menu bar
+
+;; Set up the visible bell
+(setq visible-bell t)
+
+(column-number-mode)
+(global-display-line-numbers-mode t)
+(setq display-line-numbers-type `relative)
+
+(use-package doom-themes)
+(load-theme 'doom-molokai t)
+
+;; Default pitch face
+(set-face-attribute 'default nil :font "JetBrainsMono Nerd Font")
+
+;; Fixed pitch face
+(set-face-attribute 'fixed-pitch nil :font "JetBrainsMono Nerd Font")
+
+;; Variable pitch face
+(set-face-attribute 'variable-pitch nil :font "Cantarell")
+
+(use-package all-the-icons)
+
+(use-package doom-modeline
+:init (doom-modeline-mode 1)
+:custom (doom-modeline-height 15))
+
+(global-set-key (kbd "") 'keyboard-escape-quit)
+
+(use-package evil
+ :init ;; tweak evil's configuration before loading it
+ (setq evil-want-keybinding nil)
+(setq evil-want-C-u-scroll t)
+ (evil-mode))
+
+(use-package evil-collection
+ :after evil
+ :config
+ (evil-collection-init))
+
+(use-package general
+ :config
+ (general-evil-setup t)
+
+(general-create-definer dw/leader-key-def
+ :keymaps '(normal insert visual emacs)
+ :prefix "SPC"
+ :global-prefix "C-SPC"))
+
+(use-package which-key
+ :init (which-key-mode)
+:config(setq which-key-idle-delay 0.3))
+
+(use-package ivy
+ :diminish
+ :bind (("C-s" . swiper)
+ :map ivy-minibuffer-map
+ ("TAB" . ivy-alt-done)
+ ("C-l" . ivy-alt-done)
+ ("C-j" . ivy-next-line)
+ ("C-k" . ivy-previous-line)
+ :map ivy-switch-buffer-map
+ ("C-k" . ivy-previous-line)
+ ("C-l" . ivy-done)
+ ("C-d" . ivy-switch-buffer-kill)
+ :map ivy-reverse-i-search-map
+ ("C-k" . ivy-previous-line)
+ ("C-d" . ivy-reverse-i-search-kill))
+ :init
+ (ivy-mode 1)) ;; Load keybindings
+
+(use-package ivy-rich
+:after counsel
+ :init
+ (ivy-rich-mode 1))
+
+(use-package counsel
+ :demand t
+ :bind (("M-x" . counsel-M-x)
+ ("C-x b" . counsel-ibuffer)
+ ("C-x C-f" . counsel-find-file)
+ ;; ("C-M-j" . counsel-switch-buffer)
+ ("C-M-l" . counsel-imenu)
+ :map minibuffer-local-map
+ ("C-r" . 'counsel-minibuffer-history))
+ :custom
+ (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
+ :config
+ (setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^
+
+(use-package helpful
+ :custom
+ (counsel-describe-function-function #'helpful-callable)
+ (counsel-describe-variable-function #'helpful-variable)
+ :bind
+ ([remap describe-function] . helpful-function)
+ ([remap describe-symbol] . helpful-symbol)
+ ([remap describe-variable] . helpful-variable)
+ ([remap describe-command] . helpful-command)
+ ([remap describe-key] . helpful-key))
+
+(use-package rainbow-delimiters
+ :hook (prog-mode . rainbow-delimiters-mode))
+
+(use-package projectile
+ :ensure t
+ :init
+ (projectile-mode +1)
+ (setq projectile-project-search-path '("~/devel/" "~/dotfiles/" "~/Documents/"))
+ :bind (:map projectile-mode-map
+ ("s-p" . projectile-command-map)
+ ("C-c p" . projectile-command-map)))
+
+(use-package counsel-projectile
+:after projectile
+:config
+(counsel-projectile-mode))
+
+(use-package magit)
+
+(defun efs/org-mode-setup ()
+ (org-indent-mode)
+ (variable-pitch-mode 1)
+ (visual-line-mode 1))
+
+ (use-package org
+ :hook
+(org-mode . efs/org-mode-setup)
+:config
+ (setq org-ellipsis " ▾"))
+
+(use-package org-bullets
+ :hook
+(org-bullets-mode t))
+
+(dolist (face '((org-level-1 . 1.2)
+ (org-level-2 . 1.1)
+ (org-level-3 . 1.05)
+ (org-level-4 . 1.0)
+ (org-level-5 . 1.1)
+ (org-level-6 . 1.1)
+ (org-level-7 . 1.1)
+ (org-level-8 . 1.1)))
+ (set-face-attribute (car face) nil :font "Cantarell" :weight 'regular :height (cdr face)))
+
+;; Ensure that anything that should be fixed-pitch in Org files appears that way
+(set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch)
+(set-face-attribute 'org-table nil :inherit 'fixed-pitch)
+(set-face-attribute 'org-formula nil :inherit 'fixed-pitch)
+(set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch))
+(set-face-attribute 'org-table nil :inherit '(shadow fixed-pitch))
+(set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
+(set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch))
+(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
+(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
+(set-face-attribute 'line-number nil :inherit 'fixed-pitch)
+(set-face-attribute 'line-number-current-line nil :inherit 'fixed-pitch)
+
+(defun efs/org-mode-visual-fill ()
+ (setq visual-fill-column-width 120
+ visual-fill-column-center-text t)
+ (visual-fill-column-mode 1))
+
+(use-package visual-fill-column
+ :hook (org-mode . efs/org-mode-visual-fill))
+
+(setq
+org-agenda-files (directory-files-recursively "~/Documents/org/" "\.org$"))
+
+(with-eval-after-load 'org
+ (org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((emacs-lisp . t)
+ (python . t)))
+
+ (push '("conf-unix" . conf-unix) org-src-lang-modes))
+
+(with-eval-after-load 'org
+ ;; This is needed as of Org 9.2
+ (require 'org-tempo)
+
+ (add-to-list 'org-structure-template-alist '("sh" . "src shell"))
+ (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
+ (add-to-list 'org-structure-template-alist '("py" . "src python"))
+ (add-to-list 'org-structure-template-alist '("ph" . "src php")))
diff --git a/emacs/.config/emacs/config.org b/private_dot_config/emacs/config.org
similarity index 100%
rename from emacs/.config/emacs/config.org
rename to private_dot_config/emacs/config.org
diff --git a/firefox/.config/firejail/firejail.local b/private_dot_config/firejail/firefox.local
similarity index 100%
rename from firefox/.config/firejail/firejail.local
rename to private_dot_config/firejail/firefox.local
diff --git a/mpv/.config/firejail/mpv.local b/private_dot_config/firejail/mpv.local
similarity index 100%
rename from mpv/.config/firejail/mpv.local
rename to private_dot_config/firejail/mpv.local
diff --git a/newsboat/.config/firejail/newsboat.profile b/private_dot_config/firejail/newsboat.profile
similarity index 100%
rename from newsboat/.config/firejail/newsboat.profile
rename to private_dot_config/firejail/newsboat.profile
diff --git a/weechat/.config/firejail/weechat.local b/private_dot_config/firejail/weechat.local
similarity index 100%
rename from weechat/.config/firejail/weechat.local
rename to private_dot_config/firejail/weechat.local
diff --git a/fonts/.config/fontconfig/fonts.conf b/private_dot_config/fontconfig/fonts.conf
similarity index 100%
rename from fonts/.config/fontconfig/fonts.conf
rename to private_dot_config/fontconfig/fonts.conf
diff --git a/git/.config/git/gitignore_global b/private_dot_config/git/gitignore_global
similarity index 100%
rename from git/.config/git/gitignore_global
rename to private_dot_config/git/gitignore_global
diff --git a/ideavim/.config/ideavim/ideavimrc b/private_dot_config/ideavim/ideavimrc
similarity index 100%
rename from ideavim/.config/ideavim/ideavimrc
rename to private_dot_config/ideavim/ideavimrc
diff --git a/lfcd/.config/lf/lfrc b/private_dot_config/lf/lfrc
similarity index 100%
rename from lfcd/.config/lf/lfrc
rename to private_dot_config/lf/lfrc
diff --git a/mpd/.config/mpd/mpd.conf b/private_dot_config/mpd/mpd.conf
similarity index 100%
rename from mpd/.config/mpd/mpd.conf
rename to private_dot_config/mpd/mpd.conf
diff --git a/neomutt/.config/mutt/accounts/1-ryankes.muttrc b/private_dot_config/mutt/accounts/1-ryankes.muttrc
similarity index 100%
rename from neomutt/.config/mutt/accounts/1-ryankes.muttrc
rename to private_dot_config/mutt/accounts/1-ryankes.muttrc
diff --git a/neomutt/.config/mutt/accounts/2-gmail.muttrc b/private_dot_config/mutt/accounts/2-gmail.muttrc
similarity index 100%
rename from neomutt/.config/mutt/accounts/2-gmail.muttrc
rename to private_dot_config/mutt/accounts/2-gmail.muttrc
diff --git a/neomutt/.config/mutt/accounts/3-andthensome.muttrc b/private_dot_config/mutt/accounts/3-andthensome.muttrc
similarity index 100%
rename from neomutt/.config/mutt/accounts/3-andthensome.muttrc
rename to private_dot_config/mutt/accounts/3-andthensome.muttrc
diff --git a/neomutt/.config/mutt/gpg.rc b/private_dot_config/mutt/gpg.rc
similarity index 100%
rename from neomutt/.config/mutt/gpg.rc
rename to private_dot_config/mutt/gpg.rc
diff --git a/neomutt/.config/mutt/mailcap b/private_dot_config/mutt/mailcap
similarity index 100%
rename from neomutt/.config/mutt/mailcap
rename to private_dot_config/mutt/mailcap
diff --git a/neomutt/.config/mutt/muttcol b/private_dot_config/mutt/muttcol
similarity index 100%
rename from neomutt/.config/mutt/muttcol
rename to private_dot_config/mutt/muttcol
diff --git a/neomutt/.config/mutt/muttrc b/private_dot_config/mutt/muttrc
similarity index 100%
rename from neomutt/.config/mutt/muttrc
rename to private_dot_config/mutt/muttrc
diff --git a/private_dot_config/mutt/private_temp/.keep b/private_dot_config/mutt/private_temp/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/ncmpcpp/.config/ncmpcpp/config b/private_dot_config/ncmpcpp/config
similarity index 100%
rename from ncmpcpp/.config/ncmpcpp/config
rename to private_dot_config/ncmpcpp/config
diff --git a/newsboat/.config/newsboat/config b/private_dot_config/newsboat/config
similarity index 100%
rename from newsboat/.config/newsboat/config
rename to private_dot_config/newsboat/config
diff --git a/npm/.config/npm/npmrc b/private_dot_config/npm/npmrc
similarity index 100%
rename from npm/.config/npm/npmrc
rename to private_dot_config/npm/npmrc
diff --git a/neovim/.config/nvim/coc-settings.json b/private_dot_config/nvim/coc-settings.json
similarity index 100%
rename from neovim/.config/nvim/coc-settings.json
rename to private_dot_config/nvim/coc-settings.json
diff --git a/neovim/.config/nvim/init.vim b/private_dot_config/nvim/init.vim
similarity index 100%
rename from neovim/.config/nvim/init.vim
rename to private_dot_config/nvim/init.vim
diff --git a/fish/.config/omf/init.fish b/private_dot_config/omf/init.fish
similarity index 98%
rename from fish/.config/omf/init.fish
rename to private_dot_config/omf/init.fish
index 991a58d..dad6c75 100644
--- a/fish/.config/omf/init.fish
+++ b/private_dot_config/omf/init.fish
@@ -14,7 +14,7 @@ function fish_greeting
end
setxkbmap -option caps:escape
- cat ~/.cache/wal/sequences &
+ #cat ~/.cache/wal/sequences &
neofetch
end
@@ -42,7 +42,7 @@ else if [ -e "/sbin/firefox" ]
end
# Set default terminal
-set -xg TERMINAL "st"
+set -xg TERMINAL "alacritty"
# pkg editor
set -xg VISUAL "nvim"
diff --git a/picom/.config/picom/picom.conf b/private_dot_config/picom/picom.conf
similarity index 100%
rename from picom/.config/picom/picom.conf
rename to private_dot_config/picom/picom.conf
diff --git a/polybar/.config/polybar/bin/corona b/private_dot_config/polybar/bin/executable_corona
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/corona
rename to private_dot_config/polybar/bin/executable_corona
diff --git a/polybar/.config/polybar/bin/dockerstatus b/private_dot_config/polybar/bin/executable_dockerstatus
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/dockerstatus
rename to private_dot_config/polybar/bin/executable_dockerstatus
diff --git a/polybar/.config/polybar/bin/isactive-bluetooth b/private_dot_config/polybar/bin/executable_isactive-bluetooth
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/isactive-bluetooth
rename to private_dot_config/polybar/bin/executable_isactive-bluetooth
diff --git a/polybar/.config/polybar/bin/mailcount b/private_dot_config/polybar/bin/executable_mailcount
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/mailcount
rename to private_dot_config/polybar/bin/executable_mailcount
diff --git a/polybar/.config/polybar/bin/services b/private_dot_config/polybar/bin/executable_services
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/services
rename to private_dot_config/polybar/bin/executable_services
diff --git a/polybar/.config/polybar/bin/switch-bluetooth b/private_dot_config/polybar/bin/executable_switch-bluetooth
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/switch-bluetooth
rename to private_dot_config/polybar/bin/executable_switch-bluetooth
diff --git a/polybar/.config/polybar/bin/system-usb-udev b/private_dot_config/polybar/bin/executable_system-usb-udev
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/system-usb-udev
rename to private_dot_config/polybar/bin/executable_system-usb-udev
diff --git a/polybar/.config/polybar/bin/tldr-and-wait b/private_dot_config/polybar/bin/executable_tldr-and-wait
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/tldr-and-wait
rename to private_dot_config/polybar/bin/executable_tldr-and-wait
diff --git a/polybar/.config/polybar/bin/wireguard-status b/private_dot_config/polybar/bin/executable_wireguard-status
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/wireguard-status
rename to private_dot_config/polybar/bin/executable_wireguard-status
diff --git a/polybar/.config/polybar/bin/wttr b/private_dot_config/polybar/bin/executable_wttr
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.config/polybar/bin/wttr
rename to private_dot_config/polybar/bin/executable_wttr
diff --git a/statusbar/.local/bin/statusbar/reddit b/private_dot_config/polybar/bin/private_executable_notification-reddit.sh
old mode 100755
new mode 100644
similarity index 74%
rename from statusbar/.local/bin/statusbar/reddit
rename to private_dot_config/polybar/bin/private_executable_notification-reddit.sh
index 576e30c..f4b4221
--- a/statusbar/.local/bin/statusbar/reddit
+++ b/private_dot_config/polybar/bin/private_executable_notification-reddit.sh
@@ -1,16 +1,12 @@
#!/bin/sh
-case $BLOCK_BUTTON in
-1) "$BROWSER" --new-tab https://www.reddit.com ;;
-esac
-
URL="https://www.reddit.com/message/unread/.json?feed=bc32fdcb4a67282ee7cac839c0a52083aadc79f0&user=alrayyes"
USERAGENT="polybar-scripts/notification-reddit:v1.0 u/reddituser"
notifications=$(curl -sf --user-agent "$USERAGENT" "$URL" | jq '.["data"]["children"] | length')
if [ -n "$notifications" ] && [ "$notifications" -gt 0 ]; then
- echo "👾$notifications"
+ echo "$notifications"
else
- echo ""
+ echo ""
fi
diff --git a/private_dot_config/polybar/bin/private_executable_rsscount b/private_dot_config/polybar/bin/private_executable_rsscount
new file mode 100644
index 0000000..e6746ac
--- /dev/null
+++ b/private_dot_config/polybar/bin/private_executable_rsscount
@@ -0,0 +1,26 @@
+#!/usr/bin/env sh
+
+password=$(getpassword rss)
+session_id=$(curl -s -d '{"op":"login","user":"alrayyes","password":"'"$password"'"}' "https://rss.higherlearning.eu/api/" | jq -r ".content.session_id")
+count=$(curl -s -d '{"sid":"'$session_id'","op":"getUnread","feed_id":"0","is_cat":"1"}' "https://rss.higherlearning.eu/api/" | jq -r ".content.unread")
+#newsboat_count=$(/usr/bin/newsboat -x print-unread | awk '{print $1}')
+
+#if [ "$count" != "$newsboat_count" ]; then
+# ~/.local/bin/newsup
+#fi
+
+if [ ! "$(pgrep -f 'newsboat')" ]; then
+ icon="📰"
+else
+ icon="🔃"
+fi
+
+if [ ! "$count" ]; then
+ echo "%{F#666}轢 n/a%{F-}"
+else
+ if [ ! "$count" -eq 0 ]; then
+ echo "$icon $count"
+ else
+ echo "%{F#666}%{F-}"
+ fi
+fi
diff --git a/polybar/.config/polybar/config b/private_dot_config/polybar/config
similarity index 85%
rename from polybar/.config/polybar/config
rename to private_dot_config/polybar/config
index a2b4585..3e2f58d 100644
--- a/polybar/.config/polybar/config
+++ b/private_dot_config/polybar/config
@@ -15,8 +15,10 @@
[colors]
background = ${xrdb:color0:#222}
-foreground = ${xrdb:color7:#222}
-foreground-alt = ${xrdb:color7:#222}
+#foreground = ${xrdb:color7:#222}
+foreground = #C5C8C6
+#foreground-alt = ${xrdb:color7:#222}
+foreground-alt = #C5C8C6
primary = ${xrdb:color1:#222}
secondary = ${xrdb:color2:#222}
alert = ${xrdb:color3:#222}
@@ -86,6 +88,24 @@ inherit = bar/base-desktop
monitor = ${env:MONITOR:DP-2}
modules-left = bspwm
+[bar/framework-bottom]
+inherit = bar/base-laptop
+bottom = true
+monitor = ${env:MONITOR:eDP-1}
+
+#modules-right = system-usb-udev corona
+modules-left = mpd player-mpris-tail
+
+[bar/framework-top]
+inherit = bar/base-laptop
+monitor = ${env:MONITOR:eDP-1}
+
+modules-left = bspwm
+modules-center = frameworkbattery seperator wg0 wg1
+modules-right = docker memory cpu-laptop temperature seperator filesystem-root seperator updates-arch-combined mail reddit github rss seperator weather seperator date seperator
+
+tray-position = right
+
;== Modules ========================================================
[module/filesystem-home]
@@ -215,6 +235,35 @@ ramp-used-5 = ▆
ramp-used-6 = ▇
ramp-used-7 = █
+[module/frameworkwlan]
+type = internal/network
+interface = wlp166s0
+interval = 3.0
+
+format-connected =
+format-packetloss =
+format-disconnected =
+format-connected-prefix = "📶 "
+format-disconnected-prefix = "睊"
+
+label-connected = " %downspeed% %upspeed%"
+label-disconnected =
+
+ramp-signal-0 = ▁
+ramp-signal-1 = ▂
+ramp-signal-2 = ▃
+ramp-signal-3 = ▄
+ramp-signal-4 = ▅
+ramp-signal-5 = ▆
+ramp-signal-6 = ▇
+ramp-signal-7 = █
+
+animation-packetloss-0 = ⚠
+animation-packetloss-0-foreground = #ffa64c
+animation-packetloss-1 = 📶
+animation-packetloss-1-foreground = #000000
+animation-packetloss-framerate = 500
+
[module/wlan]
type = internal/network
interface = wlp4s0
@@ -295,6 +344,31 @@ ramp-volume-0 = 🔈
ramp-volume-1 = 🔉
ramp-volume-2 = 🔊
+[module/frameworkbattery]
+type = internal/battery
+battery = BAT1
+adapter = ACAD
+full-at = 70
+
+format-charging =
+format-discharging =
+format-full-prefix = " "
+format-full-prefix-foreground = ${colors.foreground-alt}
+
+animation-charging-0 =
+animation-charging-1 =
+animation-charging-2 =
+animation-charging-3 =
+animation-charging-4 =
+animation-charging-framerate = 750
+
+animation-discharging-0 =
+animation-discharging-1 =
+animation-discharging-2 =
+animation-discharging-3 =
+animation-discharging-4 =
+animation-discharging-framerate = 5000
+
[module/battery0]
type = internal/battery
battery = BAT0
@@ -444,7 +518,7 @@ type = custom/script
exec = ~/.config/polybar/bin/wttr
interval = 900
-click-left = setsid alacritty --class float,float -e ~/.config/polybar/bin/wttr-and-wait
+click-left = setsid alacritty --class fullscreen,fullscreen -e ~/.local/bin/wttr-and-wait
[module/seperator]
type = custom/text
diff --git a/redshift/.config/redshift.conf b/private_dot_config/redshift.conf
similarity index 100%
rename from redshift/.config/redshift.conf
rename to private_dot_config/redshift.conf
diff --git a/sxhkd/.config/sxhkd/sxhkdrc.desktop b/private_dot_config/sxhkd/sxhkdrc.tmpl
similarity index 85%
rename from sxhkd/.config/sxhkd/sxhkdrc.desktop
rename to private_dot_config/sxhkd/sxhkdrc.tmpl
index dee4aa2..4e53036 100644
--- a/sxhkd/.config/sxhkd/sxhkdrc.desktop
+++ b/private_dot_config/sxhkd/sxhkdrc.tmpl
@@ -36,17 +36,34 @@ super + F12
#-----------------------------------------------------------Audio & screen brightness & shutdown--------------------------------------------------------------
# Audio controls
XF86AudioRaiseVolume
- ~/.local/bin/volume inc
+ pamixer --allow-boost -i 3
XF86AudioLowerVolume
- ~/.local/bin/volume dec
+ pamixer --allow-boost -d 3
XF86AudioMute
- ~/.local/bin/volume mute
+ pamixer -t
+XF86AudioPrev
+ playerctl previous
+XF86AudioPlay
+ playerctl play-pause
+XF86AudioNext
+ playerctl next
# Screen brightness controls
XF86MonBrightnessUp
- ~/.local/bin/brightness inc
+ brightnessctl set +10%
XF86MonBrightnessDown
- ~/.local/bin/brightness dec
+ brightnessctl set 10%-
+
+# Kill wlan & bluetooth
+XF86RFKill
+ rfkill toggle all
+
+Print
+ maimpick
+
+XF86AudioMedia
+ firefox https://community.frame.work/
+
# Shutdown / reboot
XF86Eject
prompt "Shutdown computer?" "sudo -A shutdown -h now"
@@ -61,14 +78,13 @@ shift + Print
Print
TIMESTAMP=$(date '+%Y-%m-%d-%H%M%S'); maim ~/Pictures/Screenshots/pic-full-$TIMESTAMP.png && notify-send -i ~/Pictures/Screenshots/pic-full-$TIMESTAMP.png "Desktop Screenshot pic-full-$TIMESTAMP.png"
-
#-----------------------------------------------------------App shortcuts--------------------------------------------------------------
# terminal emulator
-super + BackSpace
- alacritty
+super + {{ if eq .type "desktop" }}Backspace{{ else }}Return{{ end }}
+ $TERMINAL
# program launcher
-super + Delete
+super + {{ if eq .type "desktop" }}Delete{{ else }}@space{{ end }}
dmenu-frecency
# make sxhkd reload its configuration files:
@@ -76,8 +92,8 @@ super + Escape
pkill -USR1 -x sxhkd
# Misc apps
-super + ctrl + alt + {l, n, r, s, c, v, k, a, u, e}
- $TERMINAL -e {lf, neomutt, /usr/bin/newsboat, spt, castero, nvim, ~/.local/bin/calendar-and-wait, ~/.local/bin/audit, ~/.local/bin/update-arch}
+super + ctrl + alt + {l, n, r, s, v, a, u}
+ $TERMINAL --class float,float -e {lf, neomutt, /usr/bin/newsboat, spt, nvim, ~/.local/bin/audit, ~/.local/bin/update-{{ .chezmoi.osRelease.id }}}
super + ctrl + alt + {b, e, S}
{brave, emacs, spotify}
super + ctrl + alt + {t}
@@ -85,7 +101,7 @@ super + ctrl + alt + {t}
super + ctrl + alt + {m}
~/.local/bin/dmenuunicode
super + ctrl + alt + {w}
- alacritty --class fullscreen,fullscreen -e ~/.config/polybar/bin/wttr-and-wait
+ alacritty --class fullscreen,fullscreen -e ~/.local/bin/wttr-and-wait
# clipboard manager
super + ctrl + {c}
diff --git a/sxiv/.config/sxiv/exec/image-info b/private_dot_config/sxiv/exec/executable_image-info
old mode 100755
new mode 100644
similarity index 100%
rename from sxiv/.config/sxiv/exec/image-info
rename to private_dot_config/sxiv/exec/executable_image-info
diff --git a/sxiv/.config/sxiv/exec/key-handler b/private_dot_config/sxiv/exec/executable_key-handler
old mode 100755
new mode 100644
similarity index 100%
rename from sxiv/.config/sxiv/exec/key-handler
rename to private_dot_config/sxiv/exec/executable_key-handler
diff --git a/neomutt/.config/systemd/user/mailsync.service b/private_dot_config/systemd/user/mailsync.service
similarity index 100%
rename from neomutt/.config/systemd/user/mailsync.service
rename to private_dot_config/systemd/user/mailsync.service
diff --git a/neomutt/.config/systemd/user/mailsync.timer b/private_dot_config/systemd/user/mailsync.timer
similarity index 100%
rename from neomutt/.config/systemd/user/mailsync.timer
rename to private_dot_config/systemd/user/mailsync.timer
diff --git a/tmux/.config/tmux/tmux.conf b/private_dot_config/tmux/tmux.conf
similarity index 100%
rename from tmux/.config/tmux/tmux.conf
rename to private_dot_config/tmux/tmux.conf
diff --git a/wal/.config/wal/templates/colors.dwm b/private_dot_config/wal/templates/colors.dwm
similarity index 100%
rename from wal/.config/wal/templates/colors.dwm
rename to private_dot_config/wal/templates/colors.dwm
diff --git a/wal/.config/wal/templates/colors.fish b/private_dot_config/wal/templates/colors.fish
similarity index 100%
rename from wal/.config/wal/templates/colors.fish
rename to private_dot_config/wal/templates/colors.fish
diff --git a/zsh/.config/zsh/.zshenv b/private_dot_config/zsh/dot_zshenv
similarity index 100%
rename from zsh/.config/zsh/.zshenv
rename to private_dot_config/zsh/dot_zshenv
diff --git a/zsh/.config/zsh/.zshrc b/private_dot_config/zsh/dot_zshrc
similarity index 100%
rename from zsh/.config/zsh/.zshrc
rename to private_dot_config/zsh/dot_zshrc
diff --git a/lighthouse/.local/bin/audit b/private_dot_local/bin/executable_audit
old mode 100755
new mode 100644
similarity index 84%
rename from lighthouse/.local/bin/audit
rename to private_dot_local/bin/executable_audit
index b9b2bce..420b926
--- a/lighthouse/.local/bin/audit
+++ b/private_dot_local/bin/executable_audit
@@ -1,14 +1,12 @@
#!/usr/bin/env bash
-. $HOME/.cache/wal/colors.sh
-
cachedUrls=$(cat ~/.cache/audit-urls 2>/dev/null)
localServices=$(netstat -ltpn 2>/dev/null | grep "node" | awk '{ print "http://"$4 }')
test -n "$localServices" && dmenUrls+="$localServices"
test -n "$cachedUrls" && dmenuUrls+="$cachedUrls"
-url="$(echo -e "$dmenuUrls" | uniq | sort | dmenu -i -nb "$color0" -nf "$color15" -sb "$color1" -sf "$color15" "$@")"
+url="$(echo -e "$dmenuUrls" | uniq | sort | dmenu -i "$@")"
if [[ -n "$url" && "$url" != "http://" && "$url" != "https://" ]]; then
rm -f "$HOME"/Downloads/lighthouse.html
diff --git a/bspwm/.local/bin/bspswallow b/private_dot_local/bin/executable_bspswallow
old mode 100755
new mode 100644
similarity index 100%
rename from bspwm/.local/bin/bspswallow
rename to private_dot_local/bin/executable_bspswallow
diff --git a/bin/.local/bin/build-suckless-desktop b/private_dot_local/bin/executable_build-suckless-desktop
old mode 100755
new mode 100644
similarity index 100%
rename from bin/.local/bin/build-suckless-desktop
rename to private_dot_local/bin/executable_build-suckless-desktop
diff --git a/bin/.local/bin/build-suckless-thinkpad b/private_dot_local/bin/executable_build-suckless-thinkpad
old mode 100755
new mode 100644
similarity index 100%
rename from bin/.local/bin/build-suckless-thinkpad
rename to private_dot_local/bin/executable_build-suckless-thinkpad
diff --git a/bspwm/.local/bin/cleanfullscreen b/private_dot_local/bin/executable_cleanfullscreen
old mode 100755
new mode 100644
similarity index 100%
rename from bspwm/.local/bin/cleanfullscreen
rename to private_dot_local/bin/executable_cleanfullscreen
diff --git a/dmenu/.local/bin/dmenuunicode b/private_dot_local/bin/executable_dmenuunicode
old mode 100755
new mode 100644
similarity index 100%
rename from dmenu/.local/bin/dmenuunicode
rename to private_dot_local/bin/executable_dmenuunicode
diff --git a/blog/.local/bin/exportWiki b/private_dot_local/bin/executable_exportWiki
old mode 100755
new mode 100644
similarity index 100%
rename from blog/.local/bin/exportWiki
rename to private_dot_local/bin/executable_exportWiki
diff --git a/wal/.local/bin/generatewal b/private_dot_local/bin/executable_generatewal
old mode 100755
new mode 100644
similarity index 100%
rename from wal/.local/bin/generatewal
rename to private_dot_local/bin/executable_generatewal
diff --git a/newsboat/.local/bin/linkhandler b/private_dot_local/bin/executable_linkhandler
old mode 100755
new mode 100644
similarity index 100%
rename from newsboat/.local/bin/linkhandler
rename to private_dot_local/bin/executable_linkhandler
diff --git a/neomutt/.local/bin/mailsync b/private_dot_local/bin/executable_mailsync
old mode 100755
new mode 100644
similarity index 100%
rename from neomutt/.local/bin/mailsync
rename to private_dot_local/bin/executable_mailsync
diff --git a/bspwm/.local/bin/maimpick b/private_dot_local/bin/executable_maimpick
old mode 100755
new mode 100644
similarity index 100%
rename from bspwm/.local/bin/maimpick
rename to private_dot_local/bin/executable_maimpick
diff --git a/private_dot_local/bin/executable_oath-dmenu b/private_dot_local/bin/executable_oath-dmenu
new file mode 100644
index 0000000..e53de4c
--- /dev/null
+++ b/private_dot_local/bin/executable_oath-dmenu
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+yubikey-oath-dmenu --clipboard --clipboard-cmd 'xclip -selection clipboard' --notify --menu-cmd "dmenu -fn \"FuraCode Nerd Font\""
diff --git a/neomutt/.local/bin/openfile b/private_dot_local/bin/executable_openfile
old mode 100755
new mode 100644
similarity index 100%
rename from neomutt/.local/bin/openfile
rename to private_dot_local/bin/executable_openfile
diff --git a/private_dot_local/bin/executable_pass-dmenu b/private_dot_local/bin/executable_pass-dmenu
new file mode 100644
index 0000000..e0bb1ab
--- /dev/null
+++ b/private_dot_local/bin/executable_pass-dmenu
@@ -0,0 +1,3 @@
+#!/usr/bin/env fish
+
+PASSWORD_STORE_DIR=$PASSWORD_STORE_DIR passmenu -p Password: -fn "FuraCode Nerd Font"
diff --git a/bin/.local/bin/prompt b/private_dot_local/bin/executable_prompt
old mode 100755
new mode 100644
similarity index 91%
rename from bin/.local/bin/prompt
rename to private_dot_local/bin/executable_prompt
index e2e55d9..b70c99e
--- a/bin/.local/bin/prompt
+++ b/private_dot_local/bin/executable_prompt
@@ -1,7 +1,5 @@
#!/usr/bin/env sh
-. ~/.cache/wal/colors.sh
-
# A dmenu binary prompt script.
# Gives a dmenu prompt labeled with $1 to perform command $2.
# For example:
diff --git a/dmenu/.local/bin/ssh-dmenu b/private_dot_local/bin/executable_ssh-dmenu
old mode 100755
new mode 100644
similarity index 75%
rename from dmenu/.local/bin/ssh-dmenu
rename to private_dot_local/bin/executable_ssh-dmenu
index 209b484..239b247
--- a/dmenu/.local/bin/ssh-dmenu
+++ b/private_dot_local/bin/executable_ssh-dmenu
@@ -1,10 +1,7 @@
#!/usr/bin/env bash
-# Load wal colours
-. ~/.cache/wal/colors.sh
-
# get hostnames from ~/.ssh/known_hosts
-ssh_host="$(awk -F "[ ,]+" '{print $1}' ~/.ssh/known_hosts | tr -d '[]' | uniq | sort -n | dmenu -fn "FuraCode Nerd Font" -nb "$color0" -nf "$color15" -sb "$color1" -sf "$color15" "$@")"
+ssh_host="$(awk -F "[ ,]+" '{print $1}' ~/.ssh/known_hosts | tr -d '[]' | uniq | sort -n | dmenu -fn "FuraCode Nerd Font" "$@")"
# split hostnames into array { hostname, port }
mapfile -t params < <(echo "$ssh_host" | awk -F ":" '{print $1} {if ($2) print $2}')
diff --git a/tuir/.local/bin/sxiveh b/private_dot_local/bin/executable_sxiveh
old mode 100755
new mode 100644
similarity index 100%
rename from tuir/.local/bin/sxiveh
rename to private_dot_local/bin/executable_sxiveh
diff --git a/dmenu/.local/bin/tldr-dmenu b/private_dot_local/bin/executable_tldr-dmenu
old mode 100755
new mode 100644
similarity index 67%
rename from dmenu/.local/bin/tldr-dmenu
rename to private_dot_local/bin/executable_tldr-dmenu
index 9c5d458..2d38642
--- a/dmenu/.local/bin/tldr-dmenu
+++ b/private_dot_local/bin/executable_tldr-dmenu
@@ -1,6 +1,5 @@
#!/usr/bin/env sh
-. ~/.cache/wal/colors.sh
-command=$(curl --silent "https://github.com/tldr-pages/tldr/tree/master/pages/linux" | grep -o "[1-zA-Z0-9\-]*.md" | cut -f 1 -d '.' | uniq | sort | dmenu -p "tldr" -i -nb "$color0" -nf "$color15" -sb "$color1" -sf "$color15")
+command=$(curl --silent "https://github.com/tldr-pages/tldr/tree/master/pages/linux" | grep -o "[1-zA-Z0-9\-]*.md" | cut -f 1 -d '.' | uniq | sort | dmenu -p "tldr" -i)
test ! -z "$command" && alacritty --class float,float -e ~/.config/polybar/bin/tldr-and-wait "$command"
diff --git a/polybar/.local/bin/update-arch b/private_dot_local/bin/executable_update-arch
old mode 100755
new mode 100644
similarity index 100%
rename from polybar/.local/bin/update-arch
rename to private_dot_local/bin/executable_update-arch
diff --git a/emacs/.local/bin/viewDotfile b/private_dot_local/bin/executable_viewDotfile
old mode 100755
new mode 100644
similarity index 100%
rename from emacs/.local/bin/viewDotfile
rename to private_dot_local/bin/executable_viewDotfile
diff --git a/bin/.local/bin/vimdiff b/private_dot_local/bin/executable_vimdiff
old mode 100755
new mode 100644
similarity index 100%
rename from bin/.local/bin/vimdiff
rename to private_dot_local/bin/executable_vimdiff
diff --git a/wireguard/.local/bin/wireguard-switch b/private_dot_local/bin/executable_wireguard-switch
old mode 100755
new mode 100644
similarity index 100%
rename from wireguard/.local/bin/wireguard-switch
rename to private_dot_local/bin/executable_wireguard-switch
diff --git a/emacs/.local/share/applications/demacs.desktop b/private_dot_local/private_share/applications/demacs.desktop
similarity index 89%
rename from emacs/.local/share/applications/demacs.desktop
rename to private_dot_local/private_share/applications/demacs.desktop
index 05501fc..624c81b 100644
--- a/emacs/.local/share/applications/demacs.desktop
+++ b/private_dot_local/private_share/applications/demacs.desktop
@@ -3,7 +3,8 @@ Name=Doom Emacs
GenericName=Doom Emacs
Comment=Chemacs started with Doom Emacs profile
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-Exec=emacs --with-profile doom %F
+#Exec=emacs --with-profile doom %F
+Exec=doom run
Icon=emacs
Type=Application
Terminal=false
diff --git a/dmenu/.local/share/emoji b/private_dot_local/private_share/emoji
similarity index 100%
rename from dmenu/.local/share/emoji
rename to private_dot_local/private_share/emoji
diff --git a/blog/.local/share/pandoc/filters/convertLinks.py b/private_dot_local/private_share/pandoc/filters/executable_convertLinks.py
old mode 100755
new mode 100644
similarity index 100%
rename from blog/.local/share/pandoc/filters/convertLinks.py
rename to private_dot_local/private_share/pandoc/filters/executable_convertLinks.py
diff --git a/run_onchange_install-neovim-packages.sh b/run_onchange_install-neovim-packages.sh
new file mode 100644
index 0000000..6bececa
--- /dev/null
+++ b/run_onchange_install-neovim-packages.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Install vim plugins & requirements
+if test "$(pip list --user | grep -c 'pynvim')" -ne 1; then
+ pip install --user pynvim
+fi
+
+# Install Neovim plugins
+nvim +PlugInstall +qall
+
+# Install Neovim coc extensions
+yarn --cwd ~/.config/coc/extensions install
diff --git a/run_onchange_install-omf-plugins.sh b/run_onchange_install-omf-plugins.sh
new file mode 100644
index 0000000..6a943a9
--- /dev/null
+++ b/run_onchange_install-omf-plugins.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env fish
+
+function install_omf_package_if_not_exist
+ if test (omf list | grep -c "$argv") -eq 0
+ echo "Installing omf package $argv"
+ omf install "$argv"
+ end
+end
+
+# Install oh-my-fish plugins
+install_omf_package_if_not_exist colored-man-pages
+install_omf_package_if_not_exist extract
+install_omf_package_if_not_exist fzf
+install_omf_package_if_not_exist gi
+install_omf_package_if_not_exist git-flow
+install_omf_package_if_not_exist wttr
diff --git a/run_onchange_install-packages.sh b/run_onchange_install-packages.sh
new file mode 100644
index 0000000..94455f8
--- /dev/null
+++ b/run_onchange_install-packages.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# Prerequisite & inistalled apps
+prerequisiteApps=(bat bmon broot caffeine-ng exa fslint fzf graphviz isync imagemagick lightdm-gtk-greeter mailcap neofetch npm pandoc-bin pamixer playerctl pipewire pipewire-pulse pulsemixer python ripgrep stow sxiv tldr trayer udisks2 unclutter xbanish xwallpaper yarn xprop zathura the_silver_searcher fd)
+prerequisiteFonts=(ttf-linux-libertine noto-fonts noto-fonts-emoji ttf-liberation nerd-fonts-hack)
+configuredApps=(alacritty bspwm emacs firejail git gnupg gtk lf dunst mpd mpv mpv-mpris ncmpcpp neomutt neovim picom redshift sxhkd tmux tuir weechat)
+locales=(aspell-en hunspell-en_gb hunspell-en_us hunspell-nl)
+golang=(go golangci-lint-bin)
+shell=(shfmt shellcheck)
+screenlock=(xsecurelock xss-lock)
+dmenu=(clipmenu menu-calc)
+
+install_app_if_not_exist() {
+ apps=("$@")
+ for app in "${apps[@]}"; do
+ if test "$(pacman -Q | grep -c "$app")" -eq 0; then
+ echo "Installing missing package $app"
+ yay -S --noconfirm "$app"
+ fi
+ done
+}
+
+install_app_if_not_exist "${prerequisiteApps[@]}"
+install_app_if_not_exist "${prerequisiteFonts[@]}"
+install_app_if_not_exist "${configuredApps[@]}"
+install_app_if_not_exist "${locales[@]}"
+install_app_if_not_exist "${golang[@]}"
+install_app_if_not_exist "${screenlock[@]}"
+install_app_if_not_exist "${dmenu[@]}"
+install_app_if_not_exist "${shell[@]}"
diff --git a/run_onchange_install-yarn-packages.sh b/run_onchange_install-yarn-packages.sh
new file mode 100644
index 0000000..0802823
--- /dev/null
+++ b/run_onchange_install-yarn-packages.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+install_yarn_package_if_not_exist() {
+ if ! yarn global list | grep -q "$1"; then
+ echo "Installing yarn package $1"
+ yarn global add "$1"
+ fi
+}
+
+# Install yarn packages
+install_yarn_package_if_not_exist lighthouse
diff --git a/run_onchange_org-protocol-setup.sh b/run_onchange_org-protocol-setup.sh
new file mode 100644
index 0000000..62adfb7
--- /dev/null
+++ b/run_onchange_org-protocol-setup.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Refresh xgd
+if test "$(grep -c 'x-scheme-handler/org-protocol=org-protocol.desktop' ~/.config/mimeapps.list)" -eq 0; then
+ echo "Refreshing xgd to handle org-protocol"
+ update-desktop-database ~/.local/share/applications/
+ xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol
+fi
diff --git a/run_onchange_setup-broot.sh b/run_onchange_setup-broot.sh
new file mode 100644
index 0000000..c44f2d4
--- /dev/null
+++ b/run_onchange_setup-broot.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Setup broot if not done already
+if [ ! -d ~/.local/share/broot ]; then
+ broot --install
+fi
diff --git a/run_onchange_update-fish-auto-completions.sh b/run_onchange_update-fish-auto-completions.sh
new file mode 100644
index 0000000..c177510
--- /dev/null
+++ b/run_onchange_update-fish-auto-completions.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env fish
+
+fish_update_completions
diff --git a/statusbar/.local/bin/statusbar/bluetooth b/statusbar/.local/bin/statusbar/bluetooth
deleted file mode 100755
index eeb4cd2..0000000
--- a/statusbar/.local/bin/statusbar/bluetooth
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-if [ "$(systemctl is-active bluetooth.service)" = "active" ]; then
- echo ""
-else
- echo ""
-fi
diff --git a/statusbar/.local/bin/statusbar/clock b/statusbar/.local/bin/statusbar/clock
deleted file mode 100755
index f63690d..0000000
--- a/statusbar/.local/bin/statusbar/clock
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-clock=$(date '+%I')
-
-case "$clock" in
-"00") icon="🕛" ;;
-"01") icon="🕐" ;;
-"02") icon="🕑" ;;
-"03") icon="🕒" ;;
-"04") icon="🕓" ;;
-"05") icon="🕔" ;;
-"06") icon="🕕" ;;
-"07") icon="🕖" ;;
-"08") icon="🕗" ;;
-"09") icon="🕘" ;;
-"10") icon="🕙" ;;
-"11") icon="🕚" ;;
-"12") icon="🕛" ;;
-esac
-
-case $BLOCK_BUTTON in
-1) notify-send "This Month" "$(cal --color=always | sed "s/..7m//;s/..27m/<\/span><\/b>/")" && notify-send "Appointments" "$(khal list -d prayer_calender_local)" ;;
-esac
-
-date "+$icon%H:%M"
diff --git a/statusbar/.local/bin/statusbar/covid b/statusbar/.local/bin/statusbar/covid
deleted file mode 100755
index bef5530..0000000
--- a/statusbar/.local/bin/statusbar/covid
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env sh
-
-case $BLOCK_BUTTON in
-1) notify-send Covid "$(curl -4 https://corona-stats.online/Netherlands?emojis=true | sed 's/\x1b\[[0-9;]*m//g')" ;;
-esac
-
-curl --silent "https://corona-stats.online/Netherlands" | sed -n '4p' | sed 's/\x1b\[[0-9;]*m//g' | sed 's/[\ \t]//g' | awk -F '│' '{ print "😷" $3, "💀" $5, "🛌" $4, "🏥" $9 }'
diff --git a/statusbar/.local/bin/statusbar/cpu b/statusbar/.local/bin/statusbar/cpu
deleted file mode 100755
index e120b83..0000000
--- a/statusbar/.local/bin/statusbar/cpu
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-case $BLOCK_BUTTON in
-1) notify-send "🖥 CPU hogs" "$(ps axch -o cmd:15,%cpu --sort=-%cpu | head)\\n(100% per core)" ;;
-3) setsid -f "$TERMINAL" -e htop ;;
-esac
-
-sensors | awk '/Core 0/ {print "🌡" $3}'
diff --git a/statusbar/.local/bin/statusbar/cpubars b/statusbar/.local/bin/statusbar/cpubars
deleted file mode 100755
index 231207f..0000000
--- a/statusbar/.local/bin/statusbar/cpubars
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-# Cache in tmpfs to improve speed and reduce SSD load
-cache=/tmp/cpubarscache
-
-case $BLOCK_BUTTON in
-1) setsid -f "$TERMINAL" -e htop ;;
-esac
-
-# id total idle
-stats=$(awk '/cpu[0-9]+/ {printf "%d %d %d\n", substr($1,4), ($2 + $3 + $4 + $5), $5 }' /proc/stat)
-[ ! -f $cache ] && echo "$stats" >"$cache"
-old=$(cat "$cache")
-printf "🪨"
-echo "$stats" | while read -r row; do
- id=${row%% *}
- rest=${row#* }
- total=${rest%% *}
- idle=${rest##* }
-
- case "$(echo "$old" | awk '{if ($1 == id)
- printf "%d\n", (1 - (idle - $3) / (total - $2))*100 /12.5}' \
- id="$id" total="$total" idle="$idle")" in
-
- "0") printf "▁" ;;
- "1") printf "▂" ;;
- "2") printf "▃" ;;
- "3") printf "▄" ;;
- "4") printf "▅" ;;
- "5") printf "▆" ;;
- "6") printf "▇" ;;
- "7") printf "█" ;;
- "8") printf "█" ;;
- esac
-done
-printf "\\n"
-echo "$stats" >"$cache"
diff --git a/statusbar/.local/bin/statusbar/disk b/statusbar/.local/bin/statusbar/disk
deleted file mode 100755
index 13eb6a7..0000000
--- a/statusbar/.local/bin/statusbar/disk
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-# Status bar module for disk space
-# $1 should be drive mountpoint, otherwise assumed /.
-
-location=${1:-/}
-
-[ -d "$location" ] || exit
-
-case $BLOCK_BUTTON in
-1) notify-send "💽 Disk space" "$(df -h --output=target,used,size)" ;;
-esac
-
-printf "%s%s" "🏠" "$(df -h "/home" | awk ' /[0-9]/ {print $3 "/" $2}') "
-printf "%s%s" "🖥" "$(df -h "/" | awk ' /[0-9]/ {print $3 "/" $2}')"
diff --git a/statusbar/.local/bin/statusbar/docker b/statusbar/.local/bin/statusbar/docker
deleted file mode 100755
index 16875a6..0000000
--- a/statusbar/.local/bin/statusbar/docker
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env sh
-
-case $BLOCK_BUTTON in
-1) notify-send "Docker" "$(docker ps)" ;;
-esac
-
-count=$(docker ps -q | wc -l)
-
-if [ ! "$count" -eq 0 ]; then
- echo "🐳$count"
-else
- echo ""
-fi
diff --git a/statusbar/.local/bin/statusbar/github b/statusbar/.local/bin/statusbar/github
deleted file mode 100755
index 9ab5ea7..0000000
--- a/statusbar/.local/bin/statusbar/github
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-token=$(getpassword githubnotifications)
-
-case $BLOCK_BUTTON in
-1) "$BROWSER" --new-tab https://github.com/notifications ;;
-esac
-
-count=$(curl -s -u alrayyes:"$token" https://api.github.com/notifications | jq 'length')
-
-if [ ! "$count" -eq 0 ]; then
- echo "🦊$count"
-else
- echo ""
-fi
diff --git a/statusbar/.local/bin/statusbar/internet b/statusbar/.local/bin/statusbar/internet
deleted file mode 100755
index 85081a4..0000000
--- a/statusbar/.local/bin/statusbar/internet
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-# Show wifi 📶 and percent strength or 📡 if none.
-# Show 🌐 if connected to ethernet or ❎ if none.
-# Show 🔒 if a vpn connection is active
-
-case $BLOCK_BUTTON in
-1)
- "$TERMINAL" -e nmtui
- pkill -RTMIN+17 dwmblocks
- ;;
-esac
-
-case "$(cat /sys/class/net/w*/operstate 2>/dev/null)" in
-down) wifiicon="📡 " ;;
-up) wifiicon="$(awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "% " }' /proc/net/wireless)" ;;
-esac
-
-printf "%s%s%s\n" "$wifiicon" "$(sed "s/down/❎/;s/up/🌐/" /sys/class/net/e*/operstate 2>/dev/null)"
diff --git a/statusbar/.local/bin/statusbar/mail b/statusbar/.local/bin/statusbar/mail
deleted file mode 100755
index 3d587fb..0000000
--- a/statusbar/.local/bin/statusbar/mail
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env sh
-
-case $BLOCK_BUTTON in
-1) setsid -f "$TERMINAL" -e neomutt ;;
-3) setsid -f mailsync >/dev/null ;;
-esac
-
-unread="$(find ~/.local/share/mail/*/INBOX/new/* -type f 2>/dev/null | wc -l)"
-
-if [ "$unread" -eq "0" ]; then
- unread=""
-fi
-
-pidof mbsync >/dev/null 2>&1 && icon="🔃"
-
-[ "$unread" = "" ] && [ "$icon" = "" ] || echo "📬$unread$icon"
diff --git a/statusbar/.local/bin/statusbar/memory b/statusbar/.local/bin/statusbar/memory
deleted file mode 100755
index 5fcba15..0000000
--- a/statusbar/.local/bin/statusbar/memory
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-case $BLOCK_BUTTON in
- 1) notify-send "🧠 Memory hogs" "$(ps axch -o cmd:15,%mem --sort=-%mem | head)" ;;
- 3) setsid -f "$TERMINAL" -e htop ;;
-esac
-
-free --mebi | sed -n '2{p;q}' | awk '{printf ("🧠%2.2fGiB/%2.2fGiB\n", ( $3 / 1024), ($2 / 1024))}'
diff --git a/statusbar/.local/bin/statusbar/microphone b/statusbar/.local/bin/statusbar/microphone
deleted file mode 100755
index ded5a01..0000000
--- a/statusbar/.local/bin/statusbar/microphone
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# Prints the current volume or nothing if muted.
-
-case $BLOCK_BUTTON in
-1) setsid -f "$TERMINAL" -e pulsemixer ;;
-2) pamixer -t ;;
-9) pamixer --allow-boost -i 1 ;;
-8) pamixer --allow-boost -d 1 ;;
-esac
-
-source=$(pamixer --list-sources | grep Yeti | awk '{print $1}')
-
-if [ -n "$source" ]; then
- vol="$(pamixer --source "$source" --get-volume)"
-
- if [ "$vol" -gt "0" ]; then
- icon="🎤"
- fi
-
- echo "$icon"
-else
- echo ""
-fi
diff --git a/statusbar/.local/bin/statusbar/music b/statusbar/.local/bin/statusbar/music
deleted file mode 100755
index 288485f..0000000
--- a/statusbar/.local/bin/statusbar/music
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-player_status=$(playerctl status 2>/dev/null)
-
-if [ "$player_status" = "Playing" ]; then
- echo "⏯$(playerctl metadata artist) - $(playerctl metadata title)"
-elif [ "$player_status" = "Paused" ]; then
- echo "⏸ $(playerctl metadata artist) - $(playerctl metadata title)"
-fi
-
-case $BLOCK_BUTTON in
-1)
- playerctl previous
- ;;
-2)
- playerctl play-pause
- ;;
-3)
- playerctl next
- ;;
-esac
diff --git a/statusbar/.local/bin/statusbar/nettraf b/statusbar/.local/bin/statusbar/nettraf
deleted file mode 100755
index e83f325..0000000
--- a/statusbar/.local/bin/statusbar/nettraf
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-# Module showing network traffic. Shows how much data has been received (RX) or
-# transmitted (TX) since the previous time this script ran. So if run every
-# second, gives network traffic per second.
-
-case $BLOCK_BUTTON in
-1) setsid -f "$TERMINAL" -e bmon ;;
-esac
-
-update() {
- sum=0
- for arg; do
- read -r i <"$arg"
- sum=$((sum + i))
- done
- cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/}
- [ -f "$cache" ] && read -r old <"$cache" || old=0
- printf %d\\n "$sum" >"$cache"
- printf %d\\n $((sum - old))
-}
-
-rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes)
-tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes)
-
-printf "🔻%4sB 🔺%4sB\\n" $(numfmt --to=iec $rx) $(numfmt --to=iec $tx)
diff --git a/statusbar/.local/bin/statusbar/news b/statusbar/.local/bin/statusbar/news
deleted file mode 100755
index f880e7b..0000000
--- a/statusbar/.local/bin/statusbar/news
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env sh
-
-password=$(getpassword rss)
-session_id=$(curl -s -d '{"op":"login","user":"alrayyes","password":"'"$password"'"}' "https://rss.higherlearning.eu/api/" | jq -r ".content.session_id")
-count=$(curl -s -d '{"sid":"'$session_id'","op":"getUnread","feed_id":"0","is_cat":"1"}' "https://rss.higherlearning.eu/api/" | jq -r ".content.unread")
-
-case $BLOCK_BUTTON in
-1) setsid "$TERMINAL" -e newsboat ;;
-2) setsid -f newsup exit >/dev/null ;;
-esac
-
-output=""
-if [ "$count" -gt 0 ]; then
- output="📰$count"
-fi
-
-cat /tmp/newsupdate 2>/dev/null || echo "$output""$(cat "${XDG_CONFIG_HOME:-$HOME/.config}"/newsboat/.update 2>/dev/null)"
diff --git a/statusbar/.local/bin/statusbar/podcast b/statusbar/.local/bin/statusbar/podcast
deleted file mode 100755
index a458b9a..0000000
--- a/statusbar/.local/bin/statusbar/podcast
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env sh
-
-password=$(getpassword rss)
-session_id=$(curl -s -d '{"op":"login","user":"alrayyes","password":"'"$password"'"}' "https://rss.higherlearning.eu/api/" | jq -r ".content.session_id")
-count=$(curl -s -d '{"sid":"'$session_id'","op":"getUnread","feed_id":"10","is_cat":"1"}' "https://rss.higherlearning.eu/api/" | jq -r ".content.unread")
-
-case $BLOCK_BUTTON in
-1) setsid "$TERMINAL" -e podboat ;;
-2) setsid -f newsup exit >/dev/null ;;
-esac
-
-output=""
-if [ "$count" -gt 0 ]; then
- output="📻$count"
-fi
-
-echo "$output""$(cat "${XDG_CONFIG_HOME:-$HOME/.config}"/newsboat/.update 2>/dev/null)"
diff --git a/statusbar/.local/bin/statusbar/seperator b/statusbar/.local/bin/statusbar/seperator
deleted file mode 100755
index 9c45e69..0000000
--- a/statusbar/.local/bin/statusbar/seperator
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo "║"
diff --git a/statusbar/.local/bin/statusbar/toggl b/statusbar/.local/bin/statusbar/toggl
deleted file mode 100755
index 01f73a6..0000000
--- a/statusbar/.local/bin/statusbar/toggl
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-case $BLOCK_BUTTON in
-1) "$BROWSER" --new-tab https://track.toggl.com/timer ;;
-esac
-
-token=$(getpassword toggl)
-current="$(curl --silent -u "$token":api_token "https://api.track.toggl.com/api/v8/time_entries/current" | jq '.data.description' | sed 's/"//g')"
-
-if [ "$current" != "null" ]; then
- echo "⏲ $current"
-else
- echo ""
-fi
diff --git a/statusbar/.local/bin/statusbar/update-arch b/statusbar/.local/bin/statusbar/update-arch
deleted file mode 100755
index 4c6567e..0000000
--- a/statusbar/.local/bin/statusbar/update-arch
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env sh
-
-yay
-sudo pacman -Rs $(pacman -Qtdq)
-pacrmorphans
-pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}"
diff --git a/statusbar/.local/bin/statusbar/updates b/statusbar/.local/bin/statusbar/updates
deleted file mode 100755
index e80f88d..0000000
--- a/statusbar/.local/bin/statusbar/updates
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-case $BLOCK_BUTTON in
-1) "$TERMINAL" -e ~/.local/bin/statusbar/update-arch ;;
-esac
-
-if ! updates_arch=$(checkupdates 2>/dev/null | wc -l); then
- updates_arch=0
-fi
-
-if ! updates_aur=$(yay -Qum 2>/dev/null | wc -l); then
- # if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then
- # if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then
- # if ! updates_aur=$(pikaur -Qua 2> /dev/null | wc -l); then
- # if ! updates_aur=$(rua upgrade --printonly 2> /dev/null | wc -l); then
- updates_aur=0
-fi
-
-updates=$(("$updates_arch" + "$updates_aur"))
-
-if [ "$updates" -gt 0 ]; then
- echo "📦$updates"
-else
- echo ""
-fi
diff --git a/statusbar/.local/bin/statusbar/usb b/statusbar/.local/bin/statusbar/usb
deleted file mode 100755
index f3c984b..0000000
--- a/statusbar/.local/bin/statusbar/usb
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/sh
-
-usb_print() {
- devices=$(lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR)
- output=""
- counter=0
-
- for unmounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint == null) | .name'); do
- unmounted=$(echo "$unmounted" | tr -d "[:digit:]")
- unmounted=$(echo "$devices" | jq -r '.blockdevices[] | select(.name == "'"$unmounted"'") | .vendor')
- unmounted=$(echo "$unmounted" | tr -d ' ')
-
- if [ $counter -eq 0 ]; then
- space=""
- else
- space=" "
- fi
- counter=$((counter + 1))
-
- output="$output$space $unmounted"
- done
-
- for mounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .size'); do
- if [ $counter -eq 0 ]; then
- space=""
- else
- space=" "
- fi
- counter=$((counter + 1))
-
- output="$output$space $mounted"
- done
-
- if [ "$output" ]; then
- notify-send.py "USB" "$output" \
- -i drive-removable-media-usb \
- --replaces-process "usb-mount" &
- fi
- echo "$output"
-}
-
-usb_update() {
- pid=$(cat "$path_pid")
-
- if [ "$pid" != "" ]; then
- kill -10 "$pid"
- fi
-}
-
-path_pid="/tmp/polybar-system-usb-udev.pid"
-
-case "$1" in
---update)
- usb_update
- ;;
---mount)
- devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
-
- for mount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint == null) | .name'); do
- mountpoint=$(udisksctl mount --no-user-interaction -b "$mount")
- mountpoint=$(echo "$mountpoint" | cut -d " " -f 4 | tr -d ".")
- alacritty --class lf,lf -e lf "$mountpoint" &
- done
-
- usb_update
- ;;
---unmount)
- devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
-
- for unmount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .name'); do
- udisksctl unmount --no-user-interaction -b "$unmount"
- udisksctl power-off --no-user-interaction -b "$unmount"
- done
-
- usb_update
- ;;
-*)
- echo $$ >$path_pid
-
- trap exit INT
- trap "echo" USR1
-
- while true; do
- usb_print
-
- sleep 60 &
- wait
- done
- ;;
-esac
diff --git a/statusbar/.local/bin/statusbar/volume b/statusbar/.local/bin/statusbar/volume
deleted file mode 100755
index 9aa30a4..0000000
--- a/statusbar/.local/bin/statusbar/volume
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# Prints the current volume or 🔇 if muted.
-
-case $BLOCK_BUTTON in
-1) setsid -f "$TERMINAL" -e pulsemixer ;;
-2) pamixer -t ;;
-9) pamixer --allow-boost -i 1 ;;
-8) pamixer --allow-boost -d 1 ;;
-esac
-
-[ $(pamixer --get-mute) = true ] && echo 🔇 && exit
-
-vol="$(pamixer --get-volume)"
-
-if [ "$vol" -gt "70" ]; then
- icon="🔊"
-elif [ "$vol" -lt "30" ]; then
- icon="🔈"
-else
- icon="🔉"
-fi
-
-echo "$icon$vol%"
diff --git a/statusbar/.local/bin/statusbar/vpn b/statusbar/.local/bin/statusbar/vpn
deleted file mode 100755
index 4aade37..0000000
--- a/statusbar/.local/bin/statusbar/vpn
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-check_vpn() {
- status="$(nmcli device status | grep -c "$1")"
-
- if [ "$status" -gt "0" ]; then
- icon=💂
- if [ "$1" = "tun0" ]; then
- icon=🔒
- fi
-
- echo "$icon$1"
- fi
-
-}
-
-if [ -n "$1" ]; then
- case $BLOCK_BUTTON in
- 1) case $1 in
- "wg-0")
- wg-quick down "$1"
- notify-send -a wireguard --replaces-process wireguard-status-"$1" -i network-vpn-offline-symbolic "Wireguard $1" "Connection down" &
- ;;
- "wg-1")
- wg-quick down "$1"
- notify-send -a wireguard --replaces-process wireguard-status-"$1" -i network-vpn-offline-symbolic "Wireguard $1" "Connection down" &
- ;;
- esac ;;
- esac
-
- check_vpn "$1"
-fi
diff --git a/statusbar/.local/bin/statusbar/weather b/statusbar/.local/bin/statusbar/weather
deleted file mode 100755
index 2843329..0000000
--- a/statusbar/.local/bin/statusbar/weather
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-case $BLOCK_BUTTON in
-1) notify-send "Weather" "$(curl -4 https://wttr.in/Amsterdam?T)" ;;
-esac
-
-curl --silent "https://wttr.in/Amsterdam?format=2" | sed 's/️//g'
diff --git a/sxhkd/.config/sxhkd/sxhkdrc.thinkpad b/sxhkd/.config/sxhkd/sxhkdrc.thinkpad
deleted file mode 100644
index 6d22265..0000000
--- a/sxhkd/.config/sxhkd/sxhkdrc.thinkpad
+++ /dev/null
@@ -1,183 +0,0 @@
-#-----------------------------------------------------------Functions--------------------------------------------------------------
-# lock screen
-super + F1
- xset s activate
-
-# dmenu password selector
-super + F2
- ~/.local/bin/pass-dmenu
-
-# dmenu authenticator
-super + F3
- ~/.local/bin/oath-dmenu
-
-# ssh shell
-super + F4
- ~/.local/bin/ssh-dmenu -p SSH:
-
-# player controls
-super + F5
- playerctl stop
-super + F6
- playerctl previous
-super + F7
- playerctl play-pause
-super + F8
- playerctl next
-
-# Wireguard
-super + F11
- ~/.local/bin/wireguard-switch
-
-# dmenu calculator
-super + F12
- =
-
-#-----------------------------------------------------------Audio & screen brightness & shutdown--------------------------------------------------------------
-# Audio controls
-XF86AudioRaiseVolume
- ~/.local/bin/volume inc
-XF86AudioLowerVolume
- ~/.local/bin/volume dec
-XF86AudioMute
- ~/.local/bin/volume mute
-
-# Screen brightness controls
-XF86MonBrightnessUp
- ~/.local/bin/brightness inc
-XF86MonBrightnessDown
- ~/.local/bin/brightness dec
-# Shutdown / reboot
-XF86Eject
- prompt "Shutdown computer?" "sudo -A shutdown -h now"
-shift + XF86Eject
- prompt "Reboot computer?" "sudo -A reboot"
-
-#-----------------------------------------------------------Screenshots--------------------------------------------------------------
-shift + Print
- maimpick
-
-# desktop screenshot
-Print
- TIMESTAMP=$(date '+%Y-%m-%d-%H%M%S'); maim ~/Pictures/Screenshots/pic-full-$TIMESTAMP.png && notify-send -i ~/Pictures/Screenshots/pic-full-$TIMESTAMP.png "Desktop Screenshot pic-full-$TIMESTAMP.png"
-
-
-#-----------------------------------------------------------App shortcuts--------------------------------------------------------------
-# terminal emulator
-super + Return
- st
-
-# program launcher
-super + @space
- dmenu-frecency
-
-# make sxhkd reload its configuration files:
-super + Escape
- pkill -USR1 -x sxhkd
-
-# Misc apps
-super + ctrl + alt + {l, n, r, s, c, v, k, a, u, e}
- alacritty --class float,float -e {lf, neomutt, /usr/bin/newsboat, spt, castero, nvim, ~/.local/bin/calendar-and-wait, ~/.local/bin/audit, ~/.local/bin/update-arch}
-super + ctrl + alt + {b, e, S}
- {brave, emacs, spotify}
-super + ctrl + alt + {t}
- ~/.local/bin/tldr-dmenu
-super + ctrl + alt + {m}
- ~/.local/bin/dmenuunicode
-super + ctrl + alt + {w}
- alacritty --class fullscreen,fullscreen -e ~/.config/polybar/bin/wttr-and-wait
-
-#-----------------------------------------------------------Bspwm--------------------------------------------------------------
-# quit/restart bspwm
-super + alt + {q,r}
- bspc {quit,wm -r}
-
-# close and kill
-super + {_,shift + }w
- bspc node -{c,k}
-
-# alternate between the tiled and monocle layout
-super + m
- bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-super + y
- bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest node
-super + g
- bspc node -s biggest
-
-# set the window state
-super + {t,shift + t,s,f}
- bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-super + ctrl + {m,x,y,z}
- bspc node -g {marked,locked,sticky,private}
-
-# focus the node in the given direction
-super + {_,shift + }{h,j,k,l}
- bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-super + {p,b,comma,period}
- bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous node in the current desktop
-super + {_,shift + }c
- bspc node -f {next,prev}.local
-
-# focus the next/previous desktop in the current monitor
-super + bracket{left,right}
- bspc desktop -f {prev,next}.local
-
-# focus the last node/desktop
-super + {grave,Tab}
- bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-super + {o,i}
- bspc wm -h off; \
- bspc node {older,newer} -f; \
- bspc wm -h on
-
-# focus or send to the given desktop
-super + {_,shift + }{1-9,0}
- bspc {desktop -f,node -d} '^{1-9,10}'
-
-# preselect the direction
-super + ctrl + {h,j,k,l}
- bspc node -p {west,south,north,east}
-
-# preselect the ratio
-super + ctrl + {1-9}
- bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-super + ctrl + space
- bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-super + ctrl + shift + space
- bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-# expand a window by moving one of its side outward
-super + alt + {h,j,k,l}
- bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-super + alt + shift + {h,j,k,l}
- bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-super + {Left,Down,Up,Right}
- bspc node -v {-20 0,0 20,0 -20,20 0}
-
-# Swap nodes the tree from the current nodes parent
-super + control + {Up, Down}
- bspc node @parent -C {forward, backward}
-
-# Rotate the tree from the current nodes parent
-super + control + {Right, Left}
- bspc node @parent --rotate {90,270}
diff --git a/sxhkd/.local/bin/calendar-and-wait b/sxhkd/.local/bin/calendar-and-wait
deleted file mode 100755
index 7124474..0000000
--- a/sxhkd/.local/bin/calendar-and-wait
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-khal list && read -n 1 -p ""
diff --git a/sxhkd/.local/bin/sxhkd/calendar-and-wait b/sxhkd/.local/bin/sxhkd/calendar-and-wait
deleted file mode 100755
index 7124474..0000000
--- a/sxhkd/.local/bin/sxhkd/calendar-and-wait
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-khal list && read -n 1 -p ""
diff --git a/sxhkd/.local/bin/sxhkd/volume b/sxhkd/.local/bin/sxhkd/volume
deleted file mode 100755
index fd81dfb..0000000
--- a/sxhkd/.local/bin/sxhkd/volume
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-if [ -n "$1" ]; then
- case $1 in
- inc)
- pamixer --allow-boost -i 3
- ;;
- dec)
- pamixer --allow-boost -d 3
- ;;
- mute)
- pamixer -t
- ;;
- esac
-fi
-
-pkill -RTMIN+15 "${STATUSBAR:-dwmblocks}"
diff --git a/sxhkd/.local/bin/sxhkd/wttr-and-wait b/sxhkd/.local/bin/sxhkd/wttr-and-wait
deleted file mode 100755
index ecc935b..0000000
--- a/sxhkd/.local/bin/sxhkd/wttr-and-wait
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env fish
-
-wttr && read -n 1 -p ""
diff --git a/x/.config/X11/.Xresources.thinkpad b/x/.config/X11/.Xresources.thinkpad
deleted file mode 100644
index 34e2b28..0000000
--- a/x/.config/X11/.Xresources.thinkpad
+++ /dev/null
@@ -1,9 +0,0 @@
-!-------------------------------------------------------------------------------
-! Xft settings
-!-------------------------------------------------------------------------------
-
-Xft.dpi: 160
-Xft.antialias: false
-Xft.rgba: rgb
-Xft.hinting: true
-Xft.hintstyle: hintslight
diff --git a/x/.local/bin/lock b/x/.local/bin/lock
deleted file mode 100755
index 701c640..0000000
--- a/x/.local/bin/lock
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-xset s activate
diff --git a/zsh/.config/zsh/.zprofile b/zsh/.config/zsh/.zprofile
deleted file mode 100644
index 3304d79..0000000
--- a/zsh/.config/zsh/.zprofile
+++ /dev/null
@@ -1,3 +0,0 @@
-if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
- exec startx
-fi