diff --git a/.directory b/.directory
new file mode 100644
index 0000000..39fd5ae
--- /dev/null
+++ b/.directory
@@ -0,0 +1,2 @@
+[Desktop Entry]
+Icon=nix-snowflake
diff --git a/boxes/desktop/home.nix b/boxes/desktop/home.nix
index d8852ce..67f4805 100644
--- a/boxes/desktop/home.nix
+++ b/boxes/desktop/home.nix
@@ -55,6 +55,7 @@
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
+ ".gitconfig".source = ../../dotfiles/.gitconfig;
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
diff --git a/build b/build
index ada133b..d3be5a6 100755
--- a/build
+++ b/build
@@ -7,12 +7,12 @@ BOX="default"
pushd ~/nixos/
-if git diff --quiet '*.nix' && [[ !( $1 =~ "*force*") ]] then
- echo "No changes. Exiting"
- # notify-send "No changes. Exiting"
- popd
- exit 0
-fi
+# if git diff --quiet '*.nix' && [[ !( $1 =~ "*force*") ]] then
+# echo "No changes. Exiting"
+# # notify-send "No changes. Exiting"
+# popd
+# exit 0
+# fi
#TODO: Format files
#format **
diff --git a/build.log b/build.log
index 96f6b7d..f765781 100644
--- a/build.log
+++ b/build.log
@@ -1,42 +1,21 @@
warning: Git tree '/home/meyer/nixos' is dirty
building the system configuration...
warning: Git tree '/home/meyer/nixos' is dirty
-trace: warning: The option `services.xserver.desktopManager.plasma6.enable' defined in `/nix/store/7cimppjl9ny9q2m17n56krb0lm0qfjx5-source/boxes/desktop/configuration.nix' has been renamed to `services.desktopManager.plasma6.enable'.
-trace: warning: The option `services.xserver.displayManager.sddm.enable' defined in `/nix/store/7cimppjl9ny9q2m17n56krb0lm0qfjx5-source/boxes/desktop/configuration.nix' has been renamed to `services.displayManager.sddm.enable'.
-these 12 derivations will be built:
- /nix/store/fhz9fl6y99r9d1nn4cz85m3aczskz935-system-path.drv
- /nix/store/nh9aw3rzhhi420i8l0cfm6idbldiz9ym-dbus-1.drv
- /nix/store/39mq2p8kqvvpf01kryr5ndl5d95i25nd-X-Restart-Triggers-dbus-broker.drv
- /nix/store/42ij6g9xllzj3ikcfwxp5q9iqmjxrwf9-unit-dbus-broker.service.drv
- /nix/store/5vdqz7lksn6i60k20dq377p1wlgz68n6-X-Restart-Triggers-polkit.drv
- /nix/store/7fs7ffixki0f8wk5pxbi7szfgsk8d1sv-unit-dbus-broker.service.drv
- /nix/store/bszhslrydsqyifshmxh6pmil06q1ng2i-user-units.drv
- /nix/store/n0b7bqcp2iykrcqinlx154f58sgj4adf-unit-polkit.service.drv
- /nix/store/xzfvalsi3wwdfw4qdkcwn67rpqqhxc9s-unit-accounts-daemon.service.drv
- /nix/store/c6v8mda2hn24ln28g6nh4hlr9rlkhhy2-system-units.drv
- /nix/store/sakrha478bkc9w408a77hfg52lnyhxw0-etc.drv
- /nix/store/vxvlch4idj7k0y9yrrcsdlh6sd4smsy7-nixos-system-nix-desktop-evo4b5-24.05.20240419.5c24cf2.drv
-these 4 paths will be fetched (1.57 MiB download, 7.20 MiB unpacked):
- /nix/store/wc6zh7fsxqgadfz8sx1f4v3l87m4b9jm-gcc-13.2.0-info
- /nix/store/ljajarzw7vdpnr5hhw5hffwb6wsh6idf-gcc-13.2.0-man
- /nix/store/kq3acv19z969fn3c8kaq3mqwnii2arcn-gcc-wrapper-13.2.0-info
- /nix/store/fl2nf58y7r6hzymmrhahbf7gp7c6dv8w-gcc-wrapper-13.2.0-man
-copying path '/nix/store/wc6zh7fsxqgadfz8sx1f4v3l87m4b9jm-gcc-13.2.0-info' from 'https://cache.nixos.org'...
-copying path '/nix/store/ljajarzw7vdpnr5hhw5hffwb6wsh6idf-gcc-13.2.0-man' from 'https://cache.nixos.org'...
-copying path '/nix/store/fl2nf58y7r6hzymmrhahbf7gp7c6dv8w-gcc-wrapper-13.2.0-man' from 'https://cache.nixos.org'...
-copying path '/nix/store/kq3acv19z969fn3c8kaq3mqwnii2arcn-gcc-wrapper-13.2.0-info' from 'https://cache.nixos.org'...
-building '/nix/store/fhz9fl6y99r9d1nn4cz85m3aczskz935-system-path.drv'...
-building '/nix/store/5vdqz7lksn6i60k20dq377p1wlgz68n6-X-Restart-Triggers-polkit.drv'...
-building '/nix/store/nh9aw3rzhhi420i8l0cfm6idbldiz9ym-dbus-1.drv'...
-building '/nix/store/xzfvalsi3wwdfw4qdkcwn67rpqqhxc9s-unit-accounts-daemon.service.drv'...
-building '/nix/store/39mq2p8kqvvpf01kryr5ndl5d95i25nd-X-Restart-Triggers-dbus-broker.drv'...
-building '/nix/store/n0b7bqcp2iykrcqinlx154f58sgj4adf-unit-polkit.service.drv'...
-building '/nix/store/42ij6g9xllzj3ikcfwxp5q9iqmjxrwf9-unit-dbus-broker.service.drv'...
-building '/nix/store/7fs7ffixki0f8wk5pxbi7szfgsk8d1sv-unit-dbus-broker.service.drv'...
-building '/nix/store/c6v8mda2hn24ln28g6nh4hlr9rlkhhy2-system-units.drv'...
-building '/nix/store/bszhslrydsqyifshmxh6pmil06q1ng2i-user-units.drv'...
-building '/nix/store/sakrha478bkc9w408a77hfg52lnyhxw0-etc.drv'...
-building '/nix/store/vxvlch4idj7k0y9yrrcsdlh6sd4smsy7-nixos-system-nix-desktop-evo4b5-24.05.20240419.5c24cf2.drv'...
+trace: warning: The option `services.xserver.desktopManager.plasma6.enable' defined in `/nix/store/wlq3vyglfpcadpb97kspz5xpn9qh1gvj-source/boxes/desktop/configuration.nix' has been renamed to `services.desktopManager.plasma6.enable'.
+trace: warning: The option `services.xserver.displayManager.sddm.enable' defined in `/nix/store/wlq3vyglfpcadpb97kspz5xpn9qh1gvj-source/boxes/desktop/configuration.nix' has been renamed to `services.displayManager.sddm.enable'.
+these 6 derivations will be built:
+ /nix/store/a4vvr4iqdk0kh26yzdd0p9fizzrfz27w-home-manager-files.drv
+ /nix/store/h2frd4abrsvgr9ar6c7i6ysic3mwankm-home-manager-generation.drv
+ /nix/store/gkklgmi47h006wqyj86jnpiqzkq43cbl-unit-home-manager-meyer.service.drv
+ /nix/store/j9nff4nzzfrwj5kkkqab6anwzpwvczl7-system-units.drv
+ /nix/store/54yw7270jq9nmkxj30i6373n36pcnqm8-etc.drv
+ /nix/store/ygfzwvl7qmypy911ra9v0l7wr8x4svnc-nixos-system-nix-desktop-evo4b5-24.05.20240419.5c24cf2.drv
+building '/nix/store/a4vvr4iqdk0kh26yzdd0p9fizzrfz27w-home-manager-files.drv'...
+building '/nix/store/h2frd4abrsvgr9ar6c7i6ysic3mwankm-home-manager-generation.drv'...
+building '/nix/store/gkklgmi47h006wqyj86jnpiqzkq43cbl-unit-home-manager-meyer.service.drv'...
+building '/nix/store/j9nff4nzzfrwj5kkkqab6anwzpwvczl7-system-units.drv'...
+building '/nix/store/54yw7270jq9nmkxj30i6373n36pcnqm8-etc.drv'...
+building '/nix/store/ygfzwvl7qmypy911ra9v0l7wr8x4svnc-nixos-system-nix-desktop-evo4b5-24.05.20240419.5c24cf2.drv'...
updating GRUB 2 menu...
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
@@ -48,11 +27,8 @@ lsblk: /dev/mapper/no*[0-9]: not a block device
lsblk: /dev/mapper/raid*[0-9]: not a block device
lsblk: /dev/mapper/disks*[0-9]: not a block device
Found Windows Boot Manager on /dev/nvme0n1p2@/efi/Microsoft/Boot/bootmgfw.efi
-stopping the following units: accounts-daemon.service
activating the configuration...
setting up /etc...
reloading user units for meyer...
restarting sysinit-reactivation.target
-reloading the following units: dbus-broker.service
-restarting the following units: polkit.service
-starting the following units: accounts-daemon.service
+restarting the following units: home-manager-meyer.service
diff --git a/dotfiles/.config/btop/btop.conf b/dotfiles/.config/btop/btop.conf
new file mode 100644
index 0000000..b89c539
--- /dev/null
+++ b/dotfiles/.config/btop/btop.conf
@@ -0,0 +1,248 @@
+#? Config file for btop v. 1.3.2
+
+#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
+#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
+color_theme = "/usr/share/btop/themes/tokyo-storm.theme"
+
+#* If the theme set background should be shown, set to False if you want terminal background transparency.
+theme_background = True
+
+#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
+truecolor = True
+
+#* Set to true to force tty mode regardless if a real tty has been detected or not.
+#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
+force_tty = False
+
+#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
+#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
+#* Use whitespace " " as separator between different presets.
+#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
+presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
+
+#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
+#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
+vim_keys = False
+
+#* Rounded corners on boxes, is ignored if TTY mode is ON.
+rounded_corners = True
+
+#* Default symbols to use for graph creation, "braille", "block" or "tty".
+#* "braille" offers the highest resolution but might not be included in all fonts.
+#* "block" has half the resolution of braille but uses more common characters.
+#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
+#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
+graph_symbol = "braille"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_cpu = "default"
+
+# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
+graph_symbol_gpu = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_mem = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_net = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_proc = "default"
+
+#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
+shown_boxes = "proc cpu mem"
+
+#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
+update_ms = 200
+
+#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
+#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
+proc_sorting = "memory"
+
+#* Reverse sorting order, True or False.
+proc_reversed = False
+
+#* Show processes as a tree.
+proc_tree = False
+
+#* Use the cpu graph colors in the process list.
+proc_colors = True
+
+#* Use a darkening gradient in the process list.
+proc_gradient = True
+
+#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
+proc_per_core = False
+
+#* Show process memory as bytes instead of percent.
+proc_mem_bytes = True
+
+#* Show cpu graph for each process.
+proc_cpu_graphs = True
+
+#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
+proc_info_smaps = False
+
+#* Show proc box on left side of screen instead of right.
+proc_left = False
+
+#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
+proc_filter_kernel = False
+
+#* In tree-view, always accumulate child process resources in the parent process.
+proc_aggregate = False
+
+#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_upper = "total"
+
+#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_lower = "total"
+
+#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
+show_gpu_info = "Auto"
+
+#* Toggles if the lower CPU graph should be inverted.
+cpu_invert_lower = True
+
+#* Set to True to completely disable the lower CPU graph.
+cpu_single_graph = False
+
+#* Show cpu box at bottom of screen instead of top.
+cpu_bottom = False
+
+#* Shows the system uptime in the CPU box.
+show_uptime = True
+
+#* Show cpu temperature.
+check_temp = True
+
+#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
+cpu_sensor = "Auto"
+
+#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
+show_coretemp = True
+
+#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
+#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
+#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
+#* Example: "4:0 5:1 6:3"
+cpu_core_map = ""
+
+#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
+temp_scale = "celsius"
+
+#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
+base_10_sizes = False
+
+#* Show CPU frequency.
+show_cpu_freq = True
+
+#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
+#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
+clock_format = "%X"
+
+#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
+background_update = True
+
+#* Custom cpu model name, empty string to disable.
+custom_cpu_name = ""
+
+#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
+#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
+disks_filter = ""
+
+#* Show graphs instead of meters for memory values.
+mem_graphs = True
+
+#* Show mem box below net box instead of above.
+mem_below_net = False
+
+#* Count ZFS ARC in cached and available memory.
+zfs_arc_cached = True
+
+#* If swap memory should be shown in memory box.
+show_swap = True
+
+#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
+swap_disk = True
+
+#* If mem box should be split to also show disks info.
+show_disks = False
+
+#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
+only_physical = True
+
+#* Read disks list from /etc/fstab. This also disables only_physical.
+use_fstab = True
+
+#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
+zfs_hide_datasets = False
+
+#* Set to true to show available disk space for privileged users.
+disk_free_priv = False
+
+#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
+show_io_stat = True
+
+#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
+io_mode = False
+
+#* Set to True to show combined read/write io graphs in io mode.
+io_graph_combined = False
+
+#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
+#* Example: "/mnt/media:100 /:20 /boot:1".
+io_graph_speeds = ""
+
+#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
+net_download = 100
+
+net_upload = 100
+
+#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
+net_auto = True
+
+#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
+net_sync = True
+
+#* Starts with the Network Interface specified here.
+net_iface = ""
+
+#* Show battery stats in top right if battery is present.
+show_battery = True
+
+#* Which battery to use if multiple are present. "Auto" for auto detection.
+selected_battery = "Auto"
+
+#* Show power stats of battery next to charge indicator.
+show_battery_watts = True
+
+#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
+#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
+log_level = "WARNING"
+
+#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
+nvml_measure_pcie_speeds = True
+
+#* Horizontally mirror the GPU graph.
+gpu_mirror_graph = True
+
+#* Custom gpu0 model name, empty string to disable.
+custom_gpu_name0 = ""
+
+#* Custom gpu1 model name, empty string to disable.
+custom_gpu_name1 = ""
+
+#* Custom gpu2 model name, empty string to disable.
+custom_gpu_name2 = ""
+
+#* Custom gpu3 model name, empty string to disable.
+custom_gpu_name3 = ""
+
+#* Custom gpu4 model name, empty string to disable.
+custom_gpu_name4 = ""
+
+#* Custom gpu5 model name, empty string to disable.
+custom_gpu_name5 = ""
diff --git a/dotfiles/.config/btop/btop.log b/dotfiles/.config/btop/btop.log
new file mode 100644
index 0000000..e69de29
diff --git a/dotfiles/.config/btop/themes/tokyo.theme b/dotfiles/.config/btop/themes/tokyo.theme
new file mode 100644
index 0000000..be834e3
--- /dev/null
+++ b/dotfiles/.config/btop/themes/tokyo.theme
@@ -0,0 +1,96 @@
+#Bashtop theme in the style of Tokyo Night
+
+# All graphs and meters can be gradients
+# For single color graphs leave "mid" and "end" variable empty.
+# Use "start" and "end" variables for two color gradient
+# Use "start", "mid" and "end" for three color gradient
+
+# Main background, empty for terminal default, need to be empty if you want transparent background
+theme[main_bg]=""
+
+# Main text color
+theme[main_fg]="#c0caf5"
+
+# Title color for boxes
+theme[title]="#c0caf5"
+
+# Highlight color for keyboard shortcuts
+theme[hi_fg]="#7aa2f7"
+
+# Background color of selected item in processes box
+theme[selected_bg]="#1a1b26"
+
+# Foreground color of selected item in processes box
+theme[selected_fg]="#9ece6a"
+
+# Color of inactive/disabled text
+theme[inactive_fg]="#a9b1d6"
+
+# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
+theme[graph_text]="#bb9af7"
+
+# Background color of the percentage meters
+theme[meter_bg]="#9ece6a"
+
+# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
+theme[proc_misc]="#7aa2f7"
+
+# Cpu box outline color
+theme[cpu_box]="#73daca"
+
+# Memory/disks box outline color
+theme[mem_box]="#e0af68"
+
+# Net up/down box outline color
+theme[net_box]="#7aa2f7"
+
+# Processes box outline color
+theme[proc_box]="#f7768e"
+
+# Box divider line and small boxes line color
+theme[div_line]="#73daca"
+
+# Temperature graph colors
+theme[temp_start]="#7dcfff"
+theme[temp_mid]="#7aa2f7"
+theme[temp_end]="#bb9af7"
+
+# CPU graph colors
+theme[cpu_start]="#9ece6a"
+theme[cpu_mid]="#e0af68"
+theme[cpu_end]="#f7768e"
+
+# Mem/Disk free meter
+theme[free_start]="#9ece6a"
+theme[free_mid]="#e0af68"
+theme[free_end]="#ff9e64"
+
+# Mem/Disk cached meter
+theme[cached_start]="#414868"
+theme[cached_mid]="#9aa5ce"
+theme[cached_end]="#c0caf5"
+
+# Mem/Disk available meter
+theme[available_start]="#634f30"
+theme[available_mid]="#965027"
+theme[available_end]="#ff9e64"
+
+# Mem/Disk used meter
+theme[used_start]="#8c4351"
+theme[used_mid]="#f7768e"
+theme[used_end]="#ff9e64"
+
+# Download graph colors
+theme[download_start]="#414868"
+theme[download_mid]="#9aa5ce"
+theme[download_end]="#7dcfff"
+
+# Upload graph colors
+theme[upload_start]="#5a4a78"
+theme[upload_mid]="#bb9af7"
+theme[upload_end]="#dacef0"
+
+# Process box color gradient for threads, mem and cpu usage
+theme[process_start]="#73daca"
+theme[process_mid]="#e0af68"
+theme[process_end]="#f7768e"
\ No newline at end of file
diff --git a/dotfiles/.config/dunst/assets/notification/fallback.png b/dotfiles/.config/dunst/assets/notification/fallback.png
new file mode 100644
index 0000000..204aeda
Binary files /dev/null and b/dotfiles/.config/dunst/assets/notification/fallback.png differ
diff --git a/dotfiles/.config/dunst/assets/notification/scrot.png b/dotfiles/.config/dunst/assets/notification/scrot.png
new file mode 100644
index 0000000..1e12f38
Binary files /dev/null and b/dotfiles/.config/dunst/assets/notification/scrot.png differ
diff --git a/dotfiles/.config/dunst/assets/notification/speaker.png b/dotfiles/.config/dunst/assets/notification/speaker.png
new file mode 100644
index 0000000..579b34f
Binary files /dev/null and b/dotfiles/.config/dunst/assets/notification/speaker.png differ
diff --git a/dotfiles/.config/dunst/assets/ui/brightness_down.png b/dotfiles/.config/dunst/assets/ui/brightness_down.png
new file mode 100644
index 0000000..b4b397f
Binary files /dev/null and b/dotfiles/.config/dunst/assets/ui/brightness_down.png differ
diff --git a/dotfiles/.config/dunst/assets/ui/brightness_up.png b/dotfiles/.config/dunst/assets/ui/brightness_up.png
new file mode 100644
index 0000000..a18297e
Binary files /dev/null and b/dotfiles/.config/dunst/assets/ui/brightness_up.png differ
diff --git a/dotfiles/.config/dunst/assets/ui/volume_down.png b/dotfiles/.config/dunst/assets/ui/volume_down.png
new file mode 100644
index 0000000..cc1810d
Binary files /dev/null and b/dotfiles/.config/dunst/assets/ui/volume_down.png differ
diff --git a/dotfiles/.config/dunst/assets/ui/volume_muted.svg b/dotfiles/.config/dunst/assets/ui/volume_muted.svg
new file mode 100644
index 0000000..34fad42
--- /dev/null
+++ b/dotfiles/.config/dunst/assets/ui/volume_muted.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/dotfiles/.config/dunst/assets/ui/volume_up.png b/dotfiles/.config/dunst/assets/ui/volume_up.png
new file mode 100644
index 0000000..0926b71
Binary files /dev/null and b/dotfiles/.config/dunst/assets/ui/volume_up.png differ
diff --git a/dotfiles/.config/dunst/dunstrc b/dotfiles/.config/dunst/dunstrc
new file mode 100644
index 0000000..2843bf3
--- /dev/null
+++ b/dotfiles/.config/dunst/dunstrc
@@ -0,0 +1,220 @@
+[global]
+ font = "Product Sans"
+
+ # Allow a small subset of html markup:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # for a complete reference see http://developer.gnome.org/pango/stable/PangoMarkupFormat.html
+ # If markup is not allowed, those tags will be stripped out of the message.
+ allow_markup = yes
+
+ # 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
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Sort messages by urgency
+ sort = yes
+
+ # Show how many messages are currently hidden (because of geometry)
+ indicate_hidden = yes
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right"
+ alignment = left
+
+ # The frequency with wich text that is longer than the notification
+ # window allows bounces back and forth.
+ # This option conflicts with 'word_wrap'.
+ # Set to 0 to disable
+ bounce_freq = 0
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Show age of message if message is older than show_age_threshold seconds.
+ # set to -1 to disable
+ show_age_threshold = -1
+
+ # Split notifications into multiple lines if they don't fit into geometry
+ word_wrap = yes
+
+ # Ignore newlines '\n' in notifications
+ ignore_newline = no
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = 320
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 500
+
+ # Position of the notification
+ origin = top-right
+
+ # Offset from the origin
+ offset = 10x12
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 14
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 1
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 150
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 300
+
+ # Frame
+ frame_width = 3
+ frame_color = "#1C2325"
+
+ # The transparency of the window. range: [0; 100]
+ # This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
+ transparency = 0
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ idle_threshold = 0
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern windowmanagers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option will be
+ # ignored.
+ follow = none
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = no
+
+ # Should a notification popped up from history be sticky or
+ # timeout as if it would normally do.
+ sticky_history = yes
+
+ # The height of a single line. If the height is smaller than the font height,
+ # it will get raised to the font height.
+ # This adds empty space above and under the text.
+ line_height = 8
+
+ # Draw a line of 'separatpr_height' pixel height between two notifications.
+ # Set to 0 to disable
+ separator_height = 3
+
+ # Padding between text and separator
+ padding = 16
+
+ # Horizontal padding
+ horizontal_padding = 12
+
+ # Padding between text and icon.
+ text_icon_padding = 16
+
+ # 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
+
+ # Print a notification on startup
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = false
+
+ # Align icons left/right/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 32
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 48
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 17
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Mouse actions
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+[songArtLogger]
+ script = ~/.config/dunst/scripts/songArtLogger.sh
+
+[urgency_low]
+ timeout = 6
+ background = "#0d0f16"
+ foreground = "#CDD6F4"
+ frame_color = "#191d24"
+ highlight = "#7ba5dd"
+
+[urgency_normal]
+ # script = ~/.config/dunst/scripts/playNotificationSound.sh
+ timeout = 6
+ background = "#0d0f16"
+ foreground = "#CDD6F4"
+ frame_color = "#0d0f16"
+ highlight = "#7ba5dd"
+
+[urgency_critical]
+ script = ~/.config/dunst/scripts/playNotificationSound.sh
+ timeout = 6
+ background = "#0d0f16"
+ foreground = "#CDD6F4"
+ frame_color = "#0d0f16"
+ highlight = "#ee6a70"
+
+[backlight]
+ summary = "Backlight"
+ highlight = "#ffb29b"
+ set_stack_tag = "backlight"
+
+[volume]
+ summary = "Volume"
+ set_stack_tag = "volume"
+
+[volume-muted]
+ summary = "Volume Muted"
+ highlight = "#ee6a70"
+
+[volume-unmuted]
+ summary = "Volume Unmuted"
+ highlight = "#ee6a70"
\ No newline at end of file
diff --git a/dotfiles/.config/dunst/scripts/playNotificationSound.sh b/dotfiles/.config/dunst/scripts/playNotificationSound.sh
new file mode 100644
index 0000000..993c548
--- /dev/null
+++ b/dotfiles/.config/dunst/scripts/playNotificationSound.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+canberra-gtk-play -i message
\ No newline at end of file
diff --git a/dotfiles/.config/dunst/scripts/songArtLogger.sh b/dotfiles/.config/dunst/scripts/songArtLogger.sh
new file mode 100644
index 0000000..f73beb4
--- /dev/null
+++ b/dotfiles/.config/dunst/scripts/songArtLogger.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+TMP_DIR="$HOME/.cache/dunst"
+TMP_COVER_PATH="$TMP_DIR/$DUNST_SUMMARY.png"
+TMP_TEMP_PATH="$TMP_DIR/temp.png"
+
+if [ ! -d "$TMP_DIR" ]; then
+ mkdir -p "$TMP_DIR"
+fi
+
+ART_FROM_SPOTIFY="$(playerctl -p %any,spotify metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g')"
+
+if [[ $(playerctl -p spotify,%any,firefox,chromium,brave,mpd metadata mpris:artUrl) ]]; then
+ curl -s "$ART_FROM_SPOTIFY" --output "$TMP_COVER_PATH"
+fi
+
+cp "$TMP_TEMP_PATH" "$TMP_COVER_PATH"
\ No newline at end of file
diff --git a/dotfiles/.config/gh/config.yml b/dotfiles/.config/gh/config.yml
new file mode 100644
index 0000000..e3677a7
--- /dev/null
+++ b/dotfiles/.config/gh/config.yml
@@ -0,0 +1 @@
+aliases: {}
diff --git a/dotfiles/.config/gh/hosts.yml b/dotfiles/.config/gh/hosts.yml
new file mode 100644
index 0000000..7a755b7
--- /dev/null
+++ b/dotfiles/.config/gh/hosts.yml
@@ -0,0 +1,4 @@
+github.com:
+ oauth_token: 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
+ user: sadanslargehole
+ git_protocol: ssh
diff --git a/dotfiles/.config/hypr/flame.sh b/dotfiles/.config/hypr/flame.sh
new file mode 100644
index 0000000..8df9dd9
--- /dev/null
+++ b/dotfiles/.config/hypr/flame.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+XDG_CURRENT_DESKTOP=sway flameshot
\ No newline at end of file
diff --git a/dotfiles/.config/hypr/frappe.conf b/dotfiles/.config/hypr/frappe.conf
new file mode 100644
index 0000000..94a32db
--- /dev/null
+++ b/dotfiles/.config/hypr/frappe.conf
@@ -0,0 +1,61 @@
+$rosewaterAlpha = f2d5cf
+$flamingoAlpha = eebebe
+$pinkAlpha = f4b8e4
+$mauveAlpha = ca9ee6
+$redAlpha = e78284
+$maroonAlpha = ea999c
+$peachAlpha = ef9f76
+$yellowAlpha = e5c890
+$greenAlpha = a6d189
+$tealAlpha = 81c8be
+$skyAlpha = 99d1db
+$sapphireAlpha = 85c1dc
+$blueAlpha = 8caaee
+$lavenderAlpha = babbf1
+
+$textAlpha = c6d0f5
+$subtext1Alpha = b5bfe2
+$subtext0Alpha = a5adce
+
+$overlay2Alpha = 949cbb
+$overlay1Alpha = 838ba7
+$overlay0Alpha = 737994
+
+$surface2Alpha = 626880
+$surface1Alpha = 51576d
+$surface0Alpha = 414559
+
+$baseAlpha = 303446
+$mantleAlpha = 292c3c
+$crustAlpha = 232634
+
+$rosewater = 0xfff5e0dc
+$flamingo = 0xfff2cdcd
+$pink = 0xfff5c2e7
+$mauve = 0xffcba6f7
+$red = 0xfff38ba8
+$maroon = 0xffeba0ac
+$peach = 0xfffab387
+$yellow = 0xfff9e2af
+$green = 0xffa6e3a1
+$teal = 0xff94e2d5
+$sky = 0xff89dceb
+$sapphire = 0xff74c7ec
+$blue = 0xff89b4fa
+$lavender = 0xffb4befe
+
+$text = 0xffcdd6f4
+$subtext1 = 0xffbac2de
+$subtext0 = 0xffa6adc8
+
+$overlay2 = 0xff9399b2
+$overlay1 = 0xff7f849c
+$overlay0 = 0xff6c7086
+
+$surface2 = 0xff585b70
+$surface1 = 0xff45475a
+$surface0 = 0xff313244
+
+$base = 0xff1e1e2e
+$mantle = 0xff181825
+$crust = 0xff11111b
diff --git a/dotfiles/.config/hypr/hyprland.conf b/dotfiles/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..6a04be8
--- /dev/null
+++ b/dotfiles/.config/hypr/hyprland.conf
@@ -0,0 +1,244 @@
+
+source=/home/meyer/.config/hypr/frappe.conf
+########################################################################################
+# AUTOGENERATED HYPR CONFIG.
+# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
+# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
+########################################################################################
+
+#
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+#wt
+exec-once = ibus-daemon -rxR
+exec-once = /usr/lib/polkit-kde-authentication-agent-1
+exec-once = waybar
+exec-once = wl-paste --watch cliphist store
+exec-once = dunst
+exec-once = swaybg -i /home/meyer/.bg
+exec-once = /home/meyer/.config/hypr/ihate.sh
+exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once=swayidle -w timeout 600 'swaylock-fancy'
+exec-once=/usr/bin/nm-applet
+exec-once = blueman-applet
+exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once=/home/meyer/.config/hypr/flame.sh
+#TODO: find out what this does
+#exec-once=~/.config/hypr/scripts/startpage.sh
+#autogenerated = 1 # remove this line to remove the warning
+#PLUGINS
+#plugin = /home/meyer/.config/hypr/plugins/split-monitor-workspaces.so
+# See https://wiki.hyprland.org/Configuring/Monitors/
+#monitor=,preferred,auto,auto
+monitor=HDMI-A-1,1920x1200@60,0x0,auto
+monitor=DP-3,1920x1080@144,3520x0,auto
+monitor=DP-1,1600x900@60,1920x0,auto
+
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+
+# Execute your favorite apps at launch
+# exec-once = waybar & hyprpaper & firefox
+
+# Source a file (multi-file configs)
+# source = ~/.config/hypr/myColors.conf
+
+# Some default env vars.
+env = XCURSOR_SIZE,24
+
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 1
+
+ touchpad {
+ natural_scroll = no
+ }
+
+ sensitivity = -.5 # -1.0 - 1.0, 0 means no modification.
+}
+
+general {
+ layout=master
+ sensitivity=1.0 # for mouse cursor
+
+ gaps_in=5
+ gaps_out=20
+ border_size=2
+ col.active_border=0xff5e81ac
+ col.inactive_border=0x66333333
+
+ apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
+}
+
+decoration {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ rounding = 18
+
+ blur {
+ enabled = true
+ size = 7
+ passes = 2
+ new_optimizations = true
+ }
+
+ drop_shadow = yes
+ shadow_range = 15
+ col.shadow = 0xffa7caff
+ col.shadow_inactive = 0x50000000
+}
+blurls=waybar
+blurls=lockscreen
+animations {
+ enabled=1
+ # bezier=overshot,0.05,0.9,0.1,1.1
+ bezier=overshot,0.13,0.99,0.29,1.1
+ animation=windows,1,4,overshot,popin
+ animation=fade,1,10,default
+ animation=workspaces,1,6,overshot,slide
+ animation=border,1,10,default
+}
+
+dwindle {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = yes # you probably want this
+}
+
+master {
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ no_gaps_when_only = false
+ new_is_master = false
+}
+
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = off
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
+# device:epic-mouse-v1 {
+# sensitivity = -0.5
+# }
+misc {
+ disable_hyprland_logo=true
+ disable_splash_rendering=true
+ mouse_move_enables_dpms=true
+ vfr = false
+}
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+#WINDOW RULES
+windowrule=float,Rofi
+windowrule=float,pavucontrol
+windowrulev2 = float,class:^()$,title:^(Picture in picture)$
+windowrulev2 = float,class:^(brave)$,title:^(Save File)$
+windowrulev2 = float,class:^(brave)$,title:^(Open File)$
+windowrulev2 = float,class:^(LibreWolf)$,title:^(Picture-in-Picture)$
+windowrulev2 = float,class:^(blueman-manager)$
+windowrulev2 = float,class:^(org.twosheds.iwgtk)$
+windowrulev2 = float,class:^(blueberry.py)$
+windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$
+windowrulev2 = float,class:^(geeqie)$
+windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
+windowrulev2 = float,title:^(Steam Settings)$
+windowrulev2 = float,title:^(Console window for.*Prism Launcher)
+# Increase the opacity
+windowrule=opacity 0.92,Thunar
+windowrule=opacity 0.96,discord
+windowrule=opacity 0.9,VSCode
+windowrule=opacity 0.88,obsidian
+# ^.*nvim.*$
+windowrule=tile,librewolf
+windowrule=tile,spotify
+windowrule=opacity 1,neovim
+bindm=SUPER,mouse:272,movewindow
+bindm=SUPER,mouse:273,resizewindow
+
+
+windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
+windowrulev2 = noanim,class:^(xwaylandvideobridge)$
+windowrulev2 = nofocus,class:^(xwaylandvideobridge)$
+windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
+
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+$mainMod = ALT
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod SHIFT, RETURN, exec, kitty
+bind = $mainMod SHIFT, C, killactive,
+bind = $mainMod SHIFT, Q, exit,
+bind = $mainMod, E, exec, dolphin
+bind = $mainMod, F, togglefloating,
+bind = $mainMod, P, exec, rofi -show drun
+#bind = $mainMod, P, pseudo, # dwindle
+#bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod, RETURN, layoutmsg, swapwithmaster
+bind = $mainMod, kp_enter, layoutmsg, swapwithmaster
+# Move focus with mainMod + arrow keys
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+# cliPBOARD HISTRY
+bind = SUPER, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
+# lock screen
+bind = SUPER, L, exec, swaylock --image /home/meyer/.bg
+#SCREENSHOT
+bind = , print, exec, grim -g "$(slurp)" - | wl-copy --type=image/png
+#emoji picker
+bind = SUPER, COMMA, exec, /home/meyer/src/emojipick/emojiget.py | rofi -dmenu -l 5 | grep -o ^. | wl-copy
+#resize binds
+bind = $mainMod, H, resizeactive, -50 0
+bind = $mainMod , L, resizeactive,50 0
+bind = $mainMod SHIFT, L, resizeactive, 0 -40
+bind = $mainMod SHIFT, H, resizeactive, 0 40
+# Switch workspaces with mainMod + [0-9]
+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
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+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
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+# l -> do stuff even when locked
+# e -> repeats when key is held
+bindle=, XF86AudioRaiseVolume, exec, vol --up
+bindle=, XF86AudioLowerVolume, exec, vol --down
+# bindl=, XF86AudioMute, exec, amixer set Master toggle
+bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindl=, XF86AudioPlay, exec, playerctl play-pause # the stupid key is called play , but it toggles
+bindl=, XF86AudioNext, exec, playerctl next
+bindl=, XF86AudioPrev, exec, playerctl previous
diff --git a/dotfiles/.config/hypr/ihate.sh b/dotfiles/.config/hypr/ihate.sh
new file mode 100644
index 0000000..8f342d5
--- /dev/null
+++ b/dotfiles/.config/hypr/ihate.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+sleep 4
+killall -e xdg-desktop-portal-wlr
+killall xdg-desktop-portal
+/usr/lib/xdg-desktop-portal-wlr &
+sleep 4
+/usr/lib/xdg-desktop-portal &
diff --git a/dotfiles/.config/hypr/plugins/split-monitor-workspaces.so b/dotfiles/.config/hypr/plugins/split-monitor-workspaces.so
new file mode 100755
index 0000000..75e7227
Binary files /dev/null and b/dotfiles/.config/hypr/plugins/split-monitor-workspaces.so differ
diff --git a/dotfiles/.config/hypr/wallpapers/night.jpg b/dotfiles/.config/hypr/wallpapers/night.jpg
new file mode 100644
index 0000000..8a967c4
Binary files /dev/null and b/dotfiles/.config/hypr/wallpapers/night.jpg differ
diff --git a/dotfiles/.config/rofi/colors.rasi b/dotfiles/.config/rofi/colors.rasi
new file mode 100644
index 0000000..82ae4e1
--- /dev/null
+++ b/dotfiles/.config/rofi/colors.rasi
@@ -0,0 +1,10 @@
+/* colors */
+
+* {
+ al: #00000000;
+ bg: #1a1b26FF;
+ bga: #414868FF;
+ fga: #c0caf5FF;
+ fg: #c0caf5FF;
+ ac: #343b58FF;
+}
diff --git a/dotfiles/.config/rofi/config.rasi b/dotfiles/.config/rofi/config.rasi
new file mode 100644
index 0000000..3437403
--- /dev/null
+++ b/dotfiles/.config/rofi/config.rasi
@@ -0,0 +1,118 @@
+configuration {
+ font: "ComicShannsMonoNerdFont 14";
+ show-icons: true;
+ display-drun: "";
+ drun-display-format: "{name}";
+ disable-history: false;
+ fullscreen: false;
+ hide-scrollbar: true;
+ sidebar-mode: false;
+}
+
+@import "colors.rasi"
+
+window {
+ transparency: "real";
+ background-color: @bg;
+ text-color: @fg;
+ border: 1px 3px 5px 1px;
+ border-color: @ac;
+ border-radius: 2px;
+ width: 600px;
+ location: center;
+ x-offset: 0;
+ y-offset: 0;
+}
+
+prompt {
+ enabled: true;
+ padding: 2px 0px 0px 4px;
+ background-color: @al;
+ text-color: @fg;
+ font: "feather 12";
+}
+
+entry {
+ background-color: @al;
+ text-color: @fg;
+ placeholder-color: @fg;
+ expand: true;
+ horizontal-align: 0;
+ placeholder: "Search...";
+ padding: 2px 0px 0px 6px;
+ blink: true;
+}
+
+inputbar {
+ children: [ prompt, entry ];
+ background-color: @bga;
+ text-color: @fg;
+ expand: false;
+ border: 0px;
+ border-radius: 50%;
+ border-color: @ac;
+ margin: 0px;
+ padding: 8px;
+}
+
+listview {
+ background-color: @al;
+ padding: 0px;
+ columns: 2;
+ lines: 5;
+ spacing: 6px;
+ cycle: true;
+ dynamic: true;
+ layout: vertical;
+ scrollbar: false;
+ border-color: @al;
+}
+
+mainbox {
+ background-color: @al;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @ac;
+ children: [ inputbar, listview ];
+ spacing: 6px;
+ padding: 6px;
+}
+
+element {
+ background-color: transparent;
+ text-color: @fga;
+ orientation: horizontal;
+ border-radius: 50%;
+ padding: 8px;
+}
+element normal.normal {
+ background-color: @ac;
+ text-color: @fga;
+}
+element alternate.normal{
+ background-color: @ac;
+ text-color: @fga;
+}
+
+element-icon {
+ size: 24px;
+ background-color: transparent;
+ border: 0px;
+}
+
+element-text {
+ expand: true;
+ background-color: transparent;
+ text-color: @fg;
+ horizontal-align: 0;
+ vertical-align: 0.5;
+ margin: 0px 2.5px 0px 2.5px;
+}
+
+element selected {
+ background-color: @bga;
+ text-color: @fg;
+ border: 0px 0px 0px 0px;
+ border-radius: 50%;
+ border-color: @ac;
+}
diff --git a/dotfiles/.gitconfig b/dotfiles/.gitconfig
new file mode 100644
index 0000000..ad540c1
--- /dev/null
+++ b/dotfiles/.gitconfig
@@ -0,0 +1,14 @@
+[user]
+ signingkey = F1A53BC2CC6565EADD7B644FB2E2F4A5161A7800
+ name = sadanslargehole
+ email = sadan@sadanslargehole.com
+[commit]
+ gpgsign = true
+[core]
+ autocrlf = input
+[pull]
+ rebase = true
+[push]
+ autoSetupRemote = true
+[init]
+ defaultBranch = main