diff --git a/.config/Kvantum/kvantum.kvconfig b/.config/Kvantum/kvantum.kvconfig
new file mode 100644
index 0000000..402e301
--- /dev/null
+++ b/.config/Kvantum/kvantum.kvconfig
@@ -0,0 +1,2 @@
+[General]
+theme=KvArcDark
diff --git a/.config/Thunar/uca.xml b/.config/Thunar/uca.xml
index 5bf8f5e..2cb4c78 100644
--- a/.config/Thunar/uca.xml
+++ b/.config/Thunar/uca.xml
@@ -4,8 +4,15 @@
utilities-terminal
Open Terminal Here
1594675818593070-1
- urxvt -cd %f
Open Terminal in the Current Directory
+
+
+ urxvt -cd %f
+
+
+
+
+
*
diff --git a/.config/emacs/site-lisp/dot-elpaca.el b/.config/emacs/site-lisp/dot-elpaca.el
index 4801a58..0a10c5d 100644
--- a/.config/emacs/site-lisp/dot-elpaca.el
+++ b/.config/emacs/site-lisp/dot-elpaca.el
@@ -9,12 +9,12 @@
;; -----------------------------------------
;; Elpaca bootstrap
-(defvar elpaca-installer-version 0.8)
+(defvar elpaca-installer-version 0.9)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
- :ref nil :depth 1
+ :ref nil :depth 1 :inherit ignore
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca--activate-package)))
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
diff --git a/.config/emacs/site-lisp/dot-org-mode.el b/.config/emacs/site-lisp/dot-org-mode.el
index 5a73c72..72a9094 100644
--- a/.config/emacs/site-lisp/dot-org-mode.el
+++ b/.config/emacs/site-lisp/dot-org-mode.el
@@ -222,7 +222,8 @@ When ANYWHERE is non-nil, search beyond the preamble."
;;; Org Roam
-(elpaca-setup emacsql-sqlite-builtin)
+(elpaca-setup emacsql
+ (:also-load emacsql-sqlite-builtin))
(elpaca-setup org-roam
(:autoload org-roam-node-find) ;; TODO, is this enough?
diff --git a/.config/redshift/redshift.conf b/.config/gammastep/config.ini
similarity index 72%
rename from .config/redshift/redshift.conf
rename to .config/gammastep/config.ini
index f026b4f..d828abc 100644
--- a/.config/redshift/redshift.conf
+++ b/.config/gammastep/config.ini
@@ -1,4 +1,4 @@
-[redshift]
+[general]
temp-day=5700
; >>> hostname=arch-desktop
@@ -14,7 +14,13 @@ brightness-day=1.0
brightness-night=0.9
location-provider=manual
+
+; >>> session=xorg
adjustment-method=randr
+; <<<
+; >>> session=wayland
+; adjustment-method=wayland
+; <<<
[manual]
lat=51.81
diff --git a/.config/ghostty/config b/.config/ghostty/config
new file mode 100644
index 0000000..225b29a
--- /dev/null
+++ b/.config/ghostty/config
@@ -0,0 +1,10 @@
+confirm-close-surface = false
+copy-on-select = clipboard
+cursor-style-blink = false
+font-family = DejaVuSansM Nerd Font Mono
+font-size = 10
+link-url = true
+selection-invert-fg-bg = true
+theme = terminal-sexy
+window-decoration = false
+window-inherit-working-directory = true
diff --git a/.config/ghostty/themes/terminal-sexy b/.config/ghostty/themes/terminal-sexy
new file mode 100644
index 0000000..042543f
--- /dev/null
+++ b/.config/ghostty/themes/terminal-sexy
@@ -0,0 +1,21 @@
+palette = 0=#282a2e
+palette = 1=#a54242
+palette = 2=#8c9440
+palette = 3=#de935f
+palette = 4=#5f819d
+palette = 5=#85678f
+palette = 6=#5e8d87
+palette = 7=#707880
+palette = 8=#373b41
+palette = 9=#cc6666
+palette = 10=#b5bd68
+palette = 11=#f0c674
+palette = 12=#81a2be
+palette = 13=#b294bb
+palette = 14=#8abeb7
+palette = 15=#c5c8c6
+background = #1c1c1c
+foreground = #c5c8c6
+cursor-color = #c5c8c6
+selection-background = #373b41
+selection-foreground = #c5c8c6
diff --git a/.config/gtk-2.0/gtkrc b/.config/gtk-2.0/gtkrc
index 85c8576..1daaf15 100644
--- a/.config/gtk-2.0/gtkrc
+++ b/.config/gtk-2.0/gtkrc
@@ -1,6 +1,7 @@
-# DO NOT EDIT! This file will be overwritten by LXAppearance.
+# DO NOT EDIT! This file will be overwritten by nwg-look.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
+include "/home/rick/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="Arc"
gtk-font-name="DejaVu Sans 10"
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
index ca1c4c2..d889ab4 100644
--- a/.config/gtk-3.0/settings.ini
+++ b/.config/gtk-3.0/settings.ini
@@ -14,3 +14,4 @@ gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
+gtk-application-prefer-dark-theme=1
diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf
new file mode 100644
index 0000000..ccf085d
--- /dev/null
+++ b/.config/hypr/hypridle.conf
@@ -0,0 +1,12 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock
+ before_sleep_cmd = loginctl lock-session
+ after_sleep_cmd = hyprctl dispatch dpms on # avoid having to press a key twice to turn on display
+}
+
+# Turn the screen off after 30 seconds on the lock-screen
+listener {
+ timeout = 30
+ on-timeout = pidof hyprlock && hyprctl dispatch dpms off
+ on-resume = hyprctl dispatch dpms on
+}
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..e9cd7e4
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,406 @@
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=,preferred,auto,auto
+
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = ghostty
+$fileManager = thunar
+$menu = rofi -show drun
+
+
+#################
+### AUTOSTART ###
+#################
+
+# System level
+exec-once = gammastep
+exec-once = systemctl --user start hyprpolkitagent
+exec-once = hyprctl setcursor capitaine-cursors-light 24
+exec-once = hypridle
+
+# Scripts
+exec-once = ${HOME}/.local/bin/wm/wallpaper.sh
+exec-once = ${HOME}/.local/bin/panel/waybar.sh
+
+# Applications
+exec-once = [workspace 1] firefox
+exec-once = [workspace 2] $terminal
+exec-once = [workspace 3] thunar --daemon
+exec-once = [workspace 3] thunar
+
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hyprland.org/Configuring/Variables/
+
+# https://wiki.hyprland.org/Configuring/Variables/#general
+general {
+ gaps_in = 5
+ gaps_out = 10
+
+ border_size = 2
+
+ # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+ col.active_border = rgb(404552)
+ col.inactive_border = rgb(2b2e39)
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#decoration
+decoration {
+ rounding = 0
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = false
+ }
+
+ # https://wiki.hyprland.org/Configuring/Variables/#blur
+ blur {
+ enabled = false
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+ enabled = true
+
+ # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+ bezier = easeOutQuint,0.23,1,0.32,1
+ bezier = easeInOutCubic,0.65,0.05,0.36,1
+ bezier = linear,0,0,1,1
+ bezier = almostLinear,0.5,0.5,0.75,1.0
+ bezier = quick,0.15,0,0.1,1
+
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+}
+
+# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+workspace = w[tv1], gapsout:0, gapsin:0
+workspace = f[1], gapsout:0, gapsin:0
+windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
+windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
+windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
+windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+dwindle {
+ force_split = 2 # split to the bottom right
+ preserve_split = true
+ pseudotile = false
+}
+
+# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#misc
+misc {
+ disable_hyprland_logo = true
+ vfr = true # lower amount of sent frames when nothing is happening on-screen
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options = caps:swapescape
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#gestures
+gestures {
+ workspace_swipe = false
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
+device { # hyprctl devices
+ name = logitech-wireless-mouse-pid:4038
+ sensitivity = -0.5
+ accel_profile = flat
+}
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Bind docs https://wiki.hyprland.org/Configuring/Binds/
+
+#--- Control ---#
+
+# Reload hyprland
+bind = $mainMod Control_L, r, forcerendererreload
+
+# Close hyprland
+bind = $mainMod SHIFT, M, exit,
+
+#--- Window ---#
+
+# Close window
+bind = $mainMod, q, killactive,
+
+#-- State/flags --#
+
+# Toggle fullscreen mode
+bind = $mainMod, f, fullscreen
+
+# Toggle tiled/floating
+bind = $mainMod, Space, togglefloating,
+
+#-- Focus --#
+
+# Focus window in direction
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, j, movefocus, d
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, l, movefocus, r
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# Focus previous/next window
+bind = $mainMod, Tab, cyclenext
+bind = $mainMod SHIFT, Tab, cyclenext, prev
+
+# Focus workspace
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+# Focus previous/next workspace
+bind = $mainMod, equal, workspace, e+1
+bind = $mainMod, minus, workspace, e-1
+
+# Focus last workspace
+bind = $mainMod, GRAVE, focuscurrentorlast
+
+# Focus previous/next monitor
+# TODO
+
+# Special workspace (scratchpad)
+bind = $mainMod, T, togglespecialworkspace, magic
+
+#-- Move --#
+
+# Send window to workspace
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+# Move window to previous/next workspace
+bind = $mainMod SHIFT, equal, movetoworkspace, e+1
+bind = $mainMod SHIFT, minus, movetoworkspace, e-1
+
+# Move window to previous/next monitor
+# TODO
+
+# Move floating window
+bind = Control_L Alt_L, h, moveactive, -30 0
+bind = Control_L Alt_L, j, moveactive, 0 30
+bind = Control_L Alt_L, k, moveactive, 0 -30
+bind = Control_L Alt_L, l, moveactive, 30 0
+bind = Control_L Alt_L, left, moveactive, -30 0
+bind = Control_L Alt_L, right, moveactive, 30 0
+bind = Control_L Alt_L, up, moveactive, 0 -30
+bind = Control_L Alt_L, down, moveactive, 0 30
+
+# Flip the tree from the current windows parent
+bind = $mainMod Alt_L, 5, swapsplit, # dwindle
+bind = $mainMod Alt_L, 6, togglesplit, # dwindle
+
+# Special workspace (scratchpad)
+bind = $mainMod SHIFT, T, movetoworkspace, special:magic
+
+#-- Resize --#
+
+# Resize windows
+bind = $mainMod Alt_L, h, resizeactive, -10 0
+bind = $mainMod Alt_L, j, resizeactive, 0 10
+bind = $mainMod Alt_L, k, resizeactive, 0 -10
+bind = $mainMod Alt_L, l, resizeactive, 10 0
+bind = $mainMod Alt_L, left, resizeactive, -10 0
+bind = $mainMod Alt_L, right, resizeactive, 10 0
+bind = $mainMod Alt_L, up, resizeactive, 0 -10
+bind = $mainMod Alt_L, down, resizeactive, 0 10
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+#-- Preselect node --#
+
+bind = SUPER Control_L, h, layoutmsg, preselect left
+bind = SUPER Control_L, j, layoutmsg, preselect down
+bind = SUPER Control_L, k, layoutmsg, preselect up
+bind = SUPER Control_L, l, layoutmsg, preselect right
+bind = SUPER Control_L, left, layoutmsg, preselect left
+bind = SUPER Control_L, right, layoutmsg, preselect right
+bind = SUPER Control_L, up, layoutmsg, preselect up
+bind = SUPER Control_L, down, layoutmsg, preselect down
+
+#--- General ---#
+
+# Start terminal
+bind = $mainMod, Return, exec, $terminal
+
+# Start rofi (program launcher)
+bind = $mainMod, d, exec, $menu
+
+# mpv
+bind = $mainMod, m, exec, play
+bind = $mainMod SHIFT, m, exec, play queue
+
+#--- Control, compositor agnostic ---#
+
+# Reload
+bind = $mainMod Control_L, r, exec, ${HOME}/.local/bin/panel/waybar.sh
+
+# System
+bind = $mainMod SHIFT, s, exec, system
+
+# Screen brightness
+bind = $mainMod, F2, exec, brictl dec 10
+bind = $mainMod, F3, exec, brictl inc 10
+
+# Screen capture
+bind = , Print, exec, printscreen
+bind = Control_L, Print, exec, aliases screencast
+
+# Laptop multimedia keys
+bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = , XF86MonBrightnessUp, exec, brictl inc 10
+bindel = , XF86MonBrightnessDown, exec, brictl dec 10
+
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+bindl = , XF86HomePage, exec, inputctl -d toggle # toggle touchpad
+bindl = , XF86Search, exec, inputctl -s toggle # toggle touchscreen
+
+#--- Notification ---#
+
+# Notifiation
+bind = Control_L, space, exec, dunstctl close
+bind = Control_L SHIFT, space, exec, dunstctl close-all
+bind = Control_L, grave, exec, dunstctl history-pop
+bind = Control_L SHIFT, period, exec, dunstctl context
+
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrulev2 = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+
+# Set to floating
+windowrule = float, feh # window rule v1 can only do either class or title, not both
+windowrule = float, mpv
+windowrule = float, org.pulseaudio.pavucontrol
+windowrule = float, xarchiver
+windowrulev2 = float, class:firefox, title:Library
+windowrulev2 = float, class:firefox, title:^About.*
+windowrulev2 = float, class:thunar, title:File Operation Progress
+
+# Resize floating windows
+windowrule = size >50% >70%, org.pulseaudio.pavucontrol
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..c42aad5
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,72 @@
+$font_size = 48
+$font_size_small = 16
+$image_size = 175
+
+general {
+ hide_cursor = true
+ ignore_empty_input = true
+}
+
+background {
+ monitor =
+ path = screenshot
+ blur_passes = 2
+ blur_size = 2
+ noise = 0
+}
+
+label {
+ font_family = DejaVu Sans Serif
+ font_size = $font_size
+
+ text = $TIME12
+ text_align = center
+
+ position = 0, 275
+ halign = center
+ valign = center
+}
+
+label {
+ font_family = DejaVu Sans Serif
+ font_size = $font_size_small
+
+ text = cmd[] date "+%A, %B %d"
+
+ position = 0, 200
+ halign = center
+ valign = center
+}
+
+image {
+ monitor =
+ path = ~/.local/bin/wm/lock.png
+ size = $image_size
+ rounding = -1
+ border_size = 0
+
+ halign = center
+ valign = center
+}
+
+input-field {
+ monitor =
+ size = $image_size, $image_size
+
+ outline_thickness = 10
+ outer_color = rgba(0, 0, 0, 0.0)
+ inner_color = rgba(0, 0, 0, 0.0)
+ check_color = rgba(0, 0, 0, 0.0)
+
+ font_family = DejaVu Sans Serif
+ font_color = rgba(255, 255, 255, 0.9)
+ placeholder_text =
+ fail_text =
+
+ hide_input = true
+ rounding = -1
+ fade_on_empty = false
+
+ halign = center
+ valign = center
+}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..e69de29
diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf
index 40ed866..6d3fbe4 100644
--- a/.config/mpv/mpv.conf
+++ b/.config/mpv/mpv.conf
@@ -31,7 +31,7 @@ sub-auto=fuzzy
sub-file-paths=ass:srt:sub:subs:subtitles:Subtitles
# [SUBTITLES LOOK] (for srt)
-sub-font="Segoe UI Semibold"
+sub-font="DejaVu Sans"
sub-font-size=48
sub-margin-y=36
sub-color="#FFFFFFFF"
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
index a0e42c8..c58aeed 100644
--- a/.config/nvim/lazy-lock.json
+++ b/.config/nvim/lazy-lock.json
@@ -11,7 +11,7 @@
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
- "lazy.nvim": { "branch": "main", "commit": "7c493713bc2cb392706866eeba53aaef6c8e9fc6" },
+ "lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
"lspsaga.nvim": { "branch": "main", "commit": "2710a0ad97b5aaff404cd4756c296df454b3f726" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
diff --git a/.config/nwg-look/config b/.config/nwg-look/config
new file mode 100644
index 0000000..3f49ae5
--- /dev/null
+++ b/.config/nwg-look/config
@@ -0,0 +1,7 @@
+{
+ "export-settings-ini": true,
+ "export-gtkrc-20": true,
+ "export-index-theme": true,
+ "export-xsettingsd": true,
+ "export-gtk4-symlinks": true
+}
\ No newline at end of file
diff --git a/.config/qt6ct/qt6ct.conf b/.config/qt6ct/qt6ct.conf
index 2f3a3d8..0d855e5 100644
--- a/.config/qt6ct/qt6ct.conf
+++ b/.config/qt6ct/qt6ct.conf
@@ -6,8 +6,8 @@ standard_dialogs=default
style=qt6gtk2
[Fonts]
-fixed=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
-general=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
+fixed="DejaVu Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
+general="DejaVu Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
[Interface]
activate_item_on_single_click=1
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 0000000..b76654a
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,150 @@
+// -*- mode: jsonc -*-
+{
+ // "layer": "top", // Waybar at top layer
+ "position": "top",
+ "height": 22, // Waybar height (to be removed for auto height)
+ "spacing": 0, // Gaps between modules (4px)
+ // Choose the order of the modules
+ "modules-left": [
+ "hyprland/workspaces",
+ ],
+ "modules-center": [
+ "hyprland/window"
+ ],
+ "modules-right": [
+ "custom/btc",
+ "pulseaudio",
+ "backlight",
+ "network",
+ "battery",
+ "custom/battery-low",
+ "clock",
+ "tray",
+ "custom/power"
+ ],
+ // Modules configuration
+ "hyprland/workspaces": {
+ "disable-scroll": false,
+ "on-scroll-up": "hyprctl dispatch workspace -1",
+ "on-scroll-down": "hyprctl dispatch workspace +1",
+ "all-outputs": true,
+ "warp-on-scroll": false,
+ "format": "{icon}",
+ "format-icons": {
+ "1": "一",
+ "2": "二",
+ "3": "三",
+ "4": "四",
+ "5": "五",
+ "6": "六",
+ "7": "七",
+ "8": "八",
+ "9": "九",
+ "0": "十",
+ "urgent": "",
+ "focused": "",
+ "default": ""
+ // "persistent-workspaces": {
+ // "*": 5, // 5 workspaces by default on every monitor
+ // "HDMI-A-1": 3 // but only three on HDMI-A-1
+ // }
+ }
+ },
+ "custom/btc": {
+ "escape": false,
+ "exec": "$HOME/.local/bin/panel/btc.sh",
+ "interval": 300,
+ "format": " {}",
+ "tooltip": false
+ },
+ "pulseaudio": {
+ "scroll-step": 2, // %, can be a float
+ "format": "{icon} {volume}%",
+ "format-bluetooth": "{icon} {volume}%",
+ "format-bluetooth-muted": " {icon}",
+ "format-muted": " {volume}%",
+ "format-source": "{volume}%",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "backlight": {
+ "device": "intel_backlight",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", "", "", "", "", "", "", "", ""]
+ },
+ "network": {
+ "format-wifi": " {signalStrength}%",
+ "format-ethernet": "",
+ "tooltip-format": "{ifname}: {ipaddr}/{cidr}\n via {gwaddr}",
+ "tooltip-format-wifi": "{ifname}: {ipaddr}/{cidr}\n via {gwaddr}\n ssid {essid}",
+ "tooltip-format-disconnected": "Disconnected",
+ "format-linked": " (No IP)",
+ "format-disconnected": "",
+ "on-click": "$HOME/.local/bin/panel/iface.sh"
+ },
+ "battery": {
+ "bat": "BAT0",
+ "interval": 30,
+ "full-at": 98,
+ "states": {
+ "good": 95,
+ "critical": 20
+ },
+ "format": "{icon} {capacity}% ({time})",
+ "format-time": "{H}:{m}",
+ "format-full": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "custom/battery-low": {
+ "exec": "$HOME/.local/bin/panel/battery.sh",
+ "interval": 30,
+ "format": "",
+ "tooltip": false
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "mode" : "month",
+ "mode-mon-col" : 3,
+ "weeks-pos" : "right",
+ "format": {
+ "months": "{}",
+ "days": "{}",
+ "weeks": "W{}",
+ "weekdays": "{}",
+ "today": "{}"
+ }
+ },
+ "format": " {:%I:%M %p}",
+ "on-click": "$HOME/.local/bin/panel/date.sh"
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "custom/power": {
+ "format": "⏻",
+ "tooltip": false,
+ "menu": "on-click",
+ "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
+ "menu-actions": {
+ "lock": "hyprlock",
+ "shutdown": "shutdown",
+ "reboot": "reboot",
+ "suspend": "systemctl suspend",
+ "hibernate": "systemctl hibernate"
+ }
+ }
+}
diff --git a/.config/waybar/power_menu.xml b/.config/waybar/power_menu.xml
new file mode 100644
index 0000000..1836c87
--- /dev/null
+++ b/.config/waybar/power_menu.xml
@@ -0,0 +1,33 @@
+
+
+
+
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..75bcc6a
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,228 @@
+@define-color black #000;
+@define-color red #a54242; /* 1 */
+@define-color orange #de935f; /* 3 */
+@define-color blue #5f819d; /* 4 */
+@define-color green #b5bd68; /* 10 */
+
+@define-color bgcolor #404552;
+@define-color bgcolor-inactive #2b2e39;
+@define-color bgcolor-urgent #dc7a43;
+@define-color fgcolor #fff;
+@define-color fgcolor-inactive #676e7d;
+
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: FontAwesome, DejaVu Sans Serif;
+ font-size: 12px;
+}
+
+window#waybar {
+ background-color: @bgcolor-inactive;
+ color: @fgcolor;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+button {
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -3px transparent;
+ /* Avoid rounded borders under each button name */
+ border: none;
+ border-radius: 0;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px @fgcolor;
+}
+
+#custom-btc,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#backlight,
+#network,
+#battery,
+#clock,
+#tray,
+#custom-power {
+ padding: 0 6px;
+ color: @fgcolor;
+}
+
+#window,
+#workspaces {
+ margin: 0 4px;
+}
+
+@keyframes blink {
+ to {
+ background-color: @fgcolor;
+ color: @black;
+ }
+}
+
+label:focus {
+ background-color: @black;
+}
+
+/* -------------------------------------- */
+/* Workspaces module */
+
+#workspaces button {
+ padding: 0 5px;
+ background-color: transparent;
+ color: @fgcolor-inactive;
+ box-shadow: none;
+}
+
+#workspaces button:hover {
+ background-color: @bgcolor;
+}
+
+#workspaces button.active {
+ background-color: @bgcolor;
+ box-shadow: inset 0 -3px @blue;
+ color: @fgcolor;
+}
+
+#workspaces button.focused {
+ background-color: @bgcolor;
+}
+
+#workspaces button.urgent {
+ background-color: @bgcolor-urgent;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+ margin-right: 0;
+}
+
+/* -------------------------------------- */
+/* BTC module */
+
+#custom-btc:hover {
+ background-color: @bgcolor;
+}
+
+/* -------------------------------------- */
+/* Media modules */
+
+#pulseaudio, #wireplumber {
+ color: @fgcolor;
+}
+
+#pulseaudio:hover, #wireplumber:hover {
+ background-color: @bgcolor;
+}
+
+#pulseaudio.muted, #wireplumber.muted {
+ color: @fgcolor-inactive
+}
+
+#custom-media {
+ color: @green;
+ min-width: 100px;
+}
+
+#custom-media.custom-spotify {
+ color: @green;
+}
+
+#custom-media.custom-vlc {
+ color: @orange;
+}
+
+/* -------------------------------------- */
+/* Backlight module */
+
+#backlight:hover {
+ background-color: @bgcolor;
+}
+
+/* -------------------------------------- */
+/* Network module */
+
+#network:hover {
+ background-color: @bgcolor;
+}
+
+#network.disconnected {
+ background-color: @bgcolor-inactive;
+}
+
+/* -------------------------------------- */
+/* Battery module */
+
+#battery:hover {
+ background-color: @bgcolor;
+}
+
+#battery.good {
+ color: @green;
+}
+
+/* Using steps() instead of linear as a timing function to limit cpu usage */
+#battery.critical:not(.charging) {
+ background-color: @bgcolor-urgent;
+ animation-name: blink;
+ animation-duration: 2s;
+ animation-timing-function: steps(3);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+/* -------------------------------------- */
+/* Clock module */
+
+#clock:hover {
+ background-color: @bgcolor;
+}
+
+/* -------------------------------------- */
+/* Tray module */
+
+#tray:hover {
+ background-color: @bgcolor;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: @bgcolor-urgent;
+}
+
+/* -------------------------------------- */
+/* Power module */
+
+#custom-power {
+ color: @red;
+}
+
+#custom-power:hover {
+ background-color: @bgcolor;
+}
+
+/* If power module is the leftmost module, set left margin */
+.modules-left > widget:first-child > #custom-power {
+ margin-left: 6px;
+}
+
+/* If power module is the rightmost module, set right margin */
+.modules-right > widget:last-child > #custom-power {
+ margin-right: 6px;
+}
diff --git a/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml b/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
index e482efd..cb36205 100644
--- a/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
+++ b/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
@@ -1,20 +1,20 @@
-
+
-
-
+
+
-
+
-
+
diff --git a/.config/xsettingsd/xsettingsd.conf b/.config/xsettingsd/xsettingsd.conf
new file mode 100644
index 0000000..133540f
--- /dev/null
+++ b/.config/xsettingsd/xsettingsd.conf
@@ -0,0 +1,9 @@
+Net/ThemeName "Arc-Dark"
+Net/IconThemeName "Arc"
+Gtk/CursorThemeName "capitaine-cursors-light"
+Net/EnableEventSounds 1
+EnableInputFeedbackSounds 1
+Xft/Antialias 1
+Xft/Hinting 1
+Xft/HintStyle "hintslight"
+Xft/RGBA "rgb"
diff --git a/.config/zsh/.zlogin b/.config/zsh/.zlogin
index 3ecebbe..193a596 100644
--- a/.config/zsh/.zlogin
+++ b/.config/zsh/.zlogin
@@ -1,3 +1,7 @@
XORG_USER='rick'
-[ "$USER" = "$XORG_USER" ] && [ "$(tty)" = "/dev/tty1" ] && exec xinit -- vt1 > /dev/null 2>&1
+if [ "$WAYLAND" = true ]; then
+ [ "$USER" = "$XORG_USER" ] && [ "$(tty)" = "/dev/tty1" ] && exec hyprland > /dev/null 2>&1
+else
+ [ "$USER" = "$XORG_USER" ] && [ "$(tty)" = "/dev/tty1" ] && exec xinit -- vt1 > /dev/null 2>&1
+fi
diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile
index 6482c6d..1428531 100644
--- a/.config/zsh/.zprofile
+++ b/.config/zsh/.zprofile
@@ -24,6 +24,11 @@ export R_ENVIRON_USER="$XDG_CONFIG_HOME/R/Renviron"
# export HIDPI=true
# <<<
+# Wayland
+# >>> system=wayland
+# export WAYLAND=true
+# <<<
+
#--- Program Specific ---#
# Android
@@ -79,7 +84,12 @@ if [ "$HIDPI" = true ]; then
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCREEN_SCALE_FACTORS=2
fi
-export QT_QPA_PLATFORMTHEME="qt5gtk2"
+if [ "$WAYLAND" = true ]; then
+ export QT_QPA_PLATFORM="wayland"
+fi
+export QT_QPA_PLATFORMTHEME="qt5ct"
+export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
+export QT_STYLE_OVERRIDE="kvantum"
# Rust
export CARGO_HOME="$XDG_DATA_HOME/cargo"
@@ -104,7 +114,11 @@ export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
export WINEPREFIX="$XDG_DATA_HOME/wine"
# WM
-export WM="bspwm"
+if [ "$WAYLAND" = true ]; then
+ export WM="hyprland"
+else
+ export WM="bspwm"
+fi
# Xorg
export XINITRC="$XDG_CONFIG_HOME/xorg/xinitrc"
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 7c538d5..b59fa7c 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -73,10 +73,14 @@ zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey '\eOc' forward-word # ctrl-right
+bindkey '\e[1;5C' forward-word # ctrl-right
bindkey '\eOd' backward-word # ctrl-left
+bindkey '\e[1;5D' backward-word # ctrl-left
bindkey '\e[3~' delete-char # del
bindkey '\e[7~' beginning-of-line # home
+bindkey '\e[H' beginning-of-line # home
bindkey '\e[8~' end-of-line # end
+bindkey '\e[F' end-of-line # end
bindkey '\e[A' history-beginning-search-backward-end # up
bindkey '\e[B' history-beginning-search-forward-end # down
bindkey '\e[Z' reverse-menu-complete # shift-tab
diff --git a/.icons/default/index.theme b/.icons/default/index.theme
new file mode 100644
index 0000000..b144348
--- /dev/null
+++ b/.icons/default/index.theme
@@ -0,0 +1,5 @@
+# This file is written by nwg-look. Do not edit.
+[Icon Theme]
+Name=Default
+Comment=Default Cursor Theme
+Inherits=capitaine-cursors-light
diff --git a/.local/bin/panel/btc.sh b/.local/bin/panel/btc.sh
index 44d25b6..c789477 100755
--- a/.local/bin/panel/btc.sh
+++ b/.local/bin/panel/btc.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-file="/tmp/polybar-btc-module"
+file="/tmp/panel-btc-module"
# Enable mathematics in POSIX shell
calc() { awk "BEGIN { printf(\"%.2f\", $*) }"; }
@@ -27,7 +27,12 @@ output() {
fi
# Result
+ # >>> session=xorg
echo "%{F$color}$symbol $difference%%{F$COLOR15}"
+ # <<<
+ # >>> session=wayland
+ # echo "$symbol $difference%"
+ # <<<
}
if [ ! -f "$file" ]; then
diff --git a/.local/bin/panel/waybar.sh b/.local/bin/panel/waybar.sh
new file mode 100755
index 0000000..b73e1b6
--- /dev/null
+++ b/.local/bin/panel/waybar.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# Kill existing panel
+pkill --exact --signal 9 waybar
+
+# Start panel
+setsid -f waybar
diff --git a/.local/bin/printscreen b/.local/bin/printscreen
index 92d9048..94a80d2 100755
--- a/.local/bin/printscreen
+++ b/.local/bin/printscreen
@@ -1,12 +1,17 @@
#!/bin/sh
# Take a screenshot with the configured program
-# Depends: scrot / maim, xdotool / magick, xdotool
+# Depends: rofi and scrot / maim, xdotool / magick, xdotool / grim, slurp, jq
# User-config---------------------------
-# scrot / maim / magick import
+# scrot / maim / magick import / grim
+# >>> session=xorg
screenshotter="maim"
+# <<<
+# >>> session=wayland
+# screenshotter="grim"
+# <<<
# --------------------------------------
@@ -25,6 +30,12 @@ elif [ "$screenshotter" = "magick import" ] || [ "$screenshotter" = "import" ];
selection=""
activeWindow="-window \$(xdotool getactivewindow)"
filename="$CAPTURE/$(date '+%Y-%m-%d-%H%M%S')_import.png"
+elif [ "$screenshotter" = "grim" ]; then
+ screenshotter="" # start of command needs to be overwritten
+ fullscreen="grim"
+ selection="slurp | grim -g -"
+ activeWindow="hyprctl -j activewindow | jq -r '\"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])\"' | grim -g -"
+ filename="$CAPTURE/$(date '+%Y-%m-%d-%H%M%S')_grim.png"
else
echo "Printscreen configuration is invalid"
exit 1
diff --git a/.local/bin/wm/wallpaper.sh b/.local/bin/wm/wallpaper.sh
index 3a88d10..ab6791b 100755
--- a/.local/bin/wm/wallpaper.sh
+++ b/.local/bin/wm/wallpaper.sh
@@ -1,7 +1,26 @@
#!/bin/sh
+WALLPAPER="$HOME/pictures/wallpaper.jpg"
+
# Overwrite wallpaper with new image if provided
-[ -n "$1" ] && cp "$1" "$HOME/pictures/wallpaper.jpg"
+[ -n "$1" ] && cp "$1" "$WALLPAPER"
# Set wallpaper
-feh --no-fehbg --bg-fill "$HOME/pictures/wallpaper.jpg"
+if [ "$WAYLAND" = true ]; then
+ pkill hyprpaper
+ setsid -f hyprpaper
+
+ # Wait until hyprpaper is available
+ while true; do
+ output=$(hyprctl hyprpaper)
+ if ! echo "$output" | grep -q ".sock"; then
+ break
+ fi
+ sleep 0.1
+ done
+
+ hyprctl hyprpaper preload "$WALLPAPER"
+ hyprctl hyprpaper wallpaper ",$WALLPAPER"
+else
+ feh --no-fehbg --bg-fill "$WALLPAPER"
+fi
diff --git a/README.org b/README.org
index 51f8ca2..1d91cc4 100644
--- a/README.org
+++ b/README.org
@@ -1,7 +1,7 @@
#+TITLE: Dotfiles
#+OPTIONS: toc:nil
-This is a collection of dotfiles and scripts for my i3/bspwm setup, previewed below:
+This is a collection of dotfiles and scripts for my i3/bspwm/hyprland setup, previewed below:
[[screenshot.png]]
diff --git a/etc/resolv.conf b/etc/resolv.conf
new file mode 100644
index 0000000..5d7ad2f
--- /dev/null
+++ b/etc/resolv.conf
@@ -0,0 +1,3 @@
+# Resolver configuration file.
+# See resolv.conf(5) for details.
+nameserver 192.168.0.1
diff --git a/packages b/packages/base
similarity index 69%
rename from packages
rename to packages/base
index a03ae10..30cfae8 100644
--- a/packages
+++ b/packages/base
@@ -1,18 +1,14 @@
acpi
adobe-source-han-sans-jp-fonts
-alsa-utils
-android-studio
-android-tools
-arandr
arc-gtk-theme
+archlinux-keyring
arc-icon-theme
aria2
aspell-en
aspell-nl
-autorandr
base
+base-devel
brightnessctl
-bspwm
capitaine-cursors
checkbashisms
chromium
@@ -21,32 +17,23 @@ cmake
dhcpcd
dialog
dnsmasq
-domoticz-git
dos2unix
downgrade
-doxygen
duf
dunst
-ebtables
-edk2-ovmf
efibootmgr
-emacs-nativecomp
evtest
exfat-utils
feh
ffmpegthumbnailer
firefox
-frei0r-plugins
-fritzing
gdb
gedit
-ghc
git
gnome-calculator
gnome-keyring
gnome-themes-extra
gparted
-graphviz
gst-plugins-good
gucharmap
gvfs
@@ -57,32 +44,19 @@ htop
hunspell
hunspell-en_us
hunspell-nl
-i3lock-color-git
imagemagick
inetutils
inkscape
-intel-media-driver
-intel-media-sdk
-intel-ucode
isync
iw
-jdk11-openjdk
-jdownloader2
jq
kcachegrind
kdenlive
keepmenu-git
kolourpaint
-kotlin-language-server-git
krita
-lib32-alsa-lib
-lib32-alsa-plugins
lib32-glibc
-lib32-libpulse
lib32-openal
-lib32-vulkan-intel
-libmtp
-libnotify-id
libvirt
linux
linux-firmware
@@ -90,17 +64,11 @@ linux-headers
linux-lts
linux-lts-headers
llvm
-lua-language-server-git
-lvm2
-lxappearance
-maim
manafiles-git
man-db
man-pages
mariadb
-mdadm
mesa-demos
-minted
mkvtoolnix-cli
moka-icon-theme-git
mpv
@@ -109,10 +77,9 @@ mysql-workbench
namcap
ncdu
neofetch
-nerd-fonts-dejavu-complete
+neovim
netctl
nlohmann-json
-nodejs-intelephense
ntfs-3g
openssh
otf-font-awesome
@@ -121,12 +88,7 @@ pacman-contrib
pamixer
pavucontrol
pdfjs
-platformio
-polkit-kde-agent
-polybar
poppler-glib
-pulseaudio
-pulseaudio-alsa
python-adblock
python-beautifulsoup4
python-certifi
@@ -134,46 +96,33 @@ python-filelock
python-flask
python-google-api-python-client
python-google-auth-oauthlib
-python-image
python-matplotlib
python-opengl
python-pycurl
python-pyqt5
python-pyusb
-python-tqdm
python-watchdog
python-zstandard
qbittorrent
-qemu
-qemu-arch-extra
+qt5ct
qt5-serialport
qt5-tools
-qt5ct
-qt5gtk2
qt6ct
-qt6gtk2
r
-redshift
reflector
renderdoc-bin
-rofi
rsync
rtmpdump
-rxvt-unicode
signal-desktop
smartmontools
socat
sqlitebrowser
sshfs
-stalonetray
streamlink
-sxhkd
syncthing
-synergy2-bin
sysfsutils
texlab
texlive-bibtexextra
-texlive-core
texlive-fontsextra
texlive-formatsextra
texlive-games
@@ -193,8 +142,8 @@ tokei
tree
trizen
ttf-dejavu
+ttf-dejavu-nerd
ttf-joypixels
-ttf-ms-win10
tumbler
tumbler-extra-thumbnailers
unrar
@@ -202,27 +151,14 @@ unzip
usbutils
valgrind
ventoy-bin
+vim-spell-en
vim-spell-nl
-virt-manager
-vulkan-intel
wget
wine-staging
wpa_supplicant
-x264
x86_energy_perf_policy
-xarchiver
-xclip
-xdo
-xdotool
xf86-input-wacom
xfsprogs
-xorg-server
-xorg-xev
-xorg-xinit
-xorg-xinput
-xorg-xprop
-xorg-xrandr
-xorg-xsetroot
yt-dlp
yt-dlp-drop-in
zathura
diff --git a/packages/packages b/packages/packages
new file mode 100644
index 0000000..b757484
--- /dev/null
+++ b/packages/packages
@@ -0,0 +1,51 @@
+arandr
+autorandr
+bspwm
+doxygen
+ebtables
+emacs-nativecomp
+frei0r-plugins
+fritzing
+ghc
+graphviz
+i3lock-color-git
+intel-media-driver
+intel-media-sdk
+intel-ucode
+lib32-vulkan-intel
+libmtp
+libnotify-id
+lxappearance
+maim
+mdadm
+minted
+platformio
+polkit-kde-agent
+polybar
+python-image
+python-tqdm
+qemu
+qemu-arch-extra
+qt5gtk2
+qt6gtk2
+redshift
+rofi
+rxvt-unicode
+stalonetray
+sxhkd
+synergy2-bin
+texlive-core
+ttf-ms-win10
+vulkan-intel
+x264
+xarchiver
+xclip
+xdo
+xdotool
+xorg-server
+xorg-xev
+xorg-xinit
+xorg-xinput
+xorg-xprop
+xorg-xrandr
+xorg-xsetroot
diff --git a/packages/packages-wayland b/packages/packages-wayland
new file mode 100644
index 0000000..2960598
--- /dev/null
+++ b/packages/packages-wayland
@@ -0,0 +1,32 @@
+amd-ucode
+ark
+dxvk-bin
+emacs-wayland
+gamescope
+gammastep
+ghostty
+grim
+hypridle
+hyprland
+hyprlock
+hyprpaper
+hyprpolkitagent
+kvantum
+kvantum-qt5
+lib32-mesa
+lib32-vkd3d-proton-git
+lib32-vulkan-radeon
+nwg-look
+pipewire-alsa
+pipewire-pulse
+rofi-wayland
+rtkit
+slurp
+steam
+sunshine-bin
+vkd3d-proton-bin
+vulkan-radeon
+waybar
+wl-clipboard
+xdg-desktop-portal-hyprland
+ydotool